").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
diff --git a/core/vendor/jquery/jquery.min.map b/core/vendor/jquery/jquery.min.map
new file mode 100644
index 00000000000..2dd27a6b413
--- /dev/null
+++ b/core/vendor/jquery/jquery.min.map
@@ -0,0 +1 @@
+{"version":3,"file":"jquery-1.10.2.min.js","sources":["jquery-1.10.2.js"],"names":["window","undefined","readyList","rootjQuery","core_strundefined","location","document","docElem","documentElement","_jQuery","jQuery","_$","$","class2type","core_deletedIds","core_version","core_concat","concat","core_push","push","core_slice","slice","core_indexOf","indexOf","core_toString","toString","core_hasOwn","hasOwnProperty","core_trim","trim","selector","context","fn","init","core_pnum","source","core_rnotwhite","rtrim","rquickExpr","rsingleTag","rvalidchars","rvalidbraces","rvalidescape","rvalidtokens","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","completed","event","addEventListener","type","readyState","detach","ready","removeEventListener","detachEvent","prototype","jquery","constructor","match","elem","this","charAt","length","exec","find","merge","parseHTML","nodeType","ownerDocument","test","isPlainObject","isFunction","attr","getElementById","parentNode","id","makeArray","toArray","call","get","num","pushStack","elems","ret","prevObject","each","callback","args","promise","done","apply","arguments","first","eq","last","i","len","j","map","end","sort","splice","extend","src","copyIsArray","copy","name","options","clone","target","deep","isArray","expando","Math","random","replace","noConflict","isReady","readyWait","holdReady","hold","wait","body","setTimeout","resolveWith","trigger","off","obj","Array","isWindow","isNumeric","isNaN","parseFloat","isFinite","String","key","e","support","ownLast","isEmptyObject","error","msg","Error","data","keepScripts","parsed","scripts","createElement","buildFragment","remove","childNodes","parseJSON","JSON","parse","Function","parseXML","xml","tmp","DOMParser","parseFromString","ActiveXObject","async","loadXML","getElementsByTagName","noop","globalEval","execScript","camelCase","string","nodeName","toLowerCase","value","isArraylike","text","arr","results","Object","inArray","max","second","l","grep","inv","retVal","arg","guid","proxy","access","chainable","emptyGet","raw","bulk","now","Date","getTime","swap","old","style","Deferred","attachEvent","top","frameElement","doScroll","doScrollCheck","split","cachedruns","Expr","getText","isXML","compile","outermostContext","sortInput","setDocument","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","hasDuplicate","sortOrder","a","b","strundefined","MAX_NEGATIVE","hasOwn","pop","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","RegExp","rcomma","rcombinators","rsibling","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rnative","rinputs","rheader","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","fromCharCode","els","Sizzle","seed","m","groups","nid","newContext","newSelector","getElementsByClassName","qsa","tokenize","getAttribute","setAttribute","toSelector","join","querySelectorAll","qsaError","removeAttribute","select","keys","cache","cacheLength","shift","markFunction","assert","div","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","node","doc","parent","defaultView","className","appendChild","createComment","innerHTML","firstChild","getById","getElementsByName","filter","attrId","getAttributeNode","tag","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","dirkey","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","matcherCachedRuns","bySet","byElement","superMatcher","expandContext","setMatched","matchedCount","outermost","contextBackup","dirrunsUnique","group","contexts","token","div1","defaultValue","unique","isXMLDoc","optionsCache","createOptions","object","flag","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","list","stack","once","fire","stopOnFalse","self","disable","add","index","lock","locked","fireWith","func","tuples","state","always","deferred","fail","then","fns","newDefer","tuple","action","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","progressContexts","resolveContexts","fragment","opt","eventName","isSupported","cssText","getSetAttribute","leadingWhitespace","tbody","htmlSerialize","hrefNormalized","opacity","cssFloat","checkOn","optSelected","enctype","html5Clone","cloneNode","outerHTML","inlineBlockNeedsLayout","shrinkWrapBlocks","pixelPosition","deleteExpando","noCloneEvent","reliableMarginRight","boxSizingReliable","noCloneChecked","optDisabled","radioValue","createDocumentFragment","appendChecked","checkClone","click","change","focusin","backgroundClip","clearCloneStyle","container","marginDiv","tds","divReset","offsetHeight","display","reliableHiddenOffsets","zoom","boxSizing","offsetWidth","getComputedStyle","width","marginRight","rbrace","rmultiDash","internalData","pvt","acceptData","thisCache","internalKey","isNode","toJSON","internalRemoveData","isEmptyDataObject","cleanData","noData","applet","embed","hasData","removeData","_data","_removeData","dataAttr","queue","dequeue","startLength","hooks","_queueHooks","next","stop","setter","delay","time","fx","speeds","timeout","clearTimeout","clearQueue","count","defer","nodeHook","boolHook","rclass","rreturn","rfocusable","rclickable","ruseDefault","getSetInput","removeAttr","prop","removeProp","propFix","addClass","classes","clazz","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","valHooks","set","option","one","optionSet","nType","attrHooks","propName","attrNames","for","class","notxml","propHooks","tabindex","parseInt","getter","setAttributeNode","createAttribute","coords","contenteditable","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","global","types","events","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","getPreventDefault","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","orig","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","origFn","triggerHandler","isSimple","rparentsprev","rneedsContext","guaranteedUnique","children","contents","prev","targets","winnow","is","closest","pos","prevAll","addBack","sibling","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","siblings","contentDocument","contentWindow","reverse","n","r","qualifier","createSafeFragment","nodeNames","safeFrag","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","manipulation_rcheckableType","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","append","createTextNode","domManip","manipulationTarget","prepend","insertBefore","before","after","keepData","getAll","setGlobalEval","dataAndEvents","deepDataAndEvents","html","replaceWith","allowIntersection","hasScripts","iNoClone","disableScript","restoreScript","_evalUrl","content","refElements","cloneCopyEvent","dest","oldData","curData","fixCloneNodeIssues","defaultChecked","defaultSelected","appendTo","prependTo","insertAfter","replaceAll","insert","found","fixDefaultChecked","destElements","srcElements","inPage","selection","wrap","safe","nodes","url","ajax","dataType","throws","wrapAll","wrapInner","unwrap","iframe","getStyles","curCSS","ralpha","ropacity","rposition","rdisplayswap","rmargin","rnumsplit","rnumnonpx","rrelNum","elemdisplay","BODY","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssExpand","cssPrefixes","vendorPropName","capName","origName","isHidden","el","css","showHide","show","hidden","css_defaultDisplay","styles","hide","toggle","cssHooks","computed","cssNumber","columnCount","fillOpacity","lineHeight","order","orphans","widows","zIndex","cssProps","float","extra","_computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","setPositiveNumber","subtract","augmentWidthOrHeight","isBorderBox","getWidthOrHeight","valueIsBorderBox","actualDisplay","write","close","$1","visible","margin","padding","border","prefix","suffix","expand","expanded","parts","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","serialize","serializeArray","traditional","s","encodeURIComponent","ajaxSettings","buildParams","v","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","ajaxLocParts","ajaxLocation","ajax_nonce","ajax_rquery","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","_load","prefilters","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","params","response","responseText","complete","status","active","lastModified","etag","isLocal","processData","contentType","accepts","*","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","mimeType","code","abort","statusText","finalText","success","method","crossDomain","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","modified","ajaxHandleResponses","ajaxConvert","rejectWith","getJSON","getScript","firstDataType","ct","finalDataType","conv2","current","conv","dataFilter","script","text script","head","scriptCharset","charset","onload","onreadystatechange","isAbort","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","xhrCallbacks","xhrSupported","xhrId","xhrOnUnloadAbort","createStandardXHR","XMLHttpRequest","createActiveXHR","xhr","cors","username","open","xhrFields","firefoxAccessException","unload","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","tween","createTween","unit","scale","maxIterations","createFxNow","animation","collection","Animation","properties","stopped","tick","currentTime","startTime","duration","percent","tweens","run","opts","specialEasing","originalProperties","Tween","easing","gotoEnd","propFilter","timer","anim","tweener","prefilter","oldfire","dataShow","unqueued","overflow","overflowX","overflowY","eased","step","cssFn","speed","animate","genFx","fadeTo","to","optall","doAnimation","finish","stopQueue","timers","includeWidth","height","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","linear","p","swing","cos","PI","interval","setInterval","clearInterval","slow","fast","animated","offset","setOffset","win","box","getBoundingClientRect","getWindow","pageYOffset","pageXOffset","curElem","curOffset","curCSSTop","curCSSLeft","calculatePosition","curPosition","curTop","curLeft","using","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","module","exports","define","amd"],"mappings":";;;CAaA,SAAWA,EAAQC,GAOnB,GAECC,GAGAC,EAIAC,QAA2BH,GAG3BI,EAAWL,EAAOK,SAClBC,EAAWN,EAAOM,SAClBC,EAAUD,EAASE,gBAGnBC,EAAUT,EAAOU,OAGjBC,EAAKX,EAAOY,EAGZC,KAGAC,KAEAC,EAAe,SAGfC,EAAcF,EAAgBG,OAC9BC,EAAYJ,EAAgBK,KAC5BC,EAAaN,EAAgBO,MAC7BC,EAAeR,EAAgBS,QAC/BC,EAAgBX,EAAWY,SAC3BC,EAAcb,EAAWc,eACzBC,EAAYb,EAAac,KAGzBnB,EAAS,SAAUoB,EAAUC,GAE5B,MAAO,IAAIrB,GAAOsB,GAAGC,KAAMH,EAAUC,EAAS5B,IAI/C+B,EAAY,sCAAsCC,OAGlDC,EAAiB,OAGjBC,EAAQ,qCAKRC,EAAa,sCAGbC,EAAa,6BAGbC,EAAc,gBACdC,EAAe,uBACfC,EAAe,qCACfC,EAAe,kEAGfC,EAAY,QACZC,EAAa,eAGbC,EAAa,SAAUC,EAAKC,GAC3B,MAAOA,GAAOC,eAIfC,EAAY,SAAUC,IAGhB7C,EAAS8C,kBAAmC,SAAfD,EAAME,MAA2C,aAAxB/C,EAASgD,cACnEC,IACA7C,EAAO8C,UAITD,EAAS,WACHjD,EAAS8C,kBACb9C,EAASmD,oBAAqB,mBAAoBP,GAAW,GAC7DlD,EAAOyD,oBAAqB,OAAQP,GAAW,KAG/C5C,EAASoD,YAAa,qBAAsBR,GAC5ClD,EAAO0D,YAAa,SAAUR,IAIjCxC,GAAOsB,GAAKtB,EAAOiD,WAElBC,OAAQ7C,EAER8C,YAAanD,EACbuB,KAAM,SAAUH,EAAUC,EAAS5B,GAClC,GAAI2D,GAAOC,CAGX,KAAMjC,EACL,MAAOkC,KAIR,IAAyB,gBAAblC,GAAwB,CAUnC,GAPCgC,EAF2B,MAAvBhC,EAASmC,OAAO,IAAyD,MAA3CnC,EAASmC,OAAQnC,EAASoC,OAAS,IAAepC,EAASoC,QAAU,GAE7F,KAAMpC,EAAU,MAGlBQ,EAAW6B,KAAMrC,IAIrBgC,IAAUA,EAAM,IAAO/B,EAqDrB,OAAMA,GAAWA,EAAQ6B,QACtB7B,GAAW5B,GAAaiE,KAAMtC,GAKhCkC,KAAKH,YAAa9B,GAAUqC,KAAMtC,EAxDzC,IAAKgC,EAAM,GAAK,CAWf,GAVA/B,EAAUA,YAAmBrB,GAASqB,EAAQ,GAAKA,EAGnDrB,EAAO2D,MAAOL,KAAMtD,EAAO4D,UAC1BR,EAAM,GACN/B,GAAWA,EAAQwC,SAAWxC,EAAQyC,eAAiBzC,EAAUzB,GACjE,IAIIiC,EAAWkC,KAAMX,EAAM,KAAQpD,EAAOgE,cAAe3C,GACzD,IAAM+B,IAAS/B,GAETrB,EAAOiE,WAAYX,KAAMF,IAC7BE,KAAMF,GAAS/B,EAAS+B,IAIxBE,KAAKY,KAAMd,EAAO/B,EAAS+B,GAK9B,OAAOE,MAQP,GAJAD,EAAOzD,EAASuE,eAAgBf,EAAM,IAIjCC,GAAQA,EAAKe,WAAa,CAG9B,GAAKf,EAAKgB,KAAOjB,EAAM,GACtB,MAAO3D,GAAWiE,KAAMtC,EAIzBkC,MAAKE,OAAS,EACdF,KAAK,GAAKD,EAKX,MAFAC,MAAKjC,QAAUzB,EACf0D,KAAKlC,SAAWA,EACTkC,KAcH,MAAKlC,GAASyC,UACpBP,KAAKjC,QAAUiC,KAAK,GAAKlC,EACzBkC,KAAKE,OAAS,EACPF,MAIItD,EAAOiE,WAAY7C,GACvB3B,EAAWqD,MAAO1B,IAGrBA,EAASA,WAAa7B,IAC1B+D,KAAKlC,SAAWA,EAASA,SACzBkC,KAAKjC,QAAUD,EAASC,SAGlBrB,EAAOsE,UAAWlD,EAAUkC,QAIpClC,SAAU,GAGVoC,OAAQ,EAERe,QAAS,WACR,MAAO7D,GAAW8D,KAAMlB,OAKzBmB,IAAK,SAAUC,GACd,MAAc,OAAPA,EAGNpB,KAAKiB,UAGG,EAANG,EAAUpB,KAAMA,KAAKE,OAASkB,GAAQpB,KAAMoB,IAKhDC,UAAW,SAAUC,GAGpB,GAAIC,GAAM7E,EAAO2D,MAAOL,KAAKH,cAAeyB,EAO5C,OAJAC,GAAIC,WAAaxB,KACjBuB,EAAIxD,QAAUiC,KAAKjC,QAGZwD,GAMRE,KAAM,SAAUC,EAAUC,GACzB,MAAOjF,GAAO+E,KAAMzB,KAAM0B,EAAUC,IAGrCnC,MAAO,SAAUxB,GAIhB,MAFAtB,GAAO8C,MAAMoC,UAAUC,KAAM7D,GAEtBgC,MAGR3C,MAAO,WACN,MAAO2C,MAAKqB,UAAWjE,EAAW0E,MAAO9B,KAAM+B,aAGhDC,MAAO,WACN,MAAOhC,MAAKiC,GAAI,IAGjBC,KAAM,WACL,MAAOlC,MAAKiC,GAAI,KAGjBA,GAAI,SAAUE,GACb,GAAIC,GAAMpC,KAAKE,OACdmC,GAAKF,GAAU,EAAJA,EAAQC,EAAM,EAC1B,OAAOpC,MAAKqB,UAAWgB,GAAK,GAASD,EAAJC,GAAYrC,KAAKqC,SAGnDC,IAAK,SAAUZ,GACd,MAAO1B,MAAKqB,UAAW3E,EAAO4F,IAAItC,KAAM,SAAUD,EAAMoC,GACvD,MAAOT,GAASR,KAAMnB,EAAMoC,EAAGpC,OAIjCwC,IAAK,WACJ,MAAOvC,MAAKwB,YAAcxB,KAAKH,YAAY,OAK5C1C,KAAMD,EACNsF,QAASA,KACTC,UAAWA,QAIZ/F,EAAOsB,GAAGC,KAAK0B,UAAYjD,EAAOsB,GAElCtB,EAAOgG,OAAShG,EAAOsB,GAAG0E,OAAS,WAClC,GAAIC,GAAKC,EAAaC,EAAMC,EAAMC,EAASC,EAC1CC,EAASlB,UAAU,OACnBI,EAAI,EACJjC,EAAS6B,UAAU7B,OACnBgD,GAAO,CAqBR,KAlBuB,iBAAXD,KACXC,EAAOD,EACPA,EAASlB,UAAU,OAEnBI,EAAI,GAIkB,gBAAXc,IAAwBvG,EAAOiE,WAAWsC,KACrDA,MAII/C,IAAWiC,IACfc,EAASjD,OACPmC,GAGSjC,EAAJiC,EAAYA,IAEnB,GAAmC,OAA7BY,EAAUhB,UAAWI,IAE1B,IAAMW,IAAQC,GACbJ,EAAMM,EAAQH,GACdD,EAAOE,EAASD,GAGXG,IAAWJ,IAKXK,GAAQL,IAAUnG,EAAOgE,cAAcmC,KAAUD,EAAclG,EAAOyG,QAAQN,MAC7ED,GACJA,GAAc,EACdI,EAAQL,GAAOjG,EAAOyG,QAAQR,GAAOA,MAGrCK,EAAQL,GAAOjG,EAAOgE,cAAciC,GAAOA,KAI5CM,EAAQH,GAASpG,EAAOgG,OAAQQ,EAAMF,EAAOH,IAGlCA,IAAS5G,IACpBgH,EAAQH,GAASD,GAOrB,OAAOI,IAGRvG,EAAOgG,QAGNU,QAAS,UAAarG,EAAesG,KAAKC,UAAWC,QAAS,MAAO,IAErEC,WAAY,SAAUN,GASrB,MARKlH,GAAOY,IAAMF,IACjBV,EAAOY,EAAID,GAGPuG,GAAQlH,EAAOU,SAAWA,IAC9BV,EAAOU,OAASD,GAGVC,GAIR+G,SAAS,EAITC,UAAW,EAGXC,UAAW,SAAUC,GACfA,EACJlH,EAAOgH,YAEPhH,EAAO8C,OAAO,IAKhBA,MAAO,SAAUqE,GAGhB,GAAKA,KAAS,KAASnH,EAAOgH,WAAYhH,EAAO+G,QAAjD,CAKA,IAAMnH,EAASwH,KACd,MAAOC,YAAYrH,EAAO8C,MAI3B9C,GAAO+G,SAAU,EAGZI,KAAS,KAAUnH,EAAOgH,UAAY,IAK3CxH,EAAU8H,YAAa1H,GAAYI,IAG9BA,EAAOsB,GAAGiG,SACdvH,EAAQJ,GAAW2H,QAAQ,SAASC,IAAI,YAO1CvD,WAAY,SAAUwD,GACrB,MAA4B,aAArBzH,EAAO2C,KAAK8E,IAGpBhB,QAASiB,MAAMjB,SAAW,SAAUgB,GACnC,MAA4B,UAArBzH,EAAO2C,KAAK8E,IAGpBE,SAAU,SAAUF,GAEnB,MAAc,OAAPA,GAAeA,GAAOA,EAAInI,QAGlCsI,UAAW,SAAUH,GACpB,OAAQI,MAAOC,WAAWL,KAAUM,SAAUN,IAG/C9E,KAAM,SAAU8E,GACf,MAAY,OAAPA,EACWA,EAARO,GAEc,gBAARP,IAAmC,kBAARA,GACxCtH,EAAYW,EAAc0D,KAAKiD,KAAU,eAClCA,IAGTzD,cAAe,SAAUyD,GACxB,GAAIQ,EAKJ,KAAMR,GAA4B,WAArBzH,EAAO2C,KAAK8E,IAAqBA,EAAI5D,UAAY7D,EAAO2H,SAAUF,GAC9E,OAAO,CAGR,KAEC,GAAKA,EAAItE,cACPnC,EAAYwD,KAAKiD,EAAK,iBACtBzG,EAAYwD,KAAKiD,EAAItE,YAAYF,UAAW,iBAC7C,OAAO,EAEP,MAAQiF,GAET,OAAO,EAKR,GAAKlI,EAAOmI,QAAQC,QACnB,IAAMH,IAAOR,GACZ,MAAOzG,GAAYwD,KAAMiD,EAAKQ,EAMhC,KAAMA,IAAOR,IAEb,MAAOQ,KAAQ1I,GAAayB,EAAYwD,KAAMiD,EAAKQ,IAGpDI,cAAe,SAAUZ,GACxB,GAAIrB,EACJ,KAAMA,IAAQqB,GACb,OAAO,CAER,QAAO,GAGRa,MAAO,SAAUC,GAChB,KAAUC,OAAOD,IAMlB3E,UAAW,SAAU6E,EAAMpH,EAASqH,GACnC,IAAMD,GAAwB,gBAATA,GACpB,MAAO,KAEgB,kBAAZpH,KACXqH,EAAcrH,EACdA,GAAU,GAEXA,EAAUA,GAAWzB,CAErB,IAAI+I,GAAS9G,EAAW4B,KAAMgF,GAC7BG,GAAWF,KAGZ,OAAKC,IACKtH,EAAQwH,cAAeF,EAAO,MAGxCA,EAAS3I,EAAO8I,eAAiBL,GAAQpH,EAASuH,GAC7CA,GACJ5I,EAAQ4I,GAAUG,SAEZ/I,EAAO2D,SAAWgF,EAAOK,cAGjCC,UAAW,SAAUR,GAEpB,MAAKnJ,GAAO4J,MAAQ5J,EAAO4J,KAAKC,MACxB7J,EAAO4J,KAAKC,MAAOV,GAGb,OAATA,EACGA,EAGa,gBAATA,KAGXA,EAAOzI,EAAOmB,KAAMsH,GAEfA,GAGC3G,EAAYiC,KAAM0E,EAAK5B,QAAS7E,EAAc,KACjD6E,QAAS5E,EAAc,KACvB4E,QAAS9E,EAAc,MAEXqH,SAAU,UAAYX,MAKtCzI,EAAOsI,MAAO,iBAAmBG,GAAjCzI,IAIDqJ,SAAU,SAAUZ,GACnB,GAAIa,GAAKC,CACT,KAAMd,GAAwB,gBAATA,GACpB,MAAO,KAER,KACMnJ,EAAOkK,WACXD,EAAM,GAAIC,WACVF,EAAMC,EAAIE,gBAAiBhB,EAAO,cAElCa,EAAM,GAAII,eAAe,oBACzBJ,EAAIK,MAAQ,QACZL,EAAIM,QAASnB,IAEb,MAAOP,GACRoB,EAAM/J,EAKP,MAHM+J,IAAQA,EAAIxJ,kBAAmBwJ,EAAIO,qBAAsB,eAAgBrG,QAC9ExD,EAAOsI,MAAO,gBAAkBG,GAE1Ba,GAGRQ,KAAM,aAKNC,WAAY,SAAUtB,GAChBA,GAAQzI,EAAOmB,KAAMsH,KAIvBnJ,EAAO0K,YAAc,SAAUvB,GAChCnJ,EAAe,KAAEkF,KAAMlF,EAAQmJ,KAC3BA,IAMPwB,UAAW,SAAUC,GACpB,MAAOA,GAAOrD,QAAS3E,EAAW,OAAQ2E,QAAS1E,EAAYC,IAGhE+H,SAAU,SAAU9G,EAAM+C,GACzB,MAAO/C,GAAK8G,UAAY9G,EAAK8G,SAASC,gBAAkBhE,EAAKgE,eAI9DrF,KAAM,SAAU0C,EAAKzC,EAAUC,GAC9B,GAAIoF,GACH5E,EAAI,EACJjC,EAASiE,EAAIjE,OACbiD,EAAU6D,EAAa7C,EAExB,IAAKxC,GACJ,GAAKwB,GACJ,KAAYjD,EAAJiC,EAAYA,IAGnB,GAFA4E,EAAQrF,EAASI,MAAOqC,EAAKhC,GAAKR,GAE7BoF,KAAU,EACd,UAIF,KAAM5E,IAAKgC,GAGV,GAFA4C,EAAQrF,EAASI,MAAOqC,EAAKhC,GAAKR,GAE7BoF,KAAU,EACd,UAOH,IAAK5D,GACJ,KAAYjD,EAAJiC,EAAYA,IAGnB,GAFA4E,EAAQrF,EAASR,KAAMiD,EAAKhC,GAAKA,EAAGgC,EAAKhC,IAEpC4E,KAAU,EACd,UAIF,KAAM5E,IAAKgC,GAGV,GAFA4C,EAAQrF,EAASR,KAAMiD,EAAKhC,GAAKA,EAAGgC,EAAKhC,IAEpC4E,KAAU,EACd,KAMJ,OAAO5C,IAIRtG,KAAMD,IAAcA,EAAUsD,KAAK,gBAClC,SAAU+F,GACT,MAAe,OAARA,EACN,GACArJ,EAAUsD,KAAM+F,IAIlB,SAAUA,GACT,MAAe,OAARA,EACN,IACEA,EAAO,IAAK1D,QAASlF,EAAO,KAIjC2C,UAAW,SAAUkG,EAAKC,GACzB,GAAI5F,GAAM4F,KAaV,OAXY,OAAPD,IACCF,EAAaI,OAAOF,IACxBxK,EAAO2D,MAAOkB,EACE,gBAAR2F,IACLA,GAAQA,GAGXhK,EAAUgE,KAAMK,EAAK2F,IAIhB3F,GAGR8F,QAAS,SAAUtH,EAAMmH,EAAK/E,GAC7B,GAAIC,EAEJ,IAAK8E,EAAM,CACV,GAAK5J,EACJ,MAAOA,GAAa4D,KAAMgG,EAAKnH,EAAMoC,EAMtC,KAHAC,EAAM8E,EAAIhH,OACViC,EAAIA,EAAQ,EAAJA,EAAQkB,KAAKiE,IAAK,EAAGlF,EAAMD,GAAMA,EAAI,EAEjCC,EAAJD,EAASA,IAEhB,GAAKA,IAAK+E,IAAOA,EAAK/E,KAAQpC,EAC7B,MAAOoC,GAKV,MAAO,IAGR9B,MAAO,SAAU2B,EAAOuF,GACvB,GAAIC,GAAID,EAAOrH,OACdiC,EAAIH,EAAM9B,OACVmC,EAAI,CAEL,IAAkB,gBAANmF,GACX,KAAYA,EAAJnF,EAAOA,IACdL,EAAOG,KAAQoF,EAAQlF,OAGxB,OAAQkF,EAAOlF,KAAOpG,EACrB+F,EAAOG,KAAQoF,EAAQlF,IAMzB,OAFAL,GAAM9B,OAASiC,EAERH,GAGRyF,KAAM,SAAUnG,EAAOI,EAAUgG,GAChC,GAAIC,GACHpG,KACAY,EAAI,EACJjC,EAASoB,EAAMpB,MAKhB,KAJAwH,IAAQA,EAIIxH,EAAJiC,EAAYA,IACnBwF,IAAWjG,EAAUJ,EAAOa,GAAKA,GAC5BuF,IAAQC,GACZpG,EAAIpE,KAAMmE,EAAOa,GAInB,OAAOZ,IAIRe,IAAK,SAAUhB,EAAOI,EAAUkG,GAC/B,GAAIb,GACH5E,EAAI,EACJjC,EAASoB,EAAMpB,OACfiD,EAAU6D,EAAa1F,GACvBC,IAGD,IAAK4B,EACJ,KAAYjD,EAAJiC,EAAYA,IACnB4E,EAAQrF,EAAUJ,EAAOa,GAAKA,EAAGyF,GAEnB,MAATb,IACJxF,EAAKA,EAAIrB,QAAW6G,OAMtB,KAAM5E,IAAKb,GACVyF,EAAQrF,EAAUJ,EAAOa,GAAKA,EAAGyF,GAEnB,MAATb,IACJxF,EAAKA,EAAIrB,QAAW6G,EAMvB,OAAO/J,GAAY8E,SAAWP,IAI/BsG,KAAM,EAINC,MAAO,SAAU9J,EAAID,GACpB,GAAI4D,GAAMmG,EAAO7B,CAUjB,OARwB,gBAAZlI,KACXkI,EAAMjI,EAAID,GACVA,EAAUC,EACVA,EAAKiI,GAKAvJ,EAAOiE,WAAY3C,IAKzB2D,EAAOvE,EAAW8D,KAAMa,UAAW,GACnC+F,EAAQ,WACP,MAAO9J,GAAG8D,MAAO/D,GAAWiC,KAAM2B,EAAK1E,OAAQG,EAAW8D,KAAMa,cAIjE+F,EAAMD,KAAO7J,EAAG6J,KAAO7J,EAAG6J,MAAQnL,EAAOmL,OAElCC,GAZC7L,GAiBT8L,OAAQ,SAAUzG,EAAOtD,EAAI2G,EAAKoC,EAAOiB,EAAWC,EAAUC,GAC7D,GAAI/F,GAAI,EACPjC,EAASoB,EAAMpB,OACfiI,EAAc,MAAPxD,CAGR,IAA4B,WAAvBjI,EAAO2C,KAAMsF,GAAqB,CACtCqD,GAAY,CACZ,KAAM7F,IAAKwC,GACVjI,EAAOqL,OAAQzG,EAAOtD,EAAImE,EAAGwC,EAAIxC,IAAI,EAAM8F,EAAUC,OAIhD,IAAKnB,IAAU9K,IACrB+L,GAAY,EAENtL,EAAOiE,WAAYoG,KACxBmB,GAAM,GAGFC,IAECD,GACJlK,EAAGkD,KAAMI,EAAOyF,GAChB/I,EAAK,OAILmK,EAAOnK,EACPA,EAAK,SAAU+B,EAAM4E,EAAKoC,GACzB,MAAOoB,GAAKjH,KAAMxE,EAAQqD,GAAQgH,MAKhC/I,GACJ,KAAYkC,EAAJiC,EAAYA,IACnBnE,EAAIsD,EAAMa,GAAIwC,EAAKuD,EAAMnB,EAAQA,EAAM7F,KAAMI,EAAMa,GAAIA,EAAGnE,EAAIsD,EAAMa,GAAIwC,IAK3E,OAAOqD,GACN1G,EAGA6G,EACCnK,EAAGkD,KAAMI,GACTpB,EAASlC,EAAIsD,EAAM,GAAIqD,GAAQsD,GAGlCG,IAAK,WACJ,OAAO,GAAMC,OAASC,WAMvBC,KAAM,SAAUxI,EAAMgD,EAASrB,EAAUC,GACxC,GAAIJ,GAAKuB,EACR0F,IAGD,KAAM1F,IAAQC,GACbyF,EAAK1F,GAAS/C,EAAK0I,MAAO3F,GAC1B/C,EAAK0I,MAAO3F,GAASC,EAASD,EAG/BvB,GAAMG,EAASI,MAAO/B,EAAM4B,MAG5B,KAAMmB,IAAQC,GACbhD,EAAK0I,MAAO3F,GAAS0F,EAAK1F,EAG3B,OAAOvB,MAIT7E,EAAO8C,MAAMoC,QAAU,SAAUuC,GAChC,IAAMjI,EAOL,GALAA,EAAYQ,EAAOgM,WAKU,aAAxBpM,EAASgD,WAEbyE,WAAYrH,EAAO8C,WAGb,IAAKlD,EAAS8C,iBAEpB9C,EAAS8C,iBAAkB,mBAAoBF,GAAW,GAG1DlD,EAAOoD,iBAAkB,OAAQF,GAAW,OAGtC,CAEN5C,EAASqM,YAAa,qBAAsBzJ,GAG5ClD,EAAO2M,YAAa,SAAUzJ,EAI9B,IAAI0J,IAAM,CAEV,KACCA,EAA6B,MAAvB5M,EAAO6M,cAAwBvM,EAASE,gBAC7C,MAAMoI,IAEHgE,GAAOA,EAAIE,UACf,QAAUC,KACT,IAAMrM,EAAO+G,QAAU,CAEtB,IAGCmF,EAAIE,SAAS,QACZ,MAAMlE,GACP,MAAOb,YAAYgF,EAAe,IAInCxJ,IAGA7C,EAAO8C,YAMZ,MAAOtD,GAAU0F,QAASuC,IAI3BzH,EAAO+E,KAAK,gEAAgEuH,MAAM,KAAM,SAAS7G,EAAGW,GACnGjG,EAAY,WAAaiG,EAAO,KAAQA,EAAKgE,eAG9C,SAASE,GAAa7C,GACrB,GAAIjE,GAASiE,EAAIjE,OAChBb,EAAO3C,EAAO2C,KAAM8E,EAErB,OAAKzH,GAAO2H,SAAUF,IACd,EAGc,IAAjBA,EAAI5D,UAAkBL,GACnB,EAGQ,UAATb,GAA6B,aAATA,IACb,IAAXa,GACgB,gBAAXA,IAAuBA,EAAS,GAAOA,EAAS,IAAOiE,IAIhEhI,EAAaO,EAAOJ,GAWpB,SAAWN,EAAQC,GAEnB,GAAIkG,GACH0C,EACAoE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAlN,EACAC,EACAkN,EACAC,EACAC,EACAC,EACAC,EAGAzG,EAAU,UAAY,GAAKiF,MAC3ByB,EAAe9N,EAAOM,SACtByN,EAAU,EACVlI,EAAO,EACPmI,EAAaC,KACbC,EAAaD,KACbE,EAAgBF,KAChBG,GAAe,EACfC,EAAY,SAAUC,EAAGC,GACxB,MAAKD,KAAMC,GACVH,GAAe,EACR,GAED,GAIRI,QAAsBvO,GACtBwO,EAAe,GAAK,GAGpBC,KAAc/M,eACduJ,KACAyD,EAAMzD,EAAIyD,IACVC,EAAc1D,EAAI/J,KAClBA,EAAO+J,EAAI/J,KACXE,EAAQ6J,EAAI7J,MAEZE,EAAU2J,EAAI3J,SAAW,SAAUwC,GAClC,GAAIoC,GAAI,EACPC,EAAMpC,KAAKE,MACZ,MAAYkC,EAAJD,EAASA,IAChB,GAAKnC,KAAKmC,KAAOpC,EAChB,MAAOoC,EAGT,OAAO,IAGR0I,EAAW,6HAKXC,EAAa,sBAEbC,EAAoB,mCAKpBC,EAAaD,EAAkBxH,QAAS,IAAK,MAG7C0H,EAAa,MAAQH,EAAa,KAAOC,EAAoB,IAAMD,EAClE,mBAAqBA,EAAa,wCAA0CE,EAAa,QAAUF,EAAa,OAQjHI,EAAU,KAAOH,EAAoB,mEAAqEE,EAAW1H,QAAS,EAAG,GAAM,eAGvIlF,EAAY8M,OAAQ,IAAML,EAAa,8BAAgCA,EAAa,KAAM,KAE1FM,EAAaD,OAAQ,IAAML,EAAa,KAAOA,EAAa,KAC5DO,EAAmBF,OAAQ,IAAML,EAAa,WAAaA,EAAa,IAAMA,EAAa,KAE3FQ,EAAeH,OAAQL,EAAa,SACpCS,EAAuBJ,OAAQ,IAAML,EAAa,gBAAkBA,EAAa,OAAQ,KAEzFU,EAAcL,OAAQD,GACtBO,EAAkBN,OAAQ,IAAMH,EAAa,KAE7CU,GACCC,GAAUR,OAAQ,MAAQJ,EAAoB,KAC9Ca,MAAaT,OAAQ,QAAUJ,EAAoB,KACnDc,IAAWV,OAAQ,KAAOJ,EAAkBxH,QAAS,IAAK,MAAS,KACnEuI,KAAYX,OAAQ,IAAMF,GAC1Bc,OAAcZ,OAAQ,IAAMD,GAC5Bc,MAAab,OAAQ,yDAA2DL,EAC/E,+BAAiCA,EAAa,cAAgBA,EAC9D,aAAeA,EAAa,SAAU,KACvCmB,KAAYd,OAAQ,OAASN,EAAW,KAAM,KAG9CqB,aAAoBf,OAAQ,IAAML,EAAa,mDAC9CA,EAAa,mBAAqBA,EAAa,mBAAoB,MAGrEqB,EAAU,yBAGV7N,EAAa,mCAEb8N,GAAU,sCACVC,GAAU,SAEVC,GAAU,QAGVC,GAAgBpB,OAAQ,qBAAuBL,EAAa,MAAQA,EAAa,OAAQ,MACzF0B,GAAY,SAAUC,EAAGC,EAASC,GACjC,GAAIC,GAAO,KAAOF,EAAU,KAI5B,OAAOE,KAASA,GAAQD,EACvBD,EAEO,EAAPE,EACClI,OAAOmI,aAAcD,EAAO,OAE5BlI,OAAOmI,aAA2B,MAAbD,GAAQ,GAA4B,MAAR,KAAPA,GAI9C,KACCzP,EAAK2E,MACHoF,EAAM7J,EAAM6D,KAAM4I,EAAapE,YAChCoE,EAAapE,YAIdwB,EAAK4C,EAAapE,WAAWxF,QAASK,SACrC,MAAQqE,IACTzH,GAAS2E,MAAOoF,EAAIhH,OAGnB,SAAU+C,EAAQ6J,GACjBlC,EAAY9I,MAAOmB,EAAQ5F,EAAM6D,KAAK4L,KAKvC,SAAU7J,EAAQ6J,GACjB,GAAIzK,GAAIY,EAAO/C,OACdiC,EAAI,CAEL,OAASc,EAAOZ,KAAOyK,EAAI3K,MAC3Bc,EAAO/C,OAASmC,EAAI,IAKvB,QAAS0K,IAAQjP,EAAUC,EAASoJ,EAAS6F,GAC5C,GAAIlN,GAAOC,EAAMkN,EAAG1M,EAEnB4B,EAAG+K,EAAQ1E,EAAK2E,EAAKC,EAAYC,CASlC,KAPOtP,EAAUA,EAAQyC,eAAiBzC,EAAU+L,KAAmBxN,GACtEkN,EAAazL,GAGdA,EAAUA,GAAWzB,EACrB6K,EAAUA,OAEJrJ,GAAgC,gBAAbA,GACxB,MAAOqJ,EAGR,IAAuC,KAAjC5G,EAAWxC,EAAQwC,WAAgC,IAAbA,EAC3C,QAGD,IAAKkJ,IAAmBuD,EAAO,CAG9B,GAAMlN,EAAQxB,EAAW6B,KAAMrC,GAE9B,GAAMmP,EAAInN,EAAM,IACf,GAAkB,IAAbS,EAAiB,CAIrB,GAHAR,EAAOhC,EAAQ8C,eAAgBoM,IAG1BlN,IAAQA,EAAKe,WAQjB,MAAOqG,EALP,IAAKpH,EAAKgB,KAAOkM,EAEhB,MADA9F,GAAQhK,KAAM4C,GACPoH,MAOT,IAAKpJ,EAAQyC,gBAAkBT,EAAOhC,EAAQyC,cAAcK,eAAgBoM,KAC3EpD,EAAU9L,EAASgC,IAAUA,EAAKgB,KAAOkM,EAEzC,MADA9F,GAAQhK,KAAM4C,GACPoH,MAKH,CAAA,GAAKrH,EAAM,GAEjB,MADA3C,GAAK2E,MAAOqF,EAASpJ,EAAQwI,qBAAsBzI,IAC5CqJ,CAGD,KAAM8F,EAAInN,EAAM,KAAO+E,EAAQyI,wBAA0BvP,EAAQuP,uBAEvE,MADAnQ,GAAK2E,MAAOqF,EAASpJ,EAAQuP,uBAAwBL,IAC9C9F,EAKT,GAAKtC,EAAQ0I,OAAS7D,IAAcA,EAAUjJ,KAAM3C,IAAc,CASjE,GARAqP,EAAM3E,EAAMpF,EACZgK,EAAarP,EACbsP,EAA2B,IAAb9M,GAAkBzC,EAMd,IAAbyC,GAAqD,WAAnCxC,EAAQ8I,SAASC,cAA6B,CACpEoG,EAASM,GAAU1P,IAEb0K,EAAMzK,EAAQ0P,aAAa,OAChCN,EAAM3E,EAAIjF,QAAS+I,GAAS,QAE5BvO,EAAQ2P,aAAc,KAAMP,GAE7BA,EAAM,QAAUA,EAAM,MAEtBhL,EAAI+K,EAAOhN,MACX,OAAQiC,IACP+K,EAAO/K,GAAKgL,EAAMQ,GAAYT,EAAO/K,GAEtCiL,GAAa9B,EAAS7K,KAAM3C,IAAcC,EAAQ+C,YAAc/C,EAChEsP,EAAcH,EAAOU,KAAK,KAG3B,GAAKP,EACJ,IAIC,MAHAlQ,GAAK2E,MAAOqF,EACXiG,EAAWS,iBAAkBR,IAEvBlG,EACN,MAAM2G,IACN,QACKtF,GACLzK,EAAQgQ,gBAAgB,QAQ7B,MAAOC,IAAQlQ,EAASyF,QAASlF,EAAO,MAAQN,EAASoJ,EAAS6F,GASnE,QAAS/C,MACR,GAAIgE,KAEJ,SAASC,GAAOvJ,EAAKoC,GAMpB,MAJKkH,GAAK9Q,KAAMwH,GAAO,KAAQuE,EAAKiF,mBAE5BD,GAAOD,EAAKG,SAEZF,EAAOvJ,GAAQoC,EAExB,MAAOmH,GAOR,QAASG,IAAcrQ,GAEtB,MADAA,GAAIoF,IAAY,EACTpF,EAOR,QAASsQ,IAAQtQ,GAChB,GAAIuQ,GAAMjS,EAASiJ,cAAc,MAEjC,KACC,QAASvH,EAAIuQ,GACZ,MAAO3J,GACR,OAAO,EACN,QAEI2J,EAAIzN,YACRyN,EAAIzN,WAAW0N,YAAaD,GAG7BA,EAAM,MASR,QAASE,IAAWC,EAAOC,GAC1B,GAAIzH,GAAMwH,EAAM1F,MAAM,KACrB7G,EAAIuM,EAAMxO,MAEX,OAAQiC,IACP+G,EAAK0F,WAAY1H,EAAI/E,IAAOwM,EAU9B,QAASE,IAAcvE,EAAGC,GACzB,GAAIuE,GAAMvE,GAAKD,EACdyE,EAAOD,GAAsB,IAAfxE,EAAE/J,UAAiC,IAAfgK,EAAEhK,YAChCgK,EAAEyE,aAAevE,KACjBH,EAAE0E,aAAevE,EAGtB,IAAKsE,EACJ,MAAOA,EAIR,IAAKD,EACJ,MAASA,EAAMA,EAAIG,YAClB,GAAKH,IAAQvE,EACZ,MAAO,EAKV,OAAOD,GAAI,EAAI,GAOhB,QAAS4E,IAAmB7P,GAC3B,MAAO,UAAUU,GAChB,GAAI+C,GAAO/C,EAAK8G,SAASC,aACzB,OAAgB,UAAThE,GAAoB/C,EAAKV,OAASA,GAQ3C,QAAS8P,IAAoB9P,GAC5B,MAAO,UAAUU,GAChB,GAAI+C,GAAO/C,EAAK8G,SAASC,aACzB,QAAiB,UAAThE,GAA6B,WAATA,IAAsB/C,EAAKV,OAASA,GAQlE,QAAS+P,IAAwBpR,GAChC,MAAOqQ,IAAa,SAAUgB,GAE7B,MADAA,IAAYA,EACLhB,GAAa,SAAUrB,EAAMpD,GACnC,GAAIvH,GACHiN,EAAetR,KAAQgP,EAAK9M,OAAQmP,GACpClN,EAAImN,EAAapP,MAGlB,OAAQiC,IACF6K,EAAO3K,EAAIiN,EAAanN,MAC5B6K,EAAK3K,KAAOuH,EAAQvH,GAAK2K,EAAK3K,SAWnC+G,EAAQ2D,GAAO3D,MAAQ,SAAUrJ,GAGhC,GAAIvD,GAAkBuD,IAASA,EAAKS,eAAiBT,GAAMvD,eAC3D,OAAOA,GAA+C,SAA7BA,EAAgBqK,UAAsB,GAIhEhC,EAAUkI,GAAOlI,WAOjB2E,EAAcuD,GAAOvD,YAAc,SAAU+F,GAC5C,GAAIC,GAAMD,EAAOA,EAAK/O,eAAiB+O,EAAOzF,EAC7C2F,EAASD,EAAIE,WAGd,OAAKF,KAAQlT,GAA6B,IAAjBkT,EAAIjP,UAAmBiP,EAAIhT,iBAKpDF,EAAWkT,EACXjT,EAAUiT,EAAIhT,gBAGdiN,GAAkBL,EAAOoG,GAMpBC,GAAUA,EAAO9G,aAAe8G,IAAWA,EAAO7G,KACtD6G,EAAO9G,YAAa,iBAAkB,WACrCa,MASF3E,EAAQoG,WAAaqD,GAAO,SAAUC,GAErC,MADAA,GAAIoB,UAAY,KACRpB,EAAId,aAAa,eAO1B5I,EAAQ0B,qBAAuB+H,GAAO,SAAUC,GAE/C,MADAA,GAAIqB,YAAaJ,EAAIK,cAAc,MAC3BtB,EAAIhI,qBAAqB,KAAKrG,SAIvC2E,EAAQyI,uBAAyBgB,GAAO,SAAUC,GAQjD,MAPAA,GAAIuB,UAAY,+CAIhBvB,EAAIwB,WAAWJ,UAAY,IAGuB,IAA3CpB,EAAIjB,uBAAuB,KAAKpN,SAOxC2E,EAAQmL,QAAU1B,GAAO,SAAUC,GAElC,MADAhS,GAAQqT,YAAarB,GAAMxN,GAAKqC,GACxBoM,EAAIS,oBAAsBT,EAAIS,kBAAmB7M,GAAUlD,SAI/D2E,EAAQmL,SACZ9G,EAAK9I,KAAS,GAAI,SAAUW,EAAIhD,GAC/B,SAAYA,GAAQ8C,iBAAmB2J,GAAgBf,EAAiB,CACvE,GAAIwD,GAAIlP,EAAQ8C,eAAgBE,EAGhC,OAAOkM,IAAKA,EAAEnM,YAAcmM,QAG9B/D,EAAKgH,OAAW,GAAI,SAAUnP,GAC7B,GAAIoP,GAASpP,EAAGwC,QAASgJ,GAAWC,GACpC,OAAO,UAAUzM,GAChB,MAAOA,GAAK0N,aAAa,QAAU0C,YAM9BjH,GAAK9I,KAAS,GAErB8I,EAAKgH,OAAW,GAAK,SAAUnP,GAC9B,GAAIoP,GAASpP,EAAGwC,QAASgJ,GAAWC,GACpC,OAAO,UAAUzM,GAChB,GAAIwP,SAAcxP,GAAKqQ,mBAAqB5F,GAAgBzK,EAAKqQ,iBAAiB,KAClF,OAAOb,IAAQA,EAAKxI,QAAUoJ,KAMjCjH,EAAK9I,KAAU,IAAIyE,EAAQ0B,qBAC1B,SAAU8J,EAAKtS,GACd,aAAYA,GAAQwI,uBAAyBiE,EACrCzM,EAAQwI,qBAAsB8J,GADtC,GAID,SAAUA,EAAKtS,GACd,GAAIgC,GACHkG,KACA9D,EAAI,EACJgF,EAAUpJ,EAAQwI,qBAAsB8J,EAGzC,IAAa,MAARA,EAAc,CAClB,MAAStQ,EAAOoH,EAAQhF,KACA,IAAlBpC,EAAKQ,UACT0F,EAAI9I,KAAM4C,EAIZ,OAAOkG,GAER,MAAOkB,IAIT+B,EAAK9I,KAAY,MAAIyE,EAAQyI,wBAA0B,SAAUqC,EAAW5R,GAC3E,aAAYA,GAAQuP,yBAA2B9C,GAAgBf,EACvD1L,EAAQuP,uBAAwBqC,GADxC,GAWDhG,KAOAD,MAEM7E,EAAQ0I,IAAMpB,EAAQ1L,KAAM+O,EAAI3B,qBAGrCS,GAAO,SAAUC,GAMhBA,EAAIuB,UAAY,iDAIVvB,EAAIV,iBAAiB,cAAc3N,QACxCwJ,EAAUvM,KAAM,MAAQ2N,EAAa,aAAeD,EAAW,KAM1D0D,EAAIV,iBAAiB,YAAY3N,QACtCwJ,EAAUvM,KAAK,cAIjBmR,GAAO,SAAUC,GAOhB,GAAI+B,GAAQd,EAAIjK,cAAc,QAC9B+K,GAAM5C,aAAc,OAAQ,UAC5Ba,EAAIqB,YAAaU,GAAQ5C,aAAc,IAAK,IAEvCa,EAAIV,iBAAiB,WAAW3N,QACpCwJ,EAAUvM,KAAM,SAAW2N,EAAa,gBAKnCyD,EAAIV,iBAAiB,YAAY3N,QACtCwJ,EAAUvM,KAAM,WAAY,aAI7BoR,EAAIV,iBAAiB,QACrBnE,EAAUvM,KAAK,YAIX0H,EAAQ0L,gBAAkBpE,EAAQ1L,KAAOmJ,EAAUrN,EAAQiU,uBAChEjU,EAAQkU,oBACRlU,EAAQmU,kBACRnU,EAAQoU,qBAERrC,GAAO,SAAUC,GAGhB1J,EAAQ+L,kBAAoBhH,EAAQ1I,KAAMqN,EAAK,OAI/C3E,EAAQ1I,KAAMqN,EAAK,aACnB5E,EAAcxM,KAAM,KAAM+N,KAI5BxB,EAAYA,EAAUxJ,QAAciL,OAAQzB,EAAUkE,KAAK,MAC3DjE,EAAgBA,EAAczJ,QAAciL,OAAQxB,EAAciE,KAAK,MAQvE/D,EAAWsC,EAAQ1L,KAAMlE,EAAQsN,WAActN,EAAQsU,wBACtD,SAAUvG,EAAGC,GACZ,GAAIuG,GAAuB,IAAfxG,EAAE/J,SAAiB+J,EAAE9N,gBAAkB8N,EAClDyG,EAAMxG,GAAKA,EAAEzJ,UACd,OAAOwJ,KAAMyG,MAAWA,GAAwB,IAAjBA,EAAIxQ,YAClCuQ,EAAMjH,SACLiH,EAAMjH,SAAUkH,GAChBzG,EAAEuG,yBAA8D,GAAnCvG,EAAEuG,wBAAyBE,MAG3D,SAAUzG,EAAGC,GACZ,GAAKA,EACJ,MAASA,EAAIA,EAAEzJ,WACd,GAAKyJ,IAAMD,EACV,OAAO,CAIV,QAAO,GAOTD,EAAY9N,EAAQsU,wBACpB,SAAUvG,EAAGC,GAGZ,GAAKD,IAAMC,EAEV,MADAH,IAAe,EACR,CAGR,IAAI4G,GAAUzG,EAAEsG,yBAA2BvG,EAAEuG,yBAA2BvG,EAAEuG,wBAAyBtG,EAEnG,OAAKyG,GAEW,EAAVA,IACFnM,EAAQoM,cAAgB1G,EAAEsG,wBAAyBvG,KAAQ0G,EAGxD1G,IAAMkF,GAAO3F,EAASC,EAAcQ,GACjC,GAEHC,IAAMiF,GAAO3F,EAASC,EAAcS,GACjC,EAIDhB,EACJhM,EAAQ2D,KAAMqI,EAAWe,GAAM/M,EAAQ2D,KAAMqI,EAAWgB,GAC1D,EAGe,EAAVyG,EAAc,GAAK,EAIpB1G,EAAEuG,wBAA0B,GAAK,GAEzC,SAAUvG,EAAGC,GACZ,GAAIuE,GACH3M,EAAI,EACJ+O,EAAM5G,EAAExJ,WACRiQ,EAAMxG,EAAEzJ,WACRqQ,GAAO7G,GACP8G,GAAO7G,EAGR,IAAKD,IAAMC,EAEV,MADAH,IAAe,EACR,CAGD,KAAM8G,IAAQH,EACpB,MAAOzG,KAAMkF,EAAM,GAClBjF,IAAMiF,EAAM,EACZ0B,EAAM,GACNH,EAAM,EACNxH,EACEhM,EAAQ2D,KAAMqI,EAAWe,GAAM/M,EAAQ2D,KAAMqI,EAAWgB,GAC1D,CAGK,IAAK2G,IAAQH,EACnB,MAAOlC,IAAcvE,EAAGC,EAIzBuE,GAAMxE,CACN,OAASwE,EAAMA,EAAIhO,WAClBqQ,EAAGE,QAASvC,EAEbA,GAAMvE,CACN,OAASuE,EAAMA,EAAIhO,WAClBsQ,EAAGC,QAASvC,EAIb,OAAQqC,EAAGhP,KAAOiP,EAAGjP,GACpBA,GAGD,OAAOA,GAEN0M,GAAcsC,EAAGhP,GAAIiP,EAAGjP,IAGxBgP,EAAGhP,KAAO2H,EAAe,GACzBsH,EAAGjP,KAAO2H,EAAe,EACzB,GAGK0F,GA1UClT,GA6UTyQ,GAAOnD,QAAU,SAAU0H,EAAMC,GAChC,MAAOxE,IAAQuE,EAAM,KAAM,KAAMC,IAGlCxE,GAAOwD,gBAAkB,SAAUxQ,EAAMuR,GASxC,IAPOvR,EAAKS,eAAiBT,KAAWzD,GACvCkN,EAAazJ,GAIduR,EAAOA,EAAK/N,QAASgI,EAAkB,aAElC1G,EAAQ0L,kBAAmB9G,GAC5BE,GAAkBA,EAAclJ,KAAM6Q,IACtC5H,GAAkBA,EAAUjJ,KAAM6Q,IAErC,IACC,GAAI/P,GAAMqI,EAAQ1I,KAAMnB,EAAMuR,EAG9B,IAAK/P,GAAOsD,EAAQ+L,mBAGlB7Q,EAAKzD,UAAuC,KAA3ByD,EAAKzD,SAASiE,SAChC,MAAOgB,GAEP,MAAMqD,IAGT,MAAOmI,IAAQuE,EAAMhV,EAAU,MAAOyD,IAAQG,OAAS,GAGxD6M,GAAOlD,SAAW,SAAU9L,EAASgC,GAKpC,OAHOhC,EAAQyC,eAAiBzC,KAAczB,GAC7CkN,EAAazL,GAEP8L,EAAU9L,EAASgC,IAG3BgN,GAAOnM,KAAO,SAAUb,EAAM+C,IAEtB/C,EAAKS,eAAiBT,KAAWzD,GACvCkN,EAAazJ,EAGd,IAAI/B,GAAKkL,EAAK0F,WAAY9L,EAAKgE,eAE9B0K,EAAMxT,GAAM0M,EAAOxJ,KAAMgI,EAAK0F,WAAY9L,EAAKgE,eAC9C9I,EAAI+B,EAAM+C,GAAO2G,GACjBxN,CAEF,OAAOuV,KAAQvV,EACd4I,EAAQoG,aAAexB,EACtB1J,EAAK0N,aAAc3K,IAClB0O,EAAMzR,EAAKqQ,iBAAiBtN,KAAU0O,EAAIC,UAC1CD,EAAIzK,MACJ,KACFyK,GAGFzE,GAAO/H,MAAQ,SAAUC,GACxB,KAAUC,OAAO,0CAA4CD,IAO9D8H,GAAO2E,WAAa,SAAUvK,GAC7B,GAAIpH,GACH4R,KACAtP,EAAI,EACJF,EAAI,CAOL,IAJAiI,GAAgBvF,EAAQ+M,iBACxBrI,GAAa1E,EAAQgN,YAAc1K,EAAQ9J,MAAO,GAClD8J,EAAQ3E,KAAM6H,GAETD,EAAe,CACnB,MAASrK,EAAOoH,EAAQhF,KAClBpC,IAASoH,EAAShF,KACtBE,EAAIsP,EAAWxU,KAAMgF,GAGvB,OAAQE,IACP8E,EAAQ1E,OAAQkP,EAAYtP,GAAK,GAInC,MAAO8E,IAORgC,EAAU4D,GAAO5D,QAAU,SAAUpJ,GACpC,GAAIwP,GACHhO,EAAM,GACNY,EAAI,EACJ5B,EAAWR,EAAKQ,QAEjB,IAAMA,GAMC,GAAkB,IAAbA,GAA+B,IAAbA,GAA+B,KAAbA,EAAkB,CAGjE,GAAiC,gBAArBR,GAAK+R,YAChB,MAAO/R,GAAK+R,WAGZ,KAAM/R,EAAOA,EAAKgQ,WAAYhQ,EAAMA,EAAOA,EAAKkP,YAC/C1N,GAAO4H,EAASpJ,OAGZ,IAAkB,IAAbQ,GAA+B,IAAbA,EAC7B,MAAOR,GAAKgS,cAhBZ,MAASxC,EAAOxP,EAAKoC,GAAKA,IAEzBZ,GAAO4H,EAASoG,EAkBlB,OAAOhO,IAGR2H,EAAO6D,GAAOiF,WAGb7D,YAAa,GAEb8D,aAAc5D,GAEdvO,MAAO4L,EAEPkD,cAEAxO,QAEA8R,UACCC,KAAOC,IAAK,aAAcpQ,OAAO,GACjCqQ,KAAOD,IAAK,cACZE,KAAOF,IAAK,kBAAmBpQ,OAAO,GACtCuQ,KAAOH,IAAK,oBAGbI,WACC1G,KAAQ,SAAUhM,GAUjB,MATAA,GAAM,GAAKA,EAAM,GAAGyD,QAASgJ,GAAWC,IAGxC1M,EAAM,IAAOA,EAAM,IAAMA,EAAM,IAAM,IAAKyD,QAASgJ,GAAWC,IAE5C,OAAb1M,EAAM,KACVA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAGtBA,EAAMzC,MAAO,EAAG,IAGxB2O,MAAS,SAAUlM,GA6BlB,MAlBAA,GAAM,GAAKA,EAAM,GAAGgH,cAEY,QAA3BhH,EAAM,GAAGzC,MAAO,EAAG,IAEjByC,EAAM,IACXiN,GAAO/H,MAAOlF,EAAM,IAKrBA,EAAM,KAAQA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAAK,GAAmB,SAAbA,EAAM,IAA8B,QAAbA,EAAM,KACzFA,EAAM,KAAUA,EAAM,GAAKA,EAAM,IAAqB,QAAbA,EAAM,KAGpCA,EAAM,IACjBiN,GAAO/H,MAAOlF,EAAM,IAGdA,GAGRiM,OAAU,SAAUjM,GACnB,GAAI2S,GACHC,GAAY5S,EAAM,IAAMA,EAAM,EAE/B,OAAK4L,GAAiB,MAAEjL,KAAMX,EAAM,IAC5B,MAIHA,EAAM,IAAMA,EAAM,KAAO7D,EAC7B6D,EAAM,GAAKA,EAAM,GAGN4S,GAAYlH,EAAQ/K,KAAMiS,KAEpCD,EAASjF,GAAUkF,GAAU,MAE7BD,EAASC,EAASnV,QAAS,IAAKmV,EAASxS,OAASuS,GAAWC,EAASxS,UAGvEJ,EAAM,GAAKA,EAAM,GAAGzC,MAAO,EAAGoV,GAC9B3S,EAAM,GAAK4S,EAASrV,MAAO,EAAGoV,IAIxB3S,EAAMzC,MAAO,EAAG,MAIzB6S,QAECrE,IAAO,SAAU8G,GAChB,GAAI9L,GAAW8L,EAAiBpP,QAASgJ,GAAWC,IAAY1F,aAChE,OAA4B,MAArB6L,EACN,WAAa,OAAO,GACpB,SAAU5S,GACT,MAAOA,GAAK8G,UAAY9G,EAAK8G,SAASC,gBAAkBD,IAI3D+E,MAAS,SAAU+D,GAClB,GAAIiD,GAAU5I,EAAY2F,EAAY,IAEtC,OAAOiD,KACLA,EAAczH,OAAQ,MAAQL,EAAa,IAAM6E,EAAY,IAAM7E,EAAa,SACjFd,EAAY2F,EAAW,SAAU5P,GAChC,MAAO6S,GAAQnS,KAAgC,gBAAnBV,GAAK4P,WAA0B5P,EAAK4P,iBAAoB5P,GAAK0N,eAAiBjD,GAAgBzK,EAAK0N,aAAa,UAAY,OAI3J3B,KAAQ,SAAUhJ,EAAM+P,EAAUC,GACjC,MAAO,UAAU/S,GAChB,GAAIgT,GAAShG,GAAOnM,KAAMb,EAAM+C,EAEhC,OAAe,OAAViQ,EACgB,OAAbF,EAEFA,GAINE,GAAU,GAEU,MAAbF,EAAmBE,IAAWD,EACvB,OAAbD,EAAoBE,IAAWD,EAClB,OAAbD,EAAoBC,GAAqC,IAA5BC,EAAOxV,QAASuV,GAChC,OAAbD,EAAoBC,GAASC,EAAOxV,QAASuV,GAAU,GAC1C,OAAbD,EAAoBC,GAASC,EAAO1V,OAAQyV,EAAM5S,UAAa4S,EAClD,OAAbD,GAAsB,IAAME,EAAS,KAAMxV,QAASuV,GAAU,GACjD,OAAbD,EAAoBE,IAAWD,GAASC,EAAO1V,MAAO,EAAGyV,EAAM5S,OAAS,KAAQ4S,EAAQ,KACxF,IAZO,IAgBV9G,MAAS,SAAU3M,EAAM2T,EAAM3D,EAAUrN,EAAOE,GAC/C,GAAI+Q,GAAgC,QAAvB5T,EAAKhC,MAAO,EAAG,GAC3B6V,EAA+B,SAArB7T,EAAKhC,MAAO,IACtB8V,EAAkB,YAATH,CAEV,OAAiB,KAAVhR,GAAwB,IAATE,EAGrB,SAAUnC,GACT,QAASA,EAAKe,YAGf,SAAUf,EAAMhC,EAASiI,GACxB,GAAIkI,GAAOkF,EAAY7D,EAAMR,EAAMsE,EAAWC,EAC7ClB,EAAMa,IAAWC,EAAU,cAAgB,kBAC3CzD,EAAS1P,EAAKe,WACdgC,EAAOqQ,GAAUpT,EAAK8G,SAASC,cAC/ByM,GAAYvN,IAAQmN,CAErB,IAAK1D,EAAS,CAGb,GAAKwD,EAAS,CACb,MAAQb,EAAM,CACb7C,EAAOxP,CACP,OAASwP,EAAOA,EAAM6C,GACrB,GAAKe,EAAS5D,EAAK1I,SAASC,gBAAkBhE,EAAyB,IAAlByM,EAAKhP,SACzD,OAAO,CAIT+S,GAAQlB,EAAe,SAAT/S,IAAoBiU,GAAS,cAE5C,OAAO,EAMR,GAHAA,GAAUJ,EAAUzD,EAAOM,WAAaN,EAAO+D,WAG1CN,GAAWK,EAAW,CAE1BH,EAAa3D,EAAQrM,KAAcqM,EAAQrM,OAC3C8K,EAAQkF,EAAY/T,OACpBgU,EAAYnF,EAAM,KAAOnE,GAAWmE,EAAM,GAC1Ca,EAAOb,EAAM,KAAOnE,GAAWmE,EAAM,GACrCqB,EAAO8D,GAAa5D,EAAO/J,WAAY2N,EAEvC,OAAS9D,IAAS8D,GAAa9D,GAAQA,EAAM6C,KAG3CrD,EAAOsE,EAAY,IAAMC,EAAM3I,MAGhC,GAAuB,IAAlB4E,EAAKhP,YAAoBwO,GAAQQ,IAASxP,EAAO,CACrDqT,EAAY/T,IAAW0K,EAASsJ,EAAWtE,EAC3C,YAKI,IAAKwE,IAAarF,GAASnO,EAAMqD,KAAcrD,EAAMqD,QAAkB/D,KAAW6O,EAAM,KAAOnE,EACrGgF,EAAOb,EAAM,OAKb,OAASqB,IAAS8D,GAAa9D,GAAQA,EAAM6C,KAC3CrD,EAAOsE,EAAY,IAAMC,EAAM3I,MAEhC,IAAOwI,EAAS5D,EAAK1I,SAASC,gBAAkBhE,EAAyB,IAAlByM,EAAKhP,aAAsBwO,IAE5EwE,KACHhE,EAAMnM,KAAcmM,EAAMnM,QAAkB/D,IAAW0K,EAASgF,IAG7DQ,IAASxP,GACb,KAQJ,OADAgP,IAAQ7M,EACD6M,IAAS/M,GAA4B,IAAjB+M,EAAO/M,GAAe+M,EAAO/M,GAAS,KAKrE+J,OAAU,SAAU0H,EAAQpE,GAK3B,GAAI1N,GACH3D,EAAKkL,EAAKgC,QAASuI,IAAYvK,EAAKwK,WAAYD,EAAO3M,gBACtDiG,GAAO/H,MAAO,uBAAyByO,EAKzC,OAAKzV,GAAIoF,GACDpF,EAAIqR,GAIPrR,EAAGkC,OAAS,GAChByB,GAAS8R,EAAQA,EAAQ,GAAIpE,GACtBnG,EAAKwK,WAAW/V,eAAgB8V,EAAO3M,eAC7CuH,GAAa,SAAUrB,EAAMpD,GAC5B,GAAI+J,GACHC,EAAU5V,EAAIgP,EAAMqC,GACpBlN,EAAIyR,EAAQ1T,MACb,OAAQiC,IACPwR,EAAMpW,EAAQ2D,KAAM8L,EAAM4G,EAAQzR,IAClC6K,EAAM2G,KAAW/J,EAAS+J,GAAQC,EAAQzR,MAG5C,SAAUpC,GACT,MAAO/B,GAAI+B,EAAM,EAAG4B,KAIhB3D,IAITkN,SAEC2I,IAAOxF,GAAa,SAAUvQ,GAI7B,GAAIwS,MACHnJ,KACA2M,EAAUzK,EAASvL,EAASyF,QAASlF,EAAO,MAE7C,OAAOyV,GAAS1Q,GACfiL,GAAa,SAAUrB,EAAMpD,EAAS7L,EAASiI,GAC9C,GAAIjG,GACHgU,EAAYD,EAAS9G,EAAM,KAAMhH,MACjC7D,EAAI6K,EAAK9M,MAGV,OAAQiC,KACDpC,EAAOgU,EAAU5R,MACtB6K,EAAK7K,KAAOyH,EAAQzH,GAAKpC,MAI5B,SAAUA,EAAMhC,EAASiI,GAGxB,MAFAsK,GAAM,GAAKvQ,EACX+T,EAASxD,EAAO,KAAMtK,EAAKmB,IACnBA,EAAQwD,SAInBqJ,IAAO3F,GAAa,SAAUvQ,GAC7B,MAAO,UAAUiC,GAChB,MAAOgN,IAAQjP,EAAUiC,GAAOG,OAAS,KAI3C2J,SAAYwE,GAAa,SAAUpH,GAClC,MAAO,UAAUlH,GAChB,OAASA,EAAK+R,aAAe/R,EAAKkU,WAAa9K,EAASpJ,IAASxC,QAAS0J,GAAS,MAWrFiN,KAAQ7F,GAAc,SAAU6F,GAM/B,MAJMzI,GAAYhL,KAAKyT,GAAQ,KAC9BnH,GAAO/H,MAAO,qBAAuBkP,GAEtCA,EAAOA,EAAK3Q,QAASgJ,GAAWC,IAAY1F,cACrC,SAAU/G,GAChB,GAAIoU,EACJ,GACC,IAAMA,EAAW1K,EAChB1J,EAAKmU,KACLnU,EAAK0N,aAAa,aAAe1N,EAAK0N,aAAa,QAGnD,MADA0G,GAAWA,EAASrN,cACbqN,IAAaD,GAA2C,IAAnCC,EAAS5W,QAAS2W,EAAO,YAE5CnU,EAAOA,EAAKe,aAAiC,IAAlBf,EAAKQ,SAC3C,QAAO,KAKT0C,OAAU,SAAUlD,GACnB,GAAIqU,GAAOpY,EAAOK,UAAYL,EAAOK,SAAS+X,IAC9C,OAAOA,IAAQA,EAAK/W,MAAO,KAAQ0C,EAAKgB,IAGzCsT,KAAQ,SAAUtU,GACjB,MAAOA,KAASxD,GAGjB+X,MAAS,SAAUvU,GAClB,MAAOA,KAASzD,EAASiY,iBAAmBjY,EAASkY,UAAYlY,EAASkY,gBAAkBzU,EAAKV,MAAQU,EAAK0U,OAAS1U,EAAK2U,WAI7HC,QAAW,SAAU5U,GACpB,MAAOA,GAAK6U,YAAa,GAG1BA,SAAY,SAAU7U,GACrB,MAAOA,GAAK6U,YAAa,GAG1BC,QAAW,SAAU9U,GAGpB,GAAI8G,GAAW9G,EAAK8G,SAASC,aAC7B,OAAqB,UAAbD,KAA0B9G,EAAK8U,SAA0B,WAAbhO,KAA2B9G,EAAK+U,UAGrFA,SAAY,SAAU/U,GAOrB,MAJKA,GAAKe,YACTf,EAAKe,WAAWiU,cAGVhV,EAAK+U,YAAa,GAI1BE,MAAS,SAAUjV,GAMlB,IAAMA,EAAOA,EAAKgQ,WAAYhQ,EAAMA,EAAOA,EAAKkP,YAC/C,GAAKlP,EAAK8G,SAAW,KAAyB,IAAlB9G,EAAKQ,UAAoC,IAAlBR,EAAKQ,SACvD,OAAO,CAGT,QAAO,GAGRkP,OAAU,SAAU1P,GACnB,OAAQmJ,EAAKgC,QAAe,MAAGnL,IAIhCkV,OAAU,SAAUlV,GACnB,MAAOsM,IAAQ5L,KAAMV,EAAK8G,WAG3ByJ,MAAS,SAAUvQ,GAClB,MAAOqM,IAAQ3L,KAAMV,EAAK8G,WAG3BqO,OAAU,SAAUnV,GACnB,GAAI+C,GAAO/C,EAAK8G,SAASC,aACzB,OAAgB,UAAThE,GAAkC,WAAd/C,EAAKV,MAA8B,WAATyD,GAGtDmE,KAAQ,SAAUlH,GACjB,GAAIa,EAGJ,OAAuC,UAAhCb,EAAK8G,SAASC,eACN,SAAd/G,EAAKV,OACmC,OAArCuB,EAAOb,EAAK0N,aAAa,UAAoB7M,EAAKkG,gBAAkB/G,EAAKV,OAI9E2C,MAASoN,GAAuB,WAC/B,OAAS,KAGVlN,KAAQkN,GAAuB,SAAUE,EAAcpP,GACtD,OAASA,EAAS,KAGnB+B,GAAMmN,GAAuB,SAAUE,EAAcpP,EAAQmP,GAC5D,OAAoB,EAAXA,EAAeA,EAAWnP,EAASmP,KAG7C8F,KAAQ/F,GAAuB,SAAUE,EAAcpP,GACtD,GAAIiC,GAAI,CACR,MAAYjC,EAAJiC,EAAYA,GAAK,EACxBmN,EAAanS,KAAMgF,EAEpB,OAAOmN,KAGR8F,IAAOhG,GAAuB,SAAUE,EAAcpP,GACrD,GAAIiC,GAAI,CACR,MAAYjC,EAAJiC,EAAYA,GAAK,EACxBmN,EAAanS,KAAMgF,EAEpB,OAAOmN,KAGR+F,GAAMjG,GAAuB,SAAUE,EAAcpP,EAAQmP,GAC5D,GAAIlN,GAAe,EAAXkN,EAAeA,EAAWnP,EAASmP,CAC3C,QAAUlN,GAAK,GACdmN,EAAanS,KAAMgF,EAEpB,OAAOmN,KAGRgG,GAAMlG,GAAuB,SAAUE,EAAcpP,EAAQmP,GAC5D,GAAIlN,GAAe,EAAXkN,EAAeA,EAAWnP,EAASmP,CAC3C,MAAcnP,IAAJiC,GACTmN,EAAanS,KAAMgF,EAEpB,OAAOmN,OAKVpG,EAAKgC,QAAa,IAAIhC,EAAKgC,QAAY,EAGvC,KAAM/I,KAAOoT,OAAO,EAAMC,UAAU,EAAMC,MAAM,EAAMC,UAAU,EAAMC,OAAO,GAC5EzM,EAAKgC,QAAS/I,GAAM+M,GAAmB/M,EAExC,KAAMA,KAAOyT,QAAQ,EAAMC,OAAO,GACjC3M,EAAKgC,QAAS/I,GAAMgN,GAAoBhN,EAIzC,SAASuR,OACTA,GAAW/T,UAAYuJ,EAAK4M,QAAU5M,EAAKgC,QAC3ChC,EAAKwK,WAAa,GAAIA,GAEtB,SAASlG,IAAU1P,EAAUiY,GAC5B,GAAInC,GAAS9T,EAAOkW,EAAQ3W,EAC3B4W,EAAO/I,EAAQgJ,EACfC,EAASjM,EAAYpM,EAAW,IAEjC,IAAKqY,EACJ,MAAOJ,GAAY,EAAII,EAAO9Y,MAAO,EAGtC4Y,GAAQnY,EACRoP,KACAgJ,EAAahN,EAAKsJ,SAElB,OAAQyD,EAAQ,GAGTrC,IAAY9T,EAAQsL,EAAOjL,KAAM8V,OACjCnW,IAEJmW,EAAQA,EAAM5Y,MAAOyC,EAAM,GAAGI,SAAY+V,GAE3C/I,EAAO/P,KAAM6Y,OAGdpC,GAAU,GAGJ9T,EAAQuL,EAAalL,KAAM8V,MAChCrC,EAAU9T,EAAMsO,QAChB4H,EAAO7Y,MACN4J,MAAO6M,EAEPvU,KAAMS,EAAM,GAAGyD,QAASlF,EAAO,OAEhC4X,EAAQA,EAAM5Y,MAAOuW,EAAQ1T,QAI9B,KAAMb,IAAQ6J,GAAKgH,SACZpQ,EAAQ4L,EAAWrM,GAAOc,KAAM8V,KAAcC,EAAY7W,MAC9DS,EAAQoW,EAAY7W,GAAQS,MAC7B8T,EAAU9T,EAAMsO,QAChB4H,EAAO7Y,MACN4J,MAAO6M,EACPvU,KAAMA,EACNuK,QAAS9J,IAEVmW,EAAQA,EAAM5Y,MAAOuW,EAAQ1T,QAI/B,KAAM0T,EACL,MAOF,MAAOmC,GACNE,EAAM/V,OACN+V,EACClJ,GAAO/H,MAAOlH,GAEdoM,EAAYpM,EAAUoP,GAAS7P,MAAO,GAGzC,QAASsQ,IAAYqI,GACpB,GAAI7T,GAAI,EACPC,EAAM4T,EAAO9V,OACbpC,EAAW,EACZ,MAAYsE,EAAJD,EAASA,IAChBrE,GAAYkY,EAAO7T,GAAG4E,KAEvB,OAAOjJ,GAGR,QAASsY,IAAetC,EAASuC,EAAYC,GAC5C,GAAIlE,GAAMiE,EAAWjE,IACpBmE,EAAmBD,GAAgB,eAARlE,EAC3BoE,EAAW3U,GAEZ,OAAOwU,GAAWrU,MAEjB,SAAUjC,EAAMhC,EAASiI,GACxB,MAASjG,EAAOA,EAAMqS,GACrB,GAAuB,IAAlBrS,EAAKQ,UAAkBgW,EAC3B,MAAOzC,GAAS/T,EAAMhC,EAASiI,IAMlC,SAAUjG,EAAMhC,EAASiI,GACxB,GAAIb,GAAM+I,EAAOkF,EAChBqD,EAAS1M,EAAU,IAAMyM,CAG1B,IAAKxQ,GACJ,MAASjG,EAAOA,EAAMqS,GACrB,IAAuB,IAAlBrS,EAAKQ,UAAkBgW,IACtBzC,EAAS/T,EAAMhC,EAASiI,GAC5B,OAAO,MAKV,OAASjG,EAAOA,EAAMqS,GACrB,GAAuB,IAAlBrS,EAAKQ,UAAkBgW,EAE3B,GADAnD,EAAarT,EAAMqD,KAAcrD,EAAMqD,QACjC8K,EAAQkF,EAAYhB,KAAUlE,EAAM,KAAOuI,GAChD,IAAMtR,EAAO+I,EAAM,OAAQ,GAAQ/I,IAAS8D,EAC3C,MAAO9D,MAAS,MAKjB,IAFA+I,EAAQkF,EAAYhB,IAAUqE,GAC9BvI,EAAM,GAAK4F,EAAS/T,EAAMhC,EAASiI,IAASiD,EACvCiF,EAAM,MAAO,EACjB,OAAO,GASf,QAASwI,IAAgBC,GACxB,MAAOA,GAASzW,OAAS,EACxB,SAAUH,EAAMhC,EAASiI,GACxB,GAAI7D,GAAIwU,EAASzW,MACjB,OAAQiC,IACP,IAAMwU,EAASxU,GAAIpC,EAAMhC,EAASiI,GACjC,OAAO,CAGT,QAAO,GAER2Q,EAAS,GAGX,QAASC,IAAU7C,EAAWzR,EAAK4N,EAAQnS,EAASiI,GACnD,GAAIjG,GACH8W,KACA1U,EAAI,EACJC,EAAM2R,EAAU7T,OAChB4W,EAAgB,MAAPxU,CAEV,MAAYF,EAAJD,EAASA,KACVpC,EAAOgU,EAAU5R,OAChB+N,GAAUA,EAAQnQ,EAAMhC,EAASiI,MACtC6Q,EAAa1Z,KAAM4C,GACd+W,GACJxU,EAAInF,KAAMgF,GAMd,OAAO0U,GAGR,QAASE,IAAYvE,EAAW1U,EAAUgW,EAASkD,EAAYC,EAAYC,GAO1E,MANKF,KAAeA,EAAY5T,KAC/B4T,EAAaD,GAAYC,IAErBC,IAAeA,EAAY7T,KAC/B6T,EAAaF,GAAYE,EAAYC,IAE/B7I,GAAa,SAAUrB,EAAM7F,EAASpJ,EAASiI,GACrD,GAAImR,GAAMhV,EAAGpC,EACZqX,KACAC,KACAC,EAAcnQ,EAAQjH,OAGtBoB,EAAQ0L,GAAQuK,GAAkBzZ,GAAY,IAAKC,EAAQwC,UAAaxC,GAAYA,MAGpFyZ,GAAYhF,IAAexF,GAASlP,EAEnCwD,EADAsV,GAAUtV,EAAO8V,EAAQ5E,EAAWzU,EAASiI,GAG9CyR,EAAa3D,EAEZmD,IAAgBjK,EAAOwF,EAAY8E,GAAeN,MAMjD7P,EACDqQ,CAQF,IALK1D,GACJA,EAAS0D,EAAWC,EAAY1Z,EAASiI,GAIrCgR,EAAa,CACjBG,EAAOP,GAAUa,EAAYJ,GAC7BL,EAAYG,KAAUpZ,EAASiI,GAG/B7D,EAAIgV,EAAKjX,MACT,OAAQiC,KACDpC,EAAOoX,EAAKhV,MACjBsV,EAAYJ,EAAQlV,MAASqV,EAAWH,EAAQlV,IAAOpC,IAK1D,GAAKiN,GACJ,GAAKiK,GAAczE,EAAY,CAC9B,GAAKyE,EAAa,CAEjBE,KACAhV,EAAIsV,EAAWvX,MACf,OAAQiC,KACDpC,EAAO0X,EAAWtV,KAEvBgV,EAAKha,KAAOqa,EAAUrV,GAAKpC,EAG7BkX,GAAY,KAAOQ,KAAkBN,EAAMnR,GAI5C7D,EAAIsV,EAAWvX,MACf,OAAQiC,KACDpC,EAAO0X,EAAWtV,MACtBgV,EAAOF,EAAa1Z,EAAQ2D,KAAM8L,EAAMjN,GAASqX,EAAOjV,IAAM,KAE/D6K,EAAKmK,KAAUhQ,EAAQgQ,GAAQpX,SAOlC0X,GAAab,GACZa,IAAetQ,EACdsQ,EAAWhV,OAAQ6U,EAAaG,EAAWvX,QAC3CuX,GAEGR,EACJA,EAAY,KAAM9P,EAASsQ,EAAYzR,GAEvC7I,EAAK2E,MAAOqF,EAASsQ,KAMzB,QAASC,IAAmB1B,GAC3B,GAAI2B,GAAc7D,EAASzR,EAC1BD,EAAM4T,EAAO9V,OACb0X,EAAkB1O,EAAKgJ,SAAU8D,EAAO,GAAG3W,MAC3CwY,EAAmBD,GAAmB1O,EAAKgJ,SAAS,KACpD/P,EAAIyV,EAAkB,EAAI,EAG1BE,EAAe1B,GAAe,SAAUrW,GACvC,MAAOA,KAAS4X,GACdE,GAAkB,GACrBE,EAAkB3B,GAAe,SAAUrW,GAC1C,MAAOxC,GAAQ2D,KAAMyW,EAAc5X,GAAS,IAC1C8X,GAAkB,GACrBlB,GAAa,SAAU5W,EAAMhC,EAASiI,GACrC,OAAU4R,IAAqB5R,GAAOjI,IAAYuL,MAChDqO,EAAe5Z,GAASwC,SACxBuX,EAAc/X,EAAMhC,EAASiI,GAC7B+R,EAAiBhY,EAAMhC,EAASiI,KAGpC,MAAY5D,EAAJD,EAASA,IAChB,GAAM2R,EAAU5K,EAAKgJ,SAAU8D,EAAO7T,GAAG9C,MACxCsX,GAAaP,GAAcM,GAAgBC,GAAY7C,QACjD,CAIN,GAHAA,EAAU5K,EAAKgH,OAAQ8F,EAAO7T,GAAG9C,MAAOyC,MAAO,KAAMkU,EAAO7T,GAAGyH,SAG1DkK,EAAS1Q,GAAY,CAGzB,IADAf,IAAMF,EACMC,EAAJC,EAASA,IAChB,GAAK6G,EAAKgJ,SAAU8D,EAAO3T,GAAGhD,MAC7B,KAGF,OAAO0X,IACN5U,EAAI,GAAKuU,GAAgBC,GACzBxU,EAAI,GAAKwL,GAERqI,EAAO3Y,MAAO,EAAG8E,EAAI,GAAIlF,QAAS8J,MAAgC,MAAzBiP,EAAQ7T,EAAI,GAAI9C,KAAe,IAAM,MAC7EkE,QAASlF,EAAO,MAClByV,EACIzR,EAAJF,GAASuV,GAAmB1B,EAAO3Y,MAAO8E,EAAGE,IACzCD,EAAJC,GAAWqV,GAAoB1B,EAASA,EAAO3Y,MAAOgF,IAClDD,EAAJC,GAAWsL,GAAYqI,IAGzBW,EAASxZ,KAAM2W,GAIjB,MAAO4C,IAAgBC,GAGxB,QAASqB,IAA0BC,EAAiBC,GAEnD,GAAIC,GAAoB,EACvBC,EAAQF,EAAYhY,OAAS,EAC7BmY,EAAYJ,EAAgB/X,OAAS,EACrCoY,EAAe,SAAUtL,EAAMjP,EAASiI,EAAKmB,EAASoR,GACrD,GAAIxY,GAAMsC,EAAGyR,EACZ0E,KACAC,EAAe,EACftW,EAAI,IACJ4R,EAAY/G,MACZ0L,EAA6B,MAAjBH,EACZI,EAAgBrP,EAEhBhI,EAAQ0L,GAAQqL,GAAanP,EAAK9I,KAAU,IAAG,IAAKmY,GAAiBxa,EAAQ+C,YAAc/C,GAE3F6a,EAAiB7O,GAA4B,MAAjB4O,EAAwB,EAAItV,KAAKC,UAAY,EAS1E,KAPKoV,IACJpP,EAAmBvL,IAAYzB,GAAYyB,EAC3CkL,EAAakP,GAKe,OAApBpY,EAAOuB,EAAMa,IAAaA,IAAM,CACxC,GAAKkW,GAAatY,EAAO,CACxBsC,EAAI,CACJ,OAASyR,EAAUmE,EAAgB5V,KAClC,GAAKyR,EAAS/T,EAAMhC,EAASiI,GAAQ,CACpCmB,EAAQhK,KAAM4C,EACd,OAGG2Y,IACJ3O,EAAU6O,EACV3P,IAAekP,GAKZC,KAEErY,GAAQ+T,GAAW/T,IACxB0Y,IAIIzL,GACJ+G,EAAU5W,KAAM4C,IAOnB,GADA0Y,GAAgBtW,EACXiW,GAASjW,IAAMsW,EAAe,CAClCpW,EAAI,CACJ,OAASyR,EAAUoE,EAAY7V,KAC9ByR,EAASC,EAAWyE,EAAYza,EAASiI,EAG1C,IAAKgH,EAAO,CAEX,GAAKyL,EAAe,EACnB,MAAQtW,IACA4R,EAAU5R,IAAMqW,EAAWrW,KACjCqW,EAAWrW,GAAKwI,EAAIzJ,KAAMiG,GAM7BqR,GAAa5B,GAAU4B,GAIxBrb,EAAK2E,MAAOqF,EAASqR,GAGhBE,IAAc1L,GAAQwL,EAAWtY,OAAS,GAC5CuY,EAAeP,EAAYhY,OAAW,GAExC6M,GAAO2E,WAAYvK,GAUrB,MALKuR,KACJ3O,EAAU6O,EACVtP,EAAmBqP,GAGb5E,EAGT,OAAOqE,GACN/J,GAAciK,GACdA,EAGFjP,EAAU0D,GAAO1D,QAAU,SAAUvL,EAAU+a,GAC9C,GAAI1W,GACH+V,KACAD,KACA9B,EAAShM,EAAerM,EAAW,IAEpC,KAAMqY,EAAS,CAER0C,IACLA,EAAQrL,GAAU1P,IAEnBqE,EAAI0W,EAAM3Y,MACV,OAAQiC,IACPgU,EAASuB,GAAmBmB,EAAM1W,IAC7BgU,EAAQ/S,GACZ8U,EAAY/a,KAAMgZ,GAElB8B,EAAgB9a,KAAMgZ,EAKxBA,GAAShM,EAAerM,EAAUka,GAA0BC,EAAiBC,IAE9E,MAAO/B,GAGR,SAASoB,IAAkBzZ,EAAUgb,EAAU3R,GAC9C,GAAIhF,GAAI,EACPC,EAAM0W,EAAS5Y,MAChB,MAAYkC,EAAJD,EAASA,IAChB4K,GAAQjP,EAAUgb,EAAS3W,GAAIgF,EAEhC,OAAOA,GAGR,QAAS6G,IAAQlQ,EAAUC,EAASoJ,EAAS6F,GAC5C,GAAI7K,GAAG6T,EAAQ+C,EAAO1Z,EAAMe,EAC3BN,EAAQ0N,GAAU1P,EAEnB,KAAMkP,GAEiB,IAAjBlN,EAAMI,OAAe,CAIzB,GADA8V,EAASlW,EAAM,GAAKA,EAAM,GAAGzC,MAAO,GAC/B2Y,EAAO9V,OAAS,GAAkC,QAA5B6Y,EAAQ/C,EAAO,IAAI3W,MAC5CwF,EAAQmL,SAAgC,IAArBjS,EAAQwC,UAAkBkJ,GAC7CP,EAAKgJ,SAAU8D,EAAO,GAAG3W,MAAS,CAGnC,GADAtB,GAAYmL,EAAK9I,KAAS,GAAG2Y,EAAMnP,QAAQ,GAAGrG,QAAQgJ,GAAWC,IAAYzO,QAAkB,IACzFA,EACL,MAAOoJ,EAERrJ,GAAWA,EAAST,MAAO2Y,EAAO5H,QAAQrH,MAAM7G,QAIjDiC,EAAIuJ,EAAwB,aAAEjL,KAAM3C,GAAa,EAAIkY,EAAO9V,MAC5D,OAAQiC,IAAM,CAIb,GAHA4W,EAAQ/C,EAAO7T,GAGV+G,EAAKgJ,SAAW7S,EAAO0Z,EAAM1Z,MACjC,KAED,KAAMe,EAAO8I,EAAK9I,KAAMf,MAEjB2N,EAAO5M,EACZ2Y,EAAMnP,QAAQ,GAAGrG,QAASgJ,GAAWC,IACrClB,EAAS7K,KAAMuV,EAAO,GAAG3W,OAAUtB,EAAQ+C,YAAc/C,IACrD,CAKJ,GAFAiY,EAAOvT,OAAQN,EAAG,GAClBrE,EAAWkP,EAAK9M,QAAUyN,GAAYqI,IAChClY,EAEL,MADAX,GAAK2E,MAAOqF,EAAS6F,GACd7F,CAGR,SAgBL,MAPAkC,GAASvL,EAAUgC,GAClBkN,EACAjP,GACC0L,EACDtC,EACAmE,EAAS7K,KAAM3C,IAETqJ,EAMRtC,EAAQgN,WAAazO,EAAQ4F,MAAM,IAAIxG,KAAM6H,GAAYuD,KAAK,MAAQxK,EAItEyB,EAAQ+M,iBAAmBxH,EAG3BZ,IAIA3E,EAAQoM,aAAe3C,GAAO,SAAU0K,GAEvC,MAAuE,GAAhEA,EAAKnI,wBAAyBvU,EAASiJ,cAAc,UAMvD+I,GAAO,SAAUC,GAEtB,MADAA,GAAIuB,UAAY,mBAC+B,MAAxCvB,EAAIwB,WAAWtC,aAAa,WAEnCgB,GAAW,yBAA0B,SAAU1O,EAAM+C,EAAMsG,GAC1D,MAAMA,GAAN,EACQrJ,EAAK0N,aAAc3K,EAA6B,SAAvBA,EAAKgE,cAA2B,EAAI,KAOjEjC,EAAQoG,YAAeqD,GAAO,SAAUC,GAG7C,MAFAA,GAAIuB,UAAY,WAChBvB,EAAIwB,WAAWrC,aAAc,QAAS,IACY,KAA3Ca,EAAIwB,WAAWtC,aAAc,YAEpCgB,GAAW,QAAS,SAAU1O,EAAM+C,EAAMsG,GACzC,MAAMA,IAAyC,UAAhCrJ,EAAK8G,SAASC,cAA7B,EACQ/G,EAAKkZ,eAOT3K,GAAO,SAAUC,GACtB,MAAuC,OAAhCA,EAAId,aAAa,eAExBgB,GAAW5D,EAAU,SAAU9K,EAAM+C,EAAMsG,GAC1C,GAAIoI,EACJ,OAAMpI,GAAN,GACSoI,EAAMzR,EAAKqQ,iBAAkBtN,KAAW0O,EAAIC,UACnDD,EAAIzK,MACJhH,EAAM+C,MAAW,EAAOA,EAAKgE,cAAgB,OAKjDpK,EAAO0D,KAAO2M,GACdrQ,EAAO4U,KAAOvE,GAAOiF,UACrBtV,EAAO4U,KAAK,KAAO5U,EAAO4U,KAAKpG,QAC/BxO,EAAOwc,OAASnM,GAAO2E,WACvBhV,EAAOuK,KAAO8F,GAAO5D,QACrBzM,EAAOyc,SAAWpM,GAAO3D,MACzB1M,EAAOmN,SAAWkD,GAAOlD,UAGrB7N,EAEJ,IAAIod,KAGJ,SAASC,GAAetW,GACvB,GAAIuW,GAASF,EAAcrW,KAI3B,OAHArG,GAAO+E,KAAMsB,EAAQjD,MAAO1B,OAAwB,SAAUqO,EAAG8M,GAChED,EAAQC,IAAS,IAEXD,EAyBR5c,EAAO8c,UAAY,SAAUzW,GAI5BA,EAA6B,gBAAZA,GACdqW,EAAcrW,IAAasW,EAAetW,GAC5CrG,EAAOgG,UAAYK,EAEpB,IACC0W,GAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAC,KAEAC,GAASjX,EAAQkX,SAEjBC,EAAO,SAAU/U,GAOhB,IANAuU,EAAS3W,EAAQ2W,QAAUvU,EAC3BwU,GAAQ,EACRE,EAAcC,GAAe,EAC7BA,EAAc,EACdF,EAAeG,EAAK7Z,OACpBuZ,GAAS,EACDM,GAAsBH,EAAdC,EAA4BA,IAC3C,GAAKE,EAAMF,GAAc/X,MAAOqD,EAAM,GAAKA,EAAM,OAAU,GAASpC,EAAQoX,YAAc,CACzFT,GAAS,CACT,OAGFD,GAAS,EACJM,IACCC,EACCA,EAAM9Z,QACVga,EAAMF,EAAM5L,SAEFsL,EACXK,KAEAK,EAAKC,YAKRD,GAECE,IAAK,WACJ,GAAKP,EAAO,CAEX,GAAIzG,GAAQyG,EAAK7Z,QACjB,QAAUoa,GAAK3Y,GACdjF,EAAO+E,KAAME,EAAM,SAAU8K,EAAG7E,GAC/B,GAAIvI,GAAO3C,EAAO2C,KAAMuI,EACV,cAATvI,EACE0D,EAAQmW,QAAWkB,EAAKpG,IAAKpM,IAClCmS,EAAK5c,KAAMyK,GAEDA,GAAOA,EAAI1H,QAAmB,WAATb,GAEhCib,EAAK1S,OAGJ7F,WAGC0X,EACJG,EAAeG,EAAK7Z,OAGTwZ,IACXI,EAAcxG,EACd4G,EAAMR,IAGR,MAAO1Z,OAGRyF,OAAQ,WAkBP,MAjBKsU,IACJrd,EAAO+E,KAAMM,UAAW,SAAU0K,EAAG7E,GACpC,GAAI2S,EACJ,QAASA,EAAQ7d,EAAO2K,QAASO,EAAKmS,EAAMQ,IAAY,GACvDR,EAAKtX,OAAQ8X,EAAO,GAEfd,IACUG,GAATW,GACJX,IAEaC,GAATU,GACJV,OAME7Z,MAIRgU,IAAK,SAAUhW,GACd,MAAOA,GAAKtB,EAAO2K,QAASrJ,EAAI+b,GAAS,MAASA,IAAQA,EAAK7Z,SAGhE8U,MAAO,WAGN,MAFA+E,MACAH,EAAe,EACR5Z,MAGRqa,QAAS,WAER,MADAN,GAAOC,EAAQN,EAASzd,EACjB+D,MAGR4U,SAAU,WACT,OAAQmF,GAGTS,KAAM,WAKL,MAJAR,GAAQ/d,EACFyd,GACLU,EAAKC,UAECra,MAGRya,OAAQ,WACP,OAAQT,GAGTU,SAAU,SAAU3c,EAAS4D,GAU5B,OATKoY,GAAWJ,IAASK,IACxBrY,EAAOA,MACPA,GAAS5D,EAAS4D,EAAKtE,MAAQsE,EAAKtE,QAAUsE,GACzC8X,EACJO,EAAM7c,KAAMwE,GAEZuY,EAAMvY,IAGD3B,MAGRka,KAAM,WAEL,MADAE,GAAKM,SAAU1a,KAAM+B,WACd/B,MAGR2Z,MAAO,WACN,QAASA,GAIZ,OAAOS,IAER1d,EAAOgG,QAENgG,SAAU,SAAUiS,GACnB,GAAIC,KAEA,UAAW,OAAQle,EAAO8c,UAAU,eAAgB,aACpD,SAAU,OAAQ9c,EAAO8c,UAAU,eAAgB,aACnD,SAAU,WAAY9c,EAAO8c,UAAU,YAE1CqB,EAAQ,UACRjZ,GACCiZ,MAAO,WACN,MAAOA,IAERC,OAAQ,WAEP,MADAC,GAASlZ,KAAME,WAAYiZ,KAAMjZ,WAC1B/B,MAERib,KAAM,WACL,GAAIC,GAAMnZ,SACV,OAAOrF,GAAOgM,SAAS,SAAUyS,GAChCze,EAAO+E,KAAMmZ,EAAQ,SAAUzY,EAAGiZ,GACjC,GAAIC,GAASD,EAAO,GACnBpd,EAAKtB,EAAOiE,WAAYua,EAAK/Y,KAAS+Y,EAAK/Y,EAE5C4Y,GAAUK,EAAM,IAAK,WACpB,GAAIE,GAAWtd,GAAMA,EAAG8D,MAAO9B,KAAM+B,UAChCuZ,IAAY5e,EAAOiE,WAAY2a,EAAS1Z,SAC5C0Z,EAAS1Z,UACPC,KAAMsZ,EAASI,SACfP,KAAMG,EAASK,QACfC,SAAUN,EAASO,QAErBP,EAAUE,EAAS,QAAUrb,OAAS4B,EAAUuZ,EAASvZ,UAAY5B,KAAMhC,GAAOsd,GAAavZ,eAIlGmZ,EAAM,OACJtZ,WAIJA,QAAS,SAAUuC,GAClB,MAAc,OAAPA,EAAczH,EAAOgG,OAAQyB,EAAKvC,GAAYA,IAGvDmZ,IAwCD,OArCAnZ,GAAQ+Z,KAAO/Z,EAAQqZ,KAGvBve,EAAO+E,KAAMmZ,EAAQ,SAAUzY,EAAGiZ,GACjC,GAAIrB,GAAOqB,EAAO,GACjBQ,EAAcR,EAAO,EAGtBxZ,GAASwZ,EAAM,IAAOrB,EAAKO,IAGtBsB,GACJ7B,EAAKO,IAAI,WAERO,EAAQe,GAGNhB,EAAY,EAAJzY,GAAS,GAAIkY,QAASO,EAAQ,GAAK,GAAIJ,MAInDO,EAAUK,EAAM,IAAO,WAEtB,MADAL,GAAUK,EAAM,GAAK,QAAUpb,OAAS+a,EAAWnZ,EAAU5B,KAAM+B,WAC5D/B,MAER+a,EAAUK,EAAM,GAAK,QAAWrB,EAAKW,WAItC9Y,EAAQA,QAASmZ,GAGZJ,GACJA,EAAKzZ,KAAM6Z,EAAUA,GAIfA,GAIRc,KAAM,SAAUC,GACf,GAAI3Z,GAAI,EACP4Z,EAAgB3e,EAAW8D,KAAMa,WACjC7B,EAAS6b,EAAc7b,OAGvB8b,EAAuB,IAAX9b,GAAkB4b,GAAepf,EAAOiE,WAAYmb,EAAYla,SAAc1B,EAAS,EAGnG6a,EAAyB,IAAdiB,EAAkBF,EAAcpf,EAAOgM,WAGlDuT,EAAa,SAAU9Z,EAAG2W,EAAUoD,GACnC,MAAO,UAAUnV,GAChB+R,EAAU3W,GAAMnC,KAChBkc,EAAQ/Z,GAAMJ,UAAU7B,OAAS,EAAI9C,EAAW8D,KAAMa,WAAcgF,EAChEmV,IAAWC,EACdpB,EAASqB,WAAYtD,EAAUoD,KACfF,GAChBjB,EAAS/W,YAAa8U,EAAUoD,KAKnCC,EAAgBE,EAAkBC,CAGnC,IAAKpc,EAAS,EAIb,IAHAic,EAAqB/X,MAAOlE,GAC5Bmc,EAAuBjY,MAAOlE,GAC9Boc,EAAsBlY,MAAOlE,GACjBA,EAAJiC,EAAYA,IACd4Z,EAAe5Z,IAAOzF,EAAOiE,WAAYob,EAAe5Z,GAAIP,SAChEma,EAAe5Z,GAAIP,UACjBC,KAAMoa,EAAY9Z,EAAGma,EAAiBP,IACtCf,KAAMD,EAASS,QACfC,SAAUQ,EAAY9Z,EAAGka,EAAkBF,MAE3CH,CAUL,OAJMA,IACLjB,EAAS/W,YAAasY,EAAiBP,GAGjChB,EAASnZ,aAGlBlF,EAAOmI,QAAU,SAAWA,GAE3B,GAAI9F,GAAKuL,EAAGgG,EAAOtC,EAAQuO,EAAUC,EAAKC,EAAWC,EAAava,EACjEoM,EAAMjS,EAASiJ,cAAc,MAS9B,IANAgJ,EAAIb,aAAc,YAAa,KAC/Ba,EAAIuB,UAAY,qEAGhB/Q,EAAMwP,EAAIhI,qBAAqB,SAC/B+D,EAAIiE,EAAIhI,qBAAqB,KAAM,IAC7B+D,IAAMA,EAAE7B,QAAU1J,EAAImB,OAC3B,MAAO2E,EAIRmJ,GAAS1R,EAASiJ,cAAc,UAChCiX,EAAMxO,EAAO4B,YAAatT,EAASiJ,cAAc,WACjD+K,EAAQ/B,EAAIhI,qBAAqB,SAAU,GAE3C+D,EAAE7B,MAAMkU,QAAU,gCAGlB9X,EAAQ+X,gBAAoC,MAAlBrO,EAAIoB,UAG9B9K,EAAQgY,kBAAgD,IAA5BtO,EAAIwB,WAAWxP,SAI3CsE,EAAQiY,OAASvO,EAAIhI,qBAAqB,SAASrG,OAInD2E,EAAQkY,gBAAkBxO,EAAIhI,qBAAqB,QAAQrG,OAI3D2E,EAAQ4D,MAAQ,MAAMhI,KAAM6J,EAAEmD,aAAa,UAI3C5I,EAAQmY,eAA4C,OAA3B1S,EAAEmD,aAAa,QAKxC5I,EAAQoY,QAAU,OAAOxc,KAAM6J,EAAE7B,MAAMwU,SAIvCpY,EAAQqY,WAAa5S,EAAE7B,MAAMyU,SAG7BrY,EAAQsY,UAAY7M,EAAMvJ,MAI1BlC,EAAQuY,YAAcZ,EAAI1H,SAG1BjQ,EAAQwY,UAAY/gB,EAASiJ,cAAc,QAAQ8X,QAInDxY,EAAQyY,WAA2E,kBAA9DhhB,EAASiJ,cAAc,OAAOgY,WAAW,GAAOC,UAGrE3Y,EAAQ4Y,wBAAyB,EACjC5Y,EAAQ6Y,kBAAmB,EAC3B7Y,EAAQ8Y,eAAgB,EACxB9Y,EAAQ+Y,eAAgB,EACxB/Y,EAAQgZ,cAAe,EACvBhZ,EAAQiZ,qBAAsB,EAC9BjZ,EAAQkZ,mBAAoB,EAG5BzN,EAAMuE,SAAU,EAChBhQ,EAAQmZ,eAAiB1N,EAAMiN,WAAW,GAAO1I,QAIjD7G,EAAO4G,UAAW,EAClB/P,EAAQoZ,aAAezB,EAAI5H,QAG3B,WACQrG,GAAI9N,KACV,MAAOmE,GACRC,EAAQ+Y,eAAgB,EAIzBtN,EAAQhU,EAASiJ,cAAc,SAC/B+K,EAAM5C,aAAc,QAAS,IAC7B7I,EAAQyL,MAA0C,KAAlCA,EAAM7C,aAAc,SAGpC6C,EAAMvJ,MAAQ,IACduJ,EAAM5C,aAAc,OAAQ,SAC5B7I,EAAQqZ,WAA6B,MAAhB5N,EAAMvJ,MAG3BuJ,EAAM5C,aAAc,UAAW,KAC/B4C,EAAM5C,aAAc,OAAQ,KAE5B6O,EAAWjgB,EAAS6hB,yBACpB5B,EAAS3M,YAAaU,GAItBzL,EAAQuZ,cAAgB9N,EAAMuE,QAG9BhQ,EAAQwZ,WAAa9B,EAASgB,WAAW,GAAOA,WAAW,GAAO/J,UAAUqB,QAKvEtG,EAAI5F,cACR4F,EAAI5F,YAAa,UAAW,WAC3B9D,EAAQgZ,cAAe,IAGxBtP,EAAIgP,WAAW,GAAOe,QAKvB,KAAMnc,KAAOyT,QAAQ,EAAM2I,QAAQ,EAAMC,SAAS,GACjDjQ,EAAIb,aAAc+O,EAAY,KAAOta,EAAG,KAExC0C,EAAS1C,EAAI,WAAcsa,IAAazgB,IAAUuS,EAAItD,WAAYwR,GAAYrZ,WAAY,CAG3FmL,GAAI9F,MAAMgW,eAAiB,cAC3BlQ,EAAIgP,WAAW,GAAO9U,MAAMgW,eAAiB,GAC7C5Z,EAAQ6Z,gBAA+C,gBAA7BnQ,EAAI9F,MAAMgW,cAIpC,KAAMtc,IAAKzF,GAAQmI,GAClB,KAoGD,OAlGAA,GAAQC,QAAgB,MAAN3C,EAGlBzF,EAAO,WACN,GAAIiiB,GAAWC,EAAWC,EACzBC,EAAW,+HACXhb,EAAOxH,EAASiK,qBAAqB,QAAQ,EAExCzC,KAKN6a,EAAYriB,EAASiJ,cAAc,OACnCoZ,EAAUlW,MAAMkU,QAAU,gFAE1B7Y,EAAK8L,YAAa+O,GAAY/O,YAAarB,GAS3CA,EAAIuB,UAAY,8CAChB+O,EAAMtQ,EAAIhI,qBAAqB,MAC/BsY,EAAK,GAAIpW,MAAMkU,QAAU,2CACzBD,EAA0C,IAA1BmC,EAAK,GAAIE,aAEzBF,EAAK,GAAIpW,MAAMuW,QAAU,GACzBH,EAAK,GAAIpW,MAAMuW,QAAU,OAIzBna,EAAQoa,sBAAwBvC,GAA2C,IAA1BmC,EAAK,GAAIE,aAG1DxQ,EAAIuB,UAAY,GAChBvB,EAAI9F,MAAMkU,QAAU,wKAIpBjgB,EAAO6L,KAAMzE,EAAyB,MAAnBA,EAAK2E,MAAMyW,MAAiBA,KAAM,MAAU,WAC9Dra,EAAQsa,UAAgC,IAApB5Q,EAAI6Q,cAIpBpjB,EAAOqjB,mBACXxa,EAAQ8Y,cAAuE,QAArD3hB,EAAOqjB,iBAAkB9Q,EAAK,WAAe3F,IACvE/D,EAAQkZ,kBAA2F,SAArE/hB,EAAOqjB,iBAAkB9Q,EAAK,QAAY+Q,MAAO,QAAUA,MAMzFV,EAAYrQ,EAAIqB,YAAatT,EAASiJ,cAAc,QACpDqZ,EAAUnW,MAAMkU,QAAUpO,EAAI9F,MAAMkU,QAAUmC,EAC9CF,EAAUnW,MAAM8W,YAAcX,EAAUnW,MAAM6W,MAAQ,IACtD/Q,EAAI9F,MAAM6W,MAAQ,MAElBza,EAAQiZ,qBACNtZ,YAAcxI,EAAOqjB,iBAAkBT,EAAW,WAAeW,oBAGxDhR,GAAI9F,MAAMyW,OAAS9iB,IAK9BmS,EAAIuB,UAAY,GAChBvB,EAAI9F,MAAMkU,QAAUmC,EAAW,8CAC/Bja,EAAQ4Y,uBAA+C,IAApBlP,EAAI6Q,YAIvC7Q,EAAI9F,MAAMuW,QAAU,QACpBzQ,EAAIuB,UAAY,cAChBvB,EAAIwB,WAAWtH,MAAM6W,MAAQ,MAC7Bza,EAAQ6Y,iBAAyC,IAApBnP,EAAI6Q,YAE5Bva,EAAQ4Y,yBAIZ3Z,EAAK2E,MAAMyW,KAAO,IAIpBpb,EAAK0K,YAAamQ,GAGlBA,EAAYpQ,EAAMsQ,EAAMD,EAAY,QAIrC7f,EAAMiP,EAASuO,EAAWC,EAAMlS,EAAIgG,EAAQ,KAErCzL;KAGR,IAAI2a,GAAS,+BACZC,EAAa,UAEd,SAASC,GAAc3f,EAAM+C,EAAMqC,EAAMwa,GACxC,GAAMjjB,EAAOkjB,WAAY7f,GAAzB,CAIA,GAAIwB,GAAKse,EACRC,EAAcpjB,EAAO0G,QAIrB2c,EAAShgB,EAAKQ,SAId2N,EAAQ6R,EAASrjB,EAAOwR,MAAQnO,EAIhCgB,EAAKgf,EAAShgB,EAAM+f,GAAgB/f,EAAM+f,IAAiBA,CAI5D,IAAO/e,GAAOmN,EAAMnN,KAAS4e,GAAQzR,EAAMnN,GAAIoE,OAAUA,IAASlJ,GAA6B,gBAAT6G,GAgEtF,MA5DM/B,KAIJA,EADIgf,EACChgB,EAAM+f,GAAgBhjB,EAAgB6N,OAASjO,EAAOmL,OAEtDiY,GAID5R,EAAOnN,KAGZmN,EAAOnN,GAAOgf,MAAgBC,OAAQtjB,EAAO8J,QAKzB,gBAAT1D,IAAqC,kBAATA,MAClC6c,EACJzR,EAAOnN,GAAOrE,EAAOgG,OAAQwL,EAAOnN,GAAM+B,GAE1CoL,EAAOnN,GAAKoE,KAAOzI,EAAOgG,OAAQwL,EAAOnN,GAAKoE,KAAMrC,IAItD+c,EAAY3R,EAAOnN,GAKb4e,IACCE,EAAU1a,OACf0a,EAAU1a,SAGX0a,EAAYA,EAAU1a,MAGlBA,IAASlJ,IACb4jB,EAAWnjB,EAAOiK,UAAW7D,IAAWqC,GAKpB,gBAATrC,IAGXvB,EAAMse,EAAW/c,GAGL,MAAPvB,IAGJA,EAAMse,EAAWnjB,EAAOiK,UAAW7D,MAGpCvB,EAAMse,EAGAte,GAGR,QAAS0e,GAAoBlgB,EAAM+C,EAAM6c,GACxC,GAAMjjB,EAAOkjB,WAAY7f,GAAzB,CAIA,GAAI8f,GAAW1d,EACd4d,EAAShgB,EAAKQ,SAGd2N,EAAQ6R,EAASrjB,EAAOwR,MAAQnO,EAChCgB,EAAKgf,EAAShgB,EAAMrD,EAAO0G,SAAY1G,EAAO0G,OAI/C,IAAM8K,EAAOnN,GAAb,CAIA,GAAK+B,IAEJ+c,EAAYF,EAAMzR,EAAOnN,GAAOmN,EAAOnN,GAAKoE,MAE3B,CAGVzI,EAAOyG,QAASL,GAsBrBA,EAAOA,EAAK7F,OAAQP,EAAO4F,IAAKQ,EAAMpG,EAAOiK,YAnBxC7D,IAAQ+c,GACZ/c,GAASA,IAITA,EAAOpG,EAAOiK,UAAW7D,GAExBA,EADIA,IAAQ+c,IACH/c,GAEFA,EAAKkG,MAAM,MAarB7G,EAAIW,EAAK5C,MACT,OAAQiC,UACA0d,GAAW/c,EAAKX,GAKxB,IAAKwd,GAAOO,EAAkBL,IAAcnjB,EAAOqI,cAAc8a,GAChE,QAMGF,UACEzR,GAAOnN,GAAKoE,KAIb+a,EAAmBhS,EAAOnN,QAM5Bgf,EACJrjB,EAAOyjB,WAAapgB,IAAQ,GAIjBrD,EAAOmI,QAAQ+Y,eAAiB1P,GAASA,EAAMlS,aAEnDkS,GAAOnN,GAIdmN,EAAOnN,GAAO,QAIhBrE,EAAOgG,QACNwL,SAIAkS,QACCC,QAAU,EACVC,OAAS,EAEThH,OAAU,8CAGXiH,QAAS,SAAUxgB,GAElB,MADAA,GAAOA,EAAKQ,SAAW7D,EAAOwR,MAAOnO,EAAKrD,EAAO0G,UAAarD,EAAMrD,EAAO0G,WAClErD,IAASmgB,EAAmBngB,IAGtCoF,KAAM,SAAUpF,EAAM+C,EAAMqC,GAC3B,MAAOua,GAAc3f,EAAM+C,EAAMqC,IAGlCqb,WAAY,SAAUzgB,EAAM+C,GAC3B,MAAOmd,GAAoBlgB,EAAM+C,IAIlC2d,MAAO,SAAU1gB,EAAM+C,EAAMqC,GAC5B,MAAOua,GAAc3f,EAAM+C,EAAMqC,GAAM,IAGxCub,YAAa,SAAU3gB,EAAM+C,GAC5B,MAAOmd,GAAoBlgB,EAAM+C,GAAM,IAIxC8c,WAAY,SAAU7f,GAErB,GAAKA,EAAKQ,UAA8B,IAAlBR,EAAKQ,UAAoC,IAAlBR,EAAKQ,SACjD,OAAO,CAGR,IAAI6f,GAASrgB,EAAK8G,UAAYnK,EAAO0jB,OAAQrgB,EAAK8G,SAASC,cAG3D,QAAQsZ,GAAUA,KAAW,GAAQrgB,EAAK0N,aAAa,aAAe2S,KAIxE1jB,EAAOsB,GAAG0E,QACTyC,KAAM,SAAUR,EAAKoC,GACpB,GAAI2H,GAAO5L,EACVqC,EAAO,KACPhD,EAAI,EACJpC,EAAOC,KAAK,EAMb,IAAK2E,IAAQ1I,EAAY,CACxB,GAAK+D,KAAKE,SACTiF,EAAOzI,EAAOyI,KAAMpF,GAEG,IAAlBA,EAAKQ,WAAmB7D,EAAO+jB,MAAO1gB,EAAM,gBAAkB,CAElE,IADA2O,EAAQ3O,EAAKkL,WACDyD,EAAMxO,OAAViC,EAAkBA,IACzBW,EAAO4L,EAAMvM,GAAGW,KAEe,IAA1BA,EAAKvF,QAAQ,WACjBuF,EAAOpG,EAAOiK,UAAW7D,EAAKzF,MAAM,IAEpCsjB,EAAU5gB,EAAM+C,EAAMqC,EAAMrC,IAG9BpG,GAAO+jB,MAAO1gB,EAAM,eAAe,GAIrC,MAAOoF,GAIR,MAAoB,gBAARR,GACJ3E,KAAKyB,KAAK,WAChB/E,EAAOyI,KAAMnF,KAAM2E,KAId5C,UAAU7B,OAAS,EAGzBF,KAAKyB,KAAK,WACT/E,EAAOyI,KAAMnF,KAAM2E,EAAKoC,KAKzBhH,EAAO4gB,EAAU5gB,EAAM4E,EAAKjI,EAAOyI,KAAMpF,EAAM4E,IAAU,MAG3D6b,WAAY,SAAU7b,GACrB,MAAO3E,MAAKyB,KAAK,WAChB/E,EAAO8jB,WAAYxgB,KAAM2E,OAK5B,SAASgc,GAAU5gB,EAAM4E,EAAKQ,GAG7B,GAAKA,IAASlJ,GAA+B,IAAlB8D,EAAKQ,SAAiB,CAEhD,GAAIuC,GAAO,QAAU6B,EAAIpB,QAASkc,EAAY,OAAQ3Y,aAItD,IAFA3B,EAAOpF,EAAK0N,aAAc3K,GAEL,gBAATqC,GAAoB,CAC/B,IACCA,EAAgB,SAATA,GAAkB,EACf,UAATA,GAAmB,EACV,SAATA,EAAkB,MAEjBA,EAAO,KAAOA,GAAQA,EACvBqa,EAAO/e,KAAM0E,GAASzI,EAAOiJ,UAAWR,GACvCA,EACD,MAAOP,IAGTlI,EAAOyI,KAAMpF,EAAM4E,EAAKQ,OAGxBA,GAAOlJ,EAIT,MAAOkJ,GAIR,QAAS+a,GAAmB/b,GAC3B,GAAIrB,EACJ,KAAMA,IAAQqB,GAGb,IAAc,SAATrB,IAAmBpG,EAAOqI,cAAeZ,EAAIrB,MAGpC,WAATA,EACJ,OAAO,CAIT,QAAO,EAERpG,EAAOgG,QACNke,MAAO,SAAU7gB,EAAMV,EAAM8F,GAC5B,GAAIyb,EAEJ,OAAK7gB,IACJV,GAASA,GAAQ,MAAS,QAC1BuhB,EAAQlkB,EAAO+jB,MAAO1gB,EAAMV,GAGvB8F,KACEyb,GAASlkB,EAAOyG,QAAQgC,GAC7Byb,EAAQlkB,EAAO+jB,MAAO1gB,EAAMV,EAAM3C,EAAOsE,UAAUmE,IAEnDyb,EAAMzjB,KAAMgI,IAGPyb,OAZR,GAgBDC,QAAS,SAAU9gB,EAAMV,GACxBA,EAAOA,GAAQ,IAEf,IAAIuhB,GAAQlkB,EAAOkkB,MAAO7gB,EAAMV,GAC/ByhB,EAAcF,EAAM1gB,OACpBlC,EAAK4iB,EAAMxS,QACX2S,EAAQrkB,EAAOskB,YAAajhB,EAAMV,GAClC4hB,EAAO,WACNvkB,EAAOmkB,QAAS9gB,EAAMV,GAIZ,gBAAPrB,IACJA,EAAK4iB,EAAMxS,QACX0S,KAGI9iB,IAIU,OAATqB,GACJuhB,EAAMvP,QAAS,oBAIT0P,GAAMG,KACbljB,EAAGkD,KAAMnB,EAAMkhB,EAAMF,KAGhBD,GAAeC,GACpBA,EAAM/L,MAAMkF,QAKd8G,YAAa,SAAUjhB,EAAMV,GAC5B,GAAIsF,GAAMtF,EAAO,YACjB,OAAO3C,GAAO+jB,MAAO1gB,EAAM4E,IAASjI,EAAO+jB,MAAO1gB,EAAM4E,GACvDqQ,MAAOtY,EAAO8c,UAAU,eAAec,IAAI,WAC1C5d,EAAOgkB,YAAa3gB,EAAMV,EAAO,SACjC3C,EAAOgkB,YAAa3gB,EAAM4E,UAM9BjI,EAAOsB,GAAG0E,QACTke,MAAO,SAAUvhB,EAAM8F,GACtB,GAAIgc,GAAS,CAQb,OANqB,gBAAT9hB,KACX8F,EAAO9F,EACPA,EAAO,KACP8hB,KAGuBA,EAAnBpf,UAAU7B,OACPxD,EAAOkkB,MAAO5gB,KAAK,GAAIX,GAGxB8F,IAASlJ,EACf+D,KACAA,KAAKyB,KAAK,WACT,GAAImf,GAAQlkB,EAAOkkB,MAAO5gB,KAAMX,EAAM8F,EAGtCzI,GAAOskB,YAAahhB,KAAMX,GAEZ,OAATA,GAA8B,eAAbuhB,EAAM,IAC3BlkB,EAAOmkB,QAAS7gB,KAAMX,MAI1BwhB,QAAS,SAAUxhB,GAClB,MAAOW,MAAKyB,KAAK,WAChB/E,EAAOmkB,QAAS7gB,KAAMX,MAKxB+hB,MAAO,SAAUC,EAAMhiB,GAItB,MAHAgiB,GAAO3kB,EAAO4kB,GAAK5kB,EAAO4kB,GAAGC,OAAQF,IAAUA,EAAOA,EACtDhiB,EAAOA,GAAQ,KAERW,KAAK4gB,MAAOvhB,EAAM,SAAU4hB,EAAMF,GACxC,GAAIS,GAAUzd,WAAYkd,EAAMI,EAChCN,GAAMG,KAAO,WACZO,aAAcD,OAIjBE,WAAY,SAAUriB,GACrB,MAAOW,MAAK4gB,MAAOvhB,GAAQ,UAI5BuC,QAAS,SAAUvC,EAAM8E,GACxB,GAAI8B,GACH0b,EAAQ,EACRC,EAAQllB,EAAOgM,WACf6I,EAAWvR,KACXmC,EAAInC,KAAKE,OACTqb,EAAU,aACCoG,GACTC,EAAM5d,YAAauN,GAAYA,IAIb,iBAATlS,KACX8E,EAAM9E,EACNA,EAAOpD,GAERoD,EAAOA,GAAQ,IAEf,OAAO8C,IACN8D,EAAMvJ,EAAO+jB,MAAOlP,EAAUpP,GAAK9C,EAAO,cACrC4G,GAAOA,EAAI+O,QACf2M,IACA1b,EAAI+O,MAAMsF,IAAKiB,GAIjB,OADAA,KACOqG,EAAMhgB,QAASuC,KAGxB,IAAI0d,GAAUC,EACbC,EAAS,cACTC,EAAU,MACVC,EAAa,6CACbC,EAAa,gBACbC,EAAc,0BACdvF,EAAkBlgB,EAAOmI,QAAQ+X,gBACjCwF,EAAc1lB,EAAOmI,QAAQyL,KAE9B5T,GAAOsB,GAAG0E,QACT9B,KAAM,SAAUkC,EAAMiE,GACrB,MAAOrK,GAAOqL,OAAQ/H,KAAMtD,EAAOkE,KAAMkC,EAAMiE,EAAOhF,UAAU7B,OAAS,IAG1EmiB,WAAY,SAAUvf,GACrB,MAAO9C,MAAKyB,KAAK,WAChB/E,EAAO2lB,WAAYriB,KAAM8C,MAI3Bwf,KAAM,SAAUxf,EAAMiE,GACrB,MAAOrK,GAAOqL,OAAQ/H,KAAMtD,EAAO4lB,KAAMxf,EAAMiE,EAAOhF,UAAU7B,OAAS,IAG1EqiB,WAAY,SAAUzf,GAErB,MADAA,GAAOpG,EAAO8lB,QAAS1f,IAAUA,EAC1B9C,KAAKyB,KAAK,WAEhB,IACCzB,KAAM8C,GAAS7G,QACR+D,MAAM8C,GACZ,MAAO8B,QAIX6d,SAAU,SAAU1b,GACnB,GAAI2b,GAAS3iB,EAAM+O,EAAK6T,EAAOtgB,EAC9BF,EAAI,EACJC,EAAMpC,KAAKE,OACX0iB,EAA2B,gBAAV7b,IAAsBA,CAExC,IAAKrK,EAAOiE,WAAYoG,GACvB,MAAO/G,MAAKyB,KAAK,SAAUY,GAC1B3F,EAAQsD,MAAOyiB,SAAU1b,EAAM7F,KAAMlB,KAAMqC,EAAGrC,KAAK2P,aAIrD,IAAKiT,EAIJ,IAFAF,GAAY3b,GAAS,IAAKjH,MAAO1B,OAErBgE,EAAJD,EAASA,IAOhB,GANApC,EAAOC,KAAMmC,GACb2M,EAAwB,IAAlB/O,EAAKQ,WAAoBR,EAAK4P,WACjC,IAAM5P,EAAK4P,UAAY,KAAMpM,QAASwe,EAAQ,KAChD,KAGU,CACV1f,EAAI,CACJ,OAASsgB,EAAQD,EAAQrgB,KACgB,EAAnCyM,EAAIvR,QAAS,IAAMolB,EAAQ,OAC/B7T,GAAO6T,EAAQ,IAGjB5iB,GAAK4P,UAAYjT,EAAOmB,KAAMiR,GAMjC,MAAO9O,OAGR6iB,YAAa,SAAU9b,GACtB,GAAI2b,GAAS3iB,EAAM+O,EAAK6T,EAAOtgB,EAC9BF,EAAI,EACJC,EAAMpC,KAAKE,OACX0iB,EAA+B,IAArB7gB,UAAU7B,QAAiC,gBAAV6G,IAAsBA,CAElE,IAAKrK,EAAOiE,WAAYoG,GACvB,MAAO/G,MAAKyB,KAAK,SAAUY,GAC1B3F,EAAQsD,MAAO6iB,YAAa9b,EAAM7F,KAAMlB,KAAMqC,EAAGrC,KAAK2P,aAGxD,IAAKiT,EAGJ,IAFAF,GAAY3b,GAAS,IAAKjH,MAAO1B,OAErBgE,EAAJD,EAASA,IAQhB,GAPApC,EAAOC,KAAMmC,GAEb2M,EAAwB,IAAlB/O,EAAKQ,WAAoBR,EAAK4P,WACjC,IAAM5P,EAAK4P,UAAY,KAAMpM,QAASwe,EAAQ,KAChD,IAGU,CACV1f,EAAI,CACJ,OAASsgB,EAAQD,EAAQrgB,KAExB,MAAQyM,EAAIvR,QAAS,IAAMolB,EAAQ,MAAS,EAC3C7T,EAAMA,EAAIvL,QAAS,IAAMof,EAAQ,IAAK,IAGxC5iB,GAAK4P,UAAY5I,EAAQrK,EAAOmB,KAAMiR,GAAQ,GAKjD,MAAO9O,OAGR8iB,YAAa,SAAU/b,EAAOgc,GAC7B,GAAI1jB,SAAc0H,EAElB,OAAyB,iBAAbgc,IAAmC,WAAT1jB,EAC9B0jB,EAAW/iB,KAAKyiB,SAAU1b,GAAU/G,KAAK6iB,YAAa9b,GAGzDrK,EAAOiE,WAAYoG,GAChB/G,KAAKyB,KAAK,SAAUU,GAC1BzF,EAAQsD,MAAO8iB,YAAa/b,EAAM7F,KAAKlB,KAAMmC,EAAGnC,KAAK2P,UAAWoT,GAAWA,KAItE/iB,KAAKyB,KAAK,WAChB,GAAc,WAATpC,EAAoB,CAExB,GAAIsQ,GACHxN,EAAI,EACJiY,EAAO1d,EAAQsD,MACfgjB,EAAajc,EAAMjH,MAAO1B,MAE3B,OAASuR,EAAYqT,EAAY7gB,KAE3BiY,EAAK6I,SAAUtT,GACnByK,EAAKyI,YAAalT,GAElByK,EAAKqI,SAAU9S,QAKNtQ,IAASjD,GAA8B,YAATiD,KACpCW,KAAK2P,WAETjT,EAAO+jB,MAAOzgB,KAAM,gBAAiBA,KAAK2P,WAO3C3P,KAAK2P,UAAY3P,KAAK2P,WAAa5I,KAAU,EAAQ,GAAKrK,EAAO+jB,MAAOzgB,KAAM,kBAAqB,OAKtGijB,SAAU,SAAUnlB,GACnB,GAAI6R,GAAY,IAAM7R,EAAW,IAChCqE,EAAI,EACJqF,EAAIxH,KAAKE,MACV,MAAYsH,EAAJrF,EAAOA,IACd,GAA0B,IAArBnC,KAAKmC,GAAG5B,WAAmB,IAAMP,KAAKmC,GAAGwN,UAAY,KAAKpM,QAAQwe,EAAQ,KAAKxkB,QAASoS,IAAe,EAC3G,OAAO,CAIT,QAAO,GAGR6B,IAAK,SAAUzK,GACd,GAAIxF,GAAKwf,EAAOpgB,EACfZ,EAAOC,KAAK,EAEb,EAAA,GAAM+B,UAAU7B,OAsBhB,MAFAS,GAAajE,EAAOiE,WAAYoG,GAEzB/G,KAAKyB,KAAK,SAAUU,GAC1B,GAAIqP,EAEmB,KAAlBxR,KAAKO,WAKTiR,EADI7Q,EACEoG,EAAM7F,KAAMlB,KAAMmC,EAAGzF,EAAQsD,MAAOwR,OAEpCzK,EAIK,MAAPyK,EACJA,EAAM,GACoB,gBAARA,GAClBA,GAAO,GACI9U,EAAOyG,QAASqO,KAC3BA,EAAM9U,EAAO4F,IAAIkP,EAAK,SAAWzK,GAChC,MAAgB,OAATA,EAAgB,GAAKA,EAAQ,MAItCga,EAAQrkB,EAAOwmB,SAAUljB,KAAKX,OAAU3C,EAAOwmB,SAAUljB,KAAK6G,SAASC,eAGjEia,GAAW,OAASA,IAAUA,EAAMoC,IAAKnjB,KAAMwR,EAAK,WAAcvV,IACvE+D,KAAK+G,MAAQyK,KAjDd,IAAKzR,EAGJ,MAFAghB,GAAQrkB,EAAOwmB,SAAUnjB,EAAKV,OAAU3C,EAAOwmB,SAAUnjB,EAAK8G,SAASC,eAElEia,GAAS,OAASA,KAAUxf,EAAMwf,EAAM5f,IAAKpB,EAAM,YAAe9D,EAC/DsF,GAGRA,EAAMxB,EAAKgH,MAEW,gBAARxF,GAEbA,EAAIgC,QAAQye,EAAS,IAEd,MAAPzgB,EAAc,GAAKA,OA0CxB7E,EAAOgG,QACNwgB,UACCE,QACCjiB,IAAK,SAAUpB,GAEd,GAAIyR,GAAM9U,EAAO0D,KAAKQ,KAAMb,EAAM,QAClC,OAAc,OAAPyR,EACNA,EACAzR,EAAKkH,OAGR+G,QACC7M,IAAK,SAAUpB,GACd,GAAIgH,GAAOqc,EACVrgB,EAAUhD,EAAKgD,QACfwX,EAAQxa,EAAKgV,cACbsO,EAAoB,eAAdtjB,EAAKV,MAAiC,EAARkb,EACpC2B,EAASmH,EAAM,QACf/b,EAAM+b,EAAM9I,EAAQ,EAAIxX,EAAQ7C,OAChCiC,EAAY,EAARoY,EACHjT,EACA+b,EAAM9I,EAAQ,CAGhB,MAAYjT,EAAJnF,EAASA,IAIhB,GAHAihB,EAASrgB,EAASZ,MAGXihB,EAAOtO,UAAY3S,IAAMoY,IAE5B7d,EAAOmI,QAAQoZ,YAAemF,EAAOxO,SAA+C,OAApCwO,EAAO3V,aAAa,cACnE2V,EAAOtiB,WAAW8T,UAAalY,EAAOmK,SAAUuc,EAAOtiB,WAAY,aAAiB,CAMxF,GAHAiG,EAAQrK,EAAQ0mB,GAAS5R,MAGpB6R,EACJ,MAAOtc,EAIRmV,GAAO/e,KAAM4J,GAIf,MAAOmV,IAGRiH,IAAK,SAAUpjB,EAAMgH,GACpB,GAAIuc,GAAWF,EACdrgB,EAAUhD,EAAKgD,QACfmZ,EAASxf,EAAOsE,UAAW+F,GAC3B5E,EAAIY,EAAQ7C,MAEb,OAAQiC,IACPihB,EAASrgB,EAASZ,IACZihB,EAAOtO,SAAWpY,EAAO2K,QAAS3K,EAAO0mB,GAAQ5R,MAAO0K,IAAY,KACzEoH,GAAY,EAQd,OAHMA,KACLvjB,EAAKgV,cAAgB,IAEfmH,KAKVtb,KAAM,SAAUb,EAAM+C,EAAMiE,GAC3B,GAAIga,GAAOxf,EACVgiB,EAAQxjB,EAAKQ,QAGd,IAAMR,GAAkB,IAAVwjB,GAAyB,IAAVA,GAAyB,IAAVA,EAK5C,aAAYxjB,GAAK0N,eAAiBrR,EAC1BM,EAAO4lB,KAAMviB,EAAM+C,EAAMiE,IAKlB,IAAVwc,GAAgB7mB,EAAOyc,SAAUpZ,KACrC+C,EAAOA,EAAKgE,cACZia,EAAQrkB,EAAO8mB,UAAW1gB,KACvBpG,EAAO4U,KAAKxR,MAAMmM,KAAKxL,KAAMqC,GAASgf,EAAWD,IAGhD9a,IAAU9K,EAaH8kB,GAAS,OAASA,IAA6C,QAAnCxf,EAAMwf,EAAM5f,IAAKpB,EAAM+C,IACvDvB,GAGPA,EAAM7E,EAAO0D,KAAKQ,KAAMb,EAAM+C,GAGhB,MAAPvB,EACNtF,EACAsF,GApBc,OAAVwF,EAGOga,GAAS,OAASA,KAAUxf,EAAMwf,EAAMoC,IAAKpjB,EAAMgH,EAAOjE,MAAY7G,EAC1EsF,GAGPxB,EAAK2N,aAAc5K,EAAMiE,EAAQ,IAC1BA,IAPPrK,EAAO2lB,WAAYtiB,EAAM+C,GAAzBpG,KAuBH2lB,WAAY,SAAUtiB,EAAMgH,GAC3B,GAAIjE,GAAM2gB,EACTthB,EAAI,EACJuhB,EAAY3c,GAASA,EAAMjH,MAAO1B,EAEnC,IAAKslB,GAA+B,IAAlB3jB,EAAKQ,SACtB,MAASuC,EAAO4gB,EAAUvhB,KACzBshB,EAAW/mB,EAAO8lB,QAAS1f,IAAUA,EAGhCpG,EAAO4U,KAAKxR,MAAMmM,KAAKxL,KAAMqC,GAE5Bsf,GAAexF,IAAoBuF,EAAY1hB,KAAMqC,GACzD/C,EAAM0jB,IAAa,EAInB1jB,EAAMrD,EAAOiK,UAAW,WAAa7D,IACpC/C,EAAM0jB,IAAa,EAKrB/mB,EAAOkE,KAAMb,EAAM+C,EAAM,IAG1B/C,EAAKgO,gBAAiB6O,EAAkB9Z,EAAO2gB,IAKlDD,WACCnkB,MACC8jB,IAAK,SAAUpjB,EAAMgH,GACpB,IAAMrK,EAAOmI,QAAQqZ,YAAwB,UAAVnX,GAAqBrK,EAAOmK,SAAS9G,EAAM,SAAW,CAGxF,GAAIyR,GAAMzR,EAAKgH,KAKf,OAJAhH,GAAK2N,aAAc,OAAQ3G,GACtByK,IACJzR,EAAKgH,MAAQyK,GAEPzK,MAMXyb,SACCmB,MAAO,UACPC,QAAS,aAGVtB,KAAM,SAAUviB,EAAM+C,EAAMiE,GAC3B,GAAIxF,GAAKwf,EAAO8C,EACfN,EAAQxjB,EAAKQ,QAGd,IAAMR,GAAkB,IAAVwjB,GAAyB,IAAVA,GAAyB,IAAVA,EAY5C,MARAM,GAAmB,IAAVN,IAAgB7mB,EAAOyc,SAAUpZ,GAErC8jB,IAEJ/gB,EAAOpG,EAAO8lB,QAAS1f,IAAUA,EACjCie,EAAQrkB,EAAOonB,UAAWhhB,IAGtBiE,IAAU9K,EACP8kB,GAAS,OAASA,KAAUxf,EAAMwf,EAAMoC,IAAKpjB,EAAMgH,EAAOjE,MAAY7G,EAC5EsF,EACExB,EAAM+C,GAASiE,EAGXga,GAAS,OAASA,IAA6C,QAAnCxf,EAAMwf,EAAM5f,IAAKpB,EAAM+C,IACzDvB,EACAxB,EAAM+C,IAITghB,WACCpP,UACCvT,IAAK,SAAUpB,GAId,GAAIgkB,GAAWrnB,EAAO0D,KAAKQ,KAAMb,EAAM,WAEvC,OAAOgkB,GACNC,SAAUD,EAAU,IACpB9B,EAAWxhB,KAAMV,EAAK8G,WAAcqb,EAAWzhB,KAAMV,EAAK8G,WAAc9G,EAAK0U,KAC5E,EACA,QAONqN,GACCqB,IAAK,SAAUpjB,EAAMgH,EAAOjE,GAa3B,MAZKiE,MAAU,EAEdrK,EAAO2lB,WAAYtiB,EAAM+C,GACdsf,GAAexF,IAAoBuF,EAAY1hB,KAAMqC,GAEhE/C,EAAK2N,cAAekP,GAAmBlgB,EAAO8lB,QAAS1f,IAAUA,EAAMA,GAIvE/C,EAAMrD,EAAOiK,UAAW,WAAa7D,IAAW/C,EAAM+C,IAAS,EAGzDA,IAGTpG,EAAO+E,KAAM/E,EAAO4U,KAAKxR,MAAMmM,KAAK9N,OAAO2B,MAAO,QAAU,SAAUqC,EAAGW,GACxE,GAAImhB,GAASvnB,EAAO4U,KAAK1C,WAAY9L,IAAUpG,EAAO0D,KAAKQ,IAE3DlE,GAAO4U,KAAK1C,WAAY9L,GAASsf,GAAexF,IAAoBuF,EAAY1hB,KAAMqC,GACrF,SAAU/C,EAAM+C,EAAMsG,GACrB,GAAIpL,GAAKtB,EAAO4U,KAAK1C,WAAY9L,GAChCvB,EAAM6H,EACLnN,GAECS,EAAO4U,KAAK1C,WAAY9L,GAAS7G,IACjCgoB,EAAQlkB,EAAM+C,EAAMsG,GAEpBtG,EAAKgE,cACL,IAEH,OADApK,GAAO4U,KAAK1C,WAAY9L,GAAS9E,EAC1BuD,GAER,SAAUxB,EAAM+C,EAAMsG,GACrB,MAAOA,GACNnN,EACA8D,EAAMrD,EAAOiK,UAAW,WAAa7D,IACpCA,EAAKgE,cACL,QAKCsb,GAAgBxF,IACrBlgB,EAAO8mB,UAAUzc,OAChBoc,IAAK,SAAUpjB,EAAMgH,EAAOjE,GAC3B,MAAKpG,GAAOmK,SAAU9G,EAAM,UAE3BA,EAAKkZ,aAAelS,EAApBhH,GAGO8hB,GAAYA,EAASsB,IAAKpjB,EAAMgH,EAAOjE,MAO5C8Z,IAILiF,GACCsB,IAAK,SAAUpjB,EAAMgH,EAAOjE,GAE3B,GAAIvB,GAAMxB,EAAKqQ,iBAAkBtN,EAUjC,OATMvB,IACLxB,EAAKmkB,iBACH3iB,EAAMxB,EAAKS,cAAc2jB,gBAAiBrhB,IAI7CvB,EAAIwF,MAAQA,GAAS,GAGL,UAATjE,GAAoBiE,IAAUhH,EAAK0N,aAAc3K,GACvDiE,EACA9K,IAGHS,EAAO4U,KAAK1C,WAAW7N,GAAKrE,EAAO4U,KAAK1C,WAAW9L,KAAOpG,EAAO4U,KAAK1C,WAAWwV,OAEhF,SAAUrkB,EAAM+C,EAAMsG,GACrB,GAAI7H,EACJ,OAAO6H,GACNnN,GACCsF,EAAMxB,EAAKqQ,iBAAkBtN,KAAyB,KAAdvB,EAAIwF,MAC5CxF,EAAIwF,MACJ,MAEJrK,EAAOwmB,SAAShO,QACf/T,IAAK,SAAUpB,EAAM+C,GACpB,GAAIvB,GAAMxB,EAAKqQ,iBAAkBtN,EACjC,OAAOvB,IAAOA,EAAIkQ,UACjBlQ,EAAIwF,MACJ9K,GAEFknB,IAAKtB,EAASsB,KAKfzmB,EAAO8mB,UAAUa,iBAChBlB,IAAK,SAAUpjB,EAAMgH,EAAOjE,GAC3B+e,EAASsB,IAAKpjB,EAAgB,KAAVgH,GAAe,EAAQA,EAAOjE,KAMpDpG,EAAO+E,MAAO,QAAS,UAAY,SAAUU,EAAGW,GAC/CpG,EAAO8mB,UAAW1gB,IACjBqgB,IAAK,SAAUpjB,EAAMgH,GACpB,MAAe,KAAVA,GACJhH,EAAK2N,aAAc5K,EAAM,QAClBiE,GAFR,OAYErK,EAAOmI,QAAQmY,gBAEpBtgB,EAAO+E,MAAO,OAAQ,OAAS,SAAUU,EAAGW,GAC3CpG,EAAOonB,UAAWhhB,IACjB3B,IAAK,SAAUpB,GACd,MAAOA,GAAK0N,aAAc3K,EAAM,OAM9BpG,EAAOmI,QAAQ4D,QACpB/L,EAAO8mB,UAAU/a,OAChBtH,IAAK,SAAUpB,GAId,MAAOA,GAAK0I,MAAMkU,SAAW1gB,GAE9BknB,IAAK,SAAUpjB,EAAMgH,GACpB,MAAShH,GAAK0I,MAAMkU,QAAU5V,EAAQ,MAOnCrK,EAAOmI,QAAQuY,cACpB1gB,EAAOonB,UAAUhP,UAChB3T,IAAK,SAAUpB,GACd,GAAI0P,GAAS1P,EAAKe,UAUlB,OARK2O,KACJA,EAAOsF,cAGFtF,EAAO3O,YACX2O,EAAO3O,WAAWiU,eAGb,QAKVrY,EAAO+E,MACN,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,mBACE,WACF/E,EAAO8lB,QAASxiB,KAAK8G,eAAkB9G,OAIlCtD,EAAOmI,QAAQwY,UACpB3gB,EAAO8lB,QAAQnF,QAAU,YAI1B3gB,EAAO+E,MAAO,QAAS,YAAc,WACpC/E,EAAOwmB,SAAUljB,OAChBmjB,IAAK,SAAUpjB,EAAMgH,GACpB,MAAKrK,GAAOyG,QAAS4D,GACXhH,EAAK8U,QAAUnY,EAAO2K,QAAS3K,EAAOqD,GAAMyR,MAAOzK,IAAW,EADxE,IAKIrK,EAAOmI,QAAQsY,UACpBzgB,EAAOwmB,SAAUljB,MAAOmB,IAAM,SAAUpB,GAGvC,MAAsC,QAA/BA,EAAK0N,aAAa,SAAoB,KAAO1N,EAAKgH,SAI5D,IAAIud,GAAa,+BAChBC,GAAY,OACZC,GAAc,+BACdC,GAAc,kCACdC,GAAiB,sBAElB,SAASC,MACR,OAAO,EAGR,QAASC,MACR,OAAO,EAGR,QAASC,MACR,IACC,MAAOvoB,GAASiY,cACf,MAAQuQ,KAOXpoB,EAAOyC,OAEN4lB,UAEAzK,IAAK,SAAUva,EAAMilB,EAAOrW,EAASxJ,EAAMrH,GAC1C,GAAImI,GAAKgf,EAAQC,EAAGC,EACnBC,EAASC,EAAaC,EACtBC,EAAUlmB,EAAMmmB,EAAYC,EAC5BC,EAAWhpB,EAAO+jB,MAAO1gB,EAG1B,IAAM2lB,EAAN,CAKK/W,EAAQA,UACZwW,EAAcxW,EACdA,EAAUwW,EAAYxW,QACtB7Q,EAAWqnB,EAAYrnB,UAIlB6Q,EAAQ9G,OACb8G,EAAQ9G,KAAOnL,EAAOmL,SAIhBod,EAASS,EAAST,UACxBA,EAASS,EAAST,YAEZI,EAAcK,EAASC,UAC7BN,EAAcK,EAASC,OAAS,SAAU/gB,GAGzC,aAAclI,KAAWN,GAAuBwI,GAAKlI,EAAOyC,MAAMymB,YAAchhB,EAAEvF,KAEjFpD,EADAS,EAAOyC,MAAM0mB,SAAS/jB,MAAOujB,EAAYtlB,KAAMgC,YAIjDsjB,EAAYtlB,KAAOA,GAIpBilB,GAAUA,GAAS,IAAKllB,MAAO1B,KAAqB,IACpD8mB,EAAIF,EAAM9kB,MACV,OAAQglB,IACPjf,EAAMye,GAAevkB,KAAM6kB,EAAME,QACjC7lB,EAAOomB,EAAWxf,EAAI,GACtBuf,GAAevf,EAAI,IAAM,IAAK+C,MAAO,KAAMxG,OAGrCnD,IAKN+lB,EAAU1oB,EAAOyC,MAAMimB,QAAS/lB,OAGhCA,GAASvB,EAAWsnB,EAAQU,aAAeV,EAAQW,WAAc1mB,EAGjE+lB,EAAU1oB,EAAOyC,MAAMimB,QAAS/lB,OAGhCimB,EAAY5oB,EAAOgG,QAClBrD,KAAMA,EACNomB,SAAUA,EACVtgB,KAAMA,EACNwJ,QAASA,EACT9G,KAAM8G,EAAQ9G,KACd/J,SAAUA,EACVoO,aAAcpO,GAAYpB,EAAO4U,KAAKxR,MAAMoM,aAAazL,KAAM3C,GAC/DkoB,UAAWR,EAAW5X,KAAK,MACzBuX,IAGII,EAAWN,EAAQ5lB,MACzBkmB,EAAWN,EAAQ5lB,MACnBkmB,EAASU,cAAgB,EAGnBb,EAAQc,OAASd,EAAQc,MAAMhlB,KAAMnB,EAAMoF,EAAMqgB,EAAYH,MAAkB,IAE/EtlB,EAAKX,iBACTW,EAAKX,iBAAkBC,EAAMgmB,GAAa,GAE/BtlB,EAAK4I,aAChB5I,EAAK4I,YAAa,KAAOtJ,EAAMgmB,KAK7BD,EAAQ9K,MACZ8K,EAAQ9K,IAAIpZ,KAAMnB,EAAMulB,GAElBA,EAAU3W,QAAQ9G,OACvByd,EAAU3W,QAAQ9G,KAAO8G,EAAQ9G,OAK9B/J,EACJynB,EAAS9iB,OAAQ8iB,EAASU,gBAAiB,EAAGX,GAE9CC,EAASpoB,KAAMmoB,GAIhB5oB,EAAOyC,MAAM4lB,OAAQ1lB,IAAS,EAI/BU,GAAO,OAIR0F,OAAQ,SAAU1F,EAAMilB,EAAOrW,EAAS7Q,EAAUqoB,GACjD,GAAI9jB,GAAGijB,EAAWrf,EACjBmgB,EAAWlB,EAAGD,EACdG,EAASG,EAAUlmB,EACnBmmB,EAAYC,EACZC,EAAWhpB,EAAO6jB,QAASxgB,IAAUrD,EAAO+jB,MAAO1gB,EAEpD,IAAM2lB,IAAcT,EAASS,EAAST,QAAtC,CAKAD,GAAUA,GAAS,IAAKllB,MAAO1B,KAAqB,IACpD8mB,EAAIF,EAAM9kB,MACV,OAAQglB,IAMP,GALAjf,EAAMye,GAAevkB,KAAM6kB,EAAME,QACjC7lB,EAAOomB,EAAWxf,EAAI,GACtBuf,GAAevf,EAAI,IAAM,IAAK+C,MAAO,KAAMxG,OAGrCnD,EAAN,CAOA+lB,EAAU1oB,EAAOyC,MAAMimB,QAAS/lB,OAChCA,GAASvB,EAAWsnB,EAAQU,aAAeV,EAAQW,WAAc1mB,EACjEkmB,EAAWN,EAAQ5lB,OACnB4G,EAAMA,EAAI,IAAUkF,OAAQ,UAAYqa,EAAW5X,KAAK,iBAAmB,WAG3EwY,EAAY/jB,EAAIkjB,EAASrlB,MACzB,OAAQmC,IACPijB,EAAYC,EAAUljB,IAEf8jB,GAAeV,IAAaH,EAAUG,UACzC9W,GAAWA,EAAQ9G,OAASyd,EAAUzd,MACtC5B,IAAOA,EAAIxF,KAAM6kB,EAAUU,YAC3BloB,GAAYA,IAAawnB,EAAUxnB,WAAyB,OAAbA,IAAqBwnB,EAAUxnB,YACjFynB,EAAS9iB,OAAQJ,EAAG,GAEfijB,EAAUxnB,UACdynB,EAASU,gBAELb,EAAQ3f,QACZ2f,EAAQ3f,OAAOvE,KAAMnB,EAAMulB,GAOzBc,KAAcb,EAASrlB,SACrBklB,EAAQiB,UAAYjB,EAAQiB,SAASnlB,KAAMnB,EAAMylB,EAAYE,EAASC,WAAa,GACxFjpB,EAAO4pB,YAAavmB,EAAMV,EAAMqmB,EAASC,cAGnCV,GAAQ5lB,QAtCf,KAAMA,IAAQ4lB,GACbvoB,EAAOyC,MAAMsG,OAAQ1F,EAAMV,EAAO2lB,EAAOE,GAAKvW,EAAS7Q,GAAU,EA0C/DpB,GAAOqI,cAAekgB,WACnBS,GAASC,OAIhBjpB,EAAOgkB,YAAa3gB,EAAM,aAI5BkE,QAAS,SAAU9E,EAAOgG,EAAMpF,EAAMwmB,GACrC,GAAIZ,GAAQa,EAAQ1X,EACnB2X,EAAYrB,EAASnf,EAAK9D,EAC1BukB,GAAc3mB,GAAQzD,GACtB+C,EAAO3B,EAAYwD,KAAM/B,EAAO,QAAWA,EAAME,KAAOF,EACxDqmB,EAAa9nB,EAAYwD,KAAM/B,EAAO,aAAgBA,EAAM6mB,UAAUhd,MAAM,OAK7E,IAHA8F,EAAM7I,EAAMlG,EAAOA,GAAQzD,EAGJ,IAAlByD,EAAKQ,UAAoC,IAAlBR,EAAKQ,WAK5BkkB,GAAYhkB,KAAMpB,EAAO3C,EAAOyC,MAAMymB,aAItCvmB,EAAK9B,QAAQ,MAAQ,IAEzBioB,EAAanmB,EAAK2J,MAAM,KACxB3J,EAAOmmB,EAAWpX,QAClBoX,EAAWhjB,QAEZgkB,EAA6B,EAApBnnB,EAAK9B,QAAQ,MAAY,KAAO8B,EAGzCF,EAAQA,EAAOzC,EAAO0G,SACrBjE,EACA,GAAIzC,GAAOiqB,MAAOtnB,EAAuB,gBAAVF,IAAsBA,GAGtDA,EAAMynB,UAAYL,EAAe,EAAI,EACrCpnB,EAAM6mB,UAAYR,EAAW5X,KAAK,KAClCzO,EAAM0nB,aAAe1nB,EAAM6mB,UACtB7a,OAAQ,UAAYqa,EAAW5X,KAAK,iBAAmB,WAC3D,KAGDzO,EAAM4T,OAAS9W,EACTkD,EAAM8D,SACX9D,EAAM8D,OAASlD,GAIhBoF,EAAe,MAARA,GACJhG,GACFzC,EAAOsE,UAAWmE,GAAQhG,IAG3BimB,EAAU1oB,EAAOyC,MAAMimB,QAAS/lB,OAC1BknB,IAAgBnB,EAAQnhB,SAAWmhB,EAAQnhB,QAAQnC,MAAO/B,EAAMoF,MAAW,GAAjF,CAMA,IAAMohB,IAAiBnB,EAAQ0B,WAAapqB,EAAO2H,SAAUtE,GAAS,CAMrE,IAJA0mB,EAAarB,EAAQU,cAAgBzmB,EAC/BolB,GAAYhkB,KAAMgmB,EAAapnB,KACpCyP,EAAMA,EAAIhO,YAEHgO,EAAKA,EAAMA,EAAIhO,WACtB4lB,EAAUvpB,KAAM2R,GAChB7I,EAAM6I,CAIF7I,MAASlG,EAAKS,eAAiBlE,IACnCoqB,EAAUvpB,KAAM8I,EAAIyJ,aAAezJ,EAAI8gB,cAAgB/qB,GAKzDmG,EAAI,CACJ,QAAS2M,EAAM4X,EAAUvkB,QAAUhD,EAAM6nB,uBAExC7nB,EAAME,KAAO8C,EAAI,EAChBskB,EACArB,EAAQW,UAAY1mB,EAGrBsmB,GAAWjpB,EAAO+jB,MAAO3R,EAAK,eAAoB3P,EAAME,OAAU3C,EAAO+jB,MAAO3R,EAAK,UAChF6W,GACJA,EAAO7jB,MAAOgN,EAAK3J,GAIpBwgB,EAASa,GAAU1X,EAAK0X,GACnBb,GAAUjpB,EAAOkjB,WAAY9Q,IAAS6W,EAAO7jB,OAAS6jB,EAAO7jB,MAAOgN,EAAK3J,MAAW,GACxFhG,EAAM8nB,gBAMR,IAHA9nB,EAAME,KAAOA,GAGPknB,IAAiBpnB,EAAM+nB,wBAErB9B,EAAQ+B,UAAY/B,EAAQ+B,SAASrlB,MAAO4kB,EAAU/b,MAAOxF,MAAW,IAC9EzI,EAAOkjB,WAAY7f,IAKdymB,GAAUzmB,EAAMV,KAAW3C,EAAO2H,SAAUtE,GAAS,CAGzDkG,EAAMlG,EAAMymB,GAEPvgB,IACJlG,EAAMymB,GAAW,MAIlB9pB,EAAOyC,MAAMymB,UAAYvmB,CACzB,KACCU,EAAMV,KACL,MAAQuF,IAIVlI,EAAOyC,MAAMymB,UAAY3pB,EAEpBgK,IACJlG,EAAMymB,GAAWvgB,GAMrB,MAAO9G,GAAM4T,SAGd8S,SAAU,SAAU1mB,GAGnBA,EAAQzC,EAAOyC,MAAMioB,IAAKjoB,EAE1B,IAAIgD,GAAGZ,EAAK+jB,EAAW1R,EAASvR,EAC/BglB,KACA1lB,EAAOvE,EAAW8D,KAAMa,WACxBwjB,GAAa7oB,EAAO+jB,MAAOzgB,KAAM,eAAoBb,EAAME,UAC3D+lB,EAAU1oB,EAAOyC,MAAMimB,QAASjmB,EAAME,SAOvC,IAJAsC,EAAK,GAAKxC,EACVA,EAAMmoB,eAAiBtnB,MAGlBolB,EAAQmC,aAAenC,EAAQmC,YAAYrmB,KAAMlB,KAAMb,MAAY,EAAxE,CAKAkoB,EAAe3qB,EAAOyC,MAAMomB,SAASrkB,KAAMlB,KAAMb,EAAOomB,GAGxDpjB,EAAI,CACJ,QAASyR,EAAUyT,EAAcllB,QAAWhD,EAAM6nB,uBAAyB,CAC1E7nB,EAAMqoB,cAAgB5T,EAAQ7T,KAE9BsC,EAAI,CACJ,QAASijB,EAAY1R,EAAQ2R,SAAUljB,QAAWlD,EAAMsoB,kCAIjDtoB,EAAM0nB,cAAgB1nB,EAAM0nB,aAAapmB,KAAM6kB,EAAUU,cAE9D7mB,EAAMmmB,UAAYA,EAClBnmB,EAAMgG,KAAOmgB,EAAUngB,KAEvB5D,IAAS7E,EAAOyC,MAAMimB,QAASE,EAAUG,eAAkBE,QAAUL,EAAU3W,SAC5E7M,MAAO8R,EAAQ7T,KAAM4B,GAEnBJ,IAAQtF,IACNkD,EAAM4T,OAASxR,MAAS,IAC7BpC,EAAM8nB,iBACN9nB,EAAMuoB,oBAYX,MAJKtC,GAAQuC,cACZvC,EAAQuC,aAAazmB,KAAMlB,KAAMb,GAG3BA,EAAM4T,SAGdwS,SAAU,SAAUpmB,EAAOomB,GAC1B,GAAIqC,GAAKtC,EAAW1b,EAASzH,EAC5BklB,KACApB,EAAgBV,EAASU,cACzBnX,EAAM3P,EAAM8D,MAKb,IAAKgjB,GAAiBnX,EAAIvO,YAAcpB,EAAM+V,QAAyB,UAAf/V,EAAME,MAG7D,KAAQyP,GAAO9O,KAAM8O,EAAMA,EAAIhO,YAAcd,KAK5C,GAAsB,IAAjB8O,EAAIvO,WAAmBuO,EAAI8F,YAAa,GAAuB,UAAfzV,EAAME,MAAoB,CAE9E,IADAuK,KACMzH,EAAI,EAAO8jB,EAAJ9jB,EAAmBA,IAC/BmjB,EAAYC,EAAUpjB,GAGtBylB,EAAMtC,EAAUxnB,SAAW,IAEtB8L,EAASge,KAAU3rB,IACvB2N,EAASge,GAAQtC,EAAUpZ,aAC1BxP,EAAQkrB,EAAK5nB,MAAOua,MAAOzL,IAAS,EACpCpS,EAAO0D,KAAMwnB,EAAK5nB,KAAM,MAAQ8O,IAAQ5O,QAErC0J,EAASge,IACbhe,EAAQzM,KAAMmoB,EAGX1b,GAAQ1J,QACZmnB,EAAalqB,MAAO4C,KAAM+O,EAAKyW,SAAU3b,IAW7C,MAJqB2b,GAASrlB,OAAzB+lB,GACJoB,EAAalqB,MAAO4C,KAAMC,KAAMulB,SAAUA,EAASloB,MAAO4oB,KAGpDoB,GAGRD,IAAK,SAAUjoB,GACd,GAAKA,EAAOzC,EAAO0G,SAClB,MAAOjE,EAIR,IAAIgD,GAAGmgB,EAAMzf,EACZxD,EAAOF,EAAME,KACbwoB,EAAgB1oB,EAChB2oB,EAAU9nB,KAAK+nB,SAAU1oB,EAEpByoB,KACL9nB,KAAK+nB,SAAU1oB,GAASyoB,EACvBtD,GAAY/jB,KAAMpB,GAASW,KAAKgoB,WAChCzD,GAAU9jB,KAAMpB,GAASW,KAAKioB,aAGhCplB,EAAOilB,EAAQI,MAAQloB,KAAKkoB,MAAMjrB,OAAQ6qB,EAAQI,OAAUloB,KAAKkoB,MAEjE/oB,EAAQ,GAAIzC,GAAOiqB,MAAOkB,GAE1B1lB,EAAIU,EAAK3C,MACT,OAAQiC,IACPmgB,EAAOzf,EAAMV,GACbhD,EAAOmjB,GAASuF,EAAevF,EAmBhC,OAdMnjB,GAAM8D,SACX9D,EAAM8D,OAAS4kB,EAAcM,YAAc7rB,GAKb,IAA1B6C,EAAM8D,OAAO1C,WACjBpB,EAAM8D,OAAS9D,EAAM8D,OAAOnC,YAK7B3B,EAAMipB,UAAYjpB,EAAMipB,QAEjBN,EAAQ5X,OAAS4X,EAAQ5X,OAAQ/Q,EAAO0oB,GAAkB1oB,GAIlE+oB,MAAO,wHAAwHlf,MAAM,KAErI+e,YAEAE,UACCC,MAAO,4BAA4Blf,MAAM,KACzCkH,OAAQ,SAAU/Q,EAAOkpB,GAOxB,MAJoB,OAAflpB,EAAMmpB,QACVnpB,EAAMmpB,MAA6B,MAArBD,EAASE,SAAmBF,EAASE,SAAWF,EAASG,SAGjErpB,IAIT6oB,YACCE,MAAO,mGAAmGlf,MAAM,KAChHkH,OAAQ,SAAU/Q,EAAOkpB,GACxB,GAAIvkB,GAAM2kB,EAAUjZ,EACnB0F,EAASmT,EAASnT,OAClBwT,EAAcL,EAASK,WAuBxB,OApBoB,OAAfvpB,EAAMwpB,OAAqC,MAApBN,EAASO,UACpCH,EAAWtpB,EAAM8D,OAAOzC,eAAiBlE,EACzCkT,EAAMiZ,EAASjsB,gBACfsH,EAAO2kB,EAAS3kB,KAEhB3E,EAAMwpB,MAAQN,EAASO,SAAYpZ,GAAOA,EAAIqZ,YAAc/kB,GAAQA,EAAK+kB,YAAc,IAAQrZ,GAAOA,EAAIsZ,YAAchlB,GAAQA,EAAKglB,YAAc,GACnJ3pB,EAAM4pB,MAAQV,EAASW,SAAYxZ,GAAOA,EAAIyZ,WAAcnlB,GAAQA,EAAKmlB,WAAc,IAAQzZ,GAAOA,EAAI0Z,WAAcplB,GAAQA,EAAKolB,WAAc,KAI9I/pB,EAAMgqB,eAAiBT,IAC5BvpB,EAAMgqB,cAAgBT,IAAgBvpB,EAAM8D,OAASolB,EAASe,UAAYV,GAKrEvpB,EAAMmpB,OAASpT,IAAWjZ,IAC/BkD,EAAMmpB,MAAmB,EAATpT,EAAa,EAAe,EAATA,EAAa,EAAe,EAATA,EAAa,EAAI,GAGjE/V,IAITimB,SACCiE,MAECvC,UAAU,GAEXxS,OAECrQ,QAAS,WACR,GAAKjE,OAAS6kB,MAAuB7kB,KAAKsU,MACzC,IAEC,MADAtU,MAAKsU,SACE,EACN,MAAQ1P,MAOZkhB,aAAc,WAEfwD,MACCrlB,QAAS,WACR,MAAKjE,QAAS6kB,MAAuB7kB,KAAKspB,MACzCtpB,KAAKspB,QACE,GAFR,GAKDxD,aAAc,YAEfxH,OAECra,QAAS,WACR,MAAKvH,GAAOmK,SAAU7G,KAAM,UAA2B,aAAdA,KAAKX,MAAuBW,KAAKse,OACzEte,KAAKse,SACE,GAFR,GAOD6I,SAAU,SAAUhoB,GACnB,MAAOzC,GAAOmK,SAAU1H,EAAM8D,OAAQ,OAIxCsmB,cACC5B,aAAc,SAAUxoB,GAGlBA,EAAM4T,SAAW9W,IACrBkD,EAAM0oB,cAAc2B,YAAcrqB,EAAM4T,WAM5C0W,SAAU,SAAUpqB,EAAMU,EAAMZ,EAAOuqB,GAItC,GAAI9kB,GAAIlI,EAAOgG,OACd,GAAIhG,GAAOiqB,MACXxnB,GAECE,KAAMA,EACNsqB,aAAa,EACb9B,kBAGG6B,GACJhtB,EAAOyC,MAAM8E,QAASW,EAAG,KAAM7E,GAE/BrD,EAAOyC,MAAM0mB,SAAS3kB,KAAMnB,EAAM6E,GAE9BA,EAAEsiB,sBACN/nB,EAAM8nB,mBAKTvqB,EAAO4pB,YAAchqB,EAASmD,oBAC7B,SAAUM,EAAMV,EAAMsmB,GAChB5lB,EAAKN,qBACTM,EAAKN,oBAAqBJ,EAAMsmB,GAAQ,IAG1C,SAAU5lB,EAAMV,EAAMsmB,GACrB,GAAI7iB,GAAO,KAAOzD,CAEbU,GAAKL,oBAIGK,GAAM+C,KAAW1G,IAC5B2D,EAAM+C,GAAS,MAGhB/C,EAAKL,YAAaoD,EAAM6iB,KAI3BjpB,EAAOiqB,MAAQ,SAAUhkB,EAAKulB,GAE7B,MAAOloB,gBAAgBtD,GAAOiqB,OAKzBhkB,GAAOA,EAAItD,MACfW,KAAK6nB,cAAgBllB,EACrB3C,KAAKX,KAAOsD,EAAItD,KAIhBW,KAAKknB,mBAAuBvkB,EAAIinB,kBAAoBjnB,EAAI6mB,eAAgB,GACvE7mB,EAAIknB,mBAAqBlnB,EAAIknB,oBAAwBlF,GAAaC,IAInE5kB,KAAKX,KAAOsD,EAIRulB,GACJxrB,EAAOgG,OAAQ1C,KAAMkoB,GAItBloB,KAAK8pB,UAAYnnB,GAAOA,EAAImnB,WAAaptB,EAAO0L,MAGhDpI,KAAMtD,EAAO0G,UAAY,EAvBzB,GAJQ,GAAI1G,GAAOiqB,MAAOhkB,EAAKulB,IAgChCxrB,EAAOiqB,MAAMhnB,WACZunB,mBAAoBtC,GACpBoC,qBAAsBpC,GACtB6C,8BAA+B7C,GAE/BqC,eAAgB,WACf,GAAIriB,GAAI5E,KAAK6nB,aAEb7nB,MAAKknB,mBAAqBvC,GACpB/f,IAKDA,EAAEqiB,eACNriB,EAAEqiB,iBAKFriB,EAAE4kB,aAAc,IAGlB9B,gBAAiB,WAChB,GAAI9iB,GAAI5E,KAAK6nB,aAEb7nB,MAAKgnB,qBAAuBrC,GACtB/f,IAIDA,EAAE8iB,iBACN9iB,EAAE8iB,kBAKH9iB,EAAEmlB,cAAe,IAElBC,yBAA0B,WACzBhqB,KAAKynB,8BAAgC9C,GACrC3kB,KAAK0nB,oBAKPhrB,EAAO+E,MACNwoB,WAAY,YACZC,WAAY,YACV,SAAUC,EAAM/C,GAClB1qB,EAAOyC,MAAMimB,QAAS+E,IACrBrE,aAAcsB,EACdrB,SAAUqB,EAEVzB,OAAQ,SAAUxmB,GACjB,GAAIoC,GACH0B,EAASjD,KACToqB,EAAUjrB,EAAMgqB,cAChB7D,EAAYnmB,EAAMmmB,SASnB,SALM8E,GAAYA,IAAYnnB,IAAWvG,EAAOmN,SAAU5G,EAAQmnB,MACjEjrB,EAAME,KAAOimB,EAAUG,SACvBlkB,EAAM+jB,EAAU3W,QAAQ7M,MAAO9B,KAAM+B,WACrC5C,EAAME,KAAO+nB,GAEP7lB,MAMJ7E,EAAOmI,QAAQwlB,gBAEpB3tB,EAAOyC,MAAMimB,QAAQxP,QACpBsQ,MAAO,WAEN,MAAKxpB,GAAOmK,SAAU7G,KAAM,SACpB,GAIRtD,EAAOyC,MAAMmb,IAAKta,KAAM,iCAAkC,SAAU4E,GAEnE,GAAI7E,GAAO6E,EAAE3B,OACZqnB,EAAO5tB,EAAOmK,SAAU9G,EAAM,UAAarD,EAAOmK,SAAU9G,EAAM,UAAaA,EAAKuqB,KAAOruB,CACvFquB,KAAS5tB,EAAO+jB,MAAO6J,EAAM,mBACjC5tB,EAAOyC,MAAMmb,IAAKgQ,EAAM,iBAAkB,SAAUnrB,GACnDA,EAAMorB,gBAAiB,IAExB7tB,EAAO+jB,MAAO6J,EAAM,iBAAiB,MARvC5tB,IAcDirB,aAAc,SAAUxoB,GAElBA,EAAMorB,uBACHprB,GAAMorB,eACRvqB,KAAKc,aAAe3B,EAAMynB,WAC9BlqB,EAAOyC,MAAMsqB,SAAU,SAAUzpB,KAAKc,WAAY3B,GAAO,KAK5DknB,SAAU,WAET,MAAK3pB,GAAOmK,SAAU7G,KAAM,SACpB,GAIRtD,EAAOyC,MAAMsG,OAAQzF,KAAM,YAA3BtD,MAMGA,EAAOmI,QAAQ2lB,gBAEpB9tB,EAAOyC,MAAMimB,QAAQ7G,QAEpB2H,MAAO,WAEN,MAAK5B,GAAW7jB,KAAMT,KAAK6G,YAIP,aAAd7G,KAAKX,MAAqC,UAAdW,KAAKX,QACrC3C,EAAOyC,MAAMmb,IAAKta,KAAM,yBAA0B,SAAUb,GACjB,YAArCA,EAAM0oB,cAAc4C,eACxBzqB,KAAK0qB,eAAgB,KAGvBhuB,EAAOyC,MAAMmb,IAAKta,KAAM,gBAAiB,SAAUb,GAC7Ca,KAAK0qB,gBAAkBvrB,EAAMynB,YACjC5mB,KAAK0qB,eAAgB,GAGtBhuB,EAAOyC,MAAMsqB,SAAU,SAAUzpB,KAAMb,GAAO,OAGzC,IAGRzC,EAAOyC,MAAMmb,IAAKta,KAAM,yBAA0B,SAAU4E,GAC3D,GAAI7E,GAAO6E,EAAE3B,MAERqhB,GAAW7jB,KAAMV,EAAK8G,YAAenK,EAAO+jB,MAAO1gB,EAAM,mBAC7DrD,EAAOyC,MAAMmb,IAAKva,EAAM,iBAAkB,SAAUZ,IAC9Ca,KAAKc,YAAe3B,EAAMwqB,aAAgBxqB,EAAMynB,WACpDlqB,EAAOyC,MAAMsqB,SAAU,SAAUzpB,KAAKc,WAAY3B,GAAO,KAG3DzC,EAAO+jB,MAAO1gB,EAAM,iBAAiB,MATvCrD,IAcDipB,OAAQ,SAAUxmB,GACjB,GAAIY,GAAOZ,EAAM8D,MAGjB,OAAKjD,QAASD,GAAQZ,EAAMwqB,aAAexqB,EAAMynB,WAA4B,UAAd7mB,EAAKV,MAAkC,aAAdU,EAAKV,KACrFF,EAAMmmB,UAAU3W,QAAQ7M,MAAO9B,KAAM+B,WAD7C,GAKDskB,SAAU,WAGT,MAFA3pB,GAAOyC,MAAMsG,OAAQzF,KAAM,aAEnBskB,EAAW7jB,KAAMT,KAAK6G,aAM3BnK,EAAOmI,QAAQ8lB,gBACpBjuB,EAAO+E,MAAO6S,MAAO,UAAWgV,KAAM,YAAc,SAAUa,EAAM/C,GAGnE,GAAIwD,GAAW,EACdjc,EAAU,SAAUxP,GACnBzC,EAAOyC,MAAMsqB,SAAUrC,EAAKjoB,EAAM8D,OAAQvG,EAAOyC,MAAMioB,IAAKjoB,IAAS,GAGvEzC,GAAOyC,MAAMimB,QAASgC,IACrBlB,MAAO,WACc,IAAf0E,KACJtuB,EAAS8C,iBAAkB+qB,EAAMxb,GAAS,IAG5C0X,SAAU,WACW,MAAbuE,GACNtuB,EAASmD,oBAAqB0qB,EAAMxb,GAAS,OAOlDjS,EAAOsB,GAAG0E,QAETmoB,GAAI,SAAU7F,EAAOlnB,EAAUqH,EAAMnH,EAAiBqlB,GACrD,GAAIhkB,GAAMyrB,CAGV,IAAsB,gBAAV9F,GAAqB,CAEP,gBAAblnB,KAEXqH,EAAOA,GAAQrH,EACfA,EAAW7B,EAEZ,KAAMoD,IAAQ2lB,GACbhlB,KAAK6qB,GAAIxrB,EAAMvB,EAAUqH,EAAM6f,EAAO3lB,GAAQgkB,EAE/C,OAAOrjB,MAmBR,GAhBa,MAARmF,GAAsB,MAANnH,GAEpBA,EAAKF,EACLqH,EAAOrH,EAAW7B,GACD,MAAN+B,IACc,gBAAbF,IAEXE,EAAKmH,EACLA,EAAOlJ,IAGP+B,EAAKmH,EACLA,EAAOrH,EACPA,EAAW7B,IAGR+B,KAAO,EACXA,EAAK4mB,OACC,KAAM5mB,EACZ,MAAOgC,KAaR,OAVa,KAARqjB,IACJyH,EAAS9sB,EACTA,EAAK,SAAUmB,GAGd,MADAzC,KAASwH,IAAK/E,GACP2rB,EAAOhpB,MAAO9B,KAAM+B,YAG5B/D,EAAG6J,KAAOijB,EAAOjjB,OAAUijB,EAAOjjB,KAAOnL,EAAOmL,SAE1C7H,KAAKyB,KAAM,WACjB/E,EAAOyC,MAAMmb,IAAKta,KAAMglB,EAAOhnB,EAAImH,EAAMrH,MAG3CulB,IAAK,SAAU2B,EAAOlnB,EAAUqH,EAAMnH,GACrC,MAAOgC,MAAK6qB,GAAI7F,EAAOlnB,EAAUqH,EAAMnH,EAAI,IAE5CkG,IAAK,SAAU8gB,EAAOlnB,EAAUE,GAC/B,GAAIsnB,GAAWjmB,CACf,IAAK2lB,GAASA,EAAMiC,gBAAkBjC,EAAMM,UAQ3C,MANAA,GAAYN,EAAMM,UAClB5oB,EAAQsoB,EAAMsC,gBAAiBpjB,IAC9BohB,EAAUU,UAAYV,EAAUG,SAAW,IAAMH,EAAUU,UAAYV,EAAUG,SACjFH,EAAUxnB,SACVwnB,EAAU3W,SAEJ3O,IAER,IAAsB,gBAAVglB,GAAqB,CAEhC,IAAM3lB,IAAQ2lB,GACbhlB,KAAKkE,IAAK7E,EAAMvB,EAAUknB,EAAO3lB,GAElC,OAAOW,MAUR,OARKlC,KAAa,GAA6B,kBAAbA,MAEjCE,EAAKF,EACLA,EAAW7B,GAEP+B,KAAO,IACXA,EAAK4mB,IAEC5kB,KAAKyB,KAAK,WAChB/E,EAAOyC,MAAMsG,OAAQzF,KAAMglB,EAAOhnB,EAAIF,MAIxCmG,QAAS,SAAU5E,EAAM8F,GACxB,MAAOnF,MAAKyB,KAAK,WAChB/E,EAAOyC,MAAM8E,QAAS5E,EAAM8F,EAAMnF,SAGpC+qB,eAAgB,SAAU1rB,EAAM8F,GAC/B,GAAIpF,GAAOC,KAAK,EAChB,OAAKD,GACGrD,EAAOyC,MAAM8E,QAAS5E,EAAM8F,EAAMpF,GAAM,GADhD,IAKF,IAAIirB,IAAW,iBACdC,GAAe,iCACfC,GAAgBxuB,EAAO4U,KAAKxR,MAAMoM,aAElCif,IACCC,UAAU,EACVC,UAAU,EACVpK,MAAM,EACNqK,MAAM,EAGR5uB,GAAOsB,GAAG0E,QACTtC,KAAM,SAAUtC,GACf,GAAIqE,GACHZ,KACA6Y,EAAOpa,KACPoC,EAAMgY,EAAKla,MAEZ,IAAyB,gBAAbpC,GACX,MAAOkC,MAAKqB,UAAW3E,EAAQoB,GAAWoS,OAAO,WAChD,IAAM/N,EAAI,EAAOC,EAAJD,EAASA,IACrB,GAAKzF,EAAOmN,SAAUuQ,EAAMjY,GAAKnC,MAChC,OAAO,IAMX,KAAMmC,EAAI,EAAOC,EAAJD,EAASA,IACrBzF,EAAO0D,KAAMtC,EAAUsc,EAAMjY,GAAKZ,EAMnC,OAFAA,GAAMvB,KAAKqB,UAAWe,EAAM,EAAI1F,EAAOwc,OAAQ3X,GAAQA,GACvDA,EAAIzD,SAAWkC,KAAKlC,SAAWkC,KAAKlC,SAAW,IAAMA,EAAWA,EACzDyD,GAGRyS,IAAK,SAAU/Q,GACd,GAAId,GACHopB,EAAU7uB,EAAQuG,EAAQjD,MAC1BoC,EAAMmpB,EAAQrrB,MAEf,OAAOF,MAAKkQ,OAAO,WAClB,IAAM/N,EAAI,EAAOC,EAAJD,EAASA,IACrB,GAAKzF,EAAOmN,SAAU7J,KAAMurB,EAAQppB,IACnC,OAAO,KAMX0R,IAAK,SAAU/V,GACd,MAAOkC,MAAKqB,UAAWmqB,GAAOxrB,KAAMlC,OAAgB,KAGrDoS,OAAQ,SAAUpS,GACjB,MAAOkC,MAAKqB,UAAWmqB,GAAOxrB,KAAMlC,OAAgB,KAGrD2tB,GAAI,SAAU3tB,GACb,QAAS0tB,GACRxrB,KAIoB,gBAAblC,IAAyBotB,GAAczqB,KAAM3C,GACnDpB,EAAQoB,GACRA,OACD,GACCoC,QAGHwrB,QAAS,SAAU1Z,EAAWjU,GAC7B,GAAI+Q,GACH3M,EAAI,EACJqF,EAAIxH,KAAKE,OACTqB,KACAoqB,EAAMT,GAAczqB,KAAMuR,IAAoC,gBAAdA,GAC/CtV,EAAQsV,EAAWjU,GAAWiC,KAAKjC,SACnC,CAEF,MAAYyJ,EAAJrF,EAAOA,IACd,IAAM2M,EAAM9O,KAAKmC,GAAI2M,GAAOA,IAAQ/Q,EAAS+Q,EAAMA,EAAIhO,WAEtD,GAAoB,GAAfgO,EAAIvO,WAAkBorB,EAC1BA,EAAIpR,MAAMzL,GAAO,GAGA,IAAjBA,EAAIvO,UACH7D,EAAO0D,KAAKmQ,gBAAgBzB,EAAKkD,IAAc,CAEhDlD,EAAMvN,EAAIpE,KAAM2R,EAChB,OAKH,MAAO9O,MAAKqB,UAAWE,EAAIrB,OAAS,EAAIxD,EAAOwc,OAAQ3X,GAAQA,IAKhEgZ,MAAO,SAAUxa,GAGhB,MAAMA,GAKe,gBAATA,GACJrD,EAAO2K,QAASrH,KAAK,GAAItD,EAAQqD,IAIlCrD,EAAO2K,QAEbtH,EAAKH,OAASG,EAAK,GAAKA,EAAMC,MAXrBA,KAAK,IAAMA,KAAK,GAAGc,WAAed,KAAKgC,QAAQ4pB,UAAU1rB,OAAS,IAc7Eoa,IAAK,SAAUxc,EAAUC,GACxB,GAAIolB,GAA0B,gBAAbrlB,GACfpB,EAAQoB,EAAUC,GAClBrB,EAAOsE,UAAWlD,GAAYA,EAASyC,UAAazC,GAAaA,GAClEiB,EAAMrC,EAAO2D,MAAOL,KAAKmB,MAAOgiB,EAEjC,OAAOnjB,MAAKqB,UAAW3E,EAAOwc,OAAOna,KAGtC8sB,QAAS,SAAU/tB,GAClB,MAAOkC,MAAKsa,IAAiB,MAAZxc,EAChBkC,KAAKwB,WAAaxB,KAAKwB,WAAW0O,OAAOpS,MAK5C,SAASguB,IAAShd,EAAKsD,GACtB,EACCtD,GAAMA,EAAKsD,SACFtD,GAAwB,IAAjBA,EAAIvO,SAErB,OAAOuO,GAGRpS,EAAO+E,MACNgO,OAAQ,SAAU1P,GACjB,GAAI0P,GAAS1P,EAAKe,UAClB,OAAO2O,IAA8B,KAApBA,EAAOlP,SAAkBkP,EAAS,MAEpDsc,QAAS,SAAUhsB,GAClB,MAAOrD,GAAO0V,IAAKrS,EAAM,eAE1BisB,aAAc,SAAUjsB,EAAMoC,EAAG8pB,GAChC,MAAOvvB,GAAO0V,IAAKrS,EAAM,aAAcksB,IAExChL,KAAM,SAAUlhB,GACf,MAAO+rB,IAAS/rB,EAAM,gBAEvBurB,KAAM,SAAUvrB,GACf,MAAO+rB,IAAS/rB,EAAM,oBAEvBmsB,QAAS,SAAUnsB,GAClB,MAAOrD,GAAO0V,IAAKrS,EAAM,gBAE1B6rB,QAAS,SAAU7rB,GAClB,MAAOrD,GAAO0V,IAAKrS,EAAM,oBAE1BosB,UAAW,SAAUpsB,EAAMoC,EAAG8pB,GAC7B,MAAOvvB,GAAO0V,IAAKrS,EAAM,cAAeksB,IAEzCG,UAAW,SAAUrsB,EAAMoC,EAAG8pB,GAC7B,MAAOvvB,GAAO0V,IAAKrS,EAAM,kBAAmBksB,IAE7CI,SAAU,SAAUtsB,GACnB,MAAOrD,GAAOovB,SAAW/rB,EAAKe,gBAAmBiP,WAAYhQ,IAE9DqrB,SAAU,SAAUrrB,GACnB,MAAOrD,GAAOovB,QAAS/rB,EAAKgQ,aAE7Bsb,SAAU,SAAUtrB,GACnB,MAAOrD,GAAOmK,SAAU9G,EAAM,UAC7BA,EAAKusB,iBAAmBvsB,EAAKwsB,cAAcjwB,SAC3CI,EAAO2D,SAAWN,EAAK2F,cAEvB,SAAU5C,EAAM9E,GAClBtB,EAAOsB,GAAI8E,GAAS,SAAUmpB,EAAOnuB,GACpC,GAAIyD,GAAM7E,EAAO4F,IAAKtC,KAAMhC,EAAIiuB,EAsBhC,OApB0B,UAArBnpB,EAAKzF,MAAO,MAChBS,EAAWmuB,GAGPnuB,GAAgC,gBAAbA,KACvByD,EAAM7E,EAAOwT,OAAQpS,EAAUyD,IAG3BvB,KAAKE,OAAS,IAEZirB,GAAkBroB,KACvBvB,EAAM7E,EAAOwc,OAAQ3X,IAIjB0pB,GAAaxqB,KAAMqC,KACvBvB,EAAMA,EAAIirB,YAILxsB,KAAKqB,UAAWE,MAIzB7E,EAAOgG,QACNwN,OAAQ,SAAUoB,EAAMhQ,EAAOuS,GAC9B,GAAI9T,GAAOuB,EAAO,EAMlB,OAJKuS,KACJvC,EAAO,QAAUA,EAAO,KAGD,IAAjBhQ,EAAMpB,QAAkC,IAAlBH,EAAKQ,SACjC7D,EAAO0D,KAAKmQ,gBAAiBxQ,EAAMuR,IAAWvR,MAC9CrD,EAAO0D,KAAKwJ,QAAS0H,EAAM5U,EAAO+K,KAAMnG,EAAO,SAAUvB,GACxD,MAAyB,KAAlBA,EAAKQ,aAIf6R,IAAK,SAAUrS,EAAMqS,EAAK6Z,GACzB,GAAIrY,MACH9E,EAAM/O,EAAMqS,EAEb,OAAQtD,GAAwB,IAAjBA,EAAIvO,WAAmB0rB,IAAUhwB,GAA8B,IAAjB6S,EAAIvO,WAAmB7D,EAAQoS,GAAM2c,GAAIQ,IAC/E,IAAjBnd,EAAIvO,UACRqT,EAAQzW,KAAM2R,GAEfA,EAAMA,EAAIsD,EAEX,OAAOwB,IAGRkY,QAAS,SAAUW,EAAG1sB,GACrB,GAAI2sB,KAEJ,MAAQD,EAAGA,EAAIA,EAAExd,YACI,IAAfwd,EAAElsB,UAAkBksB,IAAM1sB,GAC9B2sB,EAAEvvB,KAAMsvB,EAIV,OAAOC,KAKT,SAASlB,IAAQja,EAAUob,EAAW9Y,GACrC,GAAKnX,EAAOiE,WAAYgsB,GACvB,MAAOjwB,GAAO+K,KAAM8J,EAAU,SAAUxR,EAAMoC,GAE7C,QAASwqB,EAAUzrB,KAAMnB,EAAMoC,EAAGpC,KAAW8T,GAK/C,IAAK8Y,EAAUpsB,SACd,MAAO7D,GAAO+K,KAAM8J,EAAU,SAAUxR,GACvC,MAASA,KAAS4sB,IAAgB9Y,GAKpC,IAA0B,gBAAd8Y,GAAyB,CACpC,GAAK3B,GAASvqB,KAAMksB,GACnB,MAAOjwB,GAAOwT,OAAQyc,EAAWpb,EAAUsC,EAG5C8Y,GAAYjwB,EAAOwT,OAAQyc,EAAWpb,GAGvC,MAAO7U,GAAO+K,KAAM8J,EAAU,SAAUxR,GACvC,MAASrD,GAAO2K,QAAStH,EAAM4sB,IAAe,IAAQ9Y,IAGxD,QAAS+Y,IAAoBtwB,GAC5B,GAAIyd,GAAO8S,GAAU7jB,MAAO,KAC3B8jB,EAAWxwB,EAAS6hB,wBAErB,IAAK2O,EAASvnB,cACb,MAAQwU,EAAK7Z,OACZ4sB,EAASvnB,cACRwU,EAAKpP,MAIR,OAAOmiB,GAGR,GAAID,IAAY,6JAEfE,GAAgB,6BAChBC,GAAmB7hB,OAAO,OAAS0hB,GAAY,WAAY,KAC3DI,GAAqB,OACrBC,GAAY,0EACZC,GAAW,YACXC,GAAS,UACTC,GAAQ,YACRC,GAAe,0BACfC,GAA8B,wBAE9BC,GAAW,oCACXC,GAAc,4BACdC,GAAoB,cACpBC,GAAe,2CAGfC,IACCxK,QAAU,EAAG,+BAAgC,aAC7CyK,QAAU,EAAG,aAAc,eAC3BC,MAAQ,EAAG,QAAS,UACpBC,OAAS,EAAG,WAAY,aACxBC,OAAS,EAAG,UAAW,YACvBC,IAAM,EAAG,iBAAkB,oBAC3BC,KAAO,EAAG,mCAAoC,uBAC9CC,IAAM,EAAG,qBAAsB,yBAI/BhH,SAAUzqB,EAAOmI,QAAQkY,eAAkB,EAAG,GAAI,KAAS,EAAG,SAAU,WAEzEqR,GAAexB,GAAoBtwB,GACnC+xB,GAAcD,GAAaxe,YAAatT,EAASiJ,cAAc,OAEhEqoB,IAAQU,SAAWV,GAAQxK,OAC3BwK,GAAQ9Q,MAAQ8Q,GAAQW,MAAQX,GAAQY,SAAWZ,GAAQa,QAAUb,GAAQI,MAC7EJ,GAAQc,GAAKd,GAAQO,GAErBzxB,EAAOsB,GAAG0E,QACTuE,KAAM,SAAUF,GACf,MAAOrK,GAAOqL,OAAQ/H,KAAM,SAAU+G,GACrC,MAAOA,KAAU9K,EAChBS,EAAOuK,KAAMjH,MACbA,KAAKgV,QAAQ2Z,QAAU3uB,KAAK,IAAMA,KAAK,GAAGQ,eAAiBlE,GAAWsyB,eAAgB7nB,KACrF,KAAMA,EAAOhF,UAAU7B,SAG3ByuB,OAAQ,WACP,MAAO3uB,MAAK6uB,SAAU9sB,UAAW,SAAUhC,GAC1C,GAAuB,IAAlBC,KAAKO,UAAoC,KAAlBP,KAAKO,UAAqC,IAAlBP,KAAKO,SAAiB,CACzE,GAAI0C,GAAS6rB,GAAoB9uB,KAAMD,EACvCkD,GAAO2M,YAAa7P,OAKvBgvB,QAAS,WACR,MAAO/uB,MAAK6uB,SAAU9sB,UAAW,SAAUhC,GAC1C,GAAuB,IAAlBC,KAAKO,UAAoC,KAAlBP,KAAKO,UAAqC,IAAlBP,KAAKO,SAAiB,CACzE,GAAI0C,GAAS6rB,GAAoB9uB,KAAMD,EACvCkD,GAAO+rB,aAAcjvB,EAAMkD,EAAO8M,gBAKrCkf,OAAQ,WACP,MAAOjvB,MAAK6uB,SAAU9sB,UAAW,SAAUhC,GACrCC,KAAKc,YACTd,KAAKc,WAAWkuB,aAAcjvB,EAAMC,SAKvCkvB,MAAO,WACN,MAAOlvB,MAAK6uB,SAAU9sB,UAAW,SAAUhC,GACrCC,KAAKc,YACTd,KAAKc,WAAWkuB,aAAcjvB,EAAMC,KAAKiP,gBAM5CxJ,OAAQ,SAAU3H,EAAUqxB,GAC3B,GAAIpvB,GACHuB,EAAQxD,EAAWpB,EAAOwT,OAAQpS,EAAUkC,MAASA,KACrDmC,EAAI,CAEL,MAA6B,OAApBpC,EAAOuB,EAAMa,IAAaA,IAE5BgtB,GAA8B,IAAlBpvB,EAAKQ,UACtB7D,EAAOyjB,UAAWiP,GAAQrvB,IAGtBA,EAAKe,aACJquB,GAAYzyB,EAAOmN,SAAU9J,EAAKS,cAAeT,IACrDsvB,GAAeD,GAAQrvB,EAAM,WAE9BA,EAAKe,WAAW0N,YAAazO,GAI/B,OAAOC,OAGRgV,MAAO,WACN,GAAIjV,GACHoC,EAAI,CAEL,MAA4B,OAAnBpC,EAAOC,KAAKmC,IAAaA,IAAM,CAEhB,IAAlBpC,EAAKQ,UACT7D,EAAOyjB,UAAWiP,GAAQrvB,GAAM,GAIjC,OAAQA,EAAKgQ,WACZhQ,EAAKyO,YAAazO,EAAKgQ,WAKnBhQ,GAAKgD,SAAWrG,EAAOmK,SAAU9G,EAAM,YAC3CA,EAAKgD,QAAQ7C,OAAS,GAIxB,MAAOF,OAGRgD,MAAO,SAAUssB,EAAeC,GAI/B,MAHAD,GAAiC,MAAjBA,GAAwB,EAAQA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EAEzDvvB,KAAKsC,IAAK,WAChB,MAAO5F,GAAOsG,MAAOhD,KAAMsvB,EAAeC,MAI5CC,KAAM,SAAUzoB,GACf,MAAOrK,GAAOqL,OAAQ/H,KAAM,SAAU+G,GACrC,GAAIhH,GAAOC,KAAK,OACfmC,EAAI,EACJqF,EAAIxH,KAAKE,MAEV,IAAK6G,IAAU9K,EACd,MAAyB,KAAlB8D,EAAKQ,SACXR,EAAK+P,UAAUvM,QAASwpB,GAAe,IACvC9wB,CAIF,MAAsB,gBAAV8K,IAAuBumB,GAAa7sB,KAAMsG,KACnDrK,EAAOmI,QAAQkY,eAAkBiQ,GAAavsB,KAAMsG,KACpDrK,EAAOmI,QAAQgY,mBAAsBoQ,GAAmBxsB,KAAMsG,IAC/D6mB,IAAWT,GAAShtB,KAAM4G,KAAY,GAAI,KAAM,GAAGD,gBAAkB,CAEtEC,EAAQA,EAAMxD,QAAS2pB,GAAW,YAElC,KACC,KAAW1lB,EAAJrF,EAAOA,IAEbpC,EAAOC,KAAKmC,OACW,IAAlBpC,EAAKQ,WACT7D,EAAOyjB,UAAWiP,GAAQrvB,GAAM,IAChCA,EAAK+P,UAAY/I,EAInBhH,GAAO,EAGN,MAAM6E,KAGJ7E,GACJC,KAAKgV,QAAQ2Z,OAAQ5nB,IAEpB,KAAMA,EAAOhF,UAAU7B,SAG3BuvB,YAAa,WACZ,GAEC9tB,GAAOjF,EAAO4F,IAAKtC,KAAM,SAAUD,GAClC,OAASA,EAAKkP,YAAalP,EAAKe,cAEjCqB,EAAI,CAmBL,OAhBAnC,MAAK6uB,SAAU9sB,UAAW,SAAUhC,GACnC,GAAIkhB,GAAOtf,EAAMQ,KAChBsN,EAAS9N,EAAMQ,IAEXsN,KAECwR,GAAQA,EAAKngB,aAAe2O,IAChCwR,EAAOjhB,KAAKiP,aAEbvS,EAAQsD,MAAOyF,SACfgK,EAAOuf,aAAcjvB,EAAMkhB,MAG1B,GAGI9e,EAAInC,KAAOA,KAAKyF,UAGxBlG,OAAQ,SAAUzB,GACjB,MAAOkC,MAAKyF,OAAQ3H,GAAU,IAG/B+wB,SAAU,SAAUltB,EAAMD,EAAUguB,GAGnC/tB,EAAO3E,EAAY8E,SAAWH,EAE9B,IAAIK,GAAOuN,EAAMogB,EAChBrqB,EAASkK,EAAK+M,EACdpa,EAAI,EACJqF,EAAIxH,KAAKE,OACTijB,EAAMnjB,KACN4vB,EAAWpoB,EAAI,EACfT,EAAQpF,EAAK,GACbhB,EAAajE,EAAOiE,WAAYoG,EAGjC,IAAKpG,KAAsB,GAAL6G,GAA2B,gBAAVT,IAAsBrK,EAAOmI,QAAQwZ,aAAemP,GAAS/sB,KAAMsG,GACzG,MAAO/G,MAAKyB,KAAK,SAAU8Y,GAC1B,GAAIH,GAAO+I,EAAIlhB,GAAIsY,EACd5Z,KACJgB,EAAK,GAAKoF,EAAM7F,KAAMlB,KAAMua,EAAOH,EAAKoV,SAEzCpV,EAAKyU,SAAUltB,EAAMD,EAAUguB,IAIjC,IAAKloB,IACJ+U,EAAW7f,EAAO8I,cAAe7D,EAAM3B,KAAM,GAAIQ,eAAe,GAAQkvB,GAAqB1vB,MAC7FgC,EAAQua,EAASxM,WAEmB,IAA/BwM,EAAS7W,WAAWxF,SACxBqc,EAAWva,GAGPA,GAAQ,CAMZ,IALAsD,EAAU5I,EAAO4F,IAAK8sB,GAAQ7S,EAAU,UAAYsT,IACpDF,EAAarqB,EAAQpF,OAITsH,EAAJrF,EAAOA,IACdoN,EAAOgN,EAEFpa,IAAMytB,IACVrgB,EAAO7S,EAAOsG,MAAOuM,GAAM,GAAM,GAG5BogB,GACJjzB,EAAO2D,MAAOiF,EAAS8pB,GAAQ7f,EAAM,YAIvC7N,EAASR,KAAMlB,KAAKmC,GAAIoN,EAAMpN,EAG/B,IAAKwtB,EAOJ,IANAngB,EAAMlK,EAASA,EAAQpF,OAAS,GAAIM,cAGpC9D,EAAO4F,IAAKgD,EAASwqB,IAGf3tB,EAAI,EAAOwtB,EAAJxtB,EAAgBA,IAC5BoN,EAAOjK,EAASnD,GACXsrB,GAAYhtB,KAAM8O,EAAKlQ,MAAQ,MAClC3C,EAAO+jB,MAAOlR,EAAM,eAAkB7S,EAAOmN,SAAU2F,EAAKD,KAExDA,EAAK5M,IAETjG,EAAOqzB,SAAUxgB,EAAK5M,KAEtBjG,EAAO+J,YAAc8I,EAAKtI,MAAQsI,EAAKuC,aAAevC,EAAKO,WAAa,IAAKvM,QAASoqB,GAAc,KAOxGpR,GAAWva,EAAQ,KAIrB,MAAOhC,QAMT,SAAS8uB,IAAoB/uB,EAAMiwB,GAClC,MAAOtzB,GAAOmK,SAAU9G,EAAM,UAC7BrD,EAAOmK,SAA+B,IAArBmpB,EAAQzvB,SAAiByvB,EAAUA,EAAQjgB,WAAY,MAExEhQ,EAAKwG,qBAAqB,SAAS,IAClCxG,EAAK6P,YAAa7P,EAAKS,cAAc+E,cAAc,UACpDxF,EAIF,QAAS8vB,IAAe9vB,GAEvB,MADAA,GAAKV,MAA6C,OAArC3C,EAAO0D,KAAKQ,KAAMb,EAAM,SAAqB,IAAMA,EAAKV,KAC9DU,EAER,QAAS+vB,IAAe/vB,GACvB,GAAID,GAAQ4tB,GAAkBvtB,KAAMJ,EAAKV,KAMzC,OALKS,GACJC,EAAKV,KAAOS,EAAM,GAElBC,EAAKgO,gBAAgB,QAEfhO,EAIR,QAASsvB,IAAe/tB,EAAO2uB,GAC9B,GAAIlwB,GACHoC,EAAI,CACL,MAA6B,OAApBpC,EAAOuB,EAAMa,IAAaA,IAClCzF,EAAO+jB,MAAO1gB,EAAM,cAAekwB,GAAevzB,EAAO+jB,MAAOwP,EAAY9tB,GAAI,eAIlF,QAAS+tB,IAAgBvtB,EAAKwtB,GAE7B,GAAuB,IAAlBA,EAAK5vB,UAAmB7D,EAAO6jB,QAAS5d,GAA7C,CAIA,GAAItD,GAAM8C,EAAGqF,EACZ4oB,EAAU1zB,EAAO+jB,MAAO9d,GACxB0tB,EAAU3zB,EAAO+jB,MAAO0P,EAAMC,GAC9BnL,EAASmL,EAAQnL,MAElB,IAAKA,EAAS,OACNoL,GAAQ1K,OACf0K,EAAQpL,SAER,KAAM5lB,IAAQ4lB,GACb,IAAM9iB,EAAI,EAAGqF,EAAIyd,EAAQ5lB,GAAOa,OAAYsH,EAAJrF,EAAOA,IAC9CzF,EAAOyC,MAAMmb,IAAK6V,EAAM9wB,EAAM4lB,EAAQ5lB,GAAQ8C,IAM5CkuB,EAAQlrB,OACZkrB,EAAQlrB,KAAOzI,EAAOgG,UAAY2tB,EAAQlrB,QAI5C,QAASmrB,IAAoB3tB,EAAKwtB,GACjC,GAAItpB,GAAUjC,EAAGO,CAGjB,IAAuB,IAAlBgrB,EAAK5vB,SAAV,CAOA,GAHAsG,EAAWspB,EAAKtpB,SAASC,eAGnBpK,EAAOmI,QAAQgZ,cAAgBsS,EAAMzzB,EAAO0G,SAAY,CAC7D+B,EAAOzI,EAAO+jB,MAAO0P,EAErB,KAAMvrB,IAAKO,GAAK8f,OACfvoB,EAAO4pB,YAAa6J,EAAMvrB,EAAGO,EAAKwgB,OAInCwK,GAAKpiB,gBAAiBrR,EAAO0G,SAIZ,WAAbyD,GAAyBspB,EAAKlpB,OAAStE,EAAIsE,MAC/C4oB,GAAeM,GAAOlpB,KAAOtE,EAAIsE,KACjC6oB,GAAeK,IAIS,WAAbtpB,GACNspB,EAAKrvB,aACTqvB,EAAK3S,UAAY7a,EAAI6a,WAOjB9gB,EAAOmI,QAAQyY,YAAgB3a,EAAImN,YAAcpT,EAAOmB,KAAKsyB,EAAKrgB,aACtEqgB,EAAKrgB,UAAYnN,EAAImN,YAGE,UAAbjJ,GAAwB0mB,GAA4B9sB,KAAMkC,EAAItD,OAKzE8wB,EAAKI,eAAiBJ,EAAKtb,QAAUlS,EAAIkS,QAIpCsb,EAAKppB,QAAUpE,EAAIoE,QACvBopB,EAAKppB,MAAQpE,EAAIoE,QAKM,WAAbF,EACXspB,EAAKK,gBAAkBL,EAAKrb,SAAWnS,EAAI6tB,iBAInB,UAAb3pB,GAAqC,aAAbA,KACnCspB,EAAKlX,aAAetW,EAAIsW,eAI1Bvc,EAAO+E,MACNgvB,SAAU,SACVC,UAAW,UACX1B,aAAc,SACd2B,YAAa,QACbC,WAAY,eACV,SAAU9tB,EAAMulB,GAClB3rB,EAAOsB,GAAI8E,GAAS,SAAUhF,GAC7B,GAAIwD,GACHa,EAAI,EACJZ,KACAsvB,EAASn0B,EAAQoB,GACjBoE,EAAO2uB,EAAO3wB,OAAS,CAExB,MAAagC,GAALC,EAAWA,IAClBb,EAAQa,IAAMD,EAAOlC,KAAOA,KAAKgD,OAAM,GACvCtG,EAAQm0B,EAAO1uB,IAAMkmB,GAAY/mB,GAGjCpE,EAAU4E,MAAOP,EAAKD,EAAMH,MAG7B,OAAOnB,MAAKqB,UAAWE,KAIzB,SAAS6tB,IAAQrxB,EAASsS,GACzB,GAAI/O,GAAOvB,EACVoC,EAAI,EACJ2uB,QAAe/yB,GAAQwI,uBAAyBnK,EAAoB2B,EAAQwI,qBAAsB8J,GAAO,WACjGtS,GAAQ8P,mBAAqBzR,EAAoB2B,EAAQ8P,iBAAkBwC,GAAO,KACzFpU,CAEF,KAAM60B,EACL,IAAMA,KAAYxvB,EAAQvD,EAAQ2H,YAAc3H,EAA8B,OAApBgC,EAAOuB,EAAMa,IAAaA,KAC7EkO,GAAO3T,EAAOmK,SAAU9G,EAAMsQ,GACnCygB,EAAM3zB,KAAM4C,GAEZrD,EAAO2D,MAAOywB,EAAO1B,GAAQrvB,EAAMsQ,GAKtC,OAAOA,KAAQpU,GAAaoU,GAAO3T,EAAOmK,SAAU9I,EAASsS,GAC5D3T,EAAO2D,OAAStC,GAAW+yB,GAC3BA,EAIF,QAASC,IAAmBhxB,GACtBwtB,GAA4B9sB,KAAMV,EAAKV,QAC3CU,EAAKwwB,eAAiBxwB,EAAK8U,SAI7BnY,EAAOgG,QACNM,MAAO,SAAUjD,EAAMuvB,EAAeC,GACrC,GAAIyB,GAAczhB,EAAMvM,EAAOb,EAAG8uB,EACjCC,EAASx0B,EAAOmN,SAAU9J,EAAKS,cAAeT,EAW/C,IATKrD,EAAOmI,QAAQyY,YAAc5gB,EAAOyc,SAASpZ,KAAUitB,GAAavsB,KAAM,IAAMV,EAAK8G,SAAW,KACpG7D,EAAQjD,EAAKwd,WAAW,IAIxB8Q,GAAYve,UAAY/P,EAAKyd,UAC7B6Q,GAAY7f,YAAaxL,EAAQqrB,GAAYte,eAGvCrT,EAAOmI,QAAQgZ,cAAiBnhB,EAAOmI,QAAQmZ,gBACjC,IAAlBje,EAAKQ,UAAoC,KAAlBR,EAAKQ,UAAqB7D,EAAOyc,SAASpZ,IAOnE,IAJAixB,EAAe5B,GAAQpsB,GACvBiuB,EAAc7B,GAAQrvB,GAGhBoC,EAAI,EAA8B,OAA1BoN,EAAO0hB,EAAY9uB,MAAeA,EAE1C6uB,EAAa7uB,IACjBmuB,GAAoB/gB,EAAMyhB,EAAa7uB,GAM1C,IAAKmtB,EACJ,GAAKC,EAIJ,IAHA0B,EAAcA,GAAe7B,GAAQrvB,GACrCixB,EAAeA,GAAgB5B,GAAQpsB,GAEjCb,EAAI,EAA8B,OAA1BoN,EAAO0hB,EAAY9uB,IAAaA,IAC7C+tB,GAAgB3gB,EAAMyhB,EAAa7uB,QAGpC+tB,IAAgBnwB,EAAMiD,EAaxB,OARAguB,GAAe5B,GAAQpsB,EAAO,UACzBguB,EAAa9wB,OAAS,GAC1BmvB,GAAe2B,GAAeE,GAAU9B,GAAQrvB,EAAM,WAGvDixB,EAAeC,EAAc1hB,EAAO,KAG7BvM,GAGRwC,cAAe,SAAUlE,EAAOvD,EAASuH,EAAS6rB,GACjD,GAAI9uB,GAAGtC,EAAM8J,EACZ5D,EAAKoK,EAAKyM,EAAOsU,EACjB5pB,EAAIlG,EAAMpB,OAGVmxB,EAAOzE,GAAoB7uB,GAE3BuzB,KACAnvB,EAAI,CAEL,MAAYqF,EAAJrF,EAAOA,IAGd,GAFApC,EAAOuB,EAAOa,GAETpC,GAAiB,IAATA,EAGZ,GAA6B,WAAxBrD,EAAO2C,KAAMU,GACjBrD,EAAO2D,MAAOixB,EAAOvxB,EAAKQ,UAAaR,GAASA,OAG1C,IAAMstB,GAAM5sB,KAAMV,GAIlB,CACNkG,EAAMA,GAAOorB,EAAKzhB,YAAa7R,EAAQwH,cAAc,QAGrD8K,GAAQ8c,GAAShtB,KAAMJ,KAAW,GAAI,KAAM,GAAG+G,cAC/CsqB,EAAOxD,GAASvd,IAASud,GAAQzG,SAEjClhB,EAAI6J,UAAYshB,EAAK,GAAKrxB,EAAKwD,QAAS2pB,GAAW,aAAgBkE,EAAK,GAGxE/uB,EAAI+uB,EAAK,EACT,OAAQ/uB,IACP4D,EAAMA,EAAIuN,SASX,KALM9W,EAAOmI,QAAQgY,mBAAqBoQ,GAAmBxsB,KAAMV,IAClEuxB,EAAMn0B,KAAMY,EAAQ6wB,eAAgB3B,GAAmB9sB,KAAMJ,GAAO,MAI/DrD,EAAOmI,QAAQiY,MAAQ,CAG5B/c,EAAe,UAARsQ,GAAoB+c,GAAO3sB,KAAMV,GAI3B,YAAZqxB,EAAK,IAAqBhE,GAAO3sB,KAAMV,GAEtC,EADAkG,EAJDA,EAAI8J,WAOL1N,EAAItC,GAAQA,EAAK2F,WAAWxF,MAC5B,OAAQmC,IACF3F,EAAOmK,SAAWiW,EAAQ/c,EAAK2F,WAAWrD,GAAK,WAAcya,EAAMpX,WAAWxF,QAClFH,EAAKyO,YAAasO,GAKrBpgB,EAAO2D,MAAOixB,EAAOrrB,EAAIP,YAGzBO,EAAI6L,YAAc,EAGlB,OAAQ7L,EAAI8J,WACX9J,EAAIuI,YAAavI,EAAI8J,WAItB9J,GAAMorB,EAAK7d,cAtDX8d,GAAMn0B,KAAMY,EAAQ6wB,eAAgB7uB,GA4DlCkG,IACJorB,EAAK7iB,YAAavI,GAKbvJ,EAAOmI,QAAQuZ,eACpB1hB,EAAO+K,KAAM2nB,GAAQkC,EAAO,SAAWP,IAGxC5uB,EAAI,CACJ,OAASpC,EAAOuxB,EAAOnvB,KAItB,KAAKgvB,GAAmD,KAAtCz0B,EAAO2K,QAAStH,EAAMoxB,MAIxCtnB,EAAWnN,EAAOmN,SAAU9J,EAAKS,cAAeT,GAGhDkG,EAAMmpB,GAAQiC,EAAKzhB,YAAa7P,GAAQ,UAGnC8J,GACJwlB,GAAeppB,GAIXX,GAAU,CACdjD,EAAI,CACJ,OAAStC,EAAOkG,EAAK5D,KACforB,GAAYhtB,KAAMV,EAAKV,MAAQ,KACnCiG,EAAQnI,KAAM4C,GAQlB,MAFAkG,GAAM,KAECorB,GAGRlR,UAAW,SAAU7e,EAAsBse,GAC1C,GAAI7f,GAAMV,EAAM0B,EAAIoE,EACnBhD,EAAI,EACJ2d,EAAcpjB,EAAO0G,QACrB8K,EAAQxR,EAAOwR,MACf0P,EAAgBlhB,EAAOmI,QAAQ+Y,cAC/BwH,EAAU1oB,EAAOyC,MAAMimB,OAExB,MAA6B,OAApBrlB,EAAOuB,EAAMa,IAAaA,IAElC,IAAKyd,GAAcljB,EAAOkjB,WAAY7f,MAErCgB,EAAKhB,EAAM+f,GACX3a,EAAOpE,GAAMmN,EAAOnN,IAER,CACX,GAAKoE,EAAK8f,OACT,IAAM5lB,IAAQ8F,GAAK8f,OACbG,EAAS/lB,GACb3C,EAAOyC,MAAMsG,OAAQ1F,EAAMV,GAI3B3C,EAAO4pB,YAAavmB,EAAMV,EAAM8F,EAAKwgB,OAMnCzX;EAAOnN,WAEJmN,GAAOnN,GAKT6c,QACG7d,GAAM+f,SAEK/f,GAAKgO,kBAAoB3R,EAC3C2D,EAAKgO,gBAAiB+R,GAGtB/f,EAAM+f,GAAgB,KAGvBhjB,EAAgBK,KAAM4D,MAO3BgvB,SAAU,SAAUwB,GACnB,MAAO70B,GAAO80B,MACbD,IAAKA,EACLlyB,KAAM,MACNoyB,SAAU,SACVprB,OAAO,EACP0e,QAAQ,EACR2M,UAAU,OAIbh1B,EAAOsB,GAAG0E,QACTivB,QAAS,SAAUnC,GAClB,GAAK9yB,EAAOiE,WAAY6uB,GACvB,MAAOxvB,MAAKyB,KAAK,SAASU,GACzBzF,EAAOsD,MAAM2xB,QAASnC,EAAKtuB,KAAKlB,KAAMmC,KAIxC,IAAKnC,KAAK,GAAK,CAEd,GAAIoxB,GAAO10B,EAAQ8yB,EAAMxvB,KAAK,GAAGQ,eAAgByB,GAAG,GAAGe,OAAM,EAExDhD,MAAK,GAAGc,YACZswB,EAAKpC,aAAchvB,KAAK,IAGzBoxB,EAAK9uB,IAAI,WACR,GAAIvC,GAAOC,IAEX,OAAQD,EAAKgQ,YAA2C,IAA7BhQ,EAAKgQ,WAAWxP,SAC1CR,EAAOA,EAAKgQ,UAGb,OAAOhQ,KACL4uB,OAAQ3uB,MAGZ,MAAOA,OAGR4xB,UAAW,SAAUpC,GACpB,MAAK9yB,GAAOiE,WAAY6uB,GAChBxvB,KAAKyB,KAAK,SAASU,GACzBzF,EAAOsD,MAAM4xB,UAAWpC,EAAKtuB,KAAKlB,KAAMmC,MAInCnC,KAAKyB,KAAK,WAChB,GAAI2Y,GAAO1d,EAAQsD,MAClBqrB,EAAWjR,EAAKiR,UAEZA,GAASnrB,OACbmrB,EAASsG,QAASnC,GAGlBpV,EAAKuU,OAAQa,MAKhB4B,KAAM,SAAU5B,GACf,GAAI7uB,GAAajE,EAAOiE,WAAY6uB,EAEpC,OAAOxvB,MAAKyB,KAAK,SAASU,GACzBzF,EAAQsD,MAAO2xB,QAAShxB,EAAa6uB,EAAKtuB,KAAKlB,KAAMmC,GAAKqtB,MAI5DqC,OAAQ,WACP,MAAO7xB,MAAKyP,SAAShO,KAAK,WACnB/E,EAAOmK,SAAU7G,KAAM,SAC5BtD,EAAQsD,MAAOyvB,YAAazvB,KAAK0F,cAEhCnD,QAGL,IAAIuvB,IAAQC,GAAWC,GACtBC,GAAS,kBACTC,GAAW,wBACXC,GAAY,4BAGZC,GAAe,4BACfC,GAAU,UACVC,GAAgBnnB,OAAQ,KAAOjN,EAAY,SAAU,KACrDq0B,GAAgBpnB,OAAQ,KAAOjN,EAAY,kBAAmB,KAC9Ds0B,GAAcrnB,OAAQ,YAAcjN,EAAY,IAAK,KACrDu0B,IAAgBC,KAAM,SAEtBC,IAAYC,SAAU,WAAYC,WAAY,SAAU7T,QAAS,SACjE8T,IACCC,cAAe,EACfC,WAAY,KAGbC,IAAc,MAAO,QAAS,SAAU,QACxCC,IAAgB,SAAU,IAAK,MAAO,KAGvC,SAASC,IAAgB1qB,EAAO3F,GAG/B,GAAKA,IAAQ2F,GACZ,MAAO3F,EAIR,IAAIswB,GAAUtwB,EAAK7C,OAAO,GAAGhB,cAAgB6D,EAAKzF,MAAM,GACvDg2B,EAAWvwB,EACXX,EAAI+wB,GAAYhzB,MAEjB,OAAQiC,IAEP,GADAW,EAAOowB,GAAa/wB,GAAMixB,EACrBtwB,IAAQ2F,GACZ,MAAO3F,EAIT,OAAOuwB,GAGR,QAASC,IAAUvzB,EAAMwzB,GAIxB,MADAxzB,GAAOwzB,GAAMxzB,EAC4B,SAAlCrD,EAAO82B,IAAKzzB,EAAM,aAA2BrD,EAAOmN,SAAU9J,EAAKS,cAAeT,GAG1F,QAAS0zB,IAAUliB,EAAUmiB,GAC5B,GAAI1U,GAASjf,EAAM4zB,EAClBzX,KACA3B,EAAQ,EACRra,EAASqR,EAASrR,MAEnB,MAAgBA,EAARqa,EAAgBA,IACvBxa,EAAOwR,EAAUgJ,GACXxa,EAAK0I,QAIXyT,EAAQ3B,GAAU7d,EAAO+jB,MAAO1gB,EAAM,cACtCif,EAAUjf,EAAK0I,MAAMuW,QAChB0U,GAGExX,EAAQ3B,IAAuB,SAAZyE,IACxBjf,EAAK0I,MAAMuW,QAAU,IAMM,KAAvBjf,EAAK0I,MAAMuW,SAAkBsU,GAAUvzB,KAC3Cmc,EAAQ3B,GAAU7d,EAAO+jB,MAAO1gB,EAAM,aAAc6zB,GAAmB7zB,EAAK8G,aAIvEqV,EAAQ3B,KACboZ,EAASL,GAAUvzB,IAEdif,GAAuB,SAAZA,IAAuB2U,IACtCj3B,EAAO+jB,MAAO1gB,EAAM,aAAc4zB,EAAS3U,EAAUtiB,EAAO82B,IAAKzzB,EAAM,aAQ3E,KAAMwa,EAAQ,EAAWra,EAARqa,EAAgBA,IAChCxa,EAAOwR,EAAUgJ,GACXxa,EAAK0I,QAGLirB,GAA+B,SAAvB3zB,EAAK0I,MAAMuW,SAA6C,KAAvBjf,EAAK0I,MAAMuW,UACzDjf,EAAK0I,MAAMuW,QAAU0U,EAAOxX,EAAQ3B,IAAW,GAAK,QAItD,OAAOhJ,GAGR7U,EAAOsB,GAAG0E,QACT8wB,IAAK,SAAU1wB,EAAMiE,GACpB,MAAOrK,GAAOqL,OAAQ/H,KAAM,SAAUD,EAAM+C,EAAMiE,GACjD,GAAI3E,GAAKyxB,EACRvxB,KACAH,EAAI,CAEL,IAAKzF,EAAOyG,QAASL,GAAS,CAI7B,IAHA+wB,EAAS9B,GAAWhyB,GACpBqC,EAAMU,EAAK5C,OAECkC,EAAJD,EAASA,IAChBG,EAAKQ,EAAMX,IAAQzF,EAAO82B,IAAKzzB,EAAM+C,EAAMX,IAAK,EAAO0xB,EAGxD,OAAOvxB,GAGR,MAAOyE,KAAU9K,EAChBS,EAAO+L,MAAO1I,EAAM+C,EAAMiE,GAC1BrK,EAAO82B,IAAKzzB,EAAM+C,IACjBA,EAAMiE,EAAOhF,UAAU7B,OAAS,IAEpCwzB,KAAM,WACL,MAAOD,IAAUzzB,MAAM,IAExB8zB,KAAM,WACL,MAAOL,IAAUzzB,OAElB+zB,OAAQ,SAAUlZ,GACjB,MAAsB,iBAAVA,GACJA,EAAQ7a,KAAK0zB,OAAS1zB,KAAK8zB,OAG5B9zB,KAAKyB,KAAK,WACX6xB,GAAUtzB,MACdtD,EAAQsD,MAAO0zB,OAEfh3B,EAAQsD,MAAO8zB,YAMnBp3B,EAAOgG,QAGNsxB,UACC/W,SACC9b,IAAK,SAAUpB,EAAMk0B,GACpB,GAAKA,EAAW,CAEf,GAAI1yB,GAAMywB,GAAQjyB,EAAM,UACxB,OAAe,KAARwB,EAAa,IAAMA,MAO9B2yB,WACCC,aAAe,EACfC,aAAe,EACfpB,YAAc,EACdqB,YAAc,EACdpX,SAAW,EACXqX,OAAS,EACTC,SAAW,EACXC,QAAU,EACVC,QAAU,EACVvV,MAAQ,GAKTwV,UAECC,QAASj4B,EAAOmI,QAAQqY,SAAW,WAAa,cAIjDzU,MAAO,SAAU1I,EAAM+C,EAAMiE,EAAO6tB,GAEnC,GAAM70B,GAA0B,IAAlBA,EAAKQ,UAAoC,IAAlBR,EAAKQ,UAAmBR,EAAK0I,MAAlE,CAKA,GAAIlH,GAAKlC,EAAM0hB,EACdsS,EAAW32B,EAAOiK,UAAW7D,GAC7B2F,EAAQ1I,EAAK0I,KASd,IAPA3F,EAAOpG,EAAOg4B,SAAUrB,KAAgB32B,EAAOg4B,SAAUrB,GAAaF,GAAgB1qB,EAAO4qB,IAI7FtS,EAAQrkB,EAAOs3B,SAAUlxB,IAAUpG,EAAOs3B,SAAUX,GAG/CtsB,IAAU9K,EAsCd,MAAK8kB,IAAS,OAASA,KAAUxf,EAAMwf,EAAM5f,IAAKpB,GAAM,EAAO60B,MAAa34B,EACpEsF,EAIDkH,EAAO3F,EAhCd,IAVAzD,QAAc0H,GAGA,WAAT1H,IAAsBkC,EAAMixB,GAAQryB,KAAM4G,MAC9CA,GAAUxF,EAAI,GAAK,GAAMA,EAAI,GAAKiD,WAAY9H,EAAO82B,IAAKzzB,EAAM+C,IAEhEzD,EAAO,YAIM,MAAT0H,GAA0B,WAAT1H,GAAqBkF,MAAOwC,KAKpC,WAAT1H,GAAsB3C,EAAOw3B,UAAWb,KAC5CtsB,GAAS,MAKJrK,EAAOmI,QAAQ6Z,iBAA6B,KAAV3X,GAA+C,IAA/BjE,EAAKvF,QAAQ,gBACpEkL,EAAO3F,GAAS,WAIXie,GAAW,OAASA,KAAWha,EAAQga,EAAMoC,IAAKpjB,EAAMgH,EAAO6tB,MAAa34B,IAIjF,IACCwM,EAAO3F,GAASiE,EACf,MAAMnC,OAcX4uB,IAAK,SAAUzzB,EAAM+C,EAAM8xB,EAAOf,GACjC,GAAIzyB,GAAKoQ,EAAKuP,EACbsS,EAAW32B,EAAOiK,UAAW7D,EAyB9B,OAtBAA,GAAOpG,EAAOg4B,SAAUrB,KAAgB32B,EAAOg4B,SAAUrB,GAAaF,GAAgBpzB,EAAK0I,MAAO4qB,IAIlGtS,EAAQrkB,EAAOs3B,SAAUlxB,IAAUpG,EAAOs3B,SAAUX,GAG/CtS,GAAS,OAASA,KACtBvP,EAAMuP,EAAM5f,IAAKpB,GAAM,EAAM60B,IAIzBpjB,IAAQvV,IACZuV,EAAMwgB,GAAQjyB,EAAM+C,EAAM+wB,IAId,WAARriB,GAAoB1O,IAAQgwB,MAChCthB,EAAMshB,GAAoBhwB,IAIZ,KAAV8xB,GAAgBA,GACpBxzB,EAAMoD,WAAYgN,GACXojB,KAAU,GAAQl4B,EAAO4H,UAAWlD,GAAQA,GAAO,EAAIoQ,GAExDA,KAMJxV,EAAOqjB,kBACX0S,GAAY,SAAUhyB,GACrB,MAAO/D,GAAOqjB,iBAAkBtf,EAAM,OAGvCiyB,GAAS,SAAUjyB,EAAM+C,EAAM+xB,GAC9B,GAAIvV,GAAOwV,EAAUC,EACpBd,EAAWY,GAAa9C,GAAWhyB,GAGnCwB,EAAM0yB,EAAWA,EAASe,iBAAkBlyB,IAAUmxB,EAAUnxB,GAAS7G,EACzEwM,EAAQ1I,EAAK0I,KA8Bd,OA5BKwrB,KAES,KAAR1yB,GAAe7E,EAAOmN,SAAU9J,EAAKS,cAAeT,KACxDwB,EAAM7E,EAAO+L,MAAO1I,EAAM+C,IAOtByvB,GAAU9xB,KAAMc,IAAS8wB,GAAQ5xB,KAAMqC,KAG3Cwc,EAAQ7W,EAAM6W,MACdwV,EAAWrsB,EAAMqsB,SACjBC,EAAWtsB,EAAMssB,SAGjBtsB,EAAMqsB,SAAWrsB,EAAMssB,SAAWtsB,EAAM6W,MAAQ/d,EAChDA,EAAM0yB,EAAS3U,MAGf7W,EAAM6W,MAAQA,EACd7W,EAAMqsB,SAAWA,EACjBrsB,EAAMssB,SAAWA,IAIZxzB,IAEGjF,EAASE,gBAAgBy4B,eACpClD,GAAY,SAAUhyB,GACrB,MAAOA,GAAKk1B,cAGbjD,GAAS,SAAUjyB,EAAM+C,EAAM+xB,GAC9B,GAAIK,GAAMC,EAAIC,EACbnB,EAAWY,GAAa9C,GAAWhyB,GACnCwB,EAAM0yB,EAAWA,EAAUnxB,GAAS7G,EACpCwM,EAAQ1I,EAAK0I,KAoCd,OAhCY,OAAPlH,GAAekH,GAASA,EAAO3F,KACnCvB,EAAMkH,EAAO3F,IAUTyvB,GAAU9xB,KAAMc,KAAU4wB,GAAU1xB,KAAMqC,KAG9CoyB,EAAOzsB,EAAMysB,KACbC,EAAKp1B,EAAKs1B,aACVD,EAASD,GAAMA,EAAGD,KAGbE,IACJD,EAAGD,KAAOn1B,EAAKk1B,aAAaC,MAE7BzsB,EAAMysB,KAAgB,aAATpyB,EAAsB,MAAQvB,EAC3CA,EAAMkH,EAAM6sB,UAAY,KAGxB7sB,EAAMysB,KAAOA,EACRE,IACJD,EAAGD,KAAOE,IAIG,KAAR7zB,EAAa,OAASA,GAI/B,SAASg0B,IAAmBx1B,EAAMgH,EAAOyuB,GACxC,GAAI5rB,GAAU0oB,GAAUnyB,KAAM4G,EAC9B,OAAO6C,GAENvG,KAAKiE,IAAK,EAAGsC,EAAS,IAAQ4rB,GAAY,KAAU5rB,EAAS,IAAO,MACpE7C,EAGF,QAAS0uB,IAAsB11B,EAAM+C,EAAM8xB,EAAOc,EAAa7B,GAC9D,GAAI1xB,GAAIyyB,KAAYc,EAAc,SAAW,WAE5C,EAES,UAAT5yB,EAAmB,EAAI,EAEvB0O,EAAM,CAEP,MAAY,EAAJrP,EAAOA,GAAK,EAEJ,WAAVyyB,IACJpjB,GAAO9U,EAAO82B,IAAKzzB,EAAM60B,EAAQ3B,GAAW9wB,IAAK,EAAM0xB,IAGnD6B,GAEW,YAAVd,IACJpjB,GAAO9U,EAAO82B,IAAKzzB,EAAM,UAAYkzB,GAAW9wB,IAAK,EAAM0xB,IAI7C,WAAVe,IACJpjB,GAAO9U,EAAO82B,IAAKzzB,EAAM,SAAWkzB,GAAW9wB,GAAM,SAAS,EAAM0xB,MAIrEriB,GAAO9U,EAAO82B,IAAKzzB,EAAM,UAAYkzB,GAAW9wB,IAAK,EAAM0xB,GAG5C,YAAVe,IACJpjB,GAAO9U,EAAO82B,IAAKzzB,EAAM,SAAWkzB,GAAW9wB,GAAM,SAAS,EAAM0xB,IAKvE,OAAOriB,GAGR,QAASmkB,IAAkB51B,EAAM+C,EAAM8xB,GAGtC,GAAIgB,IAAmB,EACtBpkB,EAAe,UAAT1O,EAAmB/C,EAAKqf,YAAcrf,EAAKgf,aACjD8U,EAAS9B,GAAWhyB,GACpB21B,EAAch5B,EAAOmI,QAAQsa,WAAgE,eAAnDziB,EAAO82B,IAAKzzB,EAAM,aAAa,EAAO8zB,EAKjF,IAAY,GAAPriB,GAAmB,MAAPA,EAAc,CAQ9B,GANAA,EAAMwgB,GAAQjyB,EAAM+C,EAAM+wB,IACf,EAANriB,GAAkB,MAAPA,KACfA,EAAMzR,EAAK0I,MAAO3F,IAIdyvB,GAAU9xB,KAAK+Q,GACnB,MAAOA,EAKRokB,GAAmBF,IAAiBh5B,EAAOmI,QAAQkZ,mBAAqBvM,IAAQzR,EAAK0I,MAAO3F,IAG5F0O,EAAMhN,WAAYgN,IAAS,EAI5B,MAASA,GACRikB,GACC11B,EACA+C,EACA8xB,IAAWc,EAAc,SAAW,WACpCE,EACA/B,GAEE,KAIL,QAASD,IAAoB/sB,GAC5B,GAAI2I,GAAMlT,EACT0iB,EAAUyT,GAAa5rB,EA0BxB,OAxBMmY,KACLA,EAAU6W,GAAehvB,EAAU2I,GAGlB,SAAZwP,GAAuBA,IAE3B8S,IAAWA,IACVp1B,EAAO,kDACN82B,IAAK,UAAW,6BAChB/C,SAAUjhB,EAAIhT,iBAGhBgT,GAAQsiB,GAAO,GAAGvF,eAAiBuF,GAAO,GAAGxF,iBAAkBhwB,SAC/DkT,EAAIsmB,MAAM,+BACVtmB,EAAIumB,QAEJ/W,EAAU6W,GAAehvB,EAAU2I,GACnCsiB,GAAOvyB,UAIRkzB,GAAa5rB,GAAamY,GAGpBA,EAIR,QAAS6W,IAAe/yB,EAAM0M,GAC7B,GAAIzP,GAAOrD,EAAQ8S,EAAIjK,cAAezC,IAAS2tB,SAAUjhB,EAAI1L,MAC5Dkb,EAAUtiB,EAAO82B,IAAKzzB,EAAK,GAAI,UAEhC,OADAA,GAAK0F,SACEuZ,EAGRtiB,EAAO+E,MAAO,SAAU,SAAW,SAAUU,EAAGW,GAC/CpG,EAAOs3B,SAAUlxB,IAChB3B,IAAK,SAAUpB,EAAMk0B,EAAUW,GAC9B,MAAKX,GAGwB,IAArBl0B,EAAKqf,aAAqBgT,GAAa3xB,KAAM/D,EAAO82B,IAAKzzB,EAAM,YACrErD,EAAO6L,KAAMxI,EAAM4yB,GAAS,WAC3B,MAAOgD,IAAkB51B,EAAM+C,EAAM8xB,KAEtCe,GAAkB51B,EAAM+C,EAAM8xB,GAPhC,GAWDzR,IAAK,SAAUpjB,EAAMgH,EAAO6tB,GAC3B,GAAIf,GAASe,GAAS7C,GAAWhyB,EACjC,OAAOw1B,IAAmBx1B,EAAMgH,EAAO6tB,EACtCa,GACC11B,EACA+C,EACA8xB,EACAl4B,EAAOmI,QAAQsa,WAAgE,eAAnDziB,EAAO82B,IAAKzzB,EAAM,aAAa,EAAO8zB,GAClEA,GACG,OAMFn3B,EAAOmI,QAAQoY,UACpBvgB,EAAOs3B,SAAS/W,SACf9b,IAAK,SAAUpB,EAAMk0B,GAEpB,MAAO/B,IAASzxB,MAAOwzB,GAAYl0B,EAAKk1B,aAAel1B,EAAKk1B,aAAa/kB,OAASnQ,EAAK0I,MAAMyH,SAAW,IACrG,IAAO1L,WAAY2G,OAAO6qB,IAAS,GACrC/B,EAAW,IAAM,IAGnB9Q,IAAK,SAAUpjB,EAAMgH,GACpB,GAAI0B,GAAQ1I,EAAK0I,MAChBwsB,EAAel1B,EAAKk1B,aACpBhY,EAAUvgB,EAAO4H,UAAWyC,GAAU,iBAA2B,IAARA,EAAc,IAAM,GAC7EmJ,EAAS+kB,GAAgBA,EAAa/kB,QAAUzH,EAAMyH,QAAU,EAIjEzH,GAAMyW,KAAO,GAINnY,GAAS,GAAe,KAAVA,IAC6B,KAAhDrK,EAAOmB,KAAMqS,EAAO3M,QAAS0uB,GAAQ,MACrCxpB,EAAMsF,kBAKPtF,EAAMsF,gBAAiB,UAGR,KAAVhH,GAAgBkuB,IAAiBA,EAAa/kB,UAMpDzH,EAAMyH,OAAS+hB,GAAOxxB,KAAMyP,GAC3BA,EAAO3M,QAAS0uB,GAAQhV,GACxB/M,EAAS,IAAM+M,MAOnBvgB,EAAO,WACAA,EAAOmI,QAAQiZ,sBACpBphB,EAAOs3B,SAASzU,aACfpe,IAAK,SAAUpB,EAAMk0B,GACpB,MAAKA,GAGGv3B,EAAO6L,KAAMxI,GAAQif,QAAW,gBACtCgT,IAAUjyB,EAAM,gBAJlB,MAaGrD,EAAOmI,QAAQ8Y,eAAiBjhB,EAAOsB,GAAG40B,UAC/Cl2B,EAAO+E,MAAQ,MAAO,QAAU,SAAUU,EAAGmgB,GAC5C5lB,EAAOs3B,SAAU1R,IAChBnhB,IAAK,SAAUpB,EAAMk0B,GACpB,MAAKA,IACJA,EAAWjC,GAAQjyB,EAAMuiB,GAElBiQ,GAAU9xB,KAAMwzB,GACtBv3B,EAAQqD,GAAO6yB,WAAYtQ,GAAS,KACpC2R,GALF,QAcAv3B,EAAO4U,MAAQ5U,EAAO4U,KAAKwE,UAC/BpZ,EAAO4U,KAAKwE,QAAQ6d,OAAS,SAAU5zB,GAGtC,MAA2B,IAApBA,EAAKqf,aAAyC,GAArBrf,EAAKgf,eAClCriB,EAAOmI,QAAQoa,uBAAmG,UAAxElf,EAAK0I,OAAS1I,EAAK0I,MAAMuW,SAAYtiB,EAAO82B,IAAKzzB,EAAM,aAGrGrD,EAAO4U,KAAKwE,QAAQmgB,QAAU,SAAUl2B,GACvC,OAAQrD,EAAO4U,KAAKwE,QAAQ6d,OAAQ5zB,KAKtCrD,EAAO+E,MACNy0B,OAAQ,GACRC,QAAS,GACTC,OAAQ,SACN,SAAUC,EAAQC,GACpB55B,EAAOs3B,SAAUqC,EAASC,IACzBC,OAAQ,SAAUxvB,GACjB,GAAI5E,GAAI,EACPq0B,KAGAC,EAAyB,gBAAV1vB,GAAqBA,EAAMiC,MAAM,MAASjC,EAE1D,MAAY,EAAJ5E,EAAOA,IACdq0B,EAAUH,EAASpD,GAAW9wB,GAAMm0B,GACnCG,EAAOt0B,IAAOs0B,EAAOt0B,EAAI,IAAOs0B,EAAO,EAGzC,OAAOD,KAIHnE,GAAQ5xB,KAAM41B,KACnB35B,EAAOs3B,SAAUqC,EAASC,GAASnT,IAAMoS,KAG3C,IAAImB,IAAM,OACTC,GAAW,QACXC,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,oCAEhBp6B,GAAOsB,GAAG0E,QACTq0B,UAAW,WACV,MAAOr6B,GAAOqxB,MAAO/tB,KAAKg3B,mBAE3BA,eAAgB,WACf,MAAOh3B,MAAKsC,IAAI,WAEf,GAAIiP,GAAW7U,EAAO4lB,KAAMtiB,KAAM,WAClC,OAAOuR,GAAW7U,EAAOsE,UAAWuQ,GAAavR,OAEjDkQ,OAAO,WACP,GAAI7Q,GAAOW,KAAKX,IAEhB,OAAOW,MAAK8C,OAASpG,EAAQsD,MAAOyrB,GAAI,cACvCqL,GAAar2B,KAAMT,KAAK6G,YAAegwB,GAAgBp2B,KAAMpB,KAC3DW,KAAK6U,UAAY0Y,GAA4B9sB,KAAMpB,MAEtDiD,IAAI,SAAUH,EAAGpC,GACjB,GAAIyR,GAAM9U,EAAQsD,MAAOwR,KAEzB,OAAc,OAAPA,EACN,KACA9U,EAAOyG,QAASqO,GACf9U,EAAO4F,IAAKkP,EAAK,SAAUA,GAC1B,OAAS1O,KAAM/C,EAAK+C,KAAMiE,MAAOyK,EAAIjO,QAASqzB,GAAO,YAEpD9zB,KAAM/C,EAAK+C,KAAMiE,MAAOyK,EAAIjO,QAASqzB,GAAO,WAC9Cz1B,SAMLzE,EAAOqxB,MAAQ,SAAUzjB,EAAG2sB,GAC3B,GAAIZ,GACHa,KACA5c,EAAM,SAAU3V,EAAKoC,GAEpBA,EAAQrK,EAAOiE,WAAYoG,GAAUA,IAAqB,MAATA,EAAgB,GAAKA,EACtEmwB,EAAGA,EAAEh3B,QAAWi3B,mBAAoBxyB,GAAQ,IAAMwyB,mBAAoBpwB,GASxE,IALKkwB,IAAgBh7B,IACpBg7B,EAAcv6B,EAAO06B,cAAgB16B,EAAO06B,aAAaH,aAIrDv6B,EAAOyG,QAASmH,IAASA,EAAE1K,SAAWlD,EAAOgE,cAAe4J,GAEhE5N,EAAO+E,KAAM6I,EAAG,WACfgQ,EAAKta,KAAK8C,KAAM9C,KAAK+G,aAMtB,KAAMsvB,IAAU/rB,GACf+sB,GAAahB,EAAQ/rB,EAAG+rB,GAAUY,EAAa3c,EAKjD,OAAO4c,GAAEtpB,KAAM,KAAMrK,QAASmzB,GAAK,KAGpC,SAASW,IAAahB,EAAQlyB,EAAK8yB,EAAa3c,GAC/C,GAAIxX,EAEJ,IAAKpG,EAAOyG,QAASgB,GAEpBzH,EAAO+E,KAAM0C,EAAK,SAAUhC,EAAGm1B,GACzBL,GAAeN,GAASl2B,KAAM41B,GAElC/b,EAAK+b,EAAQiB,GAIbD,GAAahB,EAAS,KAAqB,gBAANiB,GAAiBn1B,EAAI,IAAO,IAAKm1B,EAAGL,EAAa3c,SAIlF,IAAM2c,GAAsC,WAAvBv6B,EAAO2C,KAAM8E,GAQxCmW,EAAK+b,EAAQlyB,OANb,KAAMrB,IAAQqB,GACbkzB,GAAahB,EAAS,IAAMvzB,EAAO,IAAKqB,EAAKrB,GAAQm0B,EAAa3c,GAQrE5d,EAAO+E,KAAM,0MAEqDuH,MAAM,KAAM,SAAU7G,EAAGW,GAG1FpG,EAAOsB,GAAI8E,GAAS,SAAUqC,EAAMnH,GACnC,MAAO+D,WAAU7B,OAAS,EACzBF,KAAK6qB,GAAI/nB,EAAM,KAAMqC,EAAMnH,GAC3BgC,KAAKiE,QAASnB,MAIjBpG,EAAOsB,GAAG0E,QACT60B,MAAO,SAAUC,EAAQC,GACxB,MAAOz3B,MAAKiqB,WAAYuN,GAAStN,WAAYuN,GAASD,IAGvDE,KAAM,SAAU1S,EAAO7f,EAAMnH,GAC5B,MAAOgC,MAAK6qB,GAAI7F,EAAO,KAAM7f,EAAMnH,IAEpC25B,OAAQ,SAAU3S,EAAOhnB,GACxB,MAAOgC,MAAKkE,IAAK8gB,EAAO,KAAMhnB,IAG/B45B,SAAU,SAAU95B,EAAUknB,EAAO7f,EAAMnH,GAC1C,MAAOgC,MAAK6qB,GAAI7F,EAAOlnB,EAAUqH,EAAMnH,IAExC65B,WAAY,SAAU/5B,EAAUknB,EAAOhnB,GAEtC,MAA4B,KAArB+D,UAAU7B,OAAeF,KAAKkE,IAAKpG,EAAU,MAASkC,KAAKkE,IAAK8gB,EAAOlnB,GAAY,KAAME,KAGlG,IAEC85B,IACAC,GACAC,GAAat7B,EAAO0L,MAEpB6vB,GAAc,KACdC,GAAQ,OACRC,GAAM,gBACNC,GAAW,gCAEXC,GAAiB,4DACjBC,GAAa,iBACbC,GAAY,QACZC,GAAO,8CAGPC,GAAQ/7B,EAAOsB,GAAGqrB,KAWlBqP,MAOAC,MAGAC,GAAW,KAAK37B,OAAO,IAIxB,KACC86B,GAAe17B,EAASoY,KACvB,MAAO7P,IAGRmzB,GAAez7B,EAASiJ,cAAe,KACvCwyB,GAAatjB,KAAO,GACpBsjB,GAAeA,GAAatjB,KAI7BqjB,GAAeU,GAAKr4B,KAAM43B,GAAajxB,kBAGvC,SAAS+xB,IAA6BC,GAGrC,MAAO,UAAUC,EAAoBpe,GAED,gBAAvBoe,KACXpe,EAAOoe,EACPA,EAAqB,IAGtB,IAAItH,GACHtvB,EAAI,EACJ62B,EAAYD,EAAmBjyB,cAAchH,MAAO1B,MAErD,IAAK1B,EAAOiE,WAAYga,GAEvB,MAAS8W,EAAWuH,EAAU72B,KAER,MAAhBsvB,EAAS,IACbA,EAAWA,EAASp0B,MAAO,IAAO,KACjCy7B,EAAWrH,GAAaqH,EAAWrH,QAAkBpgB,QAASsJ,KAI9Dme,EAAWrH,GAAaqH,EAAWrH,QAAkBt0B,KAAMwd,IAQjE,QAASse,IAA+BH,EAAW/1B,EAASm2B,EAAiBC,GAE5E,GAAIC,MACHC,EAAqBP,IAAcH,EAEpC,SAASW,GAAS7H,GACjB,GAAI3c,EAYJ,OAXAskB,GAAW3H,IAAa,EACxB/0B,EAAO+E,KAAMq3B,EAAWrH,OAAkB,SAAUhlB,EAAG8sB,GACtD,GAAIC,GAAsBD,EAAoBx2B,EAASm2B,EAAiBC,EACxE,OAAmC,gBAAxBK,IAAqCH,GAAqBD,EAAWI,GAIpEH,IACDvkB,EAAW0kB,GADf,GAHNz2B,EAAQi2B,UAAU3nB,QAASmoB,GAC3BF,EAASE,IACF,KAKF1kB,EAGR,MAAOwkB,GAASv2B,EAAQi2B,UAAW,MAAUI,EAAW,MAASE,EAAS,KAM3E,QAASG,IAAYx2B,EAAQN,GAC5B,GAAIO,GAAMyB,EACT+0B,EAAch9B,EAAO06B,aAAasC,eAEnC,KAAM/0B,IAAOhC,GACPA,EAAKgC,KAAU1I,KACjBy9B,EAAa/0B,GAAQ1B,EAAWC,IAASA,OAAgByB,GAAQhC,EAAKgC,GAO1E,OAJKzB,IACJxG,EAAOgG,QAAQ,EAAMO,EAAQC,GAGvBD,EAGRvG,EAAOsB,GAAGqrB,KAAO,SAAUkI,EAAKoI,EAAQj4B,GACvC,GAAoB,gBAAR6vB,IAAoBkH,GAC/B,MAAOA,IAAM32B,MAAO9B,KAAM+B,UAG3B,IAAIjE,GAAU87B,EAAUv6B,EACvB+a,EAAOpa,KACPkE,EAAMqtB,EAAIh0B,QAAQ,IA+CnB,OA7CK2G,IAAO,IACXpG,EAAWyzB,EAAIl0B,MAAO6G,EAAKqtB,EAAIrxB,QAC/BqxB,EAAMA,EAAIl0B,MAAO,EAAG6G,IAIhBxH,EAAOiE,WAAYg5B,IAGvBj4B,EAAWi4B,EACXA,EAAS19B,GAGE09B,GAA4B,gBAAXA,KAC5Bt6B,EAAO,QAIH+a,EAAKla,OAAS,GAClBxD,EAAO80B,MACND,IAAKA,EAGLlyB,KAAMA,EACNoyB,SAAU,OACVtsB,KAAMw0B,IACJ93B,KAAK,SAAUg4B,GAGjBD,EAAW73B,UAEXqY,EAAKoV,KAAM1xB,EAIVpB,EAAO,SAASiyB,OAAQjyB,EAAO4D,UAAWu5B,IAAiBz5B,KAAMtC,GAGjE+7B,KAECC,SAAUp4B,GAAY,SAAUy3B,EAAOY,GACzC3f,EAAK3Y,KAAMC,EAAUk4B,IAAcT,EAAMU,aAAcE,EAAQZ,MAI1Dn5B,MAIRtD,EAAO+E,MAAQ,YAAa,WAAY,eAAgB,YAAa,cAAe,YAAc,SAAUU,EAAG9C,GAC9G3C,EAAOsB,GAAIqB,GAAS,SAAUrB,GAC7B,MAAOgC,MAAK6qB,GAAIxrB,EAAMrB,MAIxBtB,EAAOgG,QAGNs3B,OAAQ,EAGRC,gBACAC,QAEA9C,cACC7F,IAAKwG,GACL14B,KAAM,MACN86B,QAAS9B,GAAe53B,KAAMq3B,GAAc,IAC5C/S,QAAQ,EACRqV,aAAa,EACb/zB,OAAO,EACPg0B,YAAa,mDAabC,SACCC,IAAK3B,GACL3xB,KAAM,aACNuoB,KAAM,YACNxpB,IAAK,4BACLw0B,KAAM,qCAGPnP,UACCrlB,IAAK,MACLwpB,KAAM,OACNgL,KAAM,QAGPC,gBACCz0B,IAAK,cACLiB,KAAM,eACNuzB,KAAM,gBAKPE,YAGCC,SAAUj2B,OAGVk2B,aAAa,EAGbC,YAAan+B,EAAOiJ,UAGpBm1B,WAAYp+B,EAAOqJ,UAOpB2zB,aACCnI,KAAK,EACLxzB,SAAS,IAOXg9B,UAAW,SAAU93B,EAAQ+3B,GAC5B,MAAOA,GAGNvB,GAAYA,GAAYx2B,EAAQvG,EAAO06B,cAAgB4D,GAGvDvB,GAAY/8B,EAAO06B,aAAcn0B,IAGnCg4B,cAAepC,GAA6BH,IAC5CwC,cAAerC,GAA6BF,IAG5CnH,KAAM,SAAUD,EAAKxuB,GAGA,gBAARwuB,KACXxuB,EAAUwuB,EACVA,EAAMt1B,GAIP8G,EAAUA,KAEV,IACC0zB,GAEAt0B,EAEAg5B,EAEAC,EAEAC,EAGAC,EAEAC,EAEAC,EAEAtE,EAAIx6B,EAAOq+B,aAAeh4B,GAE1B04B,EAAkBvE,EAAEn5B,SAAWm5B,EAE/BwE,EAAqBxE,EAAEn5B,UAAa09B,EAAgBl7B,UAAYk7B,EAAgB77B,QAC/ElD,EAAQ++B,GACR/+B,EAAOyC,MAER4b,EAAWre,EAAOgM,WAClBizB,EAAmBj/B,EAAO8c,UAAU,eAEpCoiB,EAAa1E,EAAE0E,eAEfC,KACAC,KAEAjhB,EAAQ,EAERkhB,EAAW,WAEX5C,GACC75B,WAAY,EAGZ08B,kBAAmB,SAAUr3B,GAC5B,GAAI7E,EACJ,IAAe,IAAV+a,EAAc,CAClB,IAAM2gB,EAAkB,CACvBA,IACA,OAAS17B,EAAQs4B,GAASj4B,KAAMi7B,GAC/BI,EAAiB17B,EAAM,GAAGgH,eAAkBhH,EAAO,GAGrDA,EAAQ07B,EAAiB72B,EAAImC,eAE9B,MAAgB,OAAThH,EAAgB,KAAOA,GAI/Bm8B,sBAAuB,WACtB,MAAiB,KAAVphB,EAAcugB,EAAwB,MAI9Cc,iBAAkB,SAAUp5B,EAAMiE,GACjC,GAAIo1B,GAAQr5B,EAAKgE,aAKjB,OAJM+T,KACL/X,EAAOg5B,EAAqBK,GAAUL,EAAqBK,IAAWr5B,EACtE+4B,EAAgB/4B,GAASiE,GAEnB/G,MAIRo8B,iBAAkB,SAAU/8B,GAI3B,MAHMwb,KACLqc,EAAEmF,SAAWh9B,GAEPW,MAIR47B,WAAY,SAAUt5B,GACrB,GAAIg6B,EACJ,IAAKh6B,EACJ,GAAa,EAARuY,EACJ,IAAMyhB,IAAQh6B,GAEbs5B,EAAYU,IAAWV,EAAYU,GAAQh6B,EAAKg6B,QAIjDnD,GAAMre,OAAQxY,EAAK62B,EAAMY,QAG3B,OAAO/5B,OAIRu8B,MAAO,SAAUC,GAChB,GAAIC,GAAYD,GAAcT,CAK9B,OAJKR,IACJA,EAAUgB,MAAOE,GAElB56B,EAAM,EAAG46B,GACFz8B,MAwCV,IAnCA+a,EAASnZ,QAASu3B,GAAQW,SAAW6B,EAAiBrhB,IACtD6e,EAAMuD,QAAUvD,EAAMt3B,KACtBs3B,EAAMn0B,MAAQm0B,EAAMne,KAMpBkc,EAAE3F,MAAUA,GAAO2F,EAAE3F,KAAOwG,IAAiB,IAAKx0B,QAAS20B,GAAO,IAAK30B,QAASg1B,GAAWT,GAAc,GAAM,MAG/GZ,EAAE73B,KAAO0D,EAAQ45B,QAAU55B,EAAQ1D,MAAQ63B,EAAEyF,QAAUzF,EAAE73B,KAGzD63B,EAAE8B,UAAYt8B,EAAOmB,KAAMq5B,EAAEzF,UAAY,KAAM3qB,cAAchH,MAAO1B,KAAqB,IAGnE,MAAjB84B,EAAE0F,cACNnG,EAAQ+B,GAAKr4B,KAAM+2B,EAAE3F,IAAIzqB,eACzBowB,EAAE0F,eAAkBnG,GACjBA,EAAO,KAAQqB,GAAc,IAAOrB,EAAO,KAAQqB,GAAc,KAChErB,EAAO,KAAwB,UAAfA,EAAO,GAAkB,KAAO,WAC/CqB,GAAc,KAA+B,UAAtBA,GAAc,GAAkB,KAAO,UAK/DZ,EAAE/xB,MAAQ+xB,EAAEkD,aAAiC,gBAAXlD,GAAE/xB,OACxC+xB,EAAE/xB,KAAOzI,EAAOqxB,MAAOmJ,EAAE/xB,KAAM+xB,EAAED,cAIlCgC,GAA+BP,GAAYxB,EAAGn0B,EAASo2B,GAGxC,IAAVte,EACJ,MAAOse,EAIRmC,GAAcpE,EAAEnS,OAGXuW,GAAmC,IAApB5+B,EAAOs9B,UAC1Bt9B,EAAOyC,MAAM8E,QAAQ,aAItBizB,EAAE73B,KAAO63B,EAAE73B,KAAKJ,cAGhBi4B,EAAE2F,YAAcvE,GAAW73B,KAAMy2B,EAAE73B,MAInC87B,EAAWjE,EAAE3F,IAGP2F,EAAE2F,aAGF3F,EAAE/xB,OACNg2B,EAAajE,EAAE3F,MAAS0G,GAAYx3B,KAAM06B,GAAa,IAAM,KAAQjE,EAAE/xB,WAEhE+xB,GAAE/xB,MAIL+xB,EAAEhpB,SAAU,IAChBgpB,EAAE3F,IAAM4G,GAAI13B,KAAM06B,GAGjBA,EAAS53B,QAAS40B,GAAK,OAASH,MAGhCmD,GAAalD,GAAYx3B,KAAM06B,GAAa,IAAM,KAAQ,KAAOnD,OAK/Dd,EAAE4F,aACDpgC,EAAOu9B,aAAckB,IACzBhC,EAAM+C,iBAAkB,oBAAqBx/B,EAAOu9B,aAAckB,IAE9Dz+B,EAAOw9B,KAAMiB,IACjBhC,EAAM+C,iBAAkB,gBAAiBx/B,EAAOw9B,KAAMiB,MAKnDjE,EAAE/xB,MAAQ+xB,EAAE2F,YAAc3F,EAAEmD,eAAgB,GAASt3B,EAAQs3B,cACjElB,EAAM+C,iBAAkB,eAAgBhF,EAAEmD,aAI3ClB,EAAM+C,iBACL,SACAhF,EAAE8B,UAAW,IAAO9B,EAAEoD,QAASpD,EAAE8B,UAAU,IAC1C9B,EAAEoD,QAASpD,EAAE8B,UAAU,KAA8B,MAArB9B,EAAE8B,UAAW,GAAc,KAAOJ,GAAW,WAAa,IAC1F1B,EAAEoD,QAAS,KAIb,KAAMn4B,IAAK+0B,GAAE6F,QACZ5D,EAAM+C,iBAAkB/5B,EAAG+0B,EAAE6F,QAAS56B,GAIvC,IAAK+0B,EAAE8F,aAAgB9F,EAAE8F,WAAW97B,KAAMu6B,EAAiBtC,EAAOjC,MAAQ,GAAmB,IAAVrc,GAElF,MAAOse,GAAMoD,OAIdR,GAAW,OAGX,KAAM55B,KAAOu6B,QAAS,EAAG13B,MAAO,EAAG80B,SAAU,GAC5CX,EAAOh3B,GAAK+0B,EAAG/0B,GAOhB,IAHAo5B,EAAYtC,GAA+BN,GAAYzB,EAAGn0B,EAASo2B,GAK5D,CACNA,EAAM75B,WAAa,EAGdg8B,GACJI,EAAmBz3B,QAAS,YAAck1B,EAAOjC,IAG7CA,EAAE7wB,OAAS6wB,EAAE1V,QAAU,IAC3B6Z,EAAet3B,WAAW,WACzBo1B,EAAMoD,MAAM,YACVrF,EAAE1V,SAGN,KACC3G,EAAQ,EACR0gB,EAAU0B,KAAMpB,EAAgBh6B,GAC/B,MAAQ+C,GAET,KAAa,EAARiW,GAIJ,KAAMjW,EAHN/C,GAAM,GAAI+C,QArBZ/C,GAAM,GAAI,eA8BX,SAASA,GAAMk4B,EAAQmD,EAAkBC,EAAWJ,GACnD,GAAIK,GAAWV,EAAS13B,EAAO40B,EAAUyD,EACxCb,EAAaU,CAGC,KAAVriB,IAKLA,EAAQ,EAGHwgB,GACJ5Z,aAAc4Z,GAKfE,EAAYt/B,EAGZm/B,EAAwB2B,GAAW,GAGnC5D,EAAM75B,WAAay6B,EAAS,EAAI,EAAI,EAGpCqD,EAAYrD,GAAU,KAAgB,IAATA,GAA2B,MAAXA,EAGxCoD,IACJvD,EAAW0D,GAAqBpG,EAAGiC,EAAOgE,IAI3CvD,EAAW2D,GAAarG,EAAG0C,EAAUT,EAAOiE,GAGvCA,GAGClG,EAAE4F,aACNO,EAAWlE,EAAM6C,kBAAkB,iBAC9BqB,IACJ3gC,EAAOu9B,aAAckB,GAAakC,GAEnCA,EAAWlE,EAAM6C,kBAAkB,QAC9BqB,IACJ3gC,EAAOw9B,KAAMiB,GAAakC,IAKZ,MAAXtD,GAA6B,SAAX7C,EAAE73B,KACxBm9B,EAAa,YAGS,MAAXzC,EACXyC,EAAa,eAIbA,EAAa5C,EAAS/e,MACtB6hB,EAAU9C,EAASz0B,KACnBH,EAAQ40B,EAAS50B,MACjBo4B,GAAap4B,KAKdA,EAAQw3B,GACHzC,IAAWyC,KACfA,EAAa,QACC,EAATzC,IACJA,EAAS,KAMZZ,EAAMY,OAASA,EACfZ,EAAMqD,YAAeU,GAAoBV,GAAe,GAGnDY,EACJriB,EAAS/W,YAAay3B,GAAmBiB,EAASF,EAAYrD,IAE9Dpe,EAASyiB,WAAY/B,GAAmBtC,EAAOqD,EAAYx3B,IAI5Dm0B,EAAMyC,WAAYA,GAClBA,EAAa3/B,EAERq/B,GACJI,EAAmBz3B,QAASm5B,EAAY,cAAgB,aACrDjE,EAAOjC,EAAGkG,EAAYV,EAAU13B,IAIpC22B,EAAiBjhB,SAAU+gB,GAAmBtC,EAAOqD,IAEhDlB,IACJI,EAAmBz3B,QAAS,gBAAkBk1B,EAAOjC,MAE3Cx6B,EAAOs9B,QAChBt9B,EAAOyC,MAAM8E,QAAQ,cAKxB,MAAOk1B,IAGRsE,QAAS,SAAUlM,EAAKpsB,EAAMzD,GAC7B,MAAOhF,GAAOyE,IAAKowB,EAAKpsB,EAAMzD,EAAU,SAGzCg8B,UAAW,SAAUnM,EAAK7vB,GACzB,MAAOhF,GAAOyE,IAAKowB,EAAKt1B,EAAWyF,EAAU,aAI/ChF,EAAO+E,MAAQ,MAAO,QAAU,SAAUU,EAAGw6B,GAC5CjgC,EAAQigC,GAAW,SAAUpL,EAAKpsB,EAAMzD,EAAUrC,GAQjD,MANK3C,GAAOiE,WAAYwE,KACvB9F,EAAOA,GAAQqC,EACfA,EAAWyD,EACXA,EAAOlJ,GAGDS,EAAO80B,MACbD,IAAKA,EACLlyB,KAAMs9B,EACNlL,SAAUpyB,EACV8F,KAAMA,EACNu3B,QAASh7B,MASZ,SAAS47B,IAAqBpG,EAAGiC,EAAOgE,GACvC,GAAIQ,GAAeC,EAAIC,EAAex+B,EACrCgsB,EAAW6L,EAAE7L,SACb2N,EAAY9B,EAAE8B,SAGf,OAA0B,MAAnBA,EAAW,GACjBA,EAAU5qB,QACLwvB,IAAO3hC,IACX2hC,EAAK1G,EAAEmF,UAAYlD,EAAM6C,kBAAkB,gBAK7C,IAAK4B,EACJ,IAAMv+B,IAAQgsB,GACb,GAAKA,EAAUhsB,IAAUgsB,EAAUhsB,GAAOoB,KAAMm9B,GAAO,CACtD5E,EAAU3nB,QAAShS,EACnB,OAMH,GAAK25B,EAAW,IAAOmE,GACtBU,EAAgB7E,EAAW,OACrB,CAEN,IAAM35B,IAAQ89B,GAAY,CACzB,IAAMnE,EAAW,IAAO9B,EAAEwD,WAAYr7B,EAAO,IAAM25B,EAAU,IAAO,CACnE6E,EAAgBx+B,CAChB,OAEKs+B,IACLA,EAAgBt+B,GAIlBw+B,EAAgBA,GAAiBF,EAMlC,MAAKE,IACCA,IAAkB7E,EAAW,IACjCA,EAAU3nB,QAASwsB,GAEbV,EAAWU,IAJnB,EAWD,QAASN,IAAarG,EAAG0C,EAAUT,EAAOiE,GACzC,GAAIU,GAAOC,EAASC,EAAM/3B,EAAKqlB,EAC9BoP,KAEA1B,EAAY9B,EAAE8B,UAAU37B,OAGzB,IAAK27B,EAAW,GACf,IAAMgF,IAAQ9G,GAAEwD,WACfA,EAAYsD,EAAKl3B,eAAkBowB,EAAEwD,WAAYsD,EAInDD,GAAU/E,EAAU5qB,OAGpB,OAAQ2vB,EAcP,GAZK7G,EAAEuD,eAAgBsD,KACtB5E,EAAOjC,EAAEuD,eAAgBsD,IAAcnE,IAIlCtO,GAAQ8R,GAAalG,EAAE+G,aAC5BrE,EAAW1C,EAAE+G,WAAYrE,EAAU1C,EAAEzF,WAGtCnG,EAAOyS,EACPA,EAAU/E,EAAU5qB,QAKnB,GAAiB,MAAZ2vB,EAEJA,EAAUzS,MAGJ,IAAc,MAATA,GAAgBA,IAASyS,EAAU,CAM9C,GAHAC,EAAOtD,EAAYpP,EAAO,IAAMyS,IAAarD,EAAY,KAAOqD,IAG1DC,EACL,IAAMF,IAASpD,GAId,GADAz0B,EAAM63B,EAAM90B,MAAO,KACd/C,EAAK,KAAQ83B,IAGjBC,EAAOtD,EAAYpP,EAAO,IAAMrlB,EAAK,KACpCy0B,EAAY,KAAOz0B,EAAK,KACb,CAEN+3B,KAAS,EACbA,EAAOtD,EAAYoD,GAGRpD,EAAYoD,MAAY,IACnCC,EAAU93B,EAAK,GACf+yB,EAAU3nB,QAASpL,EAAK,IAEzB,OAOJ,GAAK+3B,KAAS,EAGb,GAAKA,GAAQ9G,EAAG,UACf0C,EAAWoE,EAAMpE,OAEjB,KACCA,EAAWoE,EAAMpE,GAChB,MAAQh1B,GACT,OAASiW,MAAO,cAAe7V,MAAOg5B,EAAOp5B,EAAI,sBAAwB0mB,EAAO,OAASyS,IAQ/F,OAASljB,MAAO,UAAW1V,KAAMy0B,GAGlCl9B,EAAOq+B,WACNT,SACC4D,OAAQ,6FAET7S,UACC6S,OAAQ,uBAETxD,YACCyD,cAAe,SAAUl3B,GAExB,MADAvK,GAAO+J,WAAYQ,GACZA,MAMVvK,EAAOu+B,cAAe,SAAU,SAAU/D,GACpCA,EAAEhpB,QAAUjS,IAChBi7B,EAAEhpB,OAAQ,GAENgpB,EAAE0F,cACN1F,EAAE73B,KAAO,MACT63B,EAAEnS,QAAS,KAKbroB,EAAOw+B,cAAe,SAAU,SAAShE,GAGxC,GAAKA,EAAE0F,YAAc,CAEpB,GAAIsB,GACHE,EAAO9hC,EAAS8hC,MAAQ1hC,EAAO,QAAQ,IAAMJ,EAASE,eAEvD,QAECygC,KAAM,SAAUxwB,EAAG/K,GAElBw8B,EAAS5hC,EAASiJ,cAAc,UAEhC24B,EAAO73B,OAAQ,EAEV6wB,EAAEmH,gBACNH,EAAOI,QAAUpH,EAAEmH,eAGpBH,EAAOv7B,IAAMu0B,EAAE3F,IAGf2M,EAAOK,OAASL,EAAOM,mBAAqB,SAAU/xB,EAAGgyB,IAEnDA,IAAYP,EAAO5+B,YAAc,kBAAkBmB,KAAMy9B,EAAO5+B,eAGpE4+B,EAAOK,OAASL,EAAOM,mBAAqB,KAGvCN,EAAOp9B,YACXo9B,EAAOp9B,WAAW0N,YAAa0vB,GAIhCA,EAAS,KAGHO,GACL/8B,EAAU,IAAK,aAOlB08B,EAAKpP,aAAckP,EAAQE,EAAKruB,aAGjCwsB,MAAO,WACD2B,GACJA,EAAOK,OAAQtiC,GAAW,OAM/B,IAAIyiC,OACHC,GAAS,mBAGVjiC,GAAOq+B,WACN6D,MAAO,WACPC,cAAe,WACd,GAAIn9B,GAAWg9B,GAAa/zB,OAAWjO,EAAO0G,QAAU,IAAQ40B,IAEhE,OADAh4B,MAAM0B,IAAa,EACZA,KAKThF,EAAOu+B,cAAe,aAAc,SAAU/D,EAAG4H,EAAkB3F,GAElE,GAAI4F,GAAcC,EAAaC,EAC9BC,EAAWhI,EAAE0H,SAAU,IAAWD,GAAOl+B,KAAMy2B,EAAE3F,KAChD,MACkB,gBAAX2F,GAAE/xB,QAAwB+xB,EAAEmD,aAAe,IAAK98B,QAAQ,sCAAwCohC,GAAOl+B,KAAMy2B,EAAE/xB,OAAU,OAIlI,OAAK+5B,IAAiC,UAArBhI,EAAE8B,UAAW,IAG7B+F,EAAe7H,EAAE2H,cAAgBniC,EAAOiE,WAAYu2B,EAAE2H,eACrD3H,EAAE2H,gBACF3H,EAAE2H,cAGEK,EACJhI,EAAGgI,GAAahI,EAAGgI,GAAW37B,QAASo7B,GAAQ,KAAOI,GAC3C7H,EAAE0H,SAAU,IACvB1H,EAAE3F,MAAS0G,GAAYx3B,KAAMy2B,EAAE3F,KAAQ,IAAM,KAAQ2F,EAAE0H,MAAQ,IAAMG,GAItE7H,EAAEwD,WAAW,eAAiB,WAI7B,MAHMuE,IACLviC,EAAOsI,MAAO+5B,EAAe,mBAEvBE,EAAmB,IAI3B/H,EAAE8B,UAAW,GAAM,OAGnBgG,EAAchjC,EAAQ+iC,GACtB/iC,EAAQ+iC,GAAiB,WACxBE,EAAoBl9B,WAIrBo3B,EAAMre,OAAO,WAEZ9e,EAAQ+iC,GAAiBC,EAGpB9H,EAAG6H,KAEP7H,EAAE2H,cAAgBC,EAAiBD,cAGnCH,GAAavhC,KAAM4hC,IAIfE,GAAqBviC,EAAOiE,WAAYq+B,IAC5CA,EAAaC,EAAmB,IAGjCA,EAAoBD,EAAc/iC,IAI5B,UAtDR,GAyDD,IAAIkjC,IAAcC,GACjBC,GAAQ,EAERC,GAAmBtjC,EAAOoK,eAAiB,WAE1C,GAAIzB,EACJ,KAAMA,IAAOw6B,IACZA,GAAcx6B,GAAO1I,GAAW,GAKnC,SAASsjC,MACR,IACC,MAAO,IAAIvjC,GAAOwjC,eACjB,MAAO56B,KAGV,QAAS66B,MACR,IACC,MAAO,IAAIzjC,GAAOoK,cAAc,qBAC/B,MAAOxB,KAKVlI,EAAO06B,aAAasI,IAAM1jC,EAAOoK,cAOhC,WACC,OAAQpG,KAAKm6B,SAAWoF,MAAuBE,MAGhDF,GAGDH,GAAe1iC,EAAO06B,aAAasI,MACnChjC,EAAOmI,QAAQ86B,OAASP,IAAkB,mBAAqBA,IAC/DA,GAAe1iC,EAAOmI,QAAQ2sB,OAAS4N,GAGlCA,IAEJ1iC,EAAOw+B,cAAc,SAAUhE,GAE9B,IAAMA,EAAE0F,aAAelgC,EAAOmI,QAAQ86B,KAAO,CAE5C,GAAIj+B,EAEJ,QACCu7B,KAAM,SAAUF,EAASjD,GAGxB,GAAInU,GAAQxjB,EACXu9B,EAAMxI,EAAEwI,KAWT,IAPKxI,EAAE0I,SACNF,EAAIG,KAAM3I,EAAE73B,KAAM63B,EAAE3F,IAAK2F,EAAE7wB,MAAO6wB,EAAE0I,SAAU1I,EAAExhB,UAEhDgqB,EAAIG,KAAM3I,EAAE73B,KAAM63B,EAAE3F,IAAK2F,EAAE7wB,OAIvB6wB,EAAE4I,UACN,IAAM39B,IAAK+0B,GAAE4I,UACZJ,EAAKv9B,GAAM+0B,EAAE4I,UAAW39B,EAKrB+0B,GAAEmF,UAAYqD,EAAItD,kBACtBsD,EAAItD,iBAAkBlF,EAAEmF,UAQnBnF,EAAE0F,aAAgBG,EAAQ,sBAC/BA,EAAQ,oBAAsB,iBAI/B,KACC,IAAM56B,IAAK46B,GACV2C,EAAIxD,iBAAkB/5B,EAAG46B,EAAS56B,IAElC,MAAO2iB,IAKT4a,EAAIzC,KAAQ/F,EAAE2F,YAAc3F,EAAE/xB,MAAU,MAGxCzD,EAAW,SAAU+K,EAAGgyB,GACvB,GAAI1E,GAAQyB,EAAiBgB,EAAYW,CAKzC,KAGC,GAAKz7B,IAAc+8B,GAA8B,IAAnBiB,EAAIpgC,YAcjC,GAXAoC,EAAWzF,EAGN0pB,IACJ+Z,EAAIlB,mBAAqB9hC,EAAO8J,KAC3B84B,UACGH,IAAcxZ,IAKlB8Y,EAEoB,IAAnBiB,EAAIpgC,YACRogC,EAAInD,YAEC,CACNY,KACApD,EAAS2F,EAAI3F,OACbyB,EAAkBkE,EAAIzD,wBAIW,gBAArByD,GAAI7F,eACfsD,EAAUl2B,KAAOy4B,EAAI7F,aAKtB,KACC2C,EAAakD,EAAIlD,WAChB,MAAO53B,GAER43B,EAAa,GAQRzC,IAAU7C,EAAEiD,SAAYjD,EAAE0F,YAGT,OAAX7C,IACXA,EAAS,KAHTA,EAASoD,EAAUl2B,KAAO,IAAM,KAOlC,MAAO84B,GACFtB,GACL3E,EAAU,GAAIiG,GAKX5C,GACJrD,EAAUC,EAAQyC,EAAYW,EAAW3B,IAIrCtE,EAAE7wB,MAGuB,IAAnBq5B,EAAIpgC,WAGfyE,WAAYrC,IAEZikB,IAAW0Z,GACNC,KAGEH,KACLA,MACAziC,EAAQV,GAASgkC,OAAQV,KAG1BH,GAAcxZ,GAAWjkB,GAE1Bg+B,EAAIlB,mBAAqB98B,GAjBzBA,KAqBF66B,MAAO,WACD76B,GACJA,EAAUzF,GAAW,OAO3B,IAAIgkC,IAAOC,GACVC,GAAW,yBACXC,GAAaj1B,OAAQ,iBAAmBjN,EAAY,cAAe,KACnEmiC,GAAO,cACPC,IAAwBC,IACxBC,IACCjG,KAAM,SAAUjY,EAAMvb,GACrB,GAAI05B,GAAQzgC,KAAK0gC,YAAape,EAAMvb,GACnC9D,EAASw9B,EAAM3xB,MACf2nB,EAAQ2J,GAAOjgC,KAAM4G,GACrB45B,EAAOlK,GAASA,EAAO,KAAS/5B,EAAOw3B,UAAW5R,GAAS,GAAK,MAGhEhP,GAAU5W,EAAOw3B,UAAW5R,IAAmB,OAATqe,IAAkB19B,IACvDm9B,GAAOjgC,KAAMzD,EAAO82B,IAAKiN,EAAM1gC,KAAMuiB,IACtCse,EAAQ,EACRC,EAAgB,EAEjB,IAAKvtB,GAASA,EAAO,KAAQqtB,EAAO,CAEnCA,EAAOA,GAAQrtB,EAAO,GAGtBmjB,EAAQA,MAGRnjB,GAASrQ,GAAU,CAEnB,GAGC29B,GAAQA,GAAS,KAGjBttB,GAAgBstB,EAChBlkC,EAAO+L,MAAOg4B,EAAM1gC,KAAMuiB,EAAMhP,EAAQqtB,SAI/BC,KAAWA,EAAQH,EAAM3xB,MAAQ7L,IAAqB,IAAV29B,KAAiBC,GAaxE,MATKpK,KACJnjB,EAAQmtB,EAAMntB,OAASA,IAAUrQ,GAAU,EAC3Cw9B,EAAME,KAAOA,EAEbF,EAAMl+B,IAAMk0B,EAAO,GAClBnjB,GAAUmjB,EAAO,GAAM,GAAMA,EAAO,IACnCA,EAAO,IAGHgK,IAKV,SAASK,MAIR,MAHA/8B,YAAW,WACVk8B,GAAQhkC,IAEAgkC,GAAQvjC,EAAO0L,MAGzB,QAASs4B,IAAa35B,EAAOub,EAAMye,GAClC,GAAIN,GACHO,GAAeR,GAAUle,QAAerlB,OAAQujC,GAAU,MAC1DjmB,EAAQ,EACRra,EAAS8gC,EAAW9gC,MACrB,MAAgBA,EAARqa,EAAgBA,IACvB,GAAMkmB,EAAQO,EAAYzmB,GAAQrZ,KAAM6/B,EAAWze,EAAMvb,GAGxD,MAAO05B,GAKV,QAASQ,IAAWlhC,EAAMmhC,EAAYn+B,GACrC,GAAIgQ,GACHouB,EACA5mB,EAAQ,EACRra,EAASogC,GAAoBpgC,OAC7B6a,EAAWre,EAAOgM,WAAWoS,OAAQ,iBAE7BsmB,GAAKrhC,OAEbqhC,EAAO,WACN,GAAKD,EACJ,OAAO,CAER,IAAIE,GAAcpB,IAASa,KAC1B9kB,EAAY3Y,KAAKiE,IAAK,EAAGy5B,EAAUO,UAAYP,EAAUQ,SAAWF,GAEpElqB,EAAO6E,EAAY+kB,EAAUQ,UAAY,EACzCC,EAAU,EAAIrqB,EACdoD,EAAQ,EACRra,EAAS6gC,EAAUU,OAAOvhC,MAE3B,MAAgBA,EAARqa,EAAiBA,IACxBwmB,EAAUU,OAAQlnB,GAAQmnB,IAAKF,EAKhC,OAFAzmB,GAASqB,WAAYrc,GAAQghC,EAAWS,EAASxlB,IAElC,EAAVwlB,GAAethC,EACZ8b,GAEPjB,EAAS/W,YAAajE,GAAQghC,KACvB,IAGTA,EAAYhmB,EAASnZ,SACpB7B,KAAMA,EACNmoB,MAAOxrB,EAAOgG,UAAYw+B,GAC1BS,KAAMjlC,EAAOgG,QAAQ,GAAQk/B,kBAAqB7+B,GAClD8+B,mBAAoBX,EACpBhI,gBAAiBn2B,EACjBu+B,UAAWrB,IAASa,KACpBS,SAAUx+B,EAAQw+B,SAClBE,UACAf,YAAa,SAAUpe,EAAM/f,GAC5B,GAAIk+B,GAAQ/jC,EAAOolC,MAAO/hC,EAAMghC,EAAUY,KAAMrf,EAAM/f,EACpDw+B,EAAUY,KAAKC,cAAetf,IAAUye,EAAUY,KAAKI,OAEzD,OADAhB,GAAUU,OAAOtkC,KAAMsjC,GAChBA,GAERvf,KAAM,SAAU8gB,GACf,GAAIznB,GAAQ,EAGXra,EAAS8hC,EAAUjB,EAAUU,OAAOvhC,OAAS,CAC9C,IAAKihC,EACJ,MAAOnhC,KAGR,KADAmhC,GAAU,EACMjhC,EAARqa,EAAiBA,IACxBwmB,EAAUU,OAAQlnB,GAAQmnB,IAAK,EAUhC,OALKM,GACJjnB,EAAS/W,YAAajE,GAAQghC,EAAWiB,IAEzCjnB,EAASyiB,WAAYz9B,GAAQghC,EAAWiB,IAElChiC,QAGTkoB,EAAQ6Y,EAAU7Y,KAInB,KAFA+Z,GAAY/Z,EAAO6Y,EAAUY,KAAKC,eAElB1hC,EAARqa,EAAiBA,IAExB,GADAxH,EAASutB,GAAqB/lB,GAAQrZ,KAAM6/B,EAAWhhC,EAAMmoB,EAAO6Y,EAAUY,MAE7E,MAAO5uB,EAmBT,OAfArW,GAAO4F,IAAK4lB,EAAOwY,GAAaK,GAE3BrkC,EAAOiE,WAAYogC,EAAUY,KAAKruB,QACtCytB,EAAUY,KAAKruB,MAAMpS,KAAMnB,EAAMghC,GAGlCrkC,EAAO4kB,GAAG4gB,MACTxlC,EAAOgG,OAAQ0+B,GACdrhC,KAAMA,EACNoiC,KAAMpB,EACNngB,MAAOmgB,EAAUY,KAAK/gB,SAKjBmgB,EAAUtlB,SAAUslB,EAAUY,KAAKlmB,UACxC5Z,KAAMk/B,EAAUY,KAAK9/B,KAAMk/B,EAAUY,KAAK7H,UAC1C9e,KAAM+lB,EAAUY,KAAK3mB,MACrBF,OAAQimB,EAAUY,KAAK7mB,QAG1B,QAASmnB,IAAY/Z,EAAO0Z,GAC3B,GAAIrnB,GAAOzX,EAAMi/B,EAAQh7B,EAAOga,CAGhC,KAAMxG,IAAS2N,GAed,GAdAplB,EAAOpG,EAAOiK,UAAW4T,GACzBwnB,EAASH,EAAe9+B,GACxBiE,EAAQmhB,EAAO3N,GACV7d,EAAOyG,QAAS4D,KACpBg7B,EAASh7B,EAAO,GAChBA,EAAQmhB,EAAO3N,GAAUxT,EAAO,IAG5BwT,IAAUzX,IACdolB,EAAOplB,GAASiE,QACTmhB,GAAO3N,IAGfwG,EAAQrkB,EAAOs3B,SAAUlxB,GACpBie,GAAS,UAAYA,GAAQ,CACjCha,EAAQga,EAAMwV,OAAQxvB,SACfmhB,GAAOplB,EAId,KAAMyX,IAASxT,GACNwT,IAAS2N,KAChBA,EAAO3N,GAAUxT,EAAOwT,GACxBqnB,EAAernB,GAAUwnB,OAI3BH,GAAe9+B,GAASi/B,EAK3BrlC,EAAOukC,UAAYvkC,EAAOgG,OAAQu+B,IAEjCmB,QAAS,SAAUla,EAAOxmB,GACpBhF,EAAOiE,WAAYunB,IACvBxmB,EAAWwmB,EACXA,GAAU,MAEVA,EAAQA,EAAMlf,MAAM,IAGrB,IAAIsZ,GACH/H,EAAQ,EACRra,EAASgoB,EAAMhoB,MAEhB,MAAgBA,EAARqa,EAAiBA,IACxB+H,EAAO4F,EAAO3N,GACdimB,GAAUle,GAASke,GAAUle,OAC7Bke,GAAUle,GAAOjR,QAAS3P,IAI5B2gC,UAAW,SAAU3gC,EAAUqtB,GACzBA,EACJuR,GAAoBjvB,QAAS3P,GAE7B4+B,GAAoBnjC,KAAMuE,KAK7B,SAAS6+B,IAAkBxgC,EAAMmoB,EAAOyZ,GAEvC,GAAIrf,GAAMvb,EAAOgtB,EAAQ0M,EAAO1f,EAAOuhB,EACtCH,EAAOniC,KACPmqB,KACA1hB,EAAQ1I,EAAK0I,MACbkrB,EAAS5zB,EAAKQ,UAAY+yB,GAAUvzB,GACpCwiC,EAAW7lC,EAAO+jB,MAAO1gB,EAAM,SAG1B4hC,GAAK/gB,QACVG,EAAQrkB,EAAOskB,YAAajhB,EAAM,MACX,MAAlBghB,EAAMyhB,WACVzhB,EAAMyhB,SAAW,EACjBF,EAAUvhB,EAAM/L,MAAMkF,KACtB6G,EAAM/L,MAAMkF,KAAO,WACZ6G,EAAMyhB,UACXF,MAIHvhB,EAAMyhB,WAENL,EAAKrnB,OAAO,WAGXqnB,EAAKrnB,OAAO,WACXiG,EAAMyhB,WACA9lC,EAAOkkB,MAAO7gB,EAAM,MAAOG,QAChC6gB,EAAM/L,MAAMkF,YAOO,IAAlBna,EAAKQ,WAAoB,UAAY2nB,IAAS,SAAWA,MAK7DyZ,EAAKc,UAAah6B,EAAMg6B,SAAUh6B,EAAMi6B,UAAWj6B,EAAMk6B,WAIlB,WAAlCjmC,EAAO82B,IAAKzzB,EAAM,YACW,SAAhCrD,EAAO82B,IAAKzzB,EAAM,WAIbrD,EAAOmI,QAAQ4Y,wBAAkE,WAAxCmW,GAAoB7zB,EAAK8G,UAIvE4B,EAAMyW,KAAO,EAHbzW,EAAMuW,QAAU,iBAQd2iB,EAAKc,WACTh6B,EAAMg6B,SAAW,SACX/lC,EAAOmI,QAAQ6Y,kBACpBykB,EAAKrnB,OAAO,WACXrS,EAAMg6B,SAAWd,EAAKc,SAAU,GAChCh6B,EAAMi6B,UAAYf,EAAKc,SAAU,GACjCh6B,EAAMk6B,UAAYhB,EAAKc,SAAU,KAOpC,KAAMngB,IAAQ4F,GAEb,GADAnhB,EAAQmhB,EAAO5F,GACV6d,GAAShgC,KAAM4G,GAAU,CAG7B,SAFOmhB,GAAO5F,GACdyR,EAASA,GAAoB,WAAVhtB,EACdA,KAAY4sB,EAAS,OAAS,QAClC,QAEDxJ,GAAM7H,GAASigB,GAAYA,EAAUjgB,IAAU5lB,EAAO+L,MAAO1I,EAAMuiB,GAIrE,IAAM5lB,EAAOqI,cAAeolB,GAAS,CAC/BoY,EACC,UAAYA,KAChB5O,EAAS4O,EAAS5O,QAGnB4O,EAAW7lC,EAAO+jB,MAAO1gB,EAAM,aAI3Bg0B,IACJwO,EAAS5O,QAAUA,GAEfA,EACJj3B,EAAQqD,GAAO2zB,OAEfyO,EAAKtgC,KAAK,WACTnF,EAAQqD,GAAO+zB,SAGjBqO,EAAKtgC,KAAK,WACT,GAAIygB,EACJ5lB,GAAOgkB,YAAa3gB,EAAM,SAC1B,KAAMuiB,IAAQ6H,GACbztB,EAAO+L,MAAO1I,EAAMuiB,EAAM6H,EAAM7H,KAGlC,KAAMA,IAAQ6H,GACbsW,EAAQC,GAAa/M,EAAS4O,EAAUjgB,GAAS,EAAGA,EAAM6f,GAElD7f,IAAQigB,KACfA,EAAUjgB,GAASme,EAAMntB,MACpBqgB,IACJ8M,EAAMl+B,IAAMk+B,EAAMntB,MAClBmtB,EAAMntB,MAAiB,UAATgP,GAA6B,WAATA,EAAoB,EAAI,KAO/D,QAASwf,IAAO/hC,EAAMgD,EAASuf,EAAM/f,EAAKw/B,GACzC,MAAO,IAAID,IAAMniC,UAAU1B,KAAM8B,EAAMgD,EAASuf,EAAM/f,EAAKw/B,GAE5DrlC,EAAOolC,MAAQA,GAEfA,GAAMniC,WACLE,YAAaiiC,GACb7jC,KAAM,SAAU8B,EAAMgD,EAASuf,EAAM/f,EAAKw/B,EAAQpB,GACjD3gC,KAAKD,KAAOA,EACZC,KAAKsiB,KAAOA,EACZtiB,KAAK+hC,OAASA,GAAU,QACxB/hC,KAAK+C,QAAUA,EACf/C,KAAKsT,MAAQtT,KAAKoI,IAAMpI,KAAK8O,MAC7B9O,KAAKuC,IAAMA,EACXvC,KAAK2gC,KAAOA,IAAUjkC,EAAOw3B,UAAW5R,GAAS,GAAK,OAEvDxT,IAAK,WACJ,GAAIiS,GAAQ+gB,GAAMhe,UAAW9jB,KAAKsiB,KAElC,OAAOvB,IAASA,EAAM5f,IACrB4f,EAAM5f,IAAKnB,MACX8hC,GAAMhe,UAAUqD,SAAShmB,IAAKnB,OAEhC0hC,IAAK,SAAUF,GACd,GAAIoB,GACH7hB,EAAQ+gB,GAAMhe,UAAW9jB,KAAKsiB,KAoB/B,OAjBCtiB,MAAK2rB,IAAMiX,EADP5iC,KAAK+C,QAAQw+B,SACE7kC,EAAOqlC,OAAQ/hC,KAAK+hC,QACtCP,EAASxhC,KAAK+C,QAAQw+B,SAAWC,EAAS,EAAG,EAAGxhC,KAAK+C,QAAQw+B,UAG3CC,EAEpBxhC,KAAKoI,KAAQpI,KAAKuC,IAAMvC,KAAKsT,OAAUsvB,EAAQ5iC,KAAKsT,MAE/CtT,KAAK+C,QAAQ8/B,MACjB7iC,KAAK+C,QAAQ8/B,KAAK3hC,KAAMlB,KAAKD,KAAMC,KAAKoI,IAAKpI,MAGzC+gB,GAASA,EAAMoC,IACnBpC,EAAMoC,IAAKnjB,MAEX8hC,GAAMhe,UAAUqD,SAAShE,IAAKnjB,MAExBA,OAIT8hC,GAAMniC,UAAU1B,KAAK0B,UAAYmiC,GAAMniC,UAEvCmiC,GAAMhe,WACLqD,UACChmB,IAAK,SAAUs/B,GACd,GAAI1tB,EAEJ,OAAiC,OAA5B0tB,EAAM1gC,KAAM0gC,EAAMne,OACpBme,EAAM1gC,KAAK0I,OAA2C,MAAlCg4B,EAAM1gC,KAAK0I,MAAOg4B,EAAMne,OAQ/CvP,EAASrW,EAAO82B,IAAKiN,EAAM1gC,KAAM0gC,EAAMne,KAAM,IAErCvP,GAAqB,SAAXA,EAAwBA,EAAJ,GAT9B0tB,EAAM1gC,KAAM0gC,EAAMne,OAW3Ba,IAAK,SAAUsd,GAGT/jC,EAAO4kB,GAAGuhB,KAAMpC,EAAMne,MAC1B5lB,EAAO4kB,GAAGuhB,KAAMpC,EAAMne,MAAQme,GACnBA,EAAM1gC,KAAK0I,QAAgE,MAArDg4B,EAAM1gC,KAAK0I,MAAO/L,EAAOg4B,SAAU+L,EAAMne,QAAoB5lB,EAAOs3B,SAAUyM,EAAMne,OACrH5lB,EAAO+L,MAAOg4B,EAAM1gC,KAAM0gC,EAAMne,KAAMme,EAAMr4B,IAAMq4B,EAAME,MAExDF,EAAM1gC,KAAM0gC,EAAMne,MAASme,EAAMr4B,OASrC05B,GAAMhe,UAAUmF,UAAY6Y,GAAMhe,UAAU+E,YAC3C1F,IAAK,SAAUsd,GACTA,EAAM1gC,KAAKQ,UAAYkgC,EAAM1gC,KAAKe,aACtC2/B,EAAM1gC,KAAM0gC,EAAMne,MAASme,EAAMr4B,OAKpC1L,EAAO+E,MAAO,SAAU,OAAQ,QAAU,SAAUU,EAAGW,GACtD,GAAIggC,GAAQpmC,EAAOsB,GAAI8E,EACvBpG,GAAOsB,GAAI8E,GAAS,SAAUigC,EAAOhB,EAAQrgC,GAC5C,MAAgB,OAATqhC,GAAkC,iBAAVA,GAC9BD,EAAMhhC,MAAO9B,KAAM+B,WACnB/B,KAAKgjC,QAASC,GAAOngC,GAAM,GAAQigC,EAAOhB,EAAQrgC,MAIrDhF,EAAOsB,GAAG0E,QACTwgC,OAAQ,SAAUH,EAAOI,EAAIpB,EAAQrgC,GAGpC,MAAO1B,MAAKkQ,OAAQojB,IAAWE,IAAK,UAAW,GAAIE,OAGjDnxB,MAAMygC,SAAU/lB,QAASkmB,GAAMJ,EAAOhB,EAAQrgC,IAEjDshC,QAAS,SAAU1gB,EAAMygB,EAAOhB,EAAQrgC,GACvC,GAAIsT,GAAQtY,EAAOqI,cAAeud,GACjC8gB,EAAS1mC,EAAOqmC,MAAOA,EAAOhB,EAAQrgC,GACtC2hC,EAAc,WAEb,GAAIlB,GAAOlB,GAAWjhC,KAAMtD,EAAOgG,UAAY4f,GAAQ8gB,IAGlDpuB,GAAStY,EAAO+jB,MAAOzgB,KAAM,YACjCmiC,EAAKjhB,MAAM,GAKd,OAFCmiB,GAAYC,OAASD,EAEfruB,GAASouB,EAAOxiB,SAAU,EAChC5gB,KAAKyB,KAAM4hC,GACXrjC,KAAK4gB,MAAOwiB,EAAOxiB,MAAOyiB,IAE5BniB,KAAM,SAAU7hB,EAAMqiB,EAAYsgB,GACjC,GAAIuB,GAAY,SAAUxiB,GACzB,GAAIG,GAAOH,EAAMG,WACVH,GAAMG,KACbA,EAAM8gB,GAYP,OATqB,gBAAT3iC,KACX2iC,EAAUtgB,EACVA,EAAariB,EACbA,EAAOpD,GAEHylB,GAAcriB,KAAS,GAC3BW,KAAK4gB,MAAOvhB,GAAQ,SAGdW,KAAKyB,KAAK,WAChB,GAAIof,IAAU,EACbtG,EAAgB,MAARlb,GAAgBA,EAAO,aAC/BmkC,EAAS9mC,EAAO8mC,OAChBr+B,EAAOzI,EAAO+jB,MAAOzgB,KAEtB,IAAKua,EACCpV,EAAMoV,IAAWpV,EAAMoV,GAAQ2G,MACnCqiB,EAAWp+B,EAAMoV,QAGlB,KAAMA,IAASpV,GACTA,EAAMoV,IAAWpV,EAAMoV,GAAQ2G,MAAQmf,GAAK5/B,KAAM8Z,IACtDgpB,EAAWp+B,EAAMoV,GAKpB,KAAMA,EAAQipB,EAAOtjC,OAAQqa,KACvBipB,EAAQjpB,GAAQxa,OAASC,MAAiB,MAARX,GAAgBmkC,EAAQjpB,GAAQqG,QAAUvhB,IAChFmkC,EAAQjpB,GAAQ4nB,KAAKjhB,KAAM8gB,GAC3BnhB,GAAU,EACV2iB,EAAO/gC,OAAQ8X,EAAO,KAOnBsG,IAAYmhB,IAChBtlC,EAAOmkB,QAAS7gB,KAAMX,MAIzBikC,OAAQ,SAAUjkC,GAIjB,MAHKA,MAAS,IACbA,EAAOA,GAAQ,MAETW,KAAKyB,KAAK,WAChB,GAAI8Y,GACHpV,EAAOzI,EAAO+jB,MAAOzgB,MACrB4gB,EAAQzb,EAAM9F,EAAO,SACrB0hB,EAAQ5b,EAAM9F,EAAO,cACrBmkC,EAAS9mC,EAAO8mC,OAChBtjC,EAAS0gB,EAAQA,EAAM1gB,OAAS,CAajC,KAVAiF,EAAKm+B,QAAS,EAGd5mC,EAAOkkB,MAAO5gB,KAAMX,MAEf0hB,GAASA,EAAMG,MACnBH,EAAMG,KAAKhgB,KAAMlB,MAAM,GAIlBua,EAAQipB,EAAOtjC,OAAQqa,KACvBipB,EAAQjpB,GAAQxa,OAASC,MAAQwjC,EAAQjpB,GAAQqG,QAAUvhB,IAC/DmkC,EAAQjpB,GAAQ4nB,KAAKjhB,MAAM,GAC3BsiB,EAAO/gC,OAAQ8X,EAAO,GAKxB,KAAMA,EAAQ,EAAWra,EAARqa,EAAgBA,IAC3BqG,EAAOrG,IAAWqG,EAAOrG,GAAQ+oB,QACrC1iB,EAAOrG,GAAQ+oB,OAAOpiC,KAAMlB,YAKvBmF,GAAKm+B,WAMf,SAASL,IAAO5jC,EAAMokC,GACrB,GAAInb,GACH5Z,GAAUg1B,OAAQrkC,GAClB8C,EAAI,CAKL,KADAshC,EAAeA,EAAc,EAAI,EACtB,EAAJthC,EAAQA,GAAK,EAAIshC,EACvBnb,EAAQ2K,GAAW9wB,GACnBuM,EAAO,SAAW4Z,GAAU5Z,EAAO,UAAY4Z,GAAUjpB,CAO1D,OAJKokC,KACJ/0B,EAAMuO,QAAUvO,EAAM4Q,MAAQjgB,GAGxBqP,EAIRhS,EAAO+E,MACNkiC,UAAWV,GAAM,QACjBW,QAASX,GAAM,QACfY,YAAaZ,GAAM,UACnBa,QAAU7mB,QAAS,QACnB8mB,SAAW9mB,QAAS,QACpB+mB,YAAc/mB,QAAS,WACrB,SAAUna,EAAMolB,GAClBxrB,EAAOsB,GAAI8E,GAAS,SAAUigC,EAAOhB,EAAQrgC,GAC5C,MAAO1B,MAAKgjC,QAAS9a,EAAO6a,EAAOhB,EAAQrgC,MAI7ChF,EAAOqmC,MAAQ,SAAUA,EAAOhB,EAAQ/jC,GACvC,GAAIwe,GAAMumB,GAA0B,gBAAVA,GAAqBrmC,EAAOgG,UAAYqgC,IACjEjJ,SAAU97B,IAAOA,GAAM+jC,GACtBrlC,EAAOiE,WAAYoiC,IAAWA,EAC/BxB,SAAUwB,EACVhB,OAAQ/jC,GAAM+jC,GAAUA,IAAWrlC,EAAOiE,WAAYohC,IAAYA,EAwBnE,OArBAvlB,GAAI+kB,SAAW7kC,EAAO4kB,GAAGpd,IAAM,EAA4B,gBAAjBsY,GAAI+kB,SAAwB/kB,EAAI+kB,SACzE/kB,EAAI+kB,WAAY7kC,GAAO4kB,GAAGC,OAAS7kB,EAAO4kB,GAAGC,OAAQ/E,EAAI+kB,UAAa7kC,EAAO4kB,GAAGC,OAAO4F,UAGtE,MAAb3K,EAAIoE,OAAiBpE,EAAIoE,SAAU,KACvCpE,EAAIoE,MAAQ,MAIbpE,EAAIhU,IAAMgU,EAAIsd,SAEdtd,EAAIsd,SAAW,WACTp9B,EAAOiE,WAAY6b,EAAIhU,MAC3BgU,EAAIhU,IAAItH,KAAMlB,MAGVwc,EAAIoE,OACRlkB,EAAOmkB,QAAS7gB,KAAMwc,EAAIoE,QAIrBpE,GAGR9f,EAAOqlC,QACNkC,OAAQ,SAAUC,GACjB,MAAOA,IAERC,MAAO,SAAUD,GAChB,MAAO,GAAM7gC,KAAK+gC,IAAKF,EAAE7gC,KAAKghC,IAAO,IAIvC3nC,EAAO8mC,UACP9mC,EAAO4kB,GAAKwgB,GAAMniC,UAAU1B,KAC5BvB,EAAO4kB,GAAG8f,KAAO,WAChB,GAAIc,GACHsB,EAAS9mC,EAAO8mC,OAChBrhC,EAAI,CAIL,KAFA89B,GAAQvjC,EAAO0L,MAEHo7B,EAAOtjC,OAAXiC,EAAmBA,IAC1B+/B,EAAQsB,EAAQrhC,GAEV+/B,KAAWsB,EAAQrhC,KAAQ+/B,GAChCsB,EAAO/gC,OAAQN,IAAK,EAIhBqhC,GAAOtjC,QACZxD,EAAO4kB,GAAGJ,OAEX+e,GAAQhkC,GAGTS,EAAO4kB,GAAG4gB,MAAQ,SAAUA,GACtBA,KAAWxlC,EAAO8mC,OAAOrmC,KAAM+kC,IACnCxlC,EAAO4kB,GAAGhO,SAIZ5W,EAAO4kB,GAAGgjB,SAAW,GAErB5nC,EAAO4kB,GAAGhO,MAAQ,WACX4sB,KACLA,GAAUqE,YAAa7nC,EAAO4kB,GAAG8f,KAAM1kC,EAAO4kB,GAAGgjB,YAInD5nC,EAAO4kB,GAAGJ,KAAO,WAChBsjB,cAAetE,IACfA,GAAU,MAGXxjC,EAAO4kB,GAAGC,QACTkjB,KAAM,IACNC,KAAM,IAENvd,SAAU,KAIXzqB,EAAO4kB,GAAGuhB,QAELnmC,EAAO4U,MAAQ5U,EAAO4U,KAAKwE,UAC/BpZ,EAAO4U,KAAKwE,QAAQ6uB,SAAW,SAAU5kC,GACxC,MAAOrD,GAAO+K,KAAK/K,EAAO8mC,OAAQ,SAAUxlC,GAC3C,MAAO+B,KAAS/B,EAAG+B,OACjBG,SAGLxD,EAAOsB,GAAG4mC,OAAS,SAAU7hC,GAC5B,GAAKhB,UAAU7B,OACd,MAAO6C,KAAY9G,EAClB+D,KACAA,KAAKyB,KAAK,SAAUU,GACnBzF,EAAOkoC,OAAOC,UAAW7kC,KAAM+C,EAASZ,IAI3C,IAAI5F,GAASuoC,EACZC,GAAQn8B,IAAK,EAAGssB,KAAM,GACtBn1B,EAAOC,KAAM,GACbwP,EAAMzP,GAAQA,EAAKS,aAEpB,IAAMgP,EAON,MAHAjT,GAAUiT,EAAIhT,gBAGRE,EAAOmN,SAAUtN,EAASwD,UAMpBA,GAAKilC,wBAA0B5oC,IAC1C2oC,EAAMhlC,EAAKilC,yBAEZF,EAAMG,GAAWz1B,IAEhB5G,IAAKm8B,EAAIn8B,KAASk8B,EAAII,aAAe3oC,EAAQ0sB,YAAiB1sB,EAAQ2sB,WAAc,GACpFgM,KAAM6P,EAAI7P,MAAS4P,EAAIK,aAAe5oC,EAAQssB,aAAiBtsB,EAAQusB,YAAc,KAX9Eic,GAeTroC,EAAOkoC,QAENC,UAAW,SAAU9kC,EAAMgD,EAASZ,GACnC,GAAIywB,GAAWl2B,EAAO82B,IAAKzzB,EAAM,WAGf,YAAb6yB,IACJ7yB,EAAK0I,MAAMmqB,SAAW,WAGvB,IAAIwS,GAAU1oC,EAAQqD,GACrBslC,EAAYD,EAAQR,SACpBU,EAAY5oC,EAAO82B,IAAKzzB,EAAM,OAC9BwlC,EAAa7oC,EAAO82B,IAAKzzB,EAAM,QAC/BylC,GAAmC,aAAb5S,GAAwC,UAAbA,IAA0Bl2B,EAAO2K,QAAQ,QAASi+B,EAAWC,IAAe,GAC7Hrd,KAAYud,KAAkBC,EAAQC,CAGlCH,IACJC,EAAcL,EAAQxS,WACtB8S,EAASD,EAAY78B,IACrB+8B,EAAUF,EAAYvQ,OAEtBwQ,EAASlhC,WAAY8gC,IAAe,EACpCK,EAAUnhC,WAAY+gC,IAAgB,GAGlC7oC,EAAOiE,WAAYoC,KACvBA,EAAUA,EAAQ7B,KAAMnB,EAAMoC,EAAGkjC,IAGd,MAAftiC,EAAQ6F,MACZsf,EAAMtf,IAAQ7F,EAAQ6F,IAAMy8B,EAAUz8B,IAAQ88B,GAE1B,MAAhB3iC,EAAQmyB,OACZhN,EAAMgN,KAASnyB,EAAQmyB,KAAOmQ,EAAUnQ,KAASyQ,GAG7C,SAAW5iC,GACfA,EAAQ6iC,MAAM1kC,KAAMnB,EAAMmoB,GAE1Bkd,EAAQ5R,IAAKtL,KAMhBxrB,EAAOsB,GAAG0E,QAETkwB,SAAU,WACT,GAAM5yB,KAAM,GAAZ,CAIA,GAAI6lC,GAAcjB,EACjBkB,GAAiBl9B,IAAK,EAAGssB,KAAM,GAC/Bn1B,EAAOC,KAAM,EAwBd,OArBwC,UAAnCtD,EAAO82B,IAAKzzB,EAAM,YAEtB6kC,EAAS7kC,EAAKilC,yBAGda,EAAe7lC,KAAK6lC,eAGpBjB,EAAS5kC,KAAK4kC,SACRloC,EAAOmK,SAAUg/B,EAAc,GAAK,UACzCC,EAAeD,EAAajB,UAI7BkB,EAAal9B,KAAQlM,EAAO82B,IAAKqS,EAAc,GAAK,kBAAkB,GACtEC,EAAa5Q,MAAQx4B,EAAO82B,IAAKqS,EAAc,GAAK,mBAAmB,KAOvEj9B,IAAMg8B,EAAOh8B,IAAOk9B,EAAal9B,IAAMlM,EAAO82B,IAAKzzB,EAAM,aAAa,GACtEm1B,KAAM0P,EAAO1P,KAAO4Q,EAAa5Q,KAAOx4B,EAAO82B,IAAKzzB,EAAM,cAAc,MAI1E8lC,aAAc,WACb,MAAO7lC,MAAKsC,IAAI,WACf,GAAIujC,GAAe7lC,KAAK6lC,cAAgBtpC,CACxC,OAAQspC,IAAmBnpC,EAAOmK,SAAUg/B,EAAc,SAAsD,WAA1CnpC,EAAO82B,IAAKqS,EAAc,YAC/FA,EAAeA,EAAaA,YAE7B,OAAOA,IAAgBtpC,OAO1BG,EAAO+E,MAAOonB,WAAY,cAAeI,UAAW,eAAgB,SAAU0T,EAAQra,GACrF,GAAI1Z,GAAM,IAAInI,KAAM6hB,EAEpB5lB,GAAOsB,GAAI2+B,GAAW,SAAUnrB,GAC/B,MAAO9U,GAAOqL,OAAQ/H,KAAM,SAAUD,EAAM48B,EAAQnrB,GACnD,GAAIszB,GAAMG,GAAWllC,EAErB,OAAKyR,KAAQvV,EACL6oC,EAAOxiB,IAAQwiB,GAAOA,EAAKxiB,GACjCwiB,EAAIxoC,SAASE,gBAAiBmgC,GAC9B58B,EAAM48B,IAGHmI,EACJA,EAAIiB,SACFn9B,EAAYlM,EAAQooC,GAAMjc,aAApBrX,EACP5I,EAAM4I,EAAM9U,EAAQooC,GAAM7b,aAI3BlpB,EAAM48B,GAAWnrB,EAPlB,IASEmrB,EAAQnrB,EAAKzP,UAAU7B,OAAQ,QAIpC,SAAS+kC,IAAWllC,GACnB,MAAOrD,GAAO2H,SAAUtE,GACvBA,EACkB,IAAlBA,EAAKQ,SACJR,EAAK2P,aAAe3P,EAAKgnB,cACzB,EAGHrqB,EAAO+E,MAAQukC,OAAQ,SAAUC,MAAO,SAAW,SAAUnjC,EAAMzD,GAClE3C,EAAO+E,MAAQ00B,QAAS,QAAUrzB,EAAMktB,QAAS3wB,EAAM,GAAI,QAAUyD,GAAQ,SAAUojC,EAAcC,GAEpGzpC,EAAOsB,GAAImoC,GAAa,SAAUjQ,EAAQnvB,GACzC,GAAIiB,GAAYjG,UAAU7B,SAAYgmC,GAAkC,iBAAXhQ,IAC5DtB,EAAQsR,IAAkBhQ,KAAW,GAAQnvB,KAAU,EAAO,SAAW,SAE1E,OAAOrK,GAAOqL,OAAQ/H,KAAM,SAAUD,EAAMV,EAAM0H,GACjD,GAAIyI,EAEJ,OAAK9S,GAAO2H,SAAUtE,GAIdA,EAAKzD,SAASE,gBAAiB,SAAWsG,GAI3B,IAAlB/C,EAAKQ,UACTiP,EAAMzP,EAAKvD,gBAIJ6G,KAAKiE,IACXvH,EAAK+D,KAAM,SAAWhB,GAAQ0M,EAAK,SAAW1M,GAC9C/C,EAAK+D,KAAM,SAAWhB,GAAQ0M,EAAK,SAAW1M,GAC9C0M,EAAK,SAAW1M,KAIXiE,IAAU9K,EAEhBS,EAAO82B,IAAKzzB,EAAMV,EAAMu1B,GAGxBl4B,EAAO+L,MAAO1I,EAAMV,EAAM0H,EAAO6tB,IAChCv1B,EAAM2I,EAAYkuB,EAASj6B,EAAW+L,EAAW,WAQvDtL,EAAOsB,GAAGooC,KAAO,WAChB,MAAOpmC,MAAKE,QAGbxD,EAAOsB,GAAGqoC,QAAU3pC,EAAOsB,GAAG6tB,QAGP,gBAAXya,SAAuBA,QAAoC,gBAAnBA,QAAOC,QAK1DD,OAAOC,QAAU7pC,GAGjBV,EAAOU,OAASV,EAAOY,EAAIF,EASJ,kBAAX8pC,SAAyBA,OAAOC,KAC3CD,OAAQ,YAAc,WAAc,MAAO9pC,QAIzCV"}
diff --git a/core/vendor/moment/LICENSE b/core/vendor/moment/LICENSE
new file mode 100644
index 00000000000..bd172467a6b
--- /dev/null
+++ b/core/vendor/moment/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 2011-2014 Tim Wood, Iskren Chernev, Moment.js contributors
+
+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.
diff --git a/core/vendor/moment/min/moment-with-locales.js b/core/vendor/moment/min/moment-with-locales.js
new file mode 100644
index 00000000000..23d06ef3551
--- /dev/null
+++ b/core/vendor/moment/min/moment-with-locales.js
@@ -0,0 +1,9156 @@
+//! moment.js
+//! version : 2.8.3
+//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
+//! license : MIT
+//! momentjs.com
+
+(function (undefined) {
+ /************************************
+ Constants
+ ************************************/
+
+ var moment,
+ VERSION = '2.8.3',
+ // the global-scope this is NOT the global object in Node.js
+ globalScope = typeof global !== 'undefined' ? global : this,
+ oldGlobalMoment,
+ round = Math.round,
+ hasOwnProperty = Object.prototype.hasOwnProperty,
+ i,
+
+ YEAR = 0,
+ MONTH = 1,
+ DATE = 2,
+ HOUR = 3,
+ MINUTE = 4,
+ SECOND = 5,
+ MILLISECOND = 6,
+
+ // internal storage for locale config files
+ locales = {},
+
+ // extra moment internal properties (plugins register props here)
+ momentProperties = [],
+
+ // check for nodeJS
+ hasModule = (typeof module !== 'undefined' && module.exports),
+
+ // ASP.NET json date format regex
+ aspNetJsonRegex = /^\/?Date\((\-?\d+)/i,
+ aspNetTimeSpanJsonRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,
+
+ // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
+ // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
+ isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,
+
+ // format tokens
+ formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,
+ localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,
+
+ // parsing token regexes
+ parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99
+ parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999
+ parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 9999
+ parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999
+ parseTokenDigits = /\d+/, // nonzero number of digits
+ parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic.
+ parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
+ parseTokenT = /T/i, // T (ISO separator)
+ parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
+ parseTokenOrdinal = /\d{1,2}/,
+
+ //strict parsing regexes
+ parseTokenOneDigit = /\d/, // 0 - 9
+ parseTokenTwoDigits = /\d\d/, // 00 - 99
+ parseTokenThreeDigits = /\d{3}/, // 000 - 999
+ parseTokenFourDigits = /\d{4}/, // 0000 - 9999
+ parseTokenSixDigits = /[+-]?\d{6}/, // -999,999 - 999,999
+ parseTokenSignedNumber = /[+-]?\d+/, // -inf - inf
+
+ // iso 8601 regex
+ // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
+ isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
+
+ isoFormat = 'YYYY-MM-DDTHH:mm:ssZ',
+
+ isoDates = [
+ ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/],
+ ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/],
+ ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/],
+ ['GGGG-[W]WW', /\d{4}-W\d{2}/],
+ ['YYYY-DDD', /\d{4}-\d{3}/]
+ ],
+
+ // iso time formats and regexes
+ isoTimes = [
+ ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/],
+ ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/],
+ ['HH:mm', /(T| )\d\d:\d\d/],
+ ['HH', /(T| )\d\d/]
+ ],
+
+ // timezone chunker '+10:00' > ['10', '00'] or '-1530' > ['-15', '30']
+ parseTimezoneChunker = /([\+\-]|\d\d)/gi,
+
+ // getter and setter names
+ proxyGettersAndSetters = 'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'),
+ unitMillisecondFactors = {
+ 'Milliseconds' : 1,
+ 'Seconds' : 1e3,
+ 'Minutes' : 6e4,
+ 'Hours' : 36e5,
+ 'Days' : 864e5,
+ 'Months' : 2592e6,
+ 'Years' : 31536e6
+ },
+
+ unitAliases = {
+ ms : 'millisecond',
+ s : 'second',
+ m : 'minute',
+ h : 'hour',
+ d : 'day',
+ D : 'date',
+ w : 'week',
+ W : 'isoWeek',
+ M : 'month',
+ Q : 'quarter',
+ y : 'year',
+ DDD : 'dayOfYear',
+ e : 'weekday',
+ E : 'isoWeekday',
+ gg: 'weekYear',
+ GG: 'isoWeekYear'
+ },
+
+ camelFunctions = {
+ dayofyear : 'dayOfYear',
+ isoweekday : 'isoWeekday',
+ isoweek : 'isoWeek',
+ weekyear : 'weekYear',
+ isoweekyear : 'isoWeekYear'
+ },
+
+ // format function strings
+ formatFunctions = {},
+
+ // default relative time thresholds
+ relativeTimeThresholds = {
+ s: 45, // seconds to minute
+ m: 45, // minutes to hour
+ h: 22, // hours to day
+ d: 26, // days to month
+ M: 11 // months to year
+ },
+
+ // tokens to ordinalize and pad
+ ordinalizeTokens = 'DDD w W M D d'.split(' '),
+ paddedTokens = 'M D H h m s w W'.split(' '),
+
+ formatTokenFunctions = {
+ M : function () {
+ return this.month() + 1;
+ },
+ MMM : function (format) {
+ return this.localeData().monthsShort(this, format);
+ },
+ MMMM : function (format) {
+ return this.localeData().months(this, format);
+ },
+ D : function () {
+ return this.date();
+ },
+ DDD : function () {
+ return this.dayOfYear();
+ },
+ d : function () {
+ return this.day();
+ },
+ dd : function (format) {
+ return this.localeData().weekdaysMin(this, format);
+ },
+ ddd : function (format) {
+ return this.localeData().weekdaysShort(this, format);
+ },
+ dddd : function (format) {
+ return this.localeData().weekdays(this, format);
+ },
+ w : function () {
+ return this.week();
+ },
+ W : function () {
+ return this.isoWeek();
+ },
+ YY : function () {
+ return leftZeroFill(this.year() % 100, 2);
+ },
+ YYYY : function () {
+ return leftZeroFill(this.year(), 4);
+ },
+ YYYYY : function () {
+ return leftZeroFill(this.year(), 5);
+ },
+ YYYYYY : function () {
+ var y = this.year(), sign = y >= 0 ? '+' : '-';
+ return sign + leftZeroFill(Math.abs(y), 6);
+ },
+ gg : function () {
+ return leftZeroFill(this.weekYear() % 100, 2);
+ },
+ gggg : function () {
+ return leftZeroFill(this.weekYear(), 4);
+ },
+ ggggg : function () {
+ return leftZeroFill(this.weekYear(), 5);
+ },
+ GG : function () {
+ return leftZeroFill(this.isoWeekYear() % 100, 2);
+ },
+ GGGG : function () {
+ return leftZeroFill(this.isoWeekYear(), 4);
+ },
+ GGGGG : function () {
+ return leftZeroFill(this.isoWeekYear(), 5);
+ },
+ e : function () {
+ return this.weekday();
+ },
+ E : function () {
+ return this.isoWeekday();
+ },
+ a : function () {
+ return this.localeData().meridiem(this.hours(), this.minutes(), true);
+ },
+ A : function () {
+ return this.localeData().meridiem(this.hours(), this.minutes(), false);
+ },
+ H : function () {
+ return this.hours();
+ },
+ h : function () {
+ return this.hours() % 12 || 12;
+ },
+ m : function () {
+ return this.minutes();
+ },
+ s : function () {
+ return this.seconds();
+ },
+ S : function () {
+ return toInt(this.milliseconds() / 100);
+ },
+ SS : function () {
+ return leftZeroFill(toInt(this.milliseconds() / 10), 2);
+ },
+ SSS : function () {
+ return leftZeroFill(this.milliseconds(), 3);
+ },
+ SSSS : function () {
+ return leftZeroFill(this.milliseconds(), 3);
+ },
+ Z : function () {
+ var a = -this.zone(),
+ b = '+';
+ if (a < 0) {
+ a = -a;
+ b = '-';
+ }
+ return b + leftZeroFill(toInt(a / 60), 2) + ':' + leftZeroFill(toInt(a) % 60, 2);
+ },
+ ZZ : function () {
+ var a = -this.zone(),
+ b = '+';
+ if (a < 0) {
+ a = -a;
+ b = '-';
+ }
+ return b + leftZeroFill(toInt(a / 60), 2) + leftZeroFill(toInt(a) % 60, 2);
+ },
+ z : function () {
+ return this.zoneAbbr();
+ },
+ zz : function () {
+ return this.zoneName();
+ },
+ X : function () {
+ return this.unix();
+ },
+ Q : function () {
+ return this.quarter();
+ }
+ },
+
+ deprecations = {},
+
+ lists = ['months', 'monthsShort', 'weekdays', 'weekdaysShort', 'weekdaysMin'];
+
+ // Pick the first defined of two or three arguments. dfl comes from
+ // default.
+ function dfl(a, b, c) {
+ switch (arguments.length) {
+ case 2: return a != null ? a : b;
+ case 3: return a != null ? a : b != null ? b : c;
+ default: throw new Error('Implement me');
+ }
+ }
+
+ function hasOwnProp(a, b) {
+ return hasOwnProperty.call(a, b);
+ }
+
+ function defaultParsingFlags() {
+ // We need to deep clone this object, and es5 standard is not very
+ // helpful.
+ return {
+ empty : false,
+ unusedTokens : [],
+ unusedInput : [],
+ overflow : -2,
+ charsLeftOver : 0,
+ nullInput : false,
+ invalidMonth : null,
+ invalidFormat : false,
+ userInvalidated : false,
+ iso: false
+ };
+ }
+
+ function printMsg(msg) {
+ if (moment.suppressDeprecationWarnings === false &&
+ typeof console !== 'undefined' && console.warn) {
+ console.warn('Deprecation warning: ' + msg);
+ }
+ }
+
+ function deprecate(msg, fn) {
+ var firstTime = true;
+ return extend(function () {
+ if (firstTime) {
+ printMsg(msg);
+ firstTime = false;
+ }
+ return fn.apply(this, arguments);
+ }, fn);
+ }
+
+ function deprecateSimple(name, msg) {
+ if (!deprecations[name]) {
+ printMsg(msg);
+ deprecations[name] = true;
+ }
+ }
+
+ function padToken(func, count) {
+ return function (a) {
+ return leftZeroFill(func.call(this, a), count);
+ };
+ }
+ function ordinalizeToken(func, period) {
+ return function (a) {
+ return this.localeData().ordinal(func.call(this, a), period);
+ };
+ }
+
+ while (ordinalizeTokens.length) {
+ i = ordinalizeTokens.pop();
+ formatTokenFunctions[i + 'o'] = ordinalizeToken(formatTokenFunctions[i], i);
+ }
+ while (paddedTokens.length) {
+ i = paddedTokens.pop();
+ formatTokenFunctions[i + i] = padToken(formatTokenFunctions[i], 2);
+ }
+ formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3);
+
+
+ /************************************
+ Constructors
+ ************************************/
+
+ function Locale() {
+ }
+
+ // Moment prototype object
+ function Moment(config, skipOverflow) {
+ if (skipOverflow !== false) {
+ checkOverflow(config);
+ }
+ copyConfig(this, config);
+ this._d = new Date(+config._d);
+ }
+
+ // Duration Constructor
+ function Duration(duration) {
+ var normalizedInput = normalizeObjectUnits(duration),
+ years = normalizedInput.year || 0,
+ quarters = normalizedInput.quarter || 0,
+ months = normalizedInput.month || 0,
+ weeks = normalizedInput.week || 0,
+ days = normalizedInput.day || 0,
+ hours = normalizedInput.hour || 0,
+ minutes = normalizedInput.minute || 0,
+ seconds = normalizedInput.second || 0,
+ milliseconds = normalizedInput.millisecond || 0;
+
+ // representation for dateAddRemove
+ this._milliseconds = +milliseconds +
+ seconds * 1e3 + // 1000
+ minutes * 6e4 + // 1000 * 60
+ hours * 36e5; // 1000 * 60 * 60
+ // Because of dateAddRemove treats 24 hours as different from a
+ // day when working around DST, we need to store them separately
+ this._days = +days +
+ weeks * 7;
+ // It is impossible translate months into days without knowing
+ // which months you are are talking about, so we have to store
+ // it separately.
+ this._months = +months +
+ quarters * 3 +
+ years * 12;
+
+ this._data = {};
+
+ this._locale = moment.localeData();
+
+ this._bubble();
+ }
+
+ /************************************
+ Helpers
+ ************************************/
+
+
+ function extend(a, b) {
+ for (var i in b) {
+ if (hasOwnProp(b, i)) {
+ a[i] = b[i];
+ }
+ }
+
+ if (hasOwnProp(b, 'toString')) {
+ a.toString = b.toString;
+ }
+
+ if (hasOwnProp(b, 'valueOf')) {
+ a.valueOf = b.valueOf;
+ }
+
+ return a;
+ }
+
+ function copyConfig(to, from) {
+ var i, prop, val;
+
+ if (typeof from._isAMomentObject !== 'undefined') {
+ to._isAMomentObject = from._isAMomentObject;
+ }
+ if (typeof from._i !== 'undefined') {
+ to._i = from._i;
+ }
+ if (typeof from._f !== 'undefined') {
+ to._f = from._f;
+ }
+ if (typeof from._l !== 'undefined') {
+ to._l = from._l;
+ }
+ if (typeof from._strict !== 'undefined') {
+ to._strict = from._strict;
+ }
+ if (typeof from._tzm !== 'undefined') {
+ to._tzm = from._tzm;
+ }
+ if (typeof from._isUTC !== 'undefined') {
+ to._isUTC = from._isUTC;
+ }
+ if (typeof from._offset !== 'undefined') {
+ to._offset = from._offset;
+ }
+ if (typeof from._pf !== 'undefined') {
+ to._pf = from._pf;
+ }
+ if (typeof from._locale !== 'undefined') {
+ to._locale = from._locale;
+ }
+
+ if (momentProperties.length > 0) {
+ for (i in momentProperties) {
+ prop = momentProperties[i];
+ val = from[prop];
+ if (typeof val !== 'undefined') {
+ to[prop] = val;
+ }
+ }
+ }
+
+ return to;
+ }
+
+ function absRound(number) {
+ if (number < 0) {
+ return Math.ceil(number);
+ } else {
+ return Math.floor(number);
+ }
+ }
+
+ // left zero fill a number
+ // see http://jsperf.com/left-zero-filling for performance comparison
+ function leftZeroFill(number, targetLength, forceSign) {
+ var output = '' + Math.abs(number),
+ sign = number >= 0;
+
+ while (output.length < targetLength) {
+ output = '0' + output;
+ }
+ return (sign ? (forceSign ? '+' : '') : '-') + output;
+ }
+
+ function positiveMomentsDifference(base, other) {
+ var res = {milliseconds: 0, months: 0};
+
+ res.months = other.month() - base.month() +
+ (other.year() - base.year()) * 12;
+ if (base.clone().add(res.months, 'M').isAfter(other)) {
+ --res.months;
+ }
+
+ res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
+
+ return res;
+ }
+
+ function momentsDifference(base, other) {
+ var res;
+ other = makeAs(other, base);
+ if (base.isBefore(other)) {
+ res = positiveMomentsDifference(base, other);
+ } else {
+ res = positiveMomentsDifference(other, base);
+ res.milliseconds = -res.milliseconds;
+ res.months = -res.months;
+ }
+
+ return res;
+ }
+
+ // TODO: remove 'name' arg after deprecation is removed
+ function createAdder(direction, name) {
+ return function (val, period) {
+ var dur, tmp;
+ //invert the arguments, but complain about it
+ if (period !== null && !isNaN(+period)) {
+ deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).');
+ tmp = val; val = period; period = tmp;
+ }
+
+ val = typeof val === 'string' ? +val : val;
+ dur = moment.duration(val, period);
+ addOrSubtractDurationFromMoment(this, dur, direction);
+ return this;
+ };
+ }
+
+ function addOrSubtractDurationFromMoment(mom, duration, isAdding, updateOffset) {
+ var milliseconds = duration._milliseconds,
+ days = duration._days,
+ months = duration._months;
+ updateOffset = updateOffset == null ? true : updateOffset;
+
+ if (milliseconds) {
+ mom._d.setTime(+mom._d + milliseconds * isAdding);
+ }
+ if (days) {
+ rawSetter(mom, 'Date', rawGetter(mom, 'Date') + days * isAdding);
+ }
+ if (months) {
+ rawMonthSetter(mom, rawGetter(mom, 'Month') + months * isAdding);
+ }
+ if (updateOffset) {
+ moment.updateOffset(mom, days || months);
+ }
+ }
+
+ // check if is an array
+ function isArray(input) {
+ return Object.prototype.toString.call(input) === '[object Array]';
+ }
+
+ function isDate(input) {
+ return Object.prototype.toString.call(input) === '[object Date]' ||
+ input instanceof Date;
+ }
+
+ // compare two arrays, return the number of differences
+ function compareArrays(array1, array2, dontConvert) {
+ var len = Math.min(array1.length, array2.length),
+ lengthDiff = Math.abs(array1.length - array2.length),
+ diffs = 0,
+ i;
+ for (i = 0; i < len; i++) {
+ if ((dontConvert && array1[i] !== array2[i]) ||
+ (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
+ diffs++;
+ }
+ }
+ return diffs + lengthDiff;
+ }
+
+ function normalizeUnits(units) {
+ if (units) {
+ var lowered = units.toLowerCase().replace(/(.)s$/, '$1');
+ units = unitAliases[units] || camelFunctions[lowered] || lowered;
+ }
+ return units;
+ }
+
+ function normalizeObjectUnits(inputObject) {
+ var normalizedInput = {},
+ normalizedProp,
+ prop;
+
+ for (prop in inputObject) {
+ if (hasOwnProp(inputObject, prop)) {
+ normalizedProp = normalizeUnits(prop);
+ if (normalizedProp) {
+ normalizedInput[normalizedProp] = inputObject[prop];
+ }
+ }
+ }
+
+ return normalizedInput;
+ }
+
+ function makeList(field) {
+ var count, setter;
+
+ if (field.indexOf('week') === 0) {
+ count = 7;
+ setter = 'day';
+ }
+ else if (field.indexOf('month') === 0) {
+ count = 12;
+ setter = 'month';
+ }
+ else {
+ return;
+ }
+
+ moment[field] = function (format, index) {
+ var i, getter,
+ method = moment._locale[field],
+ results = [];
+
+ if (typeof format === 'number') {
+ index = format;
+ format = undefined;
+ }
+
+ getter = function (i) {
+ var m = moment().utc().set(setter, i);
+ return method.call(moment._locale, m, format || '');
+ };
+
+ if (index != null) {
+ return getter(index);
+ }
+ else {
+ for (i = 0; i < count; i++) {
+ results.push(getter(i));
+ }
+ return results;
+ }
+ };
+ }
+
+ function toInt(argumentForCoercion) {
+ var coercedNumber = +argumentForCoercion,
+ value = 0;
+
+ if (coercedNumber !== 0 && isFinite(coercedNumber)) {
+ if (coercedNumber >= 0) {
+ value = Math.floor(coercedNumber);
+ } else {
+ value = Math.ceil(coercedNumber);
+ }
+ }
+
+ return value;
+ }
+
+ function daysInMonth(year, month) {
+ return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
+ }
+
+ function weeksInYear(year, dow, doy) {
+ return weekOfYear(moment([year, 11, 31 + dow - doy]), dow, doy).week;
+ }
+
+ function daysInYear(year) {
+ return isLeapYear(year) ? 366 : 365;
+ }
+
+ function isLeapYear(year) {
+ return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
+ }
+
+ function checkOverflow(m) {
+ var overflow;
+ if (m._a && m._pf.overflow === -2) {
+ overflow =
+ m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH :
+ m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE :
+ m._a[HOUR] < 0 || m._a[HOUR] > 23 ? HOUR :
+ m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE :
+ m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND :
+ m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND :
+ -1;
+
+ if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
+ overflow = DATE;
+ }
+
+ m._pf.overflow = overflow;
+ }
+ }
+
+ function isValid(m) {
+ if (m._isValid == null) {
+ m._isValid = !isNaN(m._d.getTime()) &&
+ m._pf.overflow < 0 &&
+ !m._pf.empty &&
+ !m._pf.invalidMonth &&
+ !m._pf.nullInput &&
+ !m._pf.invalidFormat &&
+ !m._pf.userInvalidated;
+
+ if (m._strict) {
+ m._isValid = m._isValid &&
+ m._pf.charsLeftOver === 0 &&
+ m._pf.unusedTokens.length === 0;
+ }
+ }
+ return m._isValid;
+ }
+
+ function normalizeLocale(key) {
+ return key ? key.toLowerCase().replace('_', '-') : key;
+ }
+
+ // pick the locale from the array
+ // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
+ // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
+ function chooseLocale(names) {
+ var i = 0, j, next, locale, split;
+
+ while (i < names.length) {
+ split = normalizeLocale(names[i]).split('-');
+ j = split.length;
+ next = normalizeLocale(names[i + 1]);
+ next = next ? next.split('-') : null;
+ while (j > 0) {
+ locale = loadLocale(split.slice(0, j).join('-'));
+ if (locale) {
+ return locale;
+ }
+ if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
+ //the next array item is better than a shallower substring of this one
+ break;
+ }
+ j--;
+ }
+ i++;
+ }
+ return null;
+ }
+
+ function loadLocale(name) {
+ var oldLocale = null;
+ if (!locales[name] && hasModule) {
+ try {
+ oldLocale = moment.locale();
+ require('./locale/' + name);
+ // because defineLocale currently also sets the global locale, we want to undo that for lazy loaded locales
+ moment.locale(oldLocale);
+ } catch (e) { }
+ }
+ return locales[name];
+ }
+
+ // Return a moment from input, that is local/utc/zone equivalent to model.
+ function makeAs(input, model) {
+ return model._isUTC ? moment(input).zone(model._offset || 0) :
+ moment(input).local();
+ }
+
+ /************************************
+ Locale
+ ************************************/
+
+
+ extend(Locale.prototype, {
+
+ set : function (config) {
+ var prop, i;
+ for (i in config) {
+ prop = config[i];
+ if (typeof prop === 'function') {
+ this[i] = prop;
+ } else {
+ this['_' + i] = prop;
+ }
+ }
+ },
+
+ _months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ months : function (m) {
+ return this._months[m.month()];
+ },
+
+ _monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ monthsShort : function (m) {
+ return this._monthsShort[m.month()];
+ },
+
+ monthsParse : function (monthName) {
+ var i, mom, regex;
+
+ if (!this._monthsParse) {
+ this._monthsParse = [];
+ }
+
+ for (i = 0; i < 12; i++) {
+ // make the regex if we don't have it already
+ if (!this._monthsParse[i]) {
+ mom = moment.utc([2000, i]);
+ regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
+ this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
+ }
+ // test the regex
+ if (this._monthsParse[i].test(monthName)) {
+ return i;
+ }
+ }
+ },
+
+ _weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdays : function (m) {
+ return this._weekdays[m.day()];
+ },
+
+ _weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysShort : function (m) {
+ return this._weekdaysShort[m.day()];
+ },
+
+ _weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ weekdaysMin : function (m) {
+ return this._weekdaysMin[m.day()];
+ },
+
+ weekdaysParse : function (weekdayName) {
+ var i, mom, regex;
+
+ if (!this._weekdaysParse) {
+ this._weekdaysParse = [];
+ }
+
+ for (i = 0; i < 7; i++) {
+ // make the regex if we don't have it already
+ if (!this._weekdaysParse[i]) {
+ mom = moment([2000, 1]).day(i);
+ regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
+ this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
+ }
+ // test the regex
+ if (this._weekdaysParse[i].test(weekdayName)) {
+ return i;
+ }
+ }
+ },
+
+ _longDateFormat : {
+ LT : 'h:mm A',
+ L : 'MM/DD/YYYY',
+ LL : 'MMMM D, YYYY',
+ LLL : 'MMMM D, YYYY LT',
+ LLLL : 'dddd, MMMM D, YYYY LT'
+ },
+ longDateFormat : function (key) {
+ var output = this._longDateFormat[key];
+ if (!output && this._longDateFormat[key.toUpperCase()]) {
+ output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) {
+ return val.slice(1);
+ });
+ this._longDateFormat[key] = output;
+ }
+ return output;
+ },
+
+ isPM : function (input) {
+ // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
+ // Using charAt should be more compatible.
+ return ((input + '').toLowerCase().charAt(0) === 'p');
+ },
+
+ _meridiemParse : /[ap]\.?m?\.?/i,
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'pm' : 'PM';
+ } else {
+ return isLower ? 'am' : 'AM';
+ }
+ },
+
+ _calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ calendar : function (key, mom) {
+ var output = this._calendar[key];
+ return typeof output === 'function' ? output.apply(mom) : output;
+ },
+
+ _relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+
+ relativeTime : function (number, withoutSuffix, string, isFuture) {
+ var output = this._relativeTime[string];
+ return (typeof output === 'function') ?
+ output(number, withoutSuffix, string, isFuture) :
+ output.replace(/%d/i, number);
+ },
+
+ pastFuture : function (diff, output) {
+ var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
+ return typeof format === 'function' ? format(output) : format.replace(/%s/i, output);
+ },
+
+ ordinal : function (number) {
+ return this._ordinal.replace('%d', number);
+ },
+ _ordinal : '%d',
+
+ preparse : function (string) {
+ return string;
+ },
+
+ postformat : function (string) {
+ return string;
+ },
+
+ week : function (mom) {
+ return weekOfYear(mom, this._week.dow, this._week.doy).week;
+ },
+
+ _week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ },
+
+ _invalidDate: 'Invalid date',
+ invalidDate: function () {
+ return this._invalidDate;
+ }
+ });
+
+ /************************************
+ Formatting
+ ************************************/
+
+
+ function removeFormattingTokens(input) {
+ if (input.match(/\[[\s\S]/)) {
+ return input.replace(/^\[|\]$/g, '');
+ }
+ return input.replace(/\\/g, '');
+ }
+
+ function makeFormatFunction(format) {
+ var array = format.match(formattingTokens), i, length;
+
+ for (i = 0, length = array.length; i < length; i++) {
+ if (formatTokenFunctions[array[i]]) {
+ array[i] = formatTokenFunctions[array[i]];
+ } else {
+ array[i] = removeFormattingTokens(array[i]);
+ }
+ }
+
+ return function (mom) {
+ var output = '';
+ for (i = 0; i < length; i++) {
+ output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];
+ }
+ return output;
+ };
+ }
+
+ // format date using native date object
+ function formatMoment(m, format) {
+ if (!m.isValid()) {
+ return m.localeData().invalidDate();
+ }
+
+ format = expandFormat(format, m.localeData());
+
+ if (!formatFunctions[format]) {
+ formatFunctions[format] = makeFormatFunction(format);
+ }
+
+ return formatFunctions[format](m);
+ }
+
+ function expandFormat(format, locale) {
+ var i = 5;
+
+ function replaceLongDateFormatTokens(input) {
+ return locale.longDateFormat(input) || input;
+ }
+
+ localFormattingTokens.lastIndex = 0;
+ while (i >= 0 && localFormattingTokens.test(format)) {
+ format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
+ localFormattingTokens.lastIndex = 0;
+ i -= 1;
+ }
+
+ return format;
+ }
+
+
+ /************************************
+ Parsing
+ ************************************/
+
+
+ // get the regex to find the next token
+ function getParseRegexForToken(token, config) {
+ var a, strict = config._strict;
+ switch (token) {
+ case 'Q':
+ return parseTokenOneDigit;
+ case 'DDDD':
+ return parseTokenThreeDigits;
+ case 'YYYY':
+ case 'GGGG':
+ case 'gggg':
+ return strict ? parseTokenFourDigits : parseTokenOneToFourDigits;
+ case 'Y':
+ case 'G':
+ case 'g':
+ return parseTokenSignedNumber;
+ case 'YYYYYY':
+ case 'YYYYY':
+ case 'GGGGG':
+ case 'ggggg':
+ return strict ? parseTokenSixDigits : parseTokenOneToSixDigits;
+ case 'S':
+ if (strict) {
+ return parseTokenOneDigit;
+ }
+ /* falls through */
+ case 'SS':
+ if (strict) {
+ return parseTokenTwoDigits;
+ }
+ /* falls through */
+ case 'SSS':
+ if (strict) {
+ return parseTokenThreeDigits;
+ }
+ /* falls through */
+ case 'DDD':
+ return parseTokenOneToThreeDigits;
+ case 'MMM':
+ case 'MMMM':
+ case 'dd':
+ case 'ddd':
+ case 'dddd':
+ return parseTokenWord;
+ case 'a':
+ case 'A':
+ return config._locale._meridiemParse;
+ case 'X':
+ return parseTokenTimestampMs;
+ case 'Z':
+ case 'ZZ':
+ return parseTokenTimezone;
+ case 'T':
+ return parseTokenT;
+ case 'SSSS':
+ return parseTokenDigits;
+ case 'MM':
+ case 'DD':
+ case 'YY':
+ case 'GG':
+ case 'gg':
+ case 'HH':
+ case 'hh':
+ case 'mm':
+ case 'ss':
+ case 'ww':
+ case 'WW':
+ return strict ? parseTokenTwoDigits : parseTokenOneOrTwoDigits;
+ case 'M':
+ case 'D':
+ case 'd':
+ case 'H':
+ case 'h':
+ case 'm':
+ case 's':
+ case 'w':
+ case 'W':
+ case 'e':
+ case 'E':
+ return parseTokenOneOrTwoDigits;
+ case 'Do':
+ return parseTokenOrdinal;
+ default :
+ a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i'));
+ return a;
+ }
+ }
+
+ function timezoneMinutesFromString(string) {
+ string = string || '';
+ var possibleTzMatches = (string.match(parseTokenTimezone) || []),
+ tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [],
+ parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0],
+ minutes = +(parts[1] * 60) + toInt(parts[2]);
+
+ return parts[0] === '+' ? -minutes : minutes;
+ }
+
+ // function to convert string input to date
+ function addTimeToArrayFromToken(token, input, config) {
+ var a, datePartArray = config._a;
+
+ switch (token) {
+ // QUARTER
+ case 'Q':
+ if (input != null) {
+ datePartArray[MONTH] = (toInt(input) - 1) * 3;
+ }
+ break;
+ // MONTH
+ case 'M' : // fall through to MM
+ case 'MM' :
+ if (input != null) {
+ datePartArray[MONTH] = toInt(input) - 1;
+ }
+ break;
+ case 'MMM' : // fall through to MMMM
+ case 'MMMM' :
+ a = config._locale.monthsParse(input);
+ // if we didn't find a month name, mark the date as invalid.
+ if (a != null) {
+ datePartArray[MONTH] = a;
+ } else {
+ config._pf.invalidMonth = input;
+ }
+ break;
+ // DAY OF MONTH
+ case 'D' : // fall through to DD
+ case 'DD' :
+ if (input != null) {
+ datePartArray[DATE] = toInt(input);
+ }
+ break;
+ case 'Do' :
+ if (input != null) {
+ datePartArray[DATE] = toInt(parseInt(input, 10));
+ }
+ break;
+ // DAY OF YEAR
+ case 'DDD' : // fall through to DDDD
+ case 'DDDD' :
+ if (input != null) {
+ config._dayOfYear = toInt(input);
+ }
+
+ break;
+ // YEAR
+ case 'YY' :
+ datePartArray[YEAR] = moment.parseTwoDigitYear(input);
+ break;
+ case 'YYYY' :
+ case 'YYYYY' :
+ case 'YYYYYY' :
+ datePartArray[YEAR] = toInt(input);
+ break;
+ // AM / PM
+ case 'a' : // fall through to A
+ case 'A' :
+ config._isPm = config._locale.isPM(input);
+ break;
+ // 24 HOUR
+ case 'H' : // fall through to hh
+ case 'HH' : // fall through to hh
+ case 'h' : // fall through to hh
+ case 'hh' :
+ datePartArray[HOUR] = toInt(input);
+ break;
+ // MINUTE
+ case 'm' : // fall through to mm
+ case 'mm' :
+ datePartArray[MINUTE] = toInt(input);
+ break;
+ // SECOND
+ case 's' : // fall through to ss
+ case 'ss' :
+ datePartArray[SECOND] = toInt(input);
+ break;
+ // MILLISECOND
+ case 'S' :
+ case 'SS' :
+ case 'SSS' :
+ case 'SSSS' :
+ datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000);
+ break;
+ // UNIX TIMESTAMP WITH MS
+ case 'X':
+ config._d = new Date(parseFloat(input) * 1000);
+ break;
+ // TIMEZONE
+ case 'Z' : // fall through to ZZ
+ case 'ZZ' :
+ config._useUTC = true;
+ config._tzm = timezoneMinutesFromString(input);
+ break;
+ // WEEKDAY - human
+ case 'dd':
+ case 'ddd':
+ case 'dddd':
+ a = config._locale.weekdaysParse(input);
+ // if we didn't get a weekday name, mark the date as invalid
+ if (a != null) {
+ config._w = config._w || {};
+ config._w['d'] = a;
+ } else {
+ config._pf.invalidWeekday = input;
+ }
+ break;
+ // WEEK, WEEK DAY - numeric
+ case 'w':
+ case 'ww':
+ case 'W':
+ case 'WW':
+ case 'd':
+ case 'e':
+ case 'E':
+ token = token.substr(0, 1);
+ /* falls through */
+ case 'gggg':
+ case 'GGGG':
+ case 'GGGGG':
+ token = token.substr(0, 2);
+ if (input) {
+ config._w = config._w || {};
+ config._w[token] = toInt(input);
+ }
+ break;
+ case 'gg':
+ case 'GG':
+ config._w = config._w || {};
+ config._w[token] = moment.parseTwoDigitYear(input);
+ }
+ }
+
+ function dayOfYearFromWeekInfo(config) {
+ var w, weekYear, week, weekday, dow, doy, temp;
+
+ w = config._w;
+ if (w.GG != null || w.W != null || w.E != null) {
+ dow = 1;
+ doy = 4;
+
+ // TODO: We need to take the current isoWeekYear, but that depends on
+ // how we interpret now (local, utc, fixed offset). So create
+ // a now version of current config (take local/utc/offset flags, and
+ // create now).
+ weekYear = dfl(w.GG, config._a[YEAR], weekOfYear(moment(), 1, 4).year);
+ week = dfl(w.W, 1);
+ weekday = dfl(w.E, 1);
+ } else {
+ dow = config._locale._week.dow;
+ doy = config._locale._week.doy;
+
+ weekYear = dfl(w.gg, config._a[YEAR], weekOfYear(moment(), dow, doy).year);
+ week = dfl(w.w, 1);
+
+ if (w.d != null) {
+ // weekday -- low day numbers are considered next week
+ weekday = w.d;
+ if (weekday < dow) {
+ ++week;
+ }
+ } else if (w.e != null) {
+ // local weekday -- counting starts from begining of week
+ weekday = w.e + dow;
+ } else {
+ // default to begining of week
+ weekday = dow;
+ }
+ }
+ temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow);
+
+ config._a[YEAR] = temp.year;
+ config._dayOfYear = temp.dayOfYear;
+ }
+
+ // convert an array to a date.
+ // the array should mirror the parameters below
+ // note: all values past the year are optional and will default to the lowest possible value.
+ // [year, month, day , hour, minute, second, millisecond]
+ function dateFromConfig(config) {
+ var i, date, input = [], currentDate, yearToUse;
+
+ if (config._d) {
+ return;
+ }
+
+ currentDate = currentDateArray(config);
+
+ //compute day of the year from weeks and weekdays
+ if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
+ dayOfYearFromWeekInfo(config);
+ }
+
+ //if the day of the year is set, figure out what it is
+ if (config._dayOfYear) {
+ yearToUse = dfl(config._a[YEAR], currentDate[YEAR]);
+
+ if (config._dayOfYear > daysInYear(yearToUse)) {
+ config._pf._overflowDayOfYear = true;
+ }
+
+ date = makeUTCDate(yearToUse, 0, config._dayOfYear);
+ config._a[MONTH] = date.getUTCMonth();
+ config._a[DATE] = date.getUTCDate();
+ }
+
+ // Default to current date.
+ // * if no year, month, day of month are given, default to today
+ // * if day of month is given, default month and year
+ // * if month is given, default only year
+ // * if year is given, don't default anything
+ for (i = 0; i < 3 && config._a[i] == null; ++i) {
+ config._a[i] = input[i] = currentDate[i];
+ }
+
+ // Zero out whatever was not defaulted, including time
+ for (; i < 7; i++) {
+ config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
+ }
+
+ config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input);
+ // Apply timezone offset from input. The actual zone can be changed
+ // with parseZone.
+ if (config._tzm != null) {
+ config._d.setUTCMinutes(config._d.getUTCMinutes() + config._tzm);
+ }
+ }
+
+ function dateFromObject(config) {
+ var normalizedInput;
+
+ if (config._d) {
+ return;
+ }
+
+ normalizedInput = normalizeObjectUnits(config._i);
+ config._a = [
+ normalizedInput.year,
+ normalizedInput.month,
+ normalizedInput.day,
+ normalizedInput.hour,
+ normalizedInput.minute,
+ normalizedInput.second,
+ normalizedInput.millisecond
+ ];
+
+ dateFromConfig(config);
+ }
+
+ function currentDateArray(config) {
+ var now = new Date();
+ if (config._useUTC) {
+ return [
+ now.getUTCFullYear(),
+ now.getUTCMonth(),
+ now.getUTCDate()
+ ];
+ } else {
+ return [now.getFullYear(), now.getMonth(), now.getDate()];
+ }
+ }
+
+ // date from string and format string
+ function makeDateFromStringAndFormat(config) {
+ if (config._f === moment.ISO_8601) {
+ parseISO(config);
+ return;
+ }
+
+ config._a = [];
+ config._pf.empty = true;
+
+ // This array is used to make a Date, either with `new Date` or `Date.UTC`
+ var string = '' + config._i,
+ i, parsedInput, tokens, token, skipped,
+ stringLength = string.length,
+ totalParsedInputLength = 0;
+
+ tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
+
+ for (i = 0; i < tokens.length; i++) {
+ token = tokens[i];
+ parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
+ if (parsedInput) {
+ skipped = string.substr(0, string.indexOf(parsedInput));
+ if (skipped.length > 0) {
+ config._pf.unusedInput.push(skipped);
+ }
+ string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
+ totalParsedInputLength += parsedInput.length;
+ }
+ // don't parse if it's not a known token
+ if (formatTokenFunctions[token]) {
+ if (parsedInput) {
+ config._pf.empty = false;
+ }
+ else {
+ config._pf.unusedTokens.push(token);
+ }
+ addTimeToArrayFromToken(token, parsedInput, config);
+ }
+ else if (config._strict && !parsedInput) {
+ config._pf.unusedTokens.push(token);
+ }
+ }
+
+ // add remaining unparsed input length to the string
+ config._pf.charsLeftOver = stringLength - totalParsedInputLength;
+ if (string.length > 0) {
+ config._pf.unusedInput.push(string);
+ }
+
+ // handle am pm
+ if (config._isPm && config._a[HOUR] < 12) {
+ config._a[HOUR] += 12;
+ }
+ // if is 12 am, change hours to 0
+ if (config._isPm === false && config._a[HOUR] === 12) {
+ config._a[HOUR] = 0;
+ }
+
+ dateFromConfig(config);
+ checkOverflow(config);
+ }
+
+ function unescapeFormat(s) {
+ return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
+ return p1 || p2 || p3 || p4;
+ });
+ }
+
+ // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
+ function regexpEscape(s) {
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+ }
+
+ // date from string and array of format strings
+ function makeDateFromStringAndArray(config) {
+ var tempConfig,
+ bestMoment,
+
+ scoreToBeat,
+ i,
+ currentScore;
+
+ if (config._f.length === 0) {
+ config._pf.invalidFormat = true;
+ config._d = new Date(NaN);
+ return;
+ }
+
+ for (i = 0; i < config._f.length; i++) {
+ currentScore = 0;
+ tempConfig = copyConfig({}, config);
+ if (config._useUTC != null) {
+ tempConfig._useUTC = config._useUTC;
+ }
+ tempConfig._pf = defaultParsingFlags();
+ tempConfig._f = config._f[i];
+ makeDateFromStringAndFormat(tempConfig);
+
+ if (!isValid(tempConfig)) {
+ continue;
+ }
+
+ // if there is any input that was not parsed add a penalty for that format
+ currentScore += tempConfig._pf.charsLeftOver;
+
+ //or tokens
+ currentScore += tempConfig._pf.unusedTokens.length * 10;
+
+ tempConfig._pf.score = currentScore;
+
+ if (scoreToBeat == null || currentScore < scoreToBeat) {
+ scoreToBeat = currentScore;
+ bestMoment = tempConfig;
+ }
+ }
+
+ extend(config, bestMoment || tempConfig);
+ }
+
+ // date from iso format
+ function parseISO(config) {
+ var i, l,
+ string = config._i,
+ match = isoRegex.exec(string);
+
+ if (match) {
+ config._pf.iso = true;
+ for (i = 0, l = isoDates.length; i < l; i++) {
+ if (isoDates[i][1].exec(string)) {
+ // match[5] should be 'T' or undefined
+ config._f = isoDates[i][0] + (match[6] || ' ');
+ break;
+ }
+ }
+ for (i = 0, l = isoTimes.length; i < l; i++) {
+ if (isoTimes[i][1].exec(string)) {
+ config._f += isoTimes[i][0];
+ break;
+ }
+ }
+ if (string.match(parseTokenTimezone)) {
+ config._f += 'Z';
+ }
+ makeDateFromStringAndFormat(config);
+ } else {
+ config._isValid = false;
+ }
+ }
+
+ // date from iso format or fallback
+ function makeDateFromString(config) {
+ parseISO(config);
+ if (config._isValid === false) {
+ delete config._isValid;
+ moment.createFromInputFallback(config);
+ }
+ }
+
+ function map(arr, fn) {
+ var res = [], i;
+ for (i = 0; i < arr.length; ++i) {
+ res.push(fn(arr[i], i));
+ }
+ return res;
+ }
+
+ function makeDateFromInput(config) {
+ var input = config._i, matched;
+ if (input === undefined) {
+ config._d = new Date();
+ } else if (isDate(input)) {
+ config._d = new Date(+input);
+ } else if ((matched = aspNetJsonRegex.exec(input)) !== null) {
+ config._d = new Date(+matched[1]);
+ } else if (typeof input === 'string') {
+ makeDateFromString(config);
+ } else if (isArray(input)) {
+ config._a = map(input.slice(0), function (obj) {
+ return parseInt(obj, 10);
+ });
+ dateFromConfig(config);
+ } else if (typeof(input) === 'object') {
+ dateFromObject(config);
+ } else if (typeof(input) === 'number') {
+ // from milliseconds
+ config._d = new Date(input);
+ } else {
+ moment.createFromInputFallback(config);
+ }
+ }
+
+ function makeDate(y, m, d, h, M, s, ms) {
+ //can't just apply() to create a date:
+ //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
+ var date = new Date(y, m, d, h, M, s, ms);
+
+ //the date constructor doesn't accept years < 1970
+ if (y < 1970) {
+ date.setFullYear(y);
+ }
+ return date;
+ }
+
+ function makeUTCDate(y) {
+ var date = new Date(Date.UTC.apply(null, arguments));
+ if (y < 1970) {
+ date.setUTCFullYear(y);
+ }
+ return date;
+ }
+
+ function parseWeekday(input, locale) {
+ if (typeof input === 'string') {
+ if (!isNaN(input)) {
+ input = parseInt(input, 10);
+ }
+ else {
+ input = locale.weekdaysParse(input);
+ if (typeof input !== 'number') {
+ return null;
+ }
+ }
+ }
+ return input;
+ }
+
+ /************************************
+ Relative Time
+ ************************************/
+
+
+ // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
+ function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
+ return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
+ }
+
+ function relativeTime(posNegDuration, withoutSuffix, locale) {
+ var duration = moment.duration(posNegDuration).abs(),
+ seconds = round(duration.as('s')),
+ minutes = round(duration.as('m')),
+ hours = round(duration.as('h')),
+ days = round(duration.as('d')),
+ months = round(duration.as('M')),
+ years = round(duration.as('y')),
+
+ args = seconds < relativeTimeThresholds.s && ['s', seconds] ||
+ minutes === 1 && ['m'] ||
+ minutes < relativeTimeThresholds.m && ['mm', minutes] ||
+ hours === 1 && ['h'] ||
+ hours < relativeTimeThresholds.h && ['hh', hours] ||
+ days === 1 && ['d'] ||
+ days < relativeTimeThresholds.d && ['dd', days] ||
+ months === 1 && ['M'] ||
+ months < relativeTimeThresholds.M && ['MM', months] ||
+ years === 1 && ['y'] || ['yy', years];
+
+ args[2] = withoutSuffix;
+ args[3] = +posNegDuration > 0;
+ args[4] = locale;
+ return substituteTimeAgo.apply({}, args);
+ }
+
+
+ /************************************
+ Week of Year
+ ************************************/
+
+
+ // firstDayOfWeek 0 = sun, 6 = sat
+ // the day of the week that starts the week
+ // (usually sunday or monday)
+ // firstDayOfWeekOfYear 0 = sun, 6 = sat
+ // the first week is the week that contains the first
+ // of this day of the week
+ // (eg. ISO weeks use thursday (4))
+ function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) {
+ var end = firstDayOfWeekOfYear - firstDayOfWeek,
+ daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(),
+ adjustedMoment;
+
+
+ if (daysToDayOfWeek > end) {
+ daysToDayOfWeek -= 7;
+ }
+
+ if (daysToDayOfWeek < end - 7) {
+ daysToDayOfWeek += 7;
+ }
+
+ adjustedMoment = moment(mom).add(daysToDayOfWeek, 'd');
+ return {
+ week: Math.ceil(adjustedMoment.dayOfYear() / 7),
+ year: adjustedMoment.year()
+ };
+ }
+
+ //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
+ function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {
+ var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear;
+
+ d = d === 0 ? 7 : d;
+ weekday = weekday != null ? weekday : firstDayOfWeek;
+ daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0);
+ dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1;
+
+ return {
+ year: dayOfYear > 0 ? year : year - 1,
+ dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear
+ };
+ }
+
+ /************************************
+ Top Level Functions
+ ************************************/
+
+ function makeMoment(config) {
+ var input = config._i,
+ format = config._f;
+
+ config._locale = config._locale || moment.localeData(config._l);
+
+ if (input === null || (format === undefined && input === '')) {
+ return moment.invalid({nullInput: true});
+ }
+
+ if (typeof input === 'string') {
+ config._i = input = config._locale.preparse(input);
+ }
+
+ if (moment.isMoment(input)) {
+ return new Moment(input, true);
+ } else if (format) {
+ if (isArray(format)) {
+ makeDateFromStringAndArray(config);
+ } else {
+ makeDateFromStringAndFormat(config);
+ }
+ } else {
+ makeDateFromInput(config);
+ }
+
+ return new Moment(config);
+ }
+
+ moment = function (input, format, locale, strict) {
+ var c;
+
+ if (typeof(locale) === 'boolean') {
+ strict = locale;
+ locale = undefined;
+ }
+ // object construction must be done this way.
+ // https://github.com/moment/moment/issues/1423
+ c = {};
+ c._isAMomentObject = true;
+ c._i = input;
+ c._f = format;
+ c._l = locale;
+ c._strict = strict;
+ c._isUTC = false;
+ c._pf = defaultParsingFlags();
+
+ return makeMoment(c);
+ };
+
+ moment.suppressDeprecationWarnings = false;
+
+ moment.createFromInputFallback = deprecate(
+ 'moment construction falls back to js Date. This is ' +
+ 'discouraged and will be removed in upcoming major ' +
+ 'release. Please refer to ' +
+ 'https://github.com/moment/moment/issues/1407 for more info.',
+ function (config) {
+ config._d = new Date(config._i);
+ }
+ );
+
+ // Pick a moment m from moments so that m[fn](other) is true for all
+ // other. This relies on the function fn to be transitive.
+ //
+ // moments should either be an array of moment objects or an array, whose
+ // first element is an array of moment objects.
+ function pickBy(fn, moments) {
+ var res, i;
+ if (moments.length === 1 && isArray(moments[0])) {
+ moments = moments[0];
+ }
+ if (!moments.length) {
+ return moment();
+ }
+ res = moments[0];
+ for (i = 1; i < moments.length; ++i) {
+ if (moments[i][fn](res)) {
+ res = moments[i];
+ }
+ }
+ return res;
+ }
+
+ moment.min = function () {
+ var args = [].slice.call(arguments, 0);
+
+ return pickBy('isBefore', args);
+ };
+
+ moment.max = function () {
+ var args = [].slice.call(arguments, 0);
+
+ return pickBy('isAfter', args);
+ };
+
+ // creating with utc
+ moment.utc = function (input, format, locale, strict) {
+ var c;
+
+ if (typeof(locale) === 'boolean') {
+ strict = locale;
+ locale = undefined;
+ }
+ // object construction must be done this way.
+ // https://github.com/moment/moment/issues/1423
+ c = {};
+ c._isAMomentObject = true;
+ c._useUTC = true;
+ c._isUTC = true;
+ c._l = locale;
+ c._i = input;
+ c._f = format;
+ c._strict = strict;
+ c._pf = defaultParsingFlags();
+
+ return makeMoment(c).utc();
+ };
+
+ // creating with unix timestamp (in seconds)
+ moment.unix = function (input) {
+ return moment(input * 1000);
+ };
+
+ // duration
+ moment.duration = function (input, key) {
+ var duration = input,
+ // matching against regexp is expensive, do it on demand
+ match = null,
+ sign,
+ ret,
+ parseIso,
+ diffRes;
+
+ if (moment.isDuration(input)) {
+ duration = {
+ ms: input._milliseconds,
+ d: input._days,
+ M: input._months
+ };
+ } else if (typeof input === 'number') {
+ duration = {};
+ if (key) {
+ duration[key] = input;
+ } else {
+ duration.milliseconds = input;
+ }
+ } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) {
+ sign = (match[1] === '-') ? -1 : 1;
+ duration = {
+ y: 0,
+ d: toInt(match[DATE]) * sign,
+ h: toInt(match[HOUR]) * sign,
+ m: toInt(match[MINUTE]) * sign,
+ s: toInt(match[SECOND]) * sign,
+ ms: toInt(match[MILLISECOND]) * sign
+ };
+ } else if (!!(match = isoDurationRegex.exec(input))) {
+ sign = (match[1] === '-') ? -1 : 1;
+ parseIso = function (inp) {
+ // We'd normally use ~~inp for this, but unfortunately it also
+ // converts floats to ints.
+ // inp may be undefined, so careful calling replace on it.
+ var res = inp && parseFloat(inp.replace(',', '.'));
+ // apply sign while we're at it
+ return (isNaN(res) ? 0 : res) * sign;
+ };
+ duration = {
+ y: parseIso(match[2]),
+ M: parseIso(match[3]),
+ d: parseIso(match[4]),
+ h: parseIso(match[5]),
+ m: parseIso(match[6]),
+ s: parseIso(match[7]),
+ w: parseIso(match[8])
+ };
+ } else if (typeof duration === 'object' &&
+ ('from' in duration || 'to' in duration)) {
+ diffRes = momentsDifference(moment(duration.from), moment(duration.to));
+
+ duration = {};
+ duration.ms = diffRes.milliseconds;
+ duration.M = diffRes.months;
+ }
+
+ ret = new Duration(duration);
+
+ if (moment.isDuration(input) && hasOwnProp(input, '_locale')) {
+ ret._locale = input._locale;
+ }
+
+ return ret;
+ };
+
+ // version number
+ moment.version = VERSION;
+
+ // default format
+ moment.defaultFormat = isoFormat;
+
+ // constant that refers to the ISO standard
+ moment.ISO_8601 = function () {};
+
+ // Plugins that add properties should also add the key here (null value),
+ // so we can properly clone ourselves.
+ moment.momentProperties = momentProperties;
+
+ // This function will be called whenever a moment is mutated.
+ // It is intended to keep the offset in sync with the timezone.
+ moment.updateOffset = function () {};
+
+ // This function allows you to set a threshold for relative time strings
+ moment.relativeTimeThreshold = function (threshold, limit) {
+ if (relativeTimeThresholds[threshold] === undefined) {
+ return false;
+ }
+ if (limit === undefined) {
+ return relativeTimeThresholds[threshold];
+ }
+ relativeTimeThresholds[threshold] = limit;
+ return true;
+ };
+
+ moment.lang = deprecate(
+ 'moment.lang is deprecated. Use moment.locale instead.',
+ function (key, value) {
+ return moment.locale(key, value);
+ }
+ );
+
+ // This function will load locale and then set the global locale. If
+ // no arguments are passed in, it will simply return the current global
+ // locale key.
+ moment.locale = function (key, values) {
+ var data;
+ if (key) {
+ if (typeof(values) !== 'undefined') {
+ data = moment.defineLocale(key, values);
+ }
+ else {
+ data = moment.localeData(key);
+ }
+
+ if (data) {
+ moment.duration._locale = moment._locale = data;
+ }
+ }
+
+ return moment._locale._abbr;
+ };
+
+ moment.defineLocale = function (name, values) {
+ if (values !== null) {
+ values.abbr = name;
+ if (!locales[name]) {
+ locales[name] = new Locale();
+ }
+ locales[name].set(values);
+
+ // backwards compat for now: also set the locale
+ moment.locale(name);
+
+ return locales[name];
+ } else {
+ // useful for testing
+ delete locales[name];
+ return null;
+ }
+ };
+
+ moment.langData = deprecate(
+ 'moment.langData is deprecated. Use moment.localeData instead.',
+ function (key) {
+ return moment.localeData(key);
+ }
+ );
+
+ // returns locale data
+ moment.localeData = function (key) {
+ var locale;
+
+ if (key && key._locale && key._locale._abbr) {
+ key = key._locale._abbr;
+ }
+
+ if (!key) {
+ return moment._locale;
+ }
+
+ if (!isArray(key)) {
+ //short-circuit everything else
+ locale = loadLocale(key);
+ if (locale) {
+ return locale;
+ }
+ key = [key];
+ }
+
+ return chooseLocale(key);
+ };
+
+ // compare moment object
+ moment.isMoment = function (obj) {
+ return obj instanceof Moment ||
+ (obj != null && hasOwnProp(obj, '_isAMomentObject'));
+ };
+
+ // for typechecking Duration objects
+ moment.isDuration = function (obj) {
+ return obj instanceof Duration;
+ };
+
+ for (i = lists.length - 1; i >= 0; --i) {
+ makeList(lists[i]);
+ }
+
+ moment.normalizeUnits = function (units) {
+ return normalizeUnits(units);
+ };
+
+ moment.invalid = function (flags) {
+ var m = moment.utc(NaN);
+ if (flags != null) {
+ extend(m._pf, flags);
+ }
+ else {
+ m._pf.userInvalidated = true;
+ }
+
+ return m;
+ };
+
+ moment.parseZone = function () {
+ return moment.apply(null, arguments).parseZone();
+ };
+
+ moment.parseTwoDigitYear = function (input) {
+ return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
+ };
+
+ /************************************
+ Moment Prototype
+ ************************************/
+
+
+ extend(moment.fn = Moment.prototype, {
+
+ clone : function () {
+ return moment(this);
+ },
+
+ valueOf : function () {
+ return +this._d + ((this._offset || 0) * 60000);
+ },
+
+ unix : function () {
+ return Math.floor(+this / 1000);
+ },
+
+ toString : function () {
+ return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
+ },
+
+ toDate : function () {
+ return this._offset ? new Date(+this) : this._d;
+ },
+
+ toISOString : function () {
+ var m = moment(this).utc();
+ if (0 < m.year() && m.year() <= 9999) {
+ return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
+ } else {
+ return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
+ }
+ },
+
+ toArray : function () {
+ var m = this;
+ return [
+ m.year(),
+ m.month(),
+ m.date(),
+ m.hours(),
+ m.minutes(),
+ m.seconds(),
+ m.milliseconds()
+ ];
+ },
+
+ isValid : function () {
+ return isValid(this);
+ },
+
+ isDSTShifted : function () {
+ if (this._a) {
+ return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0;
+ }
+
+ return false;
+ },
+
+ parsingFlags : function () {
+ return extend({}, this._pf);
+ },
+
+ invalidAt: function () {
+ return this._pf.overflow;
+ },
+
+ utc : function (keepLocalTime) {
+ return this.zone(0, keepLocalTime);
+ },
+
+ local : function (keepLocalTime) {
+ if (this._isUTC) {
+ this.zone(0, keepLocalTime);
+ this._isUTC = false;
+
+ if (keepLocalTime) {
+ this.add(this._dateTzOffset(), 'm');
+ }
+ }
+ return this;
+ },
+
+ format : function (inputString) {
+ var output = formatMoment(this, inputString || moment.defaultFormat);
+ return this.localeData().postformat(output);
+ },
+
+ add : createAdder(1, 'add'),
+
+ subtract : createAdder(-1, 'subtract'),
+
+ diff : function (input, units, asFloat) {
+ var that = makeAs(input, this),
+ zoneDiff = (this.zone() - that.zone()) * 6e4,
+ diff, output, daysAdjust;
+
+ units = normalizeUnits(units);
+
+ if (units === 'year' || units === 'month') {
+ // average number of days in the months in the given dates
+ diff = (this.daysInMonth() + that.daysInMonth()) * 432e5; // 24 * 60 * 60 * 1000 / 2
+ // difference in months
+ output = ((this.year() - that.year()) * 12) + (this.month() - that.month());
+ // adjust by taking difference in days, average number of days
+ // and dst in the given months.
+ daysAdjust = (this - moment(this).startOf('month')) -
+ (that - moment(that).startOf('month'));
+ // same as above but with zones, to negate all dst
+ daysAdjust -= ((this.zone() - moment(this).startOf('month').zone()) -
+ (that.zone() - moment(that).startOf('month').zone())) * 6e4;
+ output += daysAdjust / diff;
+ if (units === 'year') {
+ output = output / 12;
+ }
+ } else {
+ diff = (this - that);
+ output = units === 'second' ? diff / 1e3 : // 1000
+ units === 'minute' ? diff / 6e4 : // 1000 * 60
+ units === 'hour' ? diff / 36e5 : // 1000 * 60 * 60
+ units === 'day' ? (diff - zoneDiff) / 864e5 : // 1000 * 60 * 60 * 24, negate dst
+ units === 'week' ? (diff - zoneDiff) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst
+ diff;
+ }
+ return asFloat ? output : absRound(output);
+ },
+
+ from : function (time, withoutSuffix) {
+ return moment.duration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
+ },
+
+ fromNow : function (withoutSuffix) {
+ return this.from(moment(), withoutSuffix);
+ },
+
+ calendar : function (time) {
+ // We want to compare the start of today, vs this.
+ // Getting start-of-today depends on whether we're zone'd or not.
+ var now = time || moment(),
+ sod = makeAs(now, this).startOf('day'),
+ diff = this.diff(sod, 'days', true),
+ format = diff < -6 ? 'sameElse' :
+ diff < -1 ? 'lastWeek' :
+ diff < 0 ? 'lastDay' :
+ diff < 1 ? 'sameDay' :
+ diff < 2 ? 'nextDay' :
+ diff < 7 ? 'nextWeek' : 'sameElse';
+ return this.format(this.localeData().calendar(format, this));
+ },
+
+ isLeapYear : function () {
+ return isLeapYear(this.year());
+ },
+
+ isDST : function () {
+ return (this.zone() < this.clone().month(0).zone() ||
+ this.zone() < this.clone().month(5).zone());
+ },
+
+ day : function (input) {
+ var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
+ if (input != null) {
+ input = parseWeekday(input, this.localeData());
+ return this.add(input - day, 'd');
+ } else {
+ return day;
+ }
+ },
+
+ month : makeAccessor('Month', true),
+
+ startOf : function (units) {
+ units = normalizeUnits(units);
+ // the following switch intentionally omits break keywords
+ // to utilize falling through the cases.
+ switch (units) {
+ case 'year':
+ this.month(0);
+ /* falls through */
+ case 'quarter':
+ case 'month':
+ this.date(1);
+ /* falls through */
+ case 'week':
+ case 'isoWeek':
+ case 'day':
+ this.hours(0);
+ /* falls through */
+ case 'hour':
+ this.minutes(0);
+ /* falls through */
+ case 'minute':
+ this.seconds(0);
+ /* falls through */
+ case 'second':
+ this.milliseconds(0);
+ /* falls through */
+ }
+
+ // weeks are a special case
+ if (units === 'week') {
+ this.weekday(0);
+ } else if (units === 'isoWeek') {
+ this.isoWeekday(1);
+ }
+
+ // quarters are also special
+ if (units === 'quarter') {
+ this.month(Math.floor(this.month() / 3) * 3);
+ }
+
+ return this;
+ },
+
+ endOf: function (units) {
+ units = normalizeUnits(units);
+ return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
+ },
+
+ isAfter: function (input, units) {
+ units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
+ if (units === 'millisecond') {
+ input = moment.isMoment(input) ? input : moment(input);
+ return +this > +input;
+ } else {
+ return +this.clone().startOf(units) > +moment(input).startOf(units);
+ }
+ },
+
+ isBefore: function (input, units) {
+ units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
+ if (units === 'millisecond') {
+ input = moment.isMoment(input) ? input : moment(input);
+ return +this < +input;
+ } else {
+ return +this.clone().startOf(units) < +moment(input).startOf(units);
+ }
+ },
+
+ isSame: function (input, units) {
+ units = normalizeUnits(units || 'millisecond');
+ if (units === 'millisecond') {
+ input = moment.isMoment(input) ? input : moment(input);
+ return +this === +input;
+ } else {
+ return +this.clone().startOf(units) === +makeAs(input, this).startOf(units);
+ }
+ },
+
+ min: deprecate(
+ 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548',
+ function (other) {
+ other = moment.apply(null, arguments);
+ return other < this ? this : other;
+ }
+ ),
+
+ max: deprecate(
+ 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548',
+ function (other) {
+ other = moment.apply(null, arguments);
+ return other > this ? this : other;
+ }
+ ),
+
+ // keepLocalTime = true means only change the timezone, without
+ // affecting the local hour. So 5:31:26 +0300 --[zone(2, true)]-->
+ // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist int zone
+ // +0200, so we adjust the time as needed, to be valid.
+ //
+ // Keeping the time actually adds/subtracts (one hour)
+ // from the actual represented time. That is why we call updateOffset
+ // a second time. In case it wants us to change the offset again
+ // _changeInProgress == true case, then we have to adjust, because
+ // there is no such time in the given timezone.
+ zone : function (input, keepLocalTime) {
+ var offset = this._offset || 0,
+ localAdjust;
+ if (input != null) {
+ if (typeof input === 'string') {
+ input = timezoneMinutesFromString(input);
+ }
+ if (Math.abs(input) < 16) {
+ input = input * 60;
+ }
+ if (!this._isUTC && keepLocalTime) {
+ localAdjust = this._dateTzOffset();
+ }
+ this._offset = input;
+ this._isUTC = true;
+ if (localAdjust != null) {
+ this.subtract(localAdjust, 'm');
+ }
+ if (offset !== input) {
+ if (!keepLocalTime || this._changeInProgress) {
+ addOrSubtractDurationFromMoment(this,
+ moment.duration(offset - input, 'm'), 1, false);
+ } else if (!this._changeInProgress) {
+ this._changeInProgress = true;
+ moment.updateOffset(this, true);
+ this._changeInProgress = null;
+ }
+ }
+ } else {
+ return this._isUTC ? offset : this._dateTzOffset();
+ }
+ return this;
+ },
+
+ zoneAbbr : function () {
+ return this._isUTC ? 'UTC' : '';
+ },
+
+ zoneName : function () {
+ return this._isUTC ? 'Coordinated Universal Time' : '';
+ },
+
+ parseZone : function () {
+ if (this._tzm) {
+ this.zone(this._tzm);
+ } else if (typeof this._i === 'string') {
+ this.zone(this._i);
+ }
+ return this;
+ },
+
+ hasAlignedHourOffset : function (input) {
+ if (!input) {
+ input = 0;
+ }
+ else {
+ input = moment(input).zone();
+ }
+
+ return (this.zone() - input) % 60 === 0;
+ },
+
+ daysInMonth : function () {
+ return daysInMonth(this.year(), this.month());
+ },
+
+ dayOfYear : function (input) {
+ var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1;
+ return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
+ },
+
+ quarter : function (input) {
+ return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
+ },
+
+ weekYear : function (input) {
+ var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year;
+ return input == null ? year : this.add((input - year), 'y');
+ },
+
+ isoWeekYear : function (input) {
+ var year = weekOfYear(this, 1, 4).year;
+ return input == null ? year : this.add((input - year), 'y');
+ },
+
+ week : function (input) {
+ var week = this.localeData().week(this);
+ return input == null ? week : this.add((input - week) * 7, 'd');
+ },
+
+ isoWeek : function (input) {
+ var week = weekOfYear(this, 1, 4).week;
+ return input == null ? week : this.add((input - week) * 7, 'd');
+ },
+
+ weekday : function (input) {
+ var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
+ return input == null ? weekday : this.add(input - weekday, 'd');
+ },
+
+ isoWeekday : function (input) {
+ // behaves the same as moment#day except
+ // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
+ // as a setter, sunday should belong to the previous week.
+ return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7);
+ },
+
+ isoWeeksInYear : function () {
+ return weeksInYear(this.year(), 1, 4);
+ },
+
+ weeksInYear : function () {
+ var weekInfo = this.localeData()._week;
+ return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
+ },
+
+ get : function (units) {
+ units = normalizeUnits(units);
+ return this[units]();
+ },
+
+ set : function (units, value) {
+ units = normalizeUnits(units);
+ if (typeof this[units] === 'function') {
+ this[units](value);
+ }
+ return this;
+ },
+
+ // If passed a locale key, it will set the locale for this
+ // instance. Otherwise, it will return the locale configuration
+ // variables for this instance.
+ locale : function (key) {
+ var newLocaleData;
+
+ if (key === undefined) {
+ return this._locale._abbr;
+ } else {
+ newLocaleData = moment.localeData(key);
+ if (newLocaleData != null) {
+ this._locale = newLocaleData;
+ }
+ return this;
+ }
+ },
+
+ lang : deprecate(
+ 'moment().lang() is deprecated. Use moment().localeData() instead.',
+ function (key) {
+ if (key === undefined) {
+ return this.localeData();
+ } else {
+ return this.locale(key);
+ }
+ }
+ ),
+
+ localeData : function () {
+ return this._locale;
+ },
+
+ _dateTzOffset : function () {
+ // On Firefox.24 Date#getTimezoneOffset returns a floating point.
+ // https://github.com/moment/moment/pull/1871
+ return Math.round(this._d.getTimezoneOffset() / 15) * 15;
+ }
+ });
+
+ function rawMonthSetter(mom, value) {
+ var dayOfMonth;
+
+ // TODO: Move this out of here!
+ if (typeof value === 'string') {
+ value = mom.localeData().monthsParse(value);
+ // TODO: Another silent failure?
+ if (typeof value !== 'number') {
+ return mom;
+ }
+ }
+
+ dayOfMonth = Math.min(mom.date(),
+ daysInMonth(mom.year(), value));
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
+ return mom;
+ }
+
+ function rawGetter(mom, unit) {
+ return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]();
+ }
+
+ function rawSetter(mom, unit, value) {
+ if (unit === 'Month') {
+ return rawMonthSetter(mom, value);
+ } else {
+ return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
+ }
+ }
+
+ function makeAccessor(unit, keepTime) {
+ return function (value) {
+ if (value != null) {
+ rawSetter(this, unit, value);
+ moment.updateOffset(this, keepTime);
+ return this;
+ } else {
+ return rawGetter(this, unit);
+ }
+ };
+ }
+
+ moment.fn.millisecond = moment.fn.milliseconds = makeAccessor('Milliseconds', false);
+ moment.fn.second = moment.fn.seconds = makeAccessor('Seconds', false);
+ moment.fn.minute = moment.fn.minutes = makeAccessor('Minutes', false);
+ // Setting the hour should keep the time, because the user explicitly
+ // specified which hour he wants. So trying to maintain the same hour (in
+ // a new timezone) makes sense. Adding/subtracting hours does not follow
+ // this rule.
+ moment.fn.hour = moment.fn.hours = makeAccessor('Hours', true);
+ // moment.fn.month is defined separately
+ moment.fn.date = makeAccessor('Date', true);
+ moment.fn.dates = deprecate('dates accessor is deprecated. Use date instead.', makeAccessor('Date', true));
+ moment.fn.year = makeAccessor('FullYear', true);
+ moment.fn.years = deprecate('years accessor is deprecated. Use year instead.', makeAccessor('FullYear', true));
+
+ // add plural methods
+ moment.fn.days = moment.fn.day;
+ moment.fn.months = moment.fn.month;
+ moment.fn.weeks = moment.fn.week;
+ moment.fn.isoWeeks = moment.fn.isoWeek;
+ moment.fn.quarters = moment.fn.quarter;
+
+ // add aliased format methods
+ moment.fn.toJSON = moment.fn.toISOString;
+
+ /************************************
+ Duration Prototype
+ ************************************/
+
+
+ function daysToYears (days) {
+ // 400 years have 146097 days (taking into account leap year rules)
+ return days * 400 / 146097;
+ }
+
+ function yearsToDays (years) {
+ // years * 365 + absRound(years / 4) -
+ // absRound(years / 100) + absRound(years / 400);
+ return years * 146097 / 400;
+ }
+
+ extend(moment.duration.fn = Duration.prototype, {
+
+ _bubble : function () {
+ var milliseconds = this._milliseconds,
+ days = this._days,
+ months = this._months,
+ data = this._data,
+ seconds, minutes, hours, years = 0;
+
+ // The following code bubbles up values, see the tests for
+ // examples of what that means.
+ data.milliseconds = milliseconds % 1000;
+
+ seconds = absRound(milliseconds / 1000);
+ data.seconds = seconds % 60;
+
+ minutes = absRound(seconds / 60);
+ data.minutes = minutes % 60;
+
+ hours = absRound(minutes / 60);
+ data.hours = hours % 24;
+
+ days += absRound(hours / 24);
+
+ // Accurately convert days to years, assume start from year 0.
+ years = absRound(daysToYears(days));
+ days -= absRound(yearsToDays(years));
+
+ // 30 days to a month
+ // TODO (iskren): Use anchor date (like 1st Jan) to compute this.
+ months += absRound(days / 30);
+ days %= 30;
+
+ // 12 months -> 1 year
+ years += absRound(months / 12);
+ months %= 12;
+
+ data.days = days;
+ data.months = months;
+ data.years = years;
+ },
+
+ abs : function () {
+ this._milliseconds = Math.abs(this._milliseconds);
+ this._days = Math.abs(this._days);
+ this._months = Math.abs(this._months);
+
+ this._data.milliseconds = Math.abs(this._data.milliseconds);
+ this._data.seconds = Math.abs(this._data.seconds);
+ this._data.minutes = Math.abs(this._data.minutes);
+ this._data.hours = Math.abs(this._data.hours);
+ this._data.months = Math.abs(this._data.months);
+ this._data.years = Math.abs(this._data.years);
+
+ return this;
+ },
+
+ weeks : function () {
+ return absRound(this.days() / 7);
+ },
+
+ valueOf : function () {
+ return this._milliseconds +
+ this._days * 864e5 +
+ (this._months % 12) * 2592e6 +
+ toInt(this._months / 12) * 31536e6;
+ },
+
+ humanize : function (withSuffix) {
+ var output = relativeTime(this, !withSuffix, this.localeData());
+
+ if (withSuffix) {
+ output = this.localeData().pastFuture(+this, output);
+ }
+
+ return this.localeData().postformat(output);
+ },
+
+ add : function (input, val) {
+ // supports only 2.0-style add(1, 's') or add(moment)
+ var dur = moment.duration(input, val);
+
+ this._milliseconds += dur._milliseconds;
+ this._days += dur._days;
+ this._months += dur._months;
+
+ this._bubble();
+
+ return this;
+ },
+
+ subtract : function (input, val) {
+ var dur = moment.duration(input, val);
+
+ this._milliseconds -= dur._milliseconds;
+ this._days -= dur._days;
+ this._months -= dur._months;
+
+ this._bubble();
+
+ return this;
+ },
+
+ get : function (units) {
+ units = normalizeUnits(units);
+ return this[units.toLowerCase() + 's']();
+ },
+
+ as : function (units) {
+ var days, months;
+ units = normalizeUnits(units);
+
+ if (units === 'month' || units === 'year') {
+ days = this._days + this._milliseconds / 864e5;
+ months = this._months + daysToYears(days) * 12;
+ return units === 'month' ? months : months / 12;
+ } else {
+ // handle milliseconds separately because of floating point math errors (issue #1867)
+ days = this._days + yearsToDays(this._months / 12);
+ switch (units) {
+ case 'week': return days / 7 + this._milliseconds / 6048e5;
+ case 'day': return days + this._milliseconds / 864e5;
+ case 'hour': return days * 24 + this._milliseconds / 36e5;
+ case 'minute': return days * 24 * 60 + this._milliseconds / 6e4;
+ case 'second': return days * 24 * 60 * 60 + this._milliseconds / 1000;
+ // Math.floor prevents floating point math errors here
+ case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + this._milliseconds;
+ default: throw new Error('Unknown unit ' + units);
+ }
+ }
+ },
+
+ lang : moment.fn.lang,
+ locale : moment.fn.locale,
+
+ toIsoString : deprecate(
+ 'toIsoString() is deprecated. Please use toISOString() instead ' +
+ '(notice the capitals)',
+ function () {
+ return this.toISOString();
+ }
+ ),
+
+ toISOString : function () {
+ // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
+ var years = Math.abs(this.years()),
+ months = Math.abs(this.months()),
+ days = Math.abs(this.days()),
+ hours = Math.abs(this.hours()),
+ minutes = Math.abs(this.minutes()),
+ seconds = Math.abs(this.seconds() + this.milliseconds() / 1000);
+
+ if (!this.asSeconds()) {
+ // this is the same as C#'s (Noda) and python (isodate)...
+ // but not other JS (goog.date)
+ return 'P0D';
+ }
+
+ return (this.asSeconds() < 0 ? '-' : '') +
+ 'P' +
+ (years ? years + 'Y' : '') +
+ (months ? months + 'M' : '') +
+ (days ? days + 'D' : '') +
+ ((hours || minutes || seconds) ? 'T' : '') +
+ (hours ? hours + 'H' : '') +
+ (minutes ? minutes + 'M' : '') +
+ (seconds ? seconds + 'S' : '');
+ },
+
+ localeData : function () {
+ return this._locale;
+ }
+ });
+
+ moment.duration.fn.toString = moment.duration.fn.toISOString;
+
+ function makeDurationGetter(name) {
+ moment.duration.fn[name] = function () {
+ return this._data[name];
+ };
+ }
+
+ for (i in unitMillisecondFactors) {
+ if (hasOwnProp(unitMillisecondFactors, i)) {
+ makeDurationGetter(i.toLowerCase());
+ }
+ }
+
+ moment.duration.fn.asMilliseconds = function () {
+ return this.as('ms');
+ };
+ moment.duration.fn.asSeconds = function () {
+ return this.as('s');
+ };
+ moment.duration.fn.asMinutes = function () {
+ return this.as('m');
+ };
+ moment.duration.fn.asHours = function () {
+ return this.as('h');
+ };
+ moment.duration.fn.asDays = function () {
+ return this.as('d');
+ };
+ moment.duration.fn.asWeeks = function () {
+ return this.as('weeks');
+ };
+ moment.duration.fn.asMonths = function () {
+ return this.as('M');
+ };
+ moment.duration.fn.asYears = function () {
+ return this.as('y');
+ };
+
+ /************************************
+ Default Locale
+ ************************************/
+
+
+ // Set default locale, other locale will inherit from English.
+ moment.locale('en', {
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (toInt(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ }
+ });
+
+ // moment.js locale configuration
+// locale : afrikaans (af)
+// author : Werner Mollentze : https://github.com/wernerm
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('af', {
+ months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
+ weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
+ weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower ? 'vm' : 'VM';
+ } else {
+ return isLower ? 'nm' : 'NM';
+ }
+ },
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[Vandag om] LT',
+ nextDay : '[Môre om] LT',
+ nextWeek : 'dddd [om] LT',
+ lastDay : '[Gister om] LT',
+ lastWeek : '[Laas] dddd [om] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'oor %s',
+ past : '%s gelede',
+ s : '\'n paar sekondes',
+ m : '\'n minuut',
+ mm : '%d minute',
+ h : '\'n uur',
+ hh : '%d ure',
+ d : '\'n dag',
+ dd : '%d dae',
+ M : '\'n maand',
+ MM : '%d maande',
+ y : '\'n jaar',
+ yy : '%d jaar'
+ },
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
+ },
+ week : {
+ dow : 1, // Maandag is die eerste dag van die week.
+ doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Moroccan Arabic (ar-ma)
+// author : ElFadili Yassine : https://github.com/ElFadiliY
+// author : Abdel Said : https://github.com/abdelsaid
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('ar-ma', {
+ months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+ monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+ weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'في %s',
+ past : 'منذ %s',
+ s : 'ثوان',
+ m : 'دقيقة',
+ mm : '%d دقائق',
+ h : 'ساعة',
+ hh : '%d ساعات',
+ d : 'يوم',
+ dd : '%d أيام',
+ M : 'شهر',
+ MM : '%d أشهر',
+ y : 'سنة',
+ yy : '%d سنوات'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Arabic Saudi Arabia (ar-sa)
+// author : Suhail Alkowaileet : https://github.com/xsoh
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '١',
+ '2': '٢',
+ '3': '٣',
+ '4': '٤',
+ '5': '٥',
+ '6': '٦',
+ '7': '٧',
+ '8': '٨',
+ '9': '٩',
+ '0': '٠'
+ }, numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0'
+ };
+
+ return moment.defineLocale('ar-sa', {
+ months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar : {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'في %s',
+ past : 'منذ %s',
+ s : 'ثوان',
+ m : 'دقيقة',
+ mm : '%d دقائق',
+ h : 'ساعة',
+ hh : '%d ساعات',
+ d : 'يوم',
+ dd : '%d أيام',
+ M : 'شهر',
+ MM : '%d أشهر',
+ y : 'سنة',
+ yy : '%d سنوات'
+ },
+ preparse: function (string) {
+ return string.replace(/[۰-۹]/g, function (match) {
+ return numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// Locale: Arabic (ar)
+// Author: Abdel Said: https://github.com/abdelsaid
+// Changes in months, weekdays: Ahmed Elkhatib
+// Native plural forms: forabi https://github.com/forabi
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '١',
+ '2': '٢',
+ '3': '٣',
+ '4': '٤',
+ '5': '٥',
+ '6': '٦',
+ '7': '٧',
+ '8': '٨',
+ '9': '٩',
+ '0': '٠'
+ }, numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0'
+ }, pluralForm = function (n) {
+ return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
+ }, plurals = {
+ s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
+ m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
+ h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
+ d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
+ M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
+ y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
+ }, pluralize = function (u) {
+ return function (number, withoutSuffix, string, isFuture) {
+ var f = pluralForm(number),
+ str = plurals[u][pluralForm(number)];
+ if (f === 2) {
+ str = str[withoutSuffix ? 0 : 1];
+ }
+ return str.replace(/%d/i, number);
+ };
+ }, months = [
+ 'كانون الثاني يناير',
+ 'شباط فبراير',
+ 'آذار مارس',
+ 'نيسان أبريل',
+ 'أيار مايو',
+ 'حزيران يونيو',
+ 'تموز يوليو',
+ 'آب أغسطس',
+ 'أيلول سبتمبر',
+ 'تشرين الأول أكتوبر',
+ 'تشرين الثاني نوفمبر',
+ 'كانون الأول ديسمبر'
+ ];
+
+ return moment.defineLocale('ar', {
+ months : months,
+ monthsShort : months,
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar : {
+ sameDay: '[اليوم عند الساعة] LT',
+ nextDay: '[غدًا عند الساعة] LT',
+ nextWeek: 'dddd [عند الساعة] LT',
+ lastDay: '[أمس عند الساعة] LT',
+ lastWeek: 'dddd [عند الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'بعد %s',
+ past : 'منذ %s',
+ s : pluralize('s'),
+ m : pluralize('m'),
+ mm : pluralize('m'),
+ h : pluralize('h'),
+ hh : pluralize('h'),
+ d : pluralize('d'),
+ dd : pluralize('d'),
+ M : pluralize('M'),
+ MM : pluralize('M'),
+ y : pluralize('y'),
+ yy : pluralize('y')
+ },
+ preparse: function (string) {
+ return string.replace(/[۰-۹]/g, function (match) {
+ return numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : azerbaijani (az)
+// author : topchiyev : https://github.com/topchiyev
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var suffixes = {
+ 1: '-inci',
+ 5: '-inci',
+ 8: '-inci',
+ 70: '-inci',
+ 80: '-inci',
+
+ 2: '-nci',
+ 7: '-nci',
+ 20: '-nci',
+ 50: '-nci',
+
+ 3: '-üncü',
+ 4: '-üncü',
+ 100: '-üncü',
+
+ 6: '-ncı',
+
+ 9: '-uncu',
+ 10: '-uncu',
+ 30: '-uncu',
+
+ 60: '-ıncı',
+ 90: '-ıncı'
+ };
+ return moment.defineLocale('az', {
+ months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
+ monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
+ weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
+ weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
+ weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[bugün saat] LT',
+ nextDay : '[sabah saat] LT',
+ nextWeek : '[gələn həftə] dddd [saat] LT',
+ lastDay : '[dünən] LT',
+ lastWeek : '[keçən həftə] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s sonra',
+ past : '%s əvvəl',
+ s : 'birneçə saniyyə',
+ m : 'bir dəqiqə',
+ mm : '%d dəqiqə',
+ h : 'bir saat',
+ hh : '%d saat',
+ d : 'bir gün',
+ dd : '%d gün',
+ M : 'bir ay',
+ MM : '%d ay',
+ y : 'bir il',
+ yy : '%d il'
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'gecə';
+ } else if (hour < 12) {
+ return 'səhər';
+ } else if (hour < 17) {
+ return 'gündüz';
+ } else {
+ return 'axşam';
+ }
+ },
+ ordinal : function (number) {
+ if (number === 0) { // special case for zero
+ return number + '-ıncı';
+ }
+ var a = number % 10,
+ b = number % 100 - a,
+ c = number >= 100 ? 100 : null;
+
+ return number + (suffixes[a] || suffixes[b] || suffixes[c]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : belarusian (be)
+// author : Dmitry Demidov : https://github.com/demidov91
+// author: Praleska: http://praleska.pro/
+// Author : Menelion Elensúle : https://github.com/Oire
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
+ 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
+ 'dd': 'дзень_дні_дзён',
+ 'MM': 'месяц_месяцы_месяцаў',
+ 'yy': 'год_гады_гадоў'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвіліна' : 'хвіліну';
+ }
+ else if (key === 'h') {
+ return withoutSuffix ? 'гадзіна' : 'гадзіну';
+ }
+ else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+
+ function monthsCaseReplace(m, format) {
+ var months = {
+ 'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'),
+ 'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_')
+ },
+
+ nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return months[nounCase][m.month()];
+ }
+
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ 'nominative': 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
+ 'accusative': 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_')
+ },
+
+ nounCase = (/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return weekdays[nounCase][m.day()];
+ }
+
+ return moment.defineLocale('be', {
+ months : monthsCaseReplace,
+ monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+ weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY г.',
+ LLL : 'D MMMM YYYY г., LT',
+ LLLL : 'dddd, D MMMM YYYY г., LT'
+ },
+ calendar : {
+ sameDay: '[Сёння ў] LT',
+ nextDay: '[Заўтра ў] LT',
+ lastDay: '[Учора ў] LT',
+ nextWeek: function () {
+ return '[У] dddd [ў] LT';
+ },
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return '[У мінулую] dddd [ў] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[У мінулы] dddd [ў] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'праз %s',
+ past : '%s таму',
+ s : 'некалькі секунд',
+ m : relativeTimeWithPlural,
+ mm : relativeTimeWithPlural,
+ h : relativeTimeWithPlural,
+ hh : relativeTimeWithPlural,
+ d : 'дзень',
+ dd : relativeTimeWithPlural,
+ M : 'месяц',
+ MM : relativeTimeWithPlural,
+ y : 'год',
+ yy : relativeTimeWithPlural
+ },
+
+
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночы';
+ } else if (hour < 12) {
+ return 'раніцы';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечара';
+ }
+ },
+
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
+ case 'D':
+ return number + '-га';
+ default:
+ return number;
+ }
+ },
+
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : bulgarian (bg)
+// author : Krasen Borisov : https://github.com/kraz
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('bg', {
+ months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
+ monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
+ weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
+ weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
+ weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'D.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[Днес в] LT',
+ nextDay : '[Утре в] LT',
+ nextWeek : 'dddd [в] LT',
+ lastDay : '[Вчера в] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[В изминалата] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[В изминалия] dddd [в] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'след %s',
+ past : 'преди %s',
+ s : 'няколко секунди',
+ m : 'минута',
+ mm : '%d минути',
+ h : 'час',
+ hh : '%d часа',
+ d : 'ден',
+ dd : '%d дни',
+ M : 'месец',
+ MM : '%d месеца',
+ y : 'година',
+ yy : '%d години'
+ },
+ ordinal : function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Bengali (bn)
+// author : Kaushik Gandhi : https://github.com/kaushikgandhi
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '১',
+ '2': '২',
+ '3': '৩',
+ '4': '৪',
+ '5': '৫',
+ '6': '৬',
+ '7': '৭',
+ '8': '৮',
+ '9': '৯',
+ '0': '০'
+ },
+ numberMap = {
+ '১': '1',
+ '২': '2',
+ '৩': '3',
+ '৪': '4',
+ '৫': '5',
+ '৬': '6',
+ '৭': '7',
+ '৮': '8',
+ '৯': '9',
+ '০': '0'
+ };
+
+ return moment.defineLocale('bn', {
+ months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
+ monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split('_'),
+ weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার'.split('_'),
+ weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি'.split('_'),
+ weekdaysMin : 'রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm সময়',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, LT',
+ LLLL : 'dddd, D MMMM YYYY, LT'
+ },
+ calendar : {
+ sameDay : '[আজ] LT',
+ nextDay : '[আগামীকাল] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[গতকাল] LT',
+ lastWeek : '[গত] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s পরে',
+ past : '%s আগে',
+ s : 'কএক সেকেন্ড',
+ m : 'এক মিনিট',
+ mm : '%d মিনিট',
+ h : 'এক ঘন্টা',
+ hh : '%d ঘন্টা',
+ d : 'এক দিন',
+ dd : '%d দিন',
+ M : 'এক মাস',
+ MM : '%d মাস',
+ y : 'এক বছর',
+ yy : '%d বছর'
+ },
+ preparse: function (string) {
+ return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ //Bengali is a vast language its spoken
+ //in different forms in various parts of the world.
+ //I have just generalized with most common one used
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'রাত';
+ } else if (hour < 10) {
+ return 'শকাল';
+ } else if (hour < 17) {
+ return 'দুপুর';
+ } else if (hour < 20) {
+ return 'বিকেল';
+ } else {
+ return 'রাত';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : tibetan (bo)
+// author : Thupten N. Chakrishar : https://github.com/vajradog
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '༡',
+ '2': '༢',
+ '3': '༣',
+ '4': '༤',
+ '5': '༥',
+ '6': '༦',
+ '7': '༧',
+ '8': '༨',
+ '9': '༩',
+ '0': '༠'
+ },
+ numberMap = {
+ '༡': '1',
+ '༢': '2',
+ '༣': '3',
+ '༤': '4',
+ '༥': '5',
+ '༦': '6',
+ '༧': '7',
+ '༨': '8',
+ '༩': '9',
+ '༠': '0'
+ };
+
+ return moment.defineLocale('bo', {
+ months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
+ monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
+ weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
+ weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
+ weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, LT',
+ LLLL : 'dddd, D MMMM YYYY, LT'
+ },
+ calendar : {
+ sameDay : '[དི་རིང] LT',
+ nextDay : '[སང་ཉིན] LT',
+ nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
+ lastDay : '[ཁ་སང] LT',
+ lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s ལ་',
+ past : '%s སྔན་ལ',
+ s : 'ལམ་སང',
+ m : 'སྐར་མ་གཅིག',
+ mm : '%d སྐར་མ',
+ h : 'ཆུ་ཚོད་གཅིག',
+ hh : '%d ཆུ་ཚོད',
+ d : 'ཉིན་གཅིག',
+ dd : '%d ཉིན་',
+ M : 'ཟླ་བ་གཅིག',
+ MM : '%d ཟླ་བ',
+ y : 'ལོ་གཅིག',
+ yy : '%d ལོ'
+ },
+ preparse: function (string) {
+ return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'མཚན་མོ';
+ } else if (hour < 10) {
+ return 'ཞོགས་ཀས';
+ } else if (hour < 17) {
+ return 'ཉིན་གུང';
+ } else if (hour < 20) {
+ return 'དགོང་དག';
+ } else {
+ return 'མཚན་མོ';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : breton (br)
+// author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function relativeTimeWithMutation(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'munutenn',
+ 'MM': 'miz',
+ 'dd': 'devezh'
+ };
+ return number + ' ' + mutation(format[key], number);
+ }
+
+ function specialMutationForYears(number) {
+ switch (lastNumber(number)) {
+ case 1:
+ case 3:
+ case 4:
+ case 5:
+ case 9:
+ return number + ' bloaz';
+ default:
+ return number + ' vloaz';
+ }
+ }
+
+ function lastNumber(number) {
+ if (number > 9) {
+ return lastNumber(number % 10);
+ }
+ return number;
+ }
+
+ function mutation(text, number) {
+ if (number === 2) {
+ return softMutation(text);
+ }
+ return text;
+ }
+
+ function softMutation(text) {
+ var mutationTable = {
+ 'm': 'v',
+ 'b': 'v',
+ 'd': 'z'
+ };
+ if (mutationTable[text.charAt(0)] === undefined) {
+ return text;
+ }
+ return mutationTable[text.charAt(0)] + text.substring(1);
+ }
+
+ return moment.defineLocale('br', {
+ months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
+ monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
+ weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
+ weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
+ weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h[e]mm A',
+ L : 'DD/MM/YYYY',
+ LL : 'D [a viz] MMMM YYYY',
+ LLL : 'D [a viz] MMMM YYYY LT',
+ LLLL : 'dddd, D [a viz] MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[Hiziv da] LT',
+ nextDay : '[Warc\'hoazh da] LT',
+ nextWeek : 'dddd [da] LT',
+ lastDay : '[Dec\'h da] LT',
+ lastWeek : 'dddd [paset da] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'a-benn %s',
+ past : '%s \'zo',
+ s : 'un nebeud segondennoù',
+ m : 'ur vunutenn',
+ mm : relativeTimeWithMutation,
+ h : 'un eur',
+ hh : '%d eur',
+ d : 'un devezh',
+ dd : relativeTimeWithMutation,
+ M : 'ur miz',
+ MM : relativeTimeWithMutation,
+ y : 'ur bloaz',
+ yy : specialMutationForYears
+ },
+ ordinal : function (number) {
+ var output = (number === 1) ? 'añ' : 'vet';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : bosnian (bs)
+// author : Nedim Cholich : https://github.com/frontyard
+// based on (hr) translation by Bojan Marković
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ return moment.defineLocale('bs', {
+ months : 'januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar'.split('_'),
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
+ weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
+ weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY LT',
+ LLLL : 'dddd, D. MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[danas u] LT',
+ nextDay : '[sutra u] LT',
+
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[jučer u] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'par sekundi',
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : 'dan',
+ dd : translate,
+ M : 'mjesec',
+ MM : translate,
+ y : 'godinu',
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : catalan (ca)
+// author : Juan G. Hurtado : https://github.com/juanghurtado
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('ca', {
+ months : 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
+ monthsShort : 'gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.'.split('_'),
+ weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
+ weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
+ weekdaysMin : 'Dg_Dl_Dt_Dc_Dj_Dv_Ds'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ nextDay : function () {
+ return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ lastDay : function () {
+ return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ lastWeek : function () {
+ return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'en %s',
+ past : 'fa %s',
+ s : 'uns segons',
+ m : 'un minut',
+ mm : '%d minuts',
+ h : 'una hora',
+ hh : '%d hores',
+ d : 'un dia',
+ dd : '%d dies',
+ M : 'un mes',
+ MM : '%d mesos',
+ y : 'un any',
+ yy : '%d anys'
+ },
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : czech (cs)
+// author : petrbela : https://github.com/petrbela
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
+ monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
+
+ function plural(n) {
+ return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
+ }
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'minuty' : 'minut');
+ } else {
+ return result + 'minutami';
+ }
+ break;
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'hodiny' : 'hodin');
+ } else {
+ return result + 'hodinami';
+ }
+ break;
+ case 'd': // a day / in a day / a day ago
+ return (withoutSuffix || isFuture) ? 'den' : 'dnem';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'dny' : 'dní');
+ } else {
+ return result + 'dny';
+ }
+ break;
+ case 'M': // a month / in a month / a month ago
+ return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'měsíce' : 'měsíců');
+ } else {
+ return result + 'měsíci';
+ }
+ break;
+ case 'y': // a year / in a year / a year ago
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'roky' : 'let');
+ } else {
+ return result + 'lety';
+ }
+ break;
+ }
+ }
+
+ return moment.defineLocale('cs', {
+ months : months,
+ monthsShort : monthsShort,
+ monthsParse : (function (months, monthsShort) {
+ var i, _monthsParse = [];
+ for (i = 0; i < 12; i++) {
+ // use custom parser to solve problem with July (červenec)
+ _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
+ }
+ return _monthsParse;
+ }(months, monthsShort)),
+ weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
+ weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
+ weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
+ longDateFormat : {
+ LT: 'H:mm',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY LT',
+ LLLL : 'dddd D. MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[dnes v] LT',
+ nextDay: '[zítra v] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v neděli v] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [v] LT';
+ case 3:
+ return '[ve středu v] LT';
+ case 4:
+ return '[ve čtvrtek v] LT';
+ case 5:
+ return '[v pátek v] LT';
+ case 6:
+ return '[v sobotu v] LT';
+ }
+ },
+ lastDay: '[včera v] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulou neděli v] LT';
+ case 1:
+ case 2:
+ return '[minulé] dddd [v] LT';
+ case 3:
+ return '[minulou středu v] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [v] LT';
+ case 6:
+ return '[minulou sobotu v] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'před %s',
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : chuvash (cv)
+// author : Anatoly Mironov : https://github.com/mirontoli
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('cv', {
+ months : 'кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав'.split('_'),
+ monthsShort : 'кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш'.split('_'),
+ weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун'.split('_'),
+ weekdaysShort : 'выр_тун_ытл_юн_кĕç_эрн_шăм'.split('_'),
+ weekdaysMin : 'вр_тн_ыт_юн_кç_эр_шм'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD-MM-YYYY',
+ LL : 'YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]',
+ LLL : 'YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT',
+ LLLL : 'dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT'
+ },
+ calendar : {
+ sameDay: '[Паян] LT [сехетре]',
+ nextDay: '[Ыран] LT [сехетре]',
+ lastDay: '[Ĕнер] LT [сехетре]',
+ nextWeek: '[Çитес] dddd LT [сехетре]',
+ lastWeek: '[Иртнĕ] dddd LT [сехетре]',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : function (output) {
+ var affix = /сехет$/i.exec(output) ? 'рен' : /çул$/i.exec(output) ? 'тан' : 'ран';
+ return output + affix;
+ },
+ past : '%s каялла',
+ s : 'пĕр-ик çеккунт',
+ m : 'пĕр минут',
+ mm : '%d минут',
+ h : 'пĕр сехет',
+ hh : '%d сехет',
+ d : 'пĕр кун',
+ dd : '%d кун',
+ M : 'пĕр уйăх',
+ MM : '%d уйăх',
+ y : 'пĕр çул',
+ yy : '%d çул'
+ },
+ ordinal : '%d-мĕш',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Welsh (cy)
+// author : Robert Allen
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('cy', {
+ months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
+ monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
+ weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
+ weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
+ weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
+ // time formats are the same as en-gb
+ longDateFormat: {
+ LT: 'HH:mm',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY LT',
+ LLLL: 'dddd, D MMMM YYYY LT'
+ },
+ calendar: {
+ sameDay: '[Heddiw am] LT',
+ nextDay: '[Yfory am] LT',
+ nextWeek: 'dddd [am] LT',
+ lastDay: '[Ddoe am] LT',
+ lastWeek: 'dddd [diwethaf am] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'mewn %s',
+ past: '%s yn ôl',
+ s: 'ychydig eiliadau',
+ m: 'munud',
+ mm: '%d munud',
+ h: 'awr',
+ hh: '%d awr',
+ d: 'diwrnod',
+ dd: '%d diwrnod',
+ M: 'mis',
+ MM: '%d mis',
+ y: 'blwyddyn',
+ yy: '%d flynedd'
+ },
+ // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
+ ordinal: function (number) {
+ var b = number,
+ output = '',
+ lookup = [
+ '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
+ 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
+ ];
+
+ if (b > 20) {
+ if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
+ output = 'fed'; // not 30ain, 70ain or 90ain
+ } else {
+ output = 'ain';
+ }
+ } else if (b > 0) {
+ output = lookup[b];
+ }
+
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : danish (da)
+// author : Ulrik Nielsen : https://github.com/mrbase
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('da', {
+ months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+ weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
+ weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY LT',
+ LLLL : 'dddd [d.] D. MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[I dag kl.] LT',
+ nextDay : '[I morgen kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[I går kl.] LT',
+ lastWeek : '[sidste] dddd [kl] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : '%s siden',
+ s : 'få sekunder',
+ m : 'et minut',
+ mm : '%d minutter',
+ h : 'en time',
+ hh : '%d timer',
+ d : 'en dag',
+ dd : '%d dage',
+ M : 'en måned',
+ MM : '%d måneder',
+ y : 'et år',
+ yy : '%d år'
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : austrian german (de-at)
+// author : lluchs : https://github.com/lluchs
+// author: Menelion Elensúle: https://github.com/Oire
+// author : Martin Groller : https://github.com/MadMG
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eine Minute', 'einer Minute'],
+ 'h': ['eine Stunde', 'einer Stunde'],
+ 'd': ['ein Tag', 'einem Tag'],
+ 'dd': [number + ' Tage', number + ' Tagen'],
+ 'M': ['ein Monat', 'einem Monat'],
+ 'MM': [number + ' Monate', number + ' Monaten'],
+ 'y': ['ein Jahr', 'einem Jahr'],
+ 'yy': [number + ' Jahre', number + ' Jahren']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ return moment.defineLocale('de-at', {
+ months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+ weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT: 'HH:mm [Uhr]',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY LT',
+ LLLL : 'dddd, D. MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[Heute um] LT',
+ sameElse: 'L',
+ nextDay: '[Morgen um] LT',
+ nextWeek: 'dddd [um] LT',
+ lastDay: '[Gestern um] LT',
+ lastWeek: '[letzten] dddd [um] LT'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : 'vor %s',
+ s : 'ein paar Sekunden',
+ m : processRelativeTime,
+ mm : '%d Minuten',
+ h : processRelativeTime,
+ hh : '%d Stunden',
+ d : processRelativeTime,
+ dd : processRelativeTime,
+ M : processRelativeTime,
+ MM : processRelativeTime,
+ y : processRelativeTime,
+ yy : processRelativeTime
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : german (de)
+// author : lluchs : https://github.com/lluchs
+// author: Menelion Elensúle: https://github.com/Oire
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eine Minute', 'einer Minute'],
+ 'h': ['eine Stunde', 'einer Stunde'],
+ 'd': ['ein Tag', 'einem Tag'],
+ 'dd': [number + ' Tage', number + ' Tagen'],
+ 'M': ['ein Monat', 'einem Monat'],
+ 'MM': [number + ' Monate', number + ' Monaten'],
+ 'y': ['ein Jahr', 'einem Jahr'],
+ 'yy': [number + ' Jahre', number + ' Jahren']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ return moment.defineLocale('de', {
+ months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+ weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT: 'HH:mm [Uhr]',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY LT',
+ LLLL : 'dddd, D. MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[Heute um] LT',
+ sameElse: 'L',
+ nextDay: '[Morgen um] LT',
+ nextWeek: 'dddd [um] LT',
+ lastDay: '[Gestern um] LT',
+ lastWeek: '[letzten] dddd [um] LT'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : 'vor %s',
+ s : 'ein paar Sekunden',
+ m : processRelativeTime,
+ mm : '%d Minuten',
+ h : processRelativeTime,
+ hh : '%d Stunden',
+ d : processRelativeTime,
+ dd : processRelativeTime,
+ M : processRelativeTime,
+ MM : processRelativeTime,
+ y : processRelativeTime,
+ yy : processRelativeTime
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : modern greek (el)
+// author : Aggelos Karalias : https://github.com/mehiel
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('el', {
+ monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
+ monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
+ months : function (momentToFormat, format) {
+ if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
+ return this._monthsGenitiveEl[momentToFormat.month()];
+ } else {
+ return this._monthsNominativeEl[momentToFormat.month()];
+ }
+ },
+ monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
+ weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
+ weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
+ weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'μμ' : 'ΜΜ';
+ } else {
+ return isLower ? 'πμ' : 'ΠΜ';
+ }
+ },
+ isPM : function (input) {
+ return ((input + '').toLowerCase()[0] === 'μ');
+ },
+ meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
+ longDateFormat : {
+ LT : 'h:mm A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendarEl : {
+ sameDay : '[Σήμερα {}] LT',
+ nextDay : '[Αύριο {}] LT',
+ nextWeek : 'dddd [{}] LT',
+ lastDay : '[Χθες {}] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 6:
+ return '[το προηγούμενο] dddd [{}] LT';
+ default:
+ return '[την προηγούμενη] dddd [{}] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ calendar : function (key, mom) {
+ var output = this._calendarEl[key],
+ hours = mom && mom.hours();
+
+ if (typeof output === 'function') {
+ output = output.apply(mom);
+ }
+
+ return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
+ },
+ relativeTime : {
+ future : 'σε %s',
+ past : '%s πριν',
+ s : 'δευτερόλεπτα',
+ m : 'ένα λεπτό',
+ mm : '%d λεπτά',
+ h : 'μία ώρα',
+ hh : '%d ώρες',
+ d : 'μία μέρα',
+ dd : '%d μέρες',
+ M : 'ένας μήνας',
+ MM : '%d μήνες',
+ y : 'ένας χρόνος',
+ yy : '%d χρόνια'
+ },
+ ordinal : function (number) {
+ return number + 'η';
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : australian english (en-au)
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('en-au', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : canadian english (en-ca)
+// author : Jonathan Abourbih : https://github.com/jonbca
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('en-ca', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM, YYYY',
+ LLL : 'D MMMM, YYYY LT',
+ LLLL : 'dddd, D MMMM, YYYY LT'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : great britain english (en-gb)
+// author : Chris Gedrim : https://github.com/chrisgedrim
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('en-gb', {
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'in %s',
+ past : '%s ago',
+ s : 'a few seconds',
+ m : 'a minute',
+ mm : '%d minutes',
+ h : 'an hour',
+ hh : '%d hours',
+ d : 'a day',
+ dd : '%d days',
+ M : 'a month',
+ MM : '%d months',
+ y : 'a year',
+ yy : '%d years'
+ },
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : esperanto (eo)
+// author : Colin Dean : https://github.com/colindean
+// komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko.
+// Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni!
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('eo', {
+ months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
+ weekdays : 'Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato'.split('_'),
+ weekdaysShort : 'Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Ĵa_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'YYYY-MM-DD',
+ LL : 'D[-an de] MMMM, YYYY',
+ LLL : 'D[-an de] MMMM, YYYY LT',
+ LLLL : 'dddd, [la] D[-an de] MMMM, YYYY LT'
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'p.t.m.' : 'P.T.M.';
+ } else {
+ return isLower ? 'a.t.m.' : 'A.T.M.';
+ }
+ },
+ calendar : {
+ sameDay : '[Hodiaŭ je] LT',
+ nextDay : '[Morgaŭ je] LT',
+ nextWeek : 'dddd [je] LT',
+ lastDay : '[Hieraŭ je] LT',
+ lastWeek : '[pasinta] dddd [je] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'je %s',
+ past : 'antaŭ %s',
+ s : 'sekundoj',
+ m : 'minuto',
+ mm : '%d minutoj',
+ h : 'horo',
+ hh : '%d horoj',
+ d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
+ dd : '%d tagoj',
+ M : 'monato',
+ MM : '%d monatoj',
+ y : 'jaro',
+ yy : '%d jaroj'
+ },
+ ordinal : '%da',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : spanish (es)
+// author : Julio Napurí : https://github.com/julionc
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
+ monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
+
+ return moment.defineLocale('es', {
+ months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return monthsShort[m.month()];
+ } else {
+ return monthsShortDot[m.month()];
+ }
+ },
+ weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+ weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+ weekdaysMin : 'Do_Lu_Ma_Mi_Ju_Vi_Sá'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY LT',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY LT'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ nextDay : function () {
+ return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ lastDay : function () {
+ return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ lastWeek : function () {
+ return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'en %s',
+ past : 'hace %s',
+ s : 'unos segundos',
+ m : 'un minuto',
+ mm : '%d minutos',
+ h : 'una hora',
+ hh : '%d horas',
+ d : 'un día',
+ dd : '%d días',
+ M : 'un mes',
+ MM : '%d meses',
+ y : 'un año',
+ yy : '%d años'
+ },
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : estonian (et)
+// author : Henry Kehlmann : https://github.com/madhenry
+// improvements : Illimar Tambek : https://github.com/ragulka
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
+ 'm' : ['ühe minuti', 'üks minut'],
+ 'mm': [number + ' minuti', number + ' minutit'],
+ 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
+ 'hh': [number + ' tunni', number + ' tundi'],
+ 'd' : ['ühe päeva', 'üks päev'],
+ 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
+ 'MM': [number + ' kuu', number + ' kuud'],
+ 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
+ 'yy': [number + ' aasta', number + ' aastat']
+ };
+ if (withoutSuffix) {
+ return format[key][2] ? format[key][2] : format[key][1];
+ }
+ return isFuture ? format[key][0] : format[key][1];
+ }
+
+ return moment.defineLocale('et', {
+ months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
+ monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
+ weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
+ weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
+ weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY LT',
+ LLLL : 'dddd, D. MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[Täna,] LT',
+ nextDay : '[Homme,] LT',
+ nextWeek : '[Järgmine] dddd LT',
+ lastDay : '[Eile,] LT',
+ lastWeek : '[Eelmine] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s pärast',
+ past : '%s tagasi',
+ s : processRelativeTime,
+ m : processRelativeTime,
+ mm : processRelativeTime,
+ h : processRelativeTime,
+ hh : processRelativeTime,
+ d : processRelativeTime,
+ dd : '%d päeva',
+ M : processRelativeTime,
+ MM : processRelativeTime,
+ y : processRelativeTime,
+ yy : processRelativeTime
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : euskara (eu)
+// author : Eneko Illarramendi : https://github.com/eillarra
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('eu', {
+ months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
+ monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
+ weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
+ weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
+ weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY[ko] MMMM[ren] D[a]',
+ LLL : 'YYYY[ko] MMMM[ren] D[a] LT',
+ LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] LT',
+ l : 'YYYY-M-D',
+ ll : 'YYYY[ko] MMM D[a]',
+ lll : 'YYYY[ko] MMM D[a] LT',
+ llll : 'ddd, YYYY[ko] MMM D[a] LT'
+ },
+ calendar : {
+ sameDay : '[gaur] LT[etan]',
+ nextDay : '[bihar] LT[etan]',
+ nextWeek : 'dddd LT[etan]',
+ lastDay : '[atzo] LT[etan]',
+ lastWeek : '[aurreko] dddd LT[etan]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s barru',
+ past : 'duela %s',
+ s : 'segundo batzuk',
+ m : 'minutu bat',
+ mm : '%d minutu',
+ h : 'ordu bat',
+ hh : '%d ordu',
+ d : 'egun bat',
+ dd : '%d egun',
+ M : 'hilabete bat',
+ MM : '%d hilabete',
+ y : 'urte bat',
+ yy : '%d urte'
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Persian (fa)
+// author : Ebrahim Byagowi : https://github.com/ebraminio
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '۱',
+ '2': '۲',
+ '3': '۳',
+ '4': '۴',
+ '5': '۵',
+ '6': '۶',
+ '7': '۷',
+ '8': '۸',
+ '9': '۹',
+ '0': '۰'
+ }, numberMap = {
+ '۱': '1',
+ '۲': '2',
+ '۳': '3',
+ '۴': '4',
+ '۵': '5',
+ '۶': '6',
+ '۷': '7',
+ '۸': '8',
+ '۹': '9',
+ '۰': '0'
+ };
+
+ return moment.defineLocale('fa', {
+ months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+ monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+ weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
+ weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
+ weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'قبل از ظهر';
+ } else {
+ return 'بعد از ظهر';
+ }
+ },
+ calendar : {
+ sameDay : '[امروز ساعت] LT',
+ nextDay : '[فردا ساعت] LT',
+ nextWeek : 'dddd [ساعت] LT',
+ lastDay : '[دیروز ساعت] LT',
+ lastWeek : 'dddd [پیش] [ساعت] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'در %s',
+ past : '%s پیش',
+ s : 'چندین ثانیه',
+ m : 'یک دقیقه',
+ mm : '%d دقیقه',
+ h : 'یک ساعت',
+ hh : '%d ساعت',
+ d : 'یک روز',
+ dd : '%d روز',
+ M : 'یک ماه',
+ MM : '%d ماه',
+ y : 'یک سال',
+ yy : '%d سال'
+ },
+ preparse: function (string) {
+ return string.replace(/[۰-۹]/g, function (match) {
+ return numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ ordinal : '%dم',
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : finnish (fi)
+// author : Tarmo Aidantausta : https://github.com/bleadof
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
+ numbersFuture = [
+ 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
+ numbersPast[7], numbersPast[8], numbersPast[9]
+ ];
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = '';
+ switch (key) {
+ case 's':
+ return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
+ case 'm':
+ return isFuture ? 'minuutin' : 'minuutti';
+ case 'mm':
+ result = isFuture ? 'minuutin' : 'minuuttia';
+ break;
+ case 'h':
+ return isFuture ? 'tunnin' : 'tunti';
+ case 'hh':
+ result = isFuture ? 'tunnin' : 'tuntia';
+ break;
+ case 'd':
+ return isFuture ? 'päivän' : 'päivä';
+ case 'dd':
+ result = isFuture ? 'päivän' : 'päivää';
+ break;
+ case 'M':
+ return isFuture ? 'kuukauden' : 'kuukausi';
+ case 'MM':
+ result = isFuture ? 'kuukauden' : 'kuukautta';
+ break;
+ case 'y':
+ return isFuture ? 'vuoden' : 'vuosi';
+ case 'yy':
+ result = isFuture ? 'vuoden' : 'vuotta';
+ break;
+ }
+ result = verbalNumber(number, isFuture) + ' ' + result;
+ return result;
+ }
+
+ function verbalNumber(number, isFuture) {
+ return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
+ }
+
+ return moment.defineLocale('fi', {
+ months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
+ monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
+ weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
+ weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
+ weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ L : 'DD.MM.YYYY',
+ LL : 'Do MMMM[ta] YYYY',
+ LLL : 'Do MMMM[ta] YYYY, [klo] LT',
+ LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] LT',
+ l : 'D.M.YYYY',
+ ll : 'Do MMM YYYY',
+ lll : 'Do MMM YYYY, [klo] LT',
+ llll : 'ddd, Do MMM YYYY, [klo] LT'
+ },
+ calendar : {
+ sameDay : '[tänään] [klo] LT',
+ nextDay : '[huomenna] [klo] LT',
+ nextWeek : 'dddd [klo] LT',
+ lastDay : '[eilen] [klo] LT',
+ lastWeek : '[viime] dddd[na] [klo] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s päästä',
+ past : '%s sitten',
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : faroese (fo)
+// author : Ragnar Johannesen : https://github.com/ragnar123
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('fo', {
+ months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+ weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
+ weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
+ weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D. MMMM, YYYY LT'
+ },
+ calendar : {
+ sameDay : '[Í dag kl.] LT',
+ nextDay : '[Í morgin kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[Í gjár kl.] LT',
+ lastWeek : '[síðstu] dddd [kl] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'um %s',
+ past : '%s síðani',
+ s : 'fá sekund',
+ m : 'ein minutt',
+ mm : '%d minuttir',
+ h : 'ein tími',
+ hh : '%d tímar',
+ d : 'ein dagur',
+ dd : '%d dagar',
+ M : 'ein mánaði',
+ MM : '%d mánaðir',
+ y : 'eitt ár',
+ yy : '%d ár'
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : canadian french (fr-ca)
+// author : Jonathan Abourbih : https://github.com/jonbca
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('fr-ca', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : '');
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : french (fr)
+// author : John Fischer : https://github.com/jfroffice
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('fr', {
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[Aujourd\'hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dans %s',
+ past : 'il y a %s',
+ s : 'quelques secondes',
+ m : 'une minute',
+ mm : '%d minutes',
+ h : 'une heure',
+ hh : '%d heures',
+ d : 'un jour',
+ dd : '%d jours',
+ M : 'un mois',
+ MM : '%d mois',
+ y : 'un an',
+ yy : '%d ans'
+ },
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : '');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : galician (gl)
+// author : Juan G. Hurtado : https://github.com/juanghurtado
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('gl', {
+ months : 'Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro'.split('_'),
+ monthsShort : 'Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.'.split('_'),
+ weekdays : 'Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado'.split('_'),
+ weekdaysShort : 'Dom._Lun._Mar._Mér._Xov._Ven._Sáb.'.split('_'),
+ weekdaysMin : 'Do_Lu_Ma_Mé_Xo_Ve_Sá'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : function () {
+ return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
+ },
+ nextDay : function () {
+ return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
+ },
+ lastDay : function () {
+ return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
+ },
+ lastWeek : function () {
+ return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : function (str) {
+ if (str === 'uns segundos') {
+ return 'nuns segundos';
+ }
+ return 'en ' + str;
+ },
+ past : 'hai %s',
+ s : 'uns segundos',
+ m : 'un minuto',
+ mm : '%d minutos',
+ h : 'unha hora',
+ hh : '%d horas',
+ d : 'un día',
+ dd : '%d días',
+ M : 'un mes',
+ MM : '%d meses',
+ y : 'un ano',
+ yy : '%d anos'
+ },
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Hebrew (he)
+// author : Tomer Cohen : https://github.com/tomer
+// author : Moshe Simantov : https://github.com/DevelopmentIL
+// author : Tal Ater : https://github.com/TalAter
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('he', {
+ months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
+ monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
+ weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
+ weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
+ weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D [ב]MMMM YYYY',
+ LLL : 'D [ב]MMMM YYYY LT',
+ LLLL : 'dddd, D [ב]MMMM YYYY LT',
+ l : 'D/M/YYYY',
+ ll : 'D MMM YYYY',
+ lll : 'D MMM YYYY LT',
+ llll : 'ddd, D MMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[היום ב־]LT',
+ nextDay : '[מחר ב־]LT',
+ nextWeek : 'dddd [בשעה] LT',
+ lastDay : '[אתמול ב־]LT',
+ lastWeek : '[ביום] dddd [האחרון בשעה] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'בעוד %s',
+ past : 'לפני %s',
+ s : 'מספר שניות',
+ m : 'דקה',
+ mm : '%d דקות',
+ h : 'שעה',
+ hh : function (number) {
+ if (number === 2) {
+ return 'שעתיים';
+ }
+ return number + ' שעות';
+ },
+ d : 'יום',
+ dd : function (number) {
+ if (number === 2) {
+ return 'יומיים';
+ }
+ return number + ' ימים';
+ },
+ M : 'חודש',
+ MM : function (number) {
+ if (number === 2) {
+ return 'חודשיים';
+ }
+ return number + ' חודשים';
+ },
+ y : 'שנה',
+ yy : function (number) {
+ if (number === 2) {
+ return 'שנתיים';
+ }
+ return number + ' שנים';
+ }
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : hindi (hi)
+// author : Mayank Singhal : https://github.com/mayanksinghal
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ return moment.defineLocale('hi', {
+ months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
+ monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
+ weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
+ weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
+ weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm बजे',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, LT',
+ LLLL : 'dddd, D MMMM YYYY, LT'
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[कल] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[कल] LT',
+ lastWeek : '[पिछले] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s में',
+ past : '%s पहले',
+ s : 'कुछ ही क्षण',
+ m : 'एक मिनट',
+ mm : '%d मिनट',
+ h : 'एक घंटा',
+ hh : '%d घंटे',
+ d : 'एक दिन',
+ dd : '%d दिन',
+ M : 'एक महीने',
+ MM : '%d महीने',
+ y : 'एक वर्ष',
+ yy : '%d वर्ष'
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ // Hindi notation for meridiems are quite fuzzy in practice. While there exists
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'रात';
+ } else if (hour < 10) {
+ return 'सुबह';
+ } else if (hour < 17) {
+ return 'दोपहर';
+ } else if (hour < 20) {
+ return 'शाम';
+ } else {
+ return 'रात';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : hrvatski (hr)
+// author : Bojan Marković : https://github.com/bmarkovic
+
+// based on (sl) translation by Robert Sedovšek
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ return moment.defineLocale('hr', {
+ months : 'sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_'),
+ monthsShort : 'sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
+ weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
+ weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY LT',
+ LLLL : 'dddd, D. MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[danas u] LT',
+ nextDay : '[sutra u] LT',
+
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[jučer u] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'prije %s',
+ s : 'par sekundi',
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : 'dan',
+ dd : translate,
+ M : 'mjesec',
+ MM : translate,
+ y : 'godinu',
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : hungarian (hu)
+// author : Adam Brunner : https://github.com/adambrunner
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var num = number,
+ suffix;
+
+ switch (key) {
+ case 's':
+ return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
+ case 'm':
+ return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'mm':
+ return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'h':
+ return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'hh':
+ return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'd':
+ return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'dd':
+ return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'M':
+ return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'MM':
+ return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'y':
+ return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
+ case 'yy':
+ return num + (isFuture || withoutSuffix ? ' év' : ' éve');
+ }
+
+ return '';
+ }
+
+ function week(isFuture) {
+ return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
+ }
+
+ return moment.defineLocale('hu', {
+ months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
+ monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
+ weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
+ weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
+ weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'YYYY.MM.DD.',
+ LL : 'YYYY. MMMM D.',
+ LLL : 'YYYY. MMMM D., LT',
+ LLLL : 'YYYY. MMMM D., dddd LT'
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower === true ? 'de' : 'DE';
+ } else {
+ return isLower === true ? 'du' : 'DU';
+ }
+ },
+ calendar : {
+ sameDay : '[ma] LT[-kor]',
+ nextDay : '[holnap] LT[-kor]',
+ nextWeek : function () {
+ return week.call(this, true);
+ },
+ lastDay : '[tegnap] LT[-kor]',
+ lastWeek : function () {
+ return week.call(this, false);
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s múlva',
+ past : '%s',
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Armenian (hy-am)
+// author : Armendarabyan : https://github.com/armendarabyan
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function monthsCaseReplace(m, format) {
+ var months = {
+ 'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'),
+ 'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_')
+ },
+
+ nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return months[nounCase][m.month()];
+ }
+
+ function monthsShortCaseReplace(m, format) {
+ var monthsShort = 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_');
+
+ return monthsShort[m.month()];
+ }
+
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_');
+
+ return weekdays[m.day()];
+ }
+
+ return moment.defineLocale('hy-am', {
+ months : monthsCaseReplace,
+ monthsShort : monthsShortCaseReplace,
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
+ weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY թ.',
+ LLL : 'D MMMM YYYY թ., LT',
+ LLLL : 'dddd, D MMMM YYYY թ., LT'
+ },
+ calendar : {
+ sameDay: '[այսօր] LT',
+ nextDay: '[վաղը] LT',
+ lastDay: '[երեկ] LT',
+ nextWeek: function () {
+ return 'dddd [օրը ժամը] LT';
+ },
+ lastWeek: function () {
+ return '[անցած] dddd [օրը ժամը] LT';
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s հետո',
+ past : '%s առաջ',
+ s : 'մի քանի վայրկյան',
+ m : 'րոպե',
+ mm : '%d րոպե',
+ h : 'ժամ',
+ hh : '%d ժամ',
+ d : 'օր',
+ dd : '%d օր',
+ M : 'ամիս',
+ MM : '%d ամիս',
+ y : 'տարի',
+ yy : '%d տարի'
+ },
+
+ meridiem : function (hour) {
+ if (hour < 4) {
+ return 'գիշերվա';
+ } else if (hour < 12) {
+ return 'առավոտվա';
+ } else if (hour < 17) {
+ return 'ցերեկվա';
+ } else {
+ return 'երեկոյան';
+ }
+ },
+
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'DDD':
+ case 'w':
+ case 'W':
+ case 'DDDo':
+ if (number === 1) {
+ return number + '-ին';
+ }
+ return number + '-րդ';
+ default:
+ return number;
+ }
+ },
+
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Bahasa Indonesia (id)
+// author : Mohammad Satrio Utomo : https://github.com/tyok
+// reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('id', {
+ months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),
+ weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
+ weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
+ weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] LT',
+ LLLL : 'dddd, D MMMM YYYY [pukul] LT'
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'siang';
+ } else if (hours < 19) {
+ return 'sore';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Besok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kemarin pukul] LT',
+ lastWeek : 'dddd [lalu pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lalu',
+ s : 'beberapa detik',
+ m : 'semenit',
+ mm : '%d menit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : icelandic (is)
+// author : Hinrik Örn Sigurðsson : https://github.com/hinrik
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function plural(n) {
+ if (n % 100 === 11) {
+ return true;
+ } else if (n % 10 === 1) {
+ return false;
+ }
+ return true;
+ }
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's':
+ return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
+ case 'm':
+ return withoutSuffix ? 'mínúta' : 'mínútu';
+ case 'mm':
+ if (plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
+ } else if (withoutSuffix) {
+ return result + 'mínúta';
+ }
+ return result + 'mínútu';
+ case 'hh':
+ if (plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
+ }
+ return result + 'klukkustund';
+ case 'd':
+ if (withoutSuffix) {
+ return 'dagur';
+ }
+ return isFuture ? 'dag' : 'degi';
+ case 'dd':
+ if (plural(number)) {
+ if (withoutSuffix) {
+ return result + 'dagar';
+ }
+ return result + (isFuture ? 'daga' : 'dögum');
+ } else if (withoutSuffix) {
+ return result + 'dagur';
+ }
+ return result + (isFuture ? 'dag' : 'degi');
+ case 'M':
+ if (withoutSuffix) {
+ return 'mánuður';
+ }
+ return isFuture ? 'mánuð' : 'mánuði';
+ case 'MM':
+ if (plural(number)) {
+ if (withoutSuffix) {
+ return result + 'mánuðir';
+ }
+ return result + (isFuture ? 'mánuði' : 'mánuðum');
+ } else if (withoutSuffix) {
+ return result + 'mánuður';
+ }
+ return result + (isFuture ? 'mánuð' : 'mánuði');
+ case 'y':
+ return withoutSuffix || isFuture ? 'ár' : 'ári';
+ case 'yy':
+ if (plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
+ }
+ return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
+ }
+ }
+
+ return moment.defineLocale('is', {
+ months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
+ weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
+ weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
+ weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] LT',
+ LLLL : 'dddd, D. MMMM YYYY [kl.] LT'
+ },
+ calendar : {
+ sameDay : '[í dag kl.] LT',
+ nextDay : '[á morgun kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[í gær kl.] LT',
+ lastWeek : '[síðasta] dddd [kl.] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'eftir %s',
+ past : 'fyrir %s síðan',
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : 'klukkustund',
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : italian (it)
+// author : Lorenzo : https://github.com/aliem
+// author: Mattia Larentis: https://github.com/nostalgiaz
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('it', {
+ months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
+ monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
+ weekdays : 'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'),
+ weekdaysShort : 'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'),
+ weekdaysMin : 'D_L_Ma_Me_G_V_S'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[Oggi alle] LT',
+ nextDay: '[Domani alle] LT',
+ nextWeek: 'dddd [alle] LT',
+ lastDay: '[Ieri alle] LT',
+ lastWeek: '[lo scorso] dddd [alle] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : function (s) {
+ return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
+ },
+ past : '%s fa',
+ s : 'alcuni secondi',
+ m : 'un minuto',
+ mm : '%d minuti',
+ h : 'un\'ora',
+ hh : '%d ore',
+ d : 'un giorno',
+ dd : '%d giorni',
+ M : 'un mese',
+ MM : '%d mesi',
+ y : 'un anno',
+ yy : '%d anni'
+ },
+ ordinal: '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : japanese (ja)
+// author : LI Long : https://github.com/baryon
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('ja', {
+ months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
+ weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
+ weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
+ longDateFormat : {
+ LT : 'Ah時m分',
+ L : 'YYYY/MM/DD',
+ LL : 'YYYY年M月D日',
+ LLL : 'YYYY年M月D日LT',
+ LLLL : 'YYYY年M月D日LT dddd'
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return '午前';
+ } else {
+ return '午後';
+ }
+ },
+ calendar : {
+ sameDay : '[今日] LT',
+ nextDay : '[明日] LT',
+ nextWeek : '[来週]dddd LT',
+ lastDay : '[昨日] LT',
+ lastWeek : '[前週]dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s後',
+ past : '%s前',
+ s : '数秒',
+ m : '1分',
+ mm : '%d分',
+ h : '1時間',
+ hh : '%d時間',
+ d : '1日',
+ dd : '%d日',
+ M : '1ヶ月',
+ MM : '%dヶ月',
+ y : '1年',
+ yy : '%d年'
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Georgian (ka)
+// author : Irakli Janiashvili : https://github.com/irakli-janiashvili
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function monthsCaseReplace(m, format) {
+ var months = {
+ 'nominative': 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
+ 'accusative': 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
+ },
+
+ nounCase = (/D[oD] *MMMM?/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return months[nounCase][m.month()];
+ }
+
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ 'nominative': 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
+ 'accusative': 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_')
+ },
+
+ nounCase = (/(წინა|შემდეგ)/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return weekdays[nounCase][m.day()];
+ }
+
+ return moment.defineLocale('ka', {
+ months : monthsCaseReplace,
+ monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
+ weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
+ longDateFormat : {
+ LT : 'h:mm A',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[დღეს] LT[-ზე]',
+ nextDay : '[ხვალ] LT[-ზე]',
+ lastDay : '[გუშინ] LT[-ზე]',
+ nextWeek : '[შემდეგ] dddd LT[-ზე]',
+ lastWeek : '[წინა] dddd LT-ზე',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : function (s) {
+ return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
+ s.replace(/ი$/, 'ში') :
+ s + 'ში';
+ },
+ past : function (s) {
+ if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
+ return s.replace(/(ი|ე)$/, 'ის წინ');
+ }
+ if ((/წელი/).test(s)) {
+ return s.replace(/წელი$/, 'წლის წინ');
+ }
+ },
+ s : 'რამდენიმე წამი',
+ m : 'წუთი',
+ mm : '%d წუთი',
+ h : 'საათი',
+ hh : '%d საათი',
+ d : 'დღე',
+ dd : '%d დღე',
+ M : 'თვე',
+ MM : '%d თვე',
+ y : 'წელი',
+ yy : '%d წელი'
+ },
+ ordinal : function (number) {
+ if (number === 0) {
+ return number;
+ }
+
+ if (number === 1) {
+ return number + '-ლი';
+ }
+
+ if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
+ return 'მე-' + number;
+ }
+
+ return number + '-ე';
+ },
+ week : {
+ dow : 1,
+ doy : 7
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : khmer (km)
+// author : Kruy Vanna : https://github.com/kruyvanna
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('km', {
+ months: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
+ monthsShort: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
+ weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY LT',
+ LLLL: 'dddd, D MMMM YYYY LT'
+ },
+ calendar: {
+ sameDay: '[ថ្ងៃនៈ ម៉ោង] LT',
+ nextDay: '[ស្អែក ម៉ោង] LT',
+ nextWeek: 'dddd [ម៉ោង] LT',
+ lastDay: '[ម្សិលមិញ ម៉ោង] LT',
+ lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: '%sទៀត',
+ past: '%sមុន',
+ s: 'ប៉ុន្មានវិនាទី',
+ m: 'មួយនាទី',
+ mm: '%d នាទី',
+ h: 'មួយម៉ោង',
+ hh: '%d ម៉ោង',
+ d: 'មួយថ្ងៃ',
+ dd: '%d ថ្ងៃ',
+ M: 'មួយខែ',
+ MM: '%d ខែ',
+ y: 'មួយឆ្នាំ',
+ yy: '%d ឆ្នាំ'
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : korean (ko)
+//
+// authors
+//
+// - Kyungwook, Park : https://github.com/kyungw00k
+// - Jeeeyul Lee
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('ko', {
+ months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
+ monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
+ weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
+ weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
+ weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
+ longDateFormat : {
+ LT : 'A h시 m분',
+ L : 'YYYY.MM.DD',
+ LL : 'YYYY년 MMMM D일',
+ LLL : 'YYYY년 MMMM D일 LT',
+ LLLL : 'YYYY년 MMMM D일 dddd LT'
+ },
+ meridiem : function (hour, minute, isUpper) {
+ return hour < 12 ? '오전' : '오후';
+ },
+ calendar : {
+ sameDay : '오늘 LT',
+ nextDay : '내일 LT',
+ nextWeek : 'dddd LT',
+ lastDay : '어제 LT',
+ lastWeek : '지난주 dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s 후',
+ past : '%s 전',
+ s : '몇초',
+ ss : '%d초',
+ m : '일분',
+ mm : '%d분',
+ h : '한시간',
+ hh : '%d시간',
+ d : '하루',
+ dd : '%d일',
+ M : '한달',
+ MM : '%d달',
+ y : '일년',
+ yy : '%d년'
+ },
+ ordinal : '%d일',
+ meridiemParse : /(오전|오후)/,
+ isPM : function (token) {
+ return token === '오후';
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Luxembourgish (lb)
+// author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
+
+// Note: Luxembourgish has a very particular phonological rule ('Eifeler Regel') that causes the
+// deletion of the final 'n' in certain contexts. That's what the 'eifelerRegelAppliesToWeekday'
+// and 'eifelerRegelAppliesToNumber' methods are meant for
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eng Minutt', 'enger Minutt'],
+ 'h': ['eng Stonn', 'enger Stonn'],
+ 'd': ['een Dag', 'engem Dag'],
+ 'M': ['ee Mount', 'engem Mount'],
+ 'y': ['ee Joer', 'engem Joer']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ function processFutureTime(string) {
+ var number = string.substr(0, string.indexOf(' '));
+ if (eifelerRegelAppliesToNumber(number)) {
+ return 'a ' + string;
+ }
+ return 'an ' + string;
+ }
+
+ function processPastTime(string) {
+ var number = string.substr(0, string.indexOf(' '));
+ if (eifelerRegelAppliesToNumber(number)) {
+ return 'viru ' + string;
+ }
+ return 'virun ' + string;
+ }
+
+ /**
+ * Returns true if the word before the given number loses the '-n' ending.
+ * e.g. 'an 10 Deeg' but 'a 5 Deeg'
+ *
+ * @param number {integer}
+ * @returns {boolean}
+ */
+ function eifelerRegelAppliesToNumber(number) {
+ number = parseInt(number, 10);
+ if (isNaN(number)) {
+ return false;
+ }
+ if (number < 0) {
+ // Negative Number --> always true
+ return true;
+ } else if (number < 10) {
+ // Only 1 digit
+ if (4 <= number && number <= 7) {
+ return true;
+ }
+ return false;
+ } else if (number < 100) {
+ // 2 digits
+ var lastDigit = number % 10, firstDigit = number / 10;
+ if (lastDigit === 0) {
+ return eifelerRegelAppliesToNumber(firstDigit);
+ }
+ return eifelerRegelAppliesToNumber(lastDigit);
+ } else if (number < 10000) {
+ // 3 or 4 digits --> recursively check first digit
+ while (number >= 10) {
+ number = number / 10;
+ }
+ return eifelerRegelAppliesToNumber(number);
+ } else {
+ // Anything larger than 4 digits: recursively check first n-3 digits
+ number = number / 1000;
+ return eifelerRegelAppliesToNumber(number);
+ }
+ }
+
+ return moment.defineLocale('lb', {
+ months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+ monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
+ weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
+ weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
+ weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm [Auer]',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY LT',
+ LLLL: 'dddd, D. MMMM YYYY LT'
+ },
+ calendar: {
+ sameDay: '[Haut um] LT',
+ sameElse: 'L',
+ nextDay: '[Muer um] LT',
+ nextWeek: 'dddd [um] LT',
+ lastDay: '[Gëschter um] LT',
+ lastWeek: function () {
+ // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
+ switch (this.day()) {
+ case 2:
+ case 4:
+ return '[Leschten] dddd [um] LT';
+ default:
+ return '[Leschte] dddd [um] LT';
+ }
+ }
+ },
+ relativeTime : {
+ future : processFutureTime,
+ past : processPastTime,
+ s : 'e puer Sekonnen',
+ m : processRelativeTime,
+ mm : '%d Minutten',
+ h : processRelativeTime,
+ hh : '%d Stonnen',
+ d : processRelativeTime,
+ dd : '%d Deeg',
+ M : processRelativeTime,
+ MM : '%d Méint',
+ y : processRelativeTime,
+ yy : '%d Joer'
+ },
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Lithuanian (lt)
+// author : Mindaugas Mozūras : https://github.com/mmozuras
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var units = {
+ 'm' : 'minutė_minutės_minutę',
+ 'mm': 'minutės_minučių_minutes',
+ 'h' : 'valanda_valandos_valandą',
+ 'hh': 'valandos_valandų_valandas',
+ 'd' : 'diena_dienos_dieną',
+ 'dd': 'dienos_dienų_dienas',
+ 'M' : 'mėnuo_mėnesio_mėnesį',
+ 'MM': 'mėnesiai_mėnesių_mėnesius',
+ 'y' : 'metai_metų_metus',
+ 'yy': 'metai_metų_metus'
+ },
+ weekDays = 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_');
+
+ function translateSeconds(number, withoutSuffix, key, isFuture) {
+ if (withoutSuffix) {
+ return 'kelios sekundės';
+ } else {
+ return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
+ }
+ }
+
+ function translateSingular(number, withoutSuffix, key, isFuture) {
+ return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
+ }
+
+ function special(number) {
+ return number % 10 === 0 || (number > 10 && number < 20);
+ }
+
+ function forms(key) {
+ return units[key].split('_');
+ }
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ if (number === 1) {
+ return result + translateSingular(number, withoutSuffix, key[0], isFuture);
+ } else if (withoutSuffix) {
+ return result + (special(number) ? forms(key)[1] : forms(key)[0]);
+ } else {
+ if (isFuture) {
+ return result + forms(key)[1];
+ } else {
+ return result + (special(number) ? forms(key)[1] : forms(key)[2]);
+ }
+ }
+ }
+
+ function relativeWeekDay(moment, format) {
+ var nominative = format.indexOf('dddd HH:mm') === -1,
+ weekDay = weekDays[moment.day()];
+
+ return nominative ? weekDay : weekDay.substring(0, weekDay.length - 2) + 'į';
+ }
+
+ return moment.defineLocale('lt', {
+ months : 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
+ monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
+ weekdays : relativeWeekDay,
+ weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
+ weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY [m.] MMMM D [d.]',
+ LLL : 'YYYY [m.] MMMM D [d.], LT [val.]',
+ LLLL : 'YYYY [m.] MMMM D [d.], dddd, LT [val.]',
+ l : 'YYYY-MM-DD',
+ ll : 'YYYY [m.] MMMM D [d.]',
+ lll : 'YYYY [m.] MMMM D [d.], LT [val.]',
+ llll : 'YYYY [m.] MMMM D [d.], ddd, LT [val.]'
+ },
+ calendar : {
+ sameDay : '[Šiandien] LT',
+ nextDay : '[Rytoj] LT',
+ nextWeek : 'dddd LT',
+ lastDay : '[Vakar] LT',
+ lastWeek : '[Praėjusį] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'po %s',
+ past : 'prieš %s',
+ s : translateSeconds,
+ m : translateSingular,
+ mm : translate,
+ h : translateSingular,
+ hh : translate,
+ d : translateSingular,
+ dd : translate,
+ M : translateSingular,
+ MM : translate,
+ y : translateSingular,
+ yy : translate
+ },
+ ordinal : function (number) {
+ return number + '-oji';
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : latvian (lv)
+// author : Kristaps Karlsons : https://github.com/skakri
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var units = {
+ 'mm': 'minūti_minūtes_minūte_minūtes',
+ 'hh': 'stundu_stundas_stunda_stundas',
+ 'dd': 'dienu_dienas_diena_dienas',
+ 'MM': 'mēnesi_mēnešus_mēnesis_mēneši',
+ 'yy': 'gadu_gadus_gads_gadi'
+ };
+
+ function format(word, number, withoutSuffix) {
+ var forms = word.split('_');
+ if (withoutSuffix) {
+ return number % 10 === 1 && number !== 11 ? forms[2] : forms[3];
+ } else {
+ return number % 10 === 1 && number !== 11 ? forms[0] : forms[1];
+ }
+ }
+
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ return number + ' ' + format(units[key], number, withoutSuffix);
+ }
+
+ return moment.defineLocale('lv', {
+ months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
+ weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
+ weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'YYYY. [gada] D. MMMM',
+ LLL : 'YYYY. [gada] D. MMMM, LT',
+ LLLL : 'YYYY. [gada] D. MMMM, dddd, LT'
+ },
+ calendar : {
+ sameDay : '[Šodien pulksten] LT',
+ nextDay : '[Rīt pulksten] LT',
+ nextWeek : 'dddd [pulksten] LT',
+ lastDay : '[Vakar pulksten] LT',
+ lastWeek : '[Pagājušā] dddd [pulksten] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s vēlāk',
+ past : '%s agrāk',
+ s : 'dažas sekundes',
+ m : 'minūti',
+ mm : relativeTimeWithPlural,
+ h : 'stundu',
+ hh : relativeTimeWithPlural,
+ d : 'dienu',
+ dd : relativeTimeWithPlural,
+ M : 'mēnesi',
+ MM : relativeTimeWithPlural,
+ y : 'gadu',
+ yy : relativeTimeWithPlural
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : macedonian (mk)
+// author : Borislav Mickov : https://github.com/B0k0
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('mk', {
+ months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
+ monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
+ weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
+ weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
+ weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'D.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[Денес во] LT',
+ nextDay : '[Утре во] LT',
+ nextWeek : 'dddd [во] LT',
+ lastDay : '[Вчера во] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[Во изминатата] dddd [во] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[Во изминатиот] dddd [во] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'после %s',
+ past : 'пред %s',
+ s : 'неколку секунди',
+ m : 'минута',
+ mm : '%d минути',
+ h : 'час',
+ hh : '%d часа',
+ d : 'ден',
+ dd : '%d дена',
+ M : 'месец',
+ MM : '%d месеци',
+ y : 'година',
+ yy : '%d години'
+ },
+ ordinal : function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : malayalam (ml)
+// author : Floyd Pink : https://github.com/floydpink
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('ml', {
+ months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
+ monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
+ weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
+ weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
+ weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm -നു',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, LT',
+ LLLL : 'dddd, D MMMM YYYY, LT'
+ },
+ calendar : {
+ sameDay : '[ഇന്ന്] LT',
+ nextDay : '[നാളെ] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[ഇന്നലെ] LT',
+ lastWeek : '[കഴിഞ്ഞ] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s കഴിഞ്ഞ്',
+ past : '%s മുൻപ്',
+ s : 'അൽപ നിമിഷങ്ങൾ',
+ m : 'ഒരു മിനിറ്റ്',
+ mm : '%d മിനിറ്റ്',
+ h : 'ഒരു മണിക്കൂർ',
+ hh : '%d മണിക്കൂർ',
+ d : 'ഒരു ദിവസം',
+ dd : '%d ദിവസം',
+ M : 'ഒരു മാസം',
+ MM : '%d മാസം',
+ y : 'ഒരു വർഷം',
+ yy : '%d വർഷം'
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'രാത്രി';
+ } else if (hour < 12) {
+ return 'രാവിലെ';
+ } else if (hour < 17) {
+ return 'ഉച്ച കഴിഞ്ഞ്';
+ } else if (hour < 20) {
+ return 'വൈകുന്നേരം';
+ } else {
+ return 'രാത്രി';
+ }
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Marathi (mr)
+// author : Harshad Kale : https://github.com/kalehv
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ return moment.defineLocale('mr', {
+ months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
+ monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
+ weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
+ weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
+ weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
+ longDateFormat : {
+ LT : 'A h:mm वाजता',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, LT',
+ LLLL : 'dddd, D MMMM YYYY, LT'
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[उद्या] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[काल] LT',
+ lastWeek: '[मागील] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s नंतर',
+ past : '%s पूर्वी',
+ s : 'सेकंद',
+ m: 'एक मिनिट',
+ mm: '%d मिनिटे',
+ h : 'एक तास',
+ hh : '%d तास',
+ d : 'एक दिवस',
+ dd : '%d दिवस',
+ M : 'एक महिना',
+ MM : '%d महिने',
+ y : 'एक वर्ष',
+ yy : '%d वर्षे'
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiem: function (hour, minute, isLower)
+ {
+ if (hour < 4) {
+ return 'रात्री';
+ } else if (hour < 10) {
+ return 'सकाळी';
+ } else if (hour < 17) {
+ return 'दुपारी';
+ } else if (hour < 20) {
+ return 'सायंकाळी';
+ } else {
+ return 'रात्री';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Bahasa Malaysia (ms-MY)
+// author : Weldan Jamili : https://github.com/weldan
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('ms-my', {
+ months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
+ weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
+ weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
+ weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat : {
+ LT : 'HH.mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY [pukul] LT',
+ LLLL : 'dddd, D MMMM YYYY [pukul] LT'
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'tengahari';
+ } else if (hours < 19) {
+ return 'petang';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Esok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kelmarin pukul] LT',
+ lastWeek : 'dddd [lepas pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'dalam %s',
+ past : '%s yang lepas',
+ s : 'beberapa saat',
+ m : 'seminit',
+ mm : '%d minit',
+ h : 'sejam',
+ hh : '%d jam',
+ d : 'sehari',
+ dd : '%d hari',
+ M : 'sebulan',
+ MM : '%d bulan',
+ y : 'setahun',
+ yy : '%d tahun'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Burmese (my)
+// author : Squar team, mysquar.com
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '၁',
+ '2': '၂',
+ '3': '၃',
+ '4': '၄',
+ '5': '၅',
+ '6': '၆',
+ '7': '၇',
+ '8': '၈',
+ '9': '၉',
+ '0': '၀'
+ }, numberMap = {
+ '၁': '1',
+ '၂': '2',
+ '၃': '3',
+ '၄': '4',
+ '၅': '5',
+ '၆': '6',
+ '၇': '7',
+ '၈': '8',
+ '၉': '9',
+ '၀': '0'
+ };
+ return moment.defineLocale('my', {
+ months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
+ monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
+ weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
+ weekdaysShort: 'နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
+ weekdaysMin: 'နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY LT',
+ LLLL: 'dddd D MMMM YYYY LT'
+ },
+ calendar: {
+ sameDay: '[ယနေ.] LT [မှာ]',
+ nextDay: '[မနက်ဖြန်] LT [မှာ]',
+ nextWeek: 'dddd LT [မှာ]',
+ lastDay: '[မနေ.က] LT [မှာ]',
+ lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: 'လာမည့် %s မှာ',
+ past: 'လွန်ခဲ့သော %s က',
+ s: 'စက္ကန်.အနည်းငယ်',
+ m: 'တစ်မိနစ်',
+ mm: '%d မိနစ်',
+ h: 'တစ်နာရီ',
+ hh: '%d နာရီ',
+ d: 'တစ်ရက်',
+ dd: '%d ရက်',
+ M: 'တစ်လ',
+ MM: '%d လ',
+ y: 'တစ်နှစ်',
+ yy: '%d နှစ်'
+ },
+ preparse: function (string) {
+ return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : norwegian bokmål (nb)
+// authors : Espen Hovlandsdal : https://github.com/rexxars
+// Sigurd Gartmann : https://github.com/sigurdga
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('nb', {
+ months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+ weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+ weekdaysShort : 'søn_man_tirs_ons_tors_fre_lør'.split('_'),
+ weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'H.mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY [kl.] LT',
+ LLLL : 'dddd D. MMMM YYYY [kl.] LT'
+ },
+ calendar : {
+ sameDay: '[i dag kl.] LT',
+ nextDay: '[i morgen kl.] LT',
+ nextWeek: 'dddd [kl.] LT',
+ lastDay: '[i går kl.] LT',
+ lastWeek: '[forrige] dddd [kl.] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'for %s siden',
+ s : 'noen sekunder',
+ m : 'ett minutt',
+ mm : '%d minutter',
+ h : 'en time',
+ hh : '%d timer',
+ d : 'en dag',
+ dd : '%d dager',
+ M : 'en måned',
+ MM : '%d måneder',
+ y : 'ett år',
+ yy : '%d år'
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : nepali/nepalese
+// author : suvash : https://github.com/suvash
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ return moment.defineLocale('ne', {
+ months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
+ monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
+ weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
+ weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
+ weekdaysMin : 'आइ._सो._मङ्_बु._बि._शु._श.'.split('_'),
+ longDateFormat : {
+ LT : 'Aको h:mm बजे',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, LT',
+ LLLL : 'dddd, D MMMM YYYY, LT'
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 3) {
+ return 'राती';
+ } else if (hour < 10) {
+ return 'बिहान';
+ } else if (hour < 15) {
+ return 'दिउँसो';
+ } else if (hour < 18) {
+ return 'बेलुका';
+ } else if (hour < 20) {
+ return 'साँझ';
+ } else {
+ return 'राती';
+ }
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[भोली] LT',
+ nextWeek : '[आउँदो] dddd[,] LT',
+ lastDay : '[हिजो] LT',
+ lastWeek : '[गएको] dddd[,] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%sमा',
+ past : '%s अगाडी',
+ s : 'केही समय',
+ m : 'एक मिनेट',
+ mm : '%d मिनेट',
+ h : 'एक घण्टा',
+ hh : '%d घण्टा',
+ d : 'एक दिन',
+ dd : '%d दिन',
+ M : 'एक महिना',
+ MM : '%d महिना',
+ y : 'एक बर्ष',
+ yy : '%d बर्ष'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : dutch (nl)
+// author : Joris Röling : https://github.com/jjupiter
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+ monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
+
+ return moment.defineLocale('nl', {
+ months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return monthsShortWithoutDots[m.month()];
+ } else {
+ return monthsShortWithDots[m.month()];
+ }
+ },
+ weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
+ weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
+ weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD-MM-YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[vandaag om] LT',
+ nextDay: '[morgen om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[gisteren om] LT',
+ lastWeek: '[afgelopen] dddd [om] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'over %s',
+ past : '%s geleden',
+ s : 'een paar seconden',
+ m : 'één minuut',
+ mm : '%d minuten',
+ h : 'één uur',
+ hh : '%d uur',
+ d : 'één dag',
+ dd : '%d dagen',
+ M : 'één maand',
+ MM : '%d maanden',
+ y : 'één jaar',
+ yy : '%d jaar'
+ },
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : norwegian nynorsk (nn)
+// author : https://github.com/mechuwind
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('nn', {
+ months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+ weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
+ weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
+ weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[I dag klokka] LT',
+ nextDay: '[I morgon klokka] LT',
+ nextWeek: 'dddd [klokka] LT',
+ lastDay: '[I går klokka] LT',
+ lastWeek: '[Føregåande] dddd [klokka] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'for %s sidan',
+ s : 'nokre sekund',
+ m : 'eit minutt',
+ mm : '%d minutt',
+ h : 'ein time',
+ hh : '%d timar',
+ d : 'ein dag',
+ dd : '%d dagar',
+ M : 'ein månad',
+ MM : '%d månader',
+ y : 'eit år',
+ yy : '%d år'
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : polish (pl)
+// author : Rafal Hirsz : https://github.com/evoL
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
+ monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
+
+ function plural(n) {
+ return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
+ }
+
+ function translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'minuta' : 'minutę';
+ case 'mm':
+ return result + (plural(number) ? 'minuty' : 'minut');
+ case 'h':
+ return withoutSuffix ? 'godzina' : 'godzinę';
+ case 'hh':
+ return result + (plural(number) ? 'godziny' : 'godzin');
+ case 'MM':
+ return result + (plural(number) ? 'miesiące' : 'miesięcy');
+ case 'yy':
+ return result + (plural(number) ? 'lata' : 'lat');
+ }
+ }
+
+ return moment.defineLocale('pl', {
+ months : function (momentToFormat, format) {
+ if (/D MMMM/.test(format)) {
+ return monthsSubjective[momentToFormat.month()];
+ } else {
+ return monthsNominative[momentToFormat.month()];
+ }
+ },
+ monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
+ weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
+ weekdaysShort : 'nie_pon_wt_śr_czw_pt_sb'.split('_'),
+ weekdaysMin : 'N_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[Dziś o] LT',
+ nextDay: '[Jutro o] LT',
+ nextWeek: '[W] dddd [o] LT',
+ lastDay: '[Wczoraj o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[W zeszłą niedzielę o] LT';
+ case 3:
+ return '[W zeszłą środę o] LT';
+ case 6:
+ return '[W zeszłą sobotę o] LT';
+ default:
+ return '[W zeszły] dddd [o] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : '%s temu',
+ s : 'kilka sekund',
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : '1 dzień',
+ dd : '%d dni',
+ M : 'miesiąc',
+ MM : translate,
+ y : 'rok',
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : brazilian portuguese (pt-br)
+// author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('pt-br', {
+ months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
+ monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
+ weekdays : 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),
+ weekdaysShort : 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
+ weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY [às] LT',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY [às] LT'
+ },
+ calendar : {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return (this.day() === 0 || this.day() === 6) ?
+ '[Último] dddd [às] LT' : // Saturday + Sunday
+ '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'em %s',
+ past : '%s atrás',
+ s : 'segundos',
+ m : 'um minuto',
+ mm : '%d minutos',
+ h : 'uma hora',
+ hh : '%d horas',
+ d : 'um dia',
+ dd : '%d dias',
+ M : 'um mês',
+ MM : '%d meses',
+ y : 'um ano',
+ yy : '%d anos'
+ },
+ ordinal : '%dº'
+ });
+}));
+// moment.js locale configuration
+// locale : portuguese (pt)
+// author : Jefferson : https://github.com/jalex79
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('pt', {
+ months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
+ monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
+ weekdays : 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),
+ weekdaysShort : 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
+ weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D [de] MMMM [de] YYYY',
+ LLL : 'D [de] MMMM [de] YYYY LT',
+ LLLL : 'dddd, D [de] MMMM [de] YYYY LT'
+ },
+ calendar : {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return (this.day() === 0 || this.day() === 6) ?
+ '[Último] dddd [às] LT' : // Saturday + Sunday
+ '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'em %s',
+ past : 'há %s',
+ s : 'segundos',
+ m : 'um minuto',
+ mm : '%d minutos',
+ h : 'uma hora',
+ hh : '%d horas',
+ d : 'um dia',
+ dd : '%d dias',
+ M : 'um mês',
+ MM : '%d meses',
+ y : 'um ano',
+ yy : '%d anos'
+ },
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : romanian (ro)
+// author : Vlad Gurdiga : https://github.com/gurdiga
+// author : Valentin Agachi : https://github.com/avaly
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'minute',
+ 'hh': 'ore',
+ 'dd': 'zile',
+ 'MM': 'luni',
+ 'yy': 'ani'
+ },
+ separator = ' ';
+ if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
+ separator = ' de ';
+ }
+
+ return number + separator + format[key];
+ }
+
+ return moment.defineLocale('ro', {
+ months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
+ monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
+ weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
+ weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
+ weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY H:mm',
+ LLLL : 'dddd, D MMMM YYYY H:mm'
+ },
+ calendar : {
+ sameDay: '[azi la] LT',
+ nextDay: '[mâine la] LT',
+ nextWeek: 'dddd [la] LT',
+ lastDay: '[ieri la] LT',
+ lastWeek: '[fosta] dddd [la] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'peste %s',
+ past : '%s în urmă',
+ s : 'câteva secunde',
+ m : 'un minut',
+ mm : relativeTimeWithPlural,
+ h : 'o oră',
+ hh : relativeTimeWithPlural,
+ d : 'o zi',
+ dd : relativeTimeWithPlural,
+ M : 'o lună',
+ MM : relativeTimeWithPlural,
+ y : 'un an',
+ yy : relativeTimeWithPlural
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : russian (ru)
+// author : Viktorminator : https://github.com/Viktorminator
+// Author : Menelion Elensúle : https://github.com/Oire
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
+ 'hh': 'час_часа_часов',
+ 'dd': 'день_дня_дней',
+ 'MM': 'месяц_месяца_месяцев',
+ 'yy': 'год_года_лет'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'минута' : 'минуту';
+ }
+ else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+
+ function monthsCaseReplace(m, format) {
+ var months = {
+ 'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
+ 'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_')
+ },
+
+ nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return months[nounCase][m.month()];
+ }
+
+ function monthsShortCaseReplace(m, format) {
+ var monthsShort = {
+ 'nominative': 'янв_фев_мар_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
+ 'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_')
+ },
+
+ nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return monthsShort[nounCase][m.month()];
+ }
+
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ 'nominative': 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
+ 'accusative': 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_')
+ },
+
+ nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return weekdays[nounCase][m.day()];
+ }
+
+ return moment.defineLocale('ru', {
+ months : monthsCaseReplace,
+ monthsShort : monthsShortCaseReplace,
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
+ weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
+ monthsParse : [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i],
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY г.',
+ LLL : 'D MMMM YYYY г., LT',
+ LLLL : 'dddd, D MMMM YYYY г., LT'
+ },
+ calendar : {
+ sameDay: '[Сегодня в] LT',
+ nextDay: '[Завтра в] LT',
+ lastDay: '[Вчера в] LT',
+ nextWeek: function () {
+ return this.day() === 2 ? '[Во] dddd [в] LT' : '[В] dddd [в] LT';
+ },
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[В прошлое] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В прошлый] dddd [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В прошлую] dddd [в] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'через %s',
+ past : '%s назад',
+ s : 'несколько секунд',
+ m : relativeTimeWithPlural,
+ mm : relativeTimeWithPlural,
+ h : 'час',
+ hh : relativeTimeWithPlural,
+ d : 'день',
+ dd : relativeTimeWithPlural,
+ M : 'месяц',
+ MM : relativeTimeWithPlural,
+ y : 'год',
+ yy : relativeTimeWithPlural
+ },
+
+ meridiemParse: /ночи|утра|дня|вечера/i,
+ isPM : function (input) {
+ return /^(дня|вечера)$/.test(input);
+ },
+
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночи';
+ } else if (hour < 12) {
+ return 'утра';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечера';
+ }
+ },
+
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ case 'w':
+ case 'W':
+ return number + '-я';
+ default:
+ return number;
+ }
+ },
+
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : slovak (sk)
+// author : Martin Minka : https://github.com/k2s
+// based on work of petrbela : https://github.com/petrbela
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
+ monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
+
+ function plural(n) {
+ return (n > 1) && (n < 5);
+ }
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'minúty' : 'minút');
+ } else {
+ return result + 'minútami';
+ }
+ break;
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'hodiny' : 'hodín');
+ } else {
+ return result + 'hodinami';
+ }
+ break;
+ case 'd': // a day / in a day / a day ago
+ return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'dni' : 'dní');
+ } else {
+ return result + 'dňami';
+ }
+ break;
+ case 'M': // a month / in a month / a month ago
+ return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'mesiace' : 'mesiacov');
+ } else {
+ return result + 'mesiacmi';
+ }
+ break;
+ case 'y': // a year / in a year / a year ago
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'roky' : 'rokov');
+ } else {
+ return result + 'rokmi';
+ }
+ break;
+ }
+ }
+
+ return moment.defineLocale('sk', {
+ months : months,
+ monthsShort : monthsShort,
+ monthsParse : (function (months, monthsShort) {
+ var i, _monthsParse = [];
+ for (i = 0; i < 12; i++) {
+ // use custom parser to solve problem with July (červenec)
+ _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
+ }
+ return _monthsParse;
+ }(months, monthsShort)),
+ weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
+ weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
+ weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
+ longDateFormat : {
+ LT: 'H:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY LT',
+ LLLL : 'dddd D. MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[dnes o] LT',
+ nextDay: '[zajtra o] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [o] LT';
+ case 3:
+ return '[v stredu o] LT';
+ case 4:
+ return '[vo štvrtok o] LT';
+ case 5:
+ return '[v piatok o] LT';
+ case 6:
+ return '[v sobotu o] LT';
+ }
+ },
+ lastDay: '[včera o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulú nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[minulý] dddd [o] LT';
+ case 3:
+ return '[minulú stredu o] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [o] LT';
+ case 6:
+ return '[minulú sobotu o] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'pred %s',
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : slovenian (sl)
+// author : Robert Sedovšek : https://github.com/sedovsek
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'ena minuta' : 'eno minuto';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2) {
+ result += 'minuti';
+ } else if (number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minut';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'ena ura' : 'eno uro';
+ case 'hh':
+ if (number === 1) {
+ result += 'ura';
+ } else if (number === 2) {
+ result += 'uri';
+ } else if (number === 3 || number === 4) {
+ result += 'ure';
+ } else {
+ result += 'ur';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dni';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mesec';
+ } else if (number === 2) {
+ result += 'meseca';
+ } else if (number === 3 || number === 4) {
+ result += 'mesece';
+ } else {
+ result += 'mesecev';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'leto';
+ } else if (number === 2) {
+ result += 'leti';
+ } else if (number === 3 || number === 4) {
+ result += 'leta';
+ } else {
+ result += 'let';
+ }
+ return result;
+ }
+ }
+
+ return moment.defineLocale('sl', {
+ months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
+ weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
+ weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
+ weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
+ longDateFormat : {
+ LT : 'H:mm',
+ L : 'DD. MM. YYYY',
+ LL : 'D. MMMM YYYY',
+ LLL : 'D. MMMM YYYY LT',
+ LLLL : 'dddd, D. MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[danes ob] LT',
+ nextDay : '[jutri ob] LT',
+
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[v] [nedeljo] [ob] LT';
+ case 3:
+ return '[v] [sredo] [ob] LT';
+ case 6:
+ return '[v] [soboto] [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[v] dddd [ob] LT';
+ }
+ },
+ lastDay : '[včeraj ob] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[prejšnja] dddd [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prejšnji] dddd [ob] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'čez %s',
+ past : '%s nazaj',
+ s : 'nekaj sekund',
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : 'en dan',
+ dd : translate,
+ M : 'en mesec',
+ MM : translate,
+ y : 'eno leto',
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Albanian (sq)
+// author : Flakërim Ismani : https://github.com/flakerimi
+// author: Menelion Elensúle: https://github.com/Oire (tests)
+// author : Oerd Cukalla : https://github.com/oerd (fixes)
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('sq', {
+ months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
+ monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
+ weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
+ weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
+ weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
+ meridiem : function (hours, minutes, isLower) {
+ return hours < 12 ? 'PD' : 'MD';
+ },
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[Sot në] LT',
+ nextDay : '[Nesër në] LT',
+ nextWeek : 'dddd [në] LT',
+ lastDay : '[Dje në] LT',
+ lastWeek : 'dddd [e kaluar në] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'në %s',
+ past : '%s më parë',
+ s : 'disa sekonda',
+ m : 'një minutë',
+ mm : '%d minuta',
+ h : 'një orë',
+ hh : '%d orë',
+ d : 'një ditë',
+ dd : '%d ditë',
+ M : 'një muaj',
+ MM : '%d muaj',
+ y : 'një vit',
+ yy : '%d vite'
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Serbian-cyrillic (sr-cyrl)
+// author : Milan Janačković : https://github.com/milan-j
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var translator = {
+ words: { //Different grammatical cases
+ m: ['један минут', 'једне минуте'],
+ mm: ['минут', 'минуте', 'минута'],
+ h: ['један сат', 'једног сата'],
+ hh: ['сат', 'сата', 'сати'],
+ dd: ['дан', 'дана', 'дана'],
+ MM: ['месец', 'месеца', 'месеци'],
+ yy: ['година', 'године', 'година']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ return moment.defineLocale('sr-cyrl', {
+ months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
+ monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
+ weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
+ weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],
+ weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
+ longDateFormat: {
+ LT: 'H:mm',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY LT',
+ LLLL: 'dddd, D. MMMM YYYY LT'
+ },
+ calendar: {
+ sameDay: '[данас у] LT',
+ nextDay: '[сутра у] LT',
+
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[у] [недељу] [у] LT';
+ case 3:
+ return '[у] [среду] [у] LT';
+ case 6:
+ return '[у] [суботу] [у] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[у] dddd [у] LT';
+ }
+ },
+ lastDay : '[јуче у] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[прошле] [недеље] [у] LT',
+ '[прошлог] [понедељка] [у] LT',
+ '[прошлог] [уторка] [у] LT',
+ '[прошле] [среде] [у] LT',
+ '[прошлог] [четвртка] [у] LT',
+ '[прошлог] [петка] [у] LT',
+ '[прошле] [суботе] [у] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'за %s',
+ past : 'пре %s',
+ s : 'неколико секунди',
+ m : translator.translate,
+ mm : translator.translate,
+ h : translator.translate,
+ hh : translator.translate,
+ d : 'дан',
+ dd : translator.translate,
+ M : 'месец',
+ MM : translator.translate,
+ y : 'годину',
+ yy : translator.translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Serbian-latin (sr)
+// author : Milan Janačković : https://github.com/milan-j
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var translator = {
+ words: { //Different grammatical cases
+ m: ['jedan minut', 'jedne minute'],
+ mm: ['minut', 'minute', 'minuta'],
+ h: ['jedan sat', 'jednog sata'],
+ hh: ['sat', 'sata', 'sati'],
+ dd: ['dan', 'dana', 'dana'],
+ MM: ['mesec', 'meseca', 'meseci'],
+ yy: ['godina', 'godine', 'godina']
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
+ }
+ }
+ };
+
+ return moment.defineLocale('sr', {
+ months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
+ monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
+ weekdays: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],
+ weekdaysShort: ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'],
+ weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
+ longDateFormat: {
+ LT: 'H:mm',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY LT',
+ LLLL: 'dddd, D. MMMM YYYY LT'
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sutra u] LT',
+
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedelju] [u] LT';
+ case 3:
+ return '[u] [sredu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[juče u] LT',
+ lastWeek : function () {
+ var lastWeekDays = [
+ '[prošle] [nedelje] [u] LT',
+ '[prošlog] [ponedeljka] [u] LT',
+ '[prošlog] [utorka] [u] LT',
+ '[prošle] [srede] [u] LT',
+ '[prošlog] [četvrtka] [u] LT',
+ '[prošlog] [petka] [u] LT',
+ '[prošle] [subote] [u] LT'
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'za %s',
+ past : 'pre %s',
+ s : 'nekoliko sekundi',
+ m : translator.translate,
+ mm : translator.translate,
+ h : translator.translate,
+ hh : translator.translate,
+ d : 'dan',
+ dd : translator.translate,
+ M : 'mesec',
+ MM : translator.translate,
+ y : 'godinu',
+ yy : translator.translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : swedish (sv)
+// author : Jens Alm : https://github.com/ulmus
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('sv', {
+ months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
+ weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
+ weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'YYYY-MM-DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[Idag] LT',
+ nextDay: '[Imorgon] LT',
+ lastDay: '[Igår] LT',
+ nextWeek: 'dddd LT',
+ lastWeek: '[Förra] dddd[en] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'om %s',
+ past : 'för %s sedan',
+ s : 'några sekunder',
+ m : 'en minut',
+ mm : '%d minuter',
+ h : 'en timme',
+ hh : '%d timmar',
+ d : 'en dag',
+ dd : '%d dagar',
+ M : 'en månad',
+ MM : '%d månader',
+ y : 'ett år',
+ yy : '%d år'
+ },
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~(number % 100 / 10) === 1) ? 'e' :
+ (b === 1) ? 'a' :
+ (b === 2) ? 'a' :
+ (b === 3) ? 'e' : 'e';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : tamil (ta)
+// author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ /*var symbolMap = {
+ '1': '௧',
+ '2': '௨',
+ '3': '௩',
+ '4': '௪',
+ '5': '௫',
+ '6': '௬',
+ '7': '௭',
+ '8': '௮',
+ '9': '௯',
+ '0': '௦'
+ },
+ numberMap = {
+ '௧': '1',
+ '௨': '2',
+ '௩': '3',
+ '௪': '4',
+ '௫': '5',
+ '௬': '6',
+ '௭': '7',
+ '௮': '8',
+ '௯': '9',
+ '௦': '0'
+ }; */
+
+ return moment.defineLocale('ta', {
+ months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
+ monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
+ weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
+ weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
+ weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY, LT',
+ LLLL : 'dddd, D MMMM YYYY, LT'
+ },
+ calendar : {
+ sameDay : '[இன்று] LT',
+ nextDay : '[நாளை] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[நேற்று] LT',
+ lastWeek : '[கடந்த வாரம்] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s இல்',
+ past : '%s முன்',
+ s : 'ஒரு சில விநாடிகள்',
+ m : 'ஒரு நிமிடம்',
+ mm : '%d நிமிடங்கள்',
+ h : 'ஒரு மணி நேரம்',
+ hh : '%d மணி நேரம்',
+ d : 'ஒரு நாள்',
+ dd : '%d நாட்கள்',
+ M : 'ஒரு மாதம்',
+ MM : '%d மாதங்கள்',
+ y : 'ஒரு வருடம்',
+ yy : '%d ஆண்டுகள்'
+ },
+/* preparse: function (string) {
+ return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },*/
+ ordinal : function (number) {
+ return number + 'வது';
+ },
+
+
+ // refer http://ta.wikipedia.org/s/1er1
+
+ meridiem : function (hour, minute, isLower) {
+ if (hour >= 6 && hour <= 10) {
+ return ' காலை';
+ } else if (hour >= 10 && hour <= 14) {
+ return ' நண்பகல்';
+ } else if (hour >= 14 && hour <= 18) {
+ return ' எற்பாடு';
+ } else if (hour >= 18 && hour <= 20) {
+ return ' மாலை';
+ } else if (hour >= 20 && hour <= 24) {
+ return ' இரவு';
+ } else if (hour >= 0 && hour <= 6) {
+ return ' வைகறை';
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : thai (th)
+// author : Kridsada Thanabulpong : https://github.com/sirn
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('th', {
+ months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
+ monthsShort : 'มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา'.split('_'),
+ weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
+ weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
+ weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
+ longDateFormat : {
+ LT : 'H นาฬิกา m นาที',
+ L : 'YYYY/MM/DD',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY เวลา LT',
+ LLLL : 'วันddddที่ D MMMM YYYY เวลา LT'
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ก่อนเที่ยง';
+ } else {
+ return 'หลังเที่ยง';
+ }
+ },
+ calendar : {
+ sameDay : '[วันนี้ เวลา] LT',
+ nextDay : '[พรุ่งนี้ เวลา] LT',
+ nextWeek : 'dddd[หน้า เวลา] LT',
+ lastDay : '[เมื่อวานนี้ เวลา] LT',
+ lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'อีก %s',
+ past : '%sที่แล้ว',
+ s : 'ไม่กี่วินาที',
+ m : '1 นาที',
+ mm : '%d นาที',
+ h : '1 ชั่วโมง',
+ hh : '%d ชั่วโมง',
+ d : '1 วัน',
+ dd : '%d วัน',
+ M : '1 เดือน',
+ MM : '%d เดือน',
+ y : '1 ปี',
+ yy : '%d ปี'
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Tagalog/Filipino (tl-ph)
+// author : Dan Hagman
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('tl-ph', {
+ months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
+ monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
+ weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
+ weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
+ weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'MM/D/YYYY',
+ LL : 'MMMM D, YYYY',
+ LLL : 'MMMM D, YYYY LT',
+ LLLL : 'dddd, MMMM DD, YYYY LT'
+ },
+ calendar : {
+ sameDay: '[Ngayon sa] LT',
+ nextDay: '[Bukas sa] LT',
+ nextWeek: 'dddd [sa] LT',
+ lastDay: '[Kahapon sa] LT',
+ lastWeek: 'dddd [huling linggo] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'sa loob ng %s',
+ past : '%s ang nakalipas',
+ s : 'ilang segundo',
+ m : 'isang minuto',
+ mm : '%d minuto',
+ h : 'isang oras',
+ hh : '%d oras',
+ d : 'isang araw',
+ dd : '%d araw',
+ M : 'isang buwan',
+ MM : '%d buwan',
+ y : 'isang taon',
+ yy : '%d taon'
+ },
+ ordinal : function (number) {
+ return number;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : turkish (tr)
+// authors : Erhan Gundogan : https://github.com/erhangundogan,
+// Burak Yiğit Kaya: https://github.com/BYK
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var suffixes = {
+ 1: '\'inci',
+ 5: '\'inci',
+ 8: '\'inci',
+ 70: '\'inci',
+ 80: '\'inci',
+
+ 2: '\'nci',
+ 7: '\'nci',
+ 20: '\'nci',
+ 50: '\'nci',
+
+ 3: '\'üncü',
+ 4: '\'üncü',
+ 100: '\'üncü',
+
+ 6: '\'ncı',
+
+ 9: '\'uncu',
+ 10: '\'uncu',
+ 30: '\'uncu',
+
+ 60: '\'ıncı',
+ 90: '\'ıncı'
+ };
+
+ return moment.defineLocale('tr', {
+ months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
+ monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
+ weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
+ weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
+ weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay : '[bugün saat] LT',
+ nextDay : '[yarın saat] LT',
+ nextWeek : '[haftaya] dddd [saat] LT',
+ lastDay : '[dün] LT',
+ lastWeek : '[geçen hafta] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : '%s sonra',
+ past : '%s önce',
+ s : 'birkaç saniye',
+ m : 'bir dakika',
+ mm : '%d dakika',
+ h : 'bir saat',
+ hh : '%d saat',
+ d : 'bir gün',
+ dd : '%d gün',
+ M : 'bir ay',
+ MM : '%d ay',
+ y : 'bir yıl',
+ yy : '%d yıl'
+ },
+ ordinal : function (number) {
+ if (number === 0) { // special case for zero
+ return number + '\'ıncı';
+ }
+ var a = number % 10,
+ b = number % 100 - a,
+ c = number >= 100 ? 100 : null;
+
+ return number + (suffixes[a] || suffixes[b] || suffixes[c]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn)
+// author : Abdel Said : https://github.com/abdelsaid
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('tzm-latn', {
+ months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
+ monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
+ weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[asdkh g] LT',
+ nextDay: '[aska g] LT',
+ nextWeek: 'dddd [g] LT',
+ lastDay: '[assant g] LT',
+ lastWeek: 'dddd [g] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'dadkh s yan %s',
+ past : 'yan %s',
+ s : 'imik',
+ m : 'minuḍ',
+ mm : '%d minuḍ',
+ h : 'saɛa',
+ hh : '%d tassaɛin',
+ d : 'ass',
+ dd : '%d ossan',
+ M : 'ayowr',
+ MM : '%d iyyirn',
+ y : 'asgas',
+ yy : '%d isgasn'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : Morocco Central Atlas Tamaziɣt (tzm)
+// author : Abdel Said : https://github.com/abdelsaid
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('tzm', {
+ months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
+ monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
+ weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd D MMMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
+ nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
+ nextWeek: 'dddd [ⴴ] LT',
+ lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
+ lastWeek: 'dddd [ⴴ] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
+ past : 'ⵢⴰⵏ %s',
+ s : 'ⵉⵎⵉⴽ',
+ m : 'ⵎⵉⵏⵓⴺ',
+ mm : '%d ⵎⵉⵏⵓⴺ',
+ h : 'ⵙⴰⵄⴰ',
+ hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
+ d : 'ⴰⵙⵙ',
+ dd : '%d oⵙⵙⴰⵏ',
+ M : 'ⴰⵢoⵓⵔ',
+ MM : '%d ⵉⵢⵢⵉⵔⵏ',
+ y : 'ⴰⵙⴳⴰⵙ',
+ yy : '%d ⵉⵙⴳⴰⵙⵏ'
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : ukrainian (uk)
+// author : zemlanin : https://github.com/zemlanin
+// Author : Menelion Elensúle : https://github.com/Oire
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'хвилина_хвилини_хвилин',
+ 'hh': 'година_години_годин',
+ 'dd': 'день_дні_днів',
+ 'MM': 'місяць_місяці_місяців',
+ 'yy': 'рік_роки_років'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвилина' : 'хвилину';
+ }
+ else if (key === 'h') {
+ return withoutSuffix ? 'година' : 'годину';
+ }
+ else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+
+ function monthsCaseReplace(m, format) {
+ var months = {
+ 'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'),
+ 'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_')
+ },
+
+ nounCase = (/D[oD]? *MMMM?/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return months[nounCase][m.month()];
+ }
+
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
+ 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
+ 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
+ },
+
+ nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
+ 'accusative' :
+ ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
+ 'genitive' :
+ 'nominative');
+
+ return weekdays[nounCase][m.day()];
+ }
+
+ function processHoursFunction(str) {
+ return function () {
+ return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
+ };
+ }
+
+ return moment.defineLocale('uk', {
+ months : monthsCaseReplace,
+ monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD.MM.YYYY',
+ LL : 'D MMMM YYYY р.',
+ LLL : 'D MMMM YYYY р., LT',
+ LLLL : 'dddd, D MMMM YYYY р., LT'
+ },
+ calendar : {
+ sameDay: processHoursFunction('[Сьогодні '),
+ nextDay: processHoursFunction('[Завтра '),
+ lastDay: processHoursFunction('[Вчора '),
+ nextWeek: processHoursFunction('[У] dddd ['),
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return processHoursFunction('[Минулої] dddd [').call(this);
+ case 1:
+ case 2:
+ case 4:
+ return processHoursFunction('[Минулого] dddd [').call(this);
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : 'за %s',
+ past : '%s тому',
+ s : 'декілька секунд',
+ m : relativeTimeWithPlural,
+ mm : relativeTimeWithPlural,
+ h : 'годину',
+ hh : relativeTimeWithPlural,
+ d : 'день',
+ dd : relativeTimeWithPlural,
+ M : 'місяць',
+ MM : relativeTimeWithPlural,
+ y : 'рік',
+ yy : relativeTimeWithPlural
+ },
+
+ // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
+
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночі';
+ } else if (hour < 12) {
+ return 'ранку';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечора';
+ }
+ },
+
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ default:
+ return number;
+ }
+ },
+
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : uzbek (uz)
+// author : Sardor Muminov : https://github.com/muminoff
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('uz', {
+ months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
+ monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
+ weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
+ weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
+ weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'D MMMM YYYY, dddd LT'
+ },
+ calendar : {
+ sameDay : '[Бугун соат] LT [да]',
+ nextDay : '[Эртага] LT [да]',
+ nextWeek : 'dddd [куни соат] LT [да]',
+ lastDay : '[Кеча соат] LT [да]',
+ lastWeek : '[Утган] dddd [куни соат] LT [да]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'Якин %s ичида',
+ past : 'Бир неча %s олдин',
+ s : 'фурсат',
+ m : 'бир дакика',
+ mm : '%d дакика',
+ h : 'бир соат',
+ hh : '%d соат',
+ d : 'бир кун',
+ dd : '%d кун',
+ M : 'бир ой',
+ MM : '%d ой',
+ y : 'бир йил',
+ yy : '%d йил'
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : vietnamese (vi)
+// author : Bang Nguyen : https://github.com/bangnk
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('vi', {
+ months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),
+ monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
+ weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
+ weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
+ weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM [năm] YYYY',
+ LLL : 'D MMMM [năm] YYYY LT',
+ LLLL : 'dddd, D MMMM [năm] YYYY LT',
+ l : 'DD/M/YYYY',
+ ll : 'D MMM YYYY',
+ lll : 'D MMM YYYY LT',
+ llll : 'ddd, D MMM YYYY LT'
+ },
+ calendar : {
+ sameDay: '[Hôm nay lúc] LT',
+ nextDay: '[Ngày mai lúc] LT',
+ nextWeek: 'dddd [tuần tới lúc] LT',
+ lastDay: '[Hôm qua lúc] LT',
+ lastWeek: 'dddd [tuần rồi lúc] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : '%s tới',
+ past : '%s trước',
+ s : 'vài giây',
+ m : 'một phút',
+ mm : '%d phút',
+ h : 'một giờ',
+ hh : '%d giờ',
+ d : 'một ngày',
+ dd : '%d ngày',
+ M : 'một tháng',
+ MM : '%d tháng',
+ y : 'một năm',
+ yy : '%d năm'
+ },
+ ordinal : function (number) {
+ return number;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : chinese (zh-cn)
+// author : suupic : https://github.com/suupic
+// author : Zeno Zeng : https://github.com/zenozeng
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('zh-cn', {
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat : {
+ LT : 'Ah点mm',
+ L : 'YYYY-MM-DD',
+ LL : 'YYYY年MMMD日',
+ LLL : 'YYYY年MMMD日LT',
+ LLLL : 'YYYY年MMMD日ddddLT',
+ l : 'YYYY-MM-DD',
+ ll : 'YYYY年MMMD日',
+ lll : 'YYYY年MMMD日LT',
+ llll : 'YYYY年MMMD日ddddLT'
+ },
+ meridiem : function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 600) {
+ return '凌晨';
+ } else if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar : {
+ sameDay : function () {
+ return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT';
+ },
+ nextDay : function () {
+ return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT';
+ },
+ lastDay : function () {
+ return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT';
+ },
+ nextWeek : function () {
+ var startOfWeek, prefix;
+ startOfWeek = moment().startOf('week');
+ prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
+ return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
+ },
+ lastWeek : function () {
+ var startOfWeek, prefix;
+ startOfWeek = moment().startOf('week');
+ prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';
+ return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
+ },
+ sameElse : 'LL'
+ },
+ ordinal : function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '日';
+ case 'M':
+ return number + '月';
+ case 'w':
+ case 'W':
+ return number + '周';
+ default:
+ return number;
+ }
+ },
+ relativeTime : {
+ future : '%s内',
+ past : '%s前',
+ s : '几秒',
+ m : '1分钟',
+ mm : '%d分钟',
+ h : '1小时',
+ hh : '%d小时',
+ d : '1天',
+ dd : '%d天',
+ M : '1个月',
+ MM : '%d个月',
+ y : '1年',
+ yy : '%d年'
+ },
+ week : {
+ // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js locale configuration
+// locale : traditional chinese (zh-tw)
+// author : Ben : https://github.com/ben-lin
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.defineLocale('zh-tw', {
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat : {
+ LT : 'Ah點mm',
+ L : 'YYYY年MMMD日',
+ LL : 'YYYY年MMMD日',
+ LLL : 'YYYY年MMMD日LT',
+ LLLL : 'YYYY年MMMD日ddddLT',
+ l : 'YYYY年MMMD日',
+ ll : 'YYYY年MMMD日',
+ lll : 'YYYY年MMMD日LT',
+ llll : 'YYYY年MMMD日ddddLT'
+ },
+ meridiem : function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar : {
+ sameDay : '[今天]LT',
+ nextDay : '[明天]LT',
+ nextWeek : '[下]ddddLT',
+ lastDay : '[昨天]LT',
+ lastWeek : '[上]ddddLT',
+ sameElse : 'L'
+ },
+ ordinal : function (number, period) {
+ switch (period) {
+ case 'd' :
+ case 'D' :
+ case 'DDD' :
+ return number + '日';
+ case 'M' :
+ return number + '月';
+ case 'w' :
+ case 'W' :
+ return number + '週';
+ default :
+ return number;
+ }
+ },
+ relativeTime : {
+ future : '%s內',
+ past : '%s前',
+ s : '幾秒',
+ m : '一分鐘',
+ mm : '%d分鐘',
+ h : '一小時',
+ hh : '%d小時',
+ d : '一天',
+ dd : '%d天',
+ M : '一個月',
+ MM : '%d個月',
+ y : '一年',
+ yy : '%d年'
+ }
+ });
+}));
+
+ moment.locale('en');
+
+
+ /************************************
+ Exposing Moment
+ ************************************/
+
+ function makeGlobal(shouldDeprecate) {
+ /*global ender:false */
+ if (typeof ender !== 'undefined') {
+ return;
+ }
+ oldGlobalMoment = globalScope.moment;
+ if (shouldDeprecate) {
+ globalScope.moment = deprecate(
+ 'Accessing Moment through the global scope is ' +
+ 'deprecated, and will be removed in an upcoming ' +
+ 'release.',
+ moment);
+ } else {
+ globalScope.moment = moment;
+ }
+ }
+
+ // CommonJS module is defined
+ if (hasModule) {
+ module.exports = moment;
+ } else if (typeof define === 'function' && define.amd) {
+ define('moment', function (require, exports, module) {
+ if (module.config && module.config() && module.config().noGlobal === true) {
+ // release the global variable
+ globalScope.moment = oldGlobalMoment;
+ }
+
+ return moment;
+ });
+ makeGlobal(true);
+ } else {
+ makeGlobal();
+ }
+}).call(this);
diff --git a/core/js/select2/LICENSE b/core/vendor/select2/LICENSE
similarity index 100%
rename from core/js/select2/LICENSE
rename to core/vendor/select2/LICENSE
diff --git a/core/css/select2/select2-spinner.gif b/core/vendor/select2/select2-spinner.gif
similarity index 100%
rename from core/css/select2/select2-spinner.gif
rename to core/vendor/select2/select2-spinner.gif
diff --git a/core/css/select2/select2.css b/core/vendor/select2/select2.css
similarity index 100%
rename from core/css/select2/select2.css
rename to core/vendor/select2/select2.css
diff --git a/core/js/select2/select2.js b/core/vendor/select2/select2.js
similarity index 100%
rename from core/js/select2/select2.js
rename to core/vendor/select2/select2.js
diff --git a/core/css/select2/select2.png b/core/vendor/select2/select2.png
similarity index 100%
rename from core/css/select2/select2.png
rename to core/vendor/select2/select2.png
diff --git a/core/css/select2/select2x2.png b/core/vendor/select2/select2x2.png
similarity index 100%
rename from core/css/select2/select2x2.png
rename to core/vendor/select2/select2x2.png
diff --git a/core/vendor/snapjs/dist/latest/snap.js b/core/vendor/snapjs/dist/latest/snap.js
new file mode 100644
index 00000000000..a0274138de0
--- /dev/null
+++ b/core/vendor/snapjs/dist/latest/snap.js
@@ -0,0 +1,785 @@
+/*! Snap.js v2.0.0-rc1 */
+(function(win, doc) {
+
+ 'use strict';
+
+ // Our export
+ var Namespace = 'Snap';
+
+ // Our main toolbelt
+ var utils = {
+
+ /**
+ * Deeply extends two objects
+ * @param {Object} destination The destination object
+ * @param {Object} source The custom options to extend destination by
+ * @return {Object} The desination object
+ */
+ extend: function(destination, source) {
+ var property;
+ for (property in source) {
+ if (source[property] && source[property].constructor && source[property].constructor === Object) {
+ destination[property] = destination[property] || {};
+ utils.extend(destination[property], source[property]);
+ } else {
+ destination[property] = source[property];
+ }
+ }
+ return destination;
+ }
+ };
+
+ /**
+ * Our Snap global that initializes our instance
+ * @param {Object} opts The custom Snap.js options
+ */
+ var Core = function( opts ) {
+
+ var self = this;
+
+ /**
+ * Our default settings for a Snap instance
+ * @type {Object}
+ */
+ var settings = self.settings = {
+ element: null,
+ dragger: null,
+ disable: 'none',
+ addBodyClasses: true,
+ hyperextensible: true,
+ resistance: 0.5,
+ flickThreshold: 50,
+ transitionSpeed: 0.3,
+ easing: 'ease',
+ maxPosition: 266,
+ minPosition: -266,
+ tapToClose: true,
+ touchToDrag: true,
+ clickToDrag: true,
+ slideIntent: 40, // degrees
+ minDragDistance: 5
+ };
+
+ /**
+ * Stores internally global data
+ * @type {Object}
+ */
+ var cache = self.cache = {
+ isDragging: false,
+ simpleStates: {
+ opening: null,
+ towards: null,
+ hyperExtending: null,
+ halfway: null,
+ flick: null,
+ translation: {
+ absolute: 0,
+ relative: 0,
+ sinceDirectionChange: 0,
+ percentage: 0
+ }
+ }
+ };
+
+ var eventList = self.eventList = {};
+
+ utils.extend(utils, {
+
+ /**
+ * Determines if we are interacting with a touch device
+ * @type {Boolean}
+ */
+ hasTouch: ('ontouchstart' in doc.documentElement || win.navigator.msPointerEnabled),
+
+ /**
+ * Returns the appropriate event type based on whether we are a touch device or not
+ * @param {String} action The "action" event you're looking for: up, down, move, out
+ * @return {String} The browsers supported event name
+ */
+ eventType: function(action) {
+ var eventTypes = {
+ down: (utils.hasTouch ? 'touchstart' : settings.clickToDrag ? 'mousedown' : ''),
+ move: (utils.hasTouch ? 'touchmove' : settings.clickToDrag ? 'mousemove' : ''),
+ up: (utils.hasTouch ? 'touchend' : settings.clickToDrag ? 'mouseup': ''),
+ out: (utils.hasTouch ? 'touchcancel' : settings.clickToDrag ? 'mouseout' : '')
+ };
+ return eventTypes[action];
+ },
+
+ /**
+ * Returns the correct "cursor" position on both browser and mobile
+ * @param {String} t The coordinate to retrieve, either "X" or "Y"
+ * @param {Object} e The event object being triggered
+ * @return {Number} The desired coordiante for the events interaction
+ */
+ page: function(t, e){
+ return (utils.hasTouch && e.touches.length && e.touches[0]) ? e.touches[0]['page'+t] : e['page'+t];
+ },
+
+
+ klass: {
+
+ /**
+ * Checks if an element has a class name
+ * @param {Object} el The element to check
+ * @param {String} name The class name to search for
+ * @return {Boolean} Returns true if the class exists
+ */
+ has: function(el, name){
+ return (el.className).indexOf(name) !== -1;
+ },
+
+ /**
+ * Adds a class name to an element
+ * @param {Object} el The element to add to
+ * @param {String} name The class name to add
+ */
+ add: function(el, name){
+ if(!utils.klass.has(el, name) && settings.addBodyClasses){
+ el.className += " "+name;
+ }
+ },
+
+ /**
+ * Removes a class name
+ * @param {Object} el The element to remove from
+ * @param {String} name The class name to remove
+ */
+ remove: function(el, name){
+ if(utils.klass.has(el, name) && settings.addBodyClasses){
+ el.className = (el.className).replace(name, "").replace(/^\s+|\s+$/g, '');
+ }
+ }
+ },
+
+ /**
+ * Dispatch a custom Snap.js event
+ * @param {String} type The event name
+ */
+ dispatchEvent: function(type) {
+ if( typeof eventList[type] === 'function') {
+ return eventList[type].apply();
+ }
+ },
+
+ /**
+ * Determines the browsers vendor prefix for CSS3
+ * @return {String} The browsers vendor prefix
+ */
+ vendor: function(){
+ var tmp = doc.createElement("div"),
+ prefixes = 'webkit Moz O ms'.split(' '),
+ i;
+ for (i in prefixes) {
+ if (typeof tmp.style[prefixes[i] + 'Transition'] !== 'undefined') {
+ return prefixes[i];
+ }
+ }
+ },
+
+ /**
+ * Determines the browsers vendor prefix for transition callback events
+ * @return {String} The event name
+ */
+ transitionCallback: function(){
+ return (cache.vendor==='Moz' || cache.vendor==='ms') ? 'transitionend' : cache.vendor+'TransitionEnd';
+ },
+
+ /**
+ * Determines if the users browser supports CSS3 transformations
+ * @return {[type]} [description]
+ */
+ canTransform: function(){
+ return typeof settings.element.style[cache.vendor+'Transform'] !== 'undefined';
+ },
+
+ /**
+ * Determines an angle between two points
+ * @param {Number} x The X coordinate
+ * @param {Number} y The Y coordinate
+ * @return {Number} The number of degrees between the two points
+ */
+ angleOfDrag: function(x, y) {
+ var degrees, theta;
+ // Calc Theta
+ theta = Math.atan2(-(cache.startDragY - y), (cache.startDragX - x));
+ if (theta < 0) {
+ theta += 2 * Math.PI;
+ }
+ // Calc Degrees
+ degrees = Math.floor(theta * (180 / Math.PI) - 180);
+ if (degrees < 0 && degrees > -180) {
+ degrees = 360 - Math.abs(degrees);
+ }
+ return Math.abs(degrees);
+ },
+
+
+ events: {
+
+ /**
+ * Adds an event to an element
+ * @param {Object} element Element to add event to
+ * @param {String} eventName The event name
+ * @param {Function} func Callback function
+ */
+ addEvent: function addEvent(element, eventName, func) {
+ if (element.addEventListener) {
+ return element.addEventListener(eventName, func, false);
+ } else if (element.attachEvent) {
+ return element.attachEvent("on" + eventName, func);
+ }
+ },
+
+ /**
+ * Removes an event to an element
+ * @param {Object} element Element to remove event from
+ * @param {String} eventName The event name
+ * @param {Function} func Callback function
+ */
+ removeEvent: function addEvent(element, eventName, func) {
+ if (element.addEventListener) {
+ return element.removeEventListener(eventName, func, false);
+ } else if (element.attachEvent) {
+ return element.detachEvent("on" + eventName, func);
+ }
+ },
+
+ /**
+ * Prevents the default event
+ * @param {Object} e The event object
+ */
+ prevent: function(e) {
+ if (e.preventDefault) {
+ e.preventDefault();
+ } else {
+ e.returnValue = false;
+ }
+ }
+ },
+
+ /**
+ * Searches the parent element until a specified attribute has been matched
+ * @param {Object} el The element to search from
+ * @param {String} attr The attribute to search for
+ * @return {Object|null} Returns a matched element if it exists, else, null
+ */
+ parentUntil: function(el, attr) {
+ var isStr = typeof attr === 'string';
+ while (el.parentNode) {
+ if (isStr && el.getAttribute && el.getAttribute(attr)){
+ return el;
+ } else if(!isStr && el === attr){
+ return el;
+ }
+ el = el.parentNode;
+ }
+ return null;
+ }
+ });
+
+
+ var action = self.action = {
+
+ /**
+ * Handles translating the elements position
+ * @type {Object}
+ */
+ translate: {
+ get: {
+
+ /**
+ * Returns the amount an element is translated
+ * @param {Number} index The index desired from the CSS3 values of translate3d
+ * @return {Number} The amount of pixels an element is translated
+ */
+ matrix: function(index) {
+
+ if( !cache.canTransform ){
+ return parseInt(settings.element.style.left, 10);
+ } else {
+ var matrix = win.getComputedStyle(settings.element)[cache.vendor+'Transform'].match(/\((.*)\)/),
+ ieOffset = 8;
+ if (matrix) {
+ matrix = matrix[1].split(',');
+
+ // Internet Explorer likes to give us 16 fucking values
+ if(matrix.length===16){
+ index+=ieOffset;
+ }
+ return parseInt(matrix[index], 10);
+ }
+ return 0;
+ }
+ }
+ },
+
+ /**
+ * Called when the element has finished transitioning
+ */
+ easeCallback: function(fn){
+ settings.element.style[cache.vendor+'Transition'] = '';
+ cache.translation = action.translate.get.matrix(4);
+ cache.easing = false;
+
+ if(cache.easingTo===0){
+ utils.klass.remove(doc.body, 'snapjs-right');
+ utils.klass.remove(doc.body, 'snapjs-left');
+ }
+
+ if( cache.once ){
+ cache.once.call(self, self.state());
+ delete cache.once;
+ }
+
+ utils.dispatchEvent('animated');
+ utils.events.removeEvent(settings.element, utils.transitionCallback(), action.translate.easeCallback);
+
+ },
+
+ /**
+ * Animates the pane by the specified amount of pixels
+ * @param {Number} n The amount of pixels to move the pane
+ */
+ easeTo: function(n, cb) {
+
+ if( !cache.canTransform ){
+ cache.translation = n;
+ action.translate.x(n);
+ } else {
+ cache.easing = true;
+ cache.easingTo = n;
+
+ settings.element.style[cache.vendor+'Transition'] = 'all ' + settings.transitionSpeed + 's ' + settings.easing;
+
+ cache.once = cb;
+
+ utils.events.addEvent(settings.element, utils.transitionCallback(), action.translate.easeCallback);
+ action.translate.x(n);
+ }
+ if(n===0){
+ settings.element.style[cache.vendor+'Transform'] = '';
+ }
+ },
+
+ /**
+ * Immediately translates the element on its X axis
+ * @param {Number} n Amount of pixels to translate
+ */
+ x: function(n) {
+ if( (settings.disable==='left' && n>0) ||
+ (settings.disable==='right' && n<0)
+ ){ return; }
+
+ if( !settings.hyperextensible ){
+ if( n===settings.maxPosition || n>settings.maxPosition ){
+ n=settings.maxPosition;
+ } else if( n===settings.minPosition || n 0,
+ translateTo = whileDragX,
+ diff;
+
+ // Shown no intent already
+ if((cache.intentChecked && !cache.hasIntent)){
+ return;
+ }
+
+ if(settings.addBodyClasses){
+ if((absoluteTranslation)>0){
+ utils.klass.add(doc.body, 'snapjs-left');
+ utils.klass.remove(doc.body, 'snapjs-right');
+ } else if((absoluteTranslation)<0){
+ utils.klass.add(doc.body, 'snapjs-right');
+ utils.klass.remove(doc.body, 'snapjs-left');
+ }
+ }
+
+ if (cache.hasIntent === false || cache.hasIntent === null) {
+
+ var deg = utils.angleOfDrag(thePageX, thePageY),
+ inRightRange = (deg >= 0 && deg <= settings.slideIntent) || (deg <= 360 && deg > (360 - settings.slideIntent)),
+ inLeftRange = (deg >= 180 && deg <= (180 + settings.slideIntent)) || (deg <= 180 && deg >= (180 - settings.slideIntent));
+ if (!inLeftRange && !inRightRange) {
+ cache.hasIntent = false;
+ } else {
+ cache.hasIntent = true;
+ }
+ cache.intentChecked = true;
+ }
+
+ if (
+ (settings.minDragDistance>=Math.abs(thePageX-cache.startDragX)) || // Has user met minimum drag distance?
+ (cache.hasIntent === false)
+ ) {
+ return;
+ }
+
+ utils.events.prevent(e);
+ utils.dispatchEvent('drag');
+
+ cache.dragWatchers.current = thePageX;
+
+ // Determine which direction we are going
+ if (cache.dragWatchers.last > thePageX) {
+ if (cache.dragWatchers.state !== 'left') {
+ cache.dragWatchers.state = 'left';
+ cache.dragWatchers.hold = thePageX;
+ }
+ cache.dragWatchers.last = thePageX;
+ } else if (cache.dragWatchers.last < thePageX) {
+ if (cache.dragWatchers.state !== 'right') {
+ cache.dragWatchers.state = 'right';
+ cache.dragWatchers.hold = thePageX;
+ }
+ cache.dragWatchers.last = thePageX;
+ }
+ if (openingLeft) {
+ // Pulling too far to the right
+ if (settings.maxPosition < absoluteTranslation) {
+ diff = (absoluteTranslation - settings.maxPosition) * settings.resistance;
+ translateTo = whileDragX - diff;
+ }
+ cache.simpleStates = {
+ opening: 'left',
+ towards: cache.dragWatchers.state,
+ hyperExtending: settings.maxPosition < absoluteTranslation,
+ halfway: absoluteTranslation > (settings.maxPosition / 2),
+ flick: Math.abs(cache.dragWatchers.current - cache.dragWatchers.hold) > settings.flickThreshold,
+ translation: {
+ absolute: absoluteTranslation,
+ relative: whileDragX,
+ sinceDirectionChange: (cache.dragWatchers.current - cache.dragWatchers.hold),
+ percentage: (absoluteTranslation/settings.maxPosition)*100
+ }
+ };
+ } else {
+ // Pulling too far to the left
+ if (settings.minPosition > absoluteTranslation) {
+ diff = (absoluteTranslation - settings.minPosition) * settings.resistance;
+ translateTo = whileDragX - diff;
+ }
+ cache.simpleStates = {
+ opening: 'right',
+ towards: cache.dragWatchers.state,
+ hyperExtending: settings.minPosition > absoluteTranslation,
+ halfway: absoluteTranslation < (settings.minPosition / 2),
+ flick: Math.abs(cache.dragWatchers.current - cache.dragWatchers.hold) > settings.flickThreshold,
+ translation: {
+ absolute: absoluteTranslation,
+ relative: whileDragX,
+ sinceDirectionChange: (cache.dragWatchers.current - cache.dragWatchers.hold),
+ percentage: (absoluteTranslation/settings.minPosition)*100
+ }
+ };
+ }
+ action.translate.x(translateTo + translated);
+ }
+ },
+
+ /**
+ * Fired when the user releases the content pane
+ * @param {Object} e Event object
+ */
+ endDrag: function(e) {
+ if (cache.isDragging) {
+ utils.dispatchEvent('end');
+ var translated = action.translate.get.matrix(4);
+
+ // Tap Close
+ if (cache.dragWatchers.current === 0 && translated !== 0 && settings.tapToClose) {
+ utils.dispatchEvent('close');
+ utils.events.prevent(e);
+ action.translate.easeTo(0);
+ cache.isDragging = false;
+ cache.startDragX = 0;
+ return;
+ }
+
+ // Revealing Left
+ if (cache.simpleStates.opening === 'left') {
+ // Halfway, Flicking, or Too Far Out
+ if ((cache.simpleStates.halfway || cache.simpleStates.hyperExtending || cache.simpleStates.flick)) {
+ if (cache.simpleStates.flick && cache.simpleStates.towards === 'left') { // Flicking Closed
+ action.translate.easeTo(0);
+ } else if (
+ (cache.simpleStates.flick && cache.simpleStates.towards === 'right') || // Flicking Open OR
+ (cache.simpleStates.halfway || cache.simpleStates.hyperExtending) // At least halfway open OR hyperextending
+ ) {
+ action.translate.easeTo(settings.maxPosition); // Open Left
+ }
+ } else {
+ action.translate.easeTo(0); // Close Left
+ }
+ // Revealing Right
+ } else if (cache.simpleStates.opening === 'right') {
+ // Halfway, Flicking, or Too Far Out
+ if ((cache.simpleStates.halfway || cache.simpleStates.hyperExtending || cache.simpleStates.flick)) {
+ if (cache.simpleStates.flick && cache.simpleStates.towards === 'right') { // Flicking Closed
+ action.translate.easeTo(0);
+ } else if (
+ (cache.simpleStates.flick && cache.simpleStates.towards === 'left') || // Flicking Open OR
+ (cache.simpleStates.halfway || cache.simpleStates.hyperExtending) // At least halfway open OR hyperextending
+ ) {
+ action.translate.easeTo(settings.minPosition); // Open Right
+ }
+ } else {
+ action.translate.easeTo(0); // Close Right
+ }
+ }
+ cache.isDragging = false;
+ cache.startDragX = utils.page('X', e);
+ }
+ }
+ }
+ };
+
+
+ // Initialize
+ if (opts.element) {
+ utils.extend(settings, opts);
+ cache.vendor = utils.vendor();
+ cache.canTransform = utils.canTransform();
+ action.drag.listen();
+ }
+ };
+
+
+ utils.extend(Core.prototype, {
+
+ /**
+ * Opens the specified side menu
+ * @param {String} side Must be "left" or "right"
+ */
+ open: function(side, cb) {
+ utils.dispatchEvent('open');
+ utils.klass.remove(doc.body, 'snapjs-expand-left');
+ utils.klass.remove(doc.body, 'snapjs-expand-right');
+
+ if (side === 'left') {
+ this.cache.simpleStates.opening = 'left';
+ this.cache.simpleStates.towards = 'right';
+ utils.klass.add(doc.body, 'snapjs-left');
+ utils.klass.remove(doc.body, 'snapjs-right');
+ this.action.translate.easeTo(this.settings.maxPosition, cb);
+ } else if (side === 'right') {
+ this.cache.simpleStates.opening = 'right';
+ this.cache.simpleStates.towards = 'left';
+ utils.klass.remove(doc.body, 'snapjs-left');
+ utils.klass.add(doc.body, 'snapjs-right');
+ this.action.translate.easeTo(this.settings.minPosition, cb);
+ }
+ },
+
+ /**
+ * Closes the pane
+ */
+ close: function(cb) {
+ utils.dispatchEvent('close');
+ this.action.translate.easeTo(0, cb);
+ },
+
+ /**
+ * Hides the content pane completely allowing for full menu visibility
+ * @param {String} side Must be "left" or "right"
+ */
+ expand: function(side){
+ var to = win.innerWidth || doc.documentElement.clientWidth;
+
+ if(side==='left'){
+ utils.dispatchEvent('expandLeft');
+ utils.klass.add(doc.body, 'snapjs-expand-left');
+ utils.klass.remove(doc.body, 'snapjs-expand-right');
+ } else {
+ utils.dispatchEvent('expandRight');
+ utils.klass.add(doc.body, 'snapjs-expand-right');
+ utils.klass.remove(doc.body, 'snapjs-expand-left');
+ to *= -1;
+ }
+ this.action.translate.easeTo(to);
+ },
+
+ /**
+ * Listen in to custom Snap events
+ * @param {String} evt The snap event name
+ * @param {Function} fn Callback function
+ * @return {Object} Snap instance
+ */
+ on: function(evt, fn) {
+ this.eventList[evt] = fn;
+ return this;
+ },
+
+ /**
+ * Stops listening to custom Snap events
+ * @param {String} evt The snap event name
+ */
+ off: function(evt) {
+ if (this.eventList[evt]) {
+ this.eventList[evt] = false;
+ }
+ },
+
+ /**
+ * Enables Snap.js events
+ */
+ enable: function() {
+ utils.dispatchEvent('enable');
+ this.action.drag.listen();
+ },
+
+ /**
+ * Disables Snap.js events
+ */
+ disable: function() {
+ utils.dispatchEvent('disable');
+ this.action.drag.stopListening();
+ },
+
+ /**
+ * Updates the instances settings
+ * @param {Object} opts The Snap options to set
+ */
+ settings: function(opts){
+ utils.extend(this.settings, opts);
+ },
+
+ /**
+ * Returns information about the state of the content pane
+ * @return {Object} Information regarding the state of the pane
+ */
+ state: function() {
+ var state,
+ fromLeft = this.action.translate.get.matrix(4);
+ if (fromLeft === this.settings.maxPosition) {
+ state = 'left';
+ } else if (fromLeft === this.settings.minPosition) {
+ state = 'right';
+ } else {
+ state = 'closed';
+ }
+ return {
+ state: state,
+ info: this.cache.simpleStates
+ };
+ }
+ });
+
+ // Assign to the global namespace
+ this[Namespace] = Core;
+
+}).call(this, window, document);
diff --git a/core/vendor/strengthify/LICENSE b/core/vendor/strengthify/LICENSE
new file mode 100644
index 00000000000..3c04738f789
--- /dev/null
+++ b/core/vendor/strengthify/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 Morris Jobke
+
+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.
diff --git a/core/vendor/strengthify/jquery.strengthify.js b/core/vendor/strengthify/jquery.strengthify.js
new file mode 100644
index 00000000000..8b62f6b2fe9
--- /dev/null
+++ b/core/vendor/strengthify/jquery.strengthify.js
@@ -0,0 +1,133 @@
+/**
+ * Strengthify - show the weakness of a password (uses zxcvbn for this)
+ * https://github.com/kabum/strengthify
+ *
+ * Version: 0.3
+ * Author: Morris Jobke (github.com/kabum)
+ *
+ * License:
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2013 Morris Jobke
+ *
+ * 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.
+ */
+
+(function ($) {
+ $.fn.strengthify = function(options) {
+ var me = this
+
+ var defaults = {
+ zxcvbn: 'zxcvbn/zxcvbn.js',
+ titles: [
+ 'Weakest',
+ 'Weak',
+ 'So-so',
+ 'Good',
+ 'Perfect'
+ ]
+ }
+
+ var options = $.extend(defaults, options)
+
+ // add elements
+ $('.strengthify-wrapper')
+ .append('
')
+ .append('
')
+ .append('
')
+ .append('
')
+ .append('
')
+
+ var oldDisplayState = $('.strengthify-wrapper').css('display')
+
+ $.ajax({
+ cache: true,
+ dataType: 'script',
+ url: options.zxcvbn
+ }).done(function() {
+ me.bind('keyup input', function() {
+ var password = $(this).val()
+
+ // hide strengthigy if no input is provided
+ var opacity = (password === '') ? 0 : 1
+ $('.strengthify-wrapper').children().css(
+ 'opacity',
+ opacity
+ ).css(
+ '-ms-filter',
+ '"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity * 100 + ')"'
+ )
+
+ // calculate result
+ var result = zxcvbn(password)
+
+ var css = ''
+ // style strengthify bar
+ // possible scores: 0-4
+ switch(result.score) {
+ case 0:
+ case 1:
+ css = 'password-bad';
+ break;
+ case 2:
+ css = 'password-medium';
+ break;
+ case 3:
+ case 4:
+ css = 'password-good';
+ break;
+ }
+
+ $('.strengthify-container').attr('class', css + ' strengthify-container')
+ // possible scores: 0-4
+ $('.strengthify-container').css(
+ 'width',
+ // if score is '0' it will be changed to '1' to
+ // not hide strengthify if the password is extremely weak
+ ((result.score == 0 ? 1 : result.score) * 25) + '%'
+ )
+ // set a title for the wrapper
+ $('.strengthify-wrapper').attr(
+ 'title',
+ options.titles[result.score]
+ ).tipsy({
+ trigger: 'manual',
+ opacity: opacity
+ }).tipsy(
+ 'show'
+ )
+
+ if(opacity === 0) {
+ $('.strengthify-wrapper').tipsy(
+ 'hide'
+ )
+ }
+
+ // reset state for empty string password
+ if(password === '') {
+ $('.strengthify-container').css('width', 0)
+ }
+
+ })
+ })
+
+ return me
+ };
+
+}(jQuery))
\ No newline at end of file
diff --git a/core/vendor/strengthify/strengthify.css b/core/vendor/strengthify/strengthify.css
new file mode 100644
index 00000000000..9340270ecfb
--- /dev/null
+++ b/core/vendor/strengthify/strengthify.css
@@ -0,0 +1,48 @@
+/**
+ * Strengthify - show the weakness of a password (uses zxcvbn for this)
+ * https://github.com/kabum/strengthify
+ * Version: 0.3
+ * License: The MIT License (MIT)
+ * Copyright (c) 2013 Morris Jobke
+ */
+
+.strengthify-wrapper > * {
+ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ opacity: 0;
+ -webkit-transition:all .5s ease-in-out;
+ -moz-transition:all .5s ease-in-out;
+ transition:all .5s ease-in-out;
+}
+
+.strengthify-bg, .strengthify-container, .strengthify-wrapper, .strengthify-separator {
+ height: 3px;
+}
+
+.strengthify-bg, .strengthify-container {
+ display: block;
+ position: absolute;
+ width: 100%;
+}
+
+.strengthify-bg {
+ background-color: #BBB;
+}
+
+.strengthify-separator {
+ display: inline-block;
+ position: absolute;
+ background-color: #FFF;
+ width: 1px;
+ z-index: 10;
+}
+
+.password-bad {
+ background-color: #C33;
+}
+.password-medium {
+ background-color: #F80;
+}
+.password-good {
+ background-color: #3C3;
+}
\ No newline at end of file
diff --git a/core/vendor/underscore/LICENSE b/core/vendor/underscore/LICENSE
new file mode 100644
index 00000000000..0d6b8739d95
--- /dev/null
+++ b/core/vendor/underscore/LICENSE
@@ -0,0 +1,23 @@
+Copyright (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative
+Reporters & Editors
+
+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.
diff --git a/core/js/underscore.js b/core/vendor/underscore/underscore.js
similarity index 99%
rename from core/js/underscore.js
rename to core/vendor/underscore/underscore.js
index ca61fdc3a4b..9a4cabecf7f 100644
--- a/core/js/underscore.js
+++ b/core/vendor/underscore/underscore.js
@@ -462,11 +462,10 @@
// Split an array into two arrays: one whose elements all satisfy the given
// predicate, and one whose elements all do not satisfy the predicate.
- _.partition = function(array, predicate, context) {
- predicate = lookupIterator(predicate);
+ _.partition = function(array, predicate) {
var pass = [], fail = [];
each(array, function(elem) {
- (predicate.call(context, elem) ? pass : fail).push(elem);
+ (predicate(elem) ? pass : fail).push(elem);
});
return [pass, fail];
};
diff --git a/core/vendor/zxcvbn/LICENSE.txt b/core/vendor/zxcvbn/LICENSE.txt
new file mode 100644
index 00000000000..661302221d8
--- /dev/null
+++ b/core/vendor/zxcvbn/LICENSE.txt
@@ -0,0 +1,20 @@
+Copyright (c) 2012 Dropbox, Inc.
+
+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.
diff --git a/core/vendor/zxcvbn/zxcvbn.js b/core/vendor/zxcvbn/zxcvbn.js
new file mode 100644
index 00000000000..46411c1df3d
--- /dev/null
+++ b/core/vendor/zxcvbn/zxcvbn.js
@@ -0,0 +1,43 @@
+(function(){var x,r,q,y,I,J,K,L,M,N,O,P,z,p,A,Q,R,S,T,U,V;O=function(b){var a,d;d=[];for(a in b)d.push(a);return 0===d.length};z=function(b,a){return b.push.apply(b,a)};U=function(b,a){var d,c,e,f,g;f=b.split("");g=[];c=0;for(e=f.length;ce;d=0<=e?++j:--j)for(c=k=d;d<=e?ke;c=d<=e?++k:--k)if(f.slice(d,+c+1||9E9)in a)i=f.slice(d,+c+1||9E9),g=a[i],h.push({pattern:"dictionary",i:d,j:c,token:b.slice(d,+c+1||9E9),matched_word:i,rank:g});return h};q=function(b){var a,d,c,e,f;d={};a=1;e=0;for(f=b.length;ep;g=0<=p?++m:--m)if(k[g][0]===a){e=g;break}-1===e?(e=k.concat([[a,f]]),i.push(e)):
+(g=k.slice(0),g.splice(e,1),g.push([a,f]),i.push(k),i.push(g))}}j=d(i);return c(h)}};c(f);i=[];k=0;for(m=j.length;k=a;1<=a?++d:--d)c.push(b);return c.join("")};p=function(b,a){var d,c;for(c=[];;){d=b.match(a);if(!d)break;d.i=d.index;d.j=d.index+d[0].length-1;c.push(d);b=b.replace(d[0],S(" ",d[0].length))}return c};N=/\d{3,}/;V=/19\d\d|200\d|201\d/;
+L=function(b){var a,d,c,e,f,g,h,i,j,k,l,m,o,s;e=[];s=p(b,/\d{4,8}/);k=0;for(m=s.length;k=c.length&&(d.push({daymonth:c.slice(2),year:c.slice(0,2),i:g,j:h}),d.push({daymonth:c.slice(0,a-2),year:c.slice(a-2),i:g,j:h}));6<=c.length&&(d.push({daymonth:c.slice(4),year:c.slice(0,4),i:g,j:h}),d.push({daymonth:c.slice(0,a-4),year:c.slice(a-4),i:g,j:h}));c=[];l=0;for(o=d.length;l=a&&12>=b&&(a=[a,b],b=a[0],a=a[1]);return 31=d)?[!1,[]]:[!0,[b,a,d]]};var W,X,Y,Z,
+C,$,aa,ba,ca,da,ea,fa,ga,ha,n,ia,u,ja,D,ka,la,ma;u=function(b,a){var d,c,e;if(a>b)return 0;if(0===a)return 1;for(d=e=c=1;1<=a?e<=a:e>=a;d=1<=a?++e:--e)c*=b,c/=d,b-=1;return c};n=function(b){return Math.log(b)/Math.log(2)};ia=function(b,a){var d,c,e,f,g,h,i,j,k,l,m;c=C(b);k=[];d=[];f=i=0;for(m=b.length;0<=m?im;f=0<=m?++i:--i){k[f]=(k[f-1]||0)+n(c);d[f]=null;j=0;for(l=a.length;jb.year?n(37200):n(44268);b.separator&&(a+=2);return a};la=function(b){var a,d,c,e,f,g,h,i,j,k;"qwerty"===(c=b.graph)||"dvorak"===c?(h=na,d=oa):(h=pa,d=qa);f=0;a=b.token.length;i=b.turns;for(c=j=2;2<=a?j<=a:j>=a;c=2<=a?++j:--j){g=Math.min(i,
+c-1);for(e=k=1;1<=g?k<=g:k>=g;e=1<=g?++k:--k)f+=u(c-1,e-1)*h*Math.pow(d,e)}d=n(f);if(b.shifted_count){a=b.shifted_count;b=b.token.length-b.shifted_count;c=e=f=0;for(g=Math.min(a,b);0<=g?e<=g:e>=g;c=0<=g?++e:--e)f+=u(a+b,c);d+=n(f)}return d};ca=function(b){b.base_entropy=n(b.rank);b.uppercase_entropy=ha(b);b.l33t_entropy=ga(b);return b.base_entropy+b.uppercase_entropy+b.l33t_entropy};Z=/^[A-Z][^A-Z]+$/;Y=/^[^A-Z]+[A-Z]$/;X=/^[^a-z]+$/;W=/^[^A-Z]+$/;ha=function(b){var a,d,c,e,f,g,h;f=b.token;if(f.match(W))return 0;
+e=[Z,Y,X];a=0;for(c=e.length;a=h;c=0<=h?++g:--g)e+=u(a+b,c);return n(e)};ga=function(b){var a,d,c,e,f,g,h,i,j,k;if(!b.l33t)return 0;f=0;j=b.sub;for(g in j){h=j[g];a=function(){var a,
+d,e,f;e=b.token.split("");f=[];a=0;for(d=e.length;a=k;e=0<=k?++i:--i)f+=u(d+a,e)}return n(f)||1};C=function(b){var a,d,c,e,f,g,h,i;f=[!1,!1,!1,!1,!1];c=f[0];g=f[1];d=f[2];e=f[3];f=f[4];i=b.split("");b=0;for(h=i.length;b=a?d=!0:65<=a&&90>=a?g=!0:97<=a&&
+122>=a?c=!0:127>=a?e=!0:f=!0;b=0;d&&(b+=10);g&&(b+=26);c&&(b+=26);e&&(b+=33);f&&(b+=100);return b};ea=function(b){return 60>b?"instant":3600>b?""+(1+Math.ceil(b/60))+" minutes":86400>b?""+(1+Math.ceil(b/3600))+" hours":2678400>b?""+(1+Math.ceil(b/86400))+" days":32140800>b?""+(1+Math.ceil(b/2678400))+" months":321408E4>b?""+(1+Math.ceil(b/32140800))+" years":"centuries"};var E={"!":["`~",null,null,"2@","qQ",null],'"':[";:","[{","]}",null,null,"/?"],"#":["2@",null,null,"4$","eE","wW"],$:["3#",null,
+null,"5%","rR","eE"],"%":["4$",null,null,"6^","tT","rR"],"&":["6^",null,null,"8*","uU","yY"],"'":[";:","[{","]}",null,null,"/?"],"(":["8*",null,null,"0)","oO","iI"],")":["9(",null,null,"-_","pP","oO"],"*":["7&",null,null,"9(","iI","uU"],"+":["-_",null,null,null,"]}","[{"],",":["mM","kK","lL",".>",null,null],"-":["0)",null,null,"=+","[{","pP"],".":[",<","lL",";:","/?",null,null],"/":[".>",";:","'\"",null,null,null],"0":["9(",null,null,"-_","pP","oO"],1:["`~",null,null,"2@","qQ",null],2:["1!",null,
+null,"3#","wW","qQ"],3:["2@",null,null,"4$","eE","wW"],4:["3#",null,null,"5%","rR","eE"],5:["4$",null,null,"6^","tT","rR"],6:["5%",null,null,"7&","yY","tT"],7:["6^",null,null,"8*","uU","yY"],8:["7&",null,null,"9(","iI","uU"],9:["8*",null,null,"0)","oO","iI"],":":"lL,pP,[{,'\",/?,.>".split(","),";":"lL,pP,[{,'\",/?,.>".split(","),"<":["mM","kK","lL",".>",null,null],"=":["-_",null,null,null,"]}","[{"],">":[",<","lL",";:","/?",null,null],"?":[".>",";:","'\"",null,null,null],"@":["1!",null,null,"3#",
+"wW","qQ"],A:[null,"qQ","wW","sS","zZ",null],B:["vV","gG","hH","nN",null,null],C:["xX","dD","fF","vV",null,null],D:"sS,eE,rR,fF,cC,xX".split(","),E:"wW,3#,4$,rR,dD,sS".split(","),F:"dD,rR,tT,gG,vV,cC".split(","),G:"fF,tT,yY,hH,bB,vV".split(","),H:"gG,yY,uU,jJ,nN,bB".split(","),I:"uU,8*,9(,oO,kK,jJ".split(","),J:"hH,uU,iI,kK,mM,nN".split(","),K:"jJ iI oO lL ,< mM".split(" "),L:"kK oO pP ;: .> ,<".split(" "),M:["nN","jJ","kK",",<",null,null],N:["bB","hH","jJ","mM",null,null],O:"iI,9(,0),pP,lL,kK".split(","),
+P:"oO,0),-_,[{,;:,lL".split(","),Q:[null,"1!","2@","wW","aA",null],R:"eE,4$,5%,tT,fF,dD".split(","),S:"aA,wW,eE,dD,xX,zZ".split(","),T:"rR,5%,6^,yY,gG,fF".split(","),U:"yY,7&,8*,iI,jJ,hH".split(","),V:["cC","fF","gG","bB",null,null],W:"qQ,2@,3#,eE,sS,aA".split(","),X:["zZ","sS","dD","cC",null,null],Y:"tT,6^,7&,uU,hH,gG".split(","),Z:[null,"aA","sS","xX",null,null],"[":"pP,-_,=+,]},'\",;:".split(","),"\\":["]}",null,null,null,null,null],"]":["[{","=+",null,"\\|",null,"'\""],"^":["5%",null,null,"7&",
+"yY","tT"],_:["0)",null,null,"=+","[{","pP"],"`":[null,null,null,"1!",null,null],a:[null,"qQ","wW","sS","zZ",null],b:["vV","gG","hH","nN",null,null],c:["xX","dD","fF","vV",null,null],d:"sS,eE,rR,fF,cC,xX".split(","),e:"wW,3#,4$,rR,dD,sS".split(","),f:"dD,rR,tT,gG,vV,cC".split(","),g:"fF,tT,yY,hH,bB,vV".split(","),h:"gG,yY,uU,jJ,nN,bB".split(","),i:"uU,8*,9(,oO,kK,jJ".split(","),j:"hH,uU,iI,kK,mM,nN".split(","),k:"jJ iI oO lL ,< mM".split(" "),l:"kK oO pP ;: .> ,<".split(" "),m:["nN","jJ","kK",",<",
+null,null],n:["bB","hH","jJ","mM",null,null],o:"iI,9(,0),pP,lL,kK".split(","),p:"oO,0),-_,[{,;:,lL".split(","),q:[null,"1!","2@","wW","aA",null],r:"eE,4$,5%,tT,fF,dD".split(","),s:"aA,wW,eE,dD,xX,zZ".split(","),t:"rR,5%,6^,yY,gG,fF".split(","),u:"yY,7&,8*,iI,jJ,hH".split(","),v:["cC","fF","gG","bB",null,null],w:"qQ,2@,3#,eE,sS,aA".split(","),x:["zZ","sS","dD","cC",null,null],y:"tT,6^,7&,uU,hH,gG".split(","),z:[null,"aA","sS","xX",null,null],"{":"pP,-_,=+,]},'\",;:".split(","),"|":["]}",null,null,
+null,null,null],"}":["[{","=+",null,"\\|",null,"'\""],"~":[null,null,null,"1!",null,null]},F={"*":["/",null,null,null,"-","+","9","8"],"+":["9","*","-",null,null,null,null,"6"],"-":["*",null,null,null,null,null,"+","9"],".":["0","2","3",null,null,null,null,null],"/":[null,null,null,null,"*","9","8","7"],"0":[null,"1","2","3",".",null,null,null],1:[null,null,"4","5","2","0",null,null],2:["1","4","5","6","3",".","0",null],3:["2","5","6",null,null,null,".","0"],4:[null,null,"7","8","5","2","1",null],
+5:"4,7,8,9,6,3,2,1".split(","),6:["5","8","9","+",null,null,"3","2"],7:[null,null,null,"/","8","5","4",null],8:["7",null,"/","*","9","6","5","4"],9:["8","/","*","-","+",null,"6","5"]},v,G,oa,na,qa,pa,ra,t,w,H;v=[r("passwords",q("password,123456,12345678,1234,qwerty,12345,dragon,pussy,baseball,football,letmein,monkey,696969,abc123,mustang,shadow,master,111111,2000,jordan,superman,harley,1234567,fuckme,hunter,fuckyou,trustno1,ranger,buster,tigger,soccer,fuck,batman,test,pass,killer,hockey,charlie,love,sunshine,asshole,6969,pepper,access,123456789,654321,maggie,starwars,silver,dallas,yankees,123123,666666,hello,orange,biteme,freedom,computer,sexy,thunder,ginger,hammer,summer,corvette,fucker,austin,1111,merlin,121212,golfer,cheese,princess,chelsea,diamond,yellow,bigdog,secret,asdfgh,sparky,cowboy,camaro,matrix,falcon,iloveyou,guitar,purple,scooter,phoenix,aaaaaa,tigers,porsche,mickey,maverick,cookie,nascar,peanut,131313,money,horny,samantha,panties,steelers,snoopy,boomer,whatever,iceman,smokey,gateway,dakota,cowboys,eagles,chicken,dick,black,zxcvbn,ferrari,knight,hardcore,compaq,coffee,booboo,bitch,bulldog,xxxxxx,welcome,player,ncc1701,wizard,scooby,junior,internet,bigdick,brandy,tennis,blowjob,banana,monster,spider,lakers,rabbit,enter,mercedes,fender,yamaha,diablo,boston,tiger,marine,chicago,rangers,gandalf,winter,bigtits,barney,raiders,porn,badboy,blowme,spanky,bigdaddy,chester,london,midnight,blue,fishing,000000,hannah,slayer,11111111,sexsex,redsox,thx1138,asdf,marlboro,panther,zxcvbnm,arsenal,qazwsx,mother,7777777,jasper,winner,golden,butthead,viking,iwantu,angels,prince,cameron,girls,madison,hooters,startrek,captain,maddog,jasmine,butter,booger,golf,rocket,theman,liverpoo,flower,forever,muffin,turtle,sophie,redskins,toyota,sierra,winston,giants,packers,newyork,casper,bubba,112233,lovers,mountain,united,driver,helpme,fucking,pookie,lucky,maxwell,8675309,bear,suckit,gators,5150,222222,shithead,fuckoff,jaguar,hotdog,tits,gemini,lover,xxxxxxxx,777777,canada,florida,88888888,rosebud,metallic,doctor,trouble,success,stupid,tomcat,warrior,peaches,apples,fish,qwertyui,magic,buddy,dolphins,rainbow,gunner,987654,freddy,alexis,braves,cock,2112,1212,cocacola,xavier,dolphin,testing,bond007,member,voodoo,7777,samson,apollo,fire,tester,beavis,voyager,porno,rush2112,beer,apple,scorpio,skippy,sydney,red123,power,beaver,star,jackass,flyers,boobs,232323,zzzzzz,scorpion,doggie,legend,ou812,yankee,blazer,runner,birdie,bitches,555555,topgun,asdfasdf,heaven,viper,animal,2222,bigboy,4444,private,godzilla,lifehack,phantom,rock,august,sammy,cool,platinum,jake,bronco,heka6w2,copper,cumshot,garfield,willow,cunt,slut,69696969,kitten,super,jordan23,eagle1,shelby,america,11111,free,123321,chevy,bullshit,broncos,horney,surfer,nissan,999999,saturn,airborne,elephant,shit,action,adidas,qwert,1313,explorer,police,christin,december,wolf,sweet,therock,online,dickhead,brooklyn,cricket,racing,penis,0000,teens,redwings,dreams,michigan,hentai,magnum,87654321,donkey,trinity,digital,333333,cartman,guinness,123abc,speedy,buffalo,kitty,pimpin,eagle,einstein,nirvana,vampire,xxxx,playboy,pumpkin,snowball,test123,sucker,mexico,beatles,fantasy,celtic,cherry,cassie,888888,sniper,genesis,hotrod,reddog,alexande,college,jester,passw0rd,bigcock,lasvegas,slipknot,3333,death,1q2w3e,eclipse,1q2w3e4r,drummer,montana,music,aaaa,carolina,colorado,creative,hello1,goober,friday,bollocks,scotty,abcdef,bubbles,hawaii,fluffy,horses,thumper,5555,pussies,darkness,asdfghjk,boobies,buddha,sandman,naughty,honda,azerty,6666,shorty,money1,beach,loveme,4321,simple,poohbear,444444,badass,destiny,vikings,lizard,assman,nintendo,123qwe,november,xxxxx,october,leather,bastard,101010,extreme,password1,pussy1,lacrosse,hotmail,spooky,amateur,alaska,badger,paradise,maryjane,poop,mozart,video,vagina,spitfire,cherokee,cougar,420420,horse,enigma,raider,brazil,blonde,55555,dude,drowssap,lovely,1qaz2wsx,booty,snickers,nipples,diesel,rocks,eminem,westside,suzuki,passion,hummer,ladies,alpha,suckme,147147,pirate,semperfi,jupiter,redrum,freeuser,wanker,stinky,ducati,paris,babygirl,windows,spirit,pantera,monday,patches,brutus,smooth,penguin,marley,forest,cream,212121,flash,maximus,nipple,vision,pokemon,champion,fireman,indian,softball,picard,system,cobra,enjoy,lucky1,boogie,marines,security,dirty,admin,wildcats,pimp,dancer,hardon,fucked,abcd1234,abcdefg,ironman,wolverin,freepass,bigred,squirt,justice,hobbes,pearljam,mercury,domino,9999,rascal,hitman,mistress,bbbbbb,peekaboo,naked,budlight,electric,sluts,stargate,saints,bondage,bigman,zombie,swimming,duke,qwerty1,babes,scotland,disney,rooster,mookie,swordfis,hunting,blink182,8888,samsung,bubba1,whore,general,passport,aaaaaaaa,erotic,liberty,arizona,abcd,newport,skipper,rolltide,balls,happy1,galore,christ,weasel,242424,wombat,digger,classic,bulldogs,poopoo,accord,popcorn,turkey,bunny,mouse,007007,titanic,liverpool,dreamer,everton,chevelle,psycho,nemesis,pontiac,connor,eatme,lickme,cumming,ireland,spiderma,patriots,goblue,devils,empire,asdfg,cardinal,shaggy,froggy,qwer,kawasaki,kodiak,phpbb,54321,chopper,hooker,whynot,lesbian,snake,teen,ncc1701d,qqqqqq,airplane,britney,avalon,sugar,sublime,wildcat,raven,scarface,elizabet,123654,trucks,wolfpack,pervert,redhead,american,bambam,woody,shaved,snowman,tiger1,chicks,raptor,1969,stingray,shooter,france,stars,madmax,sports,789456,simpsons,lights,chronic,hahaha,packard,hendrix,service,spring,srinivas,spike,252525,bigmac,suck,single,popeye,tattoo,texas,bullet,taurus,sailor,wolves,panthers,japan,strike,pussycat,chris1,loverboy,berlin,sticky,tarheels,russia,wolfgang,testtest,mature,catch22,juice,michael1,nigger,159753,alpha1,trooper,hawkeye,freaky,dodgers,pakistan,machine,pyramid,vegeta,katana,moose,tinker,coyote,infinity,pepsi,letmein1,bang,hercules,james1,tickle,outlaw,browns,billybob,pickle,test1,sucks,pavilion,changeme,caesar,prelude,darkside,bowling,wutang,sunset,alabama,danger,zeppelin,pppppp,2001,ping,darkstar,madonna,qwe123,bigone,casino,charlie1,mmmmmm,integra,wrangler,apache,tweety,qwerty12,bobafett,transam,2323,seattle,ssssss,openup,pandora,pussys,trucker,indigo,storm,malibu,weed,review,babydoll,doggy,dilbert,pegasus,joker,catfish,flipper,fuckit,detroit,cheyenne,bruins,smoke,marino,fetish,xfiles,stinger,pizza,babe,stealth,manutd,gundam,cessna,longhorn,presario,mnbvcxz,wicked,mustang1,victory,21122112,awesome,athena,q1w2e3r4,holiday,knicks,redneck,12341234,gizmo,scully,dragon1,devildog,triumph,bluebird,shotgun,peewee,angel1,metallica,madman,impala,lennon,omega,access14,enterpri,search,smitty,blizzard,unicorn,tight,asdf1234,trigger,truck,beauty,thailand,1234567890,cadillac,castle,bobcat,buddy1,sunny,stones,asian,butt,loveyou,hellfire,hotsex,indiana,panzer,lonewolf,trumpet,colors,blaster,12121212,fireball,precious,jungle,atlanta,gold,corona,polaris,timber,theone,baller,chipper,skyline,dragons,dogs,licker,engineer,kong,pencil,basketba,hornet,barbie,wetpussy,indians,redman,foobar,travel,morpheus,target,141414,hotstuff,photos,rocky1,fuck_inside,dollar,turbo,design,hottie,202020,blondes,4128,lestat,avatar,goforit,random,abgrtyu,jjjjjj,cancer,q1w2e3,smiley,express,virgin,zipper,wrinkle1,babylon,consumer,monkey1,serenity,samurai,99999999,bigboobs,skeeter,joejoe,master1,aaaaa,chocolat,christia,stephani,tang,1234qwer,98765432,sexual,maxima,77777777,buckeye,highland,seminole,reaper,bassman,nugget,lucifer,airforce,nasty,warlock,2121,dodge,chrissy,burger,snatch,pink,gang,maddie,huskers,piglet,photo,dodger,paladin,chubby,buckeyes,hamlet,abcdefgh,bigfoot,sunday,manson,goldfish,garden,deftones,icecream,blondie,spartan,charger,stormy,juventus,galaxy,escort,zxcvb,planet,blues,david1,ncc1701e,1966,51505150,cavalier,gambit,ripper,oicu812,nylons,aardvark,whiskey,bing,plastic,anal,babylon5,loser,racecar,insane,yankees1,mememe,hansolo,chiefs,fredfred,freak,frog,salmon,concrete,zxcv,shamrock,atlantis,wordpass,rommel,1010,predator,massive,cats,sammy1,mister,stud,marathon,rubber,ding,trunks,desire,montreal,justme,faster,irish,1999,jessica1,alpine,diamonds,00000,swinger,shan,stallion,pitbull,letmein2,ming,shadow1,clitoris,fuckers,jackoff,bluesky,sundance,renegade,hollywoo,151515,wolfman,soldier,ling,goddess,manager,sweety,titans,fang,ficken,niners,bubble,hello123,ibanez,sweetpea,stocking,323232,tornado,content,aragorn,trojan,christop,rockstar,geronimo,pascal,crimson,google,fatcat,lovelove,cunts,stimpy,finger,wheels,viper1,latin,greenday,987654321,creampie,hiphop,snapper,funtime,duck,trombone,adult,cookies,mulder,westham,latino,jeep,ravens,drizzt,madness,energy,kinky,314159,slick,rocker,55555555,mongoose,speed,dddddd,catdog,cheng,ghost,gogogo,tottenha,curious,butterfl,mission,january,shark,techno,lancer,lalala,chichi,orion,trixie,delta,bobbob,bomber,kang,1968,spunky,liquid,beagle,granny,network,kkkkkk,1973,biggie,beetle,teacher,toronto,anakin,genius,cocks,dang,karate,snakes,bangkok,fuckyou2,pacific,daytona,infantry,skywalke,sailing,raistlin,vanhalen,huang,blackie,tarzan,strider,sherlock,gong,dietcoke,ultimate,shai,sprite,ting,artist,chai,chao,devil,python,ninja,ytrewq,superfly,456789,tian,jing,jesus1,freedom1,drpepper,chou,hobbit,shen,nolimit,mylove,biscuit,yahoo,shasta,sex4me,smoker,pebbles,pics,philly,tong,tintin,lesbians,cactus,frank1,tttttt,chun,danni,emerald,showme,pirates,lian,dogg,xiao,xian,tazman,tanker,toshiba,gotcha,rang,keng,jazz,bigguy,yuan,tomtom,chaos,fossil,racerx,creamy,bobo,musicman,warcraft,blade,shuang,shun,lick,jian,microsoft,rong,feng,getsome,quality,1977,beng,wwwwww,yoyoyo,zhang,seng,harder,qazxsw,qian,cong,chuan,deng,nang,boeing,keeper,western,1963,subaru,sheng,thuglife,teng,jiong,miao,mang,maniac,pussie,a1b2c3,zhou,zhuang,xing,stonecol,spyder,liang,jiang,memphis,ceng,magic1,logitech,chuang,sesame,shao,poison,titty,kuan,kuai,mian,guan,hamster,guai,ferret,geng,duan,pang,maiden,quan,velvet,nong,neng,nookie,buttons,bian,bingo,biao,zhong,zeng,zhun,ying,zong,xuan,zang,0.0.000,suan,shei,shui,sharks,shang,shua,peng,pian,piao,liao,meng,miami,reng,guang,cang,ruan,diao,luan,qing,chui,chuo,cuan,nuan,ning,heng,huan,kansas,muscle,weng,1passwor,bluemoon,zhui,zhua,xiang,zheng,zhen,zhei,zhao,zhan,yomama,zhai,zhuo,zuan,tarheel,shou,shuo,tiao,leng,kuang,jiao,13579,basket,qiao,qiong,qiang,chuai,nian,niao,niang,huai,22222222,zhuan,zhuai,shuan,shuai,stardust,jumper,66666666,charlott,qwertz,bones,waterloo,2002,11223344,oldman,trains,vertigo,246810,black1,swallow,smiles,standard,alexandr,parrot,user,1976,surfing,pioneer,apple1,asdasd,auburn,hannibal,frontier,panama,welcome1,vette,blue22,shemale,111222,baggins,groovy,global,181818,1979,blades,spanking,byteme,lobster,dawg,japanese,1970,1964,2424,polo,coco,deedee,mikey,1972,171717,1701,strip,jersey,green1,capital,putter,vader,seven7,banshee,grendel,dicks,hidden,iloveu,1980,ledzep,147258,female,bugger,buffett,molson,2020,wookie,sprint,jericho,102030,ranger1,trebor,deepthroat,bonehead,molly1,mirage,models,1984,2468,showtime,squirrel,pentium,anime,gator,powder,twister,connect,neptune,engine,eatshit,mustangs,woody1,shogun,septembe,pooh,jimbo,russian,sabine,voyeur,2525,363636,camel,germany,giant,qqqq,nudist,bone,sleepy,tequila,fighter,obiwan,makaveli,vacation,walnut,1974,ladybug,cantona,ccbill,satan,rusty1,passwor1,columbia,kissme,motorola,william1,1967,zzzz,skater,smut,matthew1,valley,coolio,dagger,boner,bull,horndog,jason1,penguins,rescue,griffey,8j4ye3uz,californ,champs,qwertyuiop,portland,colt45,xxxxxxx,xanadu,tacoma,carpet,gggggg,safety,palace,italia,picturs,picasso,thongs,tempest,asd123,hairy,foxtrot,nimrod,hotboy,343434,1111111,asdfghjkl,goose,overlord,stranger,454545,shaolin,sooners,socrates,spiderman,peanuts,13131313,andrew1,filthy,ohyeah,africa,intrepid,pickles,assass,fright,potato,hhhhhh,kingdom,weezer,424242,pepsi1,throat,looker,puppy,butch,sweets,megadeth,analsex,nymets,ddddddd,bigballs,oakland,oooooo,qweasd,chucky,carrot,chargers,discover,dookie,condor,horny1,sunrise,sinner,jojo,megapass,martini,assfuck,ffffff,mushroom,jamaica,7654321,77777,cccccc,gizmodo,tractor,mypass,hongkong,1975,blue123,pissing,thomas1,redred,basketball,satan666,dublin,bollox,kingkong,1971,22222,272727,sexx,bbbb,grizzly,passat,defiant,bowler,knickers,monitor,wisdom,slappy,thor,letsgo,robert1,brownie,098765,playtime,lightnin,atomic,goku,llllll,qwaszx,cosmos,bosco,knights,beast,slapshot,assword,frosty,dumbass,mallard,dddd,159357,titleist,aussie,golfing,doobie,loveit,werewolf,vipers,1965,blabla,surf,sucking,tardis,thegame,legion,rebels,sarah1,onelove,loulou,toto,blackcat,0007,tacobell,soccer1,jedi,method,poopie,boob,breast,kittycat,belly,pikachu,thunder1,thankyou,celtics,frogger,scoobydo,sabbath,coltrane,budman,jackal,zzzzz,licking,gopher,geheim,lonestar,primus,pooper,newpass,brasil,heather1,husker,element,moomoo,beefcake,zzzzzzzz,shitty,smokin,jjjj,anthony1,anubis,backup,gorilla,fuckface,lowrider,punkrock,traffic,delta1,amazon,fatass,dodgeram,dingdong,qqqqqqqq,breasts,boots,honda1,spidey,poker,temp,johnjohn,147852,asshole1,dogdog,tricky,crusader,syracuse,spankme,speaker,meridian,amadeus,harley1,falcons,turkey50,kenwood,keyboard,ilovesex,1978,shazam,shalom,lickit,jimbob,roller,fatman,sandiego,magnus,cooldude,clover,mobile,plumber,texas1,tool,topper,mariners,rebel,caliente,celica,oxford,osiris,orgasm,punkin,porsche9,tuesday,breeze,bossman,kangaroo,latinas,astros,scruffy,qwertyu,hearts,jammer,java,1122,goodtime,chelsea1,freckles,flyboy,doodle,nebraska,bootie,kicker,webmaster,vulcan,191919,blueeyes,321321,farside,rugby,director,pussy69,power1,hershey,hermes,monopoly,birdman,blessed,blackjac,southern,peterpan,thumbs,fuckyou1,rrrrrr,a1b2c3d4,coke,bohica,elvis1,blacky,sentinel,snake1,richard1,1234abcd,guardian,candyman,fisting,scarlet,dildo,pancho,mandingo,lucky7,condom,munchkin,billyboy,summer1,sword,skiing,site,sony,thong,rootbeer,assassin,fffff,fitness,durango,postal,achilles,kisses,warriors,plymouth,topdog,asterix,hallo,cameltoe,fuckfuck,eeeeee,sithlord,theking,avenger,backdoor,chevrole,trance,cosworth,houses,homers,eternity,kingpin,verbatim,incubus,1961,blond,zaphod,shiloh,spurs,mighty,aliens,charly,dogman,omega1,printer,aggies,deadhead,bitch1,stone55,pineappl,thekid,rockets,camels,formula,oracle,pussey,porkchop,abcde,clancy,mystic,inferno,blackdog,steve1,alfa,grumpy,flames,puffy,proxy,valhalla,unreal,herbie,engage,yyyyyy,010101,pistol,celeb,gggg,portugal,a12345,newbie,mmmm,1qazxsw2,zorro,writer,stripper,sebastia,spread,links,metal,1221,565656,funfun,trojans,cyber,hurrican,moneys,1x2zkg8w,zeus,tomato,lion,atlantic,usa123,trans,aaaaaaa,homerun,hyperion,kevin1,blacks,44444444,skittles,fart,gangbang,fubar,sailboat,oilers,buster1,hithere,immortal,sticks,pilot,lexmark,jerkoff,maryland,cheers,possum,cutter,muppet,swordfish,sport,sonic,peter1,jethro,rockon,asdfghj,pass123,pornos,ncc1701a,bootys,buttman,bonjour,1960,bears,362436,spartans,tinman,threesom,maxmax,1414,bbbbb,camelot,chewie,gogo,fusion,saint,dilligaf,nopass,hustler,hunter1,whitey,beast1,yesyes,spank,smudge,pinkfloy,patriot,lespaul,hammers,formula1,sausage,scooter1,orioles,oscar1,colombia,cramps,exotic,iguana,suckers,slave,topcat,lancelot,magelan,racer,crunch,british,steph,456123,skinny,seeking,rockhard,filter,freaks,sakura,pacman,poontang,newlife,homer1,klingon,watcher,walleye,tasty,sinatra,starship,steel,starbuck,poncho,amber1,gonzo,catherin,candle,firefly,goblin,scotch,diver,usmc,huskies,kentucky,kitkat,beckham,bicycle,yourmom,studio,33333333,splash,jimmy1,12344321,sapphire,mailman,raiders1,ddddd,excalibu,illini,imperial,lansing,maxx,gothic,golfball,facial,front242,macdaddy,qwer1234,vectra,cowboys1,crazy1,dannyboy,aquarius,franky,ffff,sassy,pppp,pppppppp,prodigy,noodle,eatpussy,vortex,wanking,billy1,siemens,phillies,groups,chevy1,cccc,gggggggg,doughboy,dracula,nurses,loco,lollipop,utopia,chrono,cooler,nevada,wibble,summit,1225,capone,fugazi,panda,qazwsxed,puppies,triton,9876,nnnnnn,momoney,iforgot,wolfie,studly,hamburg,81fukkc,741852,catman,china,gagging,scott1,oregon,qweqwe,crazybab,daniel1,cutlass,holes,mothers,music1,walrus,1957,bigtime,xtreme,simba,ssss,rookie,bathing,rotten,maestro,turbo1,99999,butthole,hhhh,yoda,shania,phish,thecat,rightnow,baddog,greatone,gateway1,abstr,napster,brian1,bogart,hitler,wildfire,jackson1,1981,beaner,yoyo,0.0.0.000,super1,select,snuggles,slutty,phoenix1,technics,toon,raven1,rayray,123789,1066,albion,greens,gesperrt,brucelee,hehehe,kelly1,mojo,1998,bikini,woofwoof,yyyy,strap,sites,central,f**k,nyjets,punisher,username,vanilla,twisted,bunghole,viagra,veritas,pony,titts,labtec,jenny1,masterbate,mayhem,redbull,govols,gremlin,505050,gmoney,rovers,diamond1,trident,abnormal,deskjet,cuddles,bristol,milano,vh5150,jarhead,1982,bigbird,bizkit,sixers,slider,star69,starfish,penetration,tommy1,john316,caligula,flicks,films,railroad,cosmo,cthulhu,br0d3r,bearbear,swedish,spawn,patrick1,reds,anarchy,groove,fuckher,oooo,airbus,cobra1,clips,delete,duster,kitty1,mouse1,monkeys,jazzman,1919,262626,swinging,stroke,stocks,sting,pippen,labrador,jordan1,justdoit,meatball,females,vector,cooter,defender,nike,bubbas,bonkers,kahuna,wildman,4121,sirius,static,piercing,terror,teenage,leelee,microsof,mechanic,robotech,rated,chaser,salsero,macross,quantum,tsunami,daddy1,cruise,newpass6,nudes,hellyeah,1959,zaq12wsx,striker,spice,spectrum,smegma,thumb,jjjjjjjj,mellow,cancun,cartoon,sabres,samiam,oranges,oklahoma,lust,denali,nude,noodles,brest,hooter,mmmmmmmm,warthog,blueblue,zappa,wolverine,sniffing,jjjjj,calico,freee,rover,pooter,closeup,bonsai,emily1,keystone,iiii,1955,yzerman,theboss,tolkien,megaman,rasta,bbbbbbbb,hal9000,goofy,gringo,gofish,gizmo1,samsam,scuba,onlyme,tttttttt,corrado,clown,clapton,bulls,jayhawk,wwww,sharky,seeker,ssssssss,pillow,thesims,lighter,lkjhgf,melissa1,marcius2,guiness,gymnast,casey1,goalie,godsmack,lolo,rangers1,poppy,clemson,clipper,deeznuts,holly1,eeee,kingston,yosemite,sucked,sex123,sexy69,pic\\'s,tommyboy,masterbating,gretzky,happyday,frisco,orchid,orange1,manchest,aberdeen,ne1469,boxing,korn,intercourse,161616,1985,ziggy,supersta,stoney,amature,babyboy,bcfields,goliath,hack,hardrock,frodo,scout,scrappy,qazqaz,tracker,active,craving,commando,cohiba,cyclone,bubba69,katie1,mpegs,vsegda,irish1,sexy1,smelly,squerting,lions,jokers,jojojo,meathead,ashley1,groucho,cheetah,champ,firefox,gandalf1,packer,love69,tyler1,typhoon,tundra,bobby1,kenworth,village,volley,wolf359,0420,000007,swimmer,skydive,smokes,peugeot,pompey,legolas,redhot,rodman,redalert,grapes,4runner,carrera,floppy,ou8122,quattro,cloud9,davids,nofear,busty,homemade,mmmmm,whisper,vermont,webmaste,wives,insertion,jayjay,philips,topher,temptress,midget,ripken,havefun,canon,celebrity,ghetto,ragnarok,usnavy,conover,cruiser,dalshe,nicole1,buzzard,hottest,kingfish,misfit,milfnew,warlord,wassup,bigsexy,blackhaw,zippy,tights,kungfu,labia,meatloaf,area51,batman1,bananas,636363,ggggg,paradox,queens,adults,aikido,cigars,hoosier,eeyore,moose1,warez,interacial,streaming,313131,pertinant,pool6123,mayday,animated,banker,baddest,gordon24,ccccc,fantasies,aisan,deadman,homepage,ejaculation,whocares,iscool,jamesbon,1956,1pussy,womam,sweden,skidoo,spock,sssss,pepper1,pinhead,micron,allsop,amsterda,gunnar,666999,february,fletch,george1,sapper,sasha1,luckydog,lover1,magick,popopo,ultima,cypress,businessbabe,brandon1,vulva,vvvv,jabroni,bigbear,yummy,010203,searay,secret1,sinbad,sexxxx,soleil,software,piccolo,thirteen,leopard,legacy,memorex,redwing,rasputin,134679,anfield,greenbay,catcat,feather,scanner,pa55word,contortionist,danzig,daisy1,hores,exodus,iiiiii,1001,subway,snapple,sneakers,sonyfuck,picks,poodle,test1234,llll,junebug,marker,mellon,ronaldo,roadkill,amanda1,asdfjkl,beaches,great1,cheerleaers,doitnow,ozzy,boxster,brighton,housewifes,kkkk,mnbvcx,moocow,vides,1717,bigmoney,blonds,1000,storys,stereo,4545,420247,seductive,sexygirl,lesbean,justin1,124578,cabbage,canadian,gangbanged,dodge1,dimas,malaka,puss,probes,coolman,nacked,hotpussy,erotica,kool,implants,intruder,bigass,zenith,woohoo,womans,tango,pisces,laguna,maxell,andyod22,barcelon,chainsaw,chickens,flash1,orgasms,magicman,profit,pusyy,pothead,coconut,chuckie,clevelan,builder,budweise,hotshot,horizon,experienced,mondeo,wifes,1962,stumpy,smiths,slacker,pitchers,passwords,laptop,allmine,alliance,bbbbbbb,asscock,halflife,88888,chacha,saratoga,sandy1,doogie,qwert40,transexual,close-up,ib6ub9,volvo,jacob1,iiiii,beastie,sunnyday,stoned,sonics,starfire,snapon,pictuers,pepe,testing1,tiberius,lisalisa,lesbain,litle,retard,ripple,austin1,badgirl,golfgolf,flounder,royals,dragoon,dickie,passwor,majestic,poppop,trailers,nokia,bobobo,br549,minime,mikemike,whitesox,1954,3232,353535,seamus,solo,sluttey,pictere,titten,lback,1024,goodluck,fingerig,gallaries,goat,passme,oasis,lockerroom,logan1,rainman,treasure,custom,cyclops,nipper,bucket,homepage-,hhhhh,momsuck,indain,2345,beerbeer,bimmer,stunner,456456,tootsie,testerer,reefer,1012,harcore,gollum,545454,chico,caveman,fordf150,fishes,gaymen,saleen,doodoo,pa55w0rd,presto,qqqqq,cigar,bogey,helloo,dutch,kamikaze,wasser,vietnam,visa,japanees,0123,swords,slapper,peach,masterbaiting,redwood,1005,ametuer,chiks,fucing,sadie1,panasoni,mamas,rambo,unknown,absolut,dallas1,housewife,keywest,kipper,18436572,1515,zxczxc,303030,shaman,terrapin,masturbation,mick,redfish,1492,angus,goirish,hardcock,forfun,galary,freeporn,duchess,olivier,lotus,pornographic,ramses,purdue,traveler,crave,brando,enter1,killme,moneyman,welder,windsor,wifey,indon,yyyyy,taylor1,4417,picher,pickup,thumbnils,johnboy,jets,ameteur,amateurs,apollo13,hambone,goldwing,5050,sally1,doghouse,padres,pounding,quest,truelove,underdog,trader,climber,bolitas,hohoho,beanie,beretta,wrestlin,stroker,sexyman,jewels,johannes,mets,rhino,bdsm,balloons,grils,happy123,flamingo,route66,devo,outkast,paintbal,magpie,llllllll,twilight,critter,cupcake,nickel,bullseye,knickerless,videoes,binladen,xerxes,slim,slinky,pinky,thanatos,meister,menace,retired,albatros,balloon,goten,5551212,getsdown,donuts,nwo4life,tttt,comet,deer,dddddddd,deeznutz,nasty1,nonono,enterprise,eeeee,misfit99,milkman,vvvvvv,1818,blueboy,bigbutt,tech,toolman,juggalo,jetski,barefoot,50spanks,gobears,scandinavian,cubbies,nitram,kings,bilbo,yumyum,zzzzzzz,stylus,321654,shannon1,server,squash,starman,steeler,phrases,techniques,laser,135790,athens,cbr600,chemical,fester,gangsta,fucku2,droopy,objects,passwd,lllll,manchester,vedder,clit,chunky,darkman,buckshot,buddah,boobed,henti,winter1,bigmike,beta,zidane,talon,slave1,pissoff,thegreat,lexus,matador,readers,armani,goldstar,5656,fmale,fuking,fucku,ggggggg,sauron,diggler,pacers,looser,pounded,premier,triangle,cosmic,depeche,norway,helmet,mustard,misty1,jagger,3x7pxr,silver1,snowboar,penetrating,photoes,lesbens,lindros,roadking,rockford,1357,143143,asasas,goodboy,898989,chicago1,ferrari1,galeries,godfathe,gawker,gargoyle,gangster,rubble,rrrr,onetime,pussyman,pooppoop,trapper,cinder,newcastl,boricua,bunny1,boxer,hotred,hockey1,edward1,moscow,mortgage,bigtit,snoopdog,joshua1,july,1230,assholes,frisky,sanity,divine,dharma,lucky13,akira,butterfly,hotbox,hootie,howdy,earthlink,kiteboy,westwood,1988,blackbir,biggles,wrench,wrestle,slippery,pheonix,penny1,pianoman,thedude,jenn,jonjon,jones1,roadrunn,arrow,azzer,seahawks,diehard,dotcom,tunafish,chivas,cinnamon,clouds,deluxe,northern,boobie,momomo,modles,volume,23232323,bluedog,wwwwwww,zerocool,yousuck,pluto,limewire,joung,awnyce,gonavy,haha,films+pic+galeries,girsl,fuckthis,girfriend,uncencored,a123456,chrisbln,combat,cygnus,cupoi,netscape,hhhhhhhh,eagles1,elite,knockers,1958,tazmania,shonuf,pharmacy,thedog,midway,arsenal1,anaconda,australi,gromit,gotohell,787878,66666,carmex2,camber,gator1,ginger1,fuzzy,seadoo,lovesex,rancid,uuuuuu,911911,bulldog1,heater,monalisa,mmmmmmm,whiteout,virtual,jamie1,japanes,james007,2727,2469,blam,bitchass,zephyr,stiffy,sweet1,southpar,spectre,tigger1,tekken,lakota,lionking,jjjjjjj,megatron,1369,hawaiian,gymnastic,golfer1,gunners,7779311,515151,sanfran,optimus,panther1,love1,maggie1,pudding,aaron1,delphi,niceass,bounce,house1,killer1,momo,musashi,jammin,2003,234567,wp2003wp,submit,sssssss,spikes,sleeper,passwort,kume,meme,medusa,mantis,reebok,1017,artemis,harry1,cafc91,fettish,oceans,oooooooo,mango,ppppp,trainer,uuuu,909090,death1,bullfrog,hokies,holyshit,eeeeeee,jasmine1,&,&,spinner,jockey,babyblue,gooner,474747,cheeks,pass1234,parola,okokok,poseidon,989898,crusher,cubswin,nnnn,kotaku,mittens,whatsup,vvvvv,iomega,insertions,bengals,biit,yellow1,012345,spike1,sowhat,pitures,pecker,theend,hayabusa,hawkeyes,florian,qaz123,usarmy,twinkle,chuckles,hounddog,hover,hothot,europa,kenshin,kojak,mikey1,water1,196969,wraith,zebra,wwwww,33333,simon1,spider1,snuffy,philippe,thunderb,teddy1,marino13,maria1,redline,renault,aloha,handyman,cerberus,gamecock,gobucks,freesex,duffman,ooooo,nuggets,magician,longbow,preacher,porno1,chrysler,contains,dalejr,navy,buffy1,hedgehog,hoosiers,honey1,hott,heyhey,dutchess,everest,wareagle,ihateyou,sunflowe,3434,senators,shag,spoon,sonoma,stalker,poochie,terminal,terefon,maradona,1007,142536,alibaba,america1,bartman,astro,goth,chicken1,cheater,ghost1,passpass,oral,r2d2c3po,civic,cicero,myxworld,kkkkk,missouri,wishbone,infiniti,1a2b3c,1qwerty,wonderboy,shojou,sparky1,smeghead,poiuy,titanium,lantern,jelly,1213,bayern,basset,gsxr750,cattle,fishing1,fullmoon,gilles,dima,obelix,popo,prissy,ramrod,bummer,hotone,dynasty,entry,konyor,missy1,282828,xyz123,426hemi,404040,seinfeld,pingpong,lazarus,marine1,12345a,beamer,babyface,greece,gustav,7007,ccccccc,faggot,foxy,gladiato,duckie,dogfood,packers1,longjohn,radical,tuna,clarinet,danny1,novell,bonbon,kashmir,kiki,mortimer,modelsne,moondog,vladimir,insert,1953,zxc123,supreme,3131,sexxx,softail,poipoi,pong,mars,martin1,rogue,avalanch,audia4,55bgates,cccccccc,came11,figaro,dogboy,dnsadm,dipshit,paradigm,othello,operator,tripod,chopin,coucou,cocksuck,borussia,heritage,hiziad,homerj,mullet,whisky,4242,speedo,starcraf,skylar,spaceman,piggy,tiger2,legos,jezebel,joker1,mazda,727272,chester1,rrrrrrrr,dundee,lumber,ppppppp,tranny,aaliyah,admiral,comics,delight,buttfuck,homeboy,eternal,kilroy,violin,wingman,walmart,bigblue,blaze,beemer,beowulf,bigfish,yyyyyyy,woodie,yeahbaby,0123456,tbone,syzygy,starter,linda1,merlot,mexican,11235813,banner,bangbang,badman,barfly,grease,charles1,ffffffff,doberman,dogshit,overkill,coolguy,claymore,demo,nomore,hhhhhhh,hondas,iamgod,enterme,electron,eastside,minimoni,mybaby,wildbill,wildcard,ipswich,200000,bearcat,zigzag,yyyyyyyy,sweetnes,369369,skyler,skywalker,pigeon,tipper,asdf123,alphabet,asdzxc,babybaby,banane,guyver,graphics,chinook,florida1,flexible,fuckinside,ursitesux,tototo,adam12,christma,chrome,buddie,bombers,hippie,misfits,292929,woofer,wwwwwwww,stubby,sheep,sparta,stang,spud,sporty,pinball,just4fun,maxxxx,rebecca1,fffffff,freeway,garion,rrrrr,sancho,outback,maggot,puddin,987456,hoops,mydick,19691969,bigcat,shiner,silverad,templar,lamer,juicy,mike1,maximum,1223,10101010,arrows,alucard,haggis,cheech,safari,dog123,orion1,paloma,qwerasdf,presiden,vegitto,969696,adonis,cookie1,newyork1,buddyboy,hellos,heineken,eraser,moritz,millwall,visual,jaybird,1983,beautifu,zodiac,steven1,sinister,slammer,smashing,slick1,sponge,teddybea,ticklish,jonny,1211,aptiva,applepie,bailey1,guitar1,canyon,gagged,fuckme1,digital1,dinosaur,98765,90210,clowns,cubs,deejay,nigga,naruto,boxcar,icehouse,hotties,electra,widget,1986,2004,bluefish,bingo1,*****,stratus,sultan,storm1,44444,4200,sentnece,sexyboy,sigma,smokie,spam,pippo,temppass,manman,1022,bacchus,aztnm,axio,bamboo,hakr,gregor,hahahaha,5678,camero1,dolphin1,paddle,magnet,qwert1,pyon,porsche1,tripper,noway,burrito,bozo,highheel,hookem,eddie1,entropy,kkkkkkkk,kkkkkkk,illinois,1945,1951,24680,21212121,100000,stonecold,taco,subzero,sexxxy,skolko,skyhawk,spurs1,sputnik,testpass,jiggaman,1224,hannah1,525252,4ever,carbon,scorpio1,rt6ytere,madison1,loki,coolness,coldbeer,citadel,monarch,morgan1,washingt,1997,bella1,yaya,superb,taxman,studman,3636,pizzas,tiffany1,lassie,larry1,joseph1,mephisto,reptile,razor,1013,hammer1,gypsy,grande,camper,chippy,cat123,chimera,fiesta,glock,domain,dieter,dragonba,onetwo,nygiants,password2,quartz,prowler,prophet,towers,ultra,cocker,corleone,dakota1,cumm,nnnnnnn,boxers,heynow,iceberg,kittykat,wasabi,vikings1,beerman,splinter,snoopy1,pipeline,mickey1,mermaid,micro,meowmeow,redbird,baura,chevys,caravan,frogman,diving,dogger,draven,drifter,oatmeal,paris1,longdong,quant4307s,rachel1,vegitta,cobras,corsair,dadada,mylife,bowwow,hotrats,eastwood,moonligh,modena,illusion,iiiiiii,jayhawks,swingers,shocker,shrimp,sexgod,squall,poiu,tigers1,toejam,tickler,julie1,jimbo1,jefferso,michael2,rodeo,robot,1023,annie1,bball,happy2,charter,flasher,falcon1,fiction,fastball,gadget,scrabble,diaper,dirtbike,oliver1,paco,macman,poopy,popper,postman,ttttttt,acura,cowboy1,conan,daewoo,nemrac58,nnnnn,nextel,bobdylan,eureka,kimmie,kcj9wx5n,killbill,musica,volkswag,wage,windmill,wert,vintage,iloveyou1,itsme,zippo,311311,starligh,smokey1,snappy,soulmate,plasma,krusty,just4me,marius,rebel1,1123,audi,fick,goaway,rusty2,dogbone,doofus,ooooooo,oblivion,mankind,mahler,lllllll,pumper,puck,pulsar,valkyrie,tupac,compass,concorde,cougars,delaware,niceguy,nocturne,bob123,boating,bronze,herewego,hewlett,houhou,earnhard,eeeeeeee,mingus,mobydick,venture,verizon,imation,1950,1948,1949,223344,bigbig,wowwow,sissy,spiker,snooker,sluggo,player1,jsbach,jumbo,medic,reddevil,reckless,123456a,1125,1031,astra,gumby,757575,585858,chillin,fuck1,radiohea,upyours,trek,coolcool,classics,choochoo,nikki1,nitro,boytoy,excite,kirsty,wingnut,wireless,icu812,1master,beatle,bigblock,wolfen,summer99,sugar1,tartar,sexysexy,senna,sexman,soprano,platypus,pixies,telephon,laura1,laurent,rimmer,1020,12qwaszx,hamish,halifax,fishhead,forum,dododo,doit,paramedi,lonesome,mandy1,uuuuu,uranus,ttttt,bruce1,helper,hopeful,eduard,dusty1,kathy1,moonbeam,muscles,monster1,monkeybo,windsurf,vvvvvvv,vivid,install,1947,187187,1941,1952,susan1,31415926,sinned,sexxy,smoothie,snowflak,playstat,playa,playboy1,toaster,jerry1,marie1,mason1,merlin1,roger1,roadster,112358,1121,andrea1,bacardi,hardware,789789,5555555,captain1,fergus,sascha,rrrrrrr,dome,onion,lololo,qqqqqqq,undertak,uuuuuuuu,uuuuuuu,cobain,cindy1,coors,descent,nimbus,nomad,nanook,norwich,bombay,broker,hookup,kiwi,winners,jackpot,1a2b3c4d,1776,beardog,bighead,bird33,0987,spooge,pelican,peepee,titan,thedoors,jeremy1,altima,baba,hardone,5454,catwoman,finance,farmboy,farscape,genesis1,salomon,loser1,r2d2,pumpkins,chriss,cumcum,ninjas,ninja1,killers,miller1,islander,jamesbond,intel,19841984,2626,bizzare,blue12,biker,yoyoma,sushi,shitface,spanker,steffi,sphinx,please1,paulie,pistons,tiburon,maxwell1,mdogg,rockies,armstron,alejandr,arctic,banger,audio,asimov,753951,4you,chilly,care1839,flyfish,fantasia,freefall,sandrine,oreo,ohshit,macbeth,madcat,loveya,qwerqwer,colnago,chocha,cobalt,crystal1,dabears,nevets,nineinch,broncos1,epsilon,kestrel,winston1,warrior1,iiiiiiii,iloveyou2,1616,woowoo,sloppy,specialk,tinkerbe,jellybea,reader,redsox1,1215,1112,arcadia,baggio,555666,cayman,cbr900rr,gabriell,glennwei,sausages,disco,pass1,lovebug,macmac,puffin,vanguard,trinitro,airwolf,aaa111,cocaine,cisco,datsun,bricks,bumper,eldorado,kidrock,wizard1,whiskers,wildwood,istheman,25802580,bigones,woodland,wolfpac,strawber,3030,sheba1,sixpack,peace1,physics,tigger2,toad,megan1,meow,ringo,amsterdam,717171,686868,5424,canuck,football1,footjob,fulham,seagull,orgy,lobo,mancity,vancouve,vauxhall,acidburn,derf,myspace1,boozer,buttercu,hola,minemine,munch,1dragon,biology,bestbuy,bigpoppa,blackout,blowfish,bmw325,bigbob,stream,talisman,tazz,sundevil,3333333,skate,shutup,shanghai,spencer1,slowhand,pinky1,tootie,thecrow,jubilee,jingle,matrix1,manowar,messiah,resident,redbaron,romans,andromed,athlon,beach1,badgers,guitars,harald,harddick,gotribe,6996,7grout,5wr2i7h8,635241,chase1,fallout,fiddle,fenris,francesc,fortuna,fairlane,felix1,gasman,fucks,sahara,sassy1,dogpound,dogbert,divx1,manila,pornporn,quasar,venom,987987,access1,clippers,daman,crusty,nathan1,nnnnnnnn,bruno1,budapest,kittens,kerouac,mother1,waldo1,whistler,whatwhat,wanderer,idontkno,1942,1946,bigdawg,bigpimp,zaqwsx,414141,3000gt,434343,serpent,smurf,pasword,thisisit,john1,robotics,redeye,rebelz,1011,alatam,asians,bama,banzai,harvest,575757,5329,fatty,fender1,flower2,funky,sambo,drummer1,dogcat,oedipus,osama,prozac,private1,rampage,concord,cinema,cornwall,cleaner,ciccio,clutch,corvet07,daemon,bruiser,boiler,hjkl,egghead,mordor,jamess,iverson3,bluesman,zouzou,090909,1002,stone1,4040,sexo,smith1,sperma,sneaky,polska,thewho,terminat,krypton,lekker,johnson1,johann,rockie,aspire,goodie,cheese1,fenway,fishon,fishin,fuckoff1,girls1,doomsday,pornking,ramones,rabbits,transit,aaaaa1,boyz,bookworm,bongo,bunnies,buceta,highbury,henry1,eastern,mischief,mopar,ministry,vienna,wildone,bigbooty,beavis1,xxxxxx1,yogibear,000001,0815,zulu,420000,sigmar,sprout,stalin,lkjhgfds,lagnaf,rolex,redfox,referee,123123123,1231,angus1,ballin,attila,greedy,grunt,747474,carpedie,caramel,foxylady,gatorade,futbol,frosch,saiyan,drums,donner,doggy1,drum,doudou,nutmeg,quebec,valdepen,tosser,tuscl,comein,cola,deadpool,bremen,hotass,hotmail1,eskimo,eggman,koko,kieran,katrin,kordell1,komodo,mone,munich,vvvvvvvv,jackson5,2222222,bergkamp,bigben,zanzibar,xxx123,sunny1,373737,slayer1,snoop,peachy,thecure,little1,jennaj,rasta69,1114,aries,havana,gratis,calgary,checkers,flanker,salope,dirty1,draco,dogface,luv2epus,rainbow6,qwerty123,umpire,turnip,vbnm,tucson,troll,codered,commande,neon,nico,nightwin,boomer1,bushido,hotmail0,enternow,keepout,karen1,mnbv,viewsoni,volcom,wizards,1995,berkeley,woodstoc,tarpon,shinobi,starstar,phat,toolbox,julien,johnny1,joebob,riders,reflex,120676,1235,angelus,anthrax,atlas,grandam,harlem,hawaii50,655321,cabron,challeng,callisto,firewall,firefire,flyer,flower1,gambler,frodo1,sam123,scania,dingo,papito,passmast,ou8123,randy1,twiggy,travis1,treetop,addict,admin1,963852,aceace,cirrus,bobdole,bonjovi,bootsy,boater,elway7,kenny1,moonshin,montag,wayne1,white1,jazzy,jakejake,1994,1991,2828,bluejays,belmont,sensei,southpark,peeper,pharao,pigpen,tomahawk,teensex,leedsutd,jeepster,jimjim,josephin,melons,matthias,robocop,1003,1027,antelope,azsxdc,gordo,hazard,granada,8989,7894,ceasar,cabernet,cheshire,chelle,candy1,fergie,fidelio,giorgio,fuckhead,dominion,qawsed,trucking,chloe1,daddyo,nostromo,boyboy,booster,bucky,honolulu,esquire,dynamite,mollydog,windows1,waffle,wealth,vincent1,jabber,jaguars,javelin,irishman,idefix,bigdog1,blue42,blanked,blue32,biteme1,bearcats,yessir,sylveste,sunfire,tbird,stryker,3ip76k2,sevens,pilgrim,tenchi,titman,leeds,lithium,linkin,marijuan,mariner,markie,midnite,reddwarf,1129,123asd,12312312,allstar,albany,asdf12,aspen,hardball,goldfing,7734,49ers,carnage,callum,carlos1,fitter,fandango,gofast,gamma,fucmy69,scrapper,dogwood,django,magneto,premium,9999999,abc1234,newyear,bookie,bounty,brown1,bologna,elway,killjoy,klondike,mouser,wayer,impreza,insomnia,24682468,2580,24242424,billbill,bellaco,blues1,blunts,teaser,sf49ers,shovel,solitude,spikey,pimpdadd,timeout,toffee,lefty,johndoe,johndeer,mega,manolo,ratman,robin1,1124,1210,1028,1226,babylove,barbados,gramma,646464,carpente,chaos1,fishbone,fireblad,frogs,screamer,scuba1,ducks,doggies,dicky,obsidian,rams,tottenham,aikman,comanche,corolla,cumslut,cyborg,boston1,houdini,helmut,elvisp,keksa12,monty1,wetter,watford,wiseguy,1989,1987,20202020,biatch,beezer,bigguns,blueball,bitchy,wyoming,yankees2,wrestler,stupid1,sealteam,sidekick,simple1,smackdow,sporting,spiral,smeller,plato,tophat,test2,toomuch,jello,junkie,maxim,maxime,meadow,remingto,roofer,124038,1018,1269,1227,123457,arkansas,aramis,beaker,barcelona,baltimor,googoo,goochi,852456,4711,catcher,champ1,fortress,fishfish,firefigh,geezer,rsalinas,samuel1,saigon,scooby1,dick1,doom,dontknow,magpies,manfred,vader1,universa,tulips,mygirl,bowtie,holycow,honeys,enforcer,waterboy,1992,23skidoo,bimbo,blue11,birddog,zildjian,030303,stinker,stoppedby,sexybabe,speakers,slugger,spotty,smoke1,polopolo,perfect1,torpedo,lakeside,jimmys,junior1,masamune,1214,april1,grinch,767676,5252,cherries,chipmunk,cezer121,carnival,capecod,finder,fearless,goats,funstuff,gideon,savior,seabee,sandro,schalke,salasana,disney1,duckman,pancake,pantera1,malice,love123,qwert123,tracer,creation,cwoui,nascar24,hookers,erection,ericsson,edthom,kokoko,kokomo,mooses,inter,1michael,1993,19781978,25252525,shibby,shamus,skibum,sheepdog,sex69,spliff,slipper,spoons,spanner,snowbird,toriamos,temp123,tennesse,lakers1,jomama,mazdarx7,recon,revolver,1025,1101,barney1,babycake,gotham,gravity,hallowee,616161,515000,caca,cannabis,chilli,fdsa,getout,fuck69,gators1,sable,rumble,dolemite,dork,duffer,dodgers1,onions,logger,lookout,magic32,poon,twat,coventry,citroen,civicsi,cocksucker,coochie,compaq1,nancy1,buzzer,boulder,butkus,bungle,hogtied,hotgirls,heidi1,eggplant,mustang6,monkey12,wapapapa,wendy1,volleyba,vibrate,blink,birthday4,xxxxx1,stephen1,suburban,sheeba,start1,soccer10,starcraft,soccer12,peanut1,plastics,penthous,peterbil,tetsuo,torino,tennis1,termite,lemmein,lakewood,jughead,melrose,megane,redone,angela1,goodgirl,gonzo1,golden1,gotyoass,656565,626262,capricor,chains,calvin1,getmoney,gabber,runaway,salami,dungeon,dudedude,opus,paragon,panhead,pasadena,opendoor,odyssey,magellan,printing,prince1,trustme,nono,buffet,hound,kajak,killkill,moto,winner1,vixen,whiteboy,versace,voyager1,indy,jackjack,bigal,beech,biggun,blake1,blue99,big1,synergy,success1,336699,sixty9,shark1,simba1,sebring,spongebo,spunk,springs,sliver,phialpha,password9,pizza1,pookey,tickling,lexingky,lawman,joe123,mike123,romeo1,redheads,apple123,backbone,aviation,green123,carlitos,byebye,cartman1,camden,chewy,camaross,favorite6,forumwp,ginscoot,fruity,sabrina1,devil666,doughnut,pantie,oldone,paintball,lumina,rainbow1,prosper,umbrella,ajax,951753,achtung,abc12345,compact,corndog,deerhunt,darklord,dank,nimitz,brandy1,hetfield,holein1,hillbill,hugetits,evolutio,kenobi,whiplash,wg8e3wjf,istanbul,invis,1996,bigjohn,bluebell,beater,benji,bluejay,xyzzy,suckdick,taichi,stellar,shaker,semper,splurge,squeak,pearls,playball,pooky,titfuck,joemama,johnny5,marcello,maxi,rhubarb,ratboy,reload,1029,1030,1220,bbking,baritone,gryphon,57chevy,494949,celeron,fishy,gladiator,fucker1,roswell,dougie,dicker,diva,donjuan,nympho,racers,truck1,trample,acer,cricket1,climax,denmark,cuervo,notnow,nittany,neutron,bosco1,buffa,breaker,hello2,hydro,kisskiss,kittys,montecar,modem,mississi,20012001,bigdick1,benfica,yahoo1,striper,tabasco,supra,383838,456654,seneca,shuttle,penguin1,pathfind,testibil,thethe,jeter2,marma,mark1,metoo,republic,rollin,redleg,redbone,redskin,1245,anthony7,altoids,barley,asswipe,bauhaus,bbbbbb1,gohome,harrier,golfpro,goldeney,818181,6666666,5000,5rxypn,cameron1,checker,calibra,freefree,faith1,fdm7ed,giraffe,giggles,fringe,scamper,rrpass1,screwyou,dimples,pacino,ontario,passthie,oberon,quest1,postov1000,puppydog,puffer,qwerty7,tribal,adam25,a1234567,collie,cleopatr,davide,namaste,buffalo1,bonovox,bukkake,burner,bordeaux,burly,hun999,enters,mohawk,vgirl,jayden,1812,1943,222333,bigjim,bigd,zoom,wordup,ziggy1,yahooo,workout,young1,xmas,zzzzzz1,surfer1,strife,sunlight,tasha1,skunk,sprinter,peaches1,pinetree,plum,pimping,theforce,thedon,toocool,laddie,lkjh,jupiter1,matty,redrose,1200,102938,antares,austin31,goose1,737373,78945612,789987,6464,calimero,caster,casper1,cement,chevrolet,chessie,caddy,canucks,fellatio,f00tball,gateway2,gamecube,rugby1,scheisse,dshade,dixie1,offshore,lucas1,macaroni,manga,pringles,puff,trouble1,ussy,coolhand,colonial,colt,darthvad,cygnusx1,natalie1,newark,hiking,errors,elcamino,koolaid,knight1,murphy1,volcano,idunno,2005,2233,blueberr,biguns,yamahar1,zapper,zorro1,0911,3006,sixsix,shopper,sextoy,snowboard,speedway,pokey,playboy2,titi,toonarmy,lambda,joecool,juniper,max123,mariposa,met2002,reggae,ricky1,1236,1228,1016,all4one,baberuth,asgard,484848,5683,6669,catnip,charisma,capslock,cashmone,galant,frenchy,gizmodo1,girlies,screwy,doubled,divers,dte4uw,dragonfl,treble,twinkie,tropical,crescent,cococo,dabomb,daffy,dandfa,cyrano,nathanie,boners,helium,hellas,espresso,killa,kikimora,w4g8at,ilikeit,iforget,1944,20002000,birthday1,beatles1,blue1,bigdicks,beethove,blacklab,blazers,benny1,woodwork,0069,0101,taffy,4567,shodan,pavlov,pinnacle,petunia,tito,teenie,lemonade,lalakers,lebowski,lalalala,ladyboy,jeeper,joyjoy,mercury1,mantle,mannn,rocknrol,riversid,123aaa,11112222,121314,1021,1004,1120,allen1,ambers,amstel,alice1,alleycat,allegro,ambrosia,gspot,goodsex,hattrick,harpoon,878787,8inches,4wwvte,cassandr,charlie123,gatsby,generic,gareth,fuckme2,samm,seadog,satchmo,scxakv,santafe,dipper,outoutout,madmad,london1,qbg26i,pussy123,tzpvaw,vamp,comp,cowgirl,coldplay,dawgs,nt5d27,novifarm,notredam,newness,mykids,bryan1,bouncer,hihihi,honeybee,iceman1,hotlips,dynamo,kappa,kahlua,muffy,mizzou,wannabe,wednesda,whatup,waterfal,willy1,bear1,billabon,youknow,yyyyyy1,zachary1,01234567,070462,zurich,superstar,stiletto,strat,427900,sigmachi,shells,sexy123,smile1,sophie1,stayout,somerset,playmate,pinkfloyd,phish1,payday,thebear,telefon,laetitia,kswbdu,jerky,metro,revoluti,1216,1201,1204,1222,1115,archange,barry1,handball,676767,chewbacc,furball,gocubs,fullback,gman,dewalt,dominiqu,diver1,dhip6a,olemiss,mandrake,mangos,pretzel,pusssy,tripleh,vagabond,clovis,dandan,csfbr5yy,deadspin,ninguna,ncc74656,bootsie,bp2002,bourbon,bumble,heyyou,houston1,hemlock,hippo,hornets,horseman,excess,extensa,muffin1,virginie,werdna,idontknow,jack1,1bitch,151nxjmt,bendover,bmwbmw,zaq123,wxcvbn,supernov,tahoe,shakur,sexyone,seviyi,smart1,speed1,pepito,phantom1,playoffs,terry1,terrier,laser1,lite,lancia,johngalt,jenjen,midori,maserati,matteo,miami1,riffraff,ronald1,1218,1026,123987,1015,1103,armada,architec,austria,gotmilk,cambridg,camero,flex,foreplay,getoff,glacier,glotest,froggie,gerbil,rugger,sanity72,donna1,orchard,oyster,palmtree,pajero,m5wkqf,magenta,luckyone,treefrog,vantage,usmarine,tyvugq,uptown,abacab,aaaaaa1,chuck1,darkange,cyclones,navajo,bubba123,iawgk2,hrfzlz,dylan1,enrico,encore,eclipse1,mutant,mizuno,mustang2,video1,viewer,weed420,whales,jaguar1,1990,159159,1love,bears1,bigtruck,bigboss,blitz,xqgann,yeahyeah,zeke,zardoz,stickman,3825,sentra,shiva,skipper1,singapor,southpaw,sonora,squid,slamdunk,slimjim,placid,photon,placebo,pearl1,test12,therock1,tiger123,leinad,legman,jeepers,joeblow,mike23,redcar,rhinos,rjw7x4,1102,13576479,112211,gwju3g,greywolf,7bgiqk,7878,535353,4snz9g,candyass,cccccc1,catfight,cali,fister,fosters,finland,frankie1,gizzmo,royalty,rugrat,dodo,oemdlg,out3xf,paddy,opennow,puppy1,qazwsxedc,ramjet,abraxas,cn42qj,dancer1,death666,nudity,nimda2k,buick,bobb,braves1,henrik,hooligan,everlast,karachi,mortis,monies,motocros,wally1,willie1,inspiron,1test,2929,bigblack,xytfu7,yackwin,zaq1xsw2,yy5rbfsc,100100,0660,tahiti,takehana,332211,3535,sedona,seawolf,skydiver,spleen,slash,spjfet,special1,slimshad,sopranos,spock1,penis1,patches1,thierry,thething,toohot,limpone,mash4077,matchbox,masterp,maxdog,ribbit,rockin,redhat,1113,14789632,1331,allday,aladin,andrey,amethyst,baseball1,athome,goofy1,greenman,goofball,ha8fyp,goodday,778899,charon,chappy,caracas,cardiff,capitals,canada1,cajun,catter,freddy1,favorite2,forme,forsaken,feelgood,gfxqx686,saskia,sanjose,salsa,dilbert1,dukeduke,downhill,longhair,locutus,lockdown,malachi,mamacita,lolipop,rainyday,pumpkin1,punker,prospect,rambo1,rainbows,quake,trinity1,trooper1,citation,coolcat,default,deniro,d9ungl,daddys,nautica,nermal,bukowski,bubbles1,bogota,buds,hulk,hitachi,ender,export,kikiki,kcchiefs,kram,morticia,montrose,mongo,waqw3p,wizzard,whdbtp,whkzyc,154ugeiu,1fuck,binky,bigred1,blubber,becky1,year2005,wonderfu,xrated,0001,tampabay,survey,tammy1,stuffer,3mpz4r,3000,3some,sierra1,shampoo,shyshy,slapnuts,standby,spartan1,sprocket,stanley1,poker1,theshit,lavalamp,light1,laserjet,jediknig,jjjjj1,mazda626,menthol,margaux,medic1,rhino1,1209,1234321,amigos,apricot,asdfgh1,hairball,hatter,grimace,7xm5rq,6789,cartoons,capcom,cashflow,carrots,fanatic,format,girlie,safeway,dogfart,dondon,outsider,odin,opiate,lollol,love12,mallrats,prague,primetime21,pugsley,r29hqq,valleywa,airman,abcdefg1,darkone,cummer,natedogg,nineball,ndeyl5,natchez,newone,normandy,nicetits,buddy123,buddys,homely,husky,iceland,hr3ytm,highlife,holla,earthlin,exeter,eatmenow,kimkim,k2trix,kernel,money123,moonman,miles1,mufasa,mousey,whites,warhamme,jackass1,2277,20spanks,blobby,blinky,bikers,blackjack,becca,blue23,xman,wyvern,085tzzqi,zxzxzx,zsmj2v,suede,t26gn4,sugars,tantra,swoosh,4226,4271,321123,383pdjvl,shane1,shelby1,spades,smother,sparhawk,pisser,photo1,pebble,peavey,pavement,thistle,kronos,lilbit,linux,melanie1,marbles,redlight,1208,1138,1008,alchemy,aolsucks,alexalex,atticus,auditt,b929ezzh,goodyear,gubber,863abgsg,7474,797979,464646,543210,4zqauf,4949,ch5nmk,carlito,chewey,carebear,checkmat,cheddar,chachi,forgetit,forlife,giants1,getit,gerhard,galileo,g3ujwg,ganja,rufus1,rushmore,discus,dudeman,olympus,oscars,osprey,madcow,locust,loyola,mammoth,proton,rabbit1,ptfe3xxp,pwxd5x,purple1,punkass,prophecy,uyxnyd,tyson1,aircraft,access99,abcabc,colts,civilwar,claudia1,contour,dddddd1,cypher,dapzu455,daisydog,noles,hoochie,hoser,eldiablo,kingrich,mudvayne,motown,mp8o6d,vipergts,italiano,2055,2211,bloke,blade1,yamato,zooropa,yqlgr667,050505,zxcvbnm1,zw6syj,suckcock,tango1,swampy,445566,333666,380zliki,sexpot,sexylady,sixtynin,sickboy,spiffy,skylark,sparkles,pintail,phreak,teller,timtim,thighs,latex,letsdoit,lkjhg,landmark,lizzard,marlins,marauder,metal1,manu,righton,1127,alain,alcat,amigo,basebal1,azertyui,azrael,hamper,gotenks,golfgti,hawkwind,h2slca,grace1,6chid8,789654,canine,casio,cazzo,cbr900,cabrio,calypso,capetown,feline,flathead,fisherma,flipmode,fungus,g9zns4,giggle,gabriel1,fuck123,saffron,dogmeat,dreamcas,dirtydog,douche,dresden,dickdick,destiny1,pappy,oaktree,luft4,puta,ramada,trumpet1,vcradq,tulip,tracy71,tycoon,aaaaaaa1,conquest,chitown,creepers,cornhole,danman,dada,density,d9ebk7,darth,nirvana1,nestle,brenda1,bonanza,hotspur,hufmqw,electro,erasure,elisabet,etvww4,ewyuza,eric1,kenken,kismet,klaatu,milamber,willi,isacs155,igor,1million,1letmein,x35v8l,yogi,ywvxpz,xngwoj,zippy1,020202,****,stonewal,sentry,sexsexsex,sonysony,smirnoff,star12,solace,star1,pkxe62,pilot1,pommes,paulpaul,tical,tictac,lighthou,lemans,kubrick,letmein22,letmesee,jys6wz,jonesy,jjjjjj1,jigga,redstorm,riley1,14141414,1126,allison1,badboy1,asthma,auggie,hardwood,gumbo,616913,57np39,56qhxs,4mnveh,fatluvr69,fqkw5m,fidelity,feathers,fresno,godiva,gecko,gibson1,gogators,general1,saxman,rowing,sammys,scotts,scout1,sasasa,samoht,dragon69,ducky,dragonball,driller,p3wqaw,papillon,oneone,openit,optimist,longshot,rapier,pussy2,ralphie,tuxedo,undertow,copenhag,delldell,culinary,deltas,mytime,noname,noles1,bucker,bopper,burnout,ibilltes,hihje863,hitter,ekim,espana,eatme69,elpaso,express1,eeeeee1,eatme1,karaoke,mustang5,wellingt,willem,waterski,webcam,jasons,infinite,iloveyou!,jakarta,belair,bigdad,beerme,yoshi,yinyang,x24ik3,063dyjuy,0000007,ztmfcq,stopit,stooges,symow8,strato,2hot4u,skins,shakes,sex1,snacks,softtail,slimed123,pizzaman,tigercat,tonton,lager,lizzy,juju,john123,jesse1,jingles,martian,mario1,rootedit,rochard,redwine,requiem,riverrat,1117,1014,1205,amor,amiga,alpina,atreides,banana1,bahamut,golfman,happines,7uftyx,5432,5353,5151,4747,foxfire,ffvdj474,foreskin,gayboy,gggggg1,gameover,glitter,funny1,scoobydoo,saxophon,dingbat,digimon,omicron,panda1,loloxx,macintos,lululu,lollypop,racer1,queen1,qwertzui,upnfmc,tyrant,trout1,9skw5g,aceman,acls2h,aaabbb,acapulco,aggie,comcast,cloudy,cq2kph,d6o8pm,cybersex,davecole,darian,crumbs,davedave,dasani,mzepab,myporn,narnia,booger1,bravo1,budgie,btnjey,highlander,hotel6,humbug,ewtosi,kristin1,kobe,knuckles,keith1,katarina,muff,muschi,montana1,wingchun,wiggle,whatthe,vette1,vols,virago,intj3a,ishmael,jachin,illmatic,199999,2010,blender,bigpenis,bengal,blue1234,zaqxsw,xray,xxxxxxx1,zebras,yanks,tadpole,stripes,3737,4343,3728,4444444,368ejhih,solar,sonne,sniffer,sonata,squirts,playstation,pktmxr,pescator,texaco,lesbos,l8v53x,jo9k2jw2,jimbeam,jimi,jupiter2,jurassic,marines1,rocket1,14725836,12345679,1219,123098,1233,alessand,althor,arch,alpha123,basher,barefeet,balboa,bbbbb1,badabing,gopack,golfnut,gsxr1000,gregory1,766rglqy,8520,753159,8dihc6,69camaro,666777,cheeba,chino,cheeky,camel1,fishcake,flubber,gianni,gnasher23,frisbee,fuzzy1,fuzzball,save13tx,russell1,sandra1,scrotum,scumbag,sabre,samdog,dripping,dragon12,dragster,orwell,mainland,maine,qn632o,poophead,rapper,porn4life,rapunzel,velocity,vanessa1,trueblue,vampire1,abacus,902100,crispy,chooch,d6wnro,dabulls,dehpye,navyseal,njqcw4,nownow,nigger1,nightowl,nonenone,nightmar,bustle,buddy2,boingo,bugman,bosshog,hybrid,hillside,hilltop,hotlegs,hzze929b,hhhhh1,hellohel,evilone,edgewise,e5pftu,eded,embalmer,excalibur,elefant,kenzie,killah,kleenex,mouses,mounta1n,motors,mutley,muffdive,vivitron,w00t88,iloveit,jarjar,incest,indycar,17171717,1664,17011701,222777,2663,beelch,benben,yitbos,yyyyy1,zzzzz1,stooge,tangerin,taztaz,stewart1,summer69,system1,surveyor,stirling,3qvqod,3way,456321,sizzle,simhrq,sparty,ssptx452,sphere,persian,ploppy,pn5jvw,poobear,pianos,plaster,testme,tiff,thriller,master12,rockey,1229,1217,1478,1009,anastasi,amonra,argentin,albino,azazel,grinder,6uldv8,83y6pv,8888888,4tlved,515051,carsten,flyers88,ffffff1,firehawk,firedog,flashman,ggggg1,godspeed,galway,giveitup,funtimes,gohan,giveme,geryfe,frenchie,sayang,rudeboy,sandals,dougal,drag0n,dga9la,desktop,onlyone,otter,pandas,mafia,luckys,lovelife,manders,qqh92r,qcmfd454,radar1,punani,ptbdhw,turtles,undertaker,trs8f7,ugejvp,abba,911turbo,acdc,abcd123,crash1,colony,delboy,davinci,notebook,nitrox,borabora,bonzai,brisbane,heeled,hooyah,hotgirl,i62gbq,horse1,hpk2qc,epvjb6,mnbvc,mommy1,munster,wiccan,2369,bettyboo,blondy,bismark,beanbag,bjhgfi,blackice,yvtte545,ynot,yess,zlzfrh,wolvie,007bond,******,tailgate,tanya1,sxhq65,stinky1,3234412,3ki42x,seville,shimmer,sienna,shitshit,skillet,sooners1,solaris,smartass,pedros,pennywis,pfloyd,tobydog,thetruth,letme1n,mario66,micky,rocky2,rewq,reindeer,1128,1207,1104,1432,aprilia,allstate,bagels,baggies,barrage,guru,72d5tn,606060,4wcqjn,chance1,flange,fartman,geil,gbhcf2,fussball,fuaqz4,gameboy,geneviev,rotary,seahawk,saab,samadams,devlt4,ditto,drevil,drinker,deuce,dipstick,octopus,ottawa,losangel,loverman,porky,q9umoz,rapture,pussy4me,triplex,ue8fpw,turbos,aaa340,churchil,crazyman,cutiepie,ddddd1,dejavu,cuxldv,nbvibt,nikon,niko,nascar1,bubba2,boobear,boogers,bullwink,bulldawg,horsemen,escalade,eagle2,dynamic,efyreg,minnesot,mogwai,msnxbi,mwq6qlzo,werder,verygood,voodoo1,iiiiii1,159951,1624,1911a1,2244,bellagio,bedlam,belkin,bill1,xirt2k,??????,susieq,sundown,sukebe,swifty,2fast4u,sexe,shroom,seaweed,skeeter1,snicker,spanky1,spook,phaedrus,pilots,peddler,thumper1,tiger7,tmjxn151,thematri,l2g7k3,letmeinn,jeffjeff,johnmish,mantra,mike69,mazda6,riptide,robots,1107,1130,142857,11001001,1134,armored,allnight,amatuers,bartok,astral,baboon,balls1,bassoon,hcleeb,happyman,granite,graywolf,golf1,gomets,8vjzus,7890,789123,8uiazp,5757,474jdvff,551scasi,50cent,camaro1,cherry1,chemist,firenze,fishtank,freewill,glendale,frogfrog,ganesh,scirocco,devilman,doodles,okinawa,olympic,orpheus,ohmygod,paisley,pallmall,lunchbox,manhatta,mahalo,mandarin,qwqwqw,qguvyt,pxx3eftp,rambler,poppy1,turk182,vdlxuc,tugboat,valiant,uwrl7c,chris123,cmfnpu,decimal,debbie1,dandy,daedalus,natasha1,nissan1,nancy123,nevermin,napalm,newcastle,bonghit,ibxnsm,hhhhhh1,holger,edmonton,equinox,dvader,kimmy,knulla,mustafa,monsoon,mistral,morgana,monica1,mojave,monterey,mrbill,vkaxcs,victor1,violator,vfdhif,wilson1,wavpzt,wildstar,winter99,iqzzt580,imback,1914,19741974,1monkey,1q2w3e4r5t,2500,2255,bigshow,bigbucks,blackcoc,zoomer,wtcacq,wobble,xmen,xjznq5,yesterda,yhwnqc,zzzxxx,393939,2fchbg,skinhead,skilled,shadow12,seaside,sinful,silicon,smk7366,snapshot,sniper1,soccer11,smutty,peepers,plokij,pdiddy,pimpdaddy,thrust,terran,topaz,today1,lionhear,littlema,lauren1,lincoln1,lgnu9d,juneau,methos,rogue1,romulus,redshift,1202,1469,12locked,arizona1,alfarome,al9agd,aol123,altec,apollo1,arse,baker1,bbb747,axeman,astro1,hawthorn,goodfell,hawks1,gstring,hannes,8543852,868686,4ng62t,554uzpad,5401,567890,5232,catfood,fire1,flipflop,fffff1,fozzie,fluff,fzappa,rustydog,scarab,satin,ruger,samsung1,destin,diablo2,dreamer1,detectiv,doqvq3,drywall,paladin1,papabear,offroad,panasonic,nyyankee,luetdi,qcfmtz,pyf8ah,puddles,pussyeat,ralph1,princeto,trivia,trewq,tri5a3,advent,9898,agyvorc,clarkie,coach1,courier,christo,chowder,cyzkhw,davidb,dad2ownu,daredevi,de7mdf,nazgul,booboo1,bonzo,butch1,huskers1,hgfdsa,hornyman,elektra,england1,elodie,kermit1,kaboom,morten,mocha,monday1,morgoth,weewee,weenie,vorlon,wahoo,ilovegod,insider,jayman,1911,1dallas,1900,1ranger,201jedlz,2501,1qaz,bignuts,bigbad,beebee,billows,belize,wvj5np,wu4etd,yamaha1,wrinkle5,zebra1,yankee1,zoomzoom,09876543,0311,?????,stjabn,tainted,3tmnej,skooter,skelter,starlite,spice1,stacey1,smithy,pollux,peternorth,pixie,piston,poets,toons,topspin,kugm7b,legends,jeepjeep,joystick,junkmail,jojojojo,jonboy,midland,mayfair,riches,reznor,rockrock,reboot,renee1,roadway,rasta220,1411,1478963,1019,archery,andyandy,barks,bagpuss,auckland,gooseman,hazmat,gucci,grammy,happydog,7kbe9d,7676,6bjvpe,5lyedn,5858,5291,charlie2,c7lrwu,candys,chateau,ccccc1,cardinals,fihdfv,fortune12,gocats,gaelic,fwsadn,godboy,gldmeo,fx3tuo,fubar1,generals,gforce,rxmtkp,rulz,sairam,dunhill,dogggg,ozlq6qwm,ov3ajy,lockout,makayla,macgyver,mallorca,prima,pvjegu,qhxbij,prelude1,totoro,tusymo,trousers,tulane,turtle1,tracy1,aerosmit,abbey1,clticic,cooper1,comets,delpiero,cyprus,dante1,dave1,nounours,nexus6,nogard,norfolk,brent1,booyah,bootleg,bulls23,bulls1,booper,heretic,icecube,hellno,hounds,honeydew,hooters1,hoes,hevnm4,hugohugo,epson,evangeli,eeeee1,eyphed".split(","))),
+r("english",q("you,i,to,the,a,and,that,it,of,me,what,is,in,this,know,i'm,for,no,have,my,don't,just,not,do,be,on,your,was,we,it's,with,so,but,all,well,are,he,oh,about,right,you're,get,here,out,going,like,yeah,if,her,she,can,up,want,think,that's,now,go,him,at,how,got,there,one,did,why,see,come,good,they,really,as,would,look,when,time,will,okay,back,can't,mean,tell,i'll,from,hey,were,he's,could,didn't,yes,his,been,or,something,who,because,some,had,then,say,ok,take,an,way,us,little,make,need,gonna,never,we're,too,she's,i've,sure,them,more,over,our,sorry,where,what's,let,thing,am,maybe,down,man,has,uh,very,by,there's,should,anything,said,much,any,life,even,off,doing,thank,give,only,thought,help,two,talk,people,god,still,wait,into,find,nothing,again,things,let's,doesn't,call,told,great,before,better,ever,night,than,away,first,believe,other,feel,everything,work,you've,fine,home,after,last,these,day,keep,does,put,around,stop,they're,i'd,guy,isn't,always,listen,wanted,mr,guys,huh,those,big,lot,happened,thanks,won't,trying,kind,wrong,through,talking,made,new,being,guess,hi,care,bad,mom,remember,getting,we'll,together,dad,leave,place,understand,wouldn't,actually,hear,baby,nice,father,else,stay,done,wasn't,their,course,might,mind,every,enough,try,hell,came,someone,you'll,own,family,whole,another,house,yourself,idea,ask,best,must,coming,old,looking,woman,which,years,room,left,knew,tonight,real,son,hope,name,same,went,um,hmm,happy,pretty,saw,girl,sir,show,friend,already,saying,next,three,job,problem,minute,found,world,thinking,haven't,heard,honey,matter,myself,couldn't,exactly,having,ah,probably,happen,we've,hurt,boy,both,while,dead,gotta,alone,since,excuse,start,kill,hard,you'd,today,car,ready,until,without,wants,hold,wanna,yet,seen,deal,took,once,gone,called,morning,supposed,friends,head,stuff,most,used,worry,second,part,live,truth,school,face,forget,true,business,each,cause,soon,knows,few,telling,wife,who's,use,chance,run,move,anyone,person,bye,somebody,dr,heart,such,miss,married,point,later,making,meet,anyway,many,phone,reason,damn,lost,looks,bring,case,turn,wish,tomorrow,kids,trust,check,change,end,late,anymore,five,least,town,aren't,ha,working,year,makes,taking,means,brother,play,hate,ago,says,beautiful,gave,fact,crazy,party,sit,open,afraid,between,important,rest,fun,kid,word,watch,glad,everyone,days,sister,minutes,everybody,bit,couple,whoa,either,mrs,feeling,daughter,wow,gets,asked,under,break,promise,door,set,close,hand,easy,question,tried,far,walk,needs,mine,though,times,different,killed,hospital,anybody,alright,wedding,shut,able,die,perfect,stand,comes,hit,story,ya,mm,waiting,dinner,against,funny,husband,almost,pay,answer,four,office,eyes,news,child,shouldn't,half,side,yours,moment,sleep,read,where's,started,men,sounds,sonny,pick,sometimes,em,bed,also,date,line,plan,hours,lose,hands,serious,behind,inside,high,ahead,week,wonderful,fight,past,cut,quite,number,he'll,sick,it'll,game,eat,nobody,goes,along,save,seems,finally,lives,worried,upset,carly,met,book,brought,seem,sort,safe,living,children,weren't,leaving,front,shot,loved,asking,running,clear,figure,hot,felt,six,parents,drink,absolutely,how's,daddy,alive,sense,meant,happens,special,bet,blood,ain't,kidding,lie,full,meeting,dear,seeing,sound,fault,water,ten,women,buy,months,hour,speak,lady,jen,thinks,christmas,body,order,outside,hang,possible,worse,company,mistake,ooh,handle,spend,totally,giving,control,here's,marriage,realize,president,unless,sex,send,needed,taken,died,scared,picture,talked,ass,hundred,changed,completely,explain,playing,certainly,sign,boys,relationship,loves,hair,lying,choice,anywhere,future,weird,luck,she'll,turned,known,touch,kiss,crane,questions,obviously,wonder,pain,calling,somewhere,throw,straight,cold,fast,words,food,none,drive,feelings,they'll,worked,marry,light,drop,cannot,sent,city,dream,protect,twenty,class,surprise,its,sweetheart,poor,looked,mad,except,gun,y'know,dance,takes,appreciate,especially,situation,besides,pull,himself,hasn't,act,worth,sheridan,amazing,top,given,expect,rather,involved,swear,piece,busy,law,decided,happening,movie,we'd,catch,country,less,perhaps,step,fall,watching,kept,darling,dog,win,air,honor,personal,moving,till,admit,problems,murder,he'd,evil,definitely,feels,information,honest,eye,broke,missed,longer,dollars,tired,evening,human,starting,red,entire,trip,club,niles,suppose,calm,imagine,fair,caught,blame,street,sitting,favor,apartment,court,terrible,clean,learn,works,frasier,relax,million,accident,wake,prove,smart,message,missing,forgot,interested,table,nbsp,become,mouth,pregnant,middle,ring,careful,shall,team,ride,figured,wear,shoot,stick,follow,angry,instead,write,stopped,early,ran,war,standing,forgive,jail,wearing,kinda,lunch,cristian,eight,greenlee,gotten,hoping,phoebe,thousand,ridge,paper,tough,tape,state,count,boyfriend,proud,agree,birthday,seven,they've,history,share,offer,hurry,feet,wondering,decision,building,ones,finish,voice,herself,would've,list,mess,deserve,evidence,cute,dress,interesting,hotel,quiet,concerned,road,staying,beat,sweetie,mention,clothes,finished,fell,neither,mmm,fix,respect,spent,prison,attention,holding,calls,near,surprised,bar,keeping,gift,hadn't,putting,dark,self,owe,using,ice,helping,normal,aunt,lawyer,apart,certain,plans,jax,girlfriend,floor,whether,everything's,present,earth,box,cover,judge,upstairs,sake,mommy,possibly,worst,station,acting,accept,blow,strange,saved,conversation,plane,mama,yesterday,lied,quick,lately,stuck,report,difference,rid,store,she'd,bag,bought,doubt,listening,walking,cops,deep,dangerous,buffy,sleeping,chloe,rafe,shh,record,lord,moved,join,card,crime,gentlemen,willing,window,return,walked,guilty,likes,fighting,difficult,soul,joke,favorite,uncle,promised,public,bother,island,seriously,cell,lead,knowing,broken,advice,somehow,paid,losing,push,helped,killing,usually,earlier,boss,beginning,liked,innocent,doc,rules,cop,learned,thirty,risk,letting,speaking,officer,ridiculous,support,afternoon,born,apologize,seat,nervous,across,song,charge,patient,boat,how'd,hide,detective,planning,nine,huge,breakfast,horrible,age,awful,pleasure,driving,hanging,picked,sell,quit,apparently,dying,notice,congratulations,chief,one's,month,visit,could've,c'mon,letter,decide,double,sad,press,forward,fool,showed,smell,seemed,spell,memory,pictures,slow,seconds,hungry,board,position,hearing,roz,kitchen,ma'am,force,fly,during,space,should've,realized,experience,kick,others,grab,mother's,discuss,third,cat,fifty,responsible,fat,reading,idiot,yep,suddenly,agent,destroy,bucks,track,shoes,scene,peace,arms,demon,low,livvie,consider,papers,medical,incredible,witch,drunk,attorney,tells,knock,ways,gives,department,nose,skye,turns,keeps,jealous,drug,sooner,cares,plenty,extra,tea,won,attack,ground,whose,outta,weekend,matters,wrote,type,father's,gosh,opportunity,impossible,books,waste,pretend,named,jump,eating,proof,complete,slept,career,arrest,breathe,perfectly,warm,pulled,twice,easier,goin,dating,suit,romantic,drugs,comfortable,finds,checked,fit,divorce,begin,ourselves,closer,ruin,although,smile,laugh,treat,god's,fear,what'd,guy's,otherwise,excited,mail,hiding,cost,stole,pacey,noticed,fired,excellent,lived,bringing,pop,bottom,note,sudden,bathroom,flight,honestly,sing,foot,games,remind,bank,charges,witness,finding,places,tree,dare,hardly,that'll,interest,steal,silly,contact,teach,shop,plus,colonel,fresh,trial,invited,roll,radio,reach,heh,choose,emergency,dropped,credit,obvious,cry,locked,loving,positive,nuts,agreed,prue,goodbye,condition,guard,fuckin,grow,cake,mood,dad's,total,crap,crying,belong,lay,partner,trick,pressure,ohh,arm,dressed,cup,lies,bus,taste,neck,south,something's,nurse,raise,lots,carry,group,whoever,drinking,they'd,breaking,file,lock,wine,closed,writing,spot,paying,study,assume,asleep,man's,turning,legal,viki,bedroom,shower,nikolas,camera,fill,reasons,forty,bigger,nope,breath,doctors,pants,level,movies,gee,area,folks,ugh,continue,focus,wild,truly,desk,convince,client,threw,band,hurts,spending,allow,grand,answers,shirt,chair,allowed,rough,doin,sees,government,ought,empty,round,hat,wind,shows,aware,dealing,pack,meaning,hurting,ship,subject,guest,mom's,pal,match,arrested,salem,confused,surgery,expecting,deacon,unfortunately,goddamn,lab,passed,bottle,beyond,whenever,pool,opinion,held,common,starts,jerk,secrets,falling,played,necessary,barely,dancing,health,tests,copy,cousin,planned,dry,ahem,twelve,simply,tess,skin,often,fifteen,speech,names,issue,orders,nah,final,results,code,believed,complicated,umm,research,nowhere,escape,biggest,restaurant,grateful,usual,burn,address,within,someplace,screw,everywhere,train,film,regret,goodness,mistakes,details,responsibility,suspect,corner,hero,dumb,terrific,further,gas,whoo,hole,memories,o'clock,following,ended,nobody's,teeth,ruined,split,airport,bite,stenbeck,older,liar,showing,project,cards,desperate,themselves,pathetic,damage,spoke,quickly,scare,marah,afford,vote,settle,mentioned,due,stayed,rule,checking,tie,hired,upon,heads,concern,blew,natural,alcazar,champagne,connection,tickets,happiness,form,saving,kissing,hated,personally,suggest,prepared,build,leg,onto,leaves,downstairs,ticket,it'd,taught,loose,holy,staff,sea,duty,convinced,throwing,defense,kissed,legs,according,loud,practice,saturday,babies,army,where'd,warning,miracle,carrying,flying,blind,ugly,shopping,hates,someone's,sight,bride,coat,account,states,clearly,celebrate,brilliant,wanting,add,forrester,lips,custody,center,screwed,buying,size,toast,thoughts,student,stories,however,professional,reality,birth,lexie,attitude,advantage,grandfather,sami,sold,opened,grandma,beg,changes,someday,grade,roof,brothers,signed,ahh,marrying,powerful,grown,grandmother,fake,opening,expected,eventually,must've,ideas,exciting,covered,familiar,bomb,bout,television,harmony,color,heavy,schedule,records,capable,practically,including,correct,clue,forgotten,immediately,appointment,social,nature,deserves,threat,bloody,lonely,ordered,shame,local,jacket,hook,destroyed,scary,investigation,above,invite,shooting,port,lesson,criminal,growing,caused,victim,professor,followed,funeral,nothing's,considering,burning,strength,loss,view,gia,sisters,everybody's,several,pushed,written,somebody's,shock,pushing,heat,chocolate,greatest,miserable,corinthos,nightmare,brings,zander,character,became,famous,enemy,crash,chances,sending,recognize,healthy,boring,feed,engaged,percent,headed,lines,treated,purpose,knife,rights,drag,san,fan,badly,hire,paint,pardon,built,behavior,closet,warn,gorgeous,milk,survive,forced,operation,offered,ends,dump,rent,remembered,lieutenant,trade,thanksgiving,rain,revenge,physical,available,program,prefer,baby's,spare,pray,disappeared,aside,statement,sometime,meat,fantastic,breathing,laughing,itself,tip,stood,market,affair,ours,depends,main,protecting,jury,national,brave,large,jack's,interview,fingers,murdered,explanation,process,picking,based,style,pieces,blah,assistant,stronger,aah,pie,handsome,unbelievable,anytime,nearly,shake,everyone's,oakdale,cars,wherever,serve,pulling,points,medicine,facts,waited,lousy,circumstances,stage,disappointed,weak,trusted,license,nothin,community,trash,understanding,slip,cab,sounded,awake,friendship,stomach,weapon,threatened,mystery,official,regular,river,vegas,understood,contract,race,basically,switch,frankly,issues,cheap,lifetime,deny,painting,ear,clock,weight,garbage,why'd,tear,ears,dig,selling,setting,indeed,changing,singing,tiny,particular,draw,decent,avoid,messed,filled,touched,score,people's,disappear,exact,pills,kicked,harm,recently,fortune,pretending,raised,insurance,fancy,drove,cared,belongs,nights,shape,lorelai,base,lift,stock,sonny's,fashion,timing,guarantee,chest,bridge,woke,source,patients,theory,original,burned,watched,heading,selfish,oil,drinks,failed,period,doll,committed,elevator,freeze,noise,exist,science,pair,edge,wasting,sat,ceremony,pig,uncomfortable,peg,guns,staring,files,bike,weather,name's,mostly,stress,permission,arrived,thrown,possibility,example,borrow,release,ate,notes,hoo,library,property,negative,fabulous,event,doors,screaming,xander,term,what're,meal,fellow,apology,anger,honeymoon,wet,bail,parking,non,protection,fixed,families,chinese,campaign,map,wash,stolen,sensitive,stealing,chose,lets,comfort,worrying,whom,pocket,mateo,bleeding,students,shoulder,ignore,fourth,neighborhood,fbi,talent,tied,garage,dies,demons,dumped,witches,training,rude,crack,model,bothering,radar,grew,remain,soft,meantime,gimme,connected,kinds,cast,sky,likely,fate,buried,hug,brother's,concentrate,prom,messages,east,unit,intend,crew,ashamed,somethin,manage,guilt,weapons,terms,interrupt,guts,tongue,distance,conference,treatment,shoe,basement,sentence,purse,glasses,cabin,universe,towards,repeat,mirror,wound,travers,tall,reaction,odd,engagement,therapy,letters,emotional,runs,magazine,jeez,decisions,soup,daughter's,thrilled,society,managed,stake,chef,moves,extremely,entirely,moments,expensive,counting,shots,kidnapped,square,son's,cleaning,shift,plate,impressed,smells,trapped,male,tour,aidan,knocked,charming,attractive,argue,puts,whip,language,embarrassed,settled,package,laid,animals,hitting,disease,bust,stairs,alarm,pure,nail,nerve,incredibly,walks,dirt,stamp,sister's,becoming,terribly,friendly,easily,damned,jobs,suffering,disgusting,stopping,deliver,riding,helps,federal,disaster,bars,dna,crossed,rate,create,trap,claim,california,talks,eggs,effect,chick,threatening,spoken,introduce,confession,embarrassing,bags,impression,gate,year's,reputation,attacked,among,knowledge,presents,inn,europe,chat,suffer,argument,talkin,crowd,homework,fought,coincidence,cancel,accepted,rip,pride,solve,hopefully,pounds,pine,mate,illegal,generous,streets,con,separate,outfit,maid,bath,punch,mayor,freaked,begging,recall,enjoying,bug,woman's,prepare,parts,wheel,signal,direction,defend,signs,painful,yourselves,rat,maris,amount,that'd,suspicious,flat,cooking,button,warned,sixty,pity,parties,crisis,coach,row,yelling,leads,awhile,pen,confidence,offering,falls,image,farm,pleased,panic,hers,gettin,role,refuse,determined,hell's,grandpa,progress,testify,passing,military,choices,uhh,gym,cruel,wings,bodies,mental,gentleman,coma,cutting,proteus,guests,girl's,expert,benefit,faces,cases,led,jumped,toilet,secretary,sneak,mix,firm,halloween,agreement,privacy,dates,anniversary,smoking,reminds,pot,created,twins,swing,successful,season,scream,considered,solid,options,commitment,senior,ill,else's,crush,ambulance,wallet,discovered,officially,til,rise,reached,eleven,option,laundry,former,assure,stays,skip,fail,accused,wide,challenge,popular,learning,discussion,clinic,plant,exchange,betrayed,bro,sticking,university,members,lower,bored,mansion,soda,sheriff,suite,handled,busted,senator,load,happier,younger,studying,romance,procedure,ocean,section,sec,commit,assignment,suicide,minds,swim,ending,bat,yell,llanview,league,chasing,seats,proper,command,believes,humor,hopes,fifth,winning,solution,leader,theresa's,sale,lawyers,nor,material,latest,highly,escaped,audience,parent,tricks,insist,dropping,cheer,medication,higher,flesh,district,routine,century,shared,sandwich,handed,false,beating,appear,warrant,family's,awfully,odds,article,treating,thin,suggesting,fever,sweat,silent,specific,clever,sweater,request,prize,mall,tries,mile,fully,estate,union,sharing,assuming,judgment,goodnight,divorced,despite,surely,steps,jet,confess,math,listened,comin,answered,vulnerable,bless,dreaming,rooms,chip,zero,potential,pissed,nate,kills,tears,knees,chill,carly's,brains,agency,harvard,degree,unusual,wife's,joint,packed,dreamed,cure,covering,newspaper,lookin,coast,grave,egg,direct,cheating,breaks,quarter,mixed,locker,husband's,gifts,awkward,toy,thursday,rare,policy,kid's,joking,competition,classes,assumed,reasonable,dozen,curse,quartermaine,millions,dessert,rolling,detail,alien,served,delicious,closing,vampires,released,ancient,wore,value,tail,secure,salad,murderer,hits,toward,spit,screen,offense,dust,conscience,bread,answering,admitted,lame,invitation,grief,smiling,path,stands,bowl,pregnancy,hollywood,prisoner,delivery,guards,virus,shrink,influence,freezing,concert,wreck,partners,massimo,chain,birds,life's,wire,technically,presence,blown,anxious,cave,version,holidays,cleared,wishes,survived,caring,candles,bound,related,charm,yup,pulse,jumping,jokes,frame,boom,vice,performance,occasion,silence,opera,nonsense,frightened,downtown,americans,slipped,dimera,blowing,world's,session,relationships,kidnapping,actual,spin,civil,roxy,packing,education,blaming,wrap,obsessed,fruit,torture,personality,location,effort,daddy's,commander,trees,there'll,owner,fairy,per,other's,necessarily,county,contest,seventy,print,motel,fallen,directly,underwear,grams,exhausted,believing,particularly,freaking,carefully,trace,touching,messing,committee,recovery,intention,consequences,belt,sacrifice,courage,officers,enjoyed,lack,attracted,appears,bay,yard,returned,remove,nut,carried,today's,testimony,intense,granted,violence,heal,defending,attempt,unfair,relieved,political,loyal,approach,slowly,plays,normally,buzz,alcohol,actor,surprises,psychiatrist,pre,plain,attic,who'd,uniform,terrified,sons,pet,cleaned,zach,threaten,teaching,mum,motion,fella,enemies,desert,collection,incident,failure,satisfied,imagination,hooked,headache,forgetting,counselor,andie,acted,opposite,highest,equipment,badge,italian,visiting,naturally,frozen,commissioner,sakes,labor,appropriate,trunk,armed,thousands,received,dunno,costume,temporary,sixteen,impressive,zone,kicking,junk,hon,grabbed,unlike,understands,describe,clients,owns,affect,witnesses,starving,instincts,happily,discussing,deserved,strangers,leading,intelligence,host,authority,surveillance,cow,commercial,admire,questioning,fund,dragged,barn,object,deeply,amp,wrapped,wasted,tense,route,reports,hoped,fellas,election,roommate,mortal,fascinating,chosen,stops,shown,arranged,abandoned,sides,delivered,becomes,arrangements,agenda,began,theater,series,literally,propose,honesty,underneath,forces,services,sauce,promises,lecture,eighty,torn,shocked,relief,explained,counter,circle,victims,transfer,response,channel,identity,differently,campus,spy,ninety,interests,guide,deck,biological,pheebs,ease,creep,will's,waitress,skills,telephone,ripped,raising,scratch,rings,prints,wave,thee,arguing,figures,ephram,asks,reception,pin,oops,diner,annoying,agents,taggert,goal,mass,ability,sergeant,julian's,international,gig,blast,basic,tradition,towel,earned,rub,president's,habit,customers,creature,bermuda,actions,snap,react,prime,paranoid,wha,handling,eaten,therapist,comment,charged,tax,sink,reporter,beats,priority,interrupting,gain,fed,warehouse,shy,pattern,loyalty,inspector,events,pleasant,media,excuses,threats,permanent,guessing,financial,demand,assault,tend,praying,motive,los,unconscious,trained,museum,tracks,range,nap,mysterious,unhappy,tone,switched,rappaport,award,sookie,neighbor,loaded,gut,childhood,causing,swore,piss,hundreds,balance,background,toss,mob,misery,valentine's,thief,squeeze,lobby,hah,goa'uld,geez,exercise,ego,drama,al's,forth,facing,booked,boo,songs,sandburg,eighteen,d'you,bury,perform,everyday,digging,creepy,compared,wondered,trail,liver,hmmm,drawn,device,magical,journey,fits,discussed,supply,moral,helpful,attached,timmy's,searching,flew,depressed,aisle,underground,pro,daughters,cris,amen,vows,proposal,pit,neighbors,darn,cents,arrange,annulment,uses,useless,squad,represent,product,joined,afterwards,adventure,resist,protected,net,fourteen,celebrating,piano,inch,flag,debt,violent,tag,sand,gum,dammit,teal'c,hip,celebration,below,reminded,claims,tonight's,replace,phones,paperwork,emotions,typical,stubborn,stable,sheridan's,pound,papa,lap,designed,current,bum,tension,tank,suffered,steady,provide,overnight,meanwhile,chips,beef,wins,suits,boxes,salt,cassadine,collect,boy's,tragedy,therefore,spoil,realm,profile,degrees,wipe,surgeon,stretch,stepped,nephew,neat,limo,confident,anti,perspective,designer,climb,title,suggested,punishment,finest,ethan's,springfield,occurred,hint,furniture,blanket,twist,surrounded,surface,proceed,lip,fries,worries,refused,niece,gloves,soap,signature,disappoint,crawl,convicted,zoo,result,pages,lit,flip,counsel,doubts,crimes,accusing,when's,shaking,remembering,phase,hallway,halfway,bothered,useful,makeup,madam,gather,concerns,cia,cameras,blackmail,symptoms,rope,ordinary,imagined,concept,cigarette,supportive,memorial,explosion,yay,woo,trauma,ouch,leo's,furious,cheat,avoiding,whew,thick,oooh,boarding,approve,urgent,shhh,misunderstanding,minister,drawer,sin,phony,joining,jam,interfere,governor,chapter,catching,bargain,tragic,schools,respond,punish,penthouse,hop,thou,remains,rach,ohhh,insult,doctor's,bugs,beside,begged,absolute,strictly,stefano,socks,senses,ups,sneaking,yah,serving,reward,polite,checks,tale,physically,instructions,fooled,blows,tabby,internal,bitter,adorable,y'all,tested,suggestion,string,jewelry,debate,com,alike,pitch,fax,distracted,shelter,lessons,foreign,average,twin,friend's,damnit,constable,circus,audition,tune,shoulders,mud,mask,helpless,feeding,explains,dated,robbery,objection,behave,valuable,shadows,courtroom,confusing,tub,talented,struck,smarter,mistaken,italy,customer,bizarre,scaring,punk,motherfucker,holds,focused,alert,activity,vecchio,reverend,highway,foolish,compliment,bastards,attend,scheme,aid,worker,wheelchair,protective,poetry,gentle,script,reverse,picnic,knee,intended,construction,cage,wednesday,voices,toes,stink,scares,pour,effects,cheated,tower,time's,slide,ruining,recent,jewish,filling,exit,cottage,corporate,upside,supplies,proves,parked,instance,grounds,diary,complaining,basis,wounded,thing's,politics,confessed,pipe,merely,massage,data,chop,budget,brief,spill,prayer,costs,betray,begins,arrangement,waiter,scam,rats,fraud,flu,brush,anyone's,adopted,tables,sympathy,pill,pee,web,seventeen,landed,expression,entrance,employee,drawing,cap,bracelet,principal,pays,jen's,fairly,facility,dru,deeper,arrive,unique,tracking,spite,shed,recommend,oughta,nanny,naive,menu,grades,diet,corn,authorities,separated,roses,patch,dime,devastated,description,tap,subtle,include,citizen,bullets,beans,ric,pile,las,executive,confirm,toe,strings,parade,harbor,charity's,bow,borrowed,toys,straighten,steak,status,remote,premonition,poem,planted,honored,youth,specifically,meetings,exam,convenient,traveling,matches,laying,insisted,apply,units,technology,dish,aitoro,sis,kindly,grandson,donor,temper,teenager,strategy,richard's,proven,iron,denial,couples,backwards,tent,swell,noon,happiest,episode,drives,thinkin,spirits,potion,fence,affairs,acts,whatsoever,rehearsal,proved,overheard,nuclear,lemme,hostage,faced,constant,bench,tryin,taxi,shove,sets,moron,limits,impress,entitled,needle,limit,lad,intelligent,instant,forms,disagree,stinks,rianna,recover,paul's,losers,groom,gesture,developed,constantly,blocks,bartender,tunnel,suspects,sealed,removed,legally,illness,hears,dresses,aye,vehicle,thy,teachers,sheet,receive,psychic,night's,denied,knocking,judging,bible,behalf,accidentally,waking,ton,superior,seek,rumor,natalie's,manners,homeless,hollow,desperately,critical,theme,tapes,referring,personnel,item,genoa,gear,majesty,fans,exposed,cried,tons,spells,producer,launch,instinct,belief,quote,motorcycle,convincing,appeal,advance,greater,fashioned,aids,accomplished,mommy's,grip,bump,upsetting,soldiers,scheduled,production,needing,invisible,forgiveness,feds,complex,compare,bothers,tooth,territory,sacred,mon,jessica's,inviting,inner,earn,compromise,cocktail,tramp,temperature,signing,landing,jabot,intimate,dignity,dealt,souls,informed,gods,entertainment,dressing,cigarettes,blessing,billion,alistair,upper,manner,lightning,leak,heaven's,fond,corky,alternative,seduce,players,operate,modern,liquor,fingerprints,enchantment,butters,stuffed,stavros,rome,filed,emotionally,division,conditions,uhm,transplant,tips,passes,oxygen,nicely,lunatic,hid,drill,designs,complain,announcement,visitors,unfortunate,slap,prayers,plug,organization,opens,oath,o'neill,mutual,graduate,confirmed,broad,yacht,spa,remembers,fried,extraordinary,bait,appearance,abuse,warton,sworn,stare,safely,reunion,plot,burst,aha,might've,experiment,dive,commission,cells,aboard,returning,independent,expose,environment,buddies,trusting,smaller,mountains,booze,sweep,sore,scudder,properly,parole,manhattan,effective,ditch,decides,canceled,bra,antonio's,speaks,spanish,reaching,glow,foundation,women's,wears,thirsty,skull,ringing,dorm,dining,bend,unexpected,systems,sob,pancakes,michael's,harsh,flattered,existence,ahhh,troubles,proposed,fights,favourite,eats,driven,computers,rage,luke's,causes,border,undercover,spoiled,sloane,shine,rug,identify,destroying,deputy,deliberately,conspiracy,clothing,thoughtful,similar,sandwiches,plates,nails,miracles,investment,fridge,drank,contrary,beloved,allergic,washed,stalking,solved,sack,misses,hope's,forgiven,erica's,cuz,bent,approval,practical,organized,maciver,involve,industry,fuel,dragging,cooked,possession,pointing,foul,editor,dull,beneath,ages,horror,heels,grass,faking,deaf,stunt,portrait,painted,jealousy,hopeless,fears,cuts,conclusion,volunteer,scenario,satellite,necklace,men's,crashed,chapel,accuse,restraining,jason's,humans,homicide,helicopter,formal,firing,shortly,safer,devoted,auction,videotape,tore,stores,reservations,pops,appetite,anybody's,wounds,vanquish,symbol,prevent,patrol,ironic,flow,fathers,excitement,anyhow,tearing,sends,sam's,rape,laughed,function,core,charmed,whatever's,sub,lucy's,dealer,cooperate,bachelor,accomplish,wakes,struggle,spotted,sorts,reservation,ashes,yards,votes,tastes,supposedly,loft,intentions,integrity,wished,towels,suspected,slightly,qualified,log,investigating,inappropriate,immediate,companies,backed,pan,owned,lipstick,lawn,compassion,cafeteria,belonged,affected,scarf,precisely,obsession,management,loses,lighten,jake's,infection,granddaughter,explode,chemistry,balcony,this'll,storage,spying,publicity,exists,employees,depend,cue,cracked,conscious,aww,ally,ace,accounts,absurd,vicious,tools,strongly,rap,invented,forbid,directions,defendant,bare,announce,alcazar's,screwing,salesman,robbed,leap,lakeview,insanity,injury,genetic,document,why's,reveal,religious,possibilities,kidnap,gown,entering,chairs,wishing,statue,setup,serial,punished,dramatic,dismissed,criminals,seventh,regrets,raped,quarters,produce,lamp,dentist,anyways,anonymous,added,semester,risks,regarding,owes,magazines,machines,lungs,explaining,delicate,child's,tricked,oldest,liv,eager,doomed,cafe,bureau,adoption,traditional,surrender,stab,sickness,scum,loop,independence,generation,floating,envelope,entered,combination,chamber,worn,vault,sorel,pretended,potatoes,plea,photograph,payback,misunderstood,kiddo,healing,cascade,capeside,application,stabbed,remarkable,cabinet,brat,wrestling,sixth,scale,privilege,passionate,nerves,lawsuit,kidney,disturbed,crossing,cozy,associate,tire,shirts,required,posted,oven,ordering,mill,journal,gallery,delay,clubs,risky,nest,monsters,honorable,grounded,favour,culture,closest,brenda's,breakdown,attempted,tony's,placed,conflict,bald,actress,abandon,steam,scar,pole,duh,collar,worthless,standards,resources,photographs,introduced,injured,graduation,enormous,disturbing,disturb,distract,deals,conclusions,vodka,situations,require,mid,measure,dishes,crawling,congress,children's,briefcase,wiped,whistle,sits,roast,rented,pigs,greek,flirting,existed,deposit,damaged,bottles,vanessa's,types,topic,riot,overreacting,minimum,logical,impact,hostile,embarrass,casual,beacon,amusing,altar,values,recognized,maintain,goods,covers,claus,battery,survival,skirt,shave,prisoners,porch,med,ghosts,favors,drops,dizzy,chili,begun,beaten,advise,transferred,strikes,rehab,raw,photographer,peaceful,leery,heavens,fortunately,fooling,expectations,draft,citizens,weakness,ski,ships,ranch,practicing,musical,movement,individual,homes,executed,examine,documents,cranes,column,bribe,task,species,sail,rum,resort,prescription,operating,hush,fragile,forensics,expense,drugged,differences,cows,conduct,comic,bells,avenue,attacking,assigned,visitor,suitcase,sources,sorta,scan,payment,motor,mini,manticore,inspired,insecure,imagining,hardest,clerk,yea,wrist,what'll,tube,starters,silk,pump,pale,nicer,haul,flies,demands,boot,arts,african,there'd,limited,how're,elders,connections,quietly,pulls,idiots,factor,erase,denying,attacks,ankle,amnesia,accepting,ooo,heartbeat,gal,devane,confront,backing,phrase,operations,minus,meets,legitimate,hurricane,fixing,communication,boats,auto,arrogant,supper,studies,slightest,sins,sayin,recipe,pier,paternity,humiliating,genuine,catholic,snack,rational,pointed,minded,guessed,grace's,display,dip,brooke's,advanced,weddings,unh,tumor,teams,reported,humiliated,destruction,copies,closely,bid,aspirin,academy,wig,throughout,spray,occur,logic,eyed,equal,drowning,contacts,shakespeare,ritual,perfume,kelly's,hiring,hating,generally,error,elected,docks,creatures,visions,thanking,thankful,sock,replaced,nineteen,nick's,fork,comedy,analysis,yale,throws,teenagers,studied,stressed,slice,rolls,requires,plead,ladder,kicks,detectives,assured,alison's,widow,tomorrow's,tissue,tellin,shallow,responsibilities,repay,rejected,permanently,girlfriends,deadly,comforting,ceiling,bonus,verdict,maintenance,jar,insensitive,factory,aim,triple,spilled,respected,recovered,messy,interrupted,halliwell,car's,bleed,benefits,wardrobe,takin,significant,objective,murders,doo,chart,backs,workers,waves,underestimate,ties,registered,multiple,justify,harmless,frustrated,fold,enzo,convention,communicate,bugging,attraction,arson,whack,salary,rumors,residence,party's,obligation,medium,liking,laura's,development,develop,dearest,david's,danny's,congratulate,vengeance,switzerland,severe,rack,puzzle,puerto,guidance,fires,courtesy,caller,blamed,tops,repair,quiz,prep,now's,involves,headquarters,curiosity,codes,circles,barbecue,troops,sunnydale,spinning,scores,pursue,psychotic,cough,claimed,accusations,shares,resent,money's,laughs,gathered,freshman,envy,drown,cristian's,bartlet,asses,sofa,scientist,poster,islands,highness,dock,apologies,welfare,victor's,theirs,stat,stall,spots,somewhat,ryan's,realizes,psych,fools,finishing,album,wee,understandable,unable,treats,theatre,succeed,stir,relaxed,makin,inches,gratitude,faithful,bin,accent,zip,witter,wandering,regardless,que,locate,inevitable,gretel,deed,crushed,controlling,taxes,smelled,settlement,robe,poet,opposed,marked,greenlee's,gossip,gambling,determine,cuba,cosmetics,cent,accidents,surprising,stiff,sincere,shield,rushed,resume,reporting,refrigerator,reference,preparing,nightmares,mijo,ignoring,hunch,fog,fireworks,drowned,crown,cooperation,brass,accurate,whispering,sophisticated,religion,luggage,investigate,hike,explore,emotion,creek,crashing,contacted,complications,ceo,acid,shining,rolled,righteous,reconsider,inspiration,goody,geek,frightening,festival,ethics,creeps,courthouse,camping,assistance,affection,vow,smythe,protest,lodge,haircut,forcing,essay,chairman,baked,apologized,vibe,respects,receipt,mami,includes,hats,exclusive,destructive,define,defeat,adore,adopt,voted,tracked,signals,shorts,rory's,reminding,relative,ninth,floors,dough,creations,continues,cancelled,cabot,barrel,adam's,snuck,slight,reporters,rear,pressing,novel,newspapers,magnificent,madame,lazy,glorious,fiancee,candidate,brick,bits,australia,activities,visitation,scholarship,sane,previous,kindness,ivy's,shoulda,rescued,mattress,maria's,lounge,lifted,label,importantly,glove,enterprises,driver's,disappointment,condo,cemetery,beings,admitting,yelled,waving,screech,satisfaction,requested,reads,plants,nun,nailed,described,dedicated,certificate,centuries,annual,worm,tick,resting,primary,polish,marvelous,fuss,funds,defensive,cortlandt,compete,chased,provided,pockets,luckily,lilith,filing,depression,conversations,consideration,consciousness,worlds,innocence,indicate,grandmother's,forehead,bam,appeared,aggressive,trailer,slam,retirement,quitting,pry,person's,narrow,levels,kay's,inform,encourage,dug,delighted,daylight,danced,currently,confidential,billy's,ben's,aunts,washing,vic,tossed,spectra,rick's,permit,marrow,lined,implying,hatred,grill,efforts,corpse,clues,sober,relatives,promotion,offended,morgue,larger,infected,humanity,eww,emily's,electricity,electrical,distraction,cart,broadcast,wired,violation,suspended,promising,harassment,glue,gathering,d'angelo,cursed,controlled,calendar,brutal,assets,warlocks,wagon,unpleasant,proving,priorities,observation,mustn't,lease,grows,flame,domestic,disappearance,depressing,thrill,sitter,ribs,offers,naw,flush,exception,earrings,deadline,corporal,collapsed,update,snapped,smack,orleans,offices,melt,figuring,delusional,coulda,burnt,actors,trips,tender,sperm,specialist,scientific,realise,pork,popped,planes,kev,interrogation,institution,included,esteem,communications,choosing,choir,undo,pres,prayed,plague,manipulate,lifestyle,insulting,honour,detention,delightful,coffeehouse,chess,betrayal,apologizing,adjust,wrecked,wont,whipped,rides,reminder,psychological,principle,monsieur,injuries,fame,faint,confusion,christ's,bon,bake,nearest,korea,industries,execution,distress,definition,creating,correctly,complaint,blocked,trophy,tortured,structure,rot,risking,pointless,household,heir,handing,eighth,dumping,cups,chloe's,alibi,absence,vital,tokyo,thus,struggling,shiny,risked,refer,mummy,mint,joey's,involvement,hose,hobby,fortunate,fleischman,fitting,curtain,counseling,addition,wit,transport,technical,rode,puppet,opportunities,modeling,memo,irresponsible,humiliation,hiya,freakin,fez,felony,choke,blackmailing,appreciated,tabloid,suspicion,recovering,rally,psychology,pledge,panicked,nursery,louder,jeans,investigator,identified,homecoming,helena's,height,graduated,frustrating,fabric,distant,buys,busting,buff,wax,sleeve,products,philosophy,irony,hospitals,dope,declare,autopsy,workin,torch,substitute,scandal,prick,limb,leaf,lady's,hysterical,growth,goddamnit,fetch,dimension,day's,crowded,clip,climbing,bonding,approved,yeh,woah,ultimately,trusts,returns,negotiate,millennium,majority,lethal,length,iced,deeds,bore,babysitter,questioned,outrageous,medal,kiriakis,insulted,grudge,established,driveway,deserted,definite,capture,beep,wires,suggestions,searched,owed,originally,nickname,lighting,lend,drunken,demanding,costanza,conviction,characters,bumped,weigh,touches,tempted,shout,resolve,relate,poisoned,pip,phoebe's,pete's,occasionally,molly's,meals,maker,invitations,haunted,fur,footage,depending,bogus,autograph,affects,tolerate,stepping,spontaneous,sleeps,probation,presentation,performed,manny,identical,fist,cycle,associates,aaron's,streak,spectacular,sector,lasted,isaac's,increase,hostages,heroin,havin,habits,encouraging,cult,consult,burgers,boyfriends,bailed,baggage,association,wealthy,watches,versus,troubled,torturing,teasing,sweetest,stations,sip,shawn's,rag,qualities,postpone,pad,overwhelmed,malkovich,impulse,hut,follows,classy,charging,barbara's,angel's,amazed,scenes,rising,revealed,representing,policeman,offensive,mug,hypocrite,humiliate,hideous,finals,experiences,d'ya,courts,costumes,captured,bluffing,betting,bein,bedtime,alcoholic,vegetable,tray,suspicions,spreading,splendid,shouting,roots,pressed,nooo,liza's,jew,intent,grieving,gladly,fling,eliminate,disorder,courtney's,cereal,arrives,aaah,yum,technique,statements,sonofabitch,servant,roads,republican,paralyzed,orb,lotta,locks,guaranteed,european,dummy,discipline,despise,dental,corporation,carries,briefing,bluff,batteries,atmosphere,whatta,tux,sounding,servants,rifle,presume,kevin's,handwriting,goals,gin,fainted,elements,dried,cape,allright,allowing,acknowledge,whacked,toxic,skating,reliable,quicker,penalty,panel,overwhelming,nearby,lining,importance,harassing,fatal,endless,elsewhere,dolls,convict,bold,ballet,whatcha,unlikely,spiritual,shutting,separation,recording,positively,overcome,goddam,failing,essence,dose,diagnosis,cured,claiming,bully,airline,ahold,yearbook,various,tempting,shelf,rig,pursuit,prosecution,pouring,possessed,partnership,miguel's,lindsay's,countries,wonders,tsk,thorough,spine,rath,psychiatric,meaningless,latte,jammed,ignored,fiance,exposure,exhibit,evidently,duties,contempt,compromised,capacity,cans,weekends,urge,theft,suing,shipment,scissors,responding,refuses,proposition,noises,matching,located,ink,hormones,hiv,hail,grandchildren,godfather,gently,establish,crane's,contracts,compound,buffy's,worldwide,smashed,sexually,sentimental,senor,scored,patient's,nicest,marketing,manipulated,jaw,intern,handcuffs,framed,errands,entertaining,discovery,crib,carriage,barge,awards,attending,ambassador,videos,tab,spends,slipping,seated,rubbing,rely,reject,recommendation,reckon,ratings,headaches,float,embrace,corners,whining,sweating,sole,skipped,restore,receiving,population,pep,mountie,motives,mama's,listens,korean,heroes,heart's,cristobel,controls,cheerleader,balsom,unnecessary,stunning,shipping,scent,santa's,quartermaines,praise,pose,montega,luxury,loosen,kyle's,keri's,info,hum,haunt,gracious,git,forgiving,fleet,errand,emperor,cakes,blames,abortion,worship,theories,strict,sketch,shifts,plotting,physician,perimeter,passage,pals,mere,mattered,lonigan,longest,jews,interference,eyewitness,enthusiasm,encounter,diapers,craig's,artists,strongest,shaken,serves,punched,projects,portal,outer,nazi,hal's,colleagues,catches,bearing,backyard,academic,winds,terrorists,sabotage,pea,organs,needy,mentor,measures,listed,lex,cuff,civilization,caribbean,articles,writes,woof,who'll,viki's,valid,rarely,rabbi,prank,performing,obnoxious,mates,improve,hereby,gabby,faked,cellar,whitelighter,void,substance,strangle,sour,skill,senate,purchase,native,muffins,interfering,hoh,gina's,demonic,colored,clearing,civilian,buildings,boutique,barrington,trading,terrace,smoked,seed,righty,relations,quack,published,preliminary,petey,pact,outstanding,opinions,knot,ketchup,items,examined,disappearing,cordy,coin,circuit,assist,administration,walt,uptight,ticking,terrifying,tease,tabitha's,syd,swamp,secretly,rejection,reflection,realizing,rays,pennsylvania,partly,mentally,marone,jurisdiction,frasier's,doubted,deception,crucial,congressman,cheesy,arrival,visited,supporting,stalling,scouts,scoop,ribbon,reserve,raid,notion,income,immune,grandma's,expects,edition,destined,constitution,classroom,bets,appreciation,appointed,accomplice,whitney's,wander,shoved,sewer,scroll,retire,paintings,lasts,fugitive,freezer,discount,cranky,crank,clearance,bodyguard,anxiety,accountant,abby's,whoops,volunteered,terrorist,tales,talents,stinking,resolved,remotely,protocol,livvie's,garlic,decency,cord,beds,asa's,areas,altogether,uniforms,tremendous,restaurants,rank,profession,popping,philadelphia,outa,observe,lung,largest,hangs,feelin,experts,enforcement,encouraged,economy,dudes,donation,disguise,diane's,curb,continued,competitive,businessman,bites,antique,advertising,ads,toothbrush,retreat,represents,realistic,profits,predict,nora's,lid,landlord,hourglass,hesitate,frank's,focusing,equally,consolation,boyfriend's,babbling,aged,troy's,tipped,stranded,smartest,sabrina's,rhythm,replacement,repeating,puke,psst,paycheck,overreacted,macho,leadership,kendall's,juvenile,john's,images,grocery,freshen,disposal,cuffs,consent,caffeine,arguments,agrees,abigail's,vanished,unfinished,tobacco,tin,syndrome,ripping,pinch,missiles,isolated,flattering,expenses,dinners,cos,colleague,ciao,buh,belthazor,belle's,attorneys,amber's,woulda,whereabouts,wars,waitin,visits,truce,tripped,tee,tasted,stu,steer,ruling,poisoning,nursing,manipulative,immature,husbands,heel,granddad,delivering,deaths,condoms,automatically,anchor,trashed,tournament,throne,raining,prices,pasta,needles,leaning,leaders,judges,ideal,detector,coolest,casting,batch,approximately,appointments,almighty,achieve,vegetables,sum,spark,ruled,revolution,principles,perfection,pains,momma,mole,interviews,initiative,hairs,getaway,employment,den,cracking,counted,compliments,behold,verge,tougher,timer,tapped,taped,stakes,specialty,snooping,shoots,semi,rendezvous,pentagon,passenger,leverage,jeopardize,janitor,grandparents,forbidden,examination,communist,clueless,cities,bidding,arriving,adding,ungrateful,unacceptable,tutor,soviet,shaped,serum,scuse,savings,pub,pajamas,mouths,modest,methods,lure,irrational,depth,cries,classified,bombs,beautifully,arresting,approaching,vessel,variety,traitor,sympathetic,smug,smash,rental,prostitute,premonitions,mild,jumps,inventory,ing,improved,grandfather's,developing,darlin,committing,caleb's,banging,asap,amendment,worms,violated,vent,traumatic,traced,tow,swiss,sweaty,shaft,recommended,overboard,literature,insight,healed,grasp,fluid,experiencing,crappy,crab,connecticut,chunk,chandler's,awww,applied,witnessed,traveled,stain,shack,reacted,pronounce,presented,poured,occupied,moms,marriages,jabez,invested,handful,gob,gag,flipped,fireplace,expertise,embarrassment,disappears,concussion,bruises,brakes,anything's,week's,twisting,tide,swept,summon,splitting,settling,scientists,reschedule,regard,purposes,ohio,notch,mike's,improvement,hooray,grabbing,extend,exquisite,disrespect,complaints,colin's,armor,voting,thornhart,sustained,straw,slapped,simon's,shipped,shattered,ruthless,reva's,refill,recorded,payroll,numb,mourning,marijuana,manly,jerry's,involving,hunk,entertain,earthquake,drift,dreadful,doorstep,confirmation,chops,bridget's,appreciates,announced,vague,tires,stressful,stem,stashed,stash,sensed,preoccupied,predictable,noticing,madly,halls,gunshot,embassy,dozens,dinner's,confuse,cleaners,charade,chalk,cappuccino,breed,bouquet,amulet,addiction,who've,warming,unlock,transition,satisfy,sacrificed,relaxing,lone,input,hampshire,girlfriend's,elaborate,concerning,completed,channels,category,cal,blocking,blend,blankets,america's,addicted,yuck,voters,professionals,positions,monica's,mode,initial,hunger,hamburger,greeting,greet,gravy,gram,dreamt,dice,declared,collecting,caution,brady's,backpack,agreeing,writers,whale,tribe,taller,supervisor,sacrifices,radiation,poo,phew,outcome,ounce,missile,meter,likewise,irrelevant,gran,felon,feature,favorites,farther,fade,experiments,erased,easiest,disk,convenience,conceived,compassionate,challenged,cane,blair's,backstage,agony,adores,veins,tweek,thieves,surgical,strangely,stetson,recital,proposing,productive,meaningful,marching,immunity,hassle,goddamned,frighten,directors,dearly,comments,closure,cease,ambition,wisconsin,unstable,sweetness,salvage,richer,refusing,raging,pumping,pressuring,petition,mortals,lowlife,jus,intimidated,intentionally,inspire,forgave,eric's,devotion,despicable,deciding,dash,comfy,breach,bo's,bark,alternate,aaaah,switching,swallowed,stove,slot,screamed,scars,russians,relevant,poof,pipes,persons,pawn,losses,legit,invest,generations,farewell,experimental,difficulty,curtains,civilized,championship,caviar,boost,token,tends,temporarily,superstition,supernatural,sunk,sadness,reduced,recorder,psyched,presidential,owners,motivated,microwave,lands,karen's,hallelujah,gap,fraternity,engines,dryer,cocoa,chewing,additional,acceptable,unbelievably,survivor,smiled,smelling,sized,simpler,sentenced,respectable,remarks,registration,premises,passengers,organ,occasional,khasinau,indication,gutter,grabs,goo,fulfill,flashlight,ellenor,courses,blooded,blessings,beware,beth's,bands,advised,water's,uhhh,turf,swings,slips,shocking,resistance,privately,olivia's,mirrors,lyrics,locking,instrument,historical,heartless,fras,decades,comparison,childish,cassie's,cardiac,admission,utterly,tuscany,ticked,suspension,stunned,statesville,sadly,resolution,reserved,purely,opponent,noted,lowest,kiddin,jerks,hitch,flirt,fare,extension,establishment,equals,dismiss,delayed,decade,christening,casket,c'mere,breakup,brad's,biting,antibiotics,accusation,abducted,witchcraft,whoever's,traded,thread,spelling,so's,school's,runnin,remaining,punching,protein,printed,paramedics,newest,murdering,mine's,masks,lawndale,intact,ins,initials,heights,grampa,democracy,deceased,colleen's,choking,charms,careless,bushes,buns,bummed,accounting,travels,taylor's,shred,saves,saddle,rethink,regards,references,precinct,persuade,patterns,meds,manipulating,llanfair,leash,kenny's,housing,hearted,guarantees,flown,feast,extent,educated,disgrace,determination,deposition,coverage,corridor,burial,bookstore,boil,abilities,vitals,veil,trespassing,teaches,sidewalk,sensible,punishing,overtime,optimistic,occasions,obsessing,oak,notify,mornin,jeopardy,jaffa,injection,hilarious,distinct,directed,desires,curve,confide,challenging,cautious,alter,yada,wilderness,where're,vindictive,vial,tomb,teeny,subjects,stroll,sittin,scrub,rebuild,rachel's,posters,parallel,ordeal,orbit,o'brien,nuns,max's,jennifer's,intimacy,inheritance,fails,exploded,donate,distracting,despair,democratic,defended,crackers,commercials,bryant's,ammunition,wildwind,virtue,thoroughly,tails,spicy,sketches,sights,sheer,shaving,seize,scarecrow,refreshing,prosecute,possess,platter,phillip's,napkin,misplaced,merchandise,membership,loony,jinx,heroic,frankenstein,fag,efficient,devil's,corps,clan,boundaries,attract,ambitious,virtually,syrup,solitary,resignation,resemblance,reacting,pursuing,premature,pod,liz's,lavery,journalist,honors,harvey's,genes,flashes,erm,contribution,company's,client's,cheque,charts,cargo,awright,acquainted,wrapping,untie,salute,ruins,resign,realised,priceless,partying,myth,moonlight,lightly,lifting,kasnoff,insisting,glowing,generator,flowing,explosives,employer,cutie,confronted,clause,buts,breakthrough,blouse,ballistic,antidote,analyze,allowance,adjourned,vet,unto,understatement,tucked,touchy,toll,subconscious,sequence,screws,sarge,roommates,reaches,rambaldi,programs,offend,nerd,knives,kin,irresistible,inherited,incapable,hostility,goddammit,fuse,frat,equation,curfew,centered,blackmailed,allows,alleged,walkin,transmission,text,starve,sleigh,sarcastic,recess,rebound,procedures,pinned,parlor,outfits,livin,issued,institute,industrial,heartache,head's,haired,fundraiser,doorman,documentary,discreet,dilucca,detect,cracks,cracker,considerate,climbed,catering,author,apophis,zoey,vacuum,urine,tunnels,todd's,tanks,strung,stitches,sordid,sark,referred,protector,portion,phoned,pets,paths,mat,lengths,kindergarten,hostess,flaw,flavor,discharge,deveraux,consumed,confidentiality,automatic,amongst,viktor,victim's,tactics,straightened,specials,spaghetti,soil,prettier,powerless,por,poems,playin,playground,parker's,paranoia,nsa,mainly,mac's,joe's,instantly,havoc,exaggerating,evaluation,eavesdropping,doughnuts,diversion,deepest,cutest,companion,comb,bela,behaving,avoided,anyplace,agh,accessory,zap,whereas,translate,stuffing,speeding,slime,polls,personalities,payments,musician,marital,lurking,lottery,journalism,interior,imaginary,hog,guinea,greetings,game's,fairwinds,ethical,equipped,environmental,elegant,elbow,customs,cuban,credibility,credentials,consistent,collapse,cloth,claws,chopped,challenges,bridal,boards,bedside,babysitting,authorized,assumption,ant,youngest,witty,vast,unforgivable,underworld,tempt,tabs,succeeded,sophomore,selfless,secrecy,runway,restless,programming,professionally,okey,movin,metaphor,messes,meltdown,lecter,incoming,hence,gasoline,gained,funding,episodes,diefenbaker,contain,comedian,collected,cam,buckle,assembly,ancestors,admired,adjustment,acceptance,weekly,warmth,throats,seduced,ridge's,reform,rebecca's,queer,poll,parenting,noses,luckiest,graveyard,gifted,footsteps,dimeras,cynical,assassination,wedded,voyage,volunteers,verbal,unpredictable,tuned,stoop,slides,sinking,show's,rio,rigged,regulations,region,promoted,plumbing,lingerie,layer,katie's,hankey,greed,everwood,essential,elope,dresser,departure,dat,dances,coup,chauffeur,bulletin,bugged,bouncing,website,tubes,temptation,supported,strangest,sorel's,slammed,selection,sarcasm,rib,primitive,platform,pending,partial,packages,orderly,obsessive,nevertheless,nbc,murderers,motto,meteor,inconvenience,glimpse,froze,fiber,execute,etc,ensure,drivers,dispute,damages,crop,courageous,consulate,closes,bosses,bees,amends,wuss,wolfram,wacky,unemployed,traces,town's,testifying,tendency,syringe,symphony,stew,startled,sorrow,sleazy,shaky,screams,rsquo,remark,poke,phone's,philip's,nutty,nobel,mentioning,mend,mayor's,iowa,inspiring,impulsive,housekeeper,germans,formed,foam,fingernails,economic,divide,conditioning,baking,whine,thug,starved,sedative,rose's,reversed,publishing,programmed,picket,paged,nowadays,newman's,mines,margo's,invasion,homosexual,homo,hips,forgets,flipping,flea,flatter,dwell,dumpster,consultant,choo,banking,assignments,apartments,ants,affecting,advisor,vile,unreasonable,tossing,thanked,steals,souvenir,screening,scratched,rep,psychopath,proportion,outs,operative,obstruction,obey,neutral,lump,lily's,insists,ian's,harass,gloat,flights,filth,extended,electronic,edgy,diseases,didn,coroner,confessing,cologne,cedar,bruise,betraying,bailing,attempting,appealing,adebisi,wrath,wandered,waist,vain,traps,transportation,stepfather,publicly,presidents,poking,obligated,marshal,lexie's,instructed,heavenly,halt,employed,diplomatic,dilemma,crazed,contagious,coaster,cheering,carved,bundle,approached,appearances,vomit,thingy,stadium,speeches,robbing,reflect,raft,qualify,pumped,pillows,peep,pageant,packs,neo,neglected,m'kay,loneliness,liberal,intrude,indicates,helluva,gardener,freely,forresters,err,drooling,continuing,betcha,alan's,addressed,acquired,vase,supermarket,squat,spitting,spaces,slaves,rhyme,relieve,receipts,racket,purchased,preserve,pictured,pause,overdue,officials,nod,motivation,morgendorffer,lucky's,lacking,kidnapper,introduction,insect,hunters,horns,feminine,eyeballs,dumps,disc,disappointing,difficulties,crock,convertible,context,claw,clamp,canned,cambias,bathtub,avanya,artery,weep,warmer,vendetta,tenth,suspense,summoned,stuff's,spiders,sings,reiber,raving,pushy,produced,poverty,postponed,ohhhh,noooo,mold,mice,laughter,incompetent,hugging,groceries,frequency,fastest,drip,differ,daphne's,communicating,body's,beliefs,bats,bases,auntie,adios,wraps,willingly,weirdest,voila,timmih,thinner,swelling,swat,steroids,sensitivity,scrape,rehearse,quarterback,organic,matched,ledge,justified,insults,increased,heavily,hateful,handles,feared,doorway,decorations,colour,chatting,buyer,buckaroo,bedrooms,batting,askin,ammo,tutoring,subpoena,span,scratching,requests,privileges,pager,mart,kel,intriguing,idiotic,hotels,grape,enlighten,dum,door's,dixie's,demonstrate,dairy,corrupt,combined,brunch,bridesmaid,barking,architect,applause,alongside,ale,acquaintance,yuh,wretched,superficial,sufficient,sued,soak,smoothly,sensing,restraint,quo,pow,posing,pleading,pittsburgh,peru,payoff,participate,organize,oprah,nemo,morals,loans,loaf,lists,laboratory,jumpy,intervention,ignorant,herbal,hangin,germs,generosity,flashing,country's,convent,clumsy,chocolates,captive,bianca's,behaved,apologise,vanity,trials,stumbled,republicans,represented,recognition,preview,poisonous,perjury,parental,onboard,mugged,minding,linen,learns,knots,interviewing,inmates,ingredients,humour,grind,greasy,goons,estimate,elementary,edmund's,drastic,database,coop,comparing,cocky,clearer,bruised,brag,bind,axe,asset,apparent,ann's,worthwhile,whoop,wedding's,vanquishing,tabloids,survivors,stenbeck's,sprung,spotlight,shops,sentencing,sentences,revealing,reduce,ram,racist,provoke,piper's,pining,overly,oui,ops,mop,louisiana,locket,king's,jab,imply,impatient,hovering,hotter,fest,endure,dots,doren,dim,diagnosed,debts,cultures,crawled,contained,condemned,chained,brit,breaths,adds,weirdo,warmed,wand,utah,troubling,tok'ra,stripped,strapped,soaked,skipping,sharon's,scrambled,rattle,profound,musta,mocking,mnh,misunderstand,merit,loading,linked,limousine,kacl,investors,interviewed,hustle,forensic,foods,enthusiastic,duct,drawers,devastating,democrats,conquer,concentration,comeback,clarify,chores,cheerleaders,cheaper,charlie's,callin,blushing,barging,abused,yoga,wrecking,wits,waffles,virginity,vibes,uninvited,unfaithful,underwater,tribute,strangled,state's,scheming,ropes,responded,residents,rescuing,rave,priests,postcard,overseas,orientation,ongoing,o'reily,newly,neil's,morphine,lotion,limitations,lesser,lectures,lads,kidneys,judgement,jog,itch,intellectual,installed,infant,indefinitely,grenade,glamorous,genetically,freud,faculty,engineering,doh,discretion,delusions,declaration,crate,competent,commonwealth,catalog,bakery,attempts,asylum,argh,applying,ahhhh,yesterday's,wedge,wager,unfit,tripping,treatments,torment,superhero,stirring,spinal,sorority,seminar,scenery,repairs,rabble,pneumonia,perks,owl,override,ooooh,moo,mija,manslaughter,mailed,love's,lime,lettuce,intimidate,instructor,guarded,grieve,grad,globe,frustration,extensive,exploring,exercises,eve's,doorbell,devices,deal's,dam,cultural,ctu,credits,commerce,chinatown,chemicals,baltimore,authentic,arraignment,annulled,altered,allergies,wanta,verify,vegetarian,tunes,tourist,tighter,telegram,suitable,stalk,specimen,spared,solving,shoo,satisfying,saddam,requesting,publisher,pens,overprotective,obstacles,notified,negro,nasedo,judged,jill's,identification,grandchild,genuinely,founded,flushed,fluids,floss,escaping,ditched,demon's,decorated,criticism,cramp,corny,contribute,connecting,bunk,bombing,bitten,billions,bankrupt,yikes,wrists,ultrasound,ultimatum,thirst,spelled,sniff,scope,ross's,room's,retrieve,releasing,reassuring,pumps,properties,predicted,neurotic,negotiating,needn't,multi,monitors,millionaire,microphone,mechanical,lydecker,limp,incriminating,hatchet,gracias,gordie,fills,feeds,egypt,doubting,dedication,decaf,dawson's,competing,cellular,biopsy,whiz,voluntarily,visible,ventilator,unpack,unload,universal,tomatoes,targets,suggests,strawberry,spooked,snitch,schillinger,sap,reassure,providing,prey,pressure's,persuasive,mystical,mysteries,mri,moment's,mixing,matrimony,mary's,mails,lighthouse,liability,kgb,jock,headline,frankie's,factors,explosive,explanations,dispatch,detailed,curly,cupid,condolences,comrade,cassadines,bulb,brittany's,bragging,awaits,assaulted,ambush,adolescent,adjusted,abort,yank,whit,verse,vaguely,undermine,tying,trim,swamped,stitch,stan's,stabbing,slippers,skye's,sincerely,sigh,setback,secondly,rotting,rev,retail,proceedings,preparation,precaution,pox,pcpd,nonetheless,melting,materials,mar,liaison,hots,hooking,headlines,hag,ganz,fury,felicity,fangs,expelled,encouragement,earring,dreidel,draws,dory,donut,dog's,dis,dictate,dependent,decorating,coordinates,cocktails,bumps,blueberry,believable,backfired,backfire,apron,anticipated,adjusting,activated,vous,vouch,vitamins,vista,urn,uncertain,ummm,tourists,tattoos,surrounding,sponsor,slimy,singles,sibling,shhhh,restored,representative,renting,reign,publish,planets,peculiar,parasite,paddington,noo,marries,mailbox,magically,lovebirds,listeners,knocks,kane's,informant,grain,exits,elf,drazen,distractions,disconnected,dinosaurs,designing,dashwood,crooked,conveniently,contents,argued,wink,warped,underestimated,testified,tacky,substantial,steve's,steering,staged,stability,shoving,seizure,reset,repeatedly,radius,pushes,pitching,pairs,opener,mornings,mississippi,matthew's,mash,investigations,invent,indulge,horribly,hallucinating,festive,eyebrows,expand,enjoys,dictionary,dialogue,desperation,dealers,darkest,daph,critic,consulting,cartman's,canal,boragora,belts,bagel,authorization,auditions,associated,ape,amy's,agitated,adventures,withdraw,wishful,wimp,vehicles,vanish,unbearable,tonic,tom's,tackle,suffice,suction,slaying,singapore,safest,rosanna's,rocking,relive,rates,puttin,prettiest,oval,noisy,newlyweds,nauseous,moi,misguided,mildly,midst,maps,liable,kristina's,judgmental,introducing,individuals,hunted,hen,givin,frequent,fisherman,fascinated,elephants,dislike,diploma,deluded,decorate,crummy,contractions,carve,careers,bottled,bonded,bahamas,unavailable,twenties,trustworthy,translation,traditions,surviving,surgeons,stupidity,skies,secured,salvation,remorse,rafe's,princeton,preferably,pies,photography,operational,nuh,northwest,nausea,napkins,mule,mourn,melted,mechanism,mashed,julia's,inherit,holdings,hel,greatness,golly,excused,edges,dumbo,drifting,delirious,damaging,cubicle,compelled,comm,colleges,cole's,chooses,checkup,chad's,certified,candidates,boredom,bob's,bandages,baldwin's,bah,automobile,athletic,alarms,absorbed,absent,windshield,who're,whaddya,vitamin,transparent,surprisingly,sunglasses,starring,slit,sided,schemes,roar,relatively,reade,quarry,prosecutor,prognosis,probe,potentially,pitiful,persistent,perception,percentage,peas,oww,nosy,neighbourhood,nagging,morons,molecular,meters,masterpiece,martinis,limbo,liars,jax's,irritating,inclined,hump,hoynes,haw,gauge,functions,fiasco,educational,eatin,donated,destination,dense,cubans,continent,concentrating,commanding,colorful,clam,cider,brochure,behaviour,barto,bargaining,awe,artistic,welcoming,weighing,villain,vein,vanquished,striking,stains,sooo,smear,sire,simone's,secondary,roughly,rituals,resentment,psychologist,preferred,pint,pension,passive,overhear,origin,orchestra,negotiations,mounted,morality,landingham,labs,kisser,jackson's,icy,hoot,holling,handshake,grilled,functioning,formality,elevators,edward's,depths,confirms,civilians,bypass,briefly,boathouse,binding,acres,accidental,westbridge,wacko,ulterior,transferring,tis,thugs,tangled,stirred,stefano's,sought,snag,smallest,sling,sleaze,seeds,rumour,ripe,remarried,reluctant,regularly,puddle,promote,precise,popularity,pins,perceptive,miraculous,memorable,maternal,lucinda's,longing,lockup,locals,librarian,job's,inspection,impressions,immoral,hypothetically,guarding,gourmet,gabe,fighters,fees,features,faxed,extortion,expressed,essentially,downright,digest,der,crosses,cranberry,city's,chorus,casualties,bygones,buzzing,burying,bikes,attended,allah,all's,weary,viewing,viewers,transmitter,taping,takeout,sweeping,stepmother,stating,stale,seating,seaborn,resigned,rating,prue's,pros,pepperoni,ownership,occurs,nicole's,newborn,merger,mandatory,malcolm's,ludicrous,jan's,injected,holden's,henry's,heating,geeks,forged,faults,expressing,eddie's,drue,dire,dief,desi,deceiving,centre,celebrities,caterer,calmed,businesses,budge,ashley's,applications,ankles,vending,typing,tribbiani,there're,squared,speculation,snowing,shades,sexist,scudder's,scattered,sanctuary,rewrite,regretted,regain,raises,processing,picky,orphan,mural,misjudged,miscarriage,memorize,marshall's,mark's,licensed,lens,leaking,launched,larry's,languages,judge's,jitters,invade,interruption,implied,illegally,handicapped,glitch,gittes,finer,fewer,engineered,distraught,dispose,dishonest,digs,dahlia's,dads,cruelty,conducting,clinical,circling,champions,canceling,butterflies,belongings,barbrady,amusement,allegations,alias,aging,zombies,where've,unborn,tri,swearing,stables,squeezed,spaulding's,slavery,sew,sensational,revolutionary,resisting,removing,radioactive,races,questionable,privileged,portofino,par,owning,overlook,overhead,orson,oddly,nazis,musicians,interrogate,instruments,imperative,impeccable,icu,hurtful,hors,heap,harley's,graduating,graders,glance,endangered,disgust,devious,destruct,demonstration,creates,crazier,countdown,coffee's,chump,cheeseburger,cat's,burglar,brotherhood,berries,ballroom,assumptions,ark,annoyed,allies,allergy,advantages,admirer,admirable,addresses,activate,accompany,wed,victoria's,valve,underpants,twit,triggered,teacher's,tack,strokes,stool,starr's,sham,seasons,sculpture,scrap,sailed,retarded,resourceful,remarkably,refresh,ranks,pressured,precautions,pointy,obligations,nightclub,mustache,month's,minority,mind's,maui,lace,isabella's,improving,iii,hunh,hubby,flare,fierce,farmers,dont,dokey,divided,demise,demanded,dangerously,crushing,considerable,complained,clinging,choked,chem,cheerleading,checkbook,cashmere,calmly,blush,believer,aspect,amazingly,alas,acute,a's,yak,whores,what've,tuition,trey's,tolerance,toilets,tactical,tacos,stairwell,spur,spirited,slower,sewing,separately,rubbed,restricted,punches,protects,partially,ole,nuisance,niagara,motherfuckers,mingle,mia's,kynaston,knack,kinkle,impose,hosting,harry's,gullible,grid,godmother,funniest,friggin,folding,financially,filming,fashions,eater,dysfunctional,drool,distinguished,defence,defeated,cruising,crude,criticize,corruption,contractor,conceive,clone,circulation,cedars,caliber,brighter,blinded,birthdays,bio,bill's,banquet,artificial,anticipate,annoy,achievement,whim,whichever,volatile,veto,vested,uncle's,supports,successfully,shroud,severely,rests,representation,quarantine,premiere,pleases,parent's,painless,pads,orphans,orphanage,offence,obliged,nip,niggers,negotiation,narcotics,nag,mistletoe,meddling,manifest,lookit,loo,lilah,investigated,intrigued,injustice,homicidal,hayward's,gigantic,exposing,elves,disturbance,disastrous,depended,demented,correction,cooped,colby's,cheerful,buyers,brownies,beverage,basics,attorney's,atm,arvin,arcade,weighs,upsets,unethical,tidy,swollen,sweaters,swap,stupidest,sensation,scalpel,rail,prototype,props,prescribed,pompous,poetic,ploy,paws,operates,objections,mushrooms,mulwray,monitoring,manipulation,lured,lays,lasting,kung,keg,jell,internship,insignificant,inmate,incentive,gandhi,fulfilled,flooded,expedition,evolution,discharged,disagreement,dine,dean's,crypt,coroner's,cornered,copied,confrontation,cds,catalogue,brightest,beethoven,banned,attendant,athlete,amaze,airlines,yogurt,wyndemere,wool,vocabulary,vcr,tulsa,tags,tactic,stuffy,slug,sexuality,seniors,segment,revelation,respirator,pulp,prop,producing,processed,pretends,polygraph,perp,pennies,ordinarily,opposition,olives,necks,morally,martyr,martial,lisa's,leftovers,joints,jimmy's,irs,invaded,imported,hopping,homey,hints,helicopters,heed,heated,heartbroken,gulf,greatly,forge,florist,firsthand,fiend,expanding,emma's,defenses,crippled,cousin's,corrected,conniving,conditioner,clears,chemo,bubbly,bladder,beeper,baptism,apb,answer's,anna's,angles,ache,womb,wiring,wench,weaknesses,volunteering,violating,unlocked,unemployment,tummy,tibet,threshold,surrogate,submarine,subid,stray,stated,startle,specifics,snob,slowing,sled,scoot,robbers,rightful,richest,quid,qfxmjrie,puffs,probable,pitched,pierced,pencils,paralysis,nuke,managing,makeover,luncheon,lords,linksynergy,jury's,jacuzzi,ish,interstate,hitched,historic,hangover,gasp,fracture,flock,firemen,drawings,disgusted,darned,coal,clams,chez,cables,broadcasting,brew,borrowing,banged,achieved,wildest,weirder,unauthorized,stunts,sleeves,sixties,shush,shalt,senora,rises,retro,quits,pupils,politicians,pegged,painfully,paging,outlet,omelet,observed,ned's,memorized,lawfully,jackets,interpretation,intercept,ingredient,grownup,glued,gaining,fulfilling,flee,enchanted,dvd,delusion,daring,conservative,conducted,compelling,charitable,carton,bronx,bridesmaids,bribed,boiling,bathrooms,bandage,awareness,awaiting,assign,arrogance,antiques,ainsley,turkeys,travelling,trashing,tic,takeover,sync,supervision,stockings,stalked,stabilized,spacecraft,slob,skates,sirs,sedated,robes,reviews,respecting,rat's,psyche,prominent,prizes,presumptuous,prejudice,platoon,permitted,paragraph,mush,mum's,movements,mist,missions,mints,mating,mantan,lorne,lord's,loads,listener,legendary,itinerary,hugs,hepatitis,heave,guesses,gender,flags,fading,exams,examining,elizabeth's,egyptian,dumbest,dishwasher,dimera's,describing,deceive,cunning,cripple,cove,convictions,congressional,confided,compulsive,compromising,burglary,bun,bumpy,brainwashed,benes,arnie,alvy,affirmative,adrenaline,adamant,watchin,waitresses,uncommon,treaty,transgenic,toughest,toby's,surround,stormed,spree,spilling,spectacle,soaking,significance,shreds,sewers,severed,scarce,scamming,scalp,sami's,salem's,rewind,rehearsing,pretentious,potions,possessions,planner,placing,periods,overrated,obstacle,notices,nerds,meems,medieval,mcmurphy,maturity,maternity,masses,maneuver,lyin,loathe,lawyer's,irv,investigators,hep,grin,gospel,gals,formation,fertility,facilities,exterior,epidemic,eloping,ecstatic,ecstasy,duly,divorcing,distribution,dignan,debut,costing,coaching,clubhouse,clot,clocks,classical,candid,bursting,breather,braces,bennett's,bending,australian,attendance,arsonist,applies,adored,accepts,absorb,vacant,uuh,uphold,unarmed,turd,topolsky,thrilling,thigh,terminate,tempo,sustain,spaceship,snore,sneeze,smuggling,shrine,sera,scott's,salty,salon,ramp,quaint,prostitution,prof,policies,patronize,patio,nasa,morbid,marlo's,mamma,locations,licence,kettle,joyous,invincible,interpret,insecurities,insects,inquiry,infamous,impulses,illusions,holed,glen's,fragments,forrester's,exploit,economics,drivin,des,defy,defenseless,dedicate,cradle,cpr,coupon,countless,conjure,confined,celebrated,cardboard,booking,blur,bleach,ban,backseat,austin's,alternatives,afterward,accomplishment,wordsworth,wisely,wildlife,valet,vaccine,urges,unnatural,unlucky,truths,traumatized,tit,tennessee,tasting,swears,strawberries,steaks,stats,skank,seducing,secretive,screwdriver,schedules,rooting,rightfully,rattled,qualifies,puppets,provides,prospects,pronto,prevented,powered,posse,poorly,polling,pedestal,palms,muddy,morty,miniature,microscope,merci,margin,lecturing,inject,incriminate,hygiene,hospital's,grapefruit,gazebo,funnier,freight,flooding,equivalent,eliminated,elaine's,dios,deacon's,cuter,continental,container,cons,compensation,clap,cbs,cavity,caves,capricorn,canvas,calculations,bossy,booby,bacteria,aides,zende,winthrop,wider,warrants,valentines,undressed,underage,truthfully,tampered,suffers,stored,statute,speechless,sparkling,sod,socially,sidelines,shrek,sank,roy's,raul's,railing,puberty,practices,pesky,parachute,outrage,outdoors,operated,openly,nominated,motions,moods,lunches,litter,kidnappers,itching,intuition,index,imitation,icky,humility,hassling,gallons,firmly,excessive,evolved,employ,eligible,elections,elderly,drugstore,dosage,disrupt,directing,dipping,deranged,debating,cuckoo,cremated,craziness,cooperating,compatible,circumstantial,chimney,bonnie's,blinking,biscuits,belgium,arise,analyzed,admiring,acquire,accounted,willow's,weeping,volumes,views,triad,trashy,transaction,tilt,soothing,slumber,slayers,skirts,siren,ship's,shindig,sentiment,sally's,rosco,riddance,rewarded,quaid,purity,proceeding,pretzels,practiced,politician,polar,panicking,overall,occupation,naming,minimal,mckechnie,massacre,marah's,lovin,leaked,layers,isolation,intruding,impersonating,ignorance,hoop,hamburgers,gwen's,fruits,footprints,fluke,fleas,festivities,fences,feisty,evacuate,emergencies,diabetes,detained,democrat,deceived,creeping,craziest,corpses,conned,coincidences,charleston,bums,brussels,bounced,bodyguards,blasted,bitterness,baloney,ashtray,apocalypse,advances,zillion,watergate,wallpaper,viable,tory's,tenants,telesave,sympathize,sweeter,swam,sup,startin,stages,spencer's,sodas,snowed,sleepover,signor,seein,reviewing,reunited,retainer,restroom,rested,replacing,repercussions,reliving,reef,reconciliation,reconcile,recognise,prevail,preaching,planting,overreact,oof,omen,o'neil,numerous,noose,moustache,morning's,manicure,maids,mah,lorelei's,landlady,hypothetical,hopped,homesick,hives,hesitation,herbs,hectic,heartbreak,haunting,gangs,frown,fingerprint,extract,expired,exhausting,exchanged,exceptional,everytime,encountered,disregard,daytime,cooperative,constitutional,cling,chevron,chaperone,buenos,blinding,bitty,beads,battling,badgering,anticipation,advocate,zander's,waterfront,upstanding,unprofessional,unity,unhealthy,undead,turmoil,truthful,toothpaste,tippin,thoughtless,tagataya,stretching,strategic,spun,shortage,shooters,sheriff's,shady,senseless,sailors,rewarding,refuge,rapid,rah,pun,propane,pronounced,preposterous,pottery,portable,pigeons,pastry,overhearing,ogre,obscene,novels,negotiable,mtv,morgan's,monthly,loner,leisure,leagues,jogging,jaws,itchy,insinuating,insides,induced,immigration,hospitality,hormone,hilda's,hearst,grandpa's,frequently,forthcoming,fists,fifties,etiquette,endings,elevated,editing,dunk,distinction,disabled,dibs,destroys,despises,desired,designers,deprived,dancers,dah,cuddy,crust,conductor,communists,cloak,circumstance,chewed,casserole,bora,bidder,bearer,assessment,artoo,applaud,appalling,amounts,admissions,withdrawal,weights,vowed,virgins,vigilante,vatican,undone,trench,touchdown,throttle,thaw,tha,testosterone,tailor,symptom,swoop,suited,suitcases,stomp,sticker,stakeout,spoiling,snatched,smoochy,smitten,shameless,restraints,researching,renew,relay,regional,refund,reclaim,rapids,raoul,rags,puzzles,purposely,punks,prosecuted,plaid,pineapple,picturing,pickin,pbs,parasites,offspring,nyah,mysteriously,multiply,mineral,masculine,mascara,laps,kramer's,jukebox,interruptions,hoax,gunfire,gays,furnace,exceptions,engraved,elbows,duplicate,drapes,designated,deliberate,deli,decoy,cub,cryptic,crowds,critics,coupla,convert,conventional,condemn,complicate,combine,colossal,clerks,clarity,cassadine's,byes,brushed,bride's,banished,arrests,argon,andy's,alarmed,worships,versa,uncanny,troop,treasury,transformation,terminated,telescope,technicality,sydney's,sundae,stumble,stripping,shuts,separating,schmuck,saliva,robber,retain,remained,relentless,reconnect,recipes,rearrange,ray's,rainy,psychiatrists,producers,policemen,plunge,plugged,patched,overload,ofc,obtained,obsolete,o'malley,numbered,number's,nay,moth,module,mkay,mindless,menus,lullaby,lotte,leavin,layout,knob,killin,karinsky,irregular,invalid,hides,grownups,griff,flaws,flashy,flaming,fettes,evicted,epic,encoded,dread,dil,degrassi,dealings,dangers,cushion,console,concluded,casey's,bowel,beginnings,barged,apes,announcing,amanda's,admits,abroad,abide,abandoning,workshop,wonderfully,woak,warfare,wait'll,wad,violate,turkish,tim's,ter,targeted,susan's,suicidal,stayin,sorted,slamming,sketchy,shoplifting,shapes,selected,sarah's,retiring,raiser,quizmaster,pursued,pupkin,profitable,prefers,politically,phenomenon,palmer's,olympics,needless,nature's,mutt,motherhood,momentarily,migraine,lizzie's,lilo,lifts,leukemia,leftover,law's,keepin,idol,hinks,hellhole,h'mm,gowns,goodies,gallon,futures,friction,finale,farms,extraction,entertained,electronics,eighties,earth's,dmv,darker,daniel's,cum,conspiring,consequence,cheery,caps,calf,cadet,builds,benign,barney's,aspects,artillery,apiece,allison's,aggression,adjustments,abusive,abduction,wiping,whipping,welles,unspeakable,unlimited,unidentified,trivial,transcripts,threatens,textbook,tenant,supervise,superstitious,stricken,stretched,story's,stimulating,steep,statistics,spielberg,sodium,slices,shelves,scratches,saudi,sabotaged,roxy's,retrieval,repressed,relation,rejecting,quickie,promoting,ponies,peeking,paw,paolo,outraged,observer,o'connell,moping,moaning,mausoleum,males,licked,kovich,klutz,iraq,interrogating,interfered,intensive,insulin,infested,incompetence,hyper,horrified,handedly,hacked,guiding,glamour,geoff,gekko,fraid,fractured,formerly,flour,firearms,fend,executives,examiner,evaluate,eloped,duke's,disoriented,delivers,dashing,crystals,crossroads,crashdown,court's,conclude,coffees,cockroach,climate,chipped,camps,brushing,boulevard,bombed,bolts,begs,baths,baptized,astronaut,assurance,anemia,allegiance,aiming,abuela,abiding,workplace,withholding,weave,wearin,weaker,warnings,usa,tours,thesis,terrorism,suffocating,straws,straightforward,stench,steamed,starboard,sideways,shrinks,shortcut,sean's,scram,roasted,roaming,riviera,respectfully,repulsive,recognizes,receiver,psychiatry,provoked,penitentiary,peed,pas,painkillers,oink,norm,ninotchka,muslim,montgomery's,mitzvah,milligrams,mil,midge,marshmallows,markets,macy's,looky,lapse,kubelik,knit,jeb,investments,intellect,improvise,implant,hometown,hanged,handicap,halo,governor's,goa'ulds,giddy,gia's,geniuses,fruitcake,footing,flop,findings,fightin,fib,editorial,drinkin,doork,discovering,detour,danish,cuddle,crashes,coordinate,combo,colonnade,collector,cheats,cetera,canadians,bip,bailiff,auditioning,assed,amused,alienate,algebra,alexi,aiding,aching,woe,wah,unwanted,typically,tug,topless,tongues,tiniest,them's,symbols,superiors,soy,soften,sheldrake,sensors,seller,seas,ruler,rival,rips,renowned,recruiting,reasoning,rawley,raisins,racial,presses,preservation,portfolio,oversight,organizing,obtain,observing,nessa,narrowed,minions,midwest,meth,merciful,manages,magistrate,lawsuits,labour,invention,intimidating,infirmary,indicated,inconvenient,imposter,hugged,honoring,holdin,hades,godforsaken,fumes,forgery,foremost,foolproof,folder,folded,flattery,fingertips,financing,fifteenth,exterminator,explodes,eccentric,drained,dodging,documented,disguised,developments,currency,crafts,constructive,concealed,compartment,chute,chinpokomon,captains,capitol,calculated,buses,bodily,astronauts,alimony,accustomed,accessories,abdominal,zen,zach's,wrinkle,wallow,viv,vicinity,venue,valued,valium,valerie's,upgrade,upcoming,untrue,uncover,twig,twelfth,trembling,treasures,torched,toenails,timed,termites,telly,taunting,taransky,tar,talker,succubus,statues,smarts,sliding,sizes,sighting,semen,seizures,scarred,savvy,sauna,saddest,sacrificing,rubbish,riled,ricky's,rican,revive,recruit,ratted,rationally,provenance,professors,prestigious,pms,phonse,perky,pedal,overdose,organism,nasal,nanites,mushy,movers,moot,missus,midterm,merits,melodramatic,manure,magnetic,knockout,knitting,jig,invading,interpol,incapacitated,idle,hotline,horse's,highlight,hauling,hair's,gunpoint,greenwich,grail,ganza,framing,formally,fleeing,flap,flannel,fin,fibers,faded,existing,email,eavesdrop,dwelling,dwarf,donations,detected,desserts,dar,corporations,constellation,collision,chic,calories,businessmen,buchanan's,breathtaking,bleak,blacked,batter,balanced,ante,aggravated,agencies,abu,yanked,wuh,withdrawn,wigand,whoah,wham,vocal,unwind,undoubtedly,unattractive,twitch,trimester,torrance,timetable,taxpayers,strained,stationed,stared,slapping,sincerity,signatures,siding,siblings,shit's,shenanigans,shacking,seer,satellites,sappy,samaritan,rune,regained,rebellion,proceeds,privy,power's,poorer,politely,paste,oysters,overruled,olaf,nightcap,networks,necessity,mosquito,millimeter,michelle's,merrier,massachusetts,manuscript,manufacture,manhood,lunar,lug,lucked,loaned,kilos,ignition,hurl,hauled,harmed,goodwill,freshmen,forming,fenmore,fasten,farce,failures,exploding,erratic,elm,drunks,ditching,d'artagnan,crops,cramped,contacting,coalition,closets,clientele,chimp,cavalry,casa,cabs,bled,bargained,arranging,archives,anesthesia,amuse,altering,afternoons,accountable,abetting,wrinkles,wolek,waved,unite,uneasy,unaware,ufo,toot,toddy,tens,tattooed,tad's,sway,stained,spauldings,solely,sliced,sirens,schibetta,scatter,rumours,roger's,robbie's,rinse,remo,remedy,redemption,queen's,progressive,pleasures,picture's,philosopher,pacey's,optimism,oblige,natives,muy,measuring,measured,masked,mascot,malicious,mailing,luca,lifelong,kosher,koji,kiddies,judas,isolate,intercepted,insecurity,initially,inferior,incidentally,ifs,hun,heals,headlights,guided,growl,grilling,glazed,gem,gel,gaps,fundamental,flunk,floats,fiery,fairness,exercising,excellency,evenings,ere,enrolled,disclosure,det,department's,damp,curling,cupboard,counterfeit,cooling,condescending,conclusive,clicked,cleans,cholesterol,chap,cashed,brow,broccoli,brats,blueprints,blindfold,biz,billing,barracks,attach,aquarium,appalled,altitude,alrighty,aimed,yawn,xander's,wynant,winslow's,welcomed,violations,upright,unsolved,unreliable,toots,tighten,symbolic,sweatshirt,steinbrenner,steamy,spouse,sox,sonogram,slowed,slots,sleepless,skeleton,shines,roles,retaliate,representatives,rephrase,repeated,renaissance,redeem,rapidly,rambling,quilt,quarrel,prying,proverbial,priced,presiding,presidency,prescribe,prepped,pranks,possessive,plaintiff,philosophical,pest,persuaded,perk,pediatrics,paige's,overlooked,outcast,oop,odor,notorious,nightgown,mythology,mumbo,monitored,mediocre,master's,mademoiselle,lunchtime,lifesaver,legislation,leaned,lambs,lag,killings,interns,intensity,increasing,identities,hounding,hem,hellmouth,goon,goner,ghoul,germ,gardening,frenzy,foyer,food's,extras,extinct,exhibition,exaggerate,everlasting,enlightened,drilling,doubles,digits,dialed,devote,defined,deceitful,d'oeuvres,csi,cosmetic,contaminated,conspired,conning,colonies,cerebral,cavern,cathedral,carving,butting,boiled,blurry,beams,barf,babysit,assistants,ascension,architecture,approaches,albums,albanian,aaaaah,wildly,whoopee,whiny,weiskopf,walkie,vultures,veteran,vacations,upfront,unresolved,tile,tampering,struggled,stockholders,specially,snaps,sleepwalking,shrunk,sermon,seeks,seduction,scenarios,scams,ridden,revolve,repaired,regulation,reasonably,reactor,quotes,preserved,phenomenal,patrolling,paranormal,ounces,omigod,offs,nonstop,nightfall,nat,militia,meeting's,logs,lineup,libby's,lava,lashing,labels,kilometers,kate's,invites,investigative,innocents,infierno,incision,import,implications,humming,highlights,haunts,greeks,gloss,gloating,general's,frannie,flute,fled,fitted,finishes,fiji,fetal,feeny,entrapment,edit,dyin,download,discomfort,dimensions,detonator,dependable,deke,decree,dax,cot,confiscated,concludes,concede,complication,commotion,commence,chulak,caucasian,casually,canary,brainer,bolie,ballpark,arm's,anwar,anatomy,analyzing,accommodations,yukon,youse,wring,wharf,wallowing,uranium,unclear,treason,transgenics,thrive,think's,thermal,territories,tedious,survives,stylish,strippers,sterile,squeezing,squeaky,sprained,solemn,snoring,sic,shifting,shattering,shabby,seams,scrawny,rotation,risen,revoked,residue,reeks,recite,reap,ranting,quoting,primal,pressures,predicament,precision,plugs,pits,pinpoint,petrified,petite,persona,pathological,passports,oughtta,nods,nighter,navigate,nashville,namely,museums,morale,milwaukee,meditation,mathematics,martin's,malta,logan's,latter,kippie,jackie's,intrigue,intentional,insufferable,incomplete,inability,imprisoned,hup,hunky,how've,horrifying,hearty,headmaster,hath,har,hank's,handbook,hamptons,grazie,goof,george's,funerals,fuck's,fraction,forks,finances,fetched,excruciating,enjoyable,enhanced,enhance,endanger,efficiency,dumber,drying,diabolical,destroyer,desirable,defendants,debris,darts,cuisine,cucumber,cube,crossword,contestant,considers,comprehend,club's,clipped,classmates,choppers,certificates,carmen's,canoe,candlelight,building's,brutally,brutality,boarded,bathrobe,backward,authorize,audrey's,atom,assemble,appeals,airports,aerobics,ado,abbott's,wholesome,whiff,vessels,vermin,varsity,trophies,trait,tragically,toying,titles,tissues,testy,team's,tasteful,surge,sun's,studios,strips,stocked,stephen's,staircase,squares,spinach,sow,southwest,southeast,sookie's,slayer's,sipping,singers,sidetracked,seldom,scrubbing,scraping,sanctity,russell's,ruse,robberies,rink,ridin,retribution,reinstated,refrain,rec,realities,readings,radiant,protesting,projector,posed,plutonium,plaque,pilar's,payin,parting,pans,o'reilly,nooooo,motorcycles,motherfucking,mein,measly,marv,manic,line's,lice,liam,lenses,lama,lalita,juggling,jerking,jamie's,intro,inevitably,imprisonment,hypnosis,huddle,horrendous,hobbies,heavier,heartfelt,harlin,hairdresser,grub,gramps,gonorrhea,gardens,fussing,fragment,fleeting,flawless,flashed,fetus,exclusively,eulogy,equality,enforce,distinctly,disrespectful,denies,crossbow,crest,cregg,crabs,cowardly,countess,contrast,contraction,contingency,consulted,connects,confirming,condone,coffins,cleansing,cheesecake,certainty,captain's,cages,c'est,briefed,brewing,bravest,bosom,boils,binoculars,bachelorette,aunt's,atta,assess,appetizer,ambushed,alerted,woozy,withhold,weighed,vulgar,viral,utmost,unusually,unleashed,unholy,unhappiness,underway,uncovered,unconditional,typewriter,typed,twists,sweeps,supervised,supermodel,suburbs,subpoenaed,stringing,snyder's,snot,skeptical,skateboard,shifted,secret's,scottish,schoolgirl,romantically,rocked,revoir,reviewed,respiratory,reopen,regiment,reflects,refined,puncture,pta,prone,produces,preach,pools,polished,pods,planetarium,penicillin,peacefully,partner's,nurturing,nation's,more'n,monastery,mmhmm,midgets,marklar,machinery,lodged,lifeline,joanna's,jer,jellyfish,infiltrate,implies,illegitimate,hutch,horseback,henri,heist,gents,frickin,freezes,forfeit,followers,flakes,flair,fathered,fascist,eternally,eta,epiphany,enlisted,eleventh,elect,effectively,dos,disgruntled,discrimination,discouraged,delinquent,decipher,danvers,dab,cubes,credible,coping,concession,cnn,clash,chills,cherished,catastrophe,caretaker,bulk,bras,branches,bombshell,birthright,billionaire,awol,ample,alumni,affections,admiration,abbotts,zelda's,whatnot,watering,vinegar,vietnamese,unthinkable,unseen,unprepared,unorthodox,underhanded,uncool,transmitted,traits,timeless,thump,thermometer,theoretically,theoretical,testament,tapping,tagged,tac,synthetic,syndicate,swung,surplus,supplier,stares,spiked,soviets,solves,smuggle,scheduling,scarier,saucer,reinforcements,recruited,rant,quitter,prudent,projection,previously,powdered,poked,pointers,placement,peril,penetrate,penance,patriotic,passions,opium,nudge,nostrils,nevermind,neurological,muslims,mow,momentum,mockery,mobster,mining,medically,magnitude,maggie's,loudly,listing,killer's,kar,jim's,insights,indicted,implicate,hypocritical,humanly,holiness,healthier,hammered,haldeman,gunman,graphic,gloom,geography,gary's,freshly,francs,formidable,flunked,flawed,feminist,faux,ewww,escorted,escapes,emptiness,emerge,drugging,dozer,doc's,directorate,diana's,derevko,deprive,deodorant,cryin,crusade,crocodile,creativity,controversial,commands,coloring,colder,cognac,clocked,clippings,christine's,chit,charades,chanting,certifiable,caterers,brute,brochures,briefs,bran,botched,blinders,bitchin,bauer's,banter,babu,appearing,adequate,accompanied,abrupt,abdomen,zones,wooo,woken,winding,vip,venezuela,unanimous,ulcer,tread,thirteenth,thankfully,tame,tabby's,swine,swimsuit,swans,suv,stressing,steaming,stamped,stabilize,squirm,spokesman,snooze,shuffle,shredded,seoul,seized,seafood,scratchy,savor,sadistic,roster,rica,rhetorical,revlon,realist,reactions,prosecuting,prophecies,prisons,precedent,polyester,petals,persuasion,paddles,o'leary,nuthin,neighbour,negroes,naval,mute,muster,muck,minnesota,meningitis,matron,mastered,markers,maris's,manufactured,lot's,lockers,letterman,legged,launching,lanes,journals,indictment,indicating,hypnotized,housekeeping,hopelessly,hmph,hallucinations,grader,goldilocks,girly,furthermore,frames,flask,expansion,envelopes,engaging,downside,doves,doorknob,distinctive,dissolve,discourage,disapprove,diabetic,departed,deliveries,decorator,deaq,crossfire,criminally,containment,comrades,complimentary,commitments,chum,chatter,chapters,catchy,cashier,cartel,caribou,cardiologist,bull's,buffer,brawl,bowls,booted,boat's,billboard,biblical,barbershop,awakening,aryan,angst,administer,acquitted,acquisition,aces,accommodate,zellie,yield,wreak,witch's,william's,whistles,wart,vandalism,vamps,uterus,upstate,unstoppable,unrelated,understudy,tristin,transporting,transcript,tranquilizer,trails,trafficking,toxins,tonsils,timing's,therapeutic,tex,subscription,submitted,stephanie's,stempel,spotting,spectator,spatula,soho,softer,snotty,slinging,showered,sexiest,sensual,scoring,sadder,roam,rimbaud,rim,rewards,restrain,resilient,remission,reinstate,rehash,recollection,rabies,quinn's,presenting,preference,prairie,popsicle,plausible,plantation,pharmaceutical,pediatric,patronizing,patent,participation,outdoor,ostrich,ortolani,oooooh,omelette,neighbor's,neglect,nachos,movie's,mixture,mistrial,mio,mcginty's,marseilles,mare,mandate,malt,luv,loophole,literary,liberation,laughin,lacey's,kevvy,jah,irritated,intends,initiation,initiated,initiate,influenced,infidelity,indigenous,inc,idaho,hypothermia,horrific,hive,heroine,groupie,grinding,graceful,government's,goodspeed,gestures,gah,frantic,extradition,evil's,engineers,echelon,earning,disks,discussions,demolition,definitive,dawnie,dave's,date's,dared,dan's,damsel,curled,courtyard,constitutes,combustion,collective,collateral,collage,col,chant,cassette,carol's,carl's,calculating,bumping,britain,bribes,boardwalk,blinds,blindly,bleeds,blake's,bickering,beasts,battlefield,bankruptcy,backside,avenge,apprehended,annie's,anguish,afghanistan,acknowledged,abusing,youthful,yells,yanking,whomever,when'd,waterfall,vomiting,vine,vengeful,utility,unpacking,unfamiliar,undying,tumble,trolls,treacherous,todo,tipping,tantrum,tanked,summons,strategies,straps,stomped,stinkin,stings,stance,staked,squirrels,sprinkles,speculate,specialists,sorting,skinned,sicko,sicker,shootin,shep,shatter,seeya,schnapps,s'posed,rows,rounded,ronee,rite,revolves,respectful,resource,reply,rendered,regroup,regretting,reeling,reckoned,rebuilding,randy's,ramifications,qualifications,pulitzer,puddy,projections,preschool,pots,potassium,plissken,platonic,peter's,permalash,performer,peasant,outdone,outburst,ogh,obscure,mutants,mugging,molecules,misfortune,miserably,miraculously,medications,medals,margaritas,manpower,lovemaking,long's,logo,logically,leeches,latrine,lamps,lacks,kneel,johnny's,jenny's,inflict,impostor,icon,hypocrisy,hype,hosts,hippies,heterosexual,heightened,hecuba's,hecuba,healer,habitat,gunned,grooming,groo,groin,gras,gory,gooey,gloomy,frying,friendships,fredo,foil,fishermen,firepower,fess,fathom,exhaustion,evils,epi,endeavor,ehh,eggnog,dreaded,drafted,dimensional,detached,deficit,d'arcy,crotch,coughing,coronary,cookin,contributed,consummate,congrats,concerts,companionship,caved,caspar,bulletproof,bris,brilliance,breakin,brash,blasting,beak,arabia,analyst,aluminum,aloud,alligator,airtight,advising,advertise,adultery,administered,aches,abstract,aahh,wronged,wal,voluntary,ventilation,upbeat,uncertainty,trot,trillion,tricia's,trades,tots,tol,tightly,thingies,tending,technician,tarts,surreal,summer's,strengths,specs,specialize,spat,spade,slogan,sloane's,shrew,shaping,seth's,selves,seemingly,schoolwork,roomie,requirements,redundant,redo,recuperating,recommendations,ratio,rabid,quart,pseudo,provocative,proudly,principal's,pretenses,prenatal,pillar,photographers,photographed,pharmaceuticals,patron,pacing,overworked,originals,nicotine,newsletter,neighbours,murderous,miller's,mileage,mechanics,mayonnaise,massages,maroon,lucrative,losin,lil,lending,legislative,kat,juno,iran,interrogated,instruction,injunction,impartial,homing,heartbreaker,harm's,hacks,glands,giver,fraizh,flows,flips,flaunt,excellence,estimated,espionage,englishman,electrocuted,eisenhower,dusting,ducking,drifted,donna's,donating,dom,distribute,diem,daydream,cylon,curves,crutches,crates,cowards,covenant,converted,contributions,composed,comfortably,cod,cockpit,chummy,chitchat,childbirth,charities,businesswoman,brood,brewery,bp's,blatant,bethy,barring,bagged,awakened,assumes,assembled,asbestos,arty,artwork,arc,anthony's,aka,airplanes,accelerated,worshipped,winnings,why're,whilst,wesley's,volleyball,visualize,unprotected,unleash,unexpectedly,twentieth,turnpike,trays,translated,tones,three's,thicker,therapists,takeoff,sums,stub,streisand,storm's,storeroom,stethoscope,stacked,sponsors,spiteful,solutions,sneaks,snapping,slaughtered,slashed,simplest,silverware,shits,secluded,scruples,scrubs,scraps,scholar,ruptured,rubs,roaring,relying,reflected,refers,receptionist,recap,reborn,raisin,rainforest,rae's,raditch,radiator,pushover,pout,plastered,pharmacist,petroleum,perverse,perpetrator,passages,ornament,ointment,occupy,nineties,napping,nannies,mousse,mort,morocco,moors,momentary,modified,mitch's,misunderstandings,marina's,marcy's,marched,manipulator,malfunction,loot,limbs,latitude,lapd,laced,kivar,kickin,interface,infuriating,impressionable,imposing,holdup,hires,hick,hesitated,hebrew,hearings,headphones,hammering,groundwork,grotesque,greenhouse,gradually,graces,genetics,gauze,garter,gangsters,g's,frivolous,freelance,freeing,fours,forwarding,feud,ferrars,faulty,fantasizing,extracurricular,exhaust,empathy,educate,divorces,detonate,depraved,demeaning,declaring,deadlines,dea,daria's,dalai,cursing,cufflink,crows,coupons,countryside,coo,consultation,composer,comply,comforted,clive,claustrophobic,chef's,casinos,caroline's,capsule,camped,cairo,busboy,bred,bravery,bluth,biography,berserk,bennetts,baskets,attacker,aplastic,angrier,affectionate,zit,zapped,yorker,yarn,wormhole,weaken,vat,unrealistic,unravel,unimportant,unforgettable,twain,tv's,tush,turnout,trio,towed,tofu,textbooks,territorial,suspend,supplied,superbowl,sundays,stutter,stewardess,stepson,standin,sshh,specializes,spandex,souvenirs,sociopath,snails,slope,skeletons,shivering,sexier,sequel,sensory,selfishness,scrapbook,romania,riverside,rites,ritalin,rift,ribbons,reunite,remarry,relaxation,reduction,realization,rattling,rapist,quad,pup,psychosis,promotions,presumed,prepping,posture,poses,pleasing,pisses,piling,photographic,pfft,persecuted,pear,part's,pantyhose,padded,outline,organizations,operatives,oohh,obituary,northeast,nina's,neural,negotiator,nba,natty,nathan's,minimize,merl,menopause,mennihan,marty's,martimmys,makers,loyalties,literal,lest,laynie,lando,justifies,josh's,intimately,interact,integrated,inning,inexperienced,impotent,immortality,imminent,ich,horrors,hooky,holders,hinges,heartbreaking,handcuffed,gypsies,guacamole,grovel,graziella,goggles,gestapo,fussy,functional,filmmaker,ferragamo,feeble,eyesight,explosions,experimenting,enzo's,endorsement,enchanting,eee,ed's,duration,doubtful,dizziness,dismantle,disciplinary,disability,detectors,deserving,depot,defective,decor,decline,dangling,dancin,crumble,criteria,creamed,cramping,cooled,conceal,component,competitors,clockwork,clark's,circuits,chrissakes,chrissake,chopping,cabinets,buttercup,brooding,bonfire,blurt,bluestar,bloated,blackmailer,beforehand,bathed,bathe,barcode,banjo,banish,badges,babble,await,attentive,artifacts,aroused,antibodies,animosity,administrator,accomplishments,ya'll,wrinkled,wonderland,willed,whisk,waltzing,waitressing,vis,vin,vila,vigilant,upbringing,unselfish,unpopular,unmarried,uncles,trendy,trajectory,targeting,surroundings,stun,striped,starbucks,stamina,stalled,staking,stag,spoils,snuff,snooty,snide,shrinking,senorita,securities,secretaries,scrutiny,scoundrel,saline,salads,sails,rundown,roz's,roommate's,riddles,responses,resistant,requirement,relapse,refugees,recommending,raspberry,raced,prosperity,programme,presumably,preparations,posts,pom,plight,pleaded,pilot's,peers,pecan,particles,pantry,overturned,overslept,ornaments,opposing,niner,nfl,negligent,negligence,nailing,mutually,mucho,mouthed,monstrous,monarchy,minsk,matt's,mateo's,marking,manufacturing,manager's,malpractice,maintaining,lowly,loitering,logged,lingering,light's,lettin,lattes,kim's,kamal,justification,juror,junction,julie's,joys,johnson's,jillefsky,jacked,irritate,intrusion,inscription,insatiable,infect,inadequate,impromptu,icing,hmmmm,hefty,grammar,generate,gdc,gasket,frightens,flapping,firstborn,fire's,fig,faucet,exaggerated,estranged,envious,eighteenth,edible,downward,dopey,doesn,disposition,disposable,disasters,disappointments,dipped,diminished,dignified,diaries,deported,deficiency,deceit,dealership,deadbeat,curses,coven,counselors,convey,consume,concierge,clutches,christians,cdc,casbah,carefree,callous,cahoots,caf,brotherly,britches,brides,bop,bona,bethie,beige,barrels,ballot,ave,autographed,attendants,attachment,attaboy,astonishing,ashore,appreciative,antibiotic,aneurysm,afterlife,affidavit,zuko,zoning,work's,whats,whaddaya,weakened,watermelon,vasectomy,unsuspecting,trial's,trailing,toula,topanga,tonio,toasted,tiring,thereby,terrorized,tenderness,tch,tailing,syllable,sweats,suffocated,sucky,subconsciously,starvin,staging,sprouts,spineless,sorrows,snowstorm,smirk,slicery,sledding,slander,simmer,signora,sigmund,siege,siberia,seventies,sedate,scented,sampling,sal's,rowdy,rollers,rodent,revenue,retraction,resurrection,resigning,relocate,releases,refusal,referendum,recuperate,receptive,ranking,racketeering,queasy,proximity,provoking,promptly,probability,priors,princes,prerogative,premed,pornography,porcelain,poles,podium,pinched,pig's,pendant,packet,owner's,outsiders,outpost,orbing,opportunist,olanov,observations,nurse's,nobility,neurologist,nate's,nanobot,muscular,mommies,molested,misread,melon,mediterranean,mea,mastermind,mannered,maintained,mackenzie's,liberated,lesions,lee's,laundromat,landscape,lagoon,labeled,jolt,intercom,inspect,insanely,infrared,infatuation,indulgent,indiscretion,inconsiderate,incidents,impaired,hurrah,hungarian,howling,honorary,herpes,hasta,harassed,hanukkah,guides,groveling,groosalug,geographic,gaze,gander,galactica,futile,fridays,flier,fixes,fide,fer,feedback,exploiting,exorcism,exile,evasive,ensemble,endorse,emptied,dreary,dreamy,downloaded,dodged,doctored,displayed,disobeyed,disneyland,disable,diego's,dehydrated,defect,customary,csc,criticizing,contracted,contemplating,consists,concepts,compensate,commonly,colours,coins,coconuts,cockroaches,clogged,cincinnati,churches,chronicle,chilling,chaperon,ceremonies,catalina's,cant,cameraman,bulbs,bucklands,bribing,brava,bracelets,bowels,bobby's,bmw,bluepoint,baton,barred,balm,audit,astronomy,aruba,appetizers,appendix,antics,anointed,analogy,almonds,albuquerque,abruptly,yore,yammering,winch,white's,weston's,weirdness,wangler,vibrations,vendor,unmarked,unannounced,twerp,trespass,tres,travesty,transported,transfusion,trainee,towelie,topics,tock,tiresome,thru,theatrical,terrain,suspect's,straightening,staggering,spaced,sonar,socializing,sitcom,sinus,sinners,shambles,serene,scraped,scones,scepter,sarris,saberhagen,rouge,rigid,ridiculously,ridicule,reveals,rents,reflecting,reconciled,rate's,radios,quota,quixote,publicist,pubes,prune,prude,provider,propaganda,prolonged,projecting,prestige,precrime,postponing,pluck,perpetual,permits,perish,peppermint,peeled,particle,parliament,overdo,oriented,optional,nutshell,notre,notions,nostalgic,nomination,mulan,mouthing,monkey's,mistook,mis,milhouse,mel's,meddle,maybourne,martimmy,loon,lobotomy,livelihood,litigation,lippman,likeness,laurie's,kindest,kare,kaffee,jocks,jerked,jeopardizing,jazzed,investing,insured,inquisition,inhale,ingenious,inflation,incorrect,igby,ideals,holier,highways,hereditary,helmets,heirloom,heinous,haste,harmsway,hardship,hanky,gutters,gruesome,groping,governments,goofing,godson,glare,garment,founding,fortunes,foe,finesse,figuratively,ferrie,fda,external,examples,evacuation,ethnic,est,endangerment,enclosed,emphasis,dyed,dud,dreading,dozed,dorky,dmitri,divert,dissertation,discredit,director's,dialing,describes,decks,cufflinks,crutch,creator,craps,corrupted,coronation,contemporary,consumption,considerably,comprehensive,cocoon,cleavage,chile,carriers,carcass,cannery,bystander,brushes,bruising,bribery,brainstorm,bolted,binge,bart's,barracuda,baroness,ballistics,b's,astute,arroway,arabian,ambitions,alexandra's,afar,adventurous,adoptive,addicts,addictive,accessible,yadda,wilson's,wigs,whitelighters,wematanye,weeds,wedlock,wallets,walker's,vulnerability,vroom,vibrant,vertical,vents,uuuh,urgh,upped,unsettling,unofficial,unharmed,underlying,trippin,trifle,tracing,tox,tormenting,timothy's,threads,theaters,thats,tavern,taiwan,syphilis,susceptible,summary,suites,subtext,stickin,spices,sores,smacked,slumming,sixteenth,sinks,signore,shitting,shameful,shacked,sergei,septic,seedy,security's,searches,righteousness,removal,relish,relevance,rectify,recruits,recipient,ravishing,quickest,pupil,productions,precedence,potent,pooch,pledged,phoebs,perverted,peeing,pedicure,pastrami,passionately,ozone,overlooking,outnumbered,outlook,oregano,offender,nukes,novelty,nosed,nighty,nifty,mugs,mounties,motivate,moons,misinterpreted,miners,mercenary,mentality,mas,marsellus,mapped,malls,lupus,lumbar,lovesick,longitude,lobsters,likelihood,leaky,laundering,latch,japs,jafar,instinctively,inspires,inflicted,inflammation,indoors,incarcerated,imagery,hundredth,hula,hemisphere,handkerchief,hand's,gynecologist,guittierez,groundhog,grinning,graduates,goodbyes,georgetown,geese,fullest,ftl,floral,flashback,eyelashes,eyelash,excluded,evening's,evacuated,enquirer,endlessly,encounters,elusive,disarm,detest,deluding,dangle,crabby,cotillion,corsage,copenhagen,conjugal,confessional,cones,commandment,coded,coals,chuckle,christmastime,christina's,cheeseburgers,chardonnay,ceremonial,cept,cello,celery,carter's,campfire,calming,burritos,burp,buggy,brundle,broflovski,brighten,bows,borderline,blinked,bling,beauties,bauers,battered,athletes,assisting,articulate,alot,alienated,aleksandr,ahhhhh,agreements,agamemnon,accountants,zat,y'see,wrongful,writer's,wrapper,workaholic,wok,winnebago,whispered,warts,vikki's,verified,vacate,updated,unworthy,unprecedented,unanswered,trend,transformed,transform,trademark,tote,tonane,tolerated,throwin,throbbing,thriving,thrills,thorns,thereof,there've,terminator,tendencies,tarot,tailed,swab,sunscreen,stretcher,stereotype,spike's,soggy,sobbing,slopes,skis,skim,sizable,sightings,shucks,shrapnel,sever,senile,sections,seaboard,scripts,scorned,saver,roxanne's,resemble,red's,rebellious,rained,putty,proposals,prenup,positioned,portuguese,pores,pinching,pilgrims,pertinent,peeping,pamphlet,paints,ovulating,outbreak,oppression,opposites,occult,nutcracker,nutcase,nominee,newt,newsstand,newfound,nepal,mocked,midterms,marshmallow,manufacturer,managers,majesty's,maclaren,luscious,lowered,loops,leans,laurence's,krudski,knowingly,keycard,katherine's,junkies,juilliard,judicial,jolinar,jase,irritable,invaluable,inuit,intoxicating,instruct,insolent,inexcusable,induce,incubator,illustrious,hydrogen,hunsecker,hub,houseguest,honk,homosexuals,homeroom,holly's,hindu,hernia,harming,handgun,hallways,hallucination,gunshots,gums,guineas,groupies,groggy,goiter,gingerbread,giggling,geometry,genre,funded,frontal,frigging,fledged,fedex,feat,fairies,eyeball,extending,exchanging,exaggeration,esteemed,ergo,enlist,enlightenment,encyclopedia,drags,disrupted,dispense,disloyal,disconnect,dimitri,desks,dentists,delhi,delacroix,degenerate,deemed,decay,daydreaming,cushions,cuddly,corroborate,contender,congregation,conflicts,confessions,complexion,completion,compensated,cobbler,closeness,chilled,checkmate,channing,carousel,calms,bylaws,bud's,benefactor,belonging,ballgame,baiting,backstabbing,assassins,artifact,armies,appoint,anthropology,anthropologist,alzheimer's,allegedly,alex's,airspace,adversary,adolf,actin,acre,aced,accuses,accelerant,abundantly,abstinence,abc,zsa,zissou,zandt,yom,yapping,wop,witchy,winter's,willows,whee,whadaya,want's,walter's,waah,viruses,vilandra,veiled,unwilling,undress,undivided,underestimating,ultimatums,twirl,truckload,tremble,traditionally,touring,touche,toasting,tingling,tiles,tents,tempered,sussex,sulking,stunk,stretches,sponges,spills,softly,snipers,slid,sedan,screens,scourge,rooftop,rog,rivalry,rifles,riana,revolting,revisit,resisted,rejects,refreshments,redecorating,recurring,recapture,raysy,randomly,purchases,prostitutes,proportions,proceeded,prevents,pretense,prejudiced,precogs,pouting,poppie,poofs,pimple,piles,pediatrician,patrick's,pathology,padre,packets,paces,orvelle,oblivious,objectivity,nikki's,nighttime,nervosa,navigation,moist,moan,minors,mic,mexicans,meurice,melts,mau,mats,matchmaker,markings,maeby,lugosi,lipnik,leprechaun,kissy,kafka,italians,introductions,intestines,intervene,inspirational,insightful,inseparable,injections,informal,influential,inadvertently,illustrated,hussy,huckabees,hmo,hittin,hiss,hemorrhaging,headin,hazy,haystack,hallowed,haiti,haa,grudges,grenades,granilith,grandkids,grading,gracefully,godsend,gobbles,fyi,future's,fun's,fret,frau,fragrance,fliers,firms,finchley,fbi's,farts,eyewitnesses,expendable,existential,endured,embraced,elk,ekg,dude's,dragonfly,dorms,domination,directory,depart,demonstrated,delaying,degrading,deduction,darlings,dante's,danes,cylons,counsellor,cortex,cop's,coordinator,contraire,consensus,consciously,conjuring,congratulating,compares,commentary,commandant,cokes,centimeters,cc's,caucus,casablanca,buffay,buddy's,brooch,bony,boggle,blood's,bitching,bistro,bijou,bewitched,benevolent,bends,bearings,barren,arr,aptitude,antenna,amish,amazes,alcatraz,acquisitions,abomination,worldly,woodstock,withstand,whispers,whadda,wayward,wayne's,wailing,vinyl,variables,vanishing,upscale,untouchable,unspoken,uncontrollable,unavoidable,unattended,tuning,trite,transvestite,toupee,timid,timers,themes,terrorizing,teamed,taipei,t's,swana,surrendered,suppressed,suppress,stumped,strolling,stripe,storybook,storming,stomachs,stoked,stationery,springtime,spontaneity,sponsored,spits,spins,soiree,sociology,soaps,smarty,shootout,shar,settings,sentiments,senator's,scramble,scouting,scone,runners,rooftops,retract,restrictions,residency,replay,remainder,regime,reflexes,recycling,rcmp,rawdon,ragged,quirky,quantico,psychologically,prodigal,primo,pounce,potty,portraits,pleasantries,plane's,pints,phd,petting,perceive,patrons,parameters,outright,outgoing,onstage,officer's,o'connor,notwithstanding,noah's,nibble,newmans,neutralize,mutilated,mortality,monumental,ministers,millionaires,mentions,mcdonald's,mayflower,masquerade,mangy,macreedy,lunatics,luau,lover's,lovable,louie's,locating,lizards,limping,lasagna,largely,kwang,keepers,juvie,jaded,ironing,intuitive,intensely,insure,installation,increases,incantation,identifying,hysteria,hypnotize,humping,heavyweight,happenin,gung,griet,grasping,glorified,glib,ganging,g'night,fueled,focker,flunking,flimsy,flaunting,fixated,fitzwallace,fictional,fearing,fainting,eyebrow,exonerated,ether,ers,electrician,egotistical,earthly,dusted,dues,donors,divisions,distinguish,displays,dismissal,dignify,detonation,deploy,departments,debrief,dazzling,dawn's,dan'l,damnedest,daisies,crushes,crucify,cordelia's,controversy,contraband,contestants,confronting,communion,collapsing,cocked,clock's,clicks,cliche,circular,circled,chord,characteristics,chandelier,casualty,carburetor,callers,bup,broads,breathes,boca,bobbie's,bloodshed,blindsided,blabbing,binary,bialystock,bashing,ballerina,ball's,aviva,avalanche,arteries,appliances,anthem,anomaly,anglo,airstrip,agonizing,adjourn,abandonment,zack's,you's,yearning,yams,wrecker,word's,witnessing,winged,whence,wept,warsaw,warp,warhead,wagons,visibility,usc,unsure,unions,unheard,unfreeze,unfold,unbalanced,ugliest,troublemaker,tolerant,toddler,tiptoe,threesome,thirties,thermostat,tampa,sycamore,switches,swipe,surgically,supervising,subtlety,stung,stumbling,stubs,struggles,stride,strangling,stamp's,spruce,sprayed,socket,snuggle,smuggled,skulls,simplicity,showering,shhhhh,sensor,sci,sac,sabotaging,rumson,rounding,risotto,riots,revival,responds,reserves,reps,reproduction,repairman,rematch,rehearsed,reelection,redi,recognizing,ratty,ragging,radiology,racquetball,racking,quieter,quicksand,pyramids,pulmonary,puh,publication,prowl,provisions,prompt,premeditated,prematurely,prancing,porcupine,plated,pinocchio,perceived,peeked,peddle,pasture,panting,overweight,oversee,overrun,outing,outgrown,obsess,o'donnell,nyu,nursed,northwestern,norma's,nodding,negativity,negatives,musketeers,mugger,mounting,motorcade,monument,merrily,matured,massimo's,masquerading,marvellous,marlena's,margins,maniacs,mag,lumpy,lovey,louse,linger,lilies,libido,lawful,kudos,knuckle,kitchen's,kennedy's,juices,judgments,joshua's,jars,jams,jamal's,jag,itches,intolerable,intermission,interaction,institutions,infectious,inept,incentives,incarceration,improper,implication,imaginative,ight,hussein,humanitarian,huckleberry,horatio,holster,heiress,heartburn,hayley's,hap,gunna,guitarist,groomed,greta's,granting,graciously,glee,gentleman's,fulfillment,fugitives,fronts,founder,forsaking,forgives,foreseeable,flavors,flares,fixation,figment,fickle,featuring,featured,fantasize,famished,faith's,fades,expiration,exclamation,evolve,euro,erasing,emphasize,elevator's,eiffel,eerie,earful,duped,dulles,distributor,distorted,dissing,dissect,dispenser,dilated,digit,differential,diagnostic,detergent,desdemona,debriefing,dazzle,damper,cylinder,curing,crowbar,crispina,crafty,crackpot,courting,corrections,cordial,copying,consuming,conjunction,conflicted,comprehension,commie,collects,cleanup,chiropractor,charmer,chariot,charcoal,chaplain,challenger,census,cd's,cauldron,catatonic,capabilities,calculate,bullied,buckets,brilliantly,breathed,boss's,booths,bombings,boardroom,blowout,blower,blip,blindness,blazing,birthday's,biologically,bibles,biased,beseech,barbaric,band's,balraj,auditorium,audacity,assisted,appropriations,applicants,anticipating,alcoholics,airhead,agendas,aft,admittedly,adapt,absolution,abbot,zing,youre,yippee,wittlesey,withheld,willingness,willful,whammy,webber's,weakest,washes,virtuous,violently,videotapes,vials,vee,unplugged,unpacked,unfairly,und,turbulence,tumbling,troopers,tricking,trenches,tremendously,travelled,travelers,traitors,torches,tommy's,tinga,thyroid,texture,temperatures,teased,tawdry,tat,taker,sympathies,swiped,swallows,sundaes,suave,strut,structural,stone's,stewie,stepdad,spewing,spasm,socialize,slither,sky's,simulator,sighted,shutters,shrewd,shocks,sherry's,sgc,semantics,scout's,schizophrenic,scans,savages,satisfactory,rya'c,runny,ruckus,royally,roadblocks,riff,rewriting,revoke,reversal,repent,renovation,relating,rehearsals,regal,redecorate,recovers,recourse,reconnaissance,receives,ratched,ramali,racquet,quince,quiche,puppeteer,puking,puffed,prospective,projected,problemo,preventing,praises,pouch,posting,postcards,pooped,poised,piled,phoney,phobia,performances,patty's,patching,participating,parenthood,pardner,oppose,oozing,oils,ohm,ohhhhh,nypd,numbing,novelist,nostril,nosey,nominate,noir,neatly,nato,naps,nappa,nameless,muzzle,muh,mortuary,moronic,modesty,mitz,missionary,mimi's,midwife,mercenaries,mcclane,maxie's,matuka,mano,mam,maitre,lush,lumps,lucid,loosened,loosely,loins,lawnmower,lane's,lamotta,kroehner,kristen's,juggle,jude's,joins,jinxy,jessep,jaya,jamming,jailhouse,jacking,ironically,intruders,inhuman,infections,infatuated,indoor,indigestion,improvements,implore,implanted,id's,hormonal,hoboken,hillbilly,heartwarming,headway,headless,haute,hatched,hartmans,harping,hari,grapevine,graffiti,gps,gon,gogh,gnome,ged,forties,foreigners,fool's,flyin,flirted,fingernail,fdr,exploration,expectation,exhilarating,entrusted,enjoyment,embark,earliest,dumper,duel,dubious,drell,dormant,docking,disqualified,disillusioned,dishonor,disbarred,directive,dicey,denny's,deleted,del's,declined,custodial,crunchy,crises,counterproductive,correspondent,corned,cords,cor,coot,contributing,contemplate,containers,concur,conceivable,commissioned,cobblepot,cliffs,clad,chief's,chickened,chewbacca,checkout,carpe,cap'n,campers,calcium,buyin,buttocks,bullies,brown's,brigade,brain's,braid,boxed,bouncy,blueberries,blubbering,bloodstream,bigamy,bel,beeped,bearable,bank's,awarded,autographs,attracts,attracting,asteroid,arbor,arab,apprentice,announces,andie's,ammonia,alarming,aidan's,ahoy,ahm,zan,wretch,wimps,widows,widower,whirlwind,whirl,weather's,warms,war's,wack,villagers,vie,vandelay,unveiling,uno,undoing,unbecoming,ucla,turnaround,tribunal,togetherness,tickles,ticker,tended,teensy,taunt,system's,sweethearts,superintendent,subcommittee,strengthen,stomach's,stitched,standpoint,staffers,spotless,splits,soothe,sonnet,smothered,sickening,showdown,shouted,shepherds,shelters,shawl,seriousness,separates,sen,schooled,schoolboy,scat,sats,sacramento,s'mores,roped,ritchie's,resembles,reminders,regulars,refinery,raggedy,profiles,preemptive,plucked,pheromones,particulars,pardoned,overpriced,overbearing,outrun,outlets,onward,oho,ohmigod,nosing,norwegian,nightly,nicked,neanderthal,mosquitoes,mortified,moisture,moat,mime,milky,messin,mecha,markinson,marivellas,mannequin,manderley,maid's,madder,macready,maciver's,lookie,locusts,lisbon,lifetimes,leg's,lanna,lakhi,kholi,joke's,invasive,impersonate,impending,immigrants,ick,i's,hyperdrive,horrid,hopin,hombre,hogging,hens,hearsay,haze,harpy,harboring,hairdo,hafta,hacking,gun's,guardians,grasshopper,graded,gobble,gatehouse,fourteenth,foosball,floozy,fitzgerald's,fished,firewood,finalize,fever's,fencing,felons,falsely,fad,exploited,euphemism,entourage,enlarged,ell,elitist,elegance,eldest,duo,drought,drokken,drier,dredge,dramas,dossier,doses,diseased,dictator,diarrhea,diagnose,despised,defuse,defendant's,d'amour,crowned,cooper's,continually,contesting,consistently,conserve,conscientious,conjured,completing,commune,commissioner's,collars,coaches,clogs,chenille,chatty,chartered,chamomile,casing,calculus,calculator,brittle,breached,boycott,blurted,birthing,bikinis,bankers,balancing,astounding,assaulting,aroma,arbitration,appliance,antsy,amnio,alienating,aliases,aires,adolescence,administrative,addressing,achieving,xerox,wrongs,workload,willona,whistling,werewolves,wallaby,veterans,usin,updates,unwelcome,unsuccessful,unseemly,unplug,undermining,ugliness,tyranny,tuesdays,trumpets,transference,traction,ticks,tete,tangible,tagging,swallowing,superheroes,sufficiently,studs,strep,stowed,stow,stomping,steffy,stature,stairway,sssh,sprain,spouting,sponsoring,snug,sneezing,smeared,slop,slink,slew,skid,simultaneously,simulation,sheltered,shakin,sewed,sewage,seatbelt,scariest,scammed,scab,sanctimonious,samir,rushes,rugged,routes,romanov,roasting,rightly,retinal,rethinking,resulted,resented,reruns,replica,renewed,remover,raiding,raided,racks,quantity,purest,progressing,primarily,presidente,prehistoric,preeclampsia,postponement,portals,poppa,pop's,pollution,polka,pliers,playful,pinning,pharaoh,perv,pennant,pelvic,paved,patented,paso,parted,paramedic,panels,pampered,painters,padding,overjoyed,orthodox,organizer,one'll,octavius,occupational,oakdale's,nous,nite,nicknames,neurosurgeon,narrows,mitt,misled,mislead,mishap,milltown,milking,microscopic,meticulous,mediocrity,meatballs,measurements,mandy's,malaria,machete,lydecker's,lurch,lorelai's,linda's,layin,lavish,lard,knockin,khruschev,kelso's,jurors,jumpin,jugular,journalists,jour,jeweler,jabba,intersection,intellectually,integral,installment,inquiries,indulging,indestructible,indebted,implicated,imitate,ignores,hyperventilating,hyenas,hurrying,huron,horizontal,hermano,hellish,heheh,header,hazardous,hart's,harshly,harper's,handout,handbag,grunemann,gots,glum,gland,glances,giveaway,getup,gerome,furthest,funhouse,frosting,franchise,frail,fowl,forwarded,forceful,flavored,flank,flammable,flaky,fingered,finalists,fatherly,famine,fags,facilitate,exempt,exceptionally,ethic,essays,equity,entrepreneur,enduring,empowered,employers,embezzlement,eels,dusk,duffel,downfall,dotted,doth,doke,distressed,disobey,disappearances,disadvantage,dinky,diminish,diaphragm,deuces,deployed,delia's,davidson's,curriculum,curator,creme,courteous,correspondence,conquered,comforts,coerced,coached,clots,clarification,cite,chunks,chickie,chick's,chases,chaperoning,ceramic,ceased,cartons,capri,caper,cannons,cameron's,calves,caged,bustin,bungee,bulging,bringin,brie,boomhauer,blowin,blindfolded,blab,biscotti,bird's,beneficial,bastard's,ballplayer,bagging,automated,auster,assurances,aschen,arraigned,anonymity,annex,animation,andi,anchorage,alters,alistair's,albatross,agreeable,advancement,adoring,accurately,abduct,wolfi,width,weirded,watchers,washroom,warheads,voltage,vincennes,villains,victorian,urgency,upward,understandably,uncomplicated,uhuh,uhhhh,twitching,trig,treadmill,transactions,topped,tiffany's,they's,thermos,termination,tenorman,tater,tangle,talkative,swarm,surrendering,summoning,substances,strive,stilts,stickers,stationary,squish,squashed,spraying,spew,sparring,sorrel's,soaring,snout,snort,sneezed,slaps,skanky,singin,sidle,shreck,shortness,shorthand,shepherd's,sharper,shamed,sculptures,scanning,saga,sadist,rydell,rusik,roulette,rodi's,rockefeller,revised,resumes,restoring,respiration,reiber's,reek,recycle,recount,reacts,rabbit's,purge,purgatory,purchasing,providence,prostate,princesses,presentable,poultry,ponytail,plotted,playwright,pinot,pigtails,pianist,phillippe,philippines,peddling,paroled,owww,orchestrated,orbed,opted,offends,o'hara,noticeable,nominations,nancy's,myrtle's,music's,mope,moonlit,moines,minefield,metaphors,memoirs,mecca,maureen's,manning's,malignant,mainframe,magicks,maggots,maclaine,lobe,loathing,linking,leper,leaps,leaping,lashed,larch,larceny,lapses,ladyship,juncture,jiffy,jane's,jakov,invoke,interpreted,internally,intake,infantile,increasingly,inadmissible,implement,immense,howl,horoscope,hoof,homage,histories,hinting,hideaway,hesitating,hellbent,heddy,heckles,hat's,harmony's,hairline,gunpowder,guidelines,guatemala,gripe,gratifying,grants,governess,gorge,goebbels,gigolo,generated,gears,fuzz,frigid,freddo,freddie's,foresee,filters,filmed,fertile,fellowship,feeling's,fascination,extinction,exemplary,executioner,evident,etcetera,estimates,escorts,entity,endearing,encourages,electoral,eaters,earplugs,draped,distributors,disrupting,disagrees,dimes,devastate,detain,deposits,depositions,delicacy,delays,darklighter,dana's,cynicism,cyanide,cutters,cronus,convoy,continuous,continuance,conquering,confiding,concentrated,compartments,companions,commodity,combing,cofell,clingy,cleanse,christmases,cheered,cheekbones,charismatic,cabaret,buttle,burdened,buddhist,bruenell,broomstick,brin,brained,bozos,bontecou,bluntman,blazes,blameless,bizarro,benny's,bellboy,beaucoup,barry's,barkeep,bali,bala,bacterial,axis,awaken,astray,assailant,aslan,arlington,aria,appease,aphrodisiac,announcements,alleys,albania,aitoro's,activation,acme,yesss,wrecks,woodpecker,wondrous,window's,wimpy,willpower,widowed,wheeling,weepy,waxing,waive,vulture,videotaped,veritable,vascular,variations,untouched,unlisted,unfounded,unforeseen,two's,twinge,truffles,triggers,traipsing,toxin,tombstone,titties,tidal,thumping,thor's,thirds,therein,testicles,tenure,tenor,telephones,technicians,tarmac,talby,tackled,systematically,swirling,suicides,suckered,subtitles,sturdy,strangler,stockbroker,stitching,steered,staple,standup,squeal,sprinkler,spontaneously,splendor,spiking,spender,sovereign,snipe,snip,snagged,slum,skimming,significantly,siddown,showroom,showcase,shovels,shotguns,shoelaces,shitload,shifty,shellfish,sharpest,shadowy,sewn,seizing,seekers,scrounge,scapegoat,sayonara,satan's,saddled,rung,rummaging,roomful,romp,retained,residual,requiring,reproductive,renounce,reggie's,reformed,reconsidered,recharge,realistically,radioed,quirks,quadrant,punctual,public's,presently,practising,pours,possesses,poolhouse,poltergeist,pocketbook,plural,plots,pleasure's,plainly,plagued,pity's,pillars,picnics,pesto,pawing,passageway,partied,para,owing,openings,oneself,oats,numero,nostalgia,nocturnal,nitwit,nile,nexus,neuro,negotiated,muss,moths,mono,molecule,mixer,medicines,meanest,mcbeal,matinee,margate,marce,manipulations,manhunt,manger,magicians,maddie's,loafers,litvack,lightheaded,lifeguard,lawns,laughingstock,kodak,kink,jewellery,jessie's,jacko,itty,inhibitor,ingested,informing,indignation,incorporate,inconceivable,imposition,impersonal,imbecile,ichabod,huddled,housewarming,horizons,homicides,hobo,historically,hiccups,helsinki,hehe,hearse,harmful,hardened,gushing,gushie,greased,goddamit,gigs,freelancer,forging,fonzie,fondue,flustered,flung,flinch,flicker,flak,fixin,finalized,fibre,festivus,fertilizer,fenmore's,farted,faggots,expanded,exonerate,exceeded,evict,establishing,enormously,enforced,encrypted,emdash,embracing,embedded,elliot's,elimination,dynamics,duress,dupres,dowser,doormat,dominant,districts,dissatisfied,disfigured,disciplined,discarded,dibbs,diagram,detailing,descend,depository,defining,decorative,decoration,deathbed,death's,dazzled,da's,cuttin,cures,crowding,crepe,crater,crammed,costly,cosmopolitan,cortlandt's,copycat,coordinated,conversion,contradict,containing,constructed,confidant,condemning,conceited,computer's,commute,comatose,coleman's,coherent,clinics,clapping,circumference,chuppah,chore,choksondik,chestnuts,catastrophic,capitalist,campaigning,cabins,briault,bottomless,boop,bonnet,board's,bloomingdale's,blokes,blob,bids,berluti,beret,behavioral,beggars,bar's,bankroll,bania,athos,assassinate,arsenic,apperantly,ancestor,akron,ahhhhhh,afloat,adjacent,actresses,accordingly,accents,abe's,zipped,zeros,zeroes,zamir,yuppie,youngsters,yorkers,writ,wisest,wipes,wield,whyn't,weirdos,wednesdays,villages,vicksburg,variable,upchuck,untraceable,unsupervised,unpleasantness,unpaid,unhook,unconscionable,uncalled,turks,tumors,trappings,translating,tragedies,townie,timely,tiki,thurgood,things'll,thine,tetanus,terrorize,temptations,teamwork,tanning,tampons,tact,swarming,surfaced,supporter,stuart's,stranger's,straitjacket,stint,stimulation,steroid,statistically,startling,starry,squander,speculating,source's,sollozzo,sobriety,soar,sneaked,smithsonian,slugs,slaw,skit,skedaddle,sinker,similarities,silky,shortcomings,shipments,sheila's,severity,sellin,selective,seattle's,seasoned,scrubbed,scrooge,screwup,scrapes,schooling,scarves,saturdays,satchel,sandburg's,sandbox,salesmen,rooming,romances,revolving,revere,resulting,reptiles,reproach,reprieve,recreational,rearranging,realtor,ravine,rationalize,raffle,quoted,punchy,psychobabble,provocation,profoundly,problematic,prescriptions,preferable,praised,polishing,poached,plow,pledges,planetary,plan's,pirelli,perverts,peaked,pastures,pant,oversized,overdressed,outdid,outdated,oriental,ordinance,orbs,opponents,occurrence,nuptials,nominees,nineteenth,nefarious,mutiny,mouthpiece,motels,mopping,moon's,mongrel,monetary,mommie,missin,metaphorically,merv,mertin,memos,memento,melodrama,melancholy,measles,meaner,marches,mantel,maneuvers,maneuvering,mailroom,machine's,luring,listenin,lion's,lifeless,liege,licks,libraries,liberties,levon,legwork,lanka,lacked,kneecaps,kippur,kiddie,kaput,justifiable,jigsaw,issuing,islamic,insistent,insidious,innuendo,innit,inhabitants,individually,indicator,indecent,imaginable,illicit,hymn,hurling,humane,hospitalized,horseshit,hops,hondo,hemorrhoid,hella,healthiest,haywire,hamsters,halibut,hairbrush,hackers,guam,grouchy,grisly,griffin's,gratuitous,glutton,glimmer,gibberish,ghastly,geologist,gentler,generously,generators,geeky,gaga,furs,fuhrer,fronting,forklift,foolin,fluorescent,flats,flan,financed,filmmaking,fight's,faxes,faceless,extinguisher,expressions,expel,etched,entertainer,engagements,endangering,empress,egos,educator,ducked,dual,dramatically,dodgeball,dives,diverted,dissolved,dislocated,discrepancy,discovers,dink,devour,destroyers,derail,deputies,dementia,decisive,daycare,daft,cynic,crumbling,cowardice,cow's,covet,cornwallis,corkscrew,cookbook,conditioned,commendation,commandments,columns,coincidental,cobwebs,clouded,clogging,clicking,clasp,citizenship,chopsticks,chefs,chaps,catherine's,castles,cashing,carat,calmer,burgundy,bulldog's,brightly,brazen,brainwashing,bradys,bowing,booties,bookcase,boned,bloodsucking,blending,bleachers,bleached,belgian,bedpan,bearded,barrenger,bachelors,awwww,atop,assures,assigning,asparagus,arabs,apprehend,anecdote,amoral,alterations,alli,aladdin,aggravation,afoot,acquaintances,accommodating,accelerate,yakking,wreckage,worshipping,wladek,willya,willies,wigged,whoosh,whisked,wavelength,watered,warpath,warehouses,volts,vitro,violates,viewed,vicar,valuables,users,urging,uphill,unwise,untimely,unsavory,unresponsive,unpunished,unexplained,unconventional,tubby,trolling,treasurer,transfers,toxicology,totaled,tortoise,tormented,toothache,tingly,tina's,timmiihh,tibetan,thursdays,thoreau,terrifies,temperature's,temperamental,telegrams,ted's,technologies,teaming,teal'c's,talkie,takers,table's,symbiote,swirl,suffocate,subsequently,stupider,strapping,store's,steckler,standardized,stampede,stainless,springing,spreads,spokesperson,speeds,someway,snowflake,sleepyhead,sledgehammer,slant,slams,situation's,showgirl,shoveling,shmoopy,sharkbait,shan't,seminars,scrambling,schizophrenia,schematics,schedule's,scenic,sanitary,sandeman,saloon,sabbatical,rural,runt,rummy,rotate,reykjavik,revert,retrieved,responsive,rescheduled,requisition,renovations,remake,relinquish,rejoice,rehabilitation,recreation,reckoning,recant,rebuilt,rebadow,reassurance,reassigned,rattlesnake,ramble,racism,quor,prowess,prob,primed,pricey,predictions,prance,pothole,pocus,plains,pitches,pistols,persist,perpetrated,penal,pekar,peeling,patter,pastime,parmesan,paper's,papa's,panty,pail,pacemaker,overdrive,optic,operas,ominous,offa,observant,nothings,noooooo,nonexistent,nodded,nieces,neia,neglecting,nauseating,mutton,mutated,musket,munson's,mumbling,mowing,mouthful,mooseport,monologue,momma's,moly,mistrust,meetin,maximize,masseuse,martha's,marigold,mantini,mailer,madre,lowlifes,locksmith,livid,liven,limos,licenses,liberating,lhasa,lenin,leniency,leering,learnt,laughable,lashes,lasagne,laceration,korben,katan,kalen,jordan's,jittery,jesse's,jammies,irreplaceable,intubate,intolerant,inhaler,inhaled,indifferent,indifference,impound,imposed,impolite,humbly,holocaust,heroics,heigh,gunk,guillotine,guesthouse,grounding,groundbreaking,groom's,grips,grant's,gossiping,goatee,gnomes,gellar,fusion's,fumble,frutt,frobisher,freudian,frenchman,foolishness,flagged,fixture,femme,feeder,favored,favorable,fatso,fatigue,fatherhood,farmer's,fantasized,fairest,faintest,factories,eyelids,extravagant,extraterrestrial,extraordinarily,explicit,escalator,eros,endurance,encryption,enchantment's,eliminating,elevate,editors,dysfunction,drivel,dribble,dominican,dissed,dispatched,dismal,disarray,dinnertime,devastation,dermatologist,delicately,defrost,debutante,debacle,damone,dainty,cuvee,culpa,crucified,creeped,crayons,courtship,counsel's,convene,continents,conspicuous,congresswoman,confinement,conferences,confederate,concocted,compromises,comprende,composition,communism,comma,collectors,coleslaw,clothed,clinically,chug,chickenshit,checkin,chaotic,cesspool,caskets,cancellation,calzone,brothel,boomerang,bodega,bloods,blasphemy,black's,bitsy,bink,biff,bicentennial,berlini,beatin,beards,barbas,barbarians,backpacking,audiences,artist's,arrhythmia,array,arousing,arbitrator,aqui,appropriately,antagonize,angling,anesthetic,altercation,alice's,aggressor,adversity,adopting,acne,accordance,acathla,aaahhh,wreaking,workup,workings,wonderin,wolf's,wither,wielding,whopper,what'm,what'cha,waxed,vibrating,veterinarian,versions,venting,vasey,valor,validate,urged,upholstery,upgraded,untied,unscathed,unsafe,unlawful,uninterrupted,unforgiving,undies,uncut,twinkies,tucking,tuba,truffle,truck's,triplets,treatable,treasured,transmit,tranquility,townspeople,torso,tomei,tipsy,tinsel,timeline,tidings,thirtieth,tensions,teapot,tasks,tantrums,tamper,talky,swayed,swapping,sven,sulk,suitor,subjected,stylist,stroller,storing,stirs,statistical,standoff,staffed,squadron,sprinklers,springsteen,specimens,sparkly,song's,snowy,snobby,snatcher,smoother,smith's,sleepin,shrug,shortest,shoebox,shel,sheesh,shee,shackles,setbacks,sedatives,screeching,scorched,scanned,satyr,sammy's,sahib,rosemary's,rooted,rods,roadblock,riverbank,rivals,ridiculed,resentful,repellent,relates,registry,regarded,refugee,recreate,reconvene,recalled,rebuttal,realmedia,quizzes,questionnaire,quartet,pusher,punctured,pucker,propulsion,promo,prolong,professionalism,prized,premise,predators,portions,pleasantly,planet's,pigsty,physicist,phil's,penniless,pedestrian,paychecks,patiently,paternal,parading,pa's,overactive,ovaries,orderlies,oracles,omaha,oiled,offending,nudie,neonatal,neighborly,nectar,nautical,naught,moops,moonlighting,mobilize,mite,misleading,milkshake,mickey's,metropolitan,menial,meats,mayan,maxed,marketplace,mangled,magua,lunacy,luckier,llanview's,livestock,liters,liter,licorice,libyan,legislature,lasers,lansbury,kremlin,koreans,kooky,knowin,kilt,junkyard,jiggle,jest,jeopardized,jags,intending,inkling,inhalation,influences,inflated,inflammatory,infecting,incense,inbound,impractical,impenetrable,iffy,idealistic,i'mma,hypocrites,hurtin,humbled,hosted,homosexuality,hologram,hokey,hocus,hitchhiking,hemorrhoids,headhunter,hassled,harts,hardworking,haircuts,hacksaw,guerrilla,genitals,gazillion,gatherings,ganza's,gammy,gamesphere,fugue,fuels,forests,footwear,folly,folds,flexibility,flattened,flashlights,fives,filet,field's,famously,extenuating,explored,exceed,estrogen,envisioned,entails,emerged,embezzled,eloquent,egomaniac,dummies,duds,ducts,drowsy,drones,dragon's,drafts,doree,donovon,donny's,docked,dixon's,distributed,disorders,disguises,disclose,diggin,dickie's,detachment,deserting,depriving,demographic,delegation,defying,deductible,decorum,decked,daylights,daybreak,dashboard,darien,damnation,d'angelo's,cuddling,crunching,crickets,crazies,crayon,councilman,coughed,coordination,conundrum,contractors,contend,considerations,compose,complimented,compliance,cohaagen,clutching,cluster,clued,climbs,clader,chuck's,chromosome,cheques,checkpoint,chats,channeling,ceases,catholics,cassius,carver's,carasco,capped,capisce,cantaloupe,cancelling,campsite,camouflage,cambodia,burglars,bureaucracy,breakfasts,branding,bra'tac,book's,blueprint,bleedin,blaze's,blabbed,bisexual,bile,big's,beverages,beneficiary,battery's,basing,avert,avail,autobiography,atone,army's,arlyn,ares,architectural,approves,apothecary,anus,antiseptic,analytical,amnesty,alphabetical,alignment,aligned,aleikuum,advisory,advisors,advisement,adulthood,acquiring,accessed,zombie's,zadir,wrestled,wobbly,withnail,wheeled,whattaya,whacking,wedged,wanders,walkman,visionary,virtues,vincent's,vega's,vaginal,usage,unnamed,uniquely,unimaginable,undeniable,unconditionally,uncharted,unbridled,tweezers,tvmegasite,trumped,triumphant,trimming,tribes,treading,translates,tranquilizers,towing,tout,toontown,thunk,taps,taboo,suture,suppressing,succeeding,submission,strays,stonewall,stogie,stepdaughter,stalls,stace,squint,spouses,splashed,speakin,sounder,sorrier,sorrel,sorcerer,sombrero,solemnly,softened,socialist,snobs,snippy,snare,smoothing,slump,slimeball,slaving,sips,singular,silently,sicily,shiller,shayne's,shareholders,shakedown,sensations,seagulls,scrying,scrumptious,screamin,saucy,santoses,santos's,sanctions,roundup,roughed,rosary,robechaux,roadside,riley's,retrospect,resurrected,restoration,reside,researched,rescind,reproduce,reprehensible,repel,rendering,remodeling,religions,reconsidering,reciprocate,ratchet,rambaldi's,railroaded,raccoon,quasi,psychics,psat,promos,proclamation,problem's,prob'ly,pristine,printout,priestess,prenuptial,prediction,precedes,pouty,potter's,phoning,petersburg,peppy,pariah,parched,parcel,panes,overloaded,overdoing,operators,oldies,obesity,nymphs,nother,notebooks,nook,nikolai,nearing,nearer,mutation,municipal,monstrosity,minister's,milady,mieke,mephesto,memory's,melissa's,medicated,marshals,manilow,mammogram,mainstream,madhouse,m'lady,luxurious,luck's,lucas's,lotsa,loopy,logging,liquids,lifeboat,lesion,lenient,learner,lateral,laszlo,larva,kross,kinks,jinxed,involuntary,inventor,interim,insubordination,inherent,ingrate,inflatable,independently,incarnate,inane,imaging,hypoglycemia,huntin,humorous,humongous,hoodlum,honoured,honking,hitler's,hemorrhage,helpin,hearing's,hathor,hatching,hangar,halftime,guise,guggenheim,grrr,grotto,grandson's,grandmama,gorillas,godless,girlish,ghouls,gershwin,frosted,friday's,forwards,flutter,flourish,flagpole,finely,finder's,fetching,fatter,fated,faithfully,faction,fabrics,exposition,expo,exploits,exert,exclude,eviction,everwood's,evasion,espn,escorting,escalate,enticing,enroll,enhancement,endowed,enchantress,emerging,elopement,drills,drat,downtime,downloading,dorks,doorways,doctorate,divulge,dissociative,diss,disgraceful,disconcerting,dirtbag,deteriorating,deteriorate,destinies,depressive,dented,denim,defeating,decruz,decidedly,deactivate,daydreams,czar,curls,culprit,cues,crybaby,cruelest,critique,crippling,cretin,cranberries,cous,coupled,corvis,copped,convicts,converts,contingent,contests,complement,commend,commemorate,combinations,coastguard,cloning,cirque,churning,chock,chivalry,chemotherapy,charlotte's,chancellor's,catalogues,cartwheels,carpets,carols,canister,camera's,buttered,bureaucratic,bundt,buljanoff,bubbling,brokers,broaden,brimstone,brainless,borneo,bores,boing,bodied,billie's,biceps,beijing,bead,badmouthing,bad's,avec,autopilot,attractions,attire,atoms,atheist,ascertain,artificially,archbishop,aorta,amps,ampata,amok,alloy,allied,allenby,align,albeit,aired,aint,adjoining,accosted,abyss,absolve,aborted,aaagh,aaaaaah,your's,yonder,yellin,yearly,wyndham,wrongdoing,woodsboro,wigging,whup,wasteland,warranty,waltzed,walnuts,wallace's,vividly,vibration,verses,veggie,variation,validation,unnecessarily,unloaded,unicorns,understated,undefeated,unclean,umbrellas,tyke,twirling,turpentine,turnover,tupperware,tugger,triangles,triage,treehouse,tract,toil,tidbit,tickled,thud,threes,thousandth,thingie,terminally,temporal,teething,tassel,talkies,syndication,syllables,swoon,switchboard,swerved,suspiciously,superiority,successor,subsequentlyne,subsequent,subscribe,strudel,stroking,strictest,steven's,stensland,stefan's,starsky,starin,stannart,squirming,squealing,sorely,solidarity,softie,snookums,sniveling,snail,smidge,smallpox,sloth,slab,skulking,singled,simian,silo,sightseeing,siamese,shudder,shoppers,shax,sharpen,shannen,semtex,sellout,secondhand,season's,seance,screenplay,scowl,scorn,scandals,santiago's,safekeeping,sacked,russe,rummage,rosie's,roshman,roomies,roaches,rinds,retrace,retires,resuscitate,restrained,residential,reservoir,rerun,reputations,rekall,rejoin,refreshment,reenactment,recluse,ravioli,raves,ranked,rampant,rama,rallies,raking,purses,punishable,punchline,puked,provincial,prosky,prompted,processor,previews,prepares,poughkeepsie,poppins,polluted,placenta,pissy,petulant,peterson's,perseverance,persecution,pent,peasants,pears,pawns,patrols,pastries,partake,paramount,panky,palate,overzealous,overthrow,overs,oswald's,oskar,originated,orchids,optical,onset,offenses,obstructing,objectively,obituaries,obedient,obedience,novice,nothingness,nitrate,newer,nets,mwah,musty,mung,motherly,mooning,monique's,momentous,moby,mistaking,mistakenly,minutemen,milos,microchip,meself,merciless,menelaus,mazel,mauser,masturbate,marsh's,manufacturers,mahogany,lysistrata,lillienfield,likable,lightweight,liberate,leveled,letdown,leer,leeloo,larynx,lardass,lainey,lagged,lab's,klorel,klan,kidnappings,keyed,karmic,jive,jiggy,jeebies,isabel's,irate,iraqi,iota,iodine,invulnerable,investor,intrusive,intricate,intimidation,interestingly,inserted,insemination,inquire,innate,injecting,inhabited,informative,informants,incorporation,inclination,impure,impasse,imbalance,illiterate,i'ma,i'ii,hurled,hunts,hispanic,hematoma,help's,helen's,headstrong,harmonica,hark,handmade,handiwork,gymnasium,growling,governors,govern,gorky,gook,girdle,getcha,gesundheit,gazing,gazette,garde,galley,funnel,fred's,fossils,foolishly,fondness,flushing,floris,firearm,ferocious,feathered,fateful,fancies,fakes,faker,expressway,expire,exec,ever'body,estates,essentials,eskimos,equations,eons,enlightening,energetic,enchilada,emmi,emissary,embolism,elsinore,ecklie,drenched,drazi,doped,dogging,documentation,doable,diverse,disposed,dislikes,dishonesty,disengage,discouraging,diplomat,diplomacy,deviant,descended,derailed,depleted,demi,deformed,deflect,defines,defer,defcon,deactivated,crips,creditors,counters,corridors,cordy's,conversation's,constellations,congressmen,congo,complimenting,colombian,clubbing,clog,clint's,clawing,chromium,chimes,chicken's,chews,cheatin,chaste,ceremony's,cellblock,ceilings,cece,caving,catered,catacombs,calamari,cabbie,bursts,bullying,bucking,brulee,brits,brisk,breezes,brandon's,bounces,boudoir,blockbuster,binks,better'n,beluga,bellied,behrani,behaves,bedding,battalion,barriers,banderas,balmy,bakersfield,badmouth,backers,avenging,atat,aspiring,aromatherapy,armpit,armoire,anythin,another's,anonymously,anniversaries,alonzo's,aftershave,affordable,affliction,adrift,admissible,adieu,activist,acquittal,yucky,yearn,wrongly,wino,whitter,whirlpool,wendigo,watchdog,wannabes,walkers,wakey,vomited,voicemail,verb,vans,valedictorian,vacancy,uttered,up's,unwed,unrequited,unnoticed,unnerving,unkind,unjust,uniformed,unconfirmed,unadulterated,unaccounted,uglier,tyler's,twix,turnoff,trough,trolley,trampled,tramell,traci's,tort,toads,titled,timbuktu,thwarted,throwback,thon,thinker,thimble,tasteless,tarantula,tammy's,tamale,takeovers,symposium,symmetry,swish,supposing,supporters,suns,sully,streaking,strands,statutory,starlight,stargher,starch,stanzi,stabs,squeamish,spokane,splattered,spiritually,spilt,sped,speciality,spacious,soundtrack,smacking,slain,slag,slacking,skywire,skips,skeet,skaara,simpatico,shredding,showin,shortcuts,shite,shielding,sheep's,shamelessly,serafine,sentimentality,sect,secretary's,seasick,scientifically,scholars,schemer,scandalous,saturday's,salts,saks,sainted,rustic,rugs,riedenschneider,ric's,rhyming,rhetoric,revolt,reversing,revel,retractor,retards,retaliation,resurrect,remiss,reminiscing,remanded,reluctance,relocating,relied,reiben,regions,regains,refuel,refresher,redoing,redheaded,redeemed,recycled,reassured,rearranged,rapport,qumar,prowling,promotional,promoter,preserving,prejudices,precarious,powwow,pondering,plunger,plunged,pleasantville,playpen,playback,pioneers,physicians,phlegm,perfected,pancreas,pakistani,oxide,ovary,output,outbursts,oppressed,opal's,ooohhh,omoroca,offed,o'toole,nurture,nursemaid,nosebleed,nixon's,necktie,muttering,munchies,mucking,mogul,mitosis,misdemeanor,miscarried,minx,millionth,migraines,midler,methane,metabolism,merchants,medicinal,margaret's,manifestation,manicurist,mandelbaum,manageable,mambo,malfunctioned,mais,magnesium,magnanimous,loudmouth,longed,lifestyles,liddy,lickety,leprechauns,lengthy,komako,koji's,klute,kennel,kathy's,justifying,jerusalem,israelis,isle,irreversible,inventing,invariably,intervals,intergalactic,instrumental,instability,insinuate,inquiring,ingenuity,inconclusive,incessant,improv,impersonation,impeachment,immigrant,id'd,hyena,humperdinck,humm,hubba,housework,homeland,holistic,hoffa,hither,hissy,hippy,hijacked,hero's,heparin,hellooo,heat's,hearth,hassles,handcuff,hairstyle,hadda,gymnastics,guys'll,gutted,gulp,gulls,guard's,gritty,grievous,gravitational,graft,gossamer,gooder,glory's,gere,gash,gaming,gambled,galaxies,gadgets,fundamentals,frustrations,frolicking,frock,frilly,fraser's,francais,foreseen,footloose,fondly,fluent,flirtation,flinched,flight's,flatten,fiscal,fiercely,felicia's,fashionable,farting,farthest,farming,facade,extends,exposer,exercised,evading,escrow,errr,enzymes,energies,empathize,embryos,embodiment,ellsberg,electromagnetic,ebola,earnings,dulcinea,dreamin,drawbacks,drains,doyle's,doubling,doting,doose's,doose,doofy,dominated,dividing,diversity,disturbs,disorderly,disliked,disgusts,devoid,detox,descriptions,denominator,demonstrating,demeanor,deliriously,decode,debauchery,dartmouth,d'oh,croissant,cravings,cranked,coworkers,councilor,council's,convergence,conventions,consistency,consist,conquests,conglomerate,confuses,confiscate,confines,confesses,conduit,compress,committee's,commanded,combed,colonel's,coated,clouding,clamps,circulating,circa,cinch,chinnery,celebratory,catalogs,carpenters,carnal,carla's,captures,capitan,capability,canin,canes,caitlin's,cadets,cadaver,cable's,bundys,bulldozer,buggers,bueller,bruno's,breakers,brazilian,branded,brainy,booming,bookstores,bloodbath,blister,bittersweet,biologist,billed,betty's,bellhop,beeping,beaut,beanstalk,beady,baudelaire,bartenders,bargains,ballad,backgrounds,averted,avatar's,atmospheric,assert,assassinated,armadillo,archive,appreciating,appraised,antlers,anterior,alps,aloof,allowances,alleyway,agriculture,agent's,affleck,acknowledging,achievements,accordion,accelerator,abracadabra,abject,zinc,zilch,yule,yemen,xanax,wrenching,wreath,wouldn,witted,widely,wicca,whorehouse,whooo,whips,westchester,websites,weaponry,wasn,walsh's,vouchers,vigorous,viet,victimized,vicodin,untested,unsolicited,unofficially,unfocused,unfettered,unfeeling,unexplainable,uneven,understaffed,underbelly,tutorial,tuberculosis,tryst,trois,trix,transmitting,trampoline,towering,topeka,tirade,thieving,thang,tentacles,teflon,teachings,tablets,swimmin,swiftly,swayzak,suspecting,supplying,suppliers,superstitions,superhuman,subs,stubbornness,structures,streamers,strattman,stonewalling,stimulate,stiffs,station's,stacking,squishy,spout,splice,spec,sonrisa,smarmy,slows,slicing,sisterly,sierra's,sicilian,shrill,shined,shift's,seniority,seine,seeming,sedley,seatbelts,scour,scold,schoolyard,scarring,sash,sark's,salieri,rustling,roxbury,richly,rexy,rex's,rewire,revved,retriever,respective,reputable,repulsed,repeats,rendition,remodel,relocated,reins,reincarnation,regression,reconstruction,readiness,rationale,rance,rafters,radiohead,radio's,rackets,quarterly,quadruple,pumbaa,prosperous,propeller,proclaim,probing,privates,pried,prewedding,premeditation,posturing,posterity,posh,pleasurable,pizzeria,pish,piranha,pimps,penmanship,penchant,penalties,pelvis,patriotism,pasa,papaya,packaging,overturn,overture,overstepped,overcoat,ovens,outsmart,outed,orient,ordained,ooohh,oncologist,omission,olly,offhand,odour,occurring,nyazian,notarized,nobody'll,nightie,nightclubs,newsweek,nesting,navel,nationwide,nabbed,naah,mystique,musk,mover,mortician,morose,moratorium,monster's,moderate,mockingbird,mobsters,misconduct,mingling,mikey's,methinks,metaphysical,messengered,merge,merde,medallion,mathematical,mater,mason's,masochist,martouf,martians,marinara,manray,manned,mammal,majorly,magnifying,mackerel,mabel's,lyme,lurid,lugging,lonnegan,loathsome,llantano,liszt,listings,limiting,liberace,leprosy,latinos,lanterns,lamest,laferette,ladybird,kraut,kook,kits,kipling,joyride,inward,intestine,innocencia,inhibitions,ineffectual,indisposed,incurable,incumbent,incorporated,inconvenienced,inanimate,improbable,implode,idea's,hypothesis,hydrant,hustling,hustled,huevos,how'm,horseshoe,hooey,hoods,honcho,hinge,hijack,heroism,hermit,heimlich,harvesting,hamunaptra,haladki,haiku,haggle,haaa,gutsy,grunting,grueling,grit,grifter,grievances,gribbs,greevy,greeted,green's,grandstanding,godparents,glows,glistening,glider,gimmick,genocide,gaping,fraiser,formalities,foreigner,forecast,footprint,folders,foggy,flaps,fitty,fiends,femmes,fearful,fe'nos,favours,fabio,eyeing,extort,experimentation,expedite,escalating,erect,epinephrine,entitles,entice,enriched,enable,emissions,eminence,eights,ehhh,educating,eden's,earthquakes,earthlings,eagerly,dunville,dugout,draining,doublemeat,doling,disperse,dispensing,dispatches,dispatcher,discoloration,disapproval,diners,dieu,diddly,dictates,diazepam,descendants,derogatory,deposited,delights,defies,decoder,debates,dealio,danson,cutthroat,crumbles,crud,croissants,crematorium,craftsmanship,crafted,could'a,correctional,cordless,cools,contradiction,constitute,conked,confine,concealing,composite,complicates,communique,columbian,cockamamie,coasters,clusters,clobbered,clipping,clipboard,clergy,clemenza,cleanser,circumcision,cindy's,chisel,character's,chanukah,certainaly,centerpiece,cellmate,cartoonist,cancels,cadmium,buzzed,busiest,bumstead,bucko,browsing,broth,broader,break's,braver,boundary,boggling,bobbing,blurred,birkhead,bethesda,benet,belvedere,bellies,begrudge,beckworth,bebe's,banky,baldness,bagpipes,baggy,babysitters,aversion,auxiliary,attributes,attain,astonished,asta,assorted,aspirations,arnold's,area's,appetites,apparel,apocalyptic,apartment's,announcer,angina,amiss,ambulances,allo,alleviate,alibis,algeria,alaskan,airway,affiliated,aerial,advocating,adrenalin,admires,adhesive,actively,accompanying,zeta,yoyou,yoke,yachts,wreaked,wracking,woooo,wooing,wised,winnie's,wind's,wilshire,wedgie,watson's,warden's,waging,violets,vincey,victorious,victories,velcro,vastly,valves,valley's,uplifting,untrustworthy,unmitigated,universities,uneventful,undressing,underprivileged,unburden,umbilical,twigs,tweet,tweaking,turquoise,trustees,truckers,trimmed,triggering,treachery,trapping,tourism,tosses,torching,toothpick,toga,toasty,toasts,tiamat,thickens,ther,tereza,tenacious,temperament,televised,teldar,taxis,taint,swill,sweatin,sustaining,surgery's,surgeries,succeeds,subtly,subterranean,subject's,subdural,streep,stopwatch,stockholder,stillwater,steamer,stang's,stalkers,squished,squeegee,splinters,spliced,splat,spied,specialized,spaz,spackle,sophistication,snapshots,smoky,smite,sluggish,slithered,skin's,skeeters,sidewalks,sickly,shrugs,shrubbery,shrieking,shitless,shithole,settin,servers,serge,sentinels,selfishly,segments,scarcely,sawdust,sanitation,sangria,sanctum,samantha's,sahjhan,sacrament,saber,rustle,rupture,rump,roving,rousing,rosomorf,rosario's,rodents,robust,rigs,riddled,rhythms,revelations,restart,responsibly,repression,reporter's,replied,repairing,renoir,remoray,remedial,relocation,relies,reinforcement,refundable,redirect,recheck,ravenwood,rationalizing,ramus,ramsey's,ramelle,rails,radish,quivering,pyjamas,puny,psychos,prussian,provocations,prouder,protestors,protesters,prohibited,prohibit,progression,prodded,proctologist,proclaimed,primordial,pricks,prickly,predatory,precedents,praising,pragmatic,powerhouse,posterior,postage,porthos,populated,poly,pointe,pivotal,pinata,persistence,performers,pentangeli,pele,pecs,pathetically,parka,parakeet,panicky,pandora's,pamphlets,paired,overthruster,outsmarted,ottoman,orthopedic,oncoming,oily,offing,nutritious,nuthouse,nourishment,nietzsche,nibbling,newlywed,newcomers,need's,nautilus,narcissist,myths,mythical,mutilation,mundane,mummy's,mummies,mumble,mowed,morvern,mortem,mortal's,mopes,mongolian,molasses,modification,misplace,miscommunication,miney,militant,midlife,mens,menacing,memorizing,memorabilia,membrane,massaging,masking,maritime,mapping,manually,magnets,ma's,luxuries,lows,lowering,lowdown,lounging,lothario,longtime,liposuction,lieutenant's,lidocaine,libbets,lewd,levitate,leslie's,leeway,lectured,lauren's,launcher,launcelot,latent,larek,lagos,lackeys,kumbaya,kryptonite,knapsack,keyhole,kensington,katarangura,kann,junior's,juiced,jugs,joyful,jihad,janitor's,jakey,ironclad,invoice,intertwined,interlude,interferes,insurrection,injure,initiating,infernal,india's,indeedy,incur,incorrigible,incantations,imprint,impediment,immersion,immensely,illustrate,ike's,igloo,idly,ideally,hysterectomy,hyah,house's,hour's,hounded,hooch,honeymoon's,hollering,hogs,hindsight,highs,high's,hiatus,helix,heirs,heebie,havesham,hassan's,hasenfuss,hankering,hangers,hakuna,gutless,gusto,grubbing,grrrr,greg's,grazed,gratification,grandeur,gorak,godammit,gnawing,glanced,gladiators,generating,galahad,gaius,furnished,funeral's,fundamentally,frostbite,frees,frazzled,fraulein,fraternizing,fortuneteller,formaldehyde,followup,foggiest,flunky,flickering,flashbacks,fixtures,firecrackers,fines,filly,figger,fetuses,fella's,feasible,fates,eyeliner,extremities,extradited,expires,experimented,exiting,exhibits,exhibited,exes,excursion,exceedingly,evaporate,erupt,equilibrium,epileptic,ephram's,entrails,entities,emporium,egregious,eggshells,easing,duwayne,drone,droll,dreyfuss,drastically,dovey,doubly,doozy,donkeys,donde,dominate,distrust,distributing,distressing,disintegrate,discreetly,disagreements,diff,dick's,devised,determines,descending,deprivation,delegate,dela,degradation,decision's,decapitated,dealin,deader,dashed,darkroom,dares,daddies,dabble,cycles,cushy,currents,cupcakes,cuffed,croupier,croak,criticized,crapped,coursing,cornerstone,copyright,coolers,continuum,contaminate,cont,consummated,construed,construct,condos,concoction,compulsion,committees,commish,columnist,collapses,coercion,coed,coastal,clemency,clairvoyant,circulate,chords,chesterton,checkered,charlatan,chaperones,categorically,cataracts,carano,capsules,capitalize,cache,butcher's,burdon,bullshitting,bulge,buck's,brewed,brethren,bren,breathless,breasted,brainstorming,bossing,borealis,bonsoir,bobka,boast,blimp,bleu,bleep,bleeder,blackouts,bisque,binford's,billboards,bernie's,beecher's,beatings,bayberry,bashed,bartlet's,bapu,bamboozled,ballon,balding,baklava,baffled,backfires,babak,awkwardness,attributed,attest,attachments,assembling,assaults,asphalt,arthur's,arthritis,armenian,arbitrary,apologizes,anyhoo,antiquated,alcante,agency's,advisable,advertisement,adventurer,abundance,aahhh,aaahh,zatarc,yous,york's,yeti,yellowstone,yearbooks,yakuza,wuddya,wringing,woogie,womanhood,witless,winging,whatsa,wetting,wessex,wendy's,way's,waterproof,wastin,washington's,wary,voom,volition,volcanic,vogelman,vocation,visually,violinist,vindicated,vigilance,viewpoint,vicariously,venza,vasily,validity,vacuuming,utensils,uplink,unveil,unloved,unloading,uninhibited,unattached,ukraine,typo,tweaked,twas,turnips,tunisia,tsch,trinkets,tribune,transmitters,translator,train's,toured,toughen,toting,topside,topical,toothed,tippy,tides,theology,terrors,terrify,tentative,technologically,tarnish,target's,tallest,tailored,tagliati,szpilman,swimmers,swanky,susie's,surly,supple,sunken,summation,suds,suckin,substantially,structured,stockholm,stepmom,squeaking,springfield's,spooks,splashmore,spanked,souffle,solitaire,solicitation,solarium,smooch,smokers,smog,slugged,slobbering,skylight,skimpy,situated,sinuses,simplify,silenced,sideburns,sid's,shutdown,shrinkage,shoddy,shhhhhh,shelling,shelled,shareef,shangri,shakey's,seuss,servicing,serenade,securing,scuffle,scrolls,scoff,scholarships,scanners,sauerkraut,satisfies,satanic,sars,sardines,sarcophagus,santino,sandi's,salvy,rusted,russells,ruby's,rowboat,routines,routed,rotating,rolfsky,ringside,rigging,revered,retreated,respectability,resonance,resembling,reparations,reopened,renewal,renegotiate,reminisce,reluctantly,reimburse,regimen,regaining,rectum,recommends,recognizable,realism,reactive,rawhide,rappaport's,raincoat,quibble,puzzled,pursuits,purposefully,puns,pubic,psychotherapy,prosecution's,proofs,proofing,professor's,prevention,prescribing,prelim,positioning,pore,poisons,poaching,pizza's,pertaining,personalized,personable,peroxide,performs,pentonville,penetrated,peggy's,payphone,payoffs,participated,park's,parisian,palp,paleontology,overhaul,overflowing,organised,oompa,ojai,offenders,oddest,objecting,o'hare,o'daniel,notches,noggin,nobody'd,nitrogen,nightstand,niece's,nicky's,neutralized,nervousness,nerdy,needlessly,navigational,narrative,narc,naquadah,nappy,nantucket,nambla,myriad,mussolini,mulberry,mountaineer,mound,motherfuckin,morrie,monopolizing,mohel,mistreated,misreading,misbehave,miramax,minstrel,minivan,milligram,milkshakes,milestone,middleweight,michelangelo,metamorphosis,mesh,medics,mckinnon's,mattresses,mathesar,matchbook,matata,marys,marco's,malucci,majored,magilla,magic's,lymphoma,lowers,lordy,logistics,linens,lineage,lindenmeyer,limelight,libel,leery's,leased,leapt,laxative,lather,lapel,lamppost,laguardia,labyrinth,kindling,key's,kegs,kegger,kawalsky,juries,judo,jokin,jesminder,janine's,izzy,israeli,interning,insulation,institutionalized,inspected,innings,innermost,injun,infallible,industrious,indulgence,indonesia,incinerator,impossibility,imports,impart,illuminate,iguanas,hypnotic,hyped,huns,housed,hostilities,hospitable,hoses,horton's,homemaker,history's,historian,hirschmuller,highlighted,hideout,helpers,headset,guardianship,guapo,guantanamo,grubby,greyhound,grazing,granola,granddaddy,gotham's,goren,goblet,gluttony,glucose,globes,giorno,gillian's,getter,geritol,gassed,gang's,gaggle,freighter,freebie,frederick's,fractures,foxhole,foundations,fouled,foretold,forcibly,folklore,floorboards,floods,floated,flippers,flavour,flaked,firstly,fireflies,feedings,fashionably,fascism,farragut,fallback,factions,facials,exterminate,exited,existent,exiled,exhibiting,excites,everything'll,evenin,evaluated,ethically,entree,entirety,ensue,enema,empath,embryo,eluded,eloquently,elle,eliminates,eject,edited,edema,echoes,earns,dumpling,drumming,droppings,drazen's,drab,dolled,doll's,doctrine,distasteful,disputing,disputes,displeasure,disdain,disciples,diamond's,develops,deterrent,detection,dehydration,defied,defiance,decomposing,debated,dawned,darken,daredevil,dailies,cyst,custodian,crusts,crucifix,crowning,crier,crept,credited,craze,crawls,coveted,couple's,couldn,corresponding,correcting,corkmaster,copperfield,cooties,coopers,cooperated,controller,contraption,consumes,constituents,conspire,consenting,consented,conquers,congeniality,computerized,compute,completes,complains,communicator,communal,commits,commendable,colonels,collide,coladas,colada,clout,clooney,classmate,classifieds,clammy,claire's,civility,cirrhosis,chink,chemically,characterize,censor,catskills,cath,caterpillar,catalyst,carvers,carts,carpool,carelessness,career's,cardio,carbs,captivity,capeside's,capades,butabi,busmalis,bushel,burping,buren,burdens,bunks,buncha,bulldozers,browse,brockovich,bria,breezy,breeds,breakthroughs,bravado,brandy's,bracket,boogety,bolshevik,blossoms,bloomington,blooming,bloodsucker,blockade,blight,blacksmith,betterton,betrayer,bestseller,bennigan's,belittle,beeps,bawling,barts,bartending,barbed,bankbooks,back's,babs,babish,authors,authenticity,atropine,astronomical,assertive,arterial,armbrust,armageddon,aristotle,arches,anyanka,annoyance,anemic,anck,anago,ali's,algiers,airways,airwaves,air's,aimlessly,ails,ahab,afflicted,adverse,adhere,accuracy,aaargh,aaand,zest,yoghurt,yeast,wyndham's,writings,writhing,woven,workable,winking,winded,widen,whooping,whiter,whip's,whatya,whacko,we's,wazoo,wasp,waived,vlad,virile,vino,vic's,veterinary,vests,vestibule,versed,venetian,vaughn's,vanishes,vacancies,urkel,upwards,uproot,unwarranted,unscheduled,unparalleled,undertaking,undergrad,tweedle,turtleneck,turban,trickery,travolta,transylvania,transponder,toyed,townhouse,tonto,toed,tion,tier,thyself,thunderstorm,thnk,thinning,thinkers,theatres,thawed,tether,tempus,telegraph,technicalities,tau'ri,tarp,tarnished,tara's,taggert's,taffeta,tada,tacked,systolic,symbolize,swerve,sweepstakes,swami,swabs,suspenders,surfers,superwoman,sunsets,sumo,summertime,succulent,successes,subpoenas,stumper,stosh,stomachache,stewed,steppin,stepatech,stateside,starvation,staff's,squads,spicoli,spic,sparing,soulless,soul's,sonnets,sockets,snit,sneaker,snatching,smothering,slush,sloman,slashing,sitters,simpson's,simpleton,signify,signal's,sighs,sidra,sideshow,sickens,shunned,shrunken,showbiz,shopped,shootings,shimmering,shakespeare's,shagging,seventeenth,semblance,segue,sedation,scuzzlebutt,scumbags,scribble,screwin,scoundrels,scarsdale,scamp,scabs,saucers,sanctioned,saintly,saddened,runaways,runaround,rumored,rudimentary,rubies,rsvp,rots,roman's,ripley's,rheya,revived,residing,resenting,researcher,repertoire,rehashing,rehabilitated,regrettable,regimental,refreshed,reese's,redial,reconnecting,rebirth,ravenous,raping,ralph's,railroads,rafting,rache,quandary,pylea,putrid,punitive,puffing,psychopathic,prunes,protests,protestant,prosecutors,proportional,progressed,prod,probate,prince's,primate,predicting,prayin,practitioner,possessing,pomegranate,polgara,plummeting,planners,planing,plaintiffs,plagues,pitt's,pithy,photographer's,philharmonic,petrol,perversion,personals,perpetrators,perm,peripheral,periodic,perfecto,perched,pees,peeps,pedigree,peckish,pavarotti,partnered,palette,pajama,packin,pacifier,oyez,overstepping,outpatient,optimum,okama,obstetrician,nutso,nuance,noun,noting,normalcy,normal's,nonnegotiable,nomak,nobleman,ninny,nines,nicey,newsflash,nevermore,neutered,nether,nephew's,negligee,necrosis,nebula,navigating,narcissistic,namesake,mylie,muses,munitions,motivational,momento,moisturizer,moderation,mmph,misinformed,misconception,minnifield,mikkos,methodical,mechanisms,mebbe,meager,maybes,matchmaking,masry,markovic,manifesto,malakai,madagascar,m'am,luzhin,lusting,lumberjack,louvre,loopholes,loaning,lightening,liberals,lesbo,leotard,leafs,leader's,layman's,launder,lamaze,kubla,kneeling,kilo,kibosh,kelp,keith's,jumpsuit,joy's,jovi,joliet,jogger,janover,jakovasaurs,irreparable,intervened,inspectors,innovation,innocently,inigo,infomercial,inexplicable,indispensable,indicative,incognito,impregnated,impossibly,imperfect,immaculate,imitating,illnesses,icarus,hunches,hummus,humidity,housewives,houmfort,hothead,hostiles,hooves,hoopla,hooligans,homos,homie,hisself,himalayas,hidy,hickory,heyyy,hesitant,hangout,handsomest,handouts,haitian,hairless,gwennie,guzzling,guinevere,grungy,grunge,grenada,gout,gordon's,goading,gliders,glaring,geology,gems,gavel,garments,gardino,gannon's,gangrene,gaff,gabrielle's,fundraising,fruitful,friendlier,frequencies,freckle,freakish,forthright,forearm,footnote,footer,foot's,flops,flamenco,fixer,firm's,firecracker,finito,figgered,fezzik,favourites,fastened,farfetched,fanciful,familiarize,faire,failsafe,fahrenheit,fabrication,extravaganza,extracted,expulsion,exploratory,exploitation,explanatory,exclusion,evolutionary,everglades,evenly,eunuch,estas,escapade,erasers,entries,enforcing,endorsements,enabling,emptying,emperor's,emblem,embarassing,ecosystem,ebby,ebay,dweeb,dutiful,dumplings,drilled,drafty,doug's,dolt,dollhouse,displaced,dismissing,disgraced,discrepancies,disbelief,disagreeing,disagreed,digestion,didnt,deviled,deviated,deterioration,departmental,departing,demoted,demerol,delectable,deco,decaying,decadent,dears,daze,dateless,d'algout,cultured,cultivating,cryto,crusades,crumpled,crumbled,cronies,critters,crew's,crease,craves,cozying,cortland,corduroy,cook's,consumers,congratulated,conflicting,confidante,condensed,concessions,compressor,compressions,compression,complicating,complexity,compadre,communicated,coerce,coding,coating,coarse,clown's,clockwise,clerk's,classier,clandestine,chums,chumash,christopher's,choreography,choirs,chivalrous,chinpoko,chilean,chihuahua,cheerio,charred,chafing,celibacy,casts,caste,cashier's,carted,carryin,carpeting,carp,carotid,cannibals,candor,caen,cab's,butterscotch,busts,busier,bullcrap,buggin,budding,brookside,brodski,bristow's,brig,bridesmaid's,brassiere,brainwash,brainiac,botrelle,boatload,blimey,blaring,blackness,bipolar,bipartisan,bins,bimbos,bigamist,biebe,biding,betrayals,bestow,bellerophon,beefy,bedpans,battleship,bathroom's,bassinet,basking,basin,barzini,barnyard,barfed,barbarian,bandit,balances,baker's,backups,avid,augh,audited,attribute,attitudes,at's,astor,asteroids,assortment,associations,asinine,asalaam,arouse,architects,aqua,applejack,apparatus,antiquities,annoys,angela's,anew,anchovies,anchors,analysts,ampule,alphabetically,aloe,allure,alameida,aisles,airfield,ahah,aggressively,aggravate,aftermath,affiliation,aesthetic,advertised,advancing,adept,adage,accomplices,accessing,academics,aagh,zoned,zoey's,zeal,yokel,y'ever,wynant's,wringer,witwer,withdrew,withdrawing,withdrawals,windward,wimbledon,wily,willfully,whorfin,whimsical,whimpering,welding,weddin,weathered,wealthiest,weakening,warmest,wanton,waif,volant,vivo,vive,visceral,vindication,vikram,vigorously,verification,veggies,urinate,uproar,upload,unwritten,unwrap,unsung,unsubstantiated,unspeakably,unscrupulous,unraveling,unquote,unqualified,unfulfilled,undetectable,underlined,unconstitutional,unattainable,unappreciated,ummmm,ulcers,tylenol,tweak,tutu,turnin,turk's,tucker's,tuatha,tropez,trends,trellis,traffic's,torque,toppings,tootin,toodles,toodle,tivo,tinkering,thursday's,thrives,thorne's,thespis,thereafter,theatrics,thatherton,texts,testicle,terr,tempers,teammates,taxpayer,tavington,tampon,tackling,systematic,syndicated,synagogue,swelled,sweeney's,sutures,sustenance,surfaces,superstars,sunflowers,sumatra,sublet,subjective,stubbins,strutting,strewn,streams,stowaway,stoic,sternin,stereotypes,steadily,star's,stalker's,stabilizing,sprang,spotter,spiraling,spinster,spell's,speedometer,specified,speakeasy,sparked,soooo,songwriter,soiled,sneakin,smithereens,smelt,smacks,sloan's,slaughterhouse,slang,slacks,skids,sketching,skateboards,sizzling,sixes,sirree,simplistic,sift,side's,shouts,shorted,shoelace,sheeit,shaw's,shards,shackled,sequestered,selmak,seduces,seclusion,seasonal,seamstress,seabeas,scry,scripted,scotia,scoops,scooped,schillinger's,scavenger,saturation,satch,salaries,safety's,s'more,s'il,rudeness,rostov,romanian,romancing,robo,robert's,rioja,rifkin,rieper,revise,reunions,repugnant,replicating,replacements,repaid,renewing,remembrance,relic,relaxes,rekindle,regulate,regrettably,registering,regenerate,referenced,reels,reducing,reconstruct,reciting,reared,reappear,readin,ratting,rapes,rancho,rancher,rammed,rainstorm,railroading,queers,punxsutawney,punishes,pssst,prudy,proudest,protectors,prohibits,profiling,productivity,procrastinating,procession,proactive,priss,primaries,potomac,postmortem,pompoms,polio,poise,piping,pickups,pickings,physiology,philanthropist,phenomena,pheasant,perfectionist,peretti,people'll,peninsula,pecking,peaks,pave,patrolman,participant,paralegal,paragraphs,paparazzi,pankot,pampering,pain's,overstep,overpower,ovation,outweigh,outlawed,orion's,openness,omnipotent,oleg,okra,okie,odious,nuwanda,nurtured,niles's,newsroom,netherlands,nephews,neeson,needlepoint,necklaces,neato,nationals,muggers,muffler,mousy,mourned,mosey,morn,mormon,mopey,mongolians,moldy,moderately,modelling,misinterpret,minneapolis,minion,minibar,millenium,microfilm,metals,mendola,mended,melissande,me's,mathematician,masturbating,massacred,masbath,marler's,manipulates,manifold,malp,maimed,mailboxes,magnetism,magna,m'lord,m'honey,lymph,lunge,lull,luka,lt's,lovelier,loser's,lonigan's,lode,locally,literacy,liners,linear,lefferts,leezak,ledgers,larraby,lamborghini,laloosh,kundun,kozinski,knockoff,kissin,kiosk,khasinau's,kennedys,kellman,karlo,kaleidoscope,jumble,juggernaut,joseph's,jiminy,jesuits,jeffy,jaywalking,jailbird,itsy,irregularities,inventive,introduces,interpreter,instructing,installing,inquest,inhabit,infraction,informer,infarction,incidence,impulsively,impressing,importing,impersonated,impeach,idiocy,hyperbole,hydra,hurray,hungary,humped,huhuh,hsing,hotspot,horsepower,hordes,hoodlums,honky,hitchhiker,hind,hideously,henchmen,heaving,heathrow,heather's,heathcliff,healthcare,headgear,headboard,hazing,hawking,harem,handprint,halves,hairspray,gutiurrez,greener,grandstand,goosebumps,good's,gondola,gnaw,gnat,glitches,glide,gees,gasping,gases,garrison's,frolic,fresca,freeways,frayed,fortnight,fortitude,forgetful,forefathers,foley's,foiled,focuses,foaming,flossing,flailing,fitzgeralds,firehouse,finders,filmmakers,fiftieth,fiddler,fellah,feats,fawning,farquaad,faraway,fancied,extremists,extremes,expresses,exorcist,exhale,excel,evaluations,ethros,escalated,epilepsy,entrust,enraged,ennui,energized,endowment,encephalitis,empties,embezzling,elster,ellie's,ellen's,elixir,electrolytes,elective,elastic,edged,econ,eclectic,eagle's,duplex,dryers,drexl,dredging,drawback,drafting,don'ts,docs,dobisch,divorcee,ditches,distinguishing,distances,disrespected,disprove,disobeying,disobedience,disinfectant,discs,discoveries,dips,diplomas,dingy,digress,dignitaries,digestive,dieting,dictatorship,dictating,devoured,devise,devane's,detonators,detecting,desist,deserter,derriere,deron,derive,derivative,delegates,defects,defeats,deceptive,debilitating,deathwok,dat's,darryl's,dago,daffodils,curtsy,cursory,cuppa,cumin,cultivate,cujo,cubic,cronkite,cremation,credence,cranking,coverup,courted,countin,counselling,cornball,converting,contentment,contention,contamination,consortium,consequently,consensual,consecutive,compressed,compounds,compost,components,comparative,comparable,commenting,color's,collections,coleridge,coincidentally,cluett,cleverly,cleansed,cleanliness,clea,clare's,citizen's,chopec,chomp,cholera,chins,chime,cheswick,chessler,cheapest,chatted,cauliflower,catharsis,categories,catchin,caress,cardigan,capitalism,canopy,cana,camcorder,calorie,cackling,cabot's,bystanders,buttoned,buttering,butted,buries,burgel,bullpen,buffoon,brogna,brah,bragged,boutros,boosted,bohemian,bogeyman,boar,blurting,blurb,blowup,bloodhound,blissful,birthmark,biotech,bigot,bestest,benefited,belted,belligerent,bell's,beggin,befall,beeswax,beer's,becky's,beatnik,beaming,bazaar,bashful,barricade,banners,bangers,baja,baggoli,badness,awry,awoke,autonomy,automobiles,attica,astoria,assessing,ashram,artsy,artful,aroun,armpits,arming,arithmetic,annihilate,anise,angiogram,andre's,anaesthetic,amorous,ambiguous,ambiance,alligators,afforded,adoration,admittance,administering,adama,aclu,abydos,absorption,zonked,zhivago,zealand,zazu,youngster,yorkin,wrongfully,writin,wrappers,worrywart,woops,wonderfalls,womanly,wickedness,wichita,whoopie,wholesale,wholeheartedly,whimper,which'll,wherein,wheelchairs,what'ya,west's,wellness,welcomes,wavy,warren's,warranted,wankers,waltham,wallop,wading,wade's,wacked,vogue,virginal,vill,vets,vermouth,vermeil,verger,verbs,verbally,ventriss,veneer,vecchio's,vampira,utero,ushers,urgently,untoward,unshakable,unsettled,unruly,unrest,unmanned,unlocks,unified,ungodly,undue,undermined,undergoing,undergo,uncooperative,uncontrollably,unbeatable,twitchy,tunh,tumbler,tubs,truest,troublesome,triumphs,triplicate,tribbey,trent's,transmissions,tortures,torpedoes,torah,tongaree,tommi,tightening,thunderbolt,thunderbird,thorazine,thinly,theta,theres,testifies,terre,teenaged,technological,tearful,taxing,taldor,takashi,tach,symbolizes,symbolism,syllabus,swoops,swingin,swede,sutra,suspending,supplement,sunday's,sunburn,succumbed,subtitled,substituting,subsidiary,subdued,stuttering,stupor,stumps,strummer,strides,strategize,strangulation,stooped,stipulation,stingy,stigma,stewart's,statistic,startup,starlet,stapled,squeaks,squawking,spoilsport,splicing,spiel,spencers,specifications,spawned,spasms,spaniard,sous,softener,sodding,soapbox,snow's,smoldering,smithbauer,slogans,slicker,slasher,skittish,skepticism,simulated,similarity,silvio,signifies,signaling,sifting,sickest,sicilians,shuffling,shrivel,shortstop,sensibility,sender,seminary,selecting,segretti,seeping,securely,scurrying,scrunch,scrote,screwups,schoolteacher,schibetta's,schenkman,sawing,savin,satine,saps,sapiens,salvaging,salmonella,safeguard,sacrilege,rumpus,ruffle,rube,routing,roughing,rotted,roshman's,rondall,road's,ridding,rickshaw,rialto,rhinestone,reversible,revenues,retina,restrooms,resides,reroute,requisite,repress,replicate,repetition,removes,relationship's,regent,regatta,reflective,rednecks,redeeming,rectory,recordings,reasoned,rayed,ravell,raked,rainstorm's,raincheck,raids,raffi,racked,query,quantities,pushin,prototypes,proprietor,promotes,prometheus,promenade,projectile,progeny,profess,prodding,procure,primetime,presuming,preppy,prednisone,predecessor,potted,posttraumatic,poppies,poorhouse,pool's,polaroid,podiatrist,plucky,plowed,pledging,playroom,playhouse,play's,plait,placate,pitchfork,pissant,pinback,picketing,photographing,pharoah,petrak,petal,persecuting,perchance,penny's,pellets,peeved,peerless,payable,pauses,pathways,pathologist,pat's,parchment,papi,pagliacci,owls,overwrought,overwhelmingly,overreaction,overqualified,overheated,outward,outlines,outcasts,otherworldly,originality,organisms,opinionated,oodles,oftentimes,octane,occured,obstinate,observatory,o'er,nutritionist,nutrition,numbness,nubile,notification,notary,nooooooo,nodes,nobodies,nepotism,neighborhoods,neanderthals,musicals,mushu,murphy's,multimedia,mucus,mothering,mothballs,monogrammed,monk's,molesting,misspoke,misspelled,misconstrued,miscellaneous,miscalculated,minimums,mince,mildew,mighta,middleman,metabolic,messengers,mementos,mellowed,meditate,medicare,mayol,maximilian,mauled,massaged,marmalade,mardi,mannie,mandates,mammals,malaysia,makings,major's,maim,lundegaard,lovingly,lout,louisville,loudest,lotto,loosing,loompa,looming,longs,lodging,loathes,littlest,littering,linebacker,lifelike,li'l,legalities,lavery's,laundered,lapdog,lacerations,kopalski,knobs,knitted,kittridge,kidnaps,kerosene,katya,karras,jungles,juke,joes,jockeys,jeremy's,jefe,janeiro,jacqueline's,ithaca,irrigation,iranoff,invoices,invigorating,intestinal,interactive,integration,insolence,insincere,insectopia,inhumane,inhaling,ingrates,infrastructure,infestation,infants,individuality,indianapolis,indeterminate,indefinite,inconsistent,incomprehensible,inaugural,inadequacy,impropriety,importer,imaginations,illuminating,ignited,ignite,iggy,i'da,hysterics,hypodermic,hyperventilate,hypertension,hyperactive,humoring,hotdogs,honeymooning,honed,hoist,hoarding,hitching,hinted,hill's,hiker,hijo,hightail,highlands,hemoglobin,helo,hell'd,heinie,hanoi,hags,gush,guerrillas,growin,grog,grissom's,gregory's,grasped,grandparent,granddaughters,gouged,goblins,gleam,glades,gigantor,get'em,geriatric,geared,gawk,gawd,gatekeeper,gargoyles,gardenias,garcon,garbo,gallows,gabe's,gabby's,gabbing,futon,fulla,frightful,freshener,freedoms,fountains,fortuitous,formulas,forceps,fogged,fodder,foamy,flogging,flaun,flared,fireplaces,firefighters,fins,filtered,feverish,favell,fattest,fattening,fate's,fallow,faculties,fabricated,extraordinaire,expressly,expressive,explorers,evade,evacuating,euclid,ethanol,errant,envied,enchant,enamored,enact,embarking,election's,egocentric,eeny,dussander,dunwitty,dullest,dru's,dropout,dredged,dorsia,dormitory,doot,doornail,dongs,dogged,dodgy,do's,ditty,dishonorable,discriminating,discontinue,dings,dilly,diffuse,diets,dictation,dialysis,deteriorated,delly,delightfully,definitions,decreased,declining,deadliest,daryll,dandruff,cynthia's,cush,cruddy,croquet,crocodiles,cringe,crimp,credo,cranial,crackling,coyotes,courtside,coupling,counteroffer,counterfeiting,corrupting,corrective,copter,copping,conway's,conveyor,contusions,contusion,conspirator,consoling,connoisseur,conjecture,confetti,composure,competitor,compel,commanders,coloured,collector's,colic,coldest,coincide,coddle,cocksuckers,coax,coattails,cloned,cliff's,clerical,claustrophobia,classrooms,clamoring,civics,churn,chugga,chromosomes,christened,chopper's,chirping,chasin,characterized,chapped,chalkboard,centimeter,caymans,catheter,caspian,casings,cartilage,carlton's,card's,caprica,capelli,cannolis,cannoli,canals,campaigns,camogli,camembert,butchers,butchered,busboys,bureaucrats,bungalow,buildup,budweiser,buckled,bubbe,brownstone,bravely,brackley,bouquets,botox,boozing,boosters,bodhi,blunders,blunder,blockage,blended,blackberry,bitch's,birthplace,biocyte,biking,bike's,betrays,bestowed,bested,beryllium,beheading,beginner's,beggar,begbie,beamed,bayou,bastille,bask,barstool,barricades,baron's,barbecues,barbecued,barb's,bandwagon,bandits,ballots,ballads,backfiring,bacarra,avoidance,avenged,autopsies,austrian,aunties,attache,atrium,associating,artichoke,arrowhead,arrivals,arose,armory,appendage,apostrophe,apostles,apathy,antacid,ansel,anon,annul,annihilation,andrew's,anderson's,anastasia's,amuses,amped,amicable,amendments,amberg,alluring,allotted,alfalfa,alcoholism,airs,ailing,affinity,adversaries,admirers,adlai,adjective,acupuncture,acorn,abnormality,aaaahhhh,zooming,zippity,zipping,zeroed,yuletide,yoyodyne,yengeese,yeahhh,xena,wrinkly,wracked,wording,withered,winks,windmills,widow's,whopping,wholly,wendle,weigart,weekend's,waterworks,waterford,waterbed,watchful,wantin,wally's,wail,wagging,waal,waaah,vying,voter,ville,vertebrae,versatile,ventures,ventricle,varnish,vacuumed,uugh,utilities,uptake,updating,unreachable,unprovoked,unmistakable,unky,unfriendly,unfolding,undesirable,undertake,underpaid,uncuff,unchanged,unappealing,unabomber,ufos,tyres,typhoid,tweek's,tuxedos,tushie,turret,turds,tumnus,tude,truman's,troubadour,tropic,trinium,treaters,treads,transpired,transient,transgression,tournaments,tought,touchdowns,totem,tolstoy,thready,thins,thinners,thas,terrible's,television's,techs,teary,tattaglia,tassels,tarzana,tape's,tanking,tallahassee,tablecloths,synonymous,synchronize,symptomatic,symmetrical,sycophant,swimmingly,sweatshop,surrounds,surfboard,superpowers,sunroom,sunflower,sunblock,sugarplum,sudan,subsidies,stupidly,strumpet,streetcar,strategically,strapless,straits,stooping,stools,stifler,stems,stealthy,stalks,stairmaster,staffer,sshhh,squatting,squatters,spores,spelt,spectacularly,spaniel,soulful,sorbet,socked,society's,sociable,snubbed,snub,snorting,sniffles,snazzy,snakebite,smuggler,smorgasbord,smooching,slurping,sludge,slouch,slingshot,slicer,slaved,skimmed,skier,sisterhood,silliest,sideline,sidarthur,shrink's,shipwreck,shimmy,sheraton,shebang,sharpening,shanghaied,shakers,sendoff,scurvy,scoliosis,scaredy,scaled,scagnetti,saxophone,sawchuk,saviour,saugus,saturated,sasquatch,sandbag,saltines,s'pose,royalties,routinely,roundabout,roston,rostle,riveting,ristle,righ,rifling,revulsion,reverently,retrograde,restriction,restful,resolving,resents,rescinded,reptilian,repository,reorganize,rentals,rent's,renovating,renal,remedies,reiterate,reinvent,reinmar,reibers,reechard,recuse,recorders,record's,reconciling,recognizance,recognised,reclaiming,recitation,recieved,rebate,reacquainted,rations,rascals,raptors,railly,quintuplets,quahog,pygmies,puzzling,punctuality,psychoanalysis,psalm,prosthetic,proposes,proms,proliferation,prohibition,probie,printers,preys,pretext,preserver,preppie,prag,practise,postmaster,portrayed,pollen,polled,poachers,plummet,plumbers,pled,plannin,pitying,pitfalls,piqued,pinecrest,pinches,pillage,pigheaded,pied,physique,pessimistic,persecute,perjure,perch,percentile,pentothal,pensky,penises,peking,peini,peacetime,pazzi,pastels,partisan,parlour,parkway,parallels,paperweight,pamper,palsy,palaces,pained,overwhelm,overview,overalls,ovarian,outrank,outpouring,outhouse,outage,ouija,orbital,old's,offset,offer's,occupying,obstructed,obsessions,objectives,obeying,obese,o'riley,o'neal,o'higgins,nylon,notoriously,nosebleeds,norman's,norad,noooooooo,nononono,nonchalant,nominal,nome,nitrous,nippy,neurosis,nekhorvich,necronomicon,nativity,naquada,nano,nani,n'est,mystik,mystified,mums,mumps,multinational,muddle,mothership,moped,monumentally,monogamous,mondesi,molded,mixes,misogynistic,misinterpreting,miranda's,mindlock,mimic,midtown,microphones,mending,megaphone,meeny,medicating,meanings,meanie,masseur,maru,marshal's,markstrom,marklars,mariachi,margueritas,manifesting,maintains,mail's,maharajah,lurk,lulu's,lukewarm,loveliest,loveable,lordship,looting,lizardo,liquored,lipped,lingers,limey,limestone,lieutenants,lemkin,leisurely,laureate,lathe,latched,lars,lapping,ladle,kuala,krevlorneswath,kosygin,khakis,kenaru,keats,kath,kaitlan,justin's,julliard,juliet's,journeys,jollies,jiff,jaundice,jargon,jackals,jabot's,invoked,invisibility,interacting,instituted,insipid,innovative,inflamed,infinitely,inferiority,inexperience,indirectly,indications,incompatible,incinerated,incinerate,incidental,incendiary,incan,inbred,implicitly,implicating,impersonator,impacted,ida's,ichiro,iago,hypo,hurricanes,hunks,host's,hospice,horsing,hooded,honey's,homestead,hippopotamus,hindus,hiked,hetson,hetero,hessian,henslowe,hendler,hellstrom,hecate,headstone,hayloft,hater,hast,harold's,harbucks,handguns,hallucinate,halliwell's,haldol,hailing,haggling,hadj,gynaecologist,gumball,gulag,guilder,guaranteeing,groundskeeper,ground's,grindstone,grimoir,grievance,griddle,gribbit,greystone,graceland,gooders,goeth,glossy,glam,giddyup,gentlemanly,gels,gelatin,gazelle,gawking,gaulle,gate's,ganged,fused,fukes,fromby,frenchmen,franny,foursome,forsley,foreman's,forbids,footwork,foothold,fonz,fois,foie,floater,flinging,flicking,fittest,fistfight,fireballs,filtration,fillings,fiddling,festivals,fertilization,fennyman,felonious,felonies,feces,favoritism,fatten,fanfare,fanatics,faceman,extensions,executions,executing,excusing,excepted,examiner's,ex's,evaluating,eugh,erroneous,enzyme,envoy,entwined,entrances,ensconced,enrollment,england's,enemy's,emit,emerges,embankment,em's,ellison's,electrons,eladio,ehrlichman,easterland,dylan's,dwellers,dueling,dubbed,dribbling,drape,doze,downtrodden,doused,dosed,dorleen,dopamine,domesticated,dokie,doggone,disturbances,distort,displeased,disown,dismount,disinherited,disarmed,disapproves,disabilities,diperna,dioxide,dined,diligent,dicaprio,diameter,dialect,detonated,destitute,designate,depress,demolish,demographics,degraded,deficient,decoded,debatable,dealey,darsh,dapper,damsels,damning,daisy's,dad'll,d'oeuvre,cutter's,curlers,curie,cubed,cryo,critically,crikey,crepes,crackhead,countrymen,count's,correlation,cornfield,coppers,copilot,copier,coordinating,cooing,converge,contributor,conspiracies,consolidated,consigliere,consecrated,configuration,conducts,condoning,condemnation,communities,commoner,commies,commented,comical,combust,comas,colds,clod,clique,clay's,clawed,clamped,cici,christianity,choosy,chomping,chimps,chigorin,chianti,cheval,chet's,cheep,checkups,check's,cheaters,chase's,charted,celibate,cautiously,cautionary,castell,carpentry,caroling,carjacking,caritas,caregiver,cardiology,carb,capturing,canteen,candlesticks,candies,candidacy,canasta,calendars,cain't,caboose,buster's,burro,burnin,buon,bunking,bumming,bullwinkle,budgets,brummel,brooms,broadcasts,britt's,brews,breech,breathin,braslow,bracing,bouts,botulism,bosnia,boorish,bluenote,bloodless,blayne,blatantly,blankie,birdy,bene,beetles,bedbugs,becuase,becks,bearers,bazooka,baywatch,bavarian,baseman,bartender's,barrister,barmaid,barges,bared,baracus,banal,bambino,baltic,baku,bakes,badminton,bacon's,backpacks,authorizing,aurelius,attentions,atrocious,ativan,athame,asunder,astound,assuring,aspirins,asphyxiation,ashtrays,aryans,artistry,arnon,aren,approximate,apprehension,appraisal,applauding,anya's,anvil,antiquing,antidepressants,annoyingly,amputate,altruistic,alotta,allegation,alienation,algerian,algae,alerting,airport's,aided,agricultural,afterthought,affront,affirm,adapted,actuality,acoustics,acoustic,accumulate,accountability,abysmal,absentee,zimm,yves,yoohoo,ymca,yeller,yakushova,wuzzy,wriggle,worrier,workmen,woogyman,womanizer,windpipe,windex,windbag,willy's,willin,widening,whisking,whimsy,wendall,weeny,weensy,weasels,watery,watcha,wasteful,waski,washcloth,wartime,waaay,vowel,vouched,volkswagen,viznick,visuals,visitor's,veteran's,ventriloquist,venomous,vendors,vendettas,veils,vehicular,vayhue,vary,varies,van's,vamanos,vadimus,uuhh,upstage,uppity,upheaval,unsaid,unlocking,universally,unintentionally,undisputed,undetected,undergraduate,undergone,undecided,uncaring,unbearably,twos,tween,tuscan,turkey's,tumor's,tryout,trotting,tropics,trini,trimmings,trickier,tree's,treatin,treadstone,trashcan,transports,transistor,transcendent,tramps,toxicity,townsfolk,torturous,torrid,toothpicks,tombs,tolerable,toenail,tireless,tiptoeing,tins,tinkerbell,tink,timmay,tillinghouse,tidying,tibia,thumbing,thrusters,thrashing,thompson's,these'll,testicular,terminology,teriyaki,tenors,tenacity,tellers,telemetry,teas,tea's,tarragon,taliban,switchblade,swicker,swells,sweatshirts,swatches,swatch,swapped,suzanne's,surging,supremely,suntan,sump'n,suga,succumb,subsidize,subordinate,stumbles,stuffs,stronghold,stoppin,stipulate,stewie's,stenographer,steamroll,stds,stately,stasis,stagger,squandered,splint,splendidly,splatter,splashy,splashing,spectra's,specter,sorry's,sorcerers,soot,somewheres,somber,solvent,soldier's,soir,snuggled,snowmobile,snowball's,sniffed,snake's,snags,smugglers,smudged,smirking,smearing,slings,sleet,sleepovers,sleek,slackers,skirmish,siree,siphoning,singed,sincerest,signifying,sidney's,sickened,shuffled,shriveled,shorthanded,shittin,shish,shipwrecked,shins,shingle,sheetrock,shawshank,shamu,sha're,servitude,sequins,seinfeld's,seat's,seascape,seam,sculptor,scripture,scrapings,scoured,scoreboard,scorching,sciences,sara's,sandpaper,salvaged,saluting,salud,salamander,rugrats,ruffles,ruffled,rudolph's,router,roughnecks,rougher,rosslyn,rosses,rosco's,roost,roomy,romping,romeo's,robs,roadie,ride's,riddler,rianna's,revolutionize,revisions,reuniting,retake,retaining,restitution,restaurant's,resorts,reputed,reprimanded,replies,renovate,remnants,refute,refrigerated,reforms,reeled,reefs,reed's,redundancies,rectangle,rectal,recklessly,receding,reassignment,rearing,reapers,realms,readout,ration,raring,ramblings,racetrack,raccoons,quoi,quell,quarantined,quaker,pursuant,purr,purging,punters,pulpit,publishers,publications,psychologists,psychically,provinces,proust,protocols,prose,prophets,project's,priesthood,prevailed,premarital,pregnancies,predisposed,precautionary,poppin,pollute,pollo,podunk,plums,plaything,plateau,pixilated,pivot,pitting,piranhas,pieced,piddles,pickled,picker,photogenic,phosphorous,phases,pffft,petey's,pests,pestilence,pessimist,pesos,peruvian,perspiration,perps,penticoff,pedals,payload,passageways,pardons,paprika,paperboy,panics,pancamo,pam's,paleontologist,painting's,pacifist,ozzie,overwhelms,overstating,overseeing,overpaid,overlap,overflow,overdid,outspoken,outlive,outlaws,orthodontist,orin,orgies,oreos,ordover,ordinates,ooooooh,oooohhh,omelettes,officiate,obtuse,obits,oakwood,nymph,nutritional,nuremberg,nozzle,novocaine,notable,noooooooooo,node,nipping,nilly,nikko,nightstick,nicaragua,neurology,nelson's,negate,neatness,natured,narrowly,narcotic,narcissism,napoleon's,nana's,namun,nakatomi,murky,muchacho,mouthwash,motzah,motherfucker's,mortar,morsel,morrison's,morph,morlocks,moreover,mooch,monoxide,moloch,molest,molding,mohra,modus,modicum,mockolate,mobility,missionaries,misdemeanors,miscalculation,minorities,middies,metric,mermaids,meringue,mercilessly,merchandising,ment,meditating,me'n,mayakovsky,maximillian,martinique,marlee,markovski,marissa's,marginal,mansions,manitoba,maniacal,maneuvered,mags,magnificence,maddening,lyrical,lutze,lunged,lovelies,lou's,lorry,loosening,lookee,liver's,liva,littered,lilac,lightened,lighted,licensing,lexington,lettering,legality,launches,larvae,laredo,landings,lancelot's,laker,ladyship's,laces,kurzon,kurtzweil,kobo,knowledgeable,kinship,kind've,kimono,kenji,kembu,keanu,kazuo,kayaking,juniors,jonesing,joad,jilted,jiggling,jewelers,jewbilee,jeffrey's,jamey's,jacqnoud,jacksons,jabs,ivories,isnt,irritation,iraqis,intellectuals,insurmountable,instances,installments,innocuous,innkeeper,inna,influencing,infantery,indulged,indescribable,incorrectly,incoherent,inactive,inaccurate,improperly,impervious,impertinent,imperfections,imhotep,ideology,identifies,i'il,hymns,huts,hurdles,hunnert,humpty,huffy,hourly,horsies,horseradish,hooo,honours,honduras,hollowed,hogwash,hockley,hissing,hiromitsu,hierarchy,hidin,hereafter,helpmann,haughty,happenings,hankie,handsomely,halliwells,haklar,haise,gunsights,gunn's,grossly,grossed,grope,grocer,grits,gripping,greenpeace,granddad's,grabby,glorificus,gizzard,gilardi,gibarian,geminon,gasses,garnish,galloping,galactic,gairwyn,gail's,futterman,futility,fumigated,fruitless,friendless,freon,fraternities,franc,fractions,foxes,foregone,forego,foliage,flux,floored,flighty,fleshy,flapjacks,fizzled,fittings,fisherman's,finalist,ficus,festering,ferragamo's,federation,fatalities,farbman,familial,famed,factual,fabricate,eyghon,extricate,exchanges,exalted,evolving,eventful,esophagus,eruption,envision,entre,enterprising,entail,ensuring,enrolling,endor,emphatically,eminent,embarrasses,electroshock,electronically,electrodes,efficiently,edinburgh,ecstacy,ecological,easel,dwarves,duffle,drumsticks,drake's,downstream,downed,dollface,divas,distortion,dissent,dissection,dissected,disruptive,disposing,disparaging,disorientation,disintegrated,discounts,disarming,dictated,devoting,deviation,detective's,dessaline,deprecating,deplorable,delve,deity,degenerative,deficiencies,deduct,decomposed,deceased's,debbie's,deathly,dearie,daunting,dankova,czechoslovakia,cyclotron,cyberspace,cutbacks,cusp,culpable,cuddled,crypto,crumpets,cruises,cruisers,cruelly,crowns,crouching,cristo,crip,criminology,cranium,cramming,cowering,couric,counties,cosy,corky's,cordesh,conversational,conservatory,conklin's,conducive,conclusively,competitions,compatibility,coeur,clung,cloud's,clotting,cleanest,classify,clambake,civilizations,cited,cipher,cinematic,chlorine,chipping,china's,chimpanzee,chests,checkpoints,cheapen,chainsaws,censure,censorship,cemeteries,celebrates,ceej,cavities,catapult,cassettes,cartridge,caravaggio,carats,captivating,cancers,campuses,campbell's,calrissian,calibre,calcutta,calamity,butt's,butlers,busybody,bussing,bureau's,bunion,bundy's,bulimic,bulgaria,budging,brung,browbeat,brokerage,brokenhearted,brecher,breakdowns,braun's,bracebridge,boyhood,botanical,bonuses,boning,blowhard,bloc,blisters,blackboard,blackbird,births,birdies,bigotry,biggy,bibliography,bialy,bhamra,bethlehem,bet's,bended,belgrade,begat,bayonet,bawl,battering,baste,basquiat,barrymore,barrington's,barricaded,barometer,balsom's,balled,ballast,baited,badenweiler,backhand,aztec,axle,auschwitz,astrophysics,ascenscion,argumentative,arguably,arby's,arboretum,aramaic,appendicitis,apparition,aphrodite,anxiously,antagonistic,anomalies,anne's,angora,anecdotes,anand,anacott,amniotic,amenities,ambience,alonna,aleck,albert's,akashic,airing,ageless,afro,affiliates,advertisers,adobe,adjustable,acrobat,accommodation,accelerating,absorbing,abouts,abortions,abnormalities,aawwww,aaaaarrrrrrggghhh,zuko's,zoloft,zendi,zamboni,yuppies,yodel,y'hear,wyck,wrangle,wounding,worshippers,worker's,worf,wombosi,wittle,withstanding,wisecracks,williamsburg,wilder's,wiggly,wiggling,wierd,whittlesley,whipper,whattya,whatsamatter,whatchamacallit,whassup,whad'ya,weighted,weakling,waxy,waverly,wasps,warhol,warfarin,waponis,wampum,walled,wadn't,waco,vorash,vogler's,vizzini,visas,virtucon,viridiana,veve,vetoed,vertically,veracity,ventricular,ventilated,varicose,varcon,vandalized,vampire's,vamos,vamoose,val's,vaccinated,vacationing,usted,urinal,uppers,upkeep,unwittingly,unsigned,unsealed,unplanned,unhinged,unhand,unfathomable,unequivocally,unearthed,unbreakable,unanimously,unadvisedly,udall,tynacorp,twisty,tuxes,tussle,turati,tunic,tubing,tsavo,trussed,troublemakers,trollop,trip's,trinket,trilogy,tremors,trekkie,transsexual,transitional,transfusions,tractors,toothbrushes,toned,toke,toddlers,titan's,tita,tinted,timon,timeslot,tightened,thundering,thorpey,thoracic,this'd,thespian,therapist's,theorem,thaddius,texan,tenuous,tenths,tenement,telethon,teleprompter,technicolor,teaspoon,teammate,teacup,taunted,tattle,tardiness,taraka,tappy,tapioca,tapeworm,tanith,tandem,talons,talcum,tais,tacks,synchronized,swivel,swig,swaying,swann's,suppression,supplements,superpower,summed,summarize,sumbitch,sultry,sulfur,sues,subversive,suburbia,substantive,styrofoam,stylings,struts,strolls,strobe,streaks,strategist,stockpile,stewardesses,sterilized,sterilize,stealin,starred,stakeouts,stad,squawk,squalor,squabble,sprinkled,sportsmanship,spokes,spiritus,spectators,specialties,sparklers,spareribs,sowing,sororities,sorbonne,sonovabitch,solicit,softy,softness,softening,socialite,snuggling,snatchers,snarling,snarky,snacking,smythe's,smears,slumped,slowest,slithering,sleepers,sleazebag,slayed,slaughtering,skynet,skidded,skated,sivapathasundaram,sitter's,sitcoms,sissies,sinai,silliness,silences,sidecar,sicced,siam,shylock,shtick,shrugged,shriek,shredder,shoves,should'a,shorten,shortcake,shockingly,shirking,shelly's,shedding,shaves,shatner,sharpener,shapely,shafted,sexless,sequencing,septum,semitic,selflessness,sega,sectors,seabea,scuff,screwball,screened,scoping,scooch,scolding,scholarly,schnitzel,schemed,scalper,sayings,saws,sashimi,santy,sankara,sanest,sanatorium,sampled,samoan,salzburg,saltwater,salma,salesperson,sakulos,safehouse,sabers,rwanda,ruth's,runes,rumblings,rumbling,ruijven,roxie's,round's,ringers,rigorous,righto,rhinestones,reviving,retrieving,resorted,reneging,remodelling,reliance,relentlessly,relegated,relativity,reinforced,reigning,regurgitate,regulated,refills,referencing,reeking,reduces,recreated,reclusive,recklessness,recanted,ranges,ranchers,rallied,rafer,racy,quintet,quaking,quacks,pulses,provision,prophesied,propensity,pronunciation,programmer,profusely,procedural,problema,principals,prided,prerequisite,preferences,preceded,preached,prays,postmark,popsicles,poodles,pollyanna,policing,policeman's,polecat,polaroids,polarity,pokes,poignant,poconos,pocketful,plunging,plugging,pleeease,pleaser,platters,pitied,pinetti,piercings,phyllis's,phooey,phonies,pestering,periscope,perennial,perceptions,pentagram,pelts,patronized,parliamentary,paramour,paralyze,paraguay,parachutes,pancreatic,pales,paella,paducci,oxymoron,owatta,overpass,overgrown,overdone,overcrowded,overcompensating,overcoming,ostracized,orphaned,organise,organisation,ordinate,orbiting,optometrist,oprah's,operandi,oncology,on's,omoc,omens,okayed,oedipal,occupants,obscured,oboe,nuys,nuttier,nuptial,nunheim,noxious,nourish,notepad,notation,nordic,nitroglycerin,niki's,nightmare's,nightlife,nibblet,neuroses,neighbour's,navy's,nationally,nassau,nanosecond,nabbit,mythic,murdock's,munchkins,multiplied,multimillion,mulroney,mulch,mucous,muchas,moxie,mouth's,mountaintop,mounds,morlin,mongorians,moneymaker,moneybags,monde,mom'll,molto,mixup,mitchell's,misgivings,misery's,minerals,mindset,milo's,michalchuk,mesquite,mesmerized,merman,mensa,megan's,media's,meaty,mbwun,materialize,materialistic,mastery,masterminded,mastercard,mario's,marginally,mapuhe,manuscripts,manny's,malvern,malfunctioning,mahatma,mahal,magnify,macnamara,macinerney,machinations,macarena,macadamia,lysol,luxembourg,lurks,lumpur,luminous,lube,lovelorn,lopsided,locator,lobbying,litback,litany,linea,limousines,limo's,limes,lighters,liechtenstein,liebkind,lids,libya,levity,levelheaded,letterhead,lester's,lesabre,leron,lepers,legions,lefts,leftenant,learner's,laziness,layaway,laughlan,lascivious,laryngitis,laptops,lapsed,laos,landok,landfill,laminated,laden,ladders,labelled,kyoto,kurten,kobol,koala,knucklehead,knowed,knotted,kit's,kinsa,kiln,kickboxing,karnovsky,karat,kacl's,judiciary,judaism,journalistic,jolla,joked,jimson,jettison,jet's,jeric,jeeves,jay's,jawed,jankis,janitors,janice's,jango,jamaican,jalopy,jailbreak,jackers,jackasses,j'ai,ivig,invalidate,intoxicated,interstellar,internationally,intercepting,intercede,integrate,instructors,insinuations,insignia,inn's,inflicting,infiltrated,infertile,ineffective,indies,indie,impetuous,imperialist,impaled,immerse,immaterial,imbeciles,imam,imagines,idyllic,idolized,icebox,i'd've,hypochondriac,hyphen,hydraulic,hurtling,hurried,hunchback,hums,humid,hullo,hugger,hubby's,howard's,hostel,horsting,horned,hoooo,homies,homeboys,hollywood's,hollandaise,hoity,hijinks,heya,hesitates,herrero,herndorff,hemp,helplessly,heeyy,heathen,hearin,headband,harv,harrassment,harpies,harmonious,harcourt,harbors,hannah's,hamstring,halstrom,hahahahaha,hackett's,hacer,gunmen,guff,grumbling,grimlocks,grift,greets,grandmothers,grander,granddaughter's,gran's,grafts,governing,gordievsky,gondorff,godorsky,goddesses,glscripts,gillman's,geyser,gettysburg,geological,gentlemen's,genome,gauntlet,gaudy,gastric,gardeners,gardener's,gandolf,gale's,gainful,fuses,fukienese,fucker's,frizzy,freshness,freshening,freb,fraught,frantically,fran's,foxbooks,fortieth,forked,forfeited,forbidding,footed,foibles,flunkies,fleur,fleece,flatbed,flagship,fisted,firefight,fingerpaint,fined,filibuster,fiancee's,fhloston,ferrets,fenceline,femur,fellow's,fatigues,farmhouse,fanucci,fantastically,familiars,falafel,fabulously,eyesore,extracting,extermination,expedient,expectancy,exiles,executor,excluding,ewwww,eviscerated,eventual,evac,eucalyptus,ethnicity,erogenous,equestrian,equator,epidural,enrich,endeavors,enchante,embroidered,embarassed,embarass,embalming,emails,elude,elspeth,electrocute,electrified,eigth,eheh,eggshell,eeyy,echinacea,eases,earpiece,earlobe,dwarfs,dumpsters,dumbshit,dumbasses,duloc,duisberg,drummed,drinkers,dressy,drainage,dracula's,dorma,dolittle,doily,divvy,diverting,ditz,dissuade,disrespecting,displacement,displace,disorganized,dismantled,disgustingly,discriminate,discord,disapproving,dinero,dimwit,diligence,digitally,didja,diddy,dickless,diced,devouring,devlin's,detach,destructing,desperado,desolate,designation,derek's,deposed,dependency,dentist's,demonstrates,demerits,delirium,degrade,deevak,deemesa,deductions,deduce,debriefed,deadbeats,dazs,dateline,darndest,damnable,dalliance,daiquiri,d'agosta,cuvee's,cussing,curate,cryss,cripes,cretins,creature's,crapper,crackerjack,cower,coveting,couriers,countermission,cotswolds,cornholio,copa,convinces,convertibles,conversationalist,contributes,conspirators,consorting,consoled,conservation,consarn,confronts,conformity,confides,confidentially,confederacy,concise,competence,commited,commissioners,commiserate,commencing,comme,commandos,comforter,comeuppance,combative,comanches,colosseum,colling,collaboration,coli,coexist,coaxing,cliffside,clayton's,clauses,cia's,chuy,chutes,chucked,christian's,chokes,chinaman,childlike,childhoods,chickening,chicano,chenowith,chassis,charmingly,changin,championships,chameleon,ceos,catsup,carvings,carlotta's,captioning,capsize,cappucino,capiche,cannonball,cannibal,candlewell,cams,call's,calculation,cakewalk,cagey,caesar's,caddie,buxley,bumbling,bulky,bulgarian,bugle,buggered,brussel,brunettes,brumby,brotha,bros,bronck,brisket,bridegroom,breathing's,breakout,braveheart,braided,bowled,bowed,bovary,bordering,bookkeeper,bluster,bluh,blue's,blot,bloodline,blissfully,blarney,binds,billionaires,billiard,bide,bicycles,bicker,berrisford,bereft,berating,berate,bendy,benches,bellevue,belive,believers,belated,beikoku,beens,bedspread,bed's,bear's,bawdy,barrett's,barreling,baptize,banya,balthazar,balmoral,bakshi,bails,badgered,backstreet,backdrop,awkwardly,avoids,avocado,auras,attuned,attends,atheists,astaire,assuredly,art's,arrivederci,armaments,arises,argyle,argument's,argentine,appetit,appendectomy,appealed,apologetic,antihistamine,antigua,anesthesiologist,amulets,algonquin,alexander's,ales,albie,alarmist,aiight,agility,aforementioned,adstream,adolescents,admirably,adjectives,addison's,activists,acquaint,acids,abound,abominable,abolish,abode,abfc,aaaaaaah,zorg,zoltan,zoe's,zekes,zatunica,yama,wussy,wrcw,worded,wooed,woodrell,wiretap,windowsill,windjammer,windfall,whitey's,whitaker's,whisker,whims,whatiya,whadya,westerns,welded,weirdly,weenies,webster's,waunt,washout,wanto,waning,vitality,vineyards,victimless,vicki's,verdad,veranda,vegan,veer,vandaley,vancouver,vancomycin,valise,validated,vaguest,usefulness,upshot,uprising,upgrading,unzip,unwashed,untrained,unsuitable,unstuck,unprincipled,unmentionables,unjustly,unit's,unfolds,unemployable,uneducated,unduly,undercut,uncovering,unconsciousness,unconsciously,unbeknownst,unaffected,ubiquitous,tyndareus,tutors,turncoat,turlock,tulle,tuesday's,tryouts,truth's,trouper,triplette,trepkos,tremor,treeger,treatment's,traveller,traveler's,trapeze,traipse,tradeoff,trach,torin,tommorow,tollan,toity,timpani,tilted,thumbprint,throat's,this's,theater's,thankless,terrestrial,tenney's,tell'em,telepathy,telemarketing,telekinesis,teevee,teeming,tc's,tarred,tankers,tambourine,talentless,taki,takagi,swooped,switcheroo,swirly,sweatpants,surpassed,surgeon's,supermarkets,sunstroke,suitors,suggestive,sugarcoat,succession,subways,subterfuge,subservient,submitting,subletting,stunningly,student's,strongbox,striptease,stravanavitch,stradling,stoolie,stodgy,stocky,stimuli,stigmata,stifle,stealer,statewide,stark's,stardom,stalemate,staggered,squeezes,squatter,squarely,sprouted,spool,spirit's,spindly,spellman's,speedos,specify,specializing,spacey,soups,soundly,soulmates,somethin's,somebody'll,soliciting,solenoid,sobering,snowflakes,snowballs,snores,slung,slimming,slender,skyscrapers,skulk,skivvies,skillful,skewered,skewer,skaters,sizing,sistine,sidebar,sickos,shushing,shunt,shugga,shone,shol'va,shiv,shifter,sharply,sharpened,shareholder,shapeshifter,shadowing,shadoe,serviced,selwyn,selectman,sefelt,seared,seamen,scrounging,scribbling,scotty's,scooping,scintillating,schmoozing,schenectady,scene's,scattering,scampi,scallops,sat's,sapphires,sans,sanitarium,sanded,sanction,safes,sacrificial,rudely,roust,rosebush,rosasharn,rondell,roadhouse,riveted,rile,ricochet,rhinoceros,rewrote,reverence,revamp,retaliatory,rescues,reprimand,reportedly,replicators,replaceable,repeal,reopening,renown,remo's,remedied,rembrandt,relinquishing,relieving,rejoicing,reincarnated,reimbursed,refinement,referral,reevaluate,redundancy,redid,redefine,recreating,reconnected,recession,rebelling,reassign,rearview,reappeared,readily,rayne,ravings,ravage,ratso,rambunctious,rallying,radiologist,quiver,quiero,queef,quark,qualms,pyrotechnics,pyro,puritan,punky,pulsating,publisher's,psychosomatic,provisional,proverb,protested,proprietary,promiscuous,profanity,prisoner's,prioritize,preying,predisposition,precocious,precludes,preceding,prattling,prankster,povich,potting,postpartum,portray,porter's,porridge,polluting,pogo,plowing,plating,plankton,pistachio,pissin,pinecone,pickpocket,physicists,physicals,pesticides,peruse,pertains,personified,personalize,permitting,perjured,perished,pericles,perfecting,percentages,pepys,pepperdine,pembry,peering,peels,pedophile,patties,pathogen,passkey,parrots,paratroopers,paratrooper,paraphernalia,paralyzing,panned,pandering,paltry,palpable,painkiller,pagers,pachyderm,paced,overtaken,overstay,overestimated,overbite,outwit,outskirts,outgrow,outbid,origins,ordnance,ooze,ooops,oomph,oohhh,omni,oldie,olas,oddball,observers,obscurity,obliterate,oblique,objectionable,objected,oars,o'keefe,nygma,nyet,nouveau,notting,nothin's,noches,nnno,nitty,nighters,nigger's,niche,newsstands,newfoundland,newborns,neurosurgery,networking,nellie's,nein,neighboring,negligible,necron,nauseated,nastiest,nasedo's,narrowing,narrator,narcolepsy,napa,nala,nairobi,mutilate,muscled,murmur,mulva,multitude,multiplex,mulling,mules,mukada,muffled,mueller's,motorized,motif,mortgages,morgues,moonbeams,monogamy,mondays,mollusk,molester,molestation,molars,modifications,modeled,moans,misuse,misprint,mismatched,mirth,minnow,mindful,mimosas,millander,mikhail,mescaline,mercutio,menstrual,menage,mellowing,medicaid,mediator,medevac,meddlesome,mcgarry's,matey,massively,massacres,marky,many's,manifests,manifested,manicures,malevolent,malaysian,majoring,madmen,mache,macarthur's,macaroons,lydell,lycra,lunchroom,lunching,lozenges,lorenzo's,looped,look's,lolly,lofty,lobbyist,litigious,liquidate,linoleum,lingk,lincoln's,limitless,limitation,limber,lilacs,ligature,liftoff,lifeboats,lemmiwinks,leggo,learnin,lazarre,lawyered,landmarks,lament,lambchop,lactose,kringle,knocker,knelt,kirk's,kins,kiev,keynote,kenyon's,kenosha,kemosabe,kazi,kayak,kaon,kama,jussy,junky,joyce's,journey's,jordy,jo's,jimmies,jetson,jeriko,jean's,janet's,jakovasaur,jailed,jace,issacs,isotopes,isabela,irresponsibility,ironed,intravenous,intoxication,intermittent,insufficient,insinuated,inhibitors,inherits,inherently,ingest,ingenue,informs,influenza,inflexible,inflame,inevitability,inefficient,inedible,inducement,indignant,indictments,indentured,indefensible,inconsistencies,incomparable,incommunicado,in's,improvising,impounded,illogical,ignoramus,igneous,idlewild,hydrochloric,hydrate,hungover,humorless,humiliations,humanoid,huhh,hugest,hudson's,hoverdrone,hovel,honor's,hoagie,hmmph,hitters,hitchhike,hit's,hindenburg,hibernating,hermione,herds,henchman,helloooo,heirlooms,heaviest,heartsick,headshot,headdress,hatches,hastily,hartsfield's,harrison's,harrisburg,harebrained,hardships,hapless,hanen,handsomer,hallows,habitual,habeas,guten,gus's,gummy,guiltier,guidebook,gstaad,grunts,gruff,griss,grieved,grids,grey's,greenville,grata,granny's,gorignak,goosed,goofed,goat's,gnarly,glowed,glitz,glimpses,glancing,gilmores,gilligan's,gianelli,geraniums,georgie's,genitalia,gaydar,gart,garroway,gardenia,gangbusters,gamblers,gamble's,galls,fuddy,frumpy,frowning,frothy,fro'tak,friars,frere,freddy's,fragrances,founders,forgettin,footsie,follicles,foes,flowery,flophouse,floor's,floatin,flirts,flings,flatfoot,firefighter,fingerprinting,fingerprinted,fingering,finald,film's,fillet,file's,fianc,femoral,fellini,federated,federales,faze,fawkes,fatally,fascists,fascinates,farfel,familiarity,fambly,falsified,fait,fabricating,fables,extremist,exterminators,extensively,expectant,excusez,excrement,excercises,excavation,examinations,evian,evah,etins,esther's,esque,esophageal,equivalency,equate,equalizer,environmentally,entrees,enquire,enough's,engine's,endorsed,endearment,emulate,empathetic,embodies,emailed,eggroll,edna's,economist,ecology,eased,earmuffs,eared,dyslexic,duper,dupe,dungeons,duncan's,duesouth,drunker,drummers,druggie,dreadfully,dramatics,dragnet,dragline,dowry,downplay,downers,doritos,dominatrix,doers,docket,docile,diversify,distracts,disruption,disloyalty,disinterested,disciple,discharging,disagreeable,dirtier,diplomats,dinghy,diner's,dimwitted,dimoxinil,dimmy,dietary,didi,diatribe,dialects,diagrams,diagnostics,devonshire,devising,deviate,detriment,desertion,derp,derm,dept,depressants,depravity,dependence,denounced,deniability,demolished,delinquents,defiled,defends,defamation,deepcore,deductive,decrease,declares,declarations,decimated,decimate,deb's,deadbolt,dauthuille,dastardly,darla's,dans,daiquiris,daggers,dachau,d'ah,cymbals,customized,curved,curiouser,curdled,cupid's,cults,cucamonga,cruller,cruces,crow's,crosswalk,crossover,crinkle,crescendo,cremate,creeper,craftsman,cox's,counteract,counseled,couches,coronet,cornea,cornbread,corday,copernicus,conveyed,contrition,contracting,contested,contemptible,consultants,constructing,constipated,conqueror,connor's,conjoined,congenital,confounded,condescend,concubine,concoct,conch,concerto,conceded,compounded,compensating,comparisons,commoners,committment,commencement,commandeered,comely,coined,cognitive,codex,coddled,cockfight,cluttered,clunky,clownfish,cloaked,cliches,clenched,cleft,cleanin,cleaner's,civilised,circumcised,cimmeria,cilantro,chutzpah,chutney,chucking,chucker,chronicles,chiseled,chicka,chicago's,chattering,charting,characteristic,chaise,chair's,cervix,cereals,cayenne,carrey,carpal,carnations,caricature,cappuccinos,candy's,candied,cancer's,cameo,calluses,calisthenics,cadre,buzzsaw,bushy,burners,bundled,bum's,budington,buchanans,brock's,britons,brimming,breeders,breakaway,braids,bradley's,boycotting,bouncers,botticelli,botherin,boosting,bookkeeping,booga,bogyman,bogged,bluepoint's,bloodthirsty,blintzes,blanky,blak,biosphere,binturong,billable,bigboote,bewildered,betas,bernard's,bequeath,beirut,behoove,beheaded,beginners,beginner,befriend,beet,bedpost,bedded,bay's,baudelaires,barty,barreled,barboni,barbeque,bangin,baltus,bailout,bag's,backstabber,baccarat,awning,awaited,avenues,austen,augie,auditioned,auctions,astrology,assistant's,assassinations,aspiration,armenians,aristocrat,arguillo,archway,archaeologist,arcane,arabic,apricots,applicant,apologising,antennas,annyong,angered,andretti,anchorman,anchored,amritsar,amour,amidst,amid,americana,amenable,ambassadors,ambassador's,amazement,allspice,alannis,airliner,airfare,airbags,ahhhhhhhhh,ahhhhhhhh,ahhhhhhh,agitator,afternoon's,afghan,affirmation,affiliate,aegean,adrenal,actor's,acidosis,achy,achoo,accessorizing,accentuate,academically,abuses,abrasions,abilene,abductor,aaaahhh,zuzu,zoot,zeroing,zelner,zeldy,yo's,yevgeny,yeup,yeska,yellows,yeesh,yeahh,yamuri,yaks,wyatt's,wspr,writing's,wrestlers,wouldn't've,workmanship,woodsman,winnin,winked,wildness,widespread,whoring,whitewash,whiney,when're,wheezer,wheelman,wheelbarrow,whaling,westerburg,wegener's,weekdays,weeding,weaving,watermelons,watcher's,washboard,warmly,wards,waltzes,walt's,walkway,waged,wafting,voulez,voluptuous,vitone,vision's,villa's,vigilantes,videotaping,viciously,vices,veruca,vermeer,verifying,ventured,vaya,vaults,vases,vasculitis,varieties,vapor,valets,upriver,upholstered,upholding,unwavering,unused,untold,unsympathetic,unromantic,unrecognizable,unpredictability,unmask,unleashing,unintentional,unilaterally,unglued,unequivocal,underside,underrated,underfoot,unchecked,unbutton,unbind,unbiased,unagi,uhhhhh,turnovers,tugging,trouble's,triads,trespasses,treehorn,traviata,trappers,transplants,transforming,trannie,tramping,trainers,traders,tracheotomy,tourniquet,tooty,toothless,tomarrow,toasters,tine,tilting,thruster,thoughtfulness,thornwood,therapies,thanksgiving's,tha's,terri's,tengo,tenfold,telltale,telephoto,telephoned,telemarketer,teddy's,tearin,tastic,tastefully,tasking,taser,tamed,tallow,taketh,taillight,tadpoles,tachibana,syringes,sweated,swarthy,swagger,surrey,surges,surf's,supermodels,superhighway,sunup,sun'll,summaries,sumerian,sulu,sulphur,sullivan's,sulfa,suis,sugarless,sufficed,substituted,subside,submerged,subdue,styling,strolled,stringy,strengthens,street's,straightest,straightens,storyteller,storefront,stopper,stockpiling,stimulant,stiffed,steyne,sternum,stereotypical,stepladder,stepbrother,steers,steeple,steelheads,steakhouse,statue's,stathis,stankylecartmankennymr,standoffish,stalwart,stallions,stacy's,squirted,squeaker,squad's,spuds,spritz,sprig,sprawl,spousal,sportsman,sphincter,spenders,spearmint,spatter,sparrows,spangled,southey,soured,sonuvabitch,somethng,societies,snuffed,snowfall,snowboarding,sniffs,snafu,smokescreen,smilin,slurred,slurpee,slums,slobs,sleepwalker,sleds,slays,slayage,skydiving,sketched,skateboarding,skanks,sixed,siri,sired,siphoned,siphon,singer's,simpering,silencer,sigfried,siena,sidearm,siddons,sickie,siberian,shuteye,shuk,shuffleboard,shrubberies,shrouded,showmanship,shower's,shouldn't've,shortwave,shoplift,shooter's,shiatsu,sheriffs,shak,shafts,serendipity,serena's,sentries,sentance,sensuality,semesters,seething,sedition,secular,secretions,searing,scuttlebutt,sculpt,scowling,scouring,scorecard,schwarzenegger,schoolers,schmucks,scepters,scaly,scalps,scaling,scaffolding,sauces,sartorius,santen,sampler,salivating,salinger,sainthood,said's,saget,saddens,rygalski,rusting,rumson's,ruination,rueland,rudabaga,rubles,rowr,rottweiler,rotations,roofies,romantics,rollerblading,roldy,rob's,roadshow,rike,rickets,rible,rheza,revisiting,revisited,reverted,retrospective,retentive,resurface,restores,respite,resounding,resorting,resolutions,resists,repulse,repressing,repaying,reneged,relays,relayed,reinforce,regulator,registers,refunds,reflections,rediscover,redecorated,recruitment,reconstructive,reconstructed,recommitted,recollect,recoil,recited,receptor,receptacle,receivers,reassess,reanimation,realtors,razinin,ravaged,ratios,rationalization,ratified,ratatouille,rashum,rasczak,rarer,rapping,rancheros,rampler,rain's,railway,racehorse,quotient,quizzing,quips,question's,quartered,qualification,purring,pummeling,puede,publicized,psychedelic,proximo,proteins,protege,prospectus,pronouncing,pronoun,prolonging,program's,proficient,procreation,proclamations,prio,principled,prides,pricing,presbyterian,preoccupation,prego,preferential,predicts,precog,prattle,pounced,potshots,potpourri,portsmouth,porque,poppie's,poms,pomeranian,pomegranates,polynesian,polymer,polenta,plying,plume,plumber's,pluie,plough,plesac,playoff,playmates,planter,plantains,plaintiff's,pituitary,pisano's,pillowcase,piddle,pickers,phys,photocopied,philistine,pfeiffer's,peyton's,petitioned,persuading,perpetuate,perpetually,periodically,perilous,pensacola,pawned,pausing,pauper,patterned,pats,patronage,passover,partition,parter,parlez,parlay,parkinson's,parades,paperwork's,pally,pairing,ovulation,overtake,overstate,overpowering,overpowered,overconfident,overbooked,ovaltine,ouzo,outweighs,outings,outfit's,out's,ottos,orrin,originate,orifice,orangutan,optimal,optics,opportunistic,ooww,oopsy,ooooooooh,ooohhhh,onyx,onslaught,oldsmobile,ocular,ocean's,obstruct,obscenely,o'dwyer,o'brien's,nutjob,nunur,notifying,nostrand,nonny,nonfat,noblest,nimble,nikes,nicht,newsworthy,network's,nestled,nessie,necessities,nearsighted,ne'er,nazareth,navidad,nastier,nasa's,narco,nakedness,muted,mummified,multiplying,mudda,mtv's,mozzarella,moxica,motorists,motivator,motility,mothafucka,mortmain,mortgaged,mortally,moroccan,mores,moonshine,mongers,moe's,modify,mobster's,mobilization,mobbed,mitigating,mistah,misrepresented,mishke,misfortunes,misdirection,mischievous,mirrored,mineshaft,mimosa,millers,millaney,miho,midday,microwaves,mick's,metzenbaum,metres,merc,mentoring,medicine's,mccovey,maya's,mau's,masterful,masochistic,martie,marliston,market's,marijawana,marie's,marian's,manya,manuals,mantumbi,mannheim,mania,mane,mami's,malarkey,magnifique,magics,magician's,madrona,madox,madison's,machida,m'mm,m'hm,m'hidi,lyric,luxe,luther's,lusty,lullabies,loveliness,lotions,looka,lompoc,loader,litterbug,litigator,lithe,liquorice,lins,linguistics,linds,limericks,lightbulb,lewises,letch,lemec,lecter's,leavenworth,leasing,leases,layover,layered,lavatory,laurels,launchers,laude,latvian,lateness,lasky's,laparotomy,landlord's,laboring,la's,kumquat,kuato,kroff,krispy,kree,krauts,kona,knuckleheads,knighthood,kiva,kitschy,kippers,kip's,kimbrow,kike,keypad,keepsake,kebab,keane's,kazakhstan,karloff,justices,junket,juicer,judy's,judgemental,jsut,jointed,jogs,jezzie,jetting,jekyll,jehovah's,jeff's,jeeze,jeeter,jeesus,jeebs,janeane,jalapeno,jails,jailbait,jagged,jackin,jackhammer,jacket's,ixnay,ivanovich,issue's,isotope,island's,irritates,irritability,irrevocable,irrefutable,irma's,irked,invoking,intricacies,interferon,intents,inte,insubordinate,instructive,instinctive,inspector's,inserting,inscribed,inquisitive,inlay,injuns,inhibited,infringement,information's,infer,inebriated,indignity,indecisive,incisors,incacha,inauguration,inalienable,impresses,impregnate,impregnable,implosion,immersed,ikea,idolizes,ideological,idealism,icepick,hypothyroidism,hypoglycemic,hyde's,hutz,huseni,humvee,hummingbird,hugely,huddling,housekeeper's,honing,hobnobbing,hobnob,histrionics,histamine,hirohito,hippocratic,hindquarters,hinder,himalayan,hikita,hikes,hightailed,hieroglyphics,heyy,heuh,heretofore,herbalist,her's,henryk,henceforth,hehey,hedriks,heartstrings,headmistress,headlight,harvested,hardheaded,happend,handlers,handlebars,hagitha,habla,gyroscope,guys'd,guy'd,guttersnipe,grump,growed,grovelling,grooves,groan,greenbacks,greats,gravedigger,grating,grasshoppers,grappling,graph,granger's,grandiose,grandest,gram's,grains,grafted,gradual,grabthar's,goop,gooood,goood,gooks,godsakes,goaded,gloria's,glamorama,giveth,gingham,ghostbusters,germane,georgy,geisha,gazzo,gazelles,gargle,garbled,galgenstein,galapagos,gaffe,g'day,fyarl,furnish,furies,fulfills,frowns,frowned,frommer's,frighteningly,fresco,freebies,freakshow,freakishly,fraudulent,fragrant,forewarned,foreclose,forearms,fordson,ford's,fonics,follies,foghorn,fly's,flushes,fluffy's,flitting,flintstone,flemmer,flatline,flamboyant,flabby,fishbowl,firsts,finger's,financier,figs,fidgeting,fictitious,fevers,feur,ferns,feminism,fema,feigning,faxing,fatigued,fathoms,fatherless,fares,fancier,fanatical,fairs,factored,eyelid,eyeglasses,eye's,expresso,exponentially,expletive,expectin,excruciatingly,evidentiary,ever'thing,evelyn's,eurotrash,euphoria,eugene's,eubie,ethiopian,ethiopia,estrangement,espanol,erupted,ernie's,erlich,eres,epitome,epitaph,environments,environmentalists,entrap,enthusiastically,entertainers,entangled,enclose,encased,empowering,empires,emphysema,embers,embargo,emasculating,elizabethan,elephant's,eighths,egyptians,effigy,editions,echoing,eardrum,dyslexia,duplicitous,duplicated,dumpty,dumbledore,dufus,dudley's,duddy,duck's,duchamp,drunkenness,drumlin,drowns,droid,drinky,drifts,drawbridge,dramamine,downey's,douggie,douchebag,dostoyevsky,dorian's,doodling,don'tcha,domo,domineering,doings,dogcatcher,documenting,doctoring,doctoral,dockers,divides,ditzy,dissimilar,dissecting,disparage,disliking,disintegrating,dishwalla,dishonored,dishing,disengaged,discretionary,discard,disavowed,directives,dippy,diorama,dimmed,diminishing,dilate,dijon,digitalis,diggory,dicing,diagnosing,devout,devola,developmental,deter,destiny's,desolation,descendant,derived,derevko's,deployment,dennings,denials,deliverance,deliciously,delicacies,degenerates,degas,deflector,defile,deference,defenders,deduced,decrepit,decreed,decoding,deciphered,dazed,dawdle,dauphine,daresay,dangles,dampen,damndest,customer's,curricular,cucumbers,cucaracha,cryogenically,cruella,crowd's,croaks,croaked,criticise,crit,crisper,creepiest,creep's,credit's,creams,crawford's,crackle,crackin,covertly,cover's,county's,counterintelligence,corrosive,corpsman,cordially,cops'll,convulsions,convoluted,convincingly,conversing,contradictions,conga,confucius,confrontational,confab,condolence,conditional,condition's,condiments,composing,complicit,compiled,compile,compiegne,commuter,commodus,commissions,comings,cometh,combining,colossus,collusion,collared,cockeyed,coastline,clobber,clemonds,clashes,clarithromycin,clarified,cinq,cienega,chronological,christmasy,christmassy,chloroform,chippie,childless,chested,chemistry's,cheerios,cheeco,checklist,chaz,chauvinist,char,chang's,chandlers,chamois,chambermaid,chakras,chak,censored,cemented,cellophane,celestial,celebrations,caveat,catholicism,cataloguing,cartmanland,carples,carny,carded,caramels,captors,caption,cappy,caped,canvassing,cannibalism,canada's,camille's,callback,calibrated,calamine,cal's,cabo,bypassed,buzzy,buttermilk,butterfingers,bushed,burlesque,bunsen,bung,bulimia,bukatari,buildin,budged,bronck's,brom,brobich,bringer,brine,brendell,brawling,bratty,brasi,braking,braised,brackett's,braced,boyish,boundless,botch,borough,boosh,bookies,bonbons,bois,bodes,bobunk,bluntly,blossoming,bloopers,bloomers,bloodstains,bloodhounds,blitzen,blinker,blech,blasts,blanca's,bitterly,biter,biometric,bioethics,bilk,bijan,bigoted,bicep,betrothed,bergdorf's,bereaved,bequeathed,belo,bellowing,belching,beholden,befriended,beached,bawk,battled,batmobile,batman's,baseline,baseball's,barcodes,barch,barbie's,barbecuing,bandanna,baldy,bailey's,baghdad,backwater,backtrack,backdraft,ayuh,awgh,augustino,auctioned,attaching,attaches,atrophy,atrocity,atley,athletics,atchoo,asymmetrical,asthmatic,assoc,assists,ascending,ascend,articulated,arrr,armstrong's,armchair,arisen,archeology,archeological,arachnids,aptly,applesauce,appetizing,antisocial,antagonizing,anorexia,anini,angie's,andersons,anarchist,anagram,amputation,amherst,alleluia,algorithms,albemarle,ajar,airlock,airbag,aims,aimless,ailments,agua,agonized,agitate,aggravating,affirming,aerosol,aerosmith,aeroplane,acing,accumulated,accomplishing,accolades,accidently,academia,abuser,abstain,abso,abnormally,aberration,abandons,aaww,aaaaahh,zlotys,zesty,zerzura,zapruder,zany,zantopia,yugoslavia,youo,yoru,yipe,yeow,yello,yelburton,yeess,yaah,y'knowwhati'msayin,wwhat,wussies,wrenched,would'a,worryin,wormser,wooooo,wookiee,wolfe's,wolchek,woes,wishin,wiseguys,winston's,winky,wine's,windbreaker,wiggy,wieners,wiedersehen,whoopin,whittled,whey,whet,wherefore,wharvey,welts,welt,wellstone,weee,wednesday's,wedges,wavered,watchit,wastebasket,ward's,wank,wango,wallet's,wall's,waken,waiver,waitressed,wacquiem,wabbit,vrykolaka,voula,vote's,volt,volga,volcanoes,vocals,vitally,visualizing,viscous,virgo,virg,violet's,viciousness,vewy,vespers,vertes,verily,vegetarians,vater,vaseline,varied,vaporize,vannacutt,vallens,valenti's,vacated,uterine,usta,ussher,urns,urinating,urchin,upping,upheld,unwitting,untreated,untangle,untamed,unsanitary,unraveled,unopened,unisex,uninvolved,uninteresting,unintelligible,unimaginative,undisclosed,undeserving,undermines,undergarments,unconcerned,unbroken,ukrainian,tyrants,typist,tykes,tybalt,twosome,twits,tutti,turndown,tularemia,tuberculoma,tsimshian,truffaut,truer,truant,trove,triumphed,tripe,trigonometry,trifled,trifecta,tricycle,trickle,tribulations,trevor's,tremont,tremoille,treaties,trawler,translators,transcends,trafficker,touchin,tonnage,tomfoolery,tolls,tokens,tinkered,tinfoil,tightrope,ticket's,thth,thousan,thoracotomy,theses,thesaurus,theologian,themed,thawing,thatta,thar,textiles,testimonies,tessio,terminating,temps,taxidermist,tator,tarkin,tangent,tactile,tachycardia,t'akaya,synthesize,symbolically,swelco,sweetbreads,swedes,swatting,swastika,swamps,suze,supernova,supercollider,sunbathing,summarily,suffocation,sueleen,succinct,subtitle,subsided,submissive,subjecting,subbing,subatomic,stupendous,stunted,stubble,stubbed,striving,streetwalker,strategizing,straining,straightaway,storyline,stoli,stock's,stipulated,stimulus,stiffer,stickup,stens,steamroller,steadwell,steadfast,stave,statutes,stateroom,stans,stacey's,sshhhh,squishing,squinting,squealed,sprouting,sprimp,spreadsheets,sprawled,spotlights,spooning,spoiler,spirals,spinner's,speedboat,spectacles,speakerphone,spar,spaniards,spacing,sovereignty,southglen,souse,soundproof,soothsayer,soon's,sommes,somethings,solidify,soars,snorted,snorkeling,snitches,sniping,sniper's,snifter,sniffin,snickering,sneer,snarl,smila,slinking,sleuth,slater's,slated,slanted,slanderous,slammin,skyscraper,skimp,skilosh,skeletal,skag,siteid,sirloin,singe,simulate,signaled,sighing,sidekicks,sicken,shrubs,shrub,showstopper,shot's,shostakovich,shoreline,shoppin,shoplifter,shop's,shoe's,shoal,shitter,shirt's,shimokawa,sherborne,sheds,shawna's,shavadai,sharpshooters,sharking,shane's,shakespearean,shagged,shaddup,sexism,sexes,sesterces,serotonin,sequences,sentient,sensuous,seminal,selections,seismic,seashell,seaplane,sealing,seahaven,seagrave,scuttled,scullery,scow,scots,scorcher,scorch,schotzie,schnoz,schmooze,schlep,schizo,schindler's,scents,scalping,scalped,scallop,scalding,sayeth,saybrooke,sawed,savoring,sardine,sandy's,sandstorm,sandalwood,samoa,samo,salutations,salad's,saki,sailor's,sagman,s'okay,rudy's,rsvp'd,royale,rousted,rootin,roofs,romper,romanovs,rollercoaster,rolfie,rockers,rock's,robinsons,ritzy,ritualistic,ringwald,rhymed,rheingold,rewrites,revolved,revolutionaries,revoking,reviewer,reverts,retrofit,retort,retinas,resurfaced,respirations,respectively,resolute,resin,reprobate,replaying,repayment,repaint,renquist,renege,renders,rename,remarked,relapsing,rekindled,rejuvenating,rejuvenated,reinstating,reinstatement,reigns,referendums,recriminations,recitals,rechecked,reception's,recaptured,rebounds,reassemble,rears,reamed,realty,reader's,reacquaint,rayanne,ravish,rava,rathole,raspail,rarest,rapists,rants,ramone,ragnar,radiating,radial,racketeer,quotation,quittin,quitters,quintessential,quincy's,queremos,quellek,quelle,quasimodo,quarterbacks,quarter's,pyromaniac,puttanesca,puritanical,purged,purer,puree,punishments,pungent,pummel,puedo,pudge,puce,psychotherapist,psycho's,prosecutorial,prosciutto,propositioning,propellers,pronouns,progresses,procured,procrastination,processes,probationary,primping,primates,priest's,preventative,prevails,presided,preserves,preservatives,prefix,predecessors,preachy,prancer,praetorians,practicality,powders,potus,pot's,postop,positives,poser,portolano,portokalos,poolside,poltergeists,pocketed,poach,plunder,plummeted,plucking,plop,plimpton,plethora,playthings,player's,playboys,plastique,plainclothes,pious,pinpointed,pinkus,pinks,pilgrimage,pigskin,piffle,pictionary,piccata,photocopy,phobias,persia,permissible,perils,perignon,perfumes,peon,penned,penalized,peg's,pecks,pecked,paving,patriarch,patents,patently,passable,participants,parasitic,parasailing,paramus,paramilitary,parabolic,parable,papier,paperback,paintbrush,pacer,paaiint,oxen,owen's,overtures,overthink,overstayed,overrule,overlapping,overestimate,overcooked,outlandish,outgrew,outdoorsy,outdo,outbound,ostensibly,originating,orchestrate,orally,oppress,opposable,opponent's,operation's,oooohh,oomupwah,omitted,okeydokey,okaaay,ohashi,offerings,of'em,od'd,occurrences,occupant,observable,obscenities,obligatory,oakie,o'malley's,o'gar,nyah's,nurection,nun's,nougat,nostradamus,norther,norcom,nooch,nonviolent,nonsensical,nominating,nomadic,noel's,nkay,nipped,nimbala,nigeria,nigel's,nicklaus,newscast,nervously,nell's,nehru,neckline,nebbleman,navigator,nasdaq,narwhal,nametag,n'n't,mycenae,myanmar,muzak,muumuu,murderer's,mumbled,mulvehill,multiplication,multiples,muggings,muffet,mozart's,mouthy,motorbike,motivations,motivates,motaba,mortars,mordred,mops,moocher,moniker,mongi,mondo,monday's,moley,molds,moisturize,mohair,mocky,mmkay,mistuh,missis,mission's,misdeeds,minuscule,minty,mined,mincemeat,milton's,milt,millennia,mikes,miggs,miffed,mieke's,midwestern,methadone,metaphysics,messieur,merging,mergers,menopausal,menagerie,meee,mckenna's,mcgillicuddy,mayflowers,maxim's,matrimonial,matisse,matick,masculinity,mascots,masai,marzipan,marika,maplewood,manzelle,manufactures,manticore's,mannequins,manhole,manhandle,manatee,mallory's,malfunctions,mainline,magua's,madwoman,madeline's,machiavelli,lynley,lynching,lynched,lurconis,lujack,lubricant,looove,loons,loom,loofah,longevity,lonelyhearts,lollipops,loca,llama,liquidation,lineswoman,lindsey's,lindbergh,lilith's,lila's,lifers,lichen,liberty's,lias,lexter,levee,letter's,lessen,lepner,leonard's,lemony,leggy,leafy,leaflets,leadeth,lazerus,lazare,lawford,languishing,langford's,landslide,landlords,lagoda,ladman,lad's,kuwait,kundera,krist's,krinkle,krendler,kreigel,kowolski,kosovo,knockdown,knifed,kneed,kneecap,kids'll,kevlar,kennie,keeled,kazootie,kaufman's,katzenmoyer,kasdan,karl's,karak,kapowski,kakistos,jumpers,julyan,juanito,jockstrap,jobless,jiggly,jesuit,jaunt,jarring,jabbering,israelites,irrigate,irrevocably,irrationally,ironies,ions,invitro,inventions,intrigues,intimated,interview's,intervening,interchangeable,intently,intentioned,intelligently,insulated,institutional,instill,instigator,instigated,instep,inopportune,innuendoes,inheriting,inflate,infiltration,infects,infamy,inducing,indiscretions,indiscreet,indio,indignities,indict,indecision,incurred,incubation,inconspicuous,inappropriately,impunity,impudent,improves,impotence,implicates,implausible,imperfection,impatience,immutable,immobilize,illustration,illumination,idiot's,idealized,idealist,icelandic,iambic,hysterically,hyperspace,hygienist,hydraulics,hydrated,huzzah,husks,hurricane's,hunt's,hunched,huffed,hubris,hubbub,hovercraft,houngan,hotel's,hosed,horoscopes,hoppy,hopelessness,hoodwinked,honourable,honorably,honeysuckle,homeowners,homegirl,holiest,hoisted,hoho,ho's,hippity,hildie,hikers,hieroglyphs,hexton,herein,helicopter's,heckle,heats,heartbeat's,heaping,healthilizer,headmaster's,headfirst,hawk's,haviland's,hatsue,harlot,hardwired,hanno's,hams,hamilton's,halothane,hairstyles,hails,hailed,haagen,haaaaa,gyno,gutting,gurl,gumshoe,gummi,gull,guerilla,gttk,grover's,grouping,groundless,groaning,gristle,grills,graynamore,grassy,graham's,grabbin,governmental,goodes,goggle,godlike,glittering,glint,gliding,gleaming,glassy,girth,gimbal,gilmore's,gibson's,giblets,gert,geometric,geographical,genealogy,gellers,geller's,geezers,geeze,garshaw,gargantuan,garfunkel,gardner's,garcia's,garb,gangway,gandarium,gamut,galoshes,gallivanting,galleries,gainfully,gack,gachnar,fusionlips,fusilli,furiously,fulfil,fugu,frugal,fron,friendship's,fricking,frederika,freckling,frauds,fraternal,fountainhead,forthwith,forgo,forgettable,foresight,foresaw,footnotes,fondling,fondled,fondle,folksy,fluttering,flutie,fluffing,floundering,florin,florentine,flirtatious,flexing,flatterer,flaring,fizz,fixating,five's,fishnet,firs,firestorm,finchy,figurehead,fifths,fiendish,fertilize,ferment,fending,fellahs,feeny's,feelers,feeders,fatality,fascinate,fantabulous,falsify,fallopian,faithless,fairy's,fairer,fair's,fainter,failings,facto,facets,facetious,eyepatch,exxon,extraterrestrials,extradite,extracurriculars,extinguish,expunged,exports,expenditure,expelling,exorbitant,exigent,exhilarated,exertion,exerting,exemption,excursions,excludes,excessively,excercise,exceeds,exceeding,everbody,evaporated,euthanasia,euros,europeans,escargot,escapee,erases,epizootics,epithelials,ephrum,enthusiast,entanglements,enslaved,enslave,engrossed,endeavour,enables,enabled,empowerment,employer's,emphatic,emeralds,embroiled,embraces,ember,embellished,emancipated,ello,elisa's,elevates,ejaculate,ego's,effeminate,economically,eccentricities,easygoing,earshot,durp,dunks,dunes,dullness,dulli,dulled,drumstick,dropper,driftwood,dregs,dreck,dreamboat,draggin,downsizing,dost,doofer,donowitz,dominoes,dominance,doe's,diversions,distinctions,distillery,distended,dissolving,dissipate,disraeli,disqualify,disowned,dishwashing,discusses,discontent,disclosed,disciplining,discerning,disappoints,dinged,diluted,digested,dicking,diablos,deux,detonating,destinations,despising,designer's,deserts,derelict,depressor,depose,deport,dents,demonstrations,deliberations,defused,deflection,deflecting,decryption,decoys,decoupage,decompress,decibel,decadence,dealer's,deafening,deadlock,dawning,dater,darkened,darcy's,dappy,dancing's,damon's,dallying,dagon,d'etat,czechoslovakians,cuticles,cuteness,curacao,cupboards,cumulative,culottes,culmination,culminating,csi's,cruisin,crosshairs,cronyn,croc,criminalistics,crimean,creatively,creaming,crapping,cranny,cowed,countermeasures,corsica,corinne's,corey's,cooker,convened,contradicting,continuity,constitutionally,constipation,consort,consolidate,consisted,connection's,confining,confidences,confessor,confederates,condensation,concluding,conceiving,conceivably,concealment,compulsively,complainin,complacent,compiling,compels,communing,commonplace,commode,commission's,commissary,comming,commensurate,columnists,colonoscopy,colonists,collagen,collaborate,colchicine,coddling,clump,clubbed,clowning,closet's,clones,clinton's,clinic's,cliffhanger,classification,clang,citrus,cissy,circuitry,chronology,christophe,choosers,choker,chloride,chippewa,chip's,chiffon,chesty,chesapeake,chernobyl,chants,channeled,champagne's,chalet,chaka,cervical,cellphone,cellmates,caverns,catwalk,cathartic,catcher's,cassandra's,caseload,carpenter's,carolyn's,carnivorous,carjack,carbohydrates,capt,capitalists,canvass,cantonese,canisters,candlestick,candlelit,canaries,camry,camel's,calzones,calitri,caldy,cabin's,byline,butterball,bustier,burmese,burlap,burgeoning,bureaucrat,buffoons,buenas,bryan's,brookline,bronzed,broiled,broda,briss,brioche,briar,breathable,brea,brays,brassieres,braille,brahms,braddock's,boysenberry,bowman's,bowline,boutiques,botticelli's,boooo,boonies,booklets,bookish,boogeyman,boogey,bomb's,boldly,bogs,bogas,boardinghouse,bluuch,blundering,bluffs,bluer,blowed,blotto,blotchy,blossomed,blooms,bloodwork,bloodied,blithering,blinks,blathering,blasphemous,blacking,bison,birdson,bings,bilateral,bfmid,bfast,berserker,berkshires,bequest,benjamins,benevolence,benched,benatar,belthazor's,bellybutton,belabor,bela's,behooves,beddy,beaujolais,beattle,baxworth,batted,baseless,baring,barfing,barbi,bannish,bankrolled,banek,ballsy,ballpoint,balkans,balconies,bakers,bahama,baffling,badder,badda,bada,bactine,backgammon,baako,aztreonam,aztecs,awed,avon,autobiographical,autistic,authoritah,auspicious,august's,auditing,audible,auctioning,attitude's,atrocities,athlete's,astronomer,assessed,ascot,aristocratic,arid,argues,arachtoids,arachnid,aquaman,apropos,aprons,apprised,apprehensive,apex,anythng,antivenin,antichrist,antennae,anorexic,anoint,annum,annihilated,animal's,anguished,angioplasty,angio,amply,ampicillin,amphetamines,amino,american's,ambiguity,ambient,amarillo,alyssa's,alternator,alcove,albacore,alarm's,alabaster,airlifted,ahta,agrabah,affidavits,advocacy,advises,adversely,admonished,admonish,adler's,addled,addendum,acknowledgement,accuser,accompli,acclaim,acceleration,abut,abundant,absurdity,absolved,abrusso,abreast,abrasive,aboot,abductions,abducting,abbots,aback,ababwa,aand,aaahhhh,zorin,zinthar,zinfandel,zimbabwe,zillions,zephyrs,zatarcs,zacks,youuu,youths,yokels,yech,yardstick,yammer,y'understand,wynette,wrung,wrought,wreaths,wowed,wouldn'ta,worshiped,worming,wormed,workday,wops,woolly,wooh,woodsy,woodshed,woodchuck,wojadubakowski,withering,witching,wiseass,wiretaps,winner's,wining,willoby,wiccaning,whupped,whoopi,whoomp,wholesaler,whiteness,whiner,whatchya,wharves,whah,wetlands,westward,wenus,weirdoes,weds,webs,weaver's,wearer,weaning,watusi,wastes,warlock's,warfield's,waponi,waiting's,waistband,waht,wackos,vouching,votre,voight's,voiced,vivica,viveca,vivant,vivacious,visor,visitin,visage,virgil's,violins,vinny,vinci's,villas,vigor,video's,vicrum,vibrator,vetted,versailles,vernon's,venues,ventriloquism,venison,venerable,varnsen,variant,variance,vaporized,vapid,vanstock,vandals,vader's,vaccination,uuuuh,utilize,ushering,usda,usable,urur,urologist,urination,urinary,upstart,uprooted,unsubtitled,unspoiled,unseat,unseasonably,unseal,unsatisfying,unnerve,unlikable,unleaded,university's,universe's,uninsured,uninspired,uniformity,unicycle,unhooked,ungh,unfunny,unfreezing,unflattering,unfairness,unexpressed,unending,unencumbered,unearth,undiscovered,undisciplined,undertaken,understan,undershirt,underlings,underline,undercurrent,uncontrolled,uncivilized,uncharacteristic,umpteenth,uglies,u're,tut's,turner's,turbine,tunnel's,tuney,trustee,trumps,truckasaurus,trubshaw,trouser,trippy,tringle,trifling,trickster,triangular,trespassers,trespasser,traverse,traumas,trattoria,trashes,transgressions,tranquil,trampling,trainees,tracy's,tp'ed,toxoplasmosis,tounge,tortillas,torrent,torpedoed,topsy,topple,topnotch,top's,tonsil,tippin's,tions,timmuh,timithious,tilney,tighty,tightness,tightens,tidbits,ticketed,thyme,thrones,threepio,thoughtfully,thornhart's,thorkel,thommo,thing'll,theological,thel,theh,thefts,that've,thanksgivings,tetherball,testikov,terraforming,terminus,tepid,tendonitis,tenboom,telex,teleport,telepathic,teenybopper,taxicab,taxed,taut,tattered,tattaglias,tapered,tantric,tanneke,takedown,tailspin,tacs,tacit,tablet,tablecloth,systemic,syria,syphon,synthesis,symbiotic,swooping,swizzle,swiping,swindled,swilling,swerving,sweatshops,swayzak's,swaddling,swackhammer,svetkoff,suzie's,surpass,supossed,superdad,super's,sumptuous,sula,suit's,sugary,sugar's,sugai,suey,subvert,suburb,substantiate,subsidy,submersible,sublimating,subjugation,styx,stymied,stuntman,studded,strychnine,strikingly,strenuous,streetlights,strassmans,stranglehold,strangeness,straddling,straddle,stowaways,stotch,stockbrokers,stifling,stepford,stepdad's,steerage,steena,staunch,statuary,starlets,stanza,stanley's,stagnant,staggeringly,ssshhh,squaw,spurt,spungeon,sprightly,sprays,sportswear,spoonful,splittin,splitsville,spirituality,spiny,spider's,speedily,speculative,specialise,spatial,spastic,spas,sparrin,soybean,souvlaki,southie,southampton,sourpuss,soupy,soup's,soundstage,sophie's,soothes,somebody'd,solicited,softest,sociopathic,socialized,socialism,snyders,snowmobiles,snowballed,snatches,smugness,smoothest,smashes,slurp,slur,sloshed,sleight,skyrocket,skied,skewed,sizeable,sixpence,sipowicz,singling,simulations,simulates,similarly,silvery,silverstone,siesta,siempre,sidewinder,shyness,shuvanis,showoff,shortsighted,shopkeeper,shoehorn,shithouse,shirtless,shipshape,shingles,shifu,shes,sherman's,shelve,shelbyville,sheepskin,shat,sharpens,shaquille,shaq,shanshu,shania's,set's,servings,serpico,sequined,sensibilities,seizes,seesaw,seep,seconded,sebastian's,seashells,scrapped,scrambler,scorpions,scopes,schnauzer,schmo,schizoid,scampered,scag,savagely,saudis,satire,santas,sanskrit,sandovals,sanding,sandal,salient,saleswoman,sagging,s'cuse,rutting,ruthlessly,runoff,runneth,rulers,ruffians,rubes,roughriders,rotates,rotated,roswell's,rosalita,rookies,ron's,rollerblades,rohypnol,rogues,robinson's,roasts,roadies,river's,ritten,rippling,ripples,ring's,rigor,rigoletto,richardo,ribbed,revolutions,revlon's,reverend's,retreating,retractable,rethought,retaliated,retailers,reshoot,reserving,reseda,researchers,rescuer,reread,requisitions,repute,reprogram,representations,report's,replenish,repetitive,repetitious,repentance,reorganizing,renton,renee's,remodeled,religiously,relics,reinventing,reinvented,reheat,rehabilitate,registrar,regeneration,refueling,refrigerators,refining,reenter,redress,recruiter,recliner,reciprocal,reappears,razors,rawdy,rashes,rarity,ranging,rajeski,raison,raisers,rainier,ragtime,rages,radar's,quinine,questscape,queller,quartermaine's,pyre,pygmalion,pushers,pusan,purview,purification,pumpin,puller,pubescent,psychiatrist's,prudes,provolone,protestants,prospero,propriety,propped,prom's,procrastinate,processors,processional,princely,preyed,preventive,pretrial,preside,premiums,preface,preachers,pounder,ports,portrays,portrayal,portent,populations,poorest,pooling,poofy,pontoon,pompeii,polymerization,polloi,policia,poacher,pluses,pleasuring,pleads,playgrounds,platitudes,platforms,plateaued,plate's,plantations,plaguing,pittance,pitcher's,pinky's,pinheads,pincushion,pimply,pimped,piggyback,pierce's,piecing,physiological,physician's,phosphate,phillipe,philipse,philby,phased,pharaohs,petyr,petitioner,peshtigo,pesaram,perspectives,persnickety,perpetrate,percolating,pepto,pensions,penne,penell,pemmican,peeks,pedaling,peacemaker,pawnshop,patting,pathologically,patchouli,pasts,pasties,passin,parlors,panda's,panache,paltrow,palamon,padlock,paddy's,paddling,oversleep,overheating,overdosed,overcharge,overcame,overblown,outset,outrageously,outfitted,orsini's,ornery,origami,orgasmic,orga,order's,opportune,ooow,oooooooooh,oohhhh,olympian,olfactory,okum,ohhhhhh,ogres,odysseus,odorless,occupations,occupancy,obscenity,obliterated,nyong,nymphomaniac,nutsack,numa,ntozake,novocain,nough,noth,nosh,norwegians,northstar,nonnie,nonissue,nodules,nightmarish,nightline,nighthawk,niggas,nicu,nicolae,nicknamed,niceties,newsman,neverland,negatively,needra,nedry,necking,navour,nauseam,nauls,narim,nanda,namath,nagged,nads,naboo,n'sync,mythological,mysticism,myslexia,mutator,mustafi,mussels,muskie,musketeer,murtaugh,murderess,murder's,murals,munching,mumsy,muley,mouseville,mosque,mosh,mortifying,morgendorffers,moola,montel,mongoloid,molten,molestered,moldings,mocarbies,mo'ss,mixers,misrell,misnomer,misheard,mishandled,miscreant,misconceptions,miniscule,minimalist,millie's,millgate,migrate,michelangelo's,mettle,metricconverter,methodology,meter's,meteors,mesozoic,menorah,mengele,mendy's,membranes,melding,meanness,mcneil's,mcgruff,mcarnold,matzoh,matted,mathematically,materialized,mated,masterpieces,mastectomy,massager,masons,marveling,marta's,marquee,marooned,marone's,marmaduke,marick,marcie's,manhandled,mangoes,manatees,managerial,man'll,maltin,maliciously,malfeasance,malahide,maketh,makeshift,makeovers,maiming,magazine's,machismo,maarten,lutheran,lumpectomy,lumbering,luigi's,luge,lubrication,lording,lorca,lookouts,loogie,loners,london's,loin,lodgings,locomotive,lobes,loathed,lissen,linus,lighthearted,ligament,lifetime's,lifer,lier,lido,lickin,lewen,levitation,lestercorp,lessee,lentils,lena's,lemur,lein,legislate,legalizing,lederhosen,lawmen,laundry's,lasskopf,lardner,landscapes,landfall,lambeau,lamagra,lagging,ladonn,lactic,lacquer,laborers,labatier,kwan's,krit,krabappel,kpxy,kooks,knobby,knickknacks,klutzy,kleynach,klendathu,kinross,kinko's,kinkaid,kind'a,kimberly's,kilometer,khruschev's,khaki,keyboards,kewl,ketch,kesher,ken's,karikos,karenina,kanamits,junshi,juno's,jumbled,jujitsu,judith's,jt's,joust,journeyed,jotted,jonathan's,jizz,jingling,jigalong,jerseys,jerries,jellybean,jellies,jeeps,jeannie's,javna,jamestown,james's,jamboree,jail's,islanders,irresistable,irene's,ious,investigation's,investigates,invaders,inundated,introductory,interviewer,interrupts,interpreting,interplanetary,internist,intercranial,inspections,inspecting,inseminated,inquisitor,inland,infused,infuriate,influx,inflating,infidelities,inference,inexpensive,industrialist,incessantly,inception,incensed,incase,incapacitate,inca,inasmuch,inaccuracies,imus,improvised,imploding,impeding,impediments,immaturity,ills,illegible,idols,iditarod,identifiable,id'n,icicles,ibuprofen,i'i'm,hymie,hydrolase,hybrids,hunsecker's,hunker,humps,humons,humidor,humdinger,humbling,humankind,huggin,huffing,households,housecleaning,hothouse,hotcakes,hosty,hootenanny,hootchie,hoosegow,honouring,honks,honeymooners,homophobic,homily,homeopathic,hoffman's,hnnn,hitchhikers,hissed,hispanics,hillnigger,hexavalent,hewwo,heston's,hershe,herodotus,hermey,hergott,heresy,henny,hennigans,henhouse,hemolytic,hells,helipad,heifer,hebrews,hebbing,heaved,heartland,heah,headlock,hatchback,harvard's,harrowing,harnessed,harding's,happy's,hannibal's,hangovers,handi,handbasket,handbags,halloween's,hall's,halfrek,halfback,hagrid,hacene,gyges,guys're,gut's,gundersons,gumption,guardia,gruntmaster,grubs,group's,grouch,grossie,grosser,groped,grins,grime,grigio,griff's,greaseball,gravesite,gratuity,graphite,granma,grandfathers,grandbaby,gradski,gracing,got's,gossips,goonie,gooble,goobers,goners,golitsyn,gofer,godsake,goddaughter,gnats,gluing,glub,global's,glares,gizmos,givers,ginza,gimmie,gimmee,georgia's,gennero,gazpacho,gazed,gato,gated,gassy,gargling,gandhiji,galvanized,gallery's,gallbladder,gabriel's,gaaah,furtive,furthering,fungal,fumigation,fudd,fucka,fronkonsteen,fromby's,frills,fresher,freezin,freewald,freeloader,franklin's,framework,frailty,fortified,forger,forestry,foreclosure,forbade,foray,football's,foolhardy,fondest,fomin,followin,follower,follicle,flue,flowering,flotation,flopping,floodgates,flogged,flog,flicked,flenders,fleabag,flanks,fixings,fixable,fistful,firewater,firestarter,firelight,fingerbang,finalizing,fillin,filipov,fido,fiderer,feminists,felling,feldberg,feign,favorably,fave,faunia,faun,fatale,fasting,farkus,fared,fallible,faithfulness,factoring,facilitated,fable,eyeful,extramarital,extracts,extinguished,exterminated,exposes,exporter,exponential,exhumed,exhume,exasperated,eviscerate,evidenced,evanston,estoy,estimating,esmerelda,esme,escapades,erosion,erie,equitable,epsom,epoxy,enticed,enthused,entendre,ensued,enhances,engulfed,engrossing,engraving,endorphins,enamel,emptive,empirical,emmys,emission,eminently,embody,embezzler,embarressed,embarrassingly,embalmed,emancipation,eludes,eling,elevation,electorate,elated,eirie,egotitis,effecting,eerily,eeew,eecom,editorials,edict,eczema,ecumenical,ecklie's,earthy,earlobes,eally,dyeing,dwells,dvds,duvet,duncans,dulcet,duckling,droves,droppin,drools,drey'auc,dreamers,dowser's,downriver,downgraded,doping,doodie,dominicans,dominating,domesticity,dollop,doesnt,doer,dobler,divulged,divisional,diversionary,distancing,dissolves,dissipated,displaying,dispensers,dispensation,disorienting,disneyworld,dismissive,dismantling,disingenuous,disheveled,disfiguring,discourse,discontinued,disallowed,dinning,dimming,diminutive,diligently,dilettante,dilation,diggity,diggers,dickensian,diaphragms,diagnoses,dewy,developer,devastatingly,determining,destabilize,desecrate,derives,deposing,denzel,denouncing,denominations,denominational,deniece,demony,delving,delt,delicates,deigned,degrassi's,degeneration,defraud,deflower,defibrillator,defiantly,deferred,defenceless,defacing,dedicating,deconstruction,decompose,deciphering,decibels,deceptively,deceptions,decapitation,debutantes,debonair,deadlier,dawdling,davic,databases,darwinism,darnit,darks,danke,danieljackson,dangled,daimler,cytoxan,cylinders,cutout,cutlery,cuss,cushing's,curveball,curiously,curfews,cummerbund,cuckoo's,crunches,crucifixion,crouched,croix,criterion,crisps,cripples,crilly,cribs,crewman,cretaceous,creepin,creeds,credenza,creak,crawly,crawlin,crawlers,crated,crasher,crackheads,coworker,counterpart,councillor,coun,couldn't've,cots,costanza's,cosgrove's,corwins,corset,correspondents,coriander,copiously,convenes,contraceptives,continuously,contingencies,contaminating,consul,constantinople,conniption,connie's,conk,conjugate,condiment,concurrently,concocting,conclave,concert's,con's,comprehending,compliant,complacency,compilation,competitiveness,commendatore,comedies,comedians,comebacks,combines,com'on,colonized,colonization,collided,collectively,collarbone,collaborating,collaborated,colitis,coldly,coiffure,coffers,coeds,codependent,cocksucking,cockney,cockles,clutched,cluett's,cloverleaf,closeted,cloistered,clinched,clicker,cleve,clergyman,cleats,clarifying,clapped,citations,cinnabar,cinco,chunnel,chumps,chucks,christof,cholinesterase,choirboy,chocolatey,chlamydia,chili's,chigliak,cheesie,cheeses,chechnya,chauvinistic,chasm,chartreuse,charnier,chapil,chapel's,chalked,chadway,cerveza,cerulean,certifiably,celsius,cellulite,celled,ceiling's,cavalry's,cavalcade,catty,caters,cataloging,casy,castrated,cassio,cashman's,cashews,carwash,cartouche,carnivore,carcinogens,carasco's,carano's,capulet,captives,captivated,capt'n,capsized,canoes,cannes,candidate's,cancellations,camshaft,campin,callate,callar,calendar's,calculators,cair,caffeinated,cadavers,cacophony,cackle,byproduct,bwana,buzzes,buyout,buttoning,busload,burglaries,burbs,bura,buona,bunions,bungalows,bundles,bunches,bullheaded,buffs,bucyk,buckling,bruschetta,browbeating,broomsticks,broody,bromly,brolin,brigadier,briefings,bridgeport,brewskies,breathalyzer,breakups,breadth,bratwurst,brania,branching,braiding,brags,braggin,bradywood,bozo's,bottomed,bottom's,bottling,botany,boston's,bossa,bordello,booo,bookshelf,boogida,bondsman,bolsheviks,bolder,boggles,boarder,boar's,bludgeoned,blowtorch,blotter,blips,blends,blemish,bleaching,blainetologists,blading,blabbermouth,bismarck,bishops,biscayne,birdseed,birdcage,bionic,biographies,biographical,bimmel,biloxi,biggly,bianchinni,bette's,betadine,berg's,berenson,belus,belt's,belly's,belloq,bella's,belfast,behavior's,begets,befitting,beethoven's,beepers,beelzebub,beefed,bedroom's,bedrock,bedridden,bedevere,beckons,beckett's,beauty's,beaded,baubles,bauble,battlestar,battleground,battle's,bathrobes,basketballs,basements,barroom,barnacle,barkin,barked,barium,baretta,bangles,bangler,banality,bambang,baltar,ballplayers,baio,bahrain,bagman,baffles,backstroke,backroom,bachelor's,babysat,babylonian,baboons,aviv,avez,averse,availability,augmentation,auditory,auditor,audiotape,auctioneer,atten,attained,attackers,atcha,astonishment,asshole's,assembler,arugula,arsonist's,arroz,arigato,arif,ardent,archaic,approximation,approving,appointing,apartheid,antihistamines,antarctica,annoyances,annals,annabelle's,angrily,angelou,angelo's,anesthesiology,android,anatomically,anarchists,analyse,anachronism,amiable,amex,ambivalent,amassed,amaretto,alumnus,alternating,alternates,alteration,aloft,alluding,allen's,allahu,alight,alfred's,alfie,airlift,aimin,ailment,aground,agile,ageing,afterglow,africans,affronte,affectionately,aerobic,adviser,advil,adventist,advancements,adrenals,admiral's,administrators,adjutant,adherence,adequately,additives,additions,adapting,adaptable,actualization,activating,acrost,ached,accursed,accoutrements,absconded,aboveboard,abou,abetted,abbot's,abbey's,aargh,aaaahh,zuzu's,zuwicky,zolda,zits,ziploc,zakamatak,yutz,yumm,youve,yolk,yippie,yields,yiddish,yesterdays,yella,yearns,yearnings,yearned,yawning,yalta,yahtzee,yacht's,y'mean,y'are,xand,wuthering,wreaks,woul,worsened,worrisome,workstation,workiiing,worcestershire,woop,wooooooo,wooded,wonky,womanizing,wolodarsky,wnkw,wnat,wiwith,withdraws,wishy,wisht,wipers,wiper,winos,winery,windthorne,windsurfing,windermere,wiggles,wiggled,wiggen,whys,whwhat,whuh,whos,whore's,whodunit,whoaaa,whittling,whitesnake,whirling,whereof,wheezing,wheeze,whatley's,whatd'ya,whataya,whammo,whackin,wets,westbound,wellll,wellesley,welch's,weirdo's,weightless,weevil,wedgies,webbing,weasly,weapon's,wean,wayside,waxes,wavelengths,waturi,washy,washrooms,warton's,wandell,wakeup,waitaminute,waddya,wabash,waaaah,vornac,voir,voicing,vocational,vocalist,vixens,vishnoor,viscount,virulent,virtuoso,vindictiveness,vinceres,vince's,villier,viii,vigeous,viennese,viceroy,vestigial,vernacular,venza's,ventilate,vented,venereal,vell,vegetative,veering,veered,veddy,vaslova,valosky,vailsburg,vaginas,vagas,vacation's,uuml,urethra,upstaged,uploading,upgrades,unwrapping,unwieldy,untenable,untapped,unsatisfied,unsatisfactory,unquenchable,unnerved,unmentionable,unlovable,unknowns,universes,uninformed,unimpressed,unhappily,unguarded,unexplored,underpass,undergarment,underdeveloped,undeniably,uncompromising,unclench,unclaimed,uncharacteristically,unbuttoned,unblemished,unas,umpa,ululd,uhhhm,tweeze,tutsami,tusk,tushy,tuscarora,turkle,turghan,turbulent,turbinium,tuffy,tubers,tsun,trucoat,troxa,trou,tropicana,triquetra,tripled,trimmers,triceps,tribeca,trespassed,traya,travellers,traumatizing,transvestites,transatlantic,tran's,trainors,tradin,trackers,townies,tourelles,toughness,toucha,totals,totalled,tossin,tortious,topshop,topes,tonics,tongs,tomsk,tomorrows,toiling,toddle,tobs,tizzy,tiramisu,tippers,timmi,timbre,thwap,thusly,ththe,thruway,thrusts,throwers,throwed,throughway,thrice,thomas's,thickening,thia,thermonuclear,therapy's,thelwall,thataway,th's,textile,texans,terry's,terrifically,tenets,tendons,tendon,telescopic,teleportation,telepathically,telekinetic,teetering,teaspoons,teamsters,taunts,tatoo,tarantulas,tapas,tanzania,tanned,tank's,tangling,tangerine,tamales,tallied,tailors,tai's,tahitian,tag's,tactful,tackles,tachy,tablespoon,tableau,syrah,syne,synchronicity,synch,synaptic,synapses,swooning,switchman,swimsuits,swimmer's,sweltering,swelling's,sweetly,sweeper,suvolte,suss,suslov,surname,surfed,supremacy,supposition,suppertime,supervillains,superman's,superfluous,superego,sunspots,sunnydale's,sunny's,sunning,sunless,sundress,sump,suki,suffolk,sue's,suckah,succotash,substation,subscriptions,submarines,sublevel,subbasement,styled,studious,studio's,striping,stresses,strenuously,streamlined,strains,straights,stony,stonewalled,stonehenge,stomper,stipulates,stinging,stimulated,stillness,stilettos,stewards,stevesy,steno,sten,stemmed,steenwyck,statesmen,statehood,stargates,standstill,stammering,staedert,squiggly,squiggle,squashing,squaring,spurred,sprints,spreadsheet,spramp,spotters,sporto,spooking,sponsorship,splendido,spittin,spirulina,spiky,speculations,spectral,spate,spartacus,spans,spacerun,sown,southbound,sorr,sorcery,soonest,sono,sondheim,something'll,someth,somepin,someone'll,solicitor,sofas,sodomy,sobs,soberly,sobered,soared,soapy,snowmen,snowbank,snowballing,snorkel,snivelling,sniffling,snakeskin,snagging,smush,smooter,smidgen,smackers,smackdown,slumlord,slugging,slossum,slimmer,slighted,sleepwalk,sleazeball,skokie,skirmishes,skipper's,skeptic,sitka,sitarides,sistah,sipped,sindell,simpletons,simp,simony,simba's,silkwood,silks,silken,silicone,sightless,sideboard,shuttles,shrugging,shrouds,showy,shoveled,shouldn'ta,shoplifters,shitstorm,shipyard,shielded,sheldon's,sheeny,shaven,shapetype,shankar,shaming,shallows,shale,shading,shackle,shabbily,shabbas,severus,settlements,seppuku,senility,semite,semiautomatic,semester's,selznick,secretarial,sebacio,sear,seamless,scuzzy,scummy,scud,scrutinized,scrunchie,scriptures,scribbled,scouted,scotches,scolded,scissor,schooner,schmidt's,schlub,scavenging,scarin,scarfing,scarecrow's,scant,scallions,scald,scabby,say's,savour,savored,sarcoidosis,sandbar,saluted,salted,salish,saith,sailboats,sagittarius,sagan,safeguards,sacre,saccharine,sacamano,sabe,rushdie,rumpled,rumba,rulebook,rubbers,roughage,rotterdam,roto,rotisserie,rosebuds,rootie,roosters,roosevelt's,rooney's,roofy,roofie,romanticize,roma's,rolodex,rolf's,roland's,rodney's,robotic,robin's,rittle,ristorante,rippin,rioting,rinsing,ringin,rincess,rickety,rewritten,revising,reveling,rety,retreats,retest,retaliating,resumed,restructuring,restrict,restorative,reston,restaurateur,residences,reshoots,resetting,resentments,rescuers,rerouted,reprogramming,reprisals,reprisal,repossess,repartee,renzo,renfield,remore,remitting,remeber,reliability,relaxants,rejuvenate,rejections,rehu,regularity,registrar's,regionals,regimes,regenerated,regency,refocus,referrals,reeno,reelected,redevelopment,recycles,recrimination,recombinant,reclining,recanting,recalling,reattach,reassigning,realises,reactors,reactionary,rbis,razor's,razgul,raved,rattlesnakes,rattles,rashly,raquetball,rappers,rapido,ransack,rankings,rajah,raisinettes,raheem,radisson,radishes,radically,radiance,rabbi's,raban,quoth,qumari,quints,quilts,quilting,quien,queue,quarreled,qualifying,pygmy,purty,puritans,purblind,puppy's,punctuation,punchbowl,puget,publically,psychotics,psychopaths,psychoanalyze,pruning,provasik,protruding,protracted,protons,protections,protectin,prospector,prosecutor's,propping,proportioned,prophylactic,propelled,proofed,prompting,prompter,professed,procreate,proclivities,prioritizing,prinze,princess's,pricked,press'll,presets,prescribes,preocupe,prejudicial,prefex,preconceived,precipice,preamble,pram,pralines,pragmatist,powering,powerbar,pottie,pottersville,potsie,potholes,potency,posses,posner's,posies,portkey,porterhouse,pornographers,poring,poppycock,poppet,poppers,poopsie,pomponi,pokin,poitier,poes,podiatry,plush,pleeze,pleadings,playbook,platelets,plane'arium,placebos,place'll,pj's,pixels,pitted,pistachios,pisa,pirated,pirate's,pinochle,pineapples,pinafore,pimples,piggly,piggies,pie's,piddling,picon,pickpockets,picchu,physiologically,physic,photo's,phobic,philosophies,philosophers,philly's,philandering,phenomenally,pheasants,phasing,phantoms,pewter,petticoat,petronis,petitioning,perturbed,perth,persists,persians,perpetuating,permutat,perishable,periphery,perimeters,perfumed,percocet,per'sus,pepperjack,pensioners,penalize,pelting,pellet,peignoir,pedicures,pedestrians,peckers,pecans,payback's,pay's,pawning,paulsson,pattycake,patrolmen,patrolled,patois,pathos,pasted,passer,partnerships,parp,parishioners,parishioner,parcheesi,parachuting,pappa,paperclip,papayas,paolo's,pantheon,pantaloons,panhandle,pampers,palpitations,paler,palantine,paintballing,pago,owow,overtired,overstress,oversensitive,overnights,overexcited,overanxious,overachiever,outwitted,outvoted,outnumber,outlived,outlined,outlast,outlander,outfield,out've,ortolani's,orphey,ornate,ornamental,orienteering,orchestrating,orator,oppressive,operator's,openers,opec,ooky,oliver's,olde,okies,okee,ohhhhhhhhh,ohhhhhhhh,ogling,offline,offbeat,oceanographic,obsessively,obeyed,oaths,o'leary's,o'hana,o'bannon,o'bannion,numpce,nummy,nuked,nuff,nuances,nourishing,noticeably,notably,nosedive,northeastern,norbu,nomlies,nomine,nomads,noge,nixed,niro,nihilist,nightshift,newmeat,nevis,nemo's,neighborhood's,neglectful,neediness,needin,necromancer,neck's,ncic,nathaniel's,nashua,naphthalene,nanotechnology,nanocytes,nanite,naivete,nacho,n'yeah,mystifying,myhnegon,mutating,muskrat,musing,museum's,muppets,mumbles,mulled,muggy,muerto,muckraker,muchachos,mris,move's,mourners,mountainside,moulin,mould,motherless,motherfuck,mosquitos,morphed,mopped,moodoo,montage,monsignor,moncho,monarchs,mollem,moisturiser,moil,mohicans,moderator,mocks,mobs,mizz,mites,mistresses,misspent,misinterpretation,mishka,miscarry,minuses,minotaur,minoan,mindee,mimicking,millisecond,milked,militants,migration,mightn't,mightier,mierzwiak,midwives,micronesia,microchips,microbes,michele's,mhmm,mezzanine,meyerling,meticulously,meteorite,metaphorical,mesmerizing,mershaw,meir,meg's,meecrob,medicate,medea,meddled,mckinnons,mcgewan,mcdunnough,mcats,mbien,maytag,mayors,matzah,matriarch,matic,mathematicians,masturbated,masselin,marxist,martyrs,martini's,martialed,marten's,marlboros,marksmanship,marishka,marion's,marinate,marge's,marchin,manifestations,manicured,mandela,mamma's,mame,malnourished,malk,malign,majorek,maidens,mahoney's,magnon,magnificently,maestro's,macking,machiavellian,macdougal,macchiato,macaws,macanaw,m'self,lynx,lynn's,lyman's,lydells,lusts,lures,luna's,ludwig's,lucite,lubricants,louise's,lopper,lopped,loneliest,lonelier,lomez,lojack,localized,locale,loath,lloyd's,literate,liquidated,liquefy,lippy,linguistic,limps,lillian's,likin,lightness,liesl,liebchen,licious,libris,libation,lhamo,lewis's,leveraged,leticia's,leotards,leopards,leonid,leonardo's,lemmings,leland's,legitimacy,leanin,laxatives,lavished,latka,later's,larval,lanyard,lans,lanky,landscaping,landmines,lameness,lakeshore,laddies,lackluster,lacerated,labored,laboratories,l'amour,kyrgyzstan,kreskin,krazy,kovitch,kournikova,kootchy,konoss,know's,knknow,knickety,knackety,kmart,klicks,kiwanis,kitty's,kitties,kites,kissable,kirby's,kingdoms,kindergartners,kimota,kimble's,kilter,kidnet,kidman,kid'll,kicky,kickbacks,kickback,kickass,khrushchev,kholokov,kewpie,kent's,keno,kendo,keller's,kcdm,katrina's,katra,kareoke,kaia,kafelnikov,kabob,ka's,junjun,jumba,julep,jordie,jondy,jolson,jinnah,jeweler's,jerkin,jenoff,jefferson's,jaye's,jawbone,janitorial,janiro,janie's,iron's,ipecac,invigorated,inverted,intruded,intros,intravenously,interruptus,interrogations,interracial,interpretive,internment,intermediate,intermediary,interject,interfacing,interestin,insuring,instilled,instantaneous,insistence,insensitivity,inscrutable,inroads,innards,inlaid,injector,initiatives,inhe,ingratitude,infuriates,infra,informational,infliction,infighting,induction,indonesian,indochina,indistinguishable,indicators,indian's,indelicate,incubators,incrimination,increments,inconveniencing,inconsolable,incite,incestuous,incas,incarnation,incarcerate,inbreeding,inaccessible,impudence,impressionists,implemented,impeached,impassioned,impacts,imipenem,idling,idiosyncrasies,icicle,icebreaker,icebergs,i'se,hyundai,hypotensive,hydrochloride,huuh,hushed,humus,humph,hummm,hulking,hubcaps,hubald,http,howya,howbout,how'll,houseguests,housebroken,hotwire,hotspots,hotheaded,horticulture,horrace,horde,horace's,hopsfield,honto,honkin,honeymoons,homophobia,homewrecker,hombres,hollow's,hollers,hollerin,hokkaido,hohh,hogwarts,hoedown,hoboes,hobbling,hobble,hoarse,hinky,himmler,hillcrest,hijacking,highlighters,hiccup,hibernation,hexes,heru'ur,hernias,herding,heppleman,henderson's,hell're,heine's,heighten,heheheheheh,heheheh,hedging,heckling,heckled,heavyset,heatshield,heathens,heartthrob,headpiece,headliner,he'p,hazelnut,hazards,hayseed,haveo,hauls,hattie's,hathor's,hasten,harriers,harridan,harpoons,harlin's,hardens,harcesis,harbouring,hangouts,hangman,handheld,halkein,haleh,halberstam,hairpin,hairnet,hairdressers,hacky,haah,haaaa,h'yah,gyms,gusta,gushy,gusher,gurgling,gunnery,guilted,guilt's,gruel,grudging,grrrrrr,grouse,grossing,grosses,groomsmen,griping,gretchen's,gregorian,gray's,gravest,gratified,grated,graphs,grandad,goulash,goopy,goonies,goona,goodman's,goodly,goldwater,godliness,godawful,godamn,gobs,gob's,glycerin,glutes,glowy,glop,globetrotters,glimpsed,glenville,glaucoma,girlscout,giraffes,gimp,gilbey,gil's,gigglepuss,ghora,gestating,geologists,geographically,gelato,gekko's,geishas,geek's,gearshift,gear's,gayness,gasped,gaslighting,garretts,garba,gams,gags,gablyczyck,g'head,fungi,fumigating,fumbling,fulton's,fudged,fuckwad,fuck're,fuchsia,fruition,freud's,fretting,freshest,frenchies,freezers,fredrica,fraziers,francesca's,fraidy,foxholes,fourty,fossilized,forsake,formulate,forfeits,foreword,foreclosed,foreal,foraging,footsies,focussed,focal,florists,flopped,floorshow,floorboard,flinching,flecks,flavours,flaubert,flatware,flatulence,flatlined,flashdance,flail,flagging,fizzle,fiver,fitzy,fishsticks,finster,finetti,finelli,finagle,filko,filipino,figurines,figurative,fifi,fieldstone,fibber,fiance's,feuds,feta,ferrini,female's,feedin,fedora,fect,feasting,favore,fathering,farrouhk,farmin,far's,fanny's,fajita,fairytale,fairservice,fairgrounds,fads,factoid,facet,facedown,fabled,eyeballin,extortionist,exquisitely,exporting,explicitly,expenditures,expedited,expands,exorcise,existentialist,exhaustive,execs,exculpatory,excommunicated,exacerbate,everthing,eventuality,evander,eustace,euphoric,euphemisms,eton,esto,estimation,estamos,establishes,erred,environmentalist,entrepreneurial,entitle,enquiries,enormity,engages,enfants,enen,endive,end's,encyclopedias,emulating,emts,employee's,emphasized,embossed,embittered,embassies,eliot,elicit,electrolyte,ejection,effortless,effectiveness,edvard,educators,edmonton's,ecuador,ectopic,ecirc,easely,earphones,earmarks,earmarked,earl's,dysentery,dwindling,dwight's,dweller,dusky,durslar,durned,dunois,dunking,dunked,dumdum,dullard,dudleys,duce,druthers,druggist,drug's,drossos,drosophila,drooled,driveways,drippy,dreamless,drawstring,drang,drainpipe,dragoons,dozing,down's,dour,dougie's,dotes,dorsal,dorkface,doorknobs,doohickey,donnell's,donnatella,doncha,don's,dominates,domicile,dokos,dobermans,djez,dizzying,divola,dividends,ditsy,distaste,disservice,disregarded,dispensed,dismay,dislodged,dislodge,disinherit,disinformation,discrete,discounting,disciplines,disapproved,dirtball,dinka,dimly,dilute,dilucca's,digesting,diello,diddling,dictatorships,dictators,diagonal,diagnostician,devours,devilishly,detract,detoxing,detours,detente,destructs,desecrated,descends,derris,deplore,deplete,depicts,depiction,depicted,denver's,denounce,demure,demolitions,demean,deluge,dell's,delish,deliberation,delbruck,delaford,deities,degaulle,deftly,deft,deformity,deflate,definatly,defense's,defector,deducted,decrypted,decontamination,decker's,decapitate,decanter,deadline's,dardis,danger's,dampener,damme,daddy'll,dabbling,dabbled,d'etre,d'argent,d'alene,d'agnasti,czechs,czechoslovakian,cyrillic,cymbal,cyberdyne,cutoffs,cuticle,cut's,curvaceous,curiousity,curfew's,culturally,cued,cubby,cruised,crucible,crowing,crowed,croutons,cropped,croaker,cristobel's,criminy,crested,crescentis,cred,cream's,crashers,crapola,cranwell,coverin,cousteau,courtrooms,counterattack,countenance,counselor's,cottages,cosmically,cosign,cosa,corroboration,corresponds,correspond,coroners,coro,cornflakes,corbett's,copy's,copperpot,copperhead,copacetic,coordsize,convulsing,contradicted,contract's,continuation,consults,consultations,constraints,conjures,congenial,confluence,conferring,confederation,condominium,concourse,concealer,compulsory,complexities,comparatively,compactor,commodities,commercialism,colleague's,collaborator,cokey,coiled,cognizant,cofell's,cobweb,co's,cnbc,clyde's,clunkers,clumsily,clucking,cloves,cloven,cloths,clothe,clop,clods,clocking,clings,climbers,clef,clearances,clavicle,claudia's,classless,clashing,clanking,clanging,clamping,civvies,citywide,citing,circulatory,circuited,circ,chung's,chronisters,chromic,choppy,choos,chongo,chloroformed,chilton's,chillun,chil,chicky,cheetos,cheesed,chatterbox,charlies,chaperoned,channukah,chamberlain's,chairman's,chaim,cessation,cerebellum,centred,centerpieces,centerfold,cellars,ceecee,ccedil,cavorting,cavemen,cavaliers,cauterized,caustic,cauldwell,catting,cathy's,caterine,castor's,cassiopeia,cascade's,carves,cartwheel,cartridges,carpeted,carob,carlsbad,caressing,carelessly,careening,carcinoma,capricious,capitalistic,capillaries,capes,candle's,candidly,canaan,camaraderie,calumet,callously,calligraphy,calfskin,cake's,caddies,cabinet's,buzzers,buttholes,butler's,busywork,busses,burps,burgomeister,buoy,bunny's,bunkhouse,bungchow,bulkhead,builders,bugler,buffets,buffed,buckaroo's,brutish,brusque,browser,bronchitis,bromden,brolly,brody's,broached,brewskis,brewski,brewin,brewers,brean,breadwinner,brana,brackets,bozz,bountiful,bounder,bouncin,bosoms,borgnine,bopping,bootlegs,booing,bons,boneyard,bombosity,bolting,bolivia,boilerplate,boba,bluey,blowback,blouses,bloodsuckers,bloodstained,blonde's,bloat,bleeth,blazed,blaine's,blackhawk,blackface,blackest,blackened,blacken,blackballed,blabs,blabbering,birdbrain,bipartisanship,biodegradable,binghamton,biltmore,billiards,bilked,big'uns,bidwell's,bidet,bessie's,besotted,beset,berth,bernheim,benson's,beni,benegas,bendiga,belushi,beltway,bellboys,belittling,belinda's,behinds,behemoth,begone,beeline,beehive,bedsheets,beckoning,beaute,beaudine,beastly,beachfront,be's,bauk,bathes,batak,bastion,baser,baseballs,barker's,barber's,barbella,bans,bankrolling,bangladesh,bandaged,bamba,bally's,bagpipe,bagger,baerly,backlog,backin,babying,azkaban,ayatollah,axes,awwwww,awakens,aviary,avery's,autonomic,authorizes,austero,aunty,augustine's,attics,atreus,astronomers,astounded,astonish,assertion,asserting,assailants,asha's,artemus,arses,arousal,armin,arintero,argon's,arduous,archers,archdiocese,archaeology,arbitrarily,ararat,appropriated,appraiser,applicable,apathetic,anybody'd,anxieties,anwar's,anticlimactic,antar,ankle's,anima,anglos,angleman,anesthetist,androscoggin,andromeda,andover,andolini,andale,anan,amway,amuck,amphibian,amniocentesis,amnesiac,ammonium,americano,amara,alway,alvah,alum,altruism,alternapalooza,alphabetize,alpaca,almanac,ally's,allus,alluded,allocation,alliances,allergist,alleges,alexandros,alec's,alaikum,alabam,akimbo,airy,ahab's,agoraphobia,agides,aggrhh,agatha's,aftertaste,affiliations,aegis,adoptions,adjuster,addictions,adamantium,acumen,activator,activates,acrylic,accomplishes,acclaimed,absorbs,aberrant,abbu,aarp,aaaaargh,aaaaaaaaaaaaa,a'ight,zucchini,zoos,zookeeper,zirconia,zippers,zequiel,zephyr's,zellary,zeitgeist,zanuck,zambia,zagat,ylang,yielded,yes'm,yenta,yegg,yecchh,yecch,yayo,yawp,yawns,yankin,yahdah,yaaah,y'got,xeroxed,wwooww,wristwatch,wrangled,wouldst,worthiness,wort,worshiping,worsen,wormy,wormtail,wormholes,woosh,woodworking,wonka,womens,wolverines,wollsten,wolfing,woefully,wobbling,witter's,wisp,wiry,wire's,wintry,wingding,windstorm,windowtext,wiluna,wilting,wilted,willick,willenholly,wildflowers,wildebeest,wilco,wiggum,wields,widened,whyyy,whoppers,whoaa,whizzing,whizz,whitest,whitefish,whistled,whist,whinny,whereupon,whereby,wheelies,wheaties,whazzup,whatwhatwhaaat,whato,whatdya,what'dya,whar,whacks,wexler's,wewell,wewe,wetsuit,wetland,westport,welluh,weight's,weeps,webpage,waylander,wavin,watercolors,wassail,wasnt,warships,warns,warneford,warbucks,waltons,wallbanger,waiving,waitwait,vowing,voucher,vornoff,vork,vorhees,voldemort,vivre,vittles,vishnu,vips,vindaloo,videogames,victors,vicky's,vichyssoise,vicarious,vet's,vesuvius,verve,verguenza,venturing,ventura's,venezuelan,ven't,velveteen,velour,velociraptor,vegetation,vaudeville,vastness,vasectomies,vapors,vanderhof,valmont,validates,valiantly,valerian,vacuums,vaccines,uzbekistan,usurp,usernum,us'll,urinals,unyielding,unwillingness,unvarnished,unturned,untouchables,untangled,unsecured,unscramble,unreturned,unremarkable,unregistered,unpublished,unpretentious,unopposed,unnerstand,unmade,unlicensed,unites,union's,uninhabited,unimpeachable,unilateral,unicef,unfolded,unfashionable,undisturbed,underwriting,underwrite,underlining,underling,underestimates,underappreciated,undamaged,uncouth,uncork,uncontested,uncommonly,unclog,uncircumcised,unchallenged,uncas,unbuttoning,unapproved,unamerican,unafraid,umpteen,umhmm,uhwhy,uhmm,ughuh,ughh,ufo's,typewriters,twitches,twitched,twirly,twinkling,twink,twinges,twiddling,twiddle,tutored,tutelage,turners,turnabout,ture,tunisian,tumultuous,tumour,tumblin,tryed,truckin,trubshaw's,trowel,trousseau,trivialize,trifles,tribianni,trib,triangulation,trenchcoat,trembled,traumatize,transplanted,translations,transitory,transients,transfuse,transforms,transcribing,transcend,tranq,trampy,traipsed,trainin,trail's,trafalgar,trachea,traceable,touristy,toughie,totality,totaling,toscanini,tortola,tortilla,tories,toreador,tooo,tonka,tommorrow,tollbooth,tollans,toidy,togs,togas,tofurkey,toddling,toddies,tobruk,toasties,toadstool,to've,tive,tingles,timin,timey,timetables,tightest,tide's,tibetans,thunderstorms,thuggee,thrusting,thrombus,throes,throated,thrifty,thoroughbred,thornharts,thinnest,thicket,thetas,thesulac,tethered,testimonial,testaburger,tersenadine,terrif,teresa's,terdlington,tepui,tenured,tentacle,temping,temperance,temp's,teller's,televisions,telefono,tele,teddies,tector,taxidermy,taxi's,taxation,tastebuds,tasker's,tartlets,tartabull,tard,tar'd,tantamount,tans,tangy,tangles,tamer,talmud,taiwan's,tabula,tabletops,tabithia,tabernacle,szechwan,syrian,synthedyne,synopsis,synonyms,swaps,swahili,svenjolly,svengali,suvs,sush,survivalists,surmise,surfboards,surefire,suprise,supremacists,suppositories,supervisors,superstore,supermen,supercop,supercilious,suntac,sunburned,summercliff,sullied,suite's,sugared,sufficiency,suerte,suckle,sucker's,sucka,succumbing,subtleties,substantiated,subsidiaries,subsides,subliminal,subhuman,stst,strowman,stroked,stroganoff,strikers,strengthening,streetlight,straying,strainer,straighter,straightener,storytelling,stoplight,stockade,stirrups,stink's,sting's,stimulates,stifler's,stewing,stetson's,stereotyping,ster,stepmommy,stephano,steeped,statesman,stashing,starshine,stand's,stamping,stamford,stairwells,stabilization,squatsie,squandering,squalid,squabbling,squab,sprinkling,spring's,spreader,spongy,spongebob,spokeswoman,spokesmen,splintered,spittle,spitter,spiced,spews,spendin,spect,speckled,spearchucker,spatulas,sparse,sparking,spares,spaceboy,soybeans,southtown,southside,southport,southland,soused,sotheby's,soshi,sorter,sorrowful,sorceress,sooth,songwriters,some'in,solstice,soliloquy,sods,sodomized,sode,sociologist,sobriki,soaping,snows,snowcone,snowcat,snitching,snitched,sneering,snausages,snaking,smoothed,smoochies,smolensk,smarten,smallish,slushy,slurring,sluman,slobber,slithers,slippin,sleuthing,sleeveless,slade's,skinner's,skinless,skillfully,sketchbook,skagnetti,sista,sioux,sinning,sinjin,singularly,sinewy,sinclair's,simultaneous,silverlake,silva's,siguto,signorina,signature's,signalling,sieve,sids,sidearms,shyster,shying,shunning,shtud,shrooms,shrieks,shorting,shortbread,shopkeepers,shmuck,shmancy,shizzit,shitheads,shitfaced,shitbag,shipmates,shiftless,sherpa,shelving,shelley's,sheik,shedlow,shecky,sheath,shavings,shatters,sharifa,shampoos,shallots,shafter,sha'nauc,sextant,settlers,setter,seti,serviceable,serrated,serbian,sequentially,sepsis,senores,sendin,semis,semanski,seller's,selflessly,selects,selectively,seinfelds,seers,seer's,seeps,see's,seductress,sedimentary,sediment,second's,secaucus,seater,seashore,sealant,seaborn's,scuttling,scusa,sculpting,scrunched,scrimmage,screenwriter,scotsman,scorer,sclerosis,scissorhands,schreber,scholastic,schmancy,schlong,scathing,scandinavia,scamps,scalloped,savoir,savagery,sasha's,sarong,sarnia,santangel,samool,samba,salons,sallow,salino,safecracker,sadism,saddles,sacrilegious,sabrini,sabath,s'aright,ruttheimer,russia's,rudest,rubbery,rousting,rotarian,roslin,rosey,rosa's,roomed,romari,romanticism,romanica,rolltop,rolfski,rod's,rockland,rockettes,roared,riverfront,rinpoche,ringleader,rims,riker's,riffing,ricans,ribcage,riana's,rhythmic,rhah,rewired,retroactive,retrial,reting,reticulum,resuscitated,resuming,restricting,restorations,restock,resilience,reservoirs,resembled,resale,requisitioned,reprogrammed,reproducing,repressive,replicant,repentant,repellant,repays,repainting,reorganization,renounced,renegotiating,rendez,renamed,reminiscent,remem,remade,relived,relinquishes,reliant,relearn,relaxant,rekindling,rehydrate,regulatory,regiments,regan's,refueled,refrigeration,refreshingly,reflector,refine,refilling,reexamine,reeseman,redness,redirected,redeemable,redder,redcoats,rectangles,recoup,reconstituted,reciprocated,recipients,recessed,recalls,rebounded,reassessing,realy,reality's,realisation,realer,reachin,re'kali,rawlston,ravages,rattlers,rasa,raps,rappaports,ramoray,ramming,ramadan,raindrops,rahesh,radioactivity,radials,racists,racin,rabartu,quotas,quintus,quiches,ques,queries,quench,quel,quarrels,quarreling,quaintly,quagmire,quadrants,pylon,putumayo,put'em,purifier,purified,pureed,punitis,pullout,pukin,pudgy,puddings,puckering,puccini,pterodactyl,psychodrama,pseudonym,psats,proximal,providers,protestations,protectee,prospered,prosaic,propositioned,prolific,progressively,proficiency,professions,prodigious,proclivity,probed,probabilities,pro's,prison's,printouts,principally,prig,prevision,prevailing,presumptive,pressers,preset,presentations,preposition,preparatory,preliminaries,preempt,preemie,predetermined,preconceptions,precipitate,prancan,powerpuff,powerfully,potties,potters,potpie,poseur,portraying,portico,porthole,portfolios,poops,pooping,pone,pomp,pomade,polyps,polymerized,politic,politeness,polisher,polack,pokers,pocketknife,poatia,plebeian,playgroup,platonically,plato's,platitude,platelet,plastering,plasmapheresis,plaques,plaids,placemats,place's,pizzazz,piracy,pipelines,pip's,pintauro,pinstripes,pinpoints,pinkner,pincer,pimento,pillaged,pileup,pilates,pigment,pigmen,pieter,pieeee,picturesque,piano's,phrasing,phrased,photojournalist,photocopies,phosphorus,phonograph,phoebes,phoe,philistines,philippine,philanderer,pheromone,phasers,pharaoh's,pfff,pfeffernuesse,petrov,petitions,peterman's,peso,pervs,perspire,personify,perservere,perplexed,perpetrating,perp's,perkiness,perjurer,periodontist,perfunctory,performa,perdido,percodan,penzance,pentameter,pentagon's,pentacle,pensive,pensione,pennybaker,pennbrooke,penhall,pengin,penetti,penetrates,pegs,pegnoir,peeve,peephole,pectorals,peckin,peaky,peaksville,payout,paxcow,paused,pauline's,patted,pasteur,passe,parochial,parkland,parkishoff,parkers,pardoning,paraplegic,paraphrasing,parapet,paperers,papered,panoramic,pangs,paneling,pander,pandemonium,pamela's,palooza,palmed,palmdale,palisades,palestinian,paleolithic,palatable,pakistanis,pageants,packaged,pacify,pacified,oyes,owwwww,overthrown,overt,oversexed,overriding,overrides,overpaying,overdrawn,overcompensate,overcomes,overcharged,outtakes,outmaneuver,outlying,outlining,outfoxed,ousted,oust,ouse,ould,oughtn't,ough,othe,ostentatious,oshun,oscillation,orthopedist,organizational,organization's,orca,orbits,or'derves,opting,ophthalmologist,operatic,operagirl,oozes,oooooooh,only's,onesie,omnis,omelets,oktoberfest,okeydoke,ofthe,ofher,obstetrics,obstetrical,obeys,obeah,o'rourke,o'reily's,o'henry,nyquil,nyanyanyanyah,nuttin,nutsy,nutrients,nutball,nurhachi,numbskull,nullifies,nullification,nucking,nubbin,ntnt,nourished,notoriety,northland,nonspecific,nonfiction,noing,noinch,nohoho,nobler,nitwits,nitric,nips,nibs,nibbles,newton's,newsprint,newspaperman,newspaper's,newscaster,never's,neuter,neuropathy,netherworld,nests,nerf,neee,neediest,neath,navasky,naturalization,nat's,narcissists,napped,nando,nags,nafta,myocardial,mylie's,mykonos,mutilating,mutherfucker,mutha,mutations,mutates,mutate,musn't,muskets,murray's,murchy,mulwray's,multitasking,muldoon's,mujeeb,muerte,mudslinging,muckraking,mrsa,mown,mousie,mousetrap,mourns,mournful,motivating,motherland,motherf,mostro,mosaic,morphing,morphate,mormons,moralistic,moored,moochy,mooching,monotonous,monorail,monopolize,monogram,monocle,molehill,molar,moland,mofet,modestly,mockup,moca,mobilizing,mitzvahs,mitre,mistreating,misstep,misrepresentation,misjudge,misinformation,miserables,misdirected,miscarriages,minute's,miniskirt,minimizing,mindwarped,minced,milquetoast,millimeters,miguelito,migrating,mightily,midsummer,midstream,midriff,mideast,midas,microbe,metropolis,methuselah,mesdames,mescal,mercury's,menudo,menu's,mentors,men'll,memorial's,memma,melvins,melanie's,megaton,megara,megalomaniac,meeee,medulla,medivac,mediate,meaninglessness,mcnuggets,mccarthyism,maypole,may've,mauve,maturing,matter's,mateys,mate's,mastering,masher,marxism,martimmy's,marshack,marseille,markles,marketed,marketable,mansiere,manservant,manse,manhandling,manco's,manana,maman,malnutrition,mallomars,malkovich's,malcontent,malaise,makeup's,majesties,mainsail,mailmen,mahandra,magnolias,magnified,magev,maelstrom,madcap,mack's,machu,macfarlane's,macado,ma'm,m'boy,m'appelle,lying's,lustrous,lureen,lunges,lumped,lumberyard,lulled,luego,lucks,lubricated,loveseat,loused,lounger,loski,lorre,loora,looong,loonies,lonnegan's,lola's,loire,loincloth,logistical,lofts,lodges,lodgers,lobbing,loaner,livered,lithuania,liqueur,linkage,ling's,lillienfield's,ligourin,lighter's,lifesaving,lifeguards,lifeblood,library's,liberte,liaisons,liabilities,let'em,lesbianism,lenny's,lennart,lence,lemonlyman,legz,legitimize,legalized,legalization,leadin,lazars,lazarro,layoffs,lawyering,lawson's,lawndale's,laugher,laudanum,latte's,latrines,lations,laters,lastly,lapels,lansing's,lan's,lakefront,lait,lahit,lafortunata,lachrymose,laborer,l'italien,l'il,kwaini,kuzmich,kuato's,kruczynski,kramerica,krakatoa,kowtow,kovinsky,koufax,korsekov,kopek,knoxville,knowakowski,knievel,knacks,klux,klein's,kiran,kiowas,kinshasa,kinkle's,kincaid's,killington,kidnapper's,kickoff,kickball,khan's,keyworth,keymaster,kevie,keveral,kenyons,keggers,keepsakes,kechner,keaty,kavorka,katmandu,katan's,karajan,kamerev,kamal's,kaggs,juvi,jurisdictional,jujyfruit,judeo,jostled,joni's,jonestown,jokey,joists,joint's,johnnie's,jocko,jimmied,jiggled,jig's,jests,jessy,jenzen,jensen's,jenko,jellyman,jeet,jedediah,jealitosis,jaya's,jaunty,jarmel,jankle,jagoff,jagielski,jacky,jackrabbits,jabbing,jabberjaw,izzat,iuml,isolating,irreverent,irresponsibly,irrepressible,irregularity,irredeemable,investigator's,inuvik,intuitions,intubated,introspective,intrinsically,intra,intimates,interval,intersections,interred,interned,interminable,interloper,intercostal,interchange,integer,intangible,instyle,instrumentation,instigate,instantaneously,innumerable,inns,injustices,ining,inhabits,ings,ingrown,inglewood,ingestion,ingesting,infusion,infusing,infringing,infringe,inflection,infinitum,infact,inexplicably,inequities,ineligible,industry's,induces,indubitably,indisputable,indirect,indescribably,independents,indentation,indefinable,incursion,incontrovertible,inconsequential,incompletes,incoherently,inclement,inciting,incidentals,inarticulate,inadequacies,imprudent,improvisation,improprieties,imprison,imprinted,impressively,impostors,importante,implicit,imperious,impale,immortalized,immodest,immobile,imbued,imbedded,imbecilic,illustrates,illegals,iliad,idn't,idiom,icons,hysteric,hypotenuse,hygienic,hyeah,hushpuppies,hunhh,hungarians,humpback,humored,hummed,humiliates,humidifier,huggy,huggers,huckster,html,hows,howlin,hoth,hotbed,hosing,hosers,horsehair,homegrown,homebody,homebake,holographic,holing,holies,hoisting,hogwallop,hogan's,hocks,hobbits,hoaxes,hmmmmm,hisses,hippos,hippest,hindrance,hindi,him's,hillbillies,hilarity,highball,hibiscus,heyday,heurh,hershey's,herniated,hermaphrodite,hera,hennifer,hemlines,hemline,hemery,helplessness,helmsley,hellhound,heheheheh,heey,heeey,hedda,heck's,heartbeats,heaped,healers,headstart,headsets,headlong,headlining,hawkland,havta,havana's,haulin,hastened,hasn,harvey'll,harpo,hardass,haps,hanta,hansom,hangnail,handstand,handrail,handoff,hander,han's,hamlet's,hallucinogen,hallor,halitosis,halen,hahah,hado,haberdashery,gypped,guy'll,guni,gumbel,gulch,gues,guerillas,guava,guatemalan,guardrail,guadalajara,grunther,grunick,grunemann's,growers,groppi,groomer,grodin,gris,gripes,grinds,grimaldi's,grifters,griffins,gridlock,gretch,greevey,greasing,graveyards,grandkid,grainy,graced,governed,gouging,gordie's,gooney,googly,golfers,goldmuff,goldenrod,goingo,godly,gobbledygook,gobbledegook,goa'uld's,glues,gloriously,glengarry,glassware,glamor,glaciers,ginseng,gimmicks,gimlet,gilded,giggly,gig's,giambetti,ghoulish,ghettos,ghandi,ghali,gether,get's,gestation,geriatrics,gerbils,gerace's,geosynchronous,georgio,geopolitical,genus,gente,genital,geneticist,generation's,generates,gendarme,gelbman,gazillionth,gayest,gauging,gastro,gaslight,gasbag,garters,garish,garas,garages,gantu,gangy,gangly,gangland,gamer,galling,galilee,galactica's,gaiety,gadda,gacy,futuristic,futs,furrowed,funny's,funnies,funkytown,fundraisers,fundamentalist,fulcrum,fugimotto,fuente,fueling,fudging,fuckup,fuckeen,frutt's,frustrates,froufrou,froot,frontiers,fromberge,frog's,frizzies,fritters,fringes,frightfully,frigate,friendliest,freeloading,freelancing,fredonia,freakazoid,fraternization,frankfurter,francine's,franchises,framers,fostered,fortune's,fornication,fornicating,formulating,formations,forman's,forgeries,forethought,forage,footstool,foisting,focussing,focking,foal,flutes,flurries,fluffed,flourished,florida's,floe,flintstones,fleischman's,fledgling,fledermaus,flayed,flay,flawlessly,flatters,flashbang,flapped,flanking,flamer,fission,fishies,firmer,fireproof,fireman's,firebug,firebird,fingerpainting,finessed,findin,financials,finality,fillets,fighter's,fiercest,fiefdom,fibrosis,fiberglass,fibbing,feudal,festus,fervor,fervent,fentanyl,fenelon,fenders,fedorchuk,feckless,feathering,fearsome,fauna,faucets,farmland,farewells,fantasyland,fanaticism,faltered,fallacy,fairway,faggy,faberge,extremism,extorting,extorted,exterminating,exhumation,exhilaration,exhausts,exfoliate,exemptions,excesses,excels,exasperating,exacting,evoked,evocative,everyman,everybody'd,evasions,evangelical,establishments,espressos,esoteric,esmail,errrr,erratically,eroding,erode,ernswiler,episcopalian,ephemeral,epcot,entrenched,entomology,entomologist,enthralled,ensuing,ensenada,enriching,enrage,enlisting,enhancer,enhancements,endorsing,endear,encrusted,encino,enacted,employing,emperors,empathic,embodied,embezzle,embarked,emanates,elton's,eloquence,eloi,elmwood,elliptical,ellenor's,elemental,electricians,electing,elapsed,eking,egomaniacal,eggo,egging,effected,effacing,eeww,edits,editor's,edging,ectoplasm,economical,ecch,eavesdropped,eastbound,earwig,e'er,durable,dunbar's,dummkopf,dugray,duchaisne,duality,drusilla's,drunkard,drudge,drucilla's,droop,droids,drips,dripped,dribbles,drew's,dressings,drazens,downy,downsize,downpour,dowager,dote,dosages,dorothy's,doppler,doppelganger,dopes,doorman's,doohicky,doof,dontcha,donovon's,doneghy,domi,domes,dojo,documentaries,divinity,divining,divest,diuretics,diuretic,distrustful,distortions,dissident,disrupts,disruptions,disproportionate,dispensary,disparity,dismemberment,dismember,disinfect,disillusionment,disheartening,discriminated,discourteous,discotheque,discolored,disassembled,disabling,dirtiest,diphtheria,dinks,dimpled,digg,diffusion,differs,didya,dickweed,dickwad,dickson's,diatribes,diathesis,diabetics,dewars,deviants,detrimental,detonates,detests,detestable,detaining,despondent,desecration,descriptive,derision,derailing,deputized,depressors,depo,depicting,depict,dependant,dentures,denominators,demur,demonstrators,demonology,delts,dellarte,delinquency,delacour,deflated,definitively,defib,defected,defaced,deeded,decorators,debit,deaqon,davola,datin,dasilva's,darwinian,darling's,darklighters,dandelions,dandelion,dancer's,dampened,dame's,damaskinos,dama,dalrimple,dagobah,dack,d'peshu,d'hoffryn,d'astier,cystic,cynics,cybernetic,cutoff,cutesy,cutaway,customarily,curtain's,cursive,curmudgeon,curdle,cuneiform,cultivated,culpability,culo,cuisinart,cuffing,crypts,cryptid,cryogenic,crux,crunched,crumblers,crudely,crosscheck,croon,crissake,crime's,cribbage,crevasse,creswood,creepo,creases,creased,creaky,cranks,cran,craftsmen,crafting,crabgrass,cowboy's,coveralls,couple'a,councilors,coughs,cotton's,cosmology,coslaw,corresponded,corporeal,corollary,cornucopia,cornering,corks,cordoned,coolly,coolin,cooley's,coolant,cookbooks,converging,contrived,contrite,contributors,contradictory,contra,contours,contented,contenders,contemplated,contact's,constrictor,congressman's,congestion,confrontations,confound,conform,confit,confiscating,conferred,condoned,conditioners,concussions,concentric,conceding,coms,comprised,comprise,comprendo,composers,commuted,commercially,commentator,commentaries,commemorating,commander's,comers,comedic,combustible,combusted,columbo,columbia's,colourful,colonials,collingswood,coliseum,coldness,cojones,coitus,cohesive,cohesion,cohen's,coffey's,codicil,cochran's,coasting,clydesdale,cluttering,clunker,clunk,clumsiness,clumps,clotted,clothesline,clinches,clincher,cleverness,clench,clein,cleave,cleanses,claymores,clarisse,clarissa's,clammed,civilisation,ciudad,circumvent,circulated,circuit's,cinnamon's,cind,church's,chugging,chronically,christsakes,chris's,choque,chompers,choco,chiseling,chirpy,chirp,chinks,chingachgook,chigger,chicklet,chickenpox,chickadee,chewin,chessboard,cherub,chemo's,chauffeur's,chaucer,chariots,chargin,characterizing,chanteuse,chandeliers,chamdo,chalupa,chagrined,chaff,certs,certify,certification,certainties,cerreno,cerebrum,cerebro,century's,centennial,censured,cemetary,cellist,celine's,cedar's,cayo,caterwauling,caterpillars,categorized,catchers,cataclysmic,cassidy's,casitas,casino's,cased,carvel,cartographers,carting,cartels,carriages,carrear,carr's,carolling,carolinas,carolers,carnie,carne,cardiovascular,cardiogram,carbuncle,caramba,capulets,capping,canyons,canines,candaules,canape,canadiens,campaigned,cambodian,camberwell,caldecott,calamitous,caff,cadillacs,cachet,cabeza,cabdriver,byzantium,buzzkill,buzzards,buzz's,buyer's,butai,bustling,businesswomen,bunyan,bungled,bumpkins,bummers,bulletins,bullet's,bulldoze,bulbous,bug's,buffybot,budgeted,budda,bubut,bubbies,brunei,brrrrr,brownout,brouhaha,bronzing,bronchial,broiler,broadening,briskly,briefcases,bricked,breezing,breeher,breckinridge,breakwater,breakable,breadstick,bravenet,braved,brass's,brandies,brandeis,branched,brainwaves,brainiest,braggart,bradlee,boys're,boys'll,boys'd,boyd's,boutonniere,bottle's,bossed,bosomy,bosnian,borans,boosts,boombox,bookshelves,bookmark,booklet,bookends,bontecou's,bongos,boneless,bone's,bond's,bombarding,bombarded,bollo,boinked,boink,boilers,bogart's,bobbo,bobbin,bluest,bluebells,blowjobs,bloodshot,blondie's,blockhead,blockbusters,blithely,blim,bleh,blather,blasters,blankly,bladders,blackhawks,blackbeard,bjorn,bitte,bippy,bios,biohazard,biogenetics,biochemistry,biochemist,bilingual,bilge,bigmouth,bighorn,bigglesworth,bicuspids,beususe,betaseron,besmirch,besieged,bernece,bergman's,bereavement,bentonville,benthic,benjie,benji's,benefactors,benchley,benching,bembe,bellyaching,bellhops,belie,beleaguered,being's,behrle,beginnin,begining,beenie,beefs,beechwood,bee's,bedbug,becau,beaverhausen,beakers,beacon's,bazillion,baudouin,bat's,bartlett's,barrytown,barringtons,baroque,baronet,barneys,barbs,barbers,barbatus,baptists,bankrupted,banker's,bamn,bambi's,ballon's,balinese,bakeries,bailiffs,backslide,baby'd,baaad,b'fore,awwwk,aways,awakes,averages,avengers,avatars,autonomous,automotive,automaton,automatics,autism,authoritative,authenticated,authenticate,aught,audition's,aubyn,attired,attagirl,atrophied,atonement,atherton's,asystole,astroturf,assimilated,assimilate,assertiveness,assemblies,assassin's,artiste,article's,artichokes,arsehole,arrears,arquillians,arnie's,aright,archenemy,arched,arcade's,aquatic,apps,appraise,applauded,appendages,appeased,apostle,apollo's,antwerp,antler,antiquity,antin,antidepressant,antibody,anthropologists,anthology,anthea,antagonism,ant's,anspaugh,annually,anka,angola,anesthetics,anda,ancients,anchoring,anaphylactic,anaheim,ana's,amtrak,amscray,amputated,amounted,americas,amended,ambivalence,amalio,amah,altoid,alriiight,alphabetized,alpena,alouette,allowable,allora,alliteration,allenwood,alleging,allegiances,aligning,algerians,alerts,alchemist,alcerro,alastor,airway's,airmen,ahaha,ah'm,agitators,agitation,aforethought,afis,aesthetics,aerospace,aerodynamics,advertises,advert,advantageous,admonition,administration's,adirondacks,adenoids,adebisi's,acupuncturist,acula,actuarial,activators,actionable,acme's,acknowledges,achmed,achingly,acetate,accusers,accumulation,accorded,acclimated,acclimate,absurdly,absorbent,absolvo,absolutes,absences,abraham's,aboriginal,ablaze,abdomenizer,aaaaaaaaah,aaaaaaaaaa,a'right".split(","))),
+r("male_names",q("james,john,robert,michael,william,david,richard,charles,joseph,thomas,christopher,daniel,paul,mark,donald,george,kenneth,steven,edward,brian,ronald,anthony,kevin,jason,matthew,gary,timothy,jose,larry,jeffrey,frank,scott,eric,stephen,andrew,raymond,gregory,joshua,jerry,dennis,walter,patrick,peter,harold,douglas,henry,carl,arthur,ryan,roger,joe,juan,jack,albert,jonathan,justin,terry,gerald,keith,samuel,willie,ralph,lawrence,nicholas,roy,benjamin,bruce,brandon,adam,harry,fred,wayne,billy,steve,louis,jeremy,aaron,randy,eugene,carlos,russell,bobby,victor,ernest,phillip,todd,jesse,craig,alan,shawn,clarence,sean,philip,chris,johnny,earl,jimmy,antonio,danny,bryan,tony,luis,mike,stanley,leonard,nathan,dale,manuel,rodney,curtis,norman,marvin,vincent,glenn,jeffery,travis,jeff,chad,jacob,melvin,alfred,kyle,francis,bradley,jesus,herbert,frederick,ray,joel,edwin,don,eddie,ricky,troy,randall,barry,bernard,mario,leroy,francisco,marcus,micheal,theodore,clifford,miguel,oscar,jay,jim,tom,calvin,alex,jon,ronnie,bill,lloyd,tommy,leon,derek,darrell,jerome,floyd,leo,alvin,tim,wesley,dean,greg,jorge,dustin,pedro,derrick,dan,zachary,corey,herman,maurice,vernon,roberto,clyde,glen,hector,shane,ricardo,sam,rick,lester,brent,ramon,tyler,gilbert,gene,marc,reginald,ruben,brett,angel,nathaniel,rafael,edgar,milton,raul,ben,cecil,duane,andre,elmer,brad,gabriel,ron,roland,jared,adrian,karl,cory,claude,erik,darryl,neil,christian,javier,fernando,clinton,ted,mathew,tyrone,darren,lonnie,lance,cody,julio,kurt,allan,clayton,hugh,max,dwayne,dwight,armando,felix,jimmie,everett,ian,ken,bob,jaime,casey,alfredo,alberto,dave,ivan,johnnie,sidney,byron,julian,isaac,clifton,willard,daryl,virgil,andy,salvador,kirk,sergio,seth,kent,terrance,rene,eduardo,terrence,enrique,freddie,stuart,fredrick,arturo,alejandro,joey,nick,luther,wendell,jeremiah,evan,julius,donnie,otis,trevor,luke,homer,gerard,doug,kenny,hubert,angelo,shaun,lyle,matt,alfonso,orlando,rex,carlton,ernesto,pablo,lorenzo,omar,wilbur,blake,horace,roderick,kerry,abraham,rickey,ira,andres,cesar,johnathan,malcolm,rudolph,damon,kelvin,rudy,preston,alton,archie,marco,wm,pete,randolph,garry,geoffrey,jonathon,felipe,bennie,gerardo,ed,dominic,loren,delbert,colin,guillermo,earnest,benny,noel,rodolfo,myron,edmund,salvatore,cedric,lowell,gregg,sherman,devin,sylvester,roosevelt,israel,jermaine,forrest,wilbert,leland,simon,irving,owen,rufus,woodrow,kristopher,levi,marcos,gustavo,lionel,marty,gilberto,clint,nicolas,laurence,ismael,orville,drew,ervin,dewey,al,wilfred,josh,hugo,ignacio,caleb,tomas,sheldon,erick,frankie,darrel,rogelio,terence,alonzo,elias,bert,elbert,ramiro,conrad,noah,grady,phil,cornelius,lamar,rolando,clay,percy,dexter,bradford,merle,darin,amos,terrell,moses,irvin,saul,roman,darnell,randal,tommie,timmy,darrin,brendan,toby,van,abel,dominick,emilio,elijah,cary,domingo,aubrey,emmett,marlon,emanuel,jerald,edmond,emil,dewayne,otto,teddy,reynaldo,bret,jess,trent,humberto,emmanuel,stephan,louie,vicente,lamont,garland,micah,efrain,heath,rodger,demetrius,ethan,eldon,rocky,pierre,eli,bryce,antoine,robbie,kendall,royce,sterling,grover,elton,cleveland,dylan,chuck,damian,reuben,stan,leonardo,russel,erwin,benito,hans,monte,blaine,ernie,curt,quentin,agustin,jamal,devon,adolfo,tyson,wilfredo,bart,jarrod,vance,denis,damien,joaquin,harlan,desmond,elliot,darwin,gregorio,kermit,roscoe,esteban,anton,solomon,norbert,elvin,nolan,carey,rod,quinton,hal,brain,rob,elwood,kendrick,darius,moises,marlin,fidel,thaddeus,cliff,marcel,ali,raphael,bryon,armand,alvaro,jeffry,dane,joesph,thurman,ned,sammie,rusty,michel,monty,rory,fabian,reggie,kris,isaiah,gus,avery,loyd,diego,adolph,millard,rocco,gonzalo,derick,rodrigo,gerry,rigoberto,alphonso,ty,rickie,noe,vern,elvis,bernardo,mauricio,hiram,donovan,basil,nickolas,scot,vince,quincy,eddy,sebastian,federico,ulysses,heriberto,donnell,denny,gavin,emery,romeo,jayson,dion,dante,clement,coy,odell,jarvis,bruno,issac,dudley,sanford,colby,carmelo,nestor,hollis,stefan,donny,art,linwood,beau,weldon,galen,isidro,truman,delmar,johnathon,silas,frederic,irwin,merrill,charley,marcelino,carlo,trenton,kurtis,aurelio,winfred,vito,collin,denver,leonel,emory,pasquale,mohammad,mariano,danial,landon,dirk,branden,adan,numbers,clair,buford,german,bernie,wilmer,emerson,zachery,jacques,errol,josue,edwardo,wilford,theron,raymundo,daren,tristan,robby,lincoln,jame,genaro,octavio,cornell,hung,arron,antony,herschel,alva,giovanni,garth,cyrus,cyril,ronny,stevie,lon,kennith,carmine,augustine,erich,chadwick,wilburn,russ,myles,jonas,mitchel,mervin,zane,jamel,lazaro,alphonse,randell,major,johnie,jarrett,ariel,abdul,dusty,luciano,seymour,scottie,eugenio,mohammed,valentin,arnulfo,lucien,ferdinand,thad,ezra,aldo,rubin,royal,mitch,earle,abe,marquis,lanny,kareem,jamar,boris,isiah,emile,elmo,aron,leopoldo,everette,josef,eloy,dorian,rodrick,reinaldo,lucio,jerrod,weston,hershel,lemuel,lavern,burt,jules,gil,eliseo,ahmad,nigel,efren,antwan,alden,margarito,refugio,dino,osvaldo,les,deandre,normand,kieth,ivory,trey,norberto,napoleon,jerold,fritz,rosendo,milford,sang,deon,christoper,alfonzo,lyman,josiah,brant,wilton,rico,jamaal,dewitt,brenton,yong,olin,faustino,claudio,judson,gino,edgardo,alec,jarred,donn,trinidad,tad,porfirio,odis,lenard,chauncey,tod,mel,marcelo,kory,augustus,keven,hilario,bud,sal,orval,mauro,dannie,zachariah,olen,anibal,milo,jed,thanh,amado,lenny,tory,richie,horacio,brice,mohamed,delmer,dario,mac,jonah,jerrold,robt,hank,sung,rupert,rolland,kenton,damion,chi,antone,waldo,fredric,bradly,kip,burl,tyree,jefferey,ahmed,willy,stanford,oren,moshe,mikel,enoch,brendon,quintin,jamison,florencio,darrick,tobias,minh,hassan,giuseppe,demarcus,cletus,tyrell,lyndon,keenan,werner,theo,geraldo,columbus,chet,bertram,markus,huey,hilton,dwain,donte,tyron,omer,isaias,hipolito,fermin,chung,adalberto,jamey,teodoro,mckinley,maximo,sol,raleigh,lawerence,abram,rashad,emmitt,daron,chong,samual,otha,miquel,eusebio,dong,domenic,darron,wilber,renato,hoyt,haywood,ezekiel,chas,florentino,elroy,clemente,arden,neville,edison,deshawn,carrol,shayne,nathanial,jordon,danilo,claud,val,sherwood,raymon,rayford,cristobal,ambrose,titus,hyman,felton,ezequiel,erasmo,lonny,len,ike,milan,lino,jarod,herb,andreas,rhett,jude,douglass,cordell,oswaldo,ellsworth,virgilio,toney,nathanael,del,benedict,mose,hong,isreal,garret,fausto,asa,arlen,zack,modesto,francesco,manual,jae,gaylord,gaston,filiberto,deangelo,michale,granville,wes,malik,zackary,tuan,nicky,cristopher,antione,malcom,korey,jospeh,colton,waylon,von,hosea,shad,santo,rudolf,rolf,rey,renaldo,marcellus,lucius,kristofer,harland,arnoldo,rueben,leandro,kraig,jerrell,jeromy,hobert,cedrick,arlie,winford,wally,luigi,keneth,jacinto,graig,franklyn,edmundo,sid,leif,jeramy,willian,vincenzo,shon,michal,lynwood,jere,hai,elden,darell,broderick,alonso".split(","))),
+r("female_names",q("mary,patricia,linda,barbara,elizabeth,jennifer,maria,susan,margaret,dorothy,lisa,nancy,karen,betty,helen,sandra,donna,carol,ruth,sharon,michelle,laura,sarah,kimberly,deborah,jessica,shirley,cynthia,angela,melissa,brenda,amy,anna,rebecca,virginia,kathleen,pamela,martha,debra,amanda,stephanie,carolyn,christine,marie,janet,catherine,frances,ann,joyce,diane,alice,julie,heather,teresa,doris,gloria,evelyn,jean,cheryl,mildred,katherine,joan,ashley,judith,rose,janice,kelly,nicole,judy,christina,kathy,theresa,beverly,denise,tammy,irene,jane,lori,rachel,marilyn,andrea,kathryn,louise,sara,anne,jacqueline,wanda,bonnie,julia,ruby,lois,tina,phyllis,norma,paula,diana,annie,lillian,emily,robin,peggy,crystal,gladys,rita,dawn,connie,florence,tracy,edna,tiffany,carmen,rosa,cindy,grace,wendy,victoria,edith,kim,sherry,sylvia,josephine,thelma,shannon,sheila,ethel,ellen,elaine,marjorie,carrie,charlotte,monica,esther,pauline,emma,juanita,anita,rhonda,hazel,amber,eva,debbie,april,leslie,clara,lucille,jamie,joanne,eleanor,valerie,danielle,megan,alicia,suzanne,michele,gail,bertha,darlene,veronica,jill,erin,geraldine,lauren,cathy,joann,lorraine,lynn,sally,regina,erica,beatrice,dolores,bernice,audrey,yvonne,annette,june,marion,dana,stacy,ana,renee,ida,vivian,roberta,holly,brittany,melanie,loretta,yolanda,jeanette,laurie,katie,kristen,vanessa,alma,sue,elsie,beth,jeanne,vicki,carla,tara,rosemary,eileen,terri,gertrude,lucy,tonya,ella,stacey,wilma,gina,kristin,jessie,natalie,agnes,vera,charlene,bessie,delores,melinda,pearl,arlene,maureen,colleen,allison,tamara,joy,georgia,constance,lillie,claudia,jackie,marcia,tanya,nellie,minnie,marlene,heidi,glenda,lydia,viola,courtney,marian,stella,caroline,dora,jo,vickie,mattie,maxine,irma,mabel,marsha,myrtle,lena,christy,deanna,patsy,hilda,gwendolyn,jennie,nora,margie,nina,cassandra,leah,penny,kay,priscilla,naomi,carole,olga,billie,dianne,tracey,leona,jenny,felicia,sonia,miriam,velma,becky,bobbie,violet,kristina,toni,misty,mae,shelly,daisy,ramona,sherri,erika,katrina,claire,lindsey,lindsay,geneva,guadalupe,belinda,margarita,sheryl,cora,faye,ada,natasha,sabrina,isabel,marguerite,hattie,harriet,molly,cecilia,kristi,brandi,blanche,sandy,rosie,joanna,iris,eunice,angie,inez,lynda,madeline,amelia,alberta,genevieve,monique,jodi,janie,kayla,sonya,jan,kristine,candace,fannie,maryann,opal,alison,yvette,melody,luz,susie,olivia,flora,shelley,kristy,mamie,lula,lola,verna,beulah,antoinette,candice,juana,jeannette,pam,kelli,whitney,bridget,karla,celia,latoya,patty,shelia,gayle,della,vicky,lynne,sheri,marianne,kara,jacquelyn,erma,blanca,myra,leticia,pat,krista,roxanne,angelica,robyn,adrienne,rosalie,alexandra,brooke,bethany,sadie,bernadette,traci,jody,kendra,nichole,rachael,mable,ernestine,muriel,marcella,elena,krystal,angelina,nadine,kari,estelle,dianna,paulette,lora,mona,doreen,rosemarie,desiree,antonia,janis,betsy,christie,freda,meredith,lynette,teri,cristina,eula,leigh,meghan,sophia,eloise,rochelle,gretchen,cecelia,raquel,henrietta,alyssa,jana,gwen,jenna,tricia,laverne,olive,tasha,silvia,elvira,delia,kate,patti,lorena,kellie,sonja,lila,lana,darla,mindy,essie,mandy,lorene,elsa,josefina,jeannie,miranda,dixie,lucia,marta,faith,lela,johanna,shari,camille,tami,shawna,elisa,ebony,melba,ora,nettie,tabitha,ollie,winifred,kristie,marina,alisha,aimee,rena,myrna,marla,tammie,latasha,bonita,patrice,ronda,sherrie,addie,francine,deloris,stacie,adriana,cheri,abigail,celeste,jewel,cara,adele,rebekah,lucinda,dorthy,effie,trina,reba,sallie,aurora,lenora,etta,lottie,kerri,trisha,nikki,estella,francisca,josie,tracie,marissa,karin,brittney,janelle,lourdes,laurel,helene,fern,elva,corinne,kelsey,ina,bettie,elisabeth,aida,caitlin,ingrid,iva,eugenia,christa,goldie,maude,jenifer,therese,dena,lorna,janette,latonya,candy,consuelo,tamika,rosetta,debora,cherie,polly,dina,jewell,fay,jillian,dorothea,nell,trudy,esperanza,patrica,kimberley,shanna,helena,cleo,stefanie,rosario,ola,janine,mollie,lupe,alisa,lou,maribel,susanne,bette,susana,elise,cecile,isabelle,lesley,jocelyn,paige,joni,rachelle,leola,daphne,alta,ester,petra,graciela,imogene,jolene,keisha,lacey,glenna,gabriela,keri,ursula,lizzie,kirsten,shana,adeline,mayra,jayne,jaclyn,gracie,sondra,carmela,marisa,rosalind,charity,tonia,beatriz,marisol,clarice,jeanine,sheena,angeline,frieda,lily,shauna,millie,claudette,cathleen,angelia,gabrielle,autumn,katharine,jodie,staci,lea,christi,justine,elma,luella,margret,dominique,socorro,martina,margo,mavis,callie,bobbi,maritza,lucile,leanne,jeannine,deana,aileen,lorie,ladonna,willa,manuela,gale,selma,dolly,sybil,abby,ivy,dee,winnie,marcy,luisa,jeri,magdalena,ofelia,meagan,audra,matilda,leila,cornelia,bianca,simone,bettye,randi,virgie,latisha,barbra,georgina,eliza,leann,bridgette,rhoda,haley,adela,nola,bernadine,flossie,ila,greta,ruthie,nelda,minerva,lilly,terrie,letha,hilary,estela,valarie,brianna,rosalyn,earline,catalina,ava,mia,clarissa,lidia,corrine,alexandria,concepcion,tia,sharron,rae,dona,ericka,jami,elnora,chandra,lenore,neva,marylou,melisa,tabatha,serena,avis,allie,sofia,jeanie,odessa,nannie,harriett,loraine,penelope,milagros,emilia,benita,allyson,ashlee,tania,esmeralda,karina,eve,pearlie,zelma,malinda,noreen,tameka,saundra,hillary,amie,althea,rosalinda,lilia,alana,clare,alejandra,elinor,lorrie,jerri,darcy,earnestine,carmella,noemi,marcie,liza,annabelle,louisa,earlene,mallory,carlene,nita,selena,tanisha,katy,julianne,lakisha,edwina,maricela,margery,kenya,dollie,roxie,roslyn,kathrine,nanette,charmaine,lavonne,ilene,tammi,suzette,corine,kaye,chrystal,lina,deanne,lilian,juliana,aline,luann,kasey,maryanne,evangeline,colette,melva,lawanda,yesenia,nadia,madge,kathie,ophelia,valeria,nona,mitzi,mari,georgette,claudine,fran,alissa,roseann,lakeisha,susanna,reva,deidre,chasity,sheree,elvia,alyce,deirdre,gena,briana,araceli,katelyn,rosanne,wendi,tessa,berta,marva,imelda,marietta,marci,leonor,arline,sasha,madelyn,janna,juliette,deena,aurelia,josefa,augusta,liliana,lessie,amalia,savannah,anastasia,vilma,natalia,rosella,lynnette,corina,alfreda,leanna,amparo,coleen,tamra,aisha,wilda,karyn,queen,maura,mai,evangelina,rosanna,hallie,erna,enid,mariana,lacy,juliet,jacklyn,freida,madeleine,mara,cathryn,lelia,casandra,bridgett,angelita,jannie,dionne,annmarie,katina,beryl,millicent,katheryn,diann,carissa,maryellen,liz,lauri,helga,gilda,rhea,marquita,hollie,tisha,tamera,angelique,francesca,kaitlin,lolita,florine,rowena,reyna,twila,fanny,janell,ines,concetta,bertie,alba,brigitte,alyson,vonda,pansy,elba,noelle,letitia,deann,brandie,louella,leta,felecia,sharlene,lesa,beverley,isabella,herminia,terra,celina,tori,octavia,jade,denice,germaine,michell,cortney,nelly,doretha,deidra,monika,lashonda,judi,chelsey,antionette,margot,adelaide,nan,leeann,elisha,dessie,libby,kathi,gayla,latanya,mina,mellisa,kimberlee,jasmin,renae,zelda,elda,justina,gussie,emilie,camilla,abbie,rocio,kaitlyn,edythe,ashleigh,selina,lakesha,geri,allene,pamala,michaela,dayna,caryn,rosalia,sun,jacquline,rebeca,marybeth,krystle,iola,dottie,belle,griselda,ernestina,elida,adrianne,demetria,delma,jaqueline,arleen,virgina,retha,fatima,tillie,eleanore,cari,treva,wilhelmina,rosalee,maurine,latrice,jena,taryn,elia,debby,maudie,jeanna,delilah,catrina,shonda,hortencia,theodora,teresita,robbin,danette,delphine,brianne,nilda,danna,cindi,bess,iona,winona,vida,rosita,marianna,racheal,guillermina,eloisa,celestine,caren,malissa,lona,chantel,shellie,marisela,leora,agatha,soledad,migdalia,ivette,christen,janel,veda,pattie,tessie,tera,marilynn,lucretia,karrie,dinah,daniela,alecia,adelina,vernice,shiela,portia,merry,lashawn,dara,tawana,oma,verda,alene,zella,sandi,rafaela,maya,kira,candida,alvina,suzan,shayla,lyn,lettie,samatha,oralia,matilde,larissa,vesta,renita,india,delois,shanda,phillis,lorri,erlinda,cathrine,barb,zoe,isabell,ione,gisela,roxanna,mayme,kisha,ellie,mellissa,dorris,dalia,bella,annetta,zoila,reta,reina,lauretta,kylie,christal,pilar,charla,elissa,tiffani,tana,paulina,leota,breanna,jayme,carmel,vernell,tomasa,mandi,dominga,santa,melodie,lura,alexa,tamela,mirna,kerrie,venus,felicita,cristy,carmelita,berniece,annemarie,tiara,roseanne,missy,cori,roxana,pricilla,kristal,jung,elyse,haydee,aletha,bettina,marge,gillian,filomena,zenaida,harriette,caridad,vada,una,aretha,pearline,marjory,marcela,flor,evette,elouise,alina,damaris,catharine,belva,nakia,marlena,luanne,lorine,karon,dorene,danita,brenna,tatiana,louann,julianna,andria,philomena,lucila,leonora,dovie,romona,mimi,jacquelin,gaye,tonja,misti,chastity,stacia,roxann,micaela,nikita,mei,velda,marlys,johnna,aura,ivonne,hayley,nicki,majorie,herlinda,yadira,perla,gregoria,antonette,shelli,mozelle,mariah,joelle,cordelia,josette,chiquita,trista,laquita,georgiana,candi,shanon,hildegard,valentina,stephany,magda,karol,gabriella,tiana,roma,richelle,oleta,jacque,idella,alaina,suzanna,jovita,tosha,nereida,marlyn,kyla,delfina,tena,stephenie,sabina,nathalie,marcelle,gertie,darleen,thea,sharonda,shantel,belen,venessa,rosalina,ona,genoveva,clementine,rosalba,renate,renata,georgianna,floy,dorcas,ariana,tyra,theda,mariam,juli,jesica,vikki,verla,roselyn,melvina,jannette,ginny,debrah,corrie,asia,violeta,myrtis,latricia,collette,charleen,anissa,viviana,twyla,nedra,latonia,lan,hellen,fabiola,annamarie,adell,sharyn,chantal,niki,maud,lizette,lindy,kia,kesha,jeana,danelle,charline,chanel,valorie,lia,dortha,cristal,leone,leilani,gerri,debi,andra,keshia,ima,eulalia,easter,dulce,natividad,linnie,kami,georgie,catina,brook,alda,winnifred,sharla,ruthann,meaghan,magdalene,lissette,adelaida,venita,trena,shirlene,shameka,elizebeth,dian,shanta,latosha,carlotta,windy,rosina,mariann,leisa,jonnie,dawna,cathie,astrid,laureen,janeen,holli,fawn,vickey,teressa,shante,rubye,marcelina,chanda,terese,scarlett,marnie,lulu,lisette,jeniffer,elenor,dorinda,donita,carman,bernita,altagracia,aleta,adrianna,zoraida,nicola,lyndsey,janina,ami,starla,phylis,phuong,kyra,charisse,blanch,sanjuanita,rona,nanci,marilee,maranda,brigette,sanjuana,marita,kassandra,joycelyn,felipa,chelsie,bonny,mireya,lorenza,kyong,ileana,candelaria,sherie,lucie,leatrice,lakeshia,gerda,edie,bambi,marylin,lavon,hortense,garnet,evie,tressa,shayna,lavina,kyung,jeanetta,sherrill,shara,phyliss,mittie,anabel,alesia,thuy,tawanda,joanie,tiffanie,lashanda,karissa,enriqueta,daria,daniella,corinna,alanna,abbey,roxane,roseanna,magnolia,lida,joellen,era,coral,carleen,tresa,peggie,novella,nila,maybelle,jenelle,carina,nova,melina,marquerite,margarette,josephina,evonne,cinthia,albina,toya,tawnya,sherita,myriam,lizabeth,lise,keely,jenni,giselle,cheryle,ardith,ardis,alesha,adriane,shaina,linnea,karolyn,felisha,dori,darci,artie,armida,zola,xiomara,vergie,shamika,nena,nannette,maxie,lovie,jeane,jaimie,inge,farrah,elaina,caitlyn,felicitas,cherly,caryl,yolonda,yasmin,teena,prudence,pennie,nydia,mackenzie,orpha,marvel,lizbeth,laurette,jerrie,hermelinda,carolee,tierra,mirian,meta,melony,kori,jennette,jamila,ena,anh,yoshiko,susannah,salina,rhiannon,joleen,cristine,ashton,aracely,tomeka,shalonda,marti,lacie,kala,jada,ilse,hailey,brittani,zona,syble,sherryl,nidia,marlo,kandice,kandi,deb,alycia,ronna,norene,mercy,ingeborg,giovanna,gemma,christel,audry,zora,vita,trish,stephaine,shirlee,shanika,melonie,mazie,jazmin,inga,hoa,hettie,geralyn,fonda,estrella,adella,sarita,rina,milissa,maribeth,golda,evon,ethelyn,enedina,cherise,chana,velva,tawanna,sade,mirta,karie,jacinta,elna,davina,cierra,ashlie,albertha,tanesha,nelle,mindi,lorinda,larue,florene,demetra,dedra,ciara,chantelle,ashly,suzy,rosalva,noelia,lyda,leatha,krystyna,kristan,karri,darline,darcie,cinda,cherrie,awilda,almeda,rolanda,lanette,jerilyn,gisele,evalyn,cyndi,cleta,carin,zina,zena,velia,tanika,charissa,talia,margarete,lavonda,kaylee,kathlene,jonna,irena,ilona,idalia,candis,candance,brandee,anitra,alida,sigrid,nicolette,maryjo,linette,hedwig,christiana,alexia,tressie,modesta,lupita,lita,gladis,evelia,davida,cherri,cecily,ashely,annabel,agustina,wanita,shirly,rosaura,hulda,eun,yetta,verona,thomasina,sibyl,shannan,mechelle,lue,leandra,lani,kylee,kandy,jolynn,ferne,eboni,corene,alysia,zula,nada,moira,lyndsay,lorretta,jammie,hortensia,gaynell,adria,vina,vicenta,tangela,stephine,norine,nella,liana,leslee,kimberely,iliana,glory,felica,emogene,elfriede,eden,eartha,carma,bea,ocie,lennie,kiara,jacalyn,carlota,arielle,otilia,kirstin,kacey,johnetta,joetta,jeraldine,jaunita,elana,dorthea,cami,amada,adelia,vernita,tamar,siobhan,renea,rashida,ouida,nilsa,meryl,kristyn,julieta,danica,breanne,aurea,anglea,sherron,odette,malia,lorelei,leesa,kenna,kathlyn,fiona,charlette,suzie,shantell,sabra,racquel,myong,mira,martine,lucienne,lavada,juliann,elvera,delphia,christiane,charolette,carri,asha,angella,paola,ninfa,leda,lai,eda,stefani,shanell,palma,machelle,lissa,kecia,kathryne,karlene,julissa,jettie,jenniffer,hui,corrina,carolann,alena,rosaria,myrtice,marylee,liane,kenyatta,judie,janey,elmira,eldora,denna,cristi,cathi,zaida,vonnie,viva,vernie,rosaline,mariela,luciana,lesli,karan,felice,deneen,adina,wynona,tarsha,sheron,shanita,shani,shandra,randa,pinkie,nelida,marilou,lyla,laurene,laci,joi,janene,dorotha,daniele,dani,carolynn,carlyn,berenice,ayesha,anneliese,alethea,thersa,tamiko,rufina,oliva,mozell,marylyn,kristian,kathyrn,kasandra,kandace,janae,domenica,debbra,dannielle,arcelia,aja,zenobia,sharen,sharee,lavinia,kum,kacie,jackeline,huong,felisa,emelia,eleanora,cythia,cristin,claribel,anastacia,zulma,zandra,yoko,tenisha,susann,sherilyn,shay,shawanda,romana,mathilda,linsey,keiko,joana,isela,gretta,georgetta,eugenie,desirae,delora,corazon,antonina,anika,willene,tracee,tamatha,nichelle,mickie,maegan,luana,lanita,kelsie,edelmira,bree,afton,teodora,tamie,shena,meg,linh,keli,kaci,danyelle,arlette,albertine,adelle,tiffiny,simona,nicolasa,nichol,nia,nakisha,mee,maira,loreen,kizzy,fallon,christene,bobbye,vincenza,tanja,rubie,roni,queenie,margarett,kimberli,irmgard,idell,hilma,evelina,esta,emilee,dennise,dania,carie,wai,risa,rikki,particia,mui,masako,luvenia,loree,loni,lien,gigi,florencia,denita,billye,tomika,sharita,rana,nikole,neoma,margarite,madalyn,lucina,laila,kali,jenette,gabriele,evelyne,elenora,clementina,alejandrina,zulema,violette,vannessa,thresa,retta,pia,patience,noella,nickie,jonell,chaya,camelia,bethel,anya,suzann,shu,mila,lilla,laverna,keesha,kattie,georgene,eveline,estell,elizbeth,vivienne,vallie,trudie,stephane,magaly,madie,kenyetta,karren,janetta,hermine,drucilla,debbi,celestina,candie,britni,beckie,amina,zita,yun,yolande,vivien,vernetta,trudi,sommer,pearle,patrina,ossie,nicolle,loyce,letty,larisa,katharina,joselyn,jonelle,jenell,iesha,heide,florinda,florentina,flo,elodia,dorine,brunilda,brigid,ashli,ardella,twana,thu,tarah,shavon,serina,rayna,ramonita,nga,margurite,lucrecia,kourtney,kati,jesenia,crista,ayana,alica,alia,vinnie,suellen,romelia,rachell,olympia,michiko,kathaleen,jolie,jessi,janessa,hana,elease,carletta,britany,shona,salome,rosamond,regena,raina,ngoc,nelia,louvenia,lesia,latrina,laticia,larhonda,jina,jacki,emmy,deeann,coretta,arnetta,thalia,shanice,neta,mikki,micki,lonna,leana,lashunda,kiley,joye,jacqulyn,ignacia,hyun,hiroko,henriette,elayne,delinda,dahlia,coreen,consuela,conchita,celine,babette,ayanna,anette,albertina,shawnee,shaneka,quiana,pamelia,min,merri,merlene,margit,kiesha,kiera,kaylene,jodee,jenise,erlene,emmie,dalila,daisey,casie,belia,babara,versie,vanesa,shelba,shawnda,nikia,naoma,marna,margeret,madaline,lawana,kindra,jutta,jazmine,janett,hannelore,glendora,gertrud,garnett,freeda,frederica,florance,flavia,carline,beverlee,anjanette,valda,tamala,shonna,sha,sarina,oneida,merilyn,marleen,lurline,lenna,katherin,jin,jeni,hae,gracia,glady,farah,enola,ema,dominque,devona,delana,cecila,caprice,alysha,alethia,vena,theresia,tawny,shakira,samara,sachiko,rachele,pamella,marni,mariel,maren,malisa,ligia,lera,latoria,larae,kimber,kathern,karey,jennefer,janeth,halina,fredia,delisa,debroah,ciera,angelika,andree,altha,yen,vivan,terresa,tanna,suk,sudie,soo,signe,salena,ronni,rebbecca,myrtie,malika,maida,loan,leonarda,kayleigh,ethyl,ellyn,dayle,cammie,brittni,birgit,avelina,asuncion,arianna,akiko,venice,tyesha,tonie,tiesha,takisha,steffanie,sindy,meghann,manda,macie,kellye,kellee,joslyn,inger,indira,glinda,glennis,fernanda,faustina,eneida,elicia,dot,digna,dell,arletta,willia,tammara,tabetha,sherrell,sari,rebbeca,pauletta,natosha,nakita,mammie,kenisha,kazuko,kassie,earlean,daphine,corliss,clotilde,carolyne,bernetta,augustina,audrea,annis,annabell,yan,tennille,tamica,selene,rosana,regenia,qiana,markita,macy,leeanne,laurine,kym,jessenia,janita,georgine,genie,emiko,elvie,deandra,dagmar,corie,collen,cherish,romaine,porsha,pearlene,micheline,merna,margorie,margaretta,lore,jenine,hermina,fredericka,elke,drusilla,dorathy,dione,celena,brigida,angeles,allegra,tamekia,synthia,sook,slyvia,rosann,reatha,raye,marquetta,margart,layla,kymberly,kiana,kayleen,katlyn,karmen,joella,irina,emelda,eleni,detra,clemmie,cheryll,chantell,cathey,arnita,arla,angle,angelic,alyse,zofia,thomasine,tennie,sherly,sherley,sharyl,remedios,petrina,nickole,myung,myrle,mozella,louanne,lisha,latia,krysta,julienne,jeanene,jacqualine,isaura,gwenda,earleen,cleopatra,carlie,audie,antonietta,alise,verdell,tomoko,thao,talisha,shemika,savanna,santina,rosia,raeann,odilia,nana,minna,magan,lynelle,karma,joeann,ivana,inell,ilana,hye,hee,gudrun,dreama,crissy,chante,carmelina,arvilla,annamae,alvera,aleida,yanira,vanda,tianna,tam,stefania,shira,nicol,nancie,monserrate,melynda,melany,lovella,laure,kacy,jacquelynn,hyon,gertha,eliana,christena,christeen,charise,caterina,carley,candyce,arlena,ammie,willette,vanita,tuyet,syreeta,penney,nyla,maryam,marya,magen,ludie,loma,livia,lanell,kimberlie,julee,donetta,diedra,denisha,deane,dawne,clarine,cherryl,bronwyn,alla,valery,tonda,sueann,soraya,shoshana,shela,sharleen,shanelle,nerissa,meridith,mellie,maye,maple,magaret,lili,leonila,leonie,leeanna,lavonia,lavera,kristel,kathey,kathe,jann,ilda,hildred,hildegarde,genia,fumiko,evelin,ermelinda,elly,dung,doloris,dionna,danae,berneice,annice,alix,verena,verdie,shawnna,shawana,shaunna,rozella,randee,ranae,milagro,lynell,luise,loida,lisbeth,karleen,junita,jona,isis,hyacinth,hedy,gwenn,ethelene,erline,donya,domonique,delicia,dannette,cicely,branda,blythe,bethann,ashlyn,annalee,alline,yuko,vella,trang,towanda,tesha,sherlyn,narcisa,miguelina,meri,maybell,marlana,marguerita,madlyn,lory,loriann,leonore,leighann,laurice,latesha,laronda,katrice,kasie,kaley,jadwiga,glennie,gearldine,francina,epifania,dyan,dorie,diedre,denese,demetrice,delena,cristie,cleora,catarina,carisa,barbera,almeta,trula,tereasa,solange,sheilah,shavonne,sanora,rochell,mathilde,margareta,maia,lynsey,lawanna,launa,kena,keena,katia,glynda,gaylene,elvina,elanor,danuta,danika,cristen,cordie,coletta,clarita,carmon,brynn,azucena,aundrea,angele,verlie,verlene,tamesha,silvana,sebrina,samira,reda,raylene,penni,norah,noma,mireille,melissia,maryalice,laraine,kimbery,karyl,karine,kam,jolanda,johana,jesusa,jaleesa,jacquelyne,iluminada,hilaria,hanh,gennie,francie,floretta,exie,edda,drema,delpha,bev,barbar,assunta,ardell,annalisa,alisia,yukiko,yolando,wonda,wei,waltraud,veta,temeka,tameika,shirleen,shenita,piedad,ozella,mirtha,marilu,kimiko,juliane,jenice,janay,jacquiline,hilde,fae,elois,echo,devorah,chau,brinda,betsey,arminda,aracelis,apryl,annett,alishia,veola,usha,toshiko,theola,tashia,talitha,shery,renetta,reiko,rasheeda,obdulia,mika,melaine,meggan,marlen,marget,marceline,mana,magdalen,librada,lezlie,latashia,lasandra,kelle,isidra,isa,inocencia,gwyn,francoise,erminia,erinn,dimple,devora,criselda,armanda,arie,ariane,angelena,aliza,adriene,adaline,xochitl,twanna,tomiko,tamisha,taisha,susy,siu,rutha,rhona,noriko,natashia,merrie,marinda,mariko,margert,loris,lizzette,leisha,kaila,joannie,jerrica,jene,jannet,janee,jacinda,herta,elenore,doretta,delaine,daniell,claudie,britta,apolonia,amberly,alease,yuri,yuk,wen,waneta,ute,tomi,sharri,sandie,roselle,reynalda,raguel,phylicia,patria,olimpia,odelia,mitzie,minda,mignon,mica,mendy,marivel,maile,lynetta,lavette,lauryn,latrisha,lakiesha,kiersten,kary,josphine,jolyn,jetta,janise,jacquie,ivelisse,glynis,gianna,gaynelle,danyell,danille,dacia,coralee,cher,ceola,arianne,aleshia,yung,williemae,trinh,thora,tai,svetlana,sherika,shemeka,shaunda,roseline,ricki,melda,mallie,lavonna,latina,laquanda,lala,lachelle,klara,kandis,johna,jeanmarie,jaye,grayce,gertude,emerita,ebonie,clorinda,ching,chery,carola,breann,blossom,bernardine,becki,arletha,argelia,ara,alita,yulanda,yon,yessenia,tobi,tasia,sylvie,shirl,shirely,shella,shantelle,sacha,rebecka,providencia,paulene,misha,miki,marline,marica,lorita,latoyia,lasonya,kerstin,kenda,keitha,kathrin,jaymie,gricelda,ginette,eryn,elina,elfrieda,danyel,cheree,chanelle,barrie,aurore,annamaria,alleen,ailene,aide,yasmine,vashti,treasa,tiffaney,sheryll,sharie,shanae,sau,raisa,neda,mitsuko,mirella,milda,maryanna,maragret,mabelle,luetta,lorina,letisha,latarsha,lanelle,lajuana,krissy,karly,karena,jessika,jerica,jeanelle,jalisa,jacelyn,izola,euna,etha,domitila,dominica,daina,creola,carli,camie,brittny,ashanti,anisha,aleen,adah,yasuko,valrie,tona,tinisha,thi,terisa,taneka,simonne,shalanda,serita,ressie,refugia,olene,margherita,mandie,maire,lyndia,luci,lorriane,loreta,leonia,lavona,lashawnda,lakia,kyoko,krystina,krysten,kenia,kelsi,jeanice,isobel,georgiann,genny,felicidad,eilene,deloise,conception,clora,cherilyn,calandra,armandina,anisa,ula,tiera,theressa,stephania,sima,shyla,shonta,shera,shaquita,shala,rossana,nohemi,nery,moriah,melita,melida,melani,marylynn,marisha,mariette,malorie,madelene,ludivina,loria,lorette,loralee,lianne,lavenia,laurinda,lashon,kit,kimi,keila,katelynn,kai,jone,joane,jayna,janella,hue,hertha,francene,elinore,despina,delsie,deedra,clemencia,carolin,bulah,brittanie,bok,blondell,bibi,beaulah,beata,annita,agripina,virgen,valene,twanda,tommye,toi,tarra,tari,tammera,shakia,sadye,ruthanne,rochel,rivka,pura,nenita,natisha,merrilee,melodee,marvis,lucilla,leena,laveta,larita,lanie,keren,ileen,georgeann,genna,frida,ewa,eufemia,emely,ela,edyth,deonna,deadra,darlena,chanell,cathern,cassondra,cassaundra,bernarda,berna,arlinda,anamaria,vertie,valeri,torri,tatyana,stasia,sherise,sherill,sanda,ruthe,rosy,robbi,ranee,quyen,pearly,palmira,onita,nisha,niesha,nida,nam,merlyn,mayola,marylouise,marth,margene,madelaine,londa,leontine,leoma,leia,lauralee,lanora,lakita,kiyoko,keturah,katelin,kareen,jonie,johnette,jenee,jeanett,izetta,hiedi,heike,hassie,giuseppina,georgann,fidela,fernande,elwanda,ellamae,eliz,dusti,dotty,cyndy,coralie,celesta,argentina,alverta,xenia,wava,vanetta,torrie,tashina,tandy,tambra,tama,stepanie,shila,shaunta,sharan,shaniqua,shae,setsuko,serafina,sandee,rosamaria,priscila,olinda,nadene,muoi,michelina,mercedez,maryrose,marcene,mao,magali,mafalda,lannie,kayce,karoline,kamilah,kamala,justa,joline,jennine,jacquetta,iraida,georgeanna,franchesca,emeline,elane,ehtel,earlie,dulcie,dalene,classie,chere,charis,caroyln,carmina,carita,bethanie,ayako,arica,alysa,alessandra,akilah,adrien,zetta,youlanda,yelena,yahaira,wendolyn,tijuana,terina,teresia,suzi,sherell,shavonda,shaunte,sharda,shakita,sena,ryann,rubi,riva,reginia,rachal,parthenia,pamula,monnie,monet,michaele,melia,malka,maisha,lisandra,lekisha,lean,lakendra,krystin,kortney,kizzie,kittie,kera,kendal,kemberly,kanisha,julene,jule,johanne,jamee,halley,gidget,galina,fredricka,fleta,fatimah,eusebia,elza,eleonore,dorthey,doria,donella,dinorah,delorse,claretha,christinia,charlyn,bong,belkis,azzie,andera,aiko,adena,yer,yajaira,wan,vania,ulrike,toshia,tifany,stefany,shizue,shenika,shawanna,sharolyn,sharilyn,shaquana,shantay,rozanne,roselee,remona,reanna,raelene,phung,petronila,natacha,nancey,myrl,miyoko,miesha,merideth,marvella,marquitta,marhta,marchelle,lizeth,libbie,lahoma,ladawn,kina,katheleen,katharyn,karisa,kaleigh,junie,julieann,johnsie,janean,jaimee,jackqueline,hisako,herma,helaine,gwyneth,gita,eustolia,emelina,elin,edris,donnette,donnetta,dierdre,denae,darcel,clarisa,cinderella,chia,charlesetta,charita,celsa,cassy,cassi,carlee,bruna,brittaney,brande,billi,bao,antonetta,angla,angelyn,analisa,alane,wenona,wendie,veronique,vannesa,tobie,tempie,sumiko,sulema,sparkle,somer,sheba,sharice,shanel,shalon,rosio,roselia,renay,rema,reena,ozie,oretha,oralee,oda,ngan,nakesha,milly,marybelle,margrett,maragaret,manie,lurlene,lillia,lieselotte,lavelle,lashaunda,lakeesha,kaycee,kalyn,joya,joette,jenae,janiece,illa,grisel,glayds,genevie,gala,fredda,eleonor,debera,deandrea,corrinne,cordia,contessa,colene,cleotilde,chantay,cecille,beatris,azalee,arlean,ardath,anjelica,anja,alfredia,aleisha,zada,yuonne,willodean,vennie,vanna,tyisha,tova,torie,tonisha,tilda,tien,sirena,sherril,shanti,senaida,samella,robbyn,renda,reita,phebe,paulita,nobuko,nguyet,neomi,mikaela,melania,maximina,marg,maisie,lynna,lilli,lashaun,lakenya,lael,kirstie,kathline,kasha,karlyn,karima,jovan,josefine,jennell,jacqui,jackelyn,hyo,hien,grazyna,florrie,floria,eleonora,dwana,dorla,delmy,deja,dede,dann,crysta,clelia,claris,chieko,cherlyn,cherelle,charmain,chara,cammy,bee,arnette,ardelle,annika,amiee,amee,allena,yvone,yuki,yoshie,yevette,yael,willetta,voncile,venetta,tula,tonette,timika,temika,telma,teisha,taren,stacee,shawnta,saturnina,ricarda,pok,pasty,onie,nubia,marielle,mariella,marianela,mardell,luanna,loise,lisabeth,lindsy,lilliana,lilliam,lelah,leigha,leanora,kristeen,khalilah,keeley,kandra,junko,joaquina,jerlene,jani,jamika,hsiu,hermila,genevive,evia,eugena,emmaline,elfreda,elene,donette,delcie,deeanna,darcey,cuc,clarinda,cira,chae,celinda,catheryn,casimira,carmelia,camellia,breana,bobette,bernardina,bebe,basilia,arlyne,amal,alayna,zonia,zenia,yuriko,yaeko,wynell,willena,vernia,tora,terrilyn,terica,tenesha,tawna,tajuana,taina,stephnie,sona,sina,shondra,shizuko,sherlene,sherice,sharika,rossie,rosena,rima,ria,rheba,renna,natalya,nancee,melodi,meda,matha,marketta,maricruz,marcelene,malvina,luba,louetta,leida,lecia,lauran,lashawna,laine,khadijah,katerine,kasi,kallie,julietta,jesusita,jestine,jessia,jeffie,janyce,isadora,georgianne,fidelia,evita,eura,eulah,estefana,elsy,eladia,dodie,dia,denisse,deloras,delila,daysi,crystle,concha,claretta,charlsie,charlena,carylon,bettyann,asley,ashlea,amira,agueda,agnus,yuette,vinita,victorina,tynisha,treena,toccara,tish,thomasena,tegan,soila,shenna,sharmaine,shantae,shandi,september,saran,sarai,sana,rosette,rolande,regine,otelia,olevia,nicholle,necole,naida,myrta,myesha,mitsue,minta,mertie,margy,mahalia,madalene,loura,lorean,lesha,leonida,lenita,lavone,lashell,lashandra,lamonica,kimbra,katherina,karry,kanesha,jong,jeneva,jaquelyn,hwa,gilma,ghislaine,gertrudis,fransisca,fermina,ettie,etsuko,ellan,elidia,edra,dorethea,doreatha,denyse,deetta,daine,cyrstal,corrin,cayla,carlita,camila,burma,bula,buena,barabara,avril,alaine,zana,wilhemina,wanetta,veronika,verline,vasiliki,tonita,tisa,teofila,tayna,taunya,tandra,takako,sunni,suanne,sixta,sharell,seema,rosenda,robena,raymonde,pei,pamila,ozell,neida,mistie,micha,merissa,maurita,maryln,maryetta,marcell,malena,makeda,lovetta,lourie,lorrine,lorilee,laurena,lashay,larraine,laree,lacresha,kristle,krishna,keva,keira,karole,joie,jinny,jeannetta,jama,heidy,gilberte,gema,faviola,evelynn,enda,elli,ellena,divina,dagny,collene,codi,cindie,chassidy,chasidy,catrice,catherina,cassey,caroll,carlena,candra,calista,bryanna,britteny,beula,bari,audrie,audria,ardelia,annelle,angila,alona,allyn".split(","))),
+r("surnames",q("smith,johnson,williams,jones,brown,davis,miller,wilson,moore,taylor,anderson,jackson,white,harris,martin,thompson,garcia,martinez,robinson,clark,rodriguez,lewis,lee,walker,hall,allen,young,hernandez,king,wright,lopez,hill,green,adams,baker,gonzalez,nelson,carter,mitchell,perez,roberts,turner,phillips,campbell,parker,evans,edwards,collins,stewart,sanchez,morris,rogers,reed,cook,morgan,bell,murphy,bailey,rivera,cooper,richardson,cox,howard,ward,torres,peterson,gray,ramirez,watson,brooks,sanders,price,bennett,wood,barnes,ross,henderson,coleman,jenkins,perry,powell,long,patterson,hughes,flores,washington,butler,simmons,foster,gonzales,bryant,alexander,griffin,diaz,hayes,myers,ford,hamilton,graham,sullivan,wallace,woods,cole,west,owens,reynolds,fisher,ellis,harrison,gibson,mcdonald,cruz,marshall,ortiz,gomez,murray,freeman,wells,webb,simpson,stevens,tucker,porter,hicks,crawford,boyd,mason,morales,kennedy,warren,dixon,ramos,reyes,burns,gordon,shaw,holmes,rice,robertson,hunt,daniels,palmer,mills,nichols,grant,ferguson,stone,hawkins,dunn,perkins,hudson,spencer,gardner,stephens,payne,pierce,berry,matthews,arnold,wagner,willis,watkins,olson,carroll,duncan,snyder,hart,cunningham,lane,andrews,ruiz,harper,fox,riley,armstrong,carpenter,weaver,greene,elliott,chavez,sims,peters,kelley,franklin,lawson,fields,gutierrez,schmidt,carr,vasquez,castillo,wheeler,chapman,oliver,montgomery,richards,williamson,johnston,banks,meyer,bishop,mccoy,howell,alvarez,morrison,hansen,fernandez,garza,burton,nguyen,jacobs,reid,fuller,lynch,garrett,romero,welch,larson,frazier,burke,hanson,mendoza,moreno,bowman,medina,fowler,brewer,hoffman,carlson,silva,pearson,holland,fleming,jensen,vargas,byrd,davidson,hopkins,may,herrera,wade,soto,walters,neal,caldwell,lowe,jennings,barnett,graves,jimenez,horton,shelton,barrett,obrien,castro,sutton,mckinney,lucas,miles,rodriquez,chambers,holt,lambert,fletcher,watts,bates,hale,rhodes,pena,beck,newman,haynes,mcdaniel,mendez,bush,vaughn,parks,dawson,santiago,norris,hardy,steele,curry,powers,schultz,barker,guzman,page,munoz,ball,keller,chandler,weber,walsh,lyons,ramsey,wolfe,schneider,mullins,benson,sharp,bowen,barber,cummings,hines,baldwin,griffith,valdez,hubbard,salazar,reeves,warner,stevenson,burgess,santos,tate,cross,garner,mann,mack,moss,thornton,mcgee,farmer,delgado,aguilar,vega,glover,manning,cohen,harmon,rodgers,robbins,newton,blair,higgins,ingram,reese,cannon,strickland,townsend,potter,goodwin,walton,rowe,hampton,ortega,patton,swanson,goodman,maldonado,yates,becker,erickson,hodges,rios,conner,adkins,webster,malone,hammond,flowers,cobb,moody,quinn,pope,osborne,mccarthy,guerrero,estrada,sandoval,gibbs,gross,fitzgerald,stokes,doyle,saunders,wise,colon,gill,alvarado,greer,padilla,waters,nunez,ballard,schwartz,mcbride,houston,christensen,klein,pratt,briggs,parsons,mclaughlin,zimmerman,french,buchanan,moran,copeland,pittman,brady,mccormick,holloway,brock,poole,logan,bass,marsh,drake,wong,jefferson,park,morton,abbott,sparks,norton,huff,massey,figueroa,carson,bowers,roberson,barton,tran,lamb,harrington,boone,cortez,clarke,mathis,singleton,wilkins,cain,underwood,hogan,mckenzie,collier,luna,phelps,mcguire,bridges,wilkerson,nash,summers,atkins,wilcox,pitts,conley,marquez,burnett,cochran,chase,davenport,hood,gates,ayala,sawyer,vazquez,dickerson,hodge,acosta,flynn,espinoza,nicholson,monroe,morrow,whitaker,oconnor,skinner,ware,molina,kirby,huffman,gilmore,dominguez,oneal,lang,combs,kramer,hancock,gallagher,gaines,shaffer,short,wiggins,mathews,mcclain,fischer,wall,small,melton,hensley,bond,dyer,grimes,contreras,wyatt,baxter,snow,mosley,shepherd,larsen,hoover,beasley,petersen,whitehead,meyers,garrison,shields,horn,savage,olsen,schroeder,hartman,woodard,mueller,kemp,deleon,booth,patel,calhoun,wiley,eaton,cline,navarro,harrell,humphrey,parrish,duran,hutchinson,hess,dorsey,bullock,robles,beard,dalton,avila,rich,blackwell,york,johns,blankenship,trevino,salinas,campos,pruitt,callahan,montoya,hardin,guerra,mcdowell,stafford,gallegos,henson,wilkinson,booker,merritt,atkinson,orr,decker,hobbs,tanner,knox,pacheco,stephenson,glass,rojas,serrano,marks,hickman,english,sweeney,strong,mcclure,conway,roth,maynard,farrell,lowery,hurst,nixon,weiss,trujillo,ellison,sloan,juarez,winters,mclean,boyer,villarreal,mccall,gentry,carrillo,ayers,lara,sexton,pace,hull,leblanc,browning,velasquez,leach,chang,sellers,herring,noble,foley,bartlett,mercado,landry,durham,walls,barr,mckee,bauer,rivers,bradshaw,pugh,velez,rush,estes,dodson,morse,sheppard,weeks,camacho,bean,barron,livingston,middleton,spears,branch,blevins,chen,kerr,mcconnell,hatfield,harding,solis,frost,giles,blackburn,pennington,woodward,finley,mcintosh,koch,mccullough,blanchard,rivas,brennan,mejia,kane,benton,buckley,valentine,maddox,russo,mcknight,buck,moon,mcmillan,crosby,berg,dotson,mays,roach,church,chan,richmond,meadows,faulkner,oneill,knapp,kline,ochoa,jacobson,gay,hendricks,horne,shepard,hebert,cardenas,mcintyre,waller,holman,donaldson,cantu,morin,gillespie,fuentes,tillman,bentley,peck,key,salas,rollins,gamble,dickson,battle,santana,cabrera,cervantes,howe,hinton,hurley,spence,zamora,yang,mcneil,suarez,petty,gould,mcfarland,sampson,carver,bray,macdonald,stout,hester,melendez,dillon,farley,hopper,galloway,potts,joyner,stein,aguirre,osborn,mercer,bender,franco,rowland,sykes,pickett,sears,mayo,dunlap,hayden,wilder,mckay,coffey,mccarty,ewing,cooley,vaughan,bonner,cotton,holder,stark,ferrell,cantrell,fulton,lott,calderon,pollard,hooper,burch,mullen,fry,riddle,levy,odonnell,britt,daugherty,berger,dillard,alston,frye,riggs,chaney,odom,duffy,fitzpatrick,valenzuela,mayer,alford,mcpherson,acevedo,barrera,cote,reilly,compton,mooney,mcgowan,craft,clemons,wynn,nielsen,baird,stanton,snider,rosales,bright,witt,hays,holden,rutledge,kinney,clements,castaneda,slater,hahn,burks,delaney,pate,lancaster,sharpe,whitfield,talley,macias,burris,ratliff,mccray,madden,kaufman,goff,cash,bolton,mcfadden,levine,byers,kirkland,kidd,workman,carney,mcleod,holcomb,england,finch,sosa,haney,franks,sargent,nieves,downs,rasmussen,bird,hewitt,foreman,valencia,oneil,delacruz,vinson,dejesus,hyde,forbes,gilliam,guthrie,wooten,huber,barlow,boyle,mcmahon,buckner,rocha,puckett,langley,knowles,cooke,velazquez,whitley,vang,shea,rouse,hartley,mayfield,elder,rankin,hanna,cowan,lucero,arroyo,slaughter,haas,oconnell,minor,boucher,archer,boggs,dougherty,andersen,newell,crowe,wang,friedman,bland,swain,holley,pearce,childs,yarbrough,galvan,proctor,meeks,lozano,mora,rangel,bacon,villanueva,schaefer,rosado,helms,boyce,goss,stinson,lake,ibarra,hutchins,covington,crowley,hatcher,mackey,bunch,womack,polk,dodd,childress,childers,camp,villa,dye,springer,mahoney,dailey,belcher,lockhart,griggs,costa,brandt,walden,moser,tatum,mccann,akers,lutz,pryor,orozco,mcallister,lugo,davies,shoemaker,rutherford,newsome,magee,chamberlain,blanton,simms,godfrey,flanagan,crum,cordova,escobar,downing,sinclair,donahue,krueger,mcginnis,gore,farris,webber,corbett,andrade,starr,lyon,yoder,hastings,mcgrath,spivey,krause,harden,crabtree,kirkpatrick,arrington,ritter,mcghee,bolden,maloney,gagnon,dunbar,ponce,pike,mayes,beatty,mobley,kimball,butts,montes,eldridge,braun,hamm,gibbons,moyer,manley,herron,plummer,elmore,cramer,rucker,pierson,fontenot,field,rubio,goldstein,elkins,wills,novak,hickey,worley,gorman,katz,dickinson,broussard,woodruff,crow,britton,nance,lehman,bingham,zuniga,whaley,shafer,coffman,steward,delarosa,nix,neely,mata,davila,mccabe,kessler,hinkle,welsh,pagan,goldberg,goins,crouch,cuevas,quinones,mcdermott,hendrickson,samuels,denton,bergeron,lam,ivey,locke,haines,snell,hoskins,byrne,arias,roe,corbin,beltran,chappell,downey,dooley,tuttle,couch,payton,mcelroy,crockett,groves,cartwright,dickey,mcgill,dubois,muniz,tolbert,dempsey,cisneros,sewell,latham,vigil,tapia,rainey,norwood,stroud,meade,tipton,kuhn,hilliard,bonilla,teague,gunn,greenwood,correa,reece,poe,pineda,phipps,frey,kaiser,ames,gunter,schmitt,milligan,espinosa,bowden,vickers,lowry,pritchard,costello,piper,mcclellan,lovell,sheehan,hatch,dobson,singh,jeffries,hollingsworth,sorensen,meza,fink,donnelly,burrell,tomlinson,colbert,billings,ritchie,helton,sutherland,peoples,mcqueen,thomason,givens,crocker,vogel,robison,dunham,coker,swartz,keys,ladner,richter,hargrove,edmonds,brantley,albright,murdock,boswell,muller,quintero,padgett,kenney,daly,connolly,inman,quintana,lund,barnard,villegas,simons,land,huggins,tidwell,sanderson,bullard,mcclendon,duarte,draper,marrero,dwyer,abrams,stover,goode,fraser,crews,bernal,godwin,conklin,mcneal,baca,esparza,crowder,bower,brewster,mcneill,rodrigues,leal,coates,raines,mccain,mccord,miner,holbrook,swift,dukes,carlisle,aldridge,ackerman,starks,ricks,holliday,ferris,hairston,sheffield,lange,fountain,doss,betts,kaplan,carmichael,bloom,ruffin,penn,kern,bowles,sizemore,larkin,dupree,seals,metcalf,hutchison,henley,farr,mccauley,hankins,gustafson,curran,ash,waddell,ramey,cates,pollock,cummins,messer,heller,lin,funk,cornett,palacios,galindo,cano,hathaway,singer,pham,enriquez,salgado,pelletier,painter,wiseman,blount,feliciano,temple,houser,doherty,mead,mcgraw,swan,capps,blanco,blackmon,thomson,mcmanus,burkett,post,gleason,ott,dickens,cormier,voss,rushing,rosenberg,hurd,dumas,benitez,arellano,marin,caudill,bragg,jaramillo,huerta,gipson,colvin,biggs,vela,platt,cassidy,tompkins,mccollum,dolan,daley,crump,sneed,kilgore,grove,grimm,davison,brunson,prater,marcum,devine,stratton,rosas,choi,tripp,ledbetter,hightower,feldman,epps,yeager,posey,scruggs,cope,stubbs,richey,overton,trotter,sprague,cordero,butcher,stiles,burgos,woodson,horner,bassett,purcell,haskins,akins,ziegler,spaulding,hadley,grubbs,sumner,murillo,zavala,shook,lockwood,driscoll,dahl,thorpe,redmond,putnam,mcwilliams,mcrae,romano,joiner,sadler,hedrick,hager,hagen,fitch,coulter,thacker,mansfield,langston,guidry,ferreira,corley,conn,rossi,lackey,baez,saenz,mcnamara,mcmullen,mckenna,mcdonough,link,engel,browne,roper,peacock,eubanks,drummond,stringer,pritchett,parham,mims,landers,ham,grayson,schafer,egan,timmons,ohara,keen,hamlin,finn,cortes,mcnair,nadeau,moseley,michaud,rosen,oakes,kurtz,jeffers,calloway,beal,bautista,winn,suggs,stern,stapleton,lyles,laird,montano,dawkins,hagan,goldman,bryson,barajas,lovett,segura,metz,lockett,langford,hinson,eastman,hooks,smallwood,shapiro,crowell,whalen,triplett,chatman,aldrich,cahill,youngblood,ybarra,stallings,sheets,reeder,connelly,bateman,abernathy,winkler,wilkes,masters,hackett,granger,gillis,schmitz,sapp,napier,souza,lanier,gomes,weir,otero,ledford,burroughs,babcock,ventura,siegel,dugan,bledsoe,atwood,wray,varner,spangler,anaya,staley,kraft,fournier,belanger,wolff,thorne,bynum,burnette,boykin,swenson,purvis,pina,khan,duvall,darby,xiong,kauffman,healy,engle,benoit,valle,steiner,spicer,shaver,randle,lundy,dow,chin,calvert,staton,neff,kearney,darden,oakley,medeiros,mccracken,crenshaw,block,perdue,dill,whittaker,tobin,washburn,hogue,goodrich,easley,bravo,dennison,shipley,kerns,jorgensen,crain,villalobos,maurer,longoria,keene,coon,witherspoon,staples,pettit,kincaid,eason,madrid,echols,lusk,stahl,currie,thayer,shultz,mcnally,seay,north,maher,gagne,barrow,nava,moreland,honeycutt,hearn,diggs,caron,whitten,westbrook,stovall,ragland,munson,meier,looney,kimble,jolly,hobson,goddard,culver,burr,presley,negron,connell,tovar,huddleston,ashby,salter,root,pendleton,oleary,nickerson,myrick,judd,jacobsen,bain,adair,starnes,matos,busby,herndon,hanley,bellamy,doty,bartley,yazzie,rowell,parson,gifford,cullen,christiansen,benavides,barnhart,talbot,mock,crandall,connors,bonds,whitt,gage,bergman,arredondo,addison,lujan,dowdy,jernigan,huynh,bouchard,dutton,rhoades,ouellette,kiser,herrington,hare,blackman,babb,allred,rudd,paulson,ogden,koenig,geiger,begay,parra,lassiter,hawk,esposito,cho,waldron,ransom,prather,chacon,vick,sands,roark,parr,mayberry,greenberg,coley,bruner,whitman,skaggs,shipman,leary,hutton,romo,medrano,ladd,kruse,askew,schulz,alfaro,tabor,mohr,gallo,bermudez,pereira,bliss,reaves,flint,comer,woodall,naquin,guevara,delong,carrier,pickens,brand,tilley,schaffer,lim,knutson,fenton,doran,chu,vogt,vann,prescott,mclain,landis,corcoran,zapata,hyatt,hemphill,faulk,dove,boudreaux,aragon,whitlock,trejo,tackett,shearer,saldana,hanks,mckinnon,koehler,bourgeois,keyes,goodson,foote,lunsford,goldsmith,flood,winslow,sams,reagan,mccloud,hough,esquivel,naylor,loomis,coronado,ludwig,braswell,bearden,fagan,ezell,edmondson,cyr,cronin,nunn,lemon,guillory,grier,dubose,traylor,ryder,dobbins,coyle,aponte,whitmore,smalls,rowan,malloy,cardona,braxton,borden,humphries,carrasco,ruff,metzger,huntley,hinojosa,finney,madsen,hills,ernst,dozier,burkhart,bowser,peralta,daigle,whittington,sorenson,saucedo,roche,redding,fugate,avalos,waite,lind,huston,hay,hawthorne,hamby,boyles,boles,regan,faust,crook,beam,barger,hinds,gallardo,willoughby,willingham,eckert,busch,zepeda,worthington,tinsley,hoff,hawley,carmona,varela,rector,newcomb,kinsey,dube,whatley,ragsdale,bernstein,becerra,yost,mattson,felder,cheek,handy,grossman,gauthier,escobedo,braden,beckman,mott,hillman,flaherty,dykes,doe,stockton,stearns,lofton,coats,cavazos,beavers,barrios,parish,mosher,cardwell,coles,burnham,weller,lemons,beebe,aguilera,parnell,harman,couture,alley,schumacher,redd,dobbs,blum,blalock,merchant,ennis,denson,cottrell,brannon,bagley,aviles,watt,sousa,rosenthal,rooney,dietz,blank,paquette,mcclelland,duff,velasco,lentz,grubb,burrows,barbour,ulrich,shockley,rader,beyer,mixon,layton,altman,weathers,stoner,squires,shipp,priest,lipscomb,cutler,caballero,zimmer,willett,thurston,storey,medley,epperson,shah,mcmillian,baggett,torrez,laws,hirsch,dent,poirier,peachey,farrar,creech,barth,trimble,dupre,albrecht,sample,lawler,crisp,conroy,wetzel,nesbitt,murry,jameson,wilhelm,patten,minton,matson,kimbrough,iverson,guinn,croft,toth,pulliam,nugent,newby,littlejohn,dias,canales,bernier,baron,singletary,renteria,pruett,mchugh,mabry,landrum,brower,stoddard,cagle,stjohn,scales,kohler,kellogg,hopson,gant,tharp,gann,zeigler,pringle,hammons,fairchild,deaton,chavis,carnes,rowley,matlock,kearns,irizarry,carrington,starkey,lopes,jarrell,craven,baum,spain,littlefield,linn,humphreys,etheridge,cuellar,chastain,bundy,speer,skelton,quiroz,pyle,portillo,ponder,moulton,machado,liu,killian,hutson,hitchcock,dowling,cloud,burdick,spann,pedersen,levin,leggett,hayward,hacker,dietrich,beaulieu,barksdale,wakefield,snowden,briscoe,bowie,berman,ogle,mcgregor,laughlin,helm,burden,wheatley,schreiber,pressley,parris,alaniz,agee,urban,swann,snodgrass,schuster,radford,monk,mattingly,harp,girard,cheney,yancey,wagoner,ridley,lombardo,lau,hudgins,gaskins,duckworth,coe,coburn,willey,prado,newberry,magana,hammonds,elam,whipple,slade,serna,ojeda,liles,dorman,diehl,upton,reardon,michaels,goetz,eller,bauman,baer,layne,hummel,brenner,amaya,adamson,ornelas,dowell,cloutier,castellanos,wing,wellman,saylor,orourke,moya,montalvo,kilpatrick,durbin,shell,oldham,garvin,foss,branham,bartholomew,templeton,maguire,holton,rider,monahan,mccormack,beaty,anders,streeter,nieto,nielson,moffett,lankford,keating,heck,gatlin,delatorre,callaway,adcock,worrell,unger,robinette,nowak,jeter,brunner,steen,parrott,overstreet,nobles,montanez,clevenger,brinkley,trahan,quarles,pickering,pederson,jansen,grantham,gilchrist,crespo,aiken,schell,schaeffer,lorenz,leyva,harms,dyson,wallis,pease,leavitt,cavanaugh,batts,warden,seaman,rockwell,quezada,paxton,linder,houck,fontaine,durant,caruso,adler,pimentel,mize,lytle,cleary,cason,acker,switzer,isaacs,higginbotham,han,waterman,vandyke,stamper,sisk,shuler,riddick,mcmahan,levesque,hatton,bronson,bollinger,arnett,okeefe,gerber,gannon,farnsworth,baughman,silverman,satterfield,mccrary,kowalski,grigsby,greco,cabral,trout,rinehart,mahon,linton,gooden,curley,baugh,wyman,weiner,schwab,schuler,morrissey,mahan,bunn,thrasher,spear,waggoner,qualls,purdy,mcwhorter,mauldin,gilman,perryman,newsom,menard,martino,graf,billingsley,artis,simpkins,salisbury,quintanilla,gilliland,fraley,foust,crouse,scarborough,ngo,grissom,fultz,marlow,markham,madrigal,lawton,barfield,whiting,varney,schwarz,gooch,arce,wheat,truong,poulin,hurtado,selby,gaither,fortner,culpepper,coughlin,brinson,boudreau,barkley,bales,stepp,holm,tan,schilling,morrell,kahn,heaton,gamez,causey,turpin,shanks,schrader,meek,isom,hardison,carranza,yanez,scroggins,schofield,runyon,ratcliff,murrell,moeller,irby,currier,butterfield,yee,ralston,pullen,pinson,estep,carbone,hawks,ellington,casillas,spurlock,sikes,motley,mccartney,kruger,isbell,houle,burk,tomlin,quigley,neumann,lovelace,fennell,cheatham,bustamante,skidmore,hidalgo,forman,culp,bowens,betancourt,aquino,robb,rea,milner,martel,gresham,wiles,ricketts,dowd,collazo,bostic,blakely,sherrod,kenyon,gandy,ebert,deloach,allard,sauer,robins,olivares,gillette,chestnut,bourque,paine,hite,hauser,devore,crawley,chapa,talbert,poindexter,meador,mcduffie,mattox,kraus,harkins,choate,wren,sledge,sanborn,kinder,geary,cornwell,barclay,abney,seward,rhoads,howland,fortier,benner,vines,tubbs,troutman,rapp,mccurdy,deluca,westmoreland,havens,guajardo,ely,clary,seal,meehan,herzog,guillen,ashcraft,waugh,renner,milam,elrod,churchill,breaux,bolin,asher,windham,tirado,pemberton,nolen,noland,knott,emmons,cornish,christenson,brownlee,barbee,waldrop,pitt,olvera,lombardi,gruber,gaffney,eggleston,banda,archuleta,slone,prewitt,pfeiffer,nettles,mena,mcadams,henning,gardiner,cromwell,chisholm,burleson,vest,oglesby,mccarter,lumpkin,grey,wofford,vanhorn,thorn,teel,swafford,stclair,stanfield,ocampo,herrmann,hannon,arsenault,roush,mcalister,hiatt,gunderson,forsythe,duggan,delvalle,cintron,wilks,weinstein,uribe,rizzo,noyes,mclendon,gurley,bethea,winstead,maples,guyton,giordano,alderman,valdes,polanco,pappas,lively,grogan,griffiths,arevalo,whitson,sowell,rendon,fernandes,farrow,benavidez,ayres,alicea,stump,smalley,seitz,schulte,gilley,gallant,canfield,wolford,omalley,mcnutt,mcnulty,mcgovern,hardman,harbin,cowart,chavarria,brink,beckett,bagwell,armstead,anglin,abreu,reynoso,krebs,jett,hoffmann,greenfield,forte,burney,broome,sisson,trammell,partridge,mace,lomax,lemieux,gossett,frantz,fogle,cooney,broughton,pence,paulsen,muncy,mcarthur,hollins,beauchamp,withers,osorio,mulligan,hoyle,foy,dockery,cockrell,begley,amador,roby,rains,lindquist,gentile,everhart,bohannon,wylie,sommers,purnell,fortin,dunning,breeden,vail,phelan,phan,marx,cosby,colburn,boling,biddle,ledesma,gaddis,denney,chow,bueno,berrios,wicker,tolliver,thibodeaux,nagle,lavoie,fisk,crist,barbosa,reedy,march,locklear,kolb,himes,behrens,beckwith,weems,wahl,shorter,shackelford,rees,muse,cerda,valadez,thibodeau,saavedra,ridgeway,reiter,mchenry,majors,lachance,keaton,ferrara,clemens,blocker,applegate,paz,needham,mojica,kuykendall,hamel,escamilla,doughty,burchett,ainsworth,vidal,upchurch,thigpen,strauss,spruill,sowers,riggins,ricker,mccombs,harlow,buffington,sotelo,olivas,negrete,morey,macon,logsdon,lapointe,bigelow,bello,westfall,stubblefield,peak,lindley,hein,hawes,farrington,breen,birch,wilde,steed,sepulveda,reinhardt,proffitt,minter,messina,mcnabb,maier,keeler,gamboa,donohue,basham,shinn,crooks,cota,borders,bills,bachman,tisdale,tavares,schmid,pickard,gulley,fonseca,delossantos,condon,batista,wicks,wadsworth,martell,littleton,ison,haag,folsom,brumfield,broyles,brito,mireles,mcdonnell,leclair,hamblin,gough,fanning,binder,winfield,whitworth,soriano,palumbo,newkirk,mangum,hutcherson,comstock,carlin,beall,bair,wendt,watters,walling,putman,otoole,morley,mares,lemus,keener,hundley,dial,damico,billups,strother,mcfarlane,lamm,eaves,crutcher,caraballo,canty,atwell,taft,siler,rust,rawls,rawlings,prieto,mcneely,mcafee,hulsey,hackney,galvez,escalante,delagarza,crider,charlton,bandy,wilbanks,stowe,steinberg,renfro,masterson,massie,lanham,haskell,hamrick,fort,dehart,burdette,branson,bourne,babin,aleman,worthy,tibbs,smoot,slack,paradis,mull,luce,houghton,gantt,furman,danner,christianson,burge,ashford,arndt,almeida,stallworth,shade,searcy,sager,noonan,mclemore,mcintire,maxey,lavigne,jobe,ferrer,falk,coffin,byrnes,aranda,apodaca,stamps,rounds,peek,olmstead,lewandowski,kaminski,dunaway,bruns,brackett,amato,reich,mcclung,lacroix,koontz,herrick,hardesty,flanders,cousins,cato,cade,vickery,shank,nagel,dupuis,croteau,cotter,cable,stuckey,stine,porterfield,pauley,nye,moffitt,knudsen,hardwick,goforth,dupont,blunt,barrows,barnhill,shull,rash,loftis,lemay,kitchens,horvath,grenier,fuchs,fairbanks,culbertson,calkins,burnside,beattie,ashworth,albertson,wertz,vaught,vallejo,turk,tuck,tijerina,sage,peterman,marroquin,marr,lantz,hoang,demarco,daily,cone,berube,barnette,wharton,stinnett,slocum,scanlon,sander,pinto,mancuso,lima,headley,epstein,counts,clarkson,carnahan,boren,arteaga,adame,zook,whittle,whitehurst,wenzel,saxton,reddick,puente,handley,haggerty,earley,devlin,chaffin,cady,acuna,solano,sigler,pollack,pendergrass,ostrander,janes,francois,crutchfield,chamberlin,brubaker,baptiste,willson,reis,neeley,mullin,mercier,lira,layman,keeling,higdon,espinal,chapin,warfield,toledo,pulido,peebles,nagy,montague,mello,lear,jaeger,hogg,graff,furr,soliz,poore,mendenhall,mclaurin,maestas,gable,barraza,tillery,snead,pond,neill,mcculloch,mccorkle,lightfoot,hutchings,holloman,harness,dorn,council,bock,zielinski,turley,treadwell,stpierre,starling,somers,oswald,merrick,easterling,bivens,truitt,poston,parry,ontiveros,olivarez,moreau,medlin,lenz,knowlton,fairley,cobbs,chisolm,bannister,woodworth,toler,ocasio,noriega,neuman,moye,milburn,mcclanahan,lilley,hanes,flannery,dellinger,danielson,conti,blodgett,beers,weatherford,strain,karr,hitt,denham,custer,coble,clough,casteel,bolduc,batchelor,ammons,whitlow,tierney,staten,sibley,seifert,schubert,salcedo,mattison,laney,haggard,grooms,dix,dees,cromer,cooks,colson,caswell,zarate,swisher,shin,ragan,pridgen,mcvey,matheny,lafleur,franz,ferraro,dugger,whiteside,rigsby,mcmurray,lehmann,jacoby,hildebrand,hendrick,headrick,goad,fincher,drury,borges,archibald,albers,woodcock,trapp,soares,seaton,monson,luckett,lindberg,kopp,keeton,hsu,healey,garvey,gaddy,fain,burchfield,wentworth,strand,stack,spooner,saucier,sales,ricci,plunkett,pannell,ness,leger,hoy,freitas,fong,elizondo,duval,beaudoin,urbina,rickard,partin,moe,mcgrew,mcclintock,ledoux,forsyth,faison,devries,bertrand,wasson,tilton,scarbrough,leung,irvine,garber,denning,corral,colley,castleberry,bowlin,bogan,beale,baines,trice,rayburn,parkinson,pak,nunes,mcmillen,leahy,kimmel,higgs,fulmer,carden,bedford,taggart,spearman,register,prichard,morrill,koonce,heinz,hedges,guenther,grice,findley,dover,creighton,boothe,bayer,arreola,vitale,valles,raney,osgood,hanlon,burley,bounds,worden,weatherly,vetter,tanaka,stiltner,nevarez,mosby,montero,melancon,harter,hamer,goble,gladden,gist,ginn,akin,zaragoza,towns,tarver,sammons,royster,oreilly,muir,morehead,luster,kingsley,kelso,grisham,glynn,baumann,alves,yount,tamayo,paterson,oates,menendez,longo,hargis,gillen,desantis,breedlove,sumpter,scherer,rupp,reichert,heredia,creel,cohn,clemmons,casas,bickford,belton,bach,williford,whitcomb,tennant,sutter,stull,sessions,mccallum,langlois,keel,keegan,dangelo,dancy,damron,clapp,clanton,bankston,oliveira,mintz,mcinnis,martens,mabe,laster,jolley,hildreth,hefner,glaser,duckett,demers,brockman,blais,alcorn,agnew,toliver,tice,seeley,najera,musser,mcfall,laplante,galvin,fajardo,doan,coyne,copley,clawson,cheung,barone,wynne,woodley,tremblay,stoll,sparrow,sparkman,schweitzer,sasser,samples,roney,legg,heim,farias,colwell,christman,bratcher,winchester,upshaw,southerland,sorrell,sells,mount,mccloskey,martindale,luttrell,loveless,lovejoy,linares,latimer,embry,coombs,bratton,bostick,venable,tuggle,toro,staggs,sandlin,jefferies,heckman,griffis,crayton,clem,browder,thorton,sturgill,sprouse,royer,rousseau,ridenour,pogue,perales,peeples,metzler,mesa,mccutcheon,mcbee,hornsby,heffner,corrigan,armijo,vue,plante,peyton,paredes,macklin,hussey,hodgson,granados,frias,becnel,batten,almanza,turney,teal,sturgeon,meeker,mcdaniels,limon,keeney,kee,hutto,holguin,gorham,fishman,fierro,blanchette,rodrigue,reddy,osburn,oden,lerma,kirkwood,keefer,haugen,hammett,chalmers,brinkman,baumgartner,valerio,tellez,steffen,shumate,sauls,ripley,kemper,jacks,guffey,evers,craddock,carvalho,blaylock,banuelos,balderas,wooden,wheaton,turnbull,shuman,pointer,mosier,mccue,ligon,kozlowski,johansen,ingle,herr,briones,snipes,rickman,pipkin,pantoja,orosco,moniz,lawless,kunkel,hibbard,galarza,enos,bussey,schott,salcido,perreault,mcdougal,mccool,haight,garris,ferry,easton,conyers,atherton,wimberly,utley,spellman,smithson,slagle,ritchey,rand,petit,osullivan,oaks,nutt,mcvay,mccreary,mayhew,knoll,jewett,harwood,cardoza,ashe,arriaga,zeller,wirth,whitmire,stauffer,rountree,redden,mccaffrey,martz,larose,langdon,humes,gaskin,faber,devito,cass,almond,wingfield,wingate,villareal,tyner,smothers,severson,reno,pennell,maupin,leighton,janssen,hassell,hallman,halcomb,folse,fitzsimmons,fahey,cranford,bolen,battles,battaglia,wooldridge,trask,rosser,regalado,mcewen,keefe,fuqua,echevarria,caro,boynton,andrus,viera,vanmeter,taber,spradlin,seibert,provost,prentice,oliphant,laporte,hwang,hatchett,hass,greiner,freedman,covert,chilton,byars,wiese,venegas,swank,shrader,roberge,mullis,mortensen,mccune,marlowe,kirchner,keck,isaacson,hostetler,halverson,gunther,griswold,fenner,durden,blackwood,ahrens,sawyers,savoy,nabors,mcswain,mackay,loy,lavender,lash,labbe,jessup,fullerton,cruse,crittenden,correia,centeno,caudle,canady,callender,alarcon,ahern,winfrey,tribble,styles,salley,roden,musgrove,minnick,fortenberry,carrion,bunting,batiste,whited,underhill,stillwell,rauch,pippin,perrin,messenger,mancini,lister,kinard,hartmann,fleck,broadway,wilt,treadway,thornhill,spalding,rafferty,pitre,patino,ordonez,linkous,kelleher,homan,galbraith,feeney,curtin,coward,camarillo,buss,bunnell,bolt,beeler,autry,alcala,witte,wentz,stidham,shively,nunley,meacham,martins,lemke,lefebvre,hynes,horowitz,hoppe,holcombe,dunne,derr,cochrane,brittain,bedard,beauregard,torrence,strunk,soria,simonson,shumaker,scoggins,oconner,moriarty,kuntz,ives,hutcheson,horan,hales,garmon,fitts,bohn,atchison,wisniewski,vanwinkle,sturm,sallee,prosser,moen,lundberg,kunz,kohl,keane,jorgenson,jaynes,funderburk,freed,durr,creamer,cosgrove,batson,vanhoose,thomsen,teeter,smyth,redmon,orellana,maness,heflin,goulet,frick,forney,bunker,asbury,aguiar,talbott,southard,mowery,mears,lemmon,krieger,hickson,elston,duong,delgadillo,dayton,dasilva,conaway,catron,bruton,bradbury,bordelon,bivins,bittner,bergstrom,beals,abell,whelan,tejada,pulley,pino,norfleet,nealy,maes,loper,gatewood,frierson,freund,finnegan,cupp,covey,catalano,boehm,bader,yoon,walston,tenney,sipes,rawlins,medlock,mccaskill,mccallister,marcotte,maclean,hughey,henke,harwell,gladney,gilson,dew,chism,caskey,brandenburg,baylor,villasenor,veal,thatcher,stegall,shore,petrie,nowlin,navarrete,muhammad,lombard,loftin,lemaster,kroll,kovach,kimbrell,kidwell,hershberger,fulcher,eng,cantwell,bustos,boland,bobbitt,binkley,wester,weis,verdin,tiller,sisco,sharkey,seymore,rosenbaum,rohr,quinonez,pinkston,nation,malley,logue,lessard,lerner,lebron,krauss,klinger,halstead,haller,getz,burrow,alger,shores,pfeifer,perron,nelms,munn,mcmaster,mckenney,manns,knudson,hutchens,huskey,goebel,flagg,cushman,click,castellano,carder,bumgarner,wampler,spinks,robson,neel,mcreynolds,mathias,maas,loera,kasper,jenson,florez,coons,buckingham,brogan,berryman,wilmoth,wilhite,thrash,shephard,seidel,schulze,roldan,pettis,obryan,maki,mackie,hatley,frazer,fiore,chesser,bui,bottoms,bisson,benefield,allman,wilke,trudeau,timm,shifflett,rau,mundy,milliken,mayers,leake,kohn,huntington,horsley,hermann,guerin,fryer,frizzell,foret,flemming,fife,criswell,carbajal,bozeman,boisvert,angulo,wallen,tapp,silvers,ramsay,oshea,orta,moll,mckeever,mcgehee,linville,kiefer,ketchum,howerton,groce,gass,fusco,corbitt,betz,bartels,amaral,aiello,yoo,weddle,sperry,seiler,runyan,raley,overby,osteen,olds,mckeown,matney,lauer,lattimore,hindman,hartwell,fredrickson,fredericks,espino,clegg,carswell,cambell,burkholder,woodbury,welker,totten,thornburg,theriault,stitt,stamm,stackhouse,scholl,saxon,rife,razo,quinlan,pinkerton,olivo,nesmith,nall,mattos,lafferty,justus,giron,geer,fielder,drayton,dortch,conners,conger,boatwright,billiot,barden,armenta,tibbetts,steadman,slattery,rinaldi,raynor,pinckney,pettigrew,milne,matteson,halsey,gonsalves,fellows,durand,desimone,cowley,cowles,brill,barham,barela,barba,ashmore,withrow,valenti,tejeda,spriggs,sayre,salerno,peltier,peel,merriman,matheson,lowman,lindstrom,hyland,giroux,earls,dugas,dabney,collado,briseno,baxley,whyte,wenger,vanover,vanburen,thiel,schindler,schiller,rigby,pomeroy,passmore,marble,manzo,mahaffey,lindgren,laflamme,greathouse,fite,calabrese,bayne,yamamoto,wick,townes,thames,reinhart,peeler,naranjo,montez,mcdade,mast,markley,marchand,leeper,kellum,hudgens,hennessey,hadden,gainey,coppola,borrego,bolling,beane,ault,slaton,poland,pape,null,mulkey,lightner,langer,hillard,glasgow,ethridge,enright,derosa,baskin,weinberg,turman,somerville,pardo,noll,lashley,ingraham,hiller,hendon,glaze,cothran,cooksey,conte,carrico,abner,wooley,swope,summerlin,sturgis,sturdivant,stott,spurgeon,spillman,speight,roussel,popp,nutter,mckeon,mazza,magnuson,lanning,kozak,jankowski,heyward,forster,corwin,callaghan,bays,wortham,usher,theriot,sayers,sabo,poling,loya,lieberman,laroche,labelle,howes,harr,garay,fogarty,everson,durkin,dominquez,chaves,chambliss,witcher,vieira,vandiver,terrill,stoker,schreiner,moorman,liddell,lew,lawhorn,krug,irons,hylton,hollenbeck,herrin,hembree,goolsby,goodin,gilmer,foltz,dinkins,daughtry,caban,brim,briley,bilodeau,wyant,vergara,tallent,swearingen,stroup,scribner,quillen,pitman,monaco,mccants,maxfield,martinson,holtz,flournoy,brookins,brody,baumgardner,straub,sills,roybal,roundtree,oswalt,mcgriff,mcdougall,mccleary,maggard,gragg,gooding,godinez,doolittle,donato,cowell,cassell,bracken,appel,zambrano,reuter,perea,nakamura,monaghan,mickens,mcclinton,mcclary,marler,kish,judkins,gilbreath,freese,flanigan,felts,erdmann,dodds,chew,brownell,boatright,barreto,slayton,sandberg,saldivar,pettway,odum,narvaez,moultrie,montemayor,merrell,lees,keyser,hoke,hardaway,hannan,gilbertson,fogg,dumont,deberry,coggins,buxton,bucher,broadnax,beeson,araujo,appleton,amundson,aguayo,ackley,yocum,worsham,shivers,sanches,sacco,robey,rhoden,pender,ochs,mccurry,madera,luong,knotts,jackman,heinrich,hargrave,gault,comeaux,chitwood,caraway,boettcher,bernhardt,barrientos,zink,wickham,whiteman,thorp,stillman,settles,schoonover,roque,riddell,pilcher,phifer,novotny,macleod,hardee,haase,grider,doucette,clausen,bevins,beamon,badillo,tolley,tindall,soule,snook,seale,pitcher,pinkney,pellegrino,nowell,nemeth,mondragon,mclane,lundgren,ingalls,hudspeth,hixson,gearhart,furlong,downes,dibble,deyoung,cornejo,camara,brookshire,boyette,wolcott,surratt,sellars,segal,salyer,reeve,rausch,labonte,haro,gower,freeland,fawcett,eads,driggers,donley,collett,bromley,boatman,ballinger,baldridge,volz,trombley,stonge,shanahan,rivard,rhyne,pedroza,matias,jamieson,hedgepeth,hartnett,estevez,eskridge,denman,chiu,chinn,catlett,carmack,buie,bechtel,beardsley,bard,ballou,ulmer,skeen,robledo,rincon,reitz,piazza,munger,moten,mcmichael,loftus,ledet,kersey,groff,fowlkes,folk,crumpton,clouse,bettis,villagomez,timmerman,strom,santoro,roddy,penrod,musselman,macpherson,leboeuf,harless,haddad,guido,golding,fulkerson,fannin,dulaney,dowdell,cottle,ceja,cate,bosley,benge,albritton,voigt,trowbridge,soileau,seely,rohde,pearsall,paulk,orth,nason,mota,mcmullin,marquardt,madigan,hoag,gillum,gabbard,fenwick,eck,danforth,cushing,cress,creed,cazares,casanova,bey,bettencourt,barringer,baber,stansberry,schramm,rutter,rivero,oquendo,necaise,mouton,montenegro,miley,mcgough,marra,macmillan,lamontagne,jasso,horst,hetrick,heilman,gaytan,gall,fortney,dingle,desjardins,dabbs,burbank,brigham,breland,beaman,arriola,yarborough,wallin,toscano,stowers,reiss,pichardo,orton,michels,mcnamee,mccrory,leatherman,kell,keister,horning,hargett,guay,ferro,deboer,dagostino,carper,blanks,beaudry,towle,tafoya,stricklin,strader,soper,sonnier,sigmon,schenk,saddler,pedigo,mendes,lunn,lohr,lahr,kingsbury,jarman,hume,holliman,hofmann,haworth,harrelson,hambrick,flick,edmunds,dacosta,crossman,colston,chaplin,carrell,budd,weiler,waits,valentino,trantham,tarr,solorio,roebuck,powe,plank,pettus,palm,pagano,mink,luker,leathers,joslin,hartzell,gambrell,deutsch,cepeda,carty,caputo,brewington,bedell,ballew,applewhite,warnock,walz,urena,tudor,reel,pigg,parton,mickelson,meagher,mclellan,mcculley,mandel,leech,lavallee,kraemer,kling,kipp,kehoe,hochstetler,harriman,gregoire,grabowski,gosselin,gammon,fancher,edens,desai,brannan,armendariz,woolsey,whitehouse,whetstone,ussery,towne,testa,tallman,studer,strait,steinmetz,sorrells,sauceda,rolfe,paddock,mitchem,mcginn,mccrea,lovato,hazen,gilpin,gaynor,fike,devoe,delrio,curiel,burkhardt,bode,backus,zinn,watanabe,wachter,vanpelt,turnage,shaner,schroder,sato,riordan,quimby,portis,natale,mckoy,mccown,kilmer,hotchkiss,hesse,halbert,gwinn,godsey,delisle,chrisman,canter,arbogast,angell,acree,yancy,woolley,wesson,weatherspoon,trainor,stockman,spiller,sipe,rooks,reavis,propst,porras,neilson,mullens,loucks,llewellyn,kumar,koester,klingensmith,kirsch,kester,honaker,hodson,hennessy,helmick,garrity,garibay,fee,drain,casarez,callis,botello,aycock,avant,wingard,wayman,tully,theisen,szymanski,stansbury,segovia,rainwater,preece,pirtle,padron,mincey,mckelvey,mathes,larrabee,kornegay,klug,ingersoll,hecht,germain,eggers,dykstra,deering,decoteau,deason,dearing,cofield,carrigan,bonham,bahr,aucoin,appleby,almonte,yager,womble,wimmer,weimer,vanderpool,stancil,sprinkle,romine,remington,pfaff,peckham,olivera,meraz,maze,lathrop,koehn,hazelton,halvorson,hallock,haddock,ducharme,dehaven,caruthers,brehm,bosworth,bost,bias,beeman,basile,bane,aikens,wold,walther,tabb,suber,strawn,stocker,shirey,schlosser,riedel,rembert,reimer,pyles,peele,merriweather,letourneau,latta,kidder,hixon,hillis,hight,herbst,henriquez,haygood,hamill,gabel,fritts,eubank,dawes,correll,cha,bushey,buchholz,brotherton,botts,barnwell,auger,atchley,westphal,veilleux,ulloa,stutzman,shriver,ryals,prior,pilkington,moyers,marrs,mangrum,maddux,lockard,laing,kuhl,harney,hammock,hamlett,felker,doerr,depriest,carrasquillo,carothers,bogle,bischoff,bergen,albanese,wyckoff,vermillion,vansickle,thibault,tetreault,stickney,shoemake,ruggiero,rawson,racine,philpot,paschal,mcelhaney,mathison,legrand,lapierre,kwan,kremer,jiles,hilbert,geyer,faircloth,ehlers,egbert,desrosiers,dalrymple,cotten,cashman,cadena,breeding,boardman,alcaraz,ahn,wyrick,therrien,tankersley,strickler,puryear,plourde,pattison,pardue,mcginty,mcevoy,landreth,kuhns,koon,hewett,giddens,emerick,eades,deangelis,cosme,ceballos,birdsong,benham,bemis,armour,anguiano,welborn,tsosie,storms,shoup,sessoms,samaniego,rood,rojo,rhinehart,raby,northcutt,myer,munguia,morehouse,mcdevitt,mallett,lozada,lemoine,kuehn,hallett,grim,gillard,gaylor,garman,gallaher,feaster,faris,darrow,dardar,coney,carreon,braithwaite,boylan,boyett,bixler,bigham,benford,barragan,barnum,zuber,wyche,westcott,vining,stoltzfus,simonds,shupe,sabin,ruble,rittenhouse,richman,perrone,mulholland,millan,lomeli,kite,jemison,hulett,holler,hickerson,herold,hazelwood,griffen,gause,forde,eisenberg,dilworth,charron,chaisson,brodie,bristow,breunig,brace,boutwell,bentz,belk,bayless,batchelder,baran,baeza,zimmermann,weathersby,volk,toole,theis,tedesco,searle,schenck,satterwhite,ruelas,rankins,partida,nesbit,morel,menchaca,levasseur,kaylor,johnstone,hulse,hollar,hersey,harrigan,harbison,guyer,gish,giese,gerlach,geller,geisler,falcone,elwell,doucet,deese,darr,corder,chafin,byler,bussell,burdett,brasher,bowe,bellinger,bastian,barner,alleyne,wilborn,weil,wegner,wales,tatro,spitzer,smithers,schoen,resendez,parisi,overman,obrian,mudd,moy,mclaren,maggio,lindner,lalonde,lacasse,laboy,killion,kahl,jessen,jamerson,houk,henshaw,gustin,graber,durst,duenas,davey,cundiff,conlon,colunga,coakley,chiles,capers,buell,bricker,bissonnette,birmingham,bartz,bagby,zayas,volpe,treece,toombs,thom,terrazas,swinney,skiles,silveira,shouse,senn,ramage,nez,moua,langham,kyles,holston,hoagland,herd,feller,denison,carraway,burford,bickel,ambriz,abercrombie,yamada,weidner,waddle,verduzco,thurmond,swindle,schrock,sanabria,rosenberger,probst,peabody,olinger,nazario,mccafferty,mcbroom,mcabee,mazur,matherne,mapes,leverett,killingsworth,heisler,griego,gosnell,frankel,franke,ferrante,fenn,ehrlich,christopherso,chasse,chancellor,caton,brunelle,bly,bloomfield,babbitt,azevedo,abramson,ables,abeyta,youmans,wozniak,wainwright,stowell,smitherman,samuelson,runge,rothman,rosenfeld,peake,owings,olmos,munro,moreira,leatherwood,larkins,krantz,kovacs,kizer,kindred,karnes,jaffe,hubbell,hosey,hauck,goodell,erdman,dvorak,doane,cureton,cofer,buehler,bierman,berndt,banta,abdullah,warwick,waltz,turcotte,torrey,stith,seger,sachs,quesada,pinder,peppers,pascual,paschall,parkhurst,ozuna,oster,nicholls,lheureux,lavalley,kimura,jablonski,haun,gourley,gilligan,derby,croy,cotto,cargill,burwell,burgett,buckman,booher,adorno,wrenn,whittemore,urias,szabo,sayles,saiz,rutland,rael,pharr,pelkey,ogrady,nickell,musick,moats,mather,massa,kirschner,kieffer,kellar,hendershot,gott,godoy,gadson,furtado,fiedler,erskine,dutcher,dever,daggett,chevalier,brake,ballesteros,amerson,wingo,waldon,trott,silvey,showers,schlegel,rue,ritz,pepin,pelayo,parsley,palermo,moorehead,mchale,lett,kocher,kilburn,iglesias,humble,hulbert,huckaby,hix,haven,hartford,hardiman,gurney,grigg,grasso,goings,fillmore,farber,depew,dandrea,dame,cowen,covarrubias,burrus,bracy,ardoin,thompkins,standley,radcliffe,pohl,persaud,parenteau,pabon,newson,newhouse,napolitano,mulcahy,malave,keim,hooten,hernandes,heffernan,hearne,greenleaf,glick,fuhrman,fetter,faria,dishman,dickenson,crites,criss,clapper,chenault,castor,casto,bugg,bove,bonney,ard,anderton,allgood,alderson,woodman,warrick,toomey,tooley,tarrant,summerville,stebbins,sokol,searles,schutz,schumann,scheer,remillard,raper,proulx,palmore,monroy,messier,melo,melanson,mashburn,manzano,lussier,jenks,huneycutt,hartwig,grimsley,fulk,fielding,fidler,engstrom,eldred,dantzler,crandell,calder,brumley,breton,brann,bramlett,boykins,bianco,bancroft,almaraz,alcantar,whitmer,whitener,welton,vineyard,rahn,paquin,mizell,mcmillin,mckean,marston,maciel,lundquist,liggins,lampkin,kranz,koski,kirkham,jiminez,hazzard,harrod,graziano,grammer,gendron,garrido,fordham,englert,dryden,demoss,deluna,crabb,comeau,brummett,blume,benally,wessel,vanbuskirk,thorson,stumpf,stockwell,reams,radtke,rackley,pelton,niemi,newland,nelsen,morrissette,miramontes,mcginley,mccluskey,marchant,luevano,lampe,lail,jeffcoat,infante,hinman,gaona,erb,eady,desmarais,decosta,dansby,choe,breckenridge,bostwick,borg,bianchi,alberts,wilkie,whorton,vargo,tait,soucy,schuman,ousley,mumford,lum,lippert,leath,lavergne,laliberte,kirksey,kenner,johnsen,izzo,hiles,gullett,greenwell,gaspar,galbreath,gaitan,ericson,delapaz,croom,cottingham,clift,bushnell,bice,beason,arrowood,waring,voorhees,truax,shreve,shockey,schatz,sandifer,rubino,rozier,roseberry,pieper,peden,nester,nave,murphey,malinowski,macgregor,lafrance,kunkle,kirkman,hipp,hasty,haddix,gervais,gerdes,gamache,fouts,fitzwater,dillingham,deming,deanda,cedeno,cannady,burson,bouldin,arceneaux,woodhouse,whitford,wescott,welty,weigel,torgerson,toms,surber,sunderland,sterner,setzer,riojas,pumphrey,puga,metts,mcgarry,mccandless,magill,lupo,loveland,llamas,leclerc,koons,kahler,huss,holbert,heintz,haupt,grimmett,gaskill,ellingson,dorr,dingess,deweese,desilva,crossley,cordeiro,converse,conde,caldera,cairns,burmeister,burkhalter,brawner,bott,youngs,vierra,valladares,shrum,shropshire,sevilla,rusk,rodarte,pedraza,nino,merino,mcminn,markle,mapp,lajoie,koerner,kittrell,kato,hyder,hollifield,heiser,hazlett,greenwald,fant,eldredge,dreher,delafuente,cravens,claypool,beecher,aronson,alanis,worthen,wojcik,winger,whitacre,wellington,valverde,valdivia,troupe,thrower,swindell,suttles,suh,stroman,spires,slate,shealy,sarver,sartin,sadowski,rondeau,rolon,rascon,priddy,paulino,nolte,munroe,molloy,mciver,lykins,loggins,lenoir,klotz,kempf,hupp,hollowell,hollander,haynie,harkness,harker,gottlieb,frith,eddins,driskell,doggett,densmore,charette,cassady,byrum,burcham,buggs,benn,whitted,warrington,vandusen,vaillancourt,steger,siebert,scofield,quirk,purser,plumb,orcutt,nordstrom,mosely,michalski,mcphail,mcdavid,mccraw,marchese,mannino,lefevre,largent,lanza,kress,isham,hunsaker,hoch,hildebrandt,guarino,grijalva,graybill,ewell,ewald,cusick,crumley,coston,cathcart,carruthers,bullington,bowes,blain,blackford,barboza,yingling,weiland,varga,silverstein,sievers,shuster,shumway,runnels,rumsey,renfroe,provencher,polley,mohler,middlebrooks,kutz,koster,groth,glidden,fazio,deen,chipman,chenoweth,champlin,cedillo,carrero,carmody,buckles,brien,boutin,bosch,berkowitz,altamirano,wilfong,wiegand,waites,truesdale,toussaint,tobey,tedder,steelman,sirois,schnell,robichaud,richburg,plumley,pizarro,piercy,ortego,oberg,neace,mertz,mcnew,matta,lapp,lair,kibler,howlett,hollister,hofer,hatten,hagler,falgoust,engelhardt,eberle,dombrowski,dinsmore,daye,casares,braud,balch,autrey,wendel,tyndall,strobel,stoltz,spinelli,serrato,rochester,reber,rathbone,palomino,nickels,mayle,mathers,mach,loeffler,littrell,levinson,leong,lemire,lejeune,lazo,lasley,koller,kennard,hoelscher,hintz,hagerman,greaves,fore,eudy,engler,corrales,cordes,brunet,bidwell,bennet,tyrrell,tharpe,swinton,stribling,southworth,sisneros,savoie,samons,ruvalcaba,ries,ramer,omara,mosqueda,millar,mcpeak,macomber,luckey,litton,lehr,lavin,hubbs,hoard,hibbs,hagans,futrell,exum,evenson,culler,carbaugh,callen,brashear,bloomer,blakeney,bigler,addington,woodford,unruh,tolentino,sumrall,stgermain,smock,sherer,rayner,pooler,oquinn,nero,mcglothlin,linden,kowal,kerrigan,ibrahim,harvell,hanrahan,goodall,geist,fussell,fung,ferebee,eley,eggert,dorsett,dingman,destefano,colucci,clemmer,burnell,brumbaugh,boddie,berryhill,avelar,alcantara,winder,winchell,vandenberg,trotman,thurber,thibeault,stlouis,stilwell,sperling,shattuck,sarmiento,ruppert,rumph,renaud,randazzo,rademacher,quiles,pearman,palomo,mercurio,lowrey,lindeman,lawlor,larosa,lander,labrecque,hovis,holifield,henninger,hawkes,hartfield,hann,hague,genovese,garrick,fudge,frink,eddings,dinh,cribbs,calvillo,bunton,brodeur,bolding,blanding,agosto,zahn,wiener,trussell,tew,tello,teixeira,speck,sharma,shanklin,sealy,scanlan,santamaria,roundy,robichaux,ringer,rigney,prevost,polson,nord,moxley,medford,mccaslin,mcardle,macarthur,lewin,lasher,ketcham,keiser,heine,hackworth,grose,grizzle,gillman,gartner,frazee,fleury,edson,edmonson,derry,cronk,conant,burress,burgin,broom,brockington,bolick,boger,birchfield,billington,baily,bahena,armbruster,anson,yoho,wilcher,tinney,timberlake,thoma,thielen,sutphin,stultz,sikora,serra,schulman,scheffler,santillan,rego,preciado,pinkham,mickle,luu,lomas,lizotte,lent,kellerman,keil,johanson,hernadez,hartsfield,haber,gorski,farkas,eberhardt,duquette,delano,cropper,cozart,cockerham,chamblee,cartagena,cahoon,buzzell,brister,brewton,blackshear,benfield,aston,ashburn,arruda,wetmore,weise,vaccaro,tucci,sudduth,stromberg,stoops,showalter,shears,runion,rowden,rosenblum,riffle,renfrow,peres,obryant,leftwich,lark,landeros,kistler,killough,kerley,kastner,hoggard,hartung,guertin,govan,gatling,gailey,fullmer,fulford,flatt,esquibel,endicott,edmiston,edelstein,dufresne,dressler,dickman,chee,busse,bonnett,berard,arena,yoshida,velarde,veach,vanhouten,vachon,tolson,tolman,tennyson,stites,soler,shutt,ruggles,rhone,pegues,ong,neese,muro,moncrief,mefford,mcphee,mcmorris,mceachern,mcclurg,mansour,mader,leija,lecompte,lafountain,labrie,jaquez,heald,hash,hartle,gainer,frisby,farina,eidson,edgerton,dyke,durrett,duhon,cuomo,cobos,cervantez,bybee,brockway,borowski,binion,beery,arguello,amaro,acton,yuen,winton,wigfall,weekley,vidrine,vannoy,tardiff,shoop,shilling,schick,safford,prendergast,pellerin,osuna,nissen,nalley,moller,messner,messick,merrifield,mcguinness,matherly,marcano,mahone,lemos,lebrun,jara,hoffer,herren,hecker,haws,haug,gwin,gober,gilliard,fredette,favela,echeverria,downer,donofrio,desrochers,crozier,corson,bechtold,argueta,aparicio,zamudio,westover,westerman,utter,troyer,thies,tapley,slavin,shirk,sandler,roop,raymer,radcliff,otten,moorer,millet,mckibben,mccutchen,mcavoy,mcadoo,mayorga,mastin,martineau,marek,madore,leflore,kroeger,kennon,jimerson,hostetter,hornback,hendley,hance,guardado,granado,gowen,goodale,flinn,fleetwood,fitz,durkee,duprey,dipietro,dilley,clyburn,brawley,beckley,arana,weatherby,vollmer,vestal,tunnell,trigg,tingle,takahashi,sweatt,storer,snapp,shiver,rooker,rathbun,poisson,perrine,perri,pastor,parmer,parke,pare,palmieri,nottingham,midkiff,mecham,mccomas,mcalpine,lovelady,lillard,lally,knopp,kile,kiger,haile,gupta,goldsberry,gilreath,fulks,friesen,franzen,flack,findlay,ferland,dreyer,dore,dennard,deckard,debose,crim,coulombe,cork,chancey,cantor,branton,bissell,barns,woolard,witham,wasserman,spiegel,shoffner,scholz,ruch,rossman,petry,palacio,paez,neary,mortenson,millsap,miele,menke,mckim,mcanally,martines,manor,lemley,larochelle,klaus,klatt,kaufmann,kapp,helmer,hedge,halloran,glisson,frechette,fontana,eagan,distefano,danley,creekmore,chartier,chaffee,carillo,burg,bolinger,berkley,benz,basso,bash,barrier,zelaya,woodring,witkowski,wilmot,wilkens,wieland,verdugo,urquhart,tsai,timms,swiger,swaim,sussman,pires,molnar,mcatee,lowder,loos,linker,landes,kingery,hufford,higa,hendren,hammack,hamann,gillam,gerhardt,edelman,eby,delk,deans,curl,constantine,cleaver,claar,casiano,carruth,carlyle,brophy,bolanos,bibbs,bessette,beggs,baugher,bartel,averill,andresen,amin,adames,via,valente,turnbow,tse,swink,sublett,stroh,stringfellow,ridgway,pugliese,poteat,ohare,neubauer,murchison,mingo,lemmons,kwon,kellam,kean,jarmon,hyden,hudak,hollinger,henkel,hemingway,hasson,hansel,halter,haire,ginsberg,gillispie,fogel,flory,etter,elledge,eckman,deas,currin,crafton,coomer,colter,claxton,bulter,braddock,bowyer,binns,bellows,baskerville,barros,ansley,woolf,wight,waldman,wadley,tull,trull,tesch,stouffer,stadler,slay,shubert,sedillo,santacruz,reinke,poynter,neri,neale,mowry,moralez,monger,mitchum,merryman,manion,macdougall,lux,litchfield,ley,levitt,lepage,lasalle,khoury,kavanagh,karns,ivie,huebner,hodgkins,halpin,garica,eversole,dutra,dunagan,duffey,dillman,dillion,deville,dearborn,damato,courson,coulson,burdine,bousquet,bonin,bish,atencio,westbrooks,wages,vaca,tye,toner,tillis,swett,struble,stanfill,solorzano,slusher,sipple,sim,silvas,shults,schexnayder,saez,rodas,rager,pulver,plaza,penton,paniagua,meneses,mcfarlin,mcauley,matz,maloy,magruder,lohman,landa,lacombe,jaimes,hom,holzer,holst,heil,hackler,grundy,gilkey,farnham,durfee,dunton,dunston,duda,dews,craver,corriveau,conwell,colella,chambless,bremer,boutte,bourassa,blaisdell,backman,babineaux,audette,alleman,towner,taveras,tarango,sullins,suiter,stallard,solberg,schlueter,poulos,pimental,owsley,okelley,nations,moffatt,metcalfe,meekins,medellin,mcglynn,mccowan,marriott,marable,lennox,lamoureux,koss,kerby,karp,isenberg,howze,hockenberry,highsmith,harbour,hallmark,gusman,greeley,giddings,gaudet,gallup,fleenor,eicher,edington,dimaggio,dement,demello,decastro,bushman,brundage,brooker,bourg,blackstock,bergmann,beaton,banister,argo,appling,wortman,watterson,villalpando,tillotson,tighe,sundberg,sternberg,stamey,shipe,seeger,scarberry,sattler,sain,rothstein,poteet,plowman,pettiford,penland,partain,pankey,oyler,ogletree,ogburn,moton,merkel,lucier,lakey,kratz,kinser,kershaw,josephson,imhoff,hendry,hammon,frisbie,friedrich,frawley,fraga,forester,eskew,emmert,drennan,doyon,dandridge,cawley,carvajal,bracey,belisle,batey,ahner,wysocki,weiser,veliz,tincher,sansone,sankey,sandstrom,rohrer,risner,pridemore,pfeffer,persinger,peery,oubre,nowicki,musgrave,murdoch,mullinax,mccary,mathieu,livengood,kyser,klink,kimes,kellner,kavanaugh,kasten,imes,hoey,hinshaw,hake,gurule,grube,grillo,geter,gatto,garver,garretson,farwell,eiland,dunford,decarlo,corso,colman,collard,cleghorn,chasteen,cavender,carlile,calvo,byerly,brogdon,broadwater,breault,bono,bergin,behr,ballenger,amick,tamez,stiffler,steinke,simmon,shankle,schaller,salmons,sackett,saad,rideout,ratcliffe,rao,ranson,plascencia,petterson,olszewski,olney,olguin,nilsson,nevels,morelli,montiel,monge,michaelson,mertens,mcchesney,mcalpin,mathewson,loudermilk,lineberry,liggett,kinlaw,kight,jost,hereford,hardeman,halpern,halliday,hafer,gaul,friel,freitag,forsberg,evangelista,doering,dicarlo,dendy,delp,deguzman,dameron,curtiss,cosper,cauthen,cao,bradberry,bouton,bonnell,bixby,bieber,beveridge,bedwell,barhorst,bannon,baltazar,baier,ayotte,attaway,arenas,abrego,turgeon,tunstall,thaxton,thai,tenorio,stotts,sthilaire,shedd,seabolt,scalf,salyers,ruhl,rowlett,robinett,pfister,perlman,parkman,nunnally,norvell,napper,modlin,mckellar,mcclean,mascarenas,leibowitz,ledezma,kuhlman,kobayashi,hunley,holmquist,hinkley,hartsell,gribble,gravely,fifield,eliason,doak,crossland,carleton,bridgeman,bojorquez,boggess,auten,woosley,whiteley,wexler,twomey,tullis,townley,standridge,santoyo,rueda,riendeau,revell,pless,ottinger,nigro,nickles,mulvey,menefee,mcshane,mcloughlin,mckinzie,markey,lockridge,lipsey,knisley,knepper,kitts,kiel,jinks,hathcock,godin,gallego,fikes,fecteau,estabrook,ellinger,dunlop,dudek,countryman,chauvin,chatham,bullins,brownfield,boughton,bloodworth,bibb,baucom,barbieri,aubin,armitage,alessi,absher,abbate,zito,woolery,wiggs,wacker,tynes,tolle,telles,tarter,swarey,strode,stockdale,stalnaker,spina,schiff,saari,risley,rameriz,rakes,pettaway,penner,paulus,palladino,omeara,montelongo,melnick,mehta,mcgary,mccourt,mccollough,marchetti,manzanares,lowther,leiva,lauderdale,lafontaine,kowalczyk,knighton,joubert,jaworski,ide,huth,hurdle,housley,hackman,gulick,gordy,gilstrap,gehrke,gebhart,gaudette,foxworth,essex,endres,dunkle,cimino,caddell,brauer,braley,bodine,blackmore,belden,backer,ayer,andress,wisner,vuong,valliere,twigg,tso,tavarez,strahan,steib,staub,sowder,seiber,schutt,scharf,schade,rodriques,risinger,renshaw,rahman,presnell,piatt,nieman,nevins,mcilwain,mcgaha,mccully,mccomb,massengale,macedo,lesher,kearse,jauregui,husted,hudnall,holmberg,hertel,hardie,glidewell,frausto,fassett,dalessandro,dahlgren,corum,constantino,conlin,colquitt,colombo,claycomb,cardin,buller,boney,bocanegra,biggers,benedetto,araiza,andino,albin,zorn,werth,weisman,walley,vanegas,ulibarri,towe,tedford,teasley,suttle,steffens,stcyr,squire,singley,sifuentes,shuck,schram,sass,rieger,ridenhour,rickert,richerson,rayborn,rabe,raab,pendley,pastore,ordway,moynihan,mellott,mckissick,mcgann,mccready,mauney,marrufo,lenhart,lazar,lafave,keele,kautz,jardine,jahnke,jacobo,hord,hardcastle,hageman,giglio,gehring,fortson,duque,duplessis,dicken,derosier,deitz,dalessio,cram,castleman,candelario,callison,caceres,bozarth,biles,bejarano,bashaw,avina,armentrout,alverez,acord,waterhouse,vereen,vanlandingham,uhl,strawser,shotwell,severance,seltzer,schoonmaker,schock,schaub,schaffner,roeder,rodrigez,riffe,rhine,rasberry,rancourt,railey,quade,pursley,prouty,perdomo,oxley,osterman,nickens,murphree,mounts,merida,maus,mattern,masse,martinelli,mangan,lutes,ludwick,loney,laureano,lasater,knighten,kissinger,kimsey,kessinger,honea,hollingshead,hockett,heyer,heron,gurrola,gove,glasscock,gillett,galan,featherstone,eckhardt,duron,dunson,dasher,culbreth,cowden,cowans,claypoole,churchwell,chabot,caviness,cater,caston,callan,byington,burkey,boden,beckford,atwater,archambault,alvey,alsup,whisenant,weese,voyles,verret,tsang,tessier,sweitzer,sherwin,shaughnessy,revis,remy,prine,philpott,peavy,paynter,parmenter,ovalle,offutt,nightingale,newlin,nakano,myatt,muth,mohan,mcmillon,mccarley,mccaleb,maxson,marinelli,maley,liston,letendre,kain,huntsman,hirst,hagerty,gulledge,greenway,grajeda,gorton,goines,gittens,frederickson,fanelli,embree,eichelberger,dunkin,dixson,dillow,defelice,chumley,burleigh,borkowski,binette,biggerstaff,berglund,beller,audet,arbuckle,allain,alfano,youngman,wittman,weintraub,vanzant,vaden,twitty,stollings,standifer,sines,shope,scalise,saville,posada,pisano,otte,nolasco,napoli,mier,merkle,mendiola,melcher,mejias,mcmurry,mccalla,markowitz,manis,mallette,macfarlane,lough,looper,landin,kittle,kinsella,kinnard,hobart,herald,helman,hellman,hartsock,halford,hage,gordan,glasser,gayton,gattis,gastelum,gaspard,frisch,fitzhugh,eckstein,eberly,dowden,despain,crumpler,crotty,cornelison,chouinard,chamness,catlin,cann,bumgardner,budde,branum,bradfield,braddy,borst,birdwell,bazan,banas,bade,arango,ahearn,addis,zumwalt,wurth,wilk,widener,wagstaff,urrutia,terwilliger,tart,steinman,staats,sloat,rives,riggle,revels,reichard,prickett,poff,pitzer,petro,pell,northrup,nicks,moline,mielke,maynor,mallon,magness,lingle,lindell,lieb,lesko,lebeau,lammers,lafond,kiernan,ketron,jurado,holmgren,hilburn,hayashi,hashimoto,harbaugh,guillot,gard,froehlich,feinberg,falco,dufour,drees,doney,diep,delao,daves,dail,crowson,coss,congdon,carner,camarena,butterworth,burlingame,bouffard,bloch,bilyeu,barta,bakke,baillargeon,avent,aquilar,ake,aho,zeringue,yarber,wolfson,vogler,voelker,truss,troxell,thrift,strouse,spielman,sistrunk,sevigny,schuller,schaaf,ruffner,routh,roseman,ricciardi,peraza,pegram,overturf,olander,odaniel,neu,millner,melchor,maroney,machuca,macaluso,livesay,layfield,laskowski,kwiatkowski,kilby,hovey,heywood,hayman,havard,harville,haigh,hagood,grieco,glassman,gebhardt,fleischer,fann,elson,eccles,cunha,crumb,blakley,bardwell,abshire,woodham,wines,welter,wargo,varnado,tutt,traynor,swaney,svoboda,stricker,stoffel,stambaugh,sickler,shackleford,selman,seaver,sansom,sanmiguel,royston,rourke,rockett,rioux,puleo,pitchford,nardi,mulvaney,middaugh,malek,leos,lathan,kujawa,kimbro,killebrew,houlihan,hinckley,herod,hepler,hamner,hammel,hallowell,gonsalez,gingerich,gambill,funkhouser,fricke,fewell,falkner,endsley,dulin,drennen,deaver,dambrosio,chadwell,castanon,burkes,brune,brisco,brinker,bowker,boldt,berner,beaumont,beaird,bazemore,barrick,albano,younts,wunderlich,weidman,vanness,toland,theobald,stickler,steiger,stanger,spies,spector,sollars,smedley,seibel,scoville,saito,rye,rummel,rowles,rouleau,roos,rogan,roemer,ream,raya,purkey,priester,perreira,penick,paulin,parkins,overcash,oleson,neves,muldrow,minard,midgett,michalak,melgar,mcentire,mcauliffe,marte,lydon,lindholm,leyba,langevin,lagasse,lafayette,kesler,kelton,kao,kaminsky,jaggers,humbert,huck,howarth,hinrichs,higley,gupton,guimond,gravois,giguere,fretwell,fontes,feeley,faucher,eichhorn,ecker,earp,dole,dinger,derryberry,demars,deel,copenhaver,collinsworth,colangelo,cloyd,claiborne,caulfield,carlsen,calzada,caffey,broadus,brenneman,bouie,bodnar,blaney,blanc,beltz,behling,barahona,yockey,winkle,windom,wimer,villatoro,trexler,teran,taliaferro,sydnor,swinson,snelling,smtih,simonton,simoneaux,simoneau,sherrer,seavey,scheel,rushton,rupe,ruano,rippy,reiner,reiff,rabinowitz,quach,penley,odle,nock,minnich,mckown,mccarver,mcandrew,longley,laux,lamothe,lafreniere,kropp,krick,kates,jepson,huie,howse,howie,henriques,haydon,haught,hartzog,harkey,grimaldo,goshorn,gormley,gluck,gilroy,gillenwater,giffin,fluker,feder,eyre,eshelman,eakins,detwiler,delrosario,davisson,catalan,canning,calton,brammer,botelho,blakney,bartell,averett,askins,aker,zak,worcester,witmer,wiser,winkelman,widmer,whittier,weitzel,wardell,wagers,ullman,tupper,tingley,tilghman,talton,simard,seda,scheller,sala,rundell,rost,roa,ribeiro,rabideau,primm,pinon,peart,ostrom,ober,nystrom,nussbaum,naughton,murr,moorhead,monti,monteiro,melson,meissner,mclin,mcgruder,marotta,makowski,majewski,madewell,lunt,lukens,leininger,lebel,lakin,kepler,jaques,hunnicutt,hungerford,hoopes,hertz,heins,halliburton,grosso,gravitt,glasper,gallman,gallaway,funke,fulbright,falgout,eakin,dostie,dorado,dewberry,derose,cutshall,crampton,costanzo,colletti,cloninger,claytor,chiang,canterbury,campagna,burd,brokaw,broaddus,bretz,brainard,binford,bilbrey,alpert,aitken,ahlers,zajac,woolfolk,witten,windle,wayland,tramel,tittle,talavera,suter,straley,specht,sommerville,soloman,skeens,sigman,sibert,shavers,schuck,schmit,sartain,sabol,rosenblatt,rollo,rashid,rabb,province,polston,nyberg,northrop,navarra,muldoon,mikesell,mcdougald,mcburney,mariscal,lui,lozier,lingerfelt,legere,latour,lagunas,lacour,kurth,killen,kiely,kayser,kahle,isley,huertas,hower,hinz,haugh,gumm,galicia,fortunato,flake,dunleavy,duggins,doby,digiovanni,devaney,deltoro,cribb,corpuz,coronel,coen,charbonneau,caine,burchette,blakey,blakemore,bergquist,beene,beaudette,bayles,ballance,bakker,bailes,asberry,arwood,zucker,willman,whitesell,wald,walcott,vancleave,trump,strasser,simas,shick,schleicher,schaal,saleh,rotz,resnick,rainer,partee,ollis,oller,oday,munday,mong,millican,merwin,mazzola,mansell,magallanes,llanes,lewellen,lepore,kisner,keesee,jeanlouis,ingham,hornbeck,hawn,hartz,harber,haffner,gutshall,guth,grays,gowan,finlay,finkelstein,eyler,enloe,dungan,diez,dearman,cull,crosson,chronister,cassity,campion,callihan,butz,breazeale,blumenthal,berkey,batty,batton,arvizu,alderete,aldana,albaugh,abernethy,wolter,wille,tweed,tollefson,thomasson,teter,testerman,sproul,spates,southwick,soukup,skelly,senter,sealey,sawicki,sargeant,rossiter,rosemond,repp,pifer,ormsby,nickelson,naumann,morabito,monzon,millsaps,millen,mcelrath,marcoux,mantooth,madson,macneil,mackinnon,louque,leister,lampley,kushner,krouse,kirwan,jessee,janson,jahn,jacquez,islas,hutt,holladay,hillyer,hepburn,hensel,harrold,gingrich,geis,gales,fults,finnell,ferri,featherston,epley,ebersole,eames,dunigan,drye,dismuke,devaughn,delorenzo,damiano,confer,collum,clower,clow,claussen,clack,caylor,cawthon,casias,carreno,bluhm,bingaman,bewley,belew,beckner,auld,amey,wolfenbarger,wilkey,wicklund,waltman,villalba,valero,valdovinos,ung,ullrich,tyus,twyman,trost,tardif,tanguay,stripling,steinbach,shumpert,sasaki,sappington,sandusky,reinhold,reinert,quijano,pye,placencia,pinkard,phinney,perrotta,pernell,parrett,oxendine,owensby,orman,nuno,mori,mcroberts,mcneese,mckamey,mccullum,markel,mardis,maines,lueck,lubin,lefler,leffler,larios,labarbera,kershner,josey,jeanbaptiste,izaguirre,hermosillo,haviland,hartshorn,hafner,ginter,getty,franck,fiske,dufrene,doody,davie,dangerfield,dahlberg,cuthbertson,crone,coffelt,chidester,chesson,cauley,caudell,cantara,campo,caines,bullis,bucci,brochu,bogard,bickerstaff,benning,arzola,antonelli,adkinson,zellers,wulf,worsley,woolridge,whitton,westerfield,walczak,vassar,truett,trueblood,trawick,townsley,topping,tobar,telford,steverson,stagg,sitton,sill,sergent,schoenfeld,sarabia,rutkowski,rubenstein,rigdon,prentiss,pomerleau,plumlee,philbrick,peer,patnode,oloughlin,obregon,nuss,morell,mikell,mele,mcinerney,mcguigan,mcbrayer,lor,lollar,lakes,kuehl,kinzer,kamp,joplin,jacobi,howells,holstein,hedden,hassler,harty,halle,greig,gouge,goodrum,gerhart,geier,geddes,gast,forehand,ferree,fendley,feltner,esqueda,encarnacion,eichler,egger,edmundson,eatmon,doud,donohoe,donelson,dilorenzo,digiacomo,diggins,delozier,dejong,danford,crippen,coppage,cogswell,clardy,cioffi,cabe,brunette,bresnahan,bramble,blomquist,blackstone,biller,bevis,bevan,bethune,benbow,baty,basinger,balcom,andes,aman,aguero,adkisson,yandell,wilds,whisenhunt,weigand,weeden,voight,villar,trottier,tillett,suazo,setser,scurry,schuh,schreck,schauer,samora,roane,rinker,reimers,ratchford,popovich,parkin,natal,melville,mcbryde,magdaleno,loehr,lockman,lingo,leduc,larocca,lao,lamere,laclair,krall,korte,koger,jalbert,hughs,higbee,henton,heaney,haith,gump,greeson,goodloe,gholston,gasper,gagliardi,fregoso,farthing,fabrizio,ensor,elswick,elgin,eklund,eaddy,drouin,dorton,dizon,derouen,deherrera,davy,dampier,cullum,culley,cowgill,cardoso,cardinale,brodsky,broadbent,brimmer,briceno,branscum,bolyard,boley,bennington,beadle,baur,ballentine,azure,aultman,arciniega,aguila,aceves,yepez,yap,woodrum,wethington,weissman,veloz,trusty,troup,trammel,tarpley,stivers,steck,sprayberry,spraggins,spitler,spiers,sohn,seagraves,schiffman,rudnick,rizo,riccio,rennie,quackenbush,puma,plott,pearcy,parada,paiz,munford,moskowitz,mease,mcnary,mccusker,lozoya,longmire,loesch,lasky,kuhlmann,krieg,koziol,kowalewski,konrad,kindle,jowers,jolin,jaco,hua,horgan,hine,hileman,hepner,heise,heady,hawkinson,hannigan,haberman,guilford,grimaldi,garton,gagliano,fruge,follett,fiscus,ferretti,ebner,easterday,eanes,dirks,dimarco,depalma,deforest,cruce,craighead,christner,candler,cadwell,burchell,buettner,brinton,brazier,brannen,brame,bova,bomar,blakeslee,belknap,bangs,balzer,athey,armes,alvis,alverson,alvardo,yeung,wheelock,westlund,wessels,volkman,threadgill,thelen,tague,symons,swinford,sturtevant,straka,stier,stagner,segarra,seawright,rutan,roux,ringler,riker,ramsdell,quattlebaum,purifoy,poulson,permenter,peloquin,pasley,pagel,osman,obannon,nygaard,newcomer,munos,motta,meadors,mcquiston,mcniel,mcmann,mccrae,mayne,matte,legault,lechner,kucera,krohn,kratzer,koopman,jeske,horrocks,hock,hibbler,hesson,hersh,harvin,halvorsen,griner,grindle,gladstone,garofalo,frampton,forbis,eddington,diorio,dingus,dewar,desalvo,curcio,creasy,cortese,cordoba,connally,cluff,cascio,capuano,canaday,calabro,bussard,brayton,borja,bigley,arnone,arguelles,acuff,zamarripa,wooton,widner,wideman,threatt,thiele,templin,teeters,synder,swint,swick,sturges,stogner,stedman,spratt,siegfried,shetler,scull,savino,sather,rothwell,rook,rone,rhee,quevedo,privett,pouliot,poche,pickel,petrillo,pellegrini,peaslee,partlow,otey,nunnery,morelock,morello,meunier,messinger,mckie,mccubbin,mccarron,lerch,lavine,laverty,lariviere,lamkin,kugler,krol,kissel,keeter,hubble,hickox,hetzel,hayner,hagy,hadlock,groh,gottschalk,goodsell,gassaway,garrard,galligan,fye,firth,fenderson,feinstein,etienne,engleman,emrick,ellender,drews,doiron,degraw,deegan,dart,crissman,corr,cookson,coil,cleaves,charest,chapple,chaparro,castano,carpio,byer,bufford,bridgewater,bridgers,brandes,borrero,bonanno,aube,ancheta,abarca,abad,yim,wooster,wimbush,willhite,willams,wigley,weisberg,wardlaw,vigue,vanhook,unknow,torre,tasker,tarbox,strachan,slover,shamblin,semple,schuyler,schrimsher,sayer,salzman,rubalcava,riles,reneau,reichel,rayfield,rabon,pyatt,prindle,poss,polito,plemmons,pesce,perrault,pereyra,ostrowski,nilsen,niemeyer,munsey,mundell,moncada,miceli,meader,mcmasters,mckeehan,matsumoto,marron,marden,lizarraga,lingenfelter,lewallen,langan,lamanna,kovac,kinsler,kephart,keown,kass,kammerer,jeffreys,hysell,householder,hosmer,hardnett,hanner,guyette,greening,glazer,ginder,fromm,fluellen,finkle,fey,fessler,essary,eisele,duren,dittmer,crochet,cosentino,cogan,coelho,cavin,carrizales,campuzano,brough,bopp,bookman,blouin,beesley,battista,bascom,bakken,badgett,arneson,anselmo,ahumada,woodyard,wolters,wireman,willison,warman,waldrup,vowell,vantassel,vale,twombly,toomer,tennison,teets,tedeschi,swanner,stutz,stelly,sheehy,schermerhorn,scala,sandidge,salters,salo,saechao,roseboro,rolle,ressler,renz,renn,redford,raposa,rainbolt,pelfrey,orndorff,oney,nolin,nimmons,ney,nardone,myhre,morman,menjivar,mcglone,mccammon,maxon,marciano,manus,lowrance,lorenzen,lonergan,lollis,littles,lindahl,lamas,lach,kuster,krawczyk,knuth,knecht,kirkendall,keitt,keever,kantor,jarboe,hoye,houchens,holter,holsinger,hickok,helwig,helgeson,hassett,harner,hamman,hames,hadfield,goree,goldfarb,gaughan,gaudreau,gantz,gallion,frady,foti,flesher,ferrin,faught,engram,donegan,desouza,degroot,cutright,crowl,criner,coan,clinkscales,chewning,chavira,catchings,carlock,bulger,buenrostro,bramblett,brack,boulware,bookout,bitner,birt,baranowski,baisden,augustin,allmon,acklin,yoakum,wilbourn,whisler,weinberger,washer,vasques,vanzandt,vanatta,troxler,tomes,tindle,tims,throckmorton,thach,stpeter,stlaurent,stenson,spry,spitz,songer,snavely,sly,shroyer,shortridge,shenk,sevier,seabrook,scrivner,saltzman,rosenberry,rockwood,robeson,roan,reiser,ramires,raber,posner,popham,piotrowski,pinard,peterkin,pelham,peiffer,peay,nadler,musso,millett,mestas,mcgowen,marques,marasco,manriquez,manos,mair,lipps,leiker,krumm,knorr,kinslow,kessel,kendricks,kelm,ito,irick,ickes,hurlburt,horta,hoekstra,heuer,helmuth,heatherly,hampson,hagar,haga,greenlaw,grau,godbey,gingras,gillies,gibb,gayden,gauvin,garrow,fontanez,florio,finke,fasano,ezzell,ewers,eveland,eckenrode,duclos,drumm,dimmick,delancey,defazio,dashiell,cusack,crowther,crigger,cray,coolidge,coldiron,cleland,chalfant,cassel,camire,cabrales,broomfield,brittingham,brisson,brickey,braziel,brazell,bragdon,boulanger,bos,boman,bohannan,beem,barre,baptist,azar,ashbaugh,armistead,almazan,adamski,zendejas,winburn,willaims,wilhoit,westberry,wentzel,wendling,visser,vanscoy,vankirk,vallee,tweedy,thornberry,sweeny,spradling,spano,smelser,shim,sechrist,schall,scaife,rugg,rothrock,roesler,riehl,ridings,render,ransdell,radke,pinero,petree,pendergast,peluso,pecoraro,pascoe,panek,oshiro,navarrette,murguia,moores,moberg,michaelis,mcwhirter,mcsweeney,mcquade,mccay,mauk,mariani,marceau,mandeville,maeda,lunde,ludlow,loeb,lindo,linderman,leveille,leith,larock,lambrecht,kulp,kinsley,kimberlin,kesterson,hoyos,helfrich,hanke,grisby,goyette,gouveia,glazier,gile,gerena,gelinas,gasaway,funches,fujimoto,flynt,fenske,fellers,fehr,eslinger,escalera,enciso,duley,dittman,dineen,diller,devault,dao,collings,clymer,clowers,chavers,charland,castorena,castello,camargo,bunce,bullen,boyes,borchers,borchardt,birnbaum,birdsall,billman,benites,bankhead,ange,ammerman,adkison,winegar,wickman,warr,warnke,villeneuve,veasey,vassallo,vannatta,vadnais,twilley,towery,tomblin,tippett,theiss,talkington,talamantes,swart,swanger,streit,stines,stabler,spurling,sobel,sine,simmers,shippy,shiflett,shearin,sauter,sanderlin,rusch,runkle,ruckman,rorie,roesch,richert,rehm,randel,ragin,quesenberry,puentes,plyler,plotkin,paugh,oshaughnessy,ohalloran,norsworthy,niemann,nader,moorefield,mooneyham,modica,miyamoto,mickel,mebane,mckinnie,mazurek,mancilla,lukas,lovins,loughlin,lotz,lindsley,liddle,levan,lederman,leclaire,lasseter,lapoint,lamoreaux,lafollette,kubiak,kirtley,keffer,kaczmarek,housman,hiers,hibbert,herrod,hegarty,hathorn,greenhaw,grafton,govea,futch,furst,franko,forcier,foran,flickinger,fairfield,eure,emrich,embrey,edgington,ecklund,eckard,durante,deyo,delvecchio,dade,currey,creswell,cottrill,casavant,cartier,cargile,capel,cammack,calfee,burse,burruss,brust,brousseau,bridwell,braaten,borkholder,bloomquist,bjork,bartelt,arp,amburgey,yeary,yao,whitefield,vinyard,vanvalkenburg,twitchell,timmins,tapper,stringham,starcher,spotts,slaugh,simonsen,sheffer,sequeira,rosati,rhymes,reza,quint,pollak,peirce,patillo,parkerson,paiva,nilson,nevin,narcisse,nair,mitton,merriam,merced,meiners,mckain,mcelveen,mcbeth,marsden,marez,manke,mahurin,mabrey,luper,krull,kees,iles,hunsicker,hornbuckle,holtzclaw,hirt,hinnant,heston,hering,hemenway,hegwood,hearns,halterman,guiterrez,grote,granillo,grainger,glasco,gilder,garren,garlock,garey,fryar,fredricks,fraizer,foxx,foshee,ferrel,felty,everitt,evens,esser,elkin,eberhart,durso,duguay,driskill,doster,dewall,deveau,demps,demaio,delreal,deleo,deem,darrah,cumberbatch,culberson,cranmer,cordle,colgan,chesley,cavallo,castellon,castelli,carreras,carnell,carlucci,bontrager,blumberg,blasingame,becton,ayon,artrip,andujar,alkire,alder,agan,zukowski,zuckerman,zehr,wroblewski,wrigley,woodside,wigginton,westman,westgate,werts,washam,wardlow,walser,waiters,tadlock,stringfield,stimpson,stickley,standish,spurlin,spindler,speller,spaeth,sotomayor,sok,sluder,shryock,shepardson,shatley,scannell,santistevan,rosner,rhode,resto,reinhard,rathburn,prisco,poulsen,pinney,phares,pennock,pastrana,oviedo,ostler,noto,nauman,mulford,moise,moberly,mirabal,metoyer,metheny,mentzer,meldrum,mcinturff,mcelyea,mcdougle,massaro,lumpkins,loveday,lofgren,loe,lirette,lesperance,lefkowitz,ledger,lauzon,lain,lachapelle,kurz,klassen,keough,kempton,kaelin,jeffords,huot,hsieh,hoyer,horwitz,hopp,hoeft,hennig,haskin,gourdine,golightly,girouard,fulgham,fritsch,freer,frasher,foulk,firestone,fiorentino,fedor,ensley,englehart,eells,ebel,dunphy,donahoe,dileo,dibenedetto,dabrowski,crick,coonrod,conder,coddington,chunn,choy,chaput,cerna,carreiro,calahan,braggs,bourdon,bollman,bittle,behm,bauder,batt,barreras,aubuchon,anzalone,adamo,zerbe,wirt,willcox,westberg,weikel,waymire,vroman,vinci,vallejos,truesdell,troutt,trotta,tollison,toles,tichenor,symonds,surles,strayer,stgeorge,sroka,sorrentino,solares,snelson,silvestri,sikorski,shawver,schumaker,schorr,schooley,scates,satterlee,satchell,sacks,rymer,roselli,robitaille,riegel,regis,reames,provenzano,priestley,plaisance,pettey,palomares,oman,nowakowski,nace,monette,minyard,mclamb,mchone,mccarroll,masson,magoon,maddy,lundin,loza,licata,leonhardt,lema,landwehr,kircher,kinch,karpinski,johannsen,hussain,houghtaling,hoskinson,hollaway,holeman,hobgood,hilt,hiebert,gros,goggin,geissler,gadbois,gabaldon,fleshman,flannigan,fairman,epp,eilers,dycus,dunmire,duffield,dowler,deloatch,dehaan,deemer,clayborn,christofferso,chilson,chesney,chatfield,carron,canale,brigman,branstetter,bosse,borton,bonar,blau,biron,barroso,arispe,zacharias,zabel,yaeger,woolford,whetzel,weakley,veatch,vandeusen,tufts,troxel,troche,traver,townsel,tosh,talarico,swilley,sterrett,stenger,speakman,sowards,sours,souders,souder,soles,sobers,snoddy,smither,sias,shute,shoaf,shahan,schuetz,scaggs,santini,rosson,rolen,robidoux,rentas,recio,pixley,pawlowski,pawlak,paull,overbey,orear,oliveri,oldenburg,nutting,naugle,mote,mossman,moor,misner,milazzo,michelson,mcentee,mccullar,mccree,mcaleer,mazzone,mandell,manahan,malott,maisonet,mailloux,lumley,lowrie,louviere,lipinski,lindemann,leppert,leopold,leasure,labarge,kubik,knisely,knepp,kenworthy,kennelly,kelch,karg,kanter,hyer,houchin,hosley,hosler,hollon,holleman,heitman,hebb,haggins,gwaltney,guin,goulding,gorden,geraci,georges,gathers,frison,feagin,falconer,espada,erving,erikson,eisenhauer,eder,ebeling,durgin,dowdle,dinwiddie,delcastillo,dedrick,crimmins,covell,cournoyer,coria,cohan,cataldo,carpentier,canas,campa,brode,brashears,blaser,bicknell,berk,bednar,barwick,ascencio,althoff,almodovar,alamo,zirkle,zabala,wolverton,winebrenner,wetherell,westlake,wegener,weddington,vong,tuten,trosclair,tressler,theroux,teske,swinehart,swensen,sundquist,southall,socha,sizer,silverberg,shortt,shimizu,sherrard,shaeffer,scheid,scheetz,saravia,sanner,rubinstein,rozell,romer,rheaume,reisinger,randles,pullum,petrella,payan,papp,nordin,norcross,nicoletti,nicholes,newbold,nakagawa,mraz,monteith,milstead,milliner,mellen,mccardle,luft,liptak,lipp,leitch,latimore,larrison,landau,laborde,koval,izquierdo,hymel,hoskin,holte,hoefer,hayworth,hausman,harrill,harrel,hardt,gully,groover,grinnell,greenspan,graver,grandberry,gorrell,goldenberg,goguen,gilleland,garr,fuson,foye,feldmann,everly,dyess,dyal,dunnigan,downie,dolby,deatherage,cosey,cheever,celaya,caver,cashion,caplinger,cansler,byrge,bruder,breuer,breslin,brazelton,botkin,bonneau,bondurant,bohanan,bogue,boes,bodner,boatner,blatt,bickley,belliveau,beiler,beier,beckstead,bachmann,atkin,altizer,alloway,allaire,albro,abron,zellmer,yetter,yelverton,wiltshire,wiens,whidden,viramontes,vanwormer,tarantino,tanksley,sumlin,strauch,strang,stice,spahn,sosebee,sigala,shrout,seamon,schrum,schneck,schantz,ruddy,romig,roehl,renninger,reding,pyne,polak,pohlman,pasillas,oldfield,oldaker,ohanlon,ogilvie,norberg,nolette,nies,neufeld,nellis,mummert,mulvihill,mullaney,monteleone,mendonca,meisner,mcmullan,mccluney,mattis,massengill,manfredi,luedtke,lounsbury,liberatore,leek,lamphere,laforge,kuo,koo,jourdan,ismail,iorio,iniguez,ikeda,hubler,hodgdon,hocking,heacock,haslam,haralson,hanshaw,hannum,hallam,haden,garnes,garces,gammage,gambino,finkel,faucett,fahy,ehrhardt,eggen,dusek,durrant,dubay,dones,dey,depasquale,delucia,degraff,decamp,davalos,cullins,conard,clouser,clontz,cifuentes,chappel,chaffins,celis,carwile,byram,bruggeman,bressler,brathwaite,brasfield,bradburn,boose,boon,bodie,blosser,blas,bise,bertsch,bernardi,bernabe,bengtson,barrette,astorga,alday,albee,abrahamson,yarnell,wiltse,wile,wiebe,waguespack,vasser,upham,tyre,turek,traxler,torain,tomaszewski,tinnin,tiner,tindell,teed,styron,stahlman,staab,skiba,shih,sheperd,seidl,secor,schutte,sanfilippo,ruder,rondon,rearick,procter,prochaska,pettengill,pauly,neilsen,nally,mutter,mullenax,morano,meads,mcnaughton,mcmurtry,mcmath,mckinsey,matthes,massenburg,marlar,margolis,malin,magallon,mackin,lovette,loughran,loring,longstreet,loiselle,lenihan,laub,kunze,kull,koepke,kerwin,kalinowski,kagan,innis,innes,holtzman,heinemann,harshman,haider,haack,guss,grondin,grissett,greenawalt,gravel,goudy,goodlett,goldston,gokey,gardea,galaviz,gafford,gabrielson,furlow,fritch,fordyce,folger,elizalde,ehlert,eckhoff,eccleston,ealey,dubin,diemer,deschamps,delapena,decicco,debolt,daum,cullinan,crittendon,crase,cossey,coppock,coots,colyer,cluck,chamberland,burkhead,bumpus,buchan,borman,bork,boe,birkholz,berardi,benda,behnke,barter,auer,amezquita,wotring,wirtz,wingert,wiesner,whitesides,weyant,wainscott,venezia,varnell,tussey,thurlow,tabares,stiver,stell,starke,stanhope,stanek,sisler,sinnott,siciliano,shehan,selph,seager,scurlock,scranton,santucci,santangelo,saltsman,ruel,ropp,rogge,rettig,renwick,reidy,reider,redfield,quam,premo,peet,parente,paolucci,palmquist,orme,ohler,ogg,netherton,mutchler,morita,mistretta,minnis,middendorf,menzel,mendosa,mendelson,meaux,mcspadden,mcquaid,mcnatt,manigault,maney,mager,lukes,lopresti,liriano,lipton,letson,lechuga,lazenby,lauria,larimore,kwok,kwak,krupp,krupa,krum,kopec,kinchen,kifer,kerney,kerner,kennison,kegley,kays,karcher,justis,johson,jellison,janke,huskins,holzman,hinojos,hefley,hatmaker,harte,halloway,hallenbeck,goodwyn,glaspie,geise,fullwood,fryman,frew,frakes,fraire,farrer,enlow,engen,ellzey,eckles,earles,ealy,dunkley,drinkard,dreiling,draeger,dinardo,dills,desroches,desantiago,curlee,crumbley,critchlow,coury,courtright,coffield,cleek,charpentier,cardone,caples,cantin,buntin,bugbee,brinkerhoff,brackin,bourland,bohl,bogdan,blassingame,beacham,banning,auguste,andreasen,amann,almon,alejo,adelman,abston,zeno,yerger,wymer,woodberry,windley,whiteaker,westfield,weibel,wanner,waldrep,villani,vanarsdale,utterback,updike,triggs,topete,tolar,tigner,thoms,tauber,tarvin,tally,swiney,sweatman,studebaker,stennett,starrett,stannard,stalvey,sonnenberg,smithey,sieber,sickles,shinault,segars,sanger,salmeron,rothe,rizzi,rine,ricard,restrepo,ralls,ragusa,quiroga,pero,pegg,pavlik,papenfuss,oropeza,okane,neer,nee,mudge,mozingo,molinaro,mcvicker,mcgarvey,mcfalls,mccraney,matus,magers,llanos,livermore,liss,linehan,leto,leitner,laymon,lawing,lacourse,kwong,kollar,kneeland,keo,kennett,kellett,kangas,janzen,hutter,huse,huling,hoss,hohn,hofmeister,hewes,hern,harjo,habib,gust,guice,grullon,greggs,grayer,granier,grable,gowdy,giannini,getchell,gartman,garnica,ganey,gallimore,fray,fetters,fergerson,farlow,fagundes,exley,esteves,enders,edenfield,easterwood,drakeford,dipasquale,desousa,deshields,deeter,dedmon,debord,daughtery,cutts,courtemanche,coursey,copple,coomes,collis,coll,cogburn,clopton,choquette,chaidez,castrejon,calhoon,burbach,bulloch,buchman,bruhn,bohon,blough,bien,baynes,barstow,zeman,zackery,yardley,yamashita,wulff,wilken,wiliams,wickersham,wible,whipkey,wedgeworth,walmsley,walkup,vreeland,verrill,valera,umana,traub,swingle,summey,stroupe,stockstill,steffey,stefanski,statler,stapp,speights,solari,soderberg,shunk,shorey,shewmaker,sheilds,schiffer,schank,schaff,sagers,rochon,riser,rickett,reale,raglin,polen,plata,pitcock,percival,palen,pahl,orona,oberle,nocera,navas,nault,mullings,moos,montejano,monreal,minick,middlebrook,meece,mcmillion,mccullen,mauck,marshburn,maillet,mahaney,magner,maclin,lucey,litteral,lippincott,leite,leis,leaks,lamarre,kost,jurgens,jerkins,jager,hurwitz,hughley,hotaling,horstman,hohman,hocker,hively,hipps,hile,hessler,hermanson,hepworth,henn,helland,hedlund,harkless,haigler,gutierez,grindstaff,glantz,giardina,gerken,gadsden,finnerty,feld,farnum,encinas,drakes,dennie,cutlip,curtsinger,couto,cortinas,corby,chiasson,carle,carballo,brindle,borum,bober,blagg,birk,berthiaume,beahm,batres,basnight,backes,axtell,aust,atterberry,alvares,alt,alegria,yow,yip,woodell,wojciechowski,winfree,winbush,wiest,wesner,wamsley,wakeman,verner,truex,trafton,toman,thorsen,theus,tellier,tallant,szeto,strope,stills,sorg,simkins,shuey,shaul,servin,serio,serafin,salguero,saba,ryerson,rudder,ruark,rother,rohrbaugh,rohrbach,rohan,rogerson,risher,rigg,reeser,pryce,prokop,prins,priebe,prejean,pinheiro,petrone,petri,penson,pearlman,parikh,natoli,murakami,mullikin,mullane,motes,morningstar,monks,mcveigh,mcgrady,mcgaughey,mccurley,masi,marchan,manske,maez,lusby,linde,lile,likens,licon,leroux,lemaire,legette,lax,laskey,laprade,laplant,kolar,kittredge,kinley,kerber,kanagy,jetton,janik,ippolito,inouye,hunsinger,howley,howery,horrell,holthaus,hiner,hilson,hilderbrand,hasan,hartzler,harnish,harada,hansford,halligan,hagedorn,gwynn,gudino,greenstein,greear,gracey,goudeau,gose,goodner,ginsburg,gerth,gerner,fyfe,fujii,frier,frenette,folmar,fleisher,fleischmann,fetzer,eisenman,earhart,dupuy,dunkelberger,drexler,dillinger,dilbeck,dewald,demby,deford,dake,craine,como,chesnut,casady,carstens,carrick,carino,carignan,canchola,cale,bushong,burman,buono,brownlow,broach,britten,brickhouse,boyden,boulton,borne,borland,bohrer,blubaugh,bever,berggren,benevides,arocho,arends,amezcua,almendarez,zalewski,witzel,winkfield,wilhoite,vara,vangundy,vanfleet,vanetten,vandergriff,urbanski,troiano,thibodaux,straus,stoneking,stjean,stillings,stange,speicher,speegle,sowa,smeltzer,slawson,simmonds,shuttleworth,serpa,senger,seidman,schweiger,schloss,schimmel,schechter,sayler,sabb,sabatini,ronan,rodiguez,riggleman,richins,reep,reamer,prunty,porath,plunk,piland,philbrook,pettitt,perna,peralez,pascale,padula,oboyle,nivens,nickols,murph,mundt,munden,montijo,mcmanis,mcgrane,mccrimmon,manzi,mangold,malick,mahar,maddock,losey,litten,liner,leff,leedy,leavell,ladue,krahn,kluge,junker,iversen,imler,hurtt,huizar,hubbert,howington,hollomon,holdren,hoisington,hise,heiden,hauge,hartigan,gutirrez,griffie,greenhill,gratton,granata,gottfried,gertz,gautreaux,furry,furey,funderburg,flippen,fitzgibbon,dyar,drucker,donoghue,dildy,devers,detweiler,despres,denby,degeorge,cueto,cranston,courville,clukey,cirillo,chon,chivers,caudillo,catt,butera,bulluck,buckmaster,braunstein,bracamonte,bourdeau,bonnette,bobadilla,boaz,blackledge,beshears,bernhard,bergeson,baver,barthel,balsamo,bak,aziz,awad,authement,altom,altieri,abels,zigler,zhu,younker,yeomans,yearwood,wurster,winget,whitsett,wechsler,weatherwax,wathen,warriner,wanamaker,walraven,viens,vandemark,vancamp,uchida,triana,tinoco,terpstra,tellis,tarin,taranto,takacs,studdard,struthers,strout,stiller,spataro,soderquist,sliger,silberman,shurtleff,sheetz,ritch,reif,raybon,ratzlaff,radley,putt,putney,pinette,piner,petrin,parise,osbourne,nyman,northington,noblitt,nishimura,neher,nalls,naccarato,mucha,mounce,miron,millis,meaney,mcnichols,mckinnis,mcjunkin,mcduffy,manrique,mannion,mangual,malveaux,mains,lumsden,lohmann,lipe,lightsey,lemasters,leist,laxton,laverriere,latorre,lamons,kral,kopf,knauer,kitt,kaul,karas,kamps,jusino,islam,hullinger,huges,hornung,hiser,hempel,helsel,hassinger,hargraves,hammes,hallberg,gutman,gumbs,gruver,graddy,gonsales,goncalves,glennon,gilford,geno,freshour,flippo,fifer,fason,farrish,fallin,ewert,estepp,escudero,ensminger,emberton,elms,ellerbe,eide,dysart,dougan,dierking,dicus,detrick,deroche,depue,demartino,delosreyes,dalke,culbreath,crownover,crisler,crass,corsi,chagnon,centers,cavanagh,casson,carollo,cadwallader,burnley,burciaga,burchard,broadhead,bolte,berens,bellman,bellard,baril,antonucci,wolfgram,winsor,wimbish,wier,wallach,viveros,vento,varley,vanslyke,vangorder,touchstone,tomko,tiemann,throop,tamura,talmadge,swayze,sturdevant,strauser,stolz,stenberg,stayton,spohn,spillers,spillane,sluss,slavens,simonetti,shofner,shead,senecal,seales,schueler,schley,schacht,sauve,sarno,salsbury,rothschild,rosier,rines,reveles,rein,redus,redfern,reck,ranney,raggs,prout,prill,preble,prager,plemons,pilon,piccirillo,pewitt,pesina,pecora,otani,orsini,oestreich,odea,ocallaghan,northup,niehaus,newberg,nasser,narron,monarrez,mishler,mcsherry,mcelfresh,mayon,mauer,mattice,marrone,marmolejo,marini,malm,machen,lunceford,loewen,liverman,litwin,linscott,levins,lenox,legaspi,leeman,leavy,lannon,lamson,lambdin,labarre,knouse,klemm,kleinschmidt,kirklin,keels,juliano,howser,hosier,hopwood,holyfield,hodnett,hirsh,heimann,heckel,harger,hamil,hajek,gurganus,gunning,grange,gonzalas,goggins,gerow,gaydos,garduno,ganley,galey,farner,engles,emond,emert,ellenburg,edick,duell,dorazio,dimond,diederich,depuy,dempster,demaria,dehoyos,dearth,dealba,czech,crose,crespin,cogdill,clinard,cipriano,chretien,cerny,ceniceros,celestin,caple,cacho,burrill,buhr,buckland,branam,boysen,bovee,boos,boler,blom,blasko,beyers,belz,belmonte,bednarz,beckmann,beaudin,bazile,barbeau,balentine,abrahams,zielke,yunker,yeates,wrobel,wike,whisnant,wherry,wagnon,vogan,vansant,vannest,vallo,ullery,towles,towell,thill,taormina,tannehill,taing,storrs,stickles,stetler,sparling,solt,silcox,sheard,shadle,seman,selleck,schlemmer,scher,sapien,sainz,roye,romain,rizzuto,resch,rentz,rasch,ranieri,purtell,primmer,portwood,pontius,pons,pletcher,pledger,pirkle,pillsbury,pentecost,paxson,ortez,oles,mullett,muirhead,mouzon,mork,mollett,mohn,mitcham,melillo,medders,mcmiller,mccleery,mccaughey,mak,maciejewski,macaulay,lute,lipman,lewter,larocque,langton,kriner,knipp,killeen,karn,kalish,kaczor,jonson,jerez,jarrard,janda,hymes,hollman,hollandsworth,holl,hobdy,hennen,hemmer,hagins,haddox,guitierrez,guernsey,gorsuch,gholson,genova,gazaway,gauna,gammons,freels,fonville,fetterman,fava,farquhar,farish,fabela,escoto,eisen,dossett,dority,dorfman,demmer,dehn,dawley,darbonne,damore,damm,crosley,cron,crompton,crichton,cotner,cordon,conerly,colvard,clauson,cheeseman,cavallaro,castille,cabello,burgan,buffum,bruss,brassfield,bowerman,bothwell,borgen,bonaparte,bombard,boivin,boissonneault,bogner,bodden,boan,bittinger,bickham,bedolla,bale,bainbridge,aybar,avendano,ashlock,amidon,almanzar,akridge,ackermann,zager,worrall,winans,wilsey,wightman,westrick,wenner,warne,warford,verville,utecht,upson,tuma,tseng,troncoso,trollinger,torbert,taulbee,sutterfield,stough,storch,stonebraker,stolle,stilson,stiefel,steptoe,stepney,stender,stemple,staggers,spurrier,spinney,spengler,smartt,skoog,silvis,sieg,shuford,selfridge,seguin,sedgwick,sease,scotti,schroer,schlenker,schill,savarese,sapienza,sanson,sandefur,salamone,rusnak,rudisill,rothermel,roca,resendiz,reliford,rasco,raiford,quisenberry,quijada,pullins,puccio,postell,poppe,pinter,piche,petrucci,pellegrin,pelaez,paton,pasco,parkes,paden,pabst,olmsted,newlon,mynatt,mower,morrone,moree,moffat,mixson,minner,millette,mederos,mcgahan,mcconville,maughan,massingill,marano,macri,lovern,lichtenstein,leonetti,lehner,lawley,laramie,lappin,lahti,lago,lacayo,kuester,kincade,juhl,jiron,jessop,jarosz,jain,hults,hoge,hodgins,hoban,hinkson,hillyard,herzig,hervey,henriksen,hawker,hause,hankerson,gregson,golliday,gilcrease,gessner,gerace,garwood,garst,gaillard,flinchum,fishel,fishback,filkins,fentress,fabre,ethier,eisner,ehrhart,efird,drennon,dominy,domingue,dipaolo,dinan,dimartino,deskins,dengler,defreitas,defranco,dahlin,cutshaw,cuthbert,croyle,crothers,critchfield,cowie,costner,coppedge,copes,ciccone,caufield,capo,cambron,cambridge,buser,burnes,buhl,buendia,brindley,brecht,bourgoin,blackshire,birge,benninger,bembry,beil,begaye,barrentine,banton,balmer,baity,auerbach,ambler,alexandre,ackerson,zurcher,zell,wynkoop,wallick,waid,vos,vizcaino,vester,veale,vandermark,vanderford,tuthill,trivette,thiessen,tewksbury,tao,tabron,swasey,swanigan,stoughton,stoudt,stimson,stecker,stead,spady,souther,smoak,sklar,simcox,sidwell,seybert,sesco,seeman,schwenk,schmeling,rossignol,robillard,robicheaux,riveria,rippeon,ridgley,remaley,rehkop,reddish,rauscher,quirion,pusey,pruden,pressler,potvin,pospisil,paradiso,pangburn,palmateer,ownby,otwell,osterberg,osmond,olsson,oberlander,nusbaum,novack,nokes,nicastro,nehls,naber,mulhern,motter,moretz,milian,mckeel,mcclay,mccart,matsuda,martucci,marple,marko,marciniak,manes,mancia,macrae,lybarger,lint,lineberger,levingston,lecroy,lattimer,laseter,kulick,krier,knutsen,klem,kinne,kinkade,ketterman,kerstetter,kersten,karam,joshi,jent,jefcoat,hillier,hillhouse,hettinger,henthorn,henline,helzer,heitzman,heineman,heenan,haughton,haris,harbert,haman,grinstead,gremillion,gorby,giraldo,gioia,gerardi,geraghty,gaunt,gatson,gardin,gans,gammill,friedlander,frahm,fossett,fosdick,forbush,fondren,fleckenstein,fitchett,filer,feliz,feist,ewart,esters,elsner,edgin,easterly,dussault,durazo,devereaux,deshotel,deckert,dargan,cornman,conkle,condit,claunch,clabaugh,cheesman,chea,charney,casella,carone,carbonell,canipe,campana,calles,cabezas,cabell,buttram,bustillos,buskirk,boyland,bourke,blakeley,berumen,berrier,belli,behrendt,baumbach,bartsch,baney,arambula,alldredge,allbritton,ziemba,zanders,youngquist,yoshioka,yohe,wunder,woodfin,wojtowicz,winkel,wilmore,willbanks,wesolowski,wendland,walko,votaw,vanek,uriarte,urbano,turnipseed,triche,trautman,towler,tokarz,temples,tefft,teegarden,syed,swigart,stoller,stapler,stansfield,smit,smelley,sicard,shulman,shew,shear,sheahan,sharpton,selvidge,schlesinger,savell,sandford,sabatino,rosenbloom,roepke,rish,rhames,renken,reger,quarterman,puig,prasad,poplar,pizano,pigott,phair,petrick,patt,pascua,paramore,papineau,olivieri,ogren,norden,noga,nisbet,munk,morvant,moro,moloney,merz,meltzer,mellinger,mehl,mcnealy,mckernan,mchaney,mccleskey,mcandrews,mayton,markert,maresca,maner,mandujano,malpass,macintyre,lytton,lyall,lummus,longshore,longfellow,lokey,locher,leverette,lepe,lefever,leeson,lederer,lampert,lagrone,kreider,korth,knopf,kleist,keltner,kelling,kaspar,kappler,josephs,huckins,holub,hofstetter,hoehn,higginson,hennings,heid,havel,hauer,harnden,hargreaves,hanger,guild,guidi,grate,grandy,grandstaff,goza,goodridge,goodfellow,goggans,godley,giusti,gilyard,geoghegan,galyon,gaeta,funes,font,flanary,fales,erlandson,ellett,edinger,dziedzic,duerr,draughn,donoho,dimatteo,devos,dematteo,degnan,darlington,danis,dahlstrom,dahlke,czajkowski,cumbie,culbert,crosier,croley,corry,clinger,chalker,cephas,caywood,capehart,cales,cadiz,bussiere,burriss,burkart,brundidge,bronstein,bradt,boydston,bostrom,borel,bolles,blay,blackwelder,bissett,bevers,bester,bernardino,benefiel,belote,beedle,beckles,baysinger,bassler,bartee,barlett,bargas,barefield,baptista,arterburn,armas,apperson,amoroso,amedee,zullo,zellner,yelton,willems,wilkin,wiggin,widman,welk,weingarten,walla,viers,vess,verdi,veazey,vannote,tullos,trudell,trower,trosper,trimm,trew,tousignant,topp,tocco,thoreson,terhune,tatom,suniga,sumter,steeves,stansell,soltis,sloss,slaven,shisler,shanley,servantes,selders,segrest,seese,seeber,schaible,savala,sartor,rutt,rumbaugh,ruis,roten,roessler,ritenour,riney,restivo,renard,rakestraw,rake,quiros,pullin,prudhomme,primeaux,prestridge,presswood,ponte,polzin,poarch,pittenger,piggott,pickell,phaneuf,parvin,parmley,palmeri,ozment,ormond,ordaz,ono,olea,obanion,oakman,novick,nicklas,nemec,nappi,mund,morfin,mera,melgoza,melby,mcgoldrick,mcelwain,mcchristian,mccaw,marquart,marlatt,markovich,mahr,lupton,lucus,lorusso,lerman,leddy,leaman,leachman,lavalle,laduke,kummer,koury,konopka,koh,koepp,kloss,klock,khalil,kernan,kappel,jakes,inoue,hutsell,howle,honore,hockman,hockaday,hiltz,hetherington,hesser,hershman,heffron,headen,haskett,hartline,harned,guillemette,guglielmo,guercio,greenbaum,goris,glines,gilmour,gardella,gadd,gabler,gabbert,fuselier,freudenburg,fragoso,follis,flemings,feltman,febus,farren,fallis,evert,ekstrom,eastridge,dyck,dufault,dubreuil,drapeau,domingues,dolezal,dinkel,didonato,devitt,demott,daughtrey,daubert,das,creason,crary,costilla,chipps,cheatwood,carmean,canton,caffrey,burgher,buker,brunk,brodbeck,brantner,bolivar,boerner,bodkin,biel,bencomo,bellino,beliveau,beauvais,beaupre,baylis,baskett,barcus,baltz,asay,arney,arcuri,ankney,agostini,addy,zwilling,zubia,zollinger,zeitz,yanes,winship,winningham,wickline,webre,waddington,vosburgh,verrett,varnum,vandeventer,vacca,usry,towry,touchet,tookes,tonkin,timko,tibbitts,thedford,tarleton,talty,talamantez,tafolla,sugg,strecker,steffan,spiva,slape,shatzer,seyler,seamans,schmaltz,schipper,sasso,ruppe,roudebush,riemer,richarson,revilla,reichenbach,ratley,railsback,quayle,poplin,poorman,ponton,pollitt,poitras,piscitelli,piedra,pew,perera,penwell,pelt,parkhill,paladino,ore,oram,olmo,oliveras,olivarria,ogorman,naron,muncie,mowbray,morones,moretti,monn,mitts,minks,minarik,mimms,milliron,millington,millhouse,messersmith,mcnett,mckinstry,mcgeorge,mcdill,mcateer,mazzeo,matchett,mahood,mabery,lundell,louden,losoya,lisk,lezama,leib,lebo,lanoue,lanford,lafortune,kump,krone,kreps,kott,kopecky,kolodziej,kinman,kimmons,kelty,kaster,karlson,kania,joyal,jenner,jasinski,jandreau,isenhour,hunziker,huhn,houde,houchins,holtman,hodo,heyman,hentges,hedberg,hayne,haycraft,harshbarger,harshaw,harriss,haring,hansell,hanford,handler,hamblen,gunnell,groat,gorecki,gochenour,gleeson,genest,geiser,fulghum,friese,fridley,freeborn,frailey,flaugher,fiala,ettinger,etheredge,espitia,eriksen,engelbrecht,engebretson,elie,eickhoff,edney,edelen,eberhard,eastin,eakes,driggs,doner,donaghy,disalvo,deshong,dahms,dahlquist,curren,cripe,cree,creager,corle,conatser,commons,coggin,coder,coaxum,closson,clodfelter,classen,chittenden,castilleja,casale,cartee,carriere,canup,canizales,burgoon,bunger,bugarin,buchanon,bruning,bruck,brookes,broadwell,brier,brekke,breese,bracero,bowley,bowersox,bose,bogar,blauser,blacker,bjorklund,baumer,basler,baize,baden,auman,amundsen,amore,alvarenga,adamczyk,yerkes,yerby,yamaguchi,worthey,wolk,wixom,wiersma,wieczorek,whiddon,weyer,wetherington,wein,watchman,warf,wansley,vesely,velazco,vannorman,valasquez,utz,urso,turco,turbeville,trivett,toothaker,toohey,tondreau,thaler,sylvain,swindler,swigert,swider,stiner,stever,steffes,stampley,stair,smidt,skeete,silvestre,shutts,shealey,seigler,schweizer,schuldt,schlichting,scherr,saulsberry,saner,rosin,rosato,roling,rohn,rix,rister,remley,remick,recinos,ramm,raabe,pursell,poythress,poli,pokorny,pettry,petrey,petitt,penman,payson,paquet,pappalardo,outland,orenstein,nuttall,nuckols,nott,nimmo,murtagh,mousseau,moulder,mooneyhan,moak,minch,miera,mercuri,meighan,mcnelly,mcguffin,mccreery,mcclaskey,mainor,luongo,lundstrom,loughman,lobb,linhart,lever,leu,leiter,lehoux,lehn,lares,lapan,langhorne,lamon,ladwig,ladson,kuzma,kreitzer,knop,keech,kea,kadlec,jhonson,jantz,inglis,husk,hulme,housel,hofman,hillery,heidenreich,heaps,haslett,harting,hartig,hamler,halton,hallum,gutierres,guida,guerrier,grossi,gress,greenhalgh,gravelle,gow,goslin,gonyea,gipe,gerstner,gasser,garceau,gannaway,gama,gallop,gaiser,fullilove,foutz,fossum,flannagan,farrior,faller,ericksen,entrekin,enochs,englund,ellenberger,eastland,earwood,dudash,drozd,desoto,delph,dekker,dejohn,degarmo,defeo,defalco,deblois,dacus,cudd,crossen,crooms,cronan,costin,cordray,comerford,colegrove,coldwell,claassen,chartrand,castiglione,carte,cardella,carberry,capp,capobianco,cangelosi,buch,brunell,brucker,brockett,brizendine,brinegar,brimer,brase,bosque,bonk,bolger,bohanon,bohan,blazek,berning,bergan,bennette,beauchemin,battiste,barra,balogh,avallone,aubry,ashcroft,asencio,arledge,anchondo,alvord,acheson,zaleski,yonker,wyss,wycoff,woodburn,wininger,winders,willmon,wiechmann,westley,weatherholt,warnick,wardle,warburton,volkert,villanveva,veit,vass,vanallen,tung,toribio,toothman,tiggs,thornsberry,thome,tepper,teeple,tebo,tassone,tann,stucker,stotler,stoneman,stehle,stanback,stallcup,spurr,speers,spada,solum,smolen,sinn,silvernail,sholes,shives,shain,secrest,seagle,schuette,schoch,schnieders,schild,schiavone,schiavo,scharff,santee,sandell,salvo,rollings,rivenburg,ritzman,rist,reynosa,retana,regnier,rarick,ransome,rall,propes,prall,poyner,ponds,poitra,pippins,pinion,phu,perillo,penrose,pendergraft,pelchat,patenaude,palko,odoms,oddo,novoa,noone,newburn,negri,nantz,mosser,moshier,molter,molinari,moler,millman,meurer,mendel,mcray,mcnicholas,mcnerney,mckillip,mcilvain,mcadory,marmol,marinez,manzer,mankin,makris,majeski,maffei,luoma,luman,luebke,luby,lomonaco,loar,litchford,lintz,licht,levenson,legge,lanigan,krom,kreger,koop,kober,klima,kitterman,kinkead,kimbell,kilian,kibbe,kendig,kemmer,kash,jenkin,inniss,hurlbut,hunsucker,huckabee,hoxie,hoglund,hockensmith,hoadley,hinkel,higuera,herrman,heiner,hausmann,haubrich,hassen,hanlin,hallinan,haglund,hagberg,gullo,gullion,groner,greenwalt,gobert,glowacki,glessner,gines,gildersleeve,gildea,gerke,gebhard,gatton,gately,galasso,fralick,fouse,fluharty,faucette,fairfax,evanoff,elser,ellard,egerton,ector,ebling,dunkel,duhart,drysdale,dostal,dorey,dolph,doles,dismukes,digregorio,digby,dewees,deramus,denniston,dennett,deloney,delaughter,cuneo,cumberland,crotts,crosswhite,cremeans,creasey,cottman,cothern,costales,cosner,corpus,colligan,cobble,clutter,chupp,chevez,chatmon,chaires,caplan,caffee,cabana,burrough,burditt,buckler,brunswick,brouillard,broady,bowlby,bouley,borgman,boltz,boddy,blackston,birdsell,bedgood,bate,bartos,barriga,barna,barcenas,banach,baccus,auclair,ashman,arter,arendt,ansell,allums,allender,alber,albarran,adelson,zoll,wysong,wimbley,wildes,whitis,whitehill,whicker,weymouth,weldy,wark,wareham,waddy,viveiros,vath,vandoren,vanderhoof,unrein,uecker,tsan,trepanier,tregre,torkelson,tobler,tineo,timmer,swopes,swofford,sweeten,swarts,summerfield,sumler,stucky,strozier,stigall,stickel,stennis,stelzer,steely,slayden,skillern,shurtz,shelor,shellenbarger,shand,shabazz,seo,scroggs,schwandt,schrecengost,schoenrock,schirmer,sandridge,ruzicka,rozek,rowlands,roser,rosendahl,romanowski,rolston,riggio,reichman,redondo,reay,rawlinson,raskin,raine,quandt,purpura,pruneda,prevatte,prettyman,pinedo,pierro,pidgeon,phillippi,pfeil,penix,peasley,paro,ospina,ortegon,ogata,ogara,normandin,nordman,nims,nassar,motz,morlan,mooring,moles,moir,mizrahi,mire,minaya,millwood,mikula,messmer,meikle,mctaggart,mcgonagle,mcewan,mccasland,mccane,mccaffery,mcalexander,mattocks,matranga,martone,markland,maravilla,manno,mancha,mallery,magno,lorentz,locklin,livingstone,lipford,lininger,lepley,leming,lemelin,leadbetter,lawhon,lattin,langworthy,lampman,lambeth,lamarr,lahey,krajewski,klopp,kinnison,kestner,kennell,karim,jozwiak,jakubowski,ivery,iliff,iddings,hudkins,houseman,holz,holderman,hoehne,highfill,hiett,heskett,heldt,hedman,hayslett,hatchell,hasse,hamon,hamada,hakala,haislip,haffey,hackbarth,guo,gullickson,guerrette,greenblatt,goudreau,gongora,godbout,glaude,gills,gillison,gigliotti,gargano,gallucci,galli,galante,frasure,fodor,fizer,fishburn,finkbeiner,finck,fager,estey,espiritu,eppinger,epperly,emig,eckley,dray,dorsch,dille,devita,deslauriers,demery,delorme,delbosque,dauphin,dantonio,curd,crume,cozad,cossette,comacho,climer,chadbourne,cespedes,cayton,castaldo,carpino,carls,capozzi,canela,buzard,busick,burlison,brinkmann,bridgeforth,bourbeau,bornstein,bonfiglio,boice,boese,biondi,bilski,betton,berwick,berlanga,behan,becraft,barrientez,banh,balke,balderrama,bahe,bachand,armer,arceo,aliff,alatorre,zermeno,younce,yeoman,yamasaki,wroten,woodby,winer,willits,wilcoxon,wehmeyer,waterbury,wass,wann,wachtel,vizcarra,veitch,vanderbilt,vallone,vallery,ureno,tyer,tipps,tiedeman,theberge,texeira,taub,tapscott,stutts,stults,stukes,spink,sottile,smithwick,slane,simeone,silvester,siegrist,shiffer,sheedy,sheaffer,severin,sellman,scotto,schupp,schueller,schreier,schoolcraft,schoenberger,schnabel,sangster,samford,saliba,ryles,ryans,rossetti,rodriguz,risch,riel,rezendes,rester,rencher,recker,rathjen,profitt,poteete,polizzi,perrigo,patridge,osby,orvis,opperman,oppenheim,onorato,olaughlin,ohagan,ogles,oehler,obyrne,nuzzo,nickle,nease,neagle,navarette,nagata,musto,morison,montz,mogensen,mizer,miraglia,migliore,menges,mellor,mcnear,mcnab,mcloud,mcelligott,mccollom,maynes,marquette,markowski,marcantonio,maldanado,macey,lundeen,longino,lisle,linthicum,limones,lesure,lesage,lauver,laubach,latshaw,lary,lapham,lacoste,lacher,kutcher,knickerbocker,klos,klingler,kleiman,kittleson,kimbrel,kemmerer,kelson,keese,kallas,jurgensen,junkins,juergens,jolliff,jelks,janicki,jang,ingles,huguley,huggard,howton,hone,holford,hogle,hipple,heimbach,heider,heidel,havener,hattaway,harrah,hanscom,hankinson,hamdan,gridley,goulette,goulart,goodrow,girardi,gent,gautreau,gandara,gamblin,galipeau,fyffe,furrow,fulp,fricks,frase,frandsen,fout,foulks,fouche,foskey,forgey,foor,fobbs,finklea,fincham,figueiredo,festa,ferrier,fellman,eslick,eilerman,eckart,eaglin,dunfee,dumond,drewry,douse,dimick,diener,dickert,deines,declue,daw,dattilo,danko,custodio,cuccia,crunk,crispin,corp,corea,coppin,considine,coniglio,conboy,cockrum,clute,clewis,christiano,channell,cerrato,cecere,catoe,castillon,castile,carstarphen,carmouche,caperton,buteau,bumpers,brey,brazeal,brassard,braga,bradham,bourget,borrelli,borba,boothby,bohr,bohm,boehme,bodin,bloss,blocher,bizzell,bieker,berthelot,bernardini,berends,benard,belser,baze,bartling,barrientes,barras,barcia,banfield,aurand,artman,arnott,arend,amon,almaguer,allee,albarado,alameda,abdo,zuehlke,zoeller,yokoyama,yocom,wyllie,woolum,wint,winland,wilner,wilmes,whitlatch,westervelt,walthall,walkowiak,walburn,viviano,vanderhoff,valez,ugalde,trumbull,todaro,tilford,tidd,tibbits,terranova,templeman,tannenbaum,talmage,tabarez,swearengin,swartwood,svendsen,strum,strack,storie,stockard,steinbeck,starns,stanko,stankiewicz,stacks,stach,sproles,spenser,smotherman,slusser,sinha,silber,siefert,siddiqui,shuff,sherburne,seldon,seddon,schweigert,schroeter,schmucker,saffold,rutz,rundle,rosinski,rosenow,rogalski,ridout,rhymer,replogle,raygoza,ratner,rascoe,rahm,quast,pressnell,predmore,pou,porto,pleasants,pigford,pavone,patnaude,parramore,papadopoulos,palmatier,ouzts,oshields,ortis,olmeda,olden,okamoto,norby,nitz,niebuhr,nevius,neiman,neidig,neece,murawski,mroz,moylan,moultry,mosteller,moring,morganti,mook,moffet,mettler,merlo,mengel,mendelsohn,meli,melchior,mcmeans,mcfaddin,mccullers,mccollister,mccloy,mcclaine,maury,maser,martelli,manthey,malkin,maio,magwood,maginnis,mabon,luton,lusher,lucht,lobato,levis,letellier,legendre,latson,larmon,largo,landreneau,landgraf,lamberson,kurland,kresge,korman,korando,klapper,kitson,kinyon,kincheloe,kawamoto,kawakami,jenney,jeanpierre,ivers,issa,ince,hollier,hollars,hoerner,hodgkinson,hiott,hibbitts,herlihy,henricks,heavner,hayhurst,harvill,harewood,hanselman,hanning,gustavson,grizzard,graybeal,gravley,gorney,goll,goehring,godines,gobeil,glickman,giuliano,gimbel,geib,gayhart,gatti,gains,gadberry,frei,fraise,fouch,forst,forsman,folden,fogleman,fetty,feely,fabry,eury,estill,epling,elamin,echavarria,dutil,duryea,dumais,drago,downard,douthit,doolin,dobos,dison,dinges,diebold,desilets,deshazo,depaz,degennaro,dall,cyphers,cryer,croce,crisman,credle,coriell,copp,compos,colmenero,cogar,carnevale,campanella,caley,calderone,burtch,brouwer,brehmer,brassell,brafford,bourquin,bourn,bohnert,blewett,blass,blakes,bhakta,besser,berge,bellis,balfour,avera,applin,ammon,alsop,aleshire,akbar,zoller,zapien,wymore,wyble,wolken,wix,wickstrom,whobrey,whigham,westerlund,welsch,weisser,weisner,weinstock,wehner,watlington,wakeland,wafer,victorino,veltri,veith,urich,uresti,umberger,twedt,tuohy,tschida,trumble,troia,trimmer,topps,tonn,tiernan,threet,thrall,thetford,teneyck,tartaglia,strohl,streater,strausbaugh,stradley,stonecipher,steadham,stansel,stalcup,stabile,sprenger,spradley,speier,southwood,sorrels,slezak,skow,sirmans,simental,sifford,sievert,shover,sheley,selzer,scriven,schwindt,schwan,schroth,saylors,saragosa,sant,salaam,saephan,routt,rousey,ros,rolfes,rieke,rieder,richeson,redinger,rasnick,rapoza,rambert,quist,pyron,pullman,przybylski,pridmore,pooley,pines,perkinson,perine,perham,pecor,peavler,partington,panton,oliverio,olague,ohman,ohearn,noyola,nicolai,nebel,murtha,mowrey,moroney,morgenstern,morant,monsour,moffit,mijares,meriwether,mendieta,melendrez,mejorado,mckittrick,mckey,mckenny,mckelvy,mcelvain,mccoin,mazzarella,mazon,maurin,matthies,maston,maske,marzano,marmon,marburger,mangus,mangino,mallet,luo,losada,londono,lobdell,lipson,lesniak,leighty,lei,lavallie,lareau,laperle,lape,laforce,laffey,kuehner,kravitz,kowalsky,kohr,kinsman,keppler,kennemer,keiper,kaler,jun,jelinek,jarnagin,isakson,hypes,hutzler,huls,horak,hitz,hice,herrell,henslee,heitz,heiss,heiman,hasting,hartwick,harmer,hammontree,hakes,guse,guillotte,groleau,greve,greenough,golub,golson,goldschmidt,golder,godbolt,gilmartin,gies,gibby,geren,genthner,gendreau,gemmill,gaymon,galyean,galeano,friar,folkerts,fleeman,fitzgibbons,ferranti,felan,farrand,eoff,enger,engels,ducksworth,duby,drumheller,douthitt,donis,dixion,dittrich,dials,descoteaux,depaul,denker,demuth,demelo,delacerda,deforge,danos,dalley,daigneault,cybulski,cothren,corns,corkery,copas,clubb,clore,chitty,chichester,chace,catanzaro,castonguay,cassella,carlberg,cammarata,calle,cajigas,byas,buzbee,busey,burling,bufkin,brzezinski,brun,brickner,brabham,boller,bockman,bleich,blakeman,bisbee,bier,bezanson,bevilacqua,besaw,berrian,bequette,beauford,baumgarten,baudoin,batie,basaldua,bardin,bangert,banes,backlund,avitia,artz,archey,apel,amico,alam,aden,zebrowski,yokota,wormley,wootton,womac,wiltz,wigington,whitehorn,whisman,weisgerber,weigle,weedman,watkin,wasilewski,wadlington,wadkins,viverette,vidaurri,vidales,vezina,vanleer,vanhoy,vanguilder,vanbrunt,updegraff,tylor,trinkle,touchette,tilson,tilman,tengan,tarkington,surrett,summy,streetman,straughter,steere,spruell,spadaro,solley,smathers,silvera,siems,shreffler,sholar,selden,schaper,samayoa,ruggeri,rowen,rosso,rosenbalm,roose,ronquillo,rogowski,rexford,repass,renzi,renick,rehberg,ranck,raffa,rackers,raap,puglisi,prinz,pounders,pon,pompa,plasencia,pipkins,petrosky,pelley,pauls,pauli,parkison,parisien,pangle,pancoast,palazzolo,owenby,overbay,orris,orlowski,nipp,newbern,nedd,nealon,najar,mysliwiec,myres,musson,murrieta,munsell,mumma,muldowney,moyle,mowen,morejon,moodie,monier,mikkelsen,miers,metzinger,melin,mcquay,mcpeek,mcneeley,mcglothin,mcghie,mcdonell,mccumber,mccranie,mcbean,mayhugh,marts,marenco,manges,lynam,lupien,luff,luebbert,loh,loflin,lococo,loch,lis,linke,lightle,lewellyn,leishman,lebow,lebouef,leanos,lanz,landy,landaverde,lacefield,kyler,kuebler,kropf,kroeker,kluesner,klass,kimberling,kilkenny,kiker,ketter,kelemen,keasler,kawamura,karst,kardos,igo,huseman,huseby,hurlbert,huard,hottinger,hornberger,hopps,holdsworth,hensen,heilig,heeter,harpole,haak,gutowski,gunnels,grimmer,gravatt,granderson,gotcher,gleaves,genao,garfinkel,frerichs,foushee,flanery,finnie,feldt,fagin,ewalt,ellefson,eiler,eckhart,eastep,digirolamo,didomenico,devera,delavega,defilippo,debusk,daub,damiani,cupples,crofoot,courter,coto,costigan,corning,corman,corlett,cooperman,collison,coghlan,cobbins,coady,coachman,clothier,cipolla,chmielewski,chiodo,chatterton,chappelle,chairez,ceron,casperson,casler,casados,carrow,carlino,carico,cardillo,caouette,canto,canavan,cambra,byard,buterbaugh,buse,bucy,buckwalter,bubb,bryd,brissette,brault,bradwell,boshears,borchert,blansett,biondo,biehl,bessey,belles,beeks,beekman,beaufort,bayliss,bardsley,avilla,astudillo,ardito,antunez,aderholt,abate,yowell,yin,yearby,wurst,woolverton,woolbright,wildermuth,whittenburg,whitely,wetherbee,wenz,welliver,welling,wason,warlick,voorhies,vivier,villines,verde,veiga,varghese,vanwyk,vanwingerden,vanhorne,umstead,twiggs,tusing,trego,tompson,tinkle,thoman,thole,tatman,tartt,suda,studley,strock,strawbridge,stokely,stec,stalter,speidel,spafford,sontag,sokolowski,skillman,skelley,skalski,sison,sippel,sinquefield,siegle,sher,sharrow,setliff,sellner,selig,seibold,seery,scriber,schull,schrupp,schippers,saulsbury,sao,santillo,sanor,rubalcaba,roosa,ronk,robbs,roache,riebe,reinoso,quin,preuss,pottorff,pontiff,plouffe,picou,picklesimer,pettyjohn,petti,penaloza,parmelee,pardee,palazzo,overholt,ogawa,ofarrell,nolting,noda,nickson,nevitt,neveu,navarre,murrow,munz,mulloy,monzo,milliman,metivier,merlino,mcpeters,mckissack,mckeen,mcgurk,mcfee,mcfarren,mcelwee,mceachin,mcdonagh,mccarville,mayhall,mattoon,martello,marconi,marbury,manzella,maly,malec,maitland,maheu,maclennan,lyke,luera,lowenstein,losh,lopiccolo,longacre,loman,loden,loaiza,lieber,libbey,lenhardt,lefebre,lauterbach,lauritsen,lass,larocco,larimer,lansford,lanclos,lamay,lal,kulikowski,kriebel,kosinski,kleinman,kleiner,kleckner,kistner,kissner,kissell,keisler,keeble,keaney,kale,joly,jimison,ikner,hursey,hruska,hove,hou,hosking,hoose,holle,hoeppner,hittle,hitchens,hirth,hinerman,higby,hertzog,hentz,hensler,heier,hegg,hassel,harpe,hara,hain,hagopian,grimshaw,grado,gowin,gowans,googe,goodlow,goering,gleaton,gidley,giannone,gascon,garneau,gambrel,galaz,fuentez,frisina,fresquez,fraher,feuerstein,felten,everman,ertel,erazo,ensign,endo,ellerman,eichorn,edgell,ebron,eaker,dundas,duncanson,duchene,ducan,dombroski,doman,dickison,dewoody,deloera,delahoussaye,dejean,degroat,decaro,dearmond,dashner,dales,crossett,cressey,cowger,cornette,corbo,coplin,coover,condie,cokley,ceaser,cannaday,callanan,cadle,buscher,bullion,bucklin,bruening,bruckner,brose,branan,bradway,botsford,bortz,borelli,bonetti,bolan,boerger,bloomberg,bingman,bilger,berns,beringer,beres,beets,beede,beaudet,beachum,baughn,bator,bastien,basquez,barreiro,barga,baratta,balser,baillie,axford,attebery,arakaki,annunziata,andrzejewski,ament,amendola,adcox,abril,zenon,zeitler,zambrana,ybanez,yagi,wolak,wilcoxson,whitesel,whitehair,weyand,westendorf,welke,weinmann,weesner,weekes,wedel,weatherall,warthen,vose,villalta,viator,vaz,valtierra,urbanek,tulley,trojanowski,trapani,toups,torpey,tomita,tindal,tieman,tevis,tedrow,taul,tash,tammaro,sylva,swiderski,sweeting,sund,stutler,stich,sterns,stegner,stalder,splawn,speirs,southwell,soltys,smead,slye,skipworth,sipos,simmerman,sidhu,shuffler,shingleton,shadwick,sermons,seefeldt,scipio,schwanke,schreffler,schiro,scheiber,sandoz,samsel,ruddell,royse,rouillard,rotella,rosalez,romriell,rizer,riner,rickards,rhoton,rhem,reppert,rayl,raulston,raposo,rainville,radel,quinney,purdie,pizzo,pincus,petrus,pendelton,pendarvis,peltz,peguero,peete,patricio,patchett,parrino,papke,palafox,ottley,ostby,oritz,ogan,odegaard,oatman,noell,nicoll,newhall,newbill,netzer,nettleton,neblett,murley,mungo,mulhall,mosca,morissette,morford,monsen,mitzel,miskell,minder,mehaffey,mcquillen,mclennan,mcgrail,mccreight,mayville,maysonet,maust,mathieson,mastrangelo,maskell,manz,malmberg,makela,madruga,lotts,longnecker,logston,littell,liska,lindauer,lillibridge,levron,letchworth,lesh,leffel,leday,leamon,kulas,kula,kucharski,kromer,kraatz,konieczny,konen,komar,kivett,kirts,kinnear,kersh,keithley,keifer,judah,jimenes,jeppesen,jansson,huntsberry,hund,huitt,huffine,hosford,holmstrom,hollen,hodgin,hirschman,hiltner,hilliker,hibner,hennis,helt,heidelberg,heger,heer,hartness,hardrick,halladay,gula,guillaume,guerriero,grunewald,grosse,griffeth,grenz,grassi,grandison,ginther,gimenez,gillingham,gillham,gess,gelman,gearheart,gaskell,gariepy,gamino,gallien,galentine,fuquay,froman,froelich,friedel,foos,fomby,focht,flythe,fiqueroa,filson,filip,fierros,fett,fedele,fasching,farney,fargo,everts,etzel,elzey,eichner,eger,eatman,ducker,duchesne,donati,domenech,dollard,dodrill,dinapoli,denn,delfino,delcid,delaune,delatte,deems,daluz,cusson,cullison,cuadrado,crumrine,cruickshank,crosland,croll,criddle,crepeau,coutu,couey,cort,coppinger,collman,cockburn,coca,clayborne,claflin,cissell,chowdhury,chicoine,chenier,causby,caulder,cassano,casner,cardiel,brunton,bruch,broxton,brosius,brooking,branco,bracco,bourgault,bosserman,bonet,bolds,bolander,bohman,boelter,blohm,blea,blaise,bischof,beus,bellew,bastarache,bast,bartolome,barcomb,barco,balk,balas,bakos,avey,atnip,ashbrook,arno,arbour,aquirre,appell,aldaco,alban,ahlstrom,abadie,zylstra,zick,yother,wyse,wunsch,whitty,weist,vrooman,villalon,vidrio,vavra,vasbinder,vanmatre,vandorn,ugarte,turberville,tuel,trogdon,toupin,toone,tolleson,tinkham,tinch,tiano,teston,teer,tawney,taplin,tant,tansey,swayne,sutcliffe,sunderman,strothers,stromain,stork,stoneburner,stolte,stolp,stoehr,stingley,stegman,stangl,spinella,spier,soules,sommerfield,sipp,simek,siders,shufelt,shue,shor,shires,shellenberger,sheely,sepe,seaberg,schwing,scherrer,scalzo,sasse,sarvis,santora,sansbury,salls,saleem,ryland,rybicki,ruggieri,rothenberg,rosenstein,roquemore,rollison,rodden,rivet,ridlon,riche,riccardi,reiley,regner,rech,rayo,raff,radabaugh,quon,quill,privette,prange,pickrell,perino,penning,pankratz,orlandi,nyquist,norrell,noren,naples,nale,nakashima,musselwhite,murrin,murch,mullinix,mullican,mullan,morneau,mondor,molinar,minjares,minix,minchew,milewski,mikkelson,mifflin,merkley,meis,meas,mcroy,mcphearson,mcneel,mcmunn,mcmorrow,mcdorman,mccroskey,mccoll,mcclusky,mcclaran,mccampbell,mazzariello,mauzy,mauch,mastro,martinek,marsala,marcantel,mahle,luciani,lubbers,lobel,linch,liller,legros,layden,lapine,lansberry,lage,laforest,labriola,koga,knupp,klimek,kittinger,kirchoff,kinzel,killinger,kilbourne,ketner,kepley,kemble,kells,kear,kaya,karsten,kaneshiro,kamm,joines,joachim,jacobus,iler,holgate,hoar,hisey,hird,hilyard,heslin,herzberg,hennigan,hegland,hartl,haner,handel,gualtieri,greenly,grasser,goetsch,godbold,gilland,gidney,gibney,giancola,gettinger,garzon,galle,galgano,gaier,gaertner,fuston,freel,fortes,fiorillo,figgs,fenstermacher,fedler,facer,fabiano,evins,euler,esquer,enyeart,elem,eich,edgerly,durocher,durgan,duffin,drolet,drewes,dotts,dossantos,dockins,dirksen,difiore,dierks,dickerman,dery,denault,demaree,delmonte,delcambre,daulton,darst,dahle,curnutt,cully,culligan,cueva,crosslin,croskey,cromartie,crofts,covin,coutee,coppa,coogan,condrey,concannon,coger,cloer,clatterbuck,cieslak,chumbley,choudhury,chiaramonte,charboneau,carneal,cappello,campisi,callicoat,burgoyne,bucholz,brumback,brosnan,brogden,broder,brendle,breece,bown,bou,boser,bondy,bolster,boll,bluford,blandon,biscoe,bevill,bence,battin,basel,bartram,barnaby,barmore,balbuena,badgley,backstrom,auyeung,ater,arrellano,arant,ansari,alling,alejandre,alcock,alaimo,aguinaldo,aarons,zurita,zeiger,zawacki,yutzy,yarger,wygant,wurm,wuest,witherell,wisneski,whitby,whelchel,weisz,weisinger,weishaar,wehr,waxman,waldschmidt,walck,waggener,vosburg,villela,vercher,venters,vanscyoc,vandyne,valenza,utt,urick,ungar,ulm,tumlin,tsao,tryon,trudel,treiber,tober,tipler,tillson,tiedemann,thornley,tetrault,temme,tarrance,tackitt,sykora,sweetman,swatzell,sutliff,suhr,sturtz,strub,strayhorn,stormer,steveson,stengel,steinfeldt,spiro,spieker,speth,spero,soza,souliere,soucie,snedeker,slifer,skillings,situ,siniard,simeon,signorelli,siggers,shultis,shrewsbury,shippee,shimp,shepler,sharpless,shadrick,severt,severs,semon,semmes,seiter,segers,sclafani,sciortino,schroyer,schrack,schoenberg,schober,scheidt,scheele,satter,sartori,sarratt,salvaggio,saladino,sakamoto,saine,ryman,rumley,ruggerio,rucks,roughton,robards,ricca,rexroad,resler,reny,rentschler,redrick,redick,reagle,raymo,raker,racette,pyburn,pritt,presson,pressman,pough,pisani,perz,perras,pelzer,pedrosa,palos,palmisano,paille,orem,orbison,oliveros,nourse,nordquist,newbury,nelligan,nawrocki,myler,mumaw,morphis,moldenhauer,miyashiro,mignone,mickelsen,michalec,mesta,mcree,mcqueary,mcninch,mcneilly,mclelland,mclawhorn,mcgreevy,mcconkey,mattes,maselli,marten,marcucci,manseau,manjarrez,malbrough,machin,mabie,lynde,lykes,lueras,lokken,loken,linzy,lillis,lilienthal,levey,legler,leedom,lebowitz,lazzaro,larabee,lapinski,langner,langenfeld,lampkins,lamotte,lambright,lagarde,ladouceur,labounty,lablanc,laberge,kyte,kroon,kron,kraker,kouba,kirwin,kincer,kimbler,kegler,keach,katzman,katzer,kalman,jimmerson,jenning,janus,iacovelli,hust,huson,husby,humphery,hufnagel,honig,holsey,holoman,hohl,hogge,hinderliter,hildebrant,hemby,helle,heintzelman,heidrick,hearon,hazelip,hauk,hasbrouck,harton,hartin,harpster,hansley,hanchett,haar,guthridge,gulbranson,guill,guerrera,grund,grosvenor,grist,grell,grear,granberry,gonser,giunta,giuliani,gillon,gillmore,gillan,gibbon,gettys,gelb,gano,galliher,fullen,frese,frates,foxwell,fleishman,fleener,fielden,ferrera,fells,feemster,fauntleroy,evatt,espy,eno,emmerich,edler,eastham,dunavant,duca,drinnon,dowe,dorgan,dollinger,dipalma,difranco,dietrick,denzer,demarest,delee,delariva,delany,decesare,debellis,deavers,deardorff,dawe,darosa,darley,dalzell,dahlen,curto,cupps,cunniff,cude,crivello,cripps,cresswell,cousar,cotta,compo,clyne,clayson,cearley,catania,carini,cantero,buttrey,buttler,burpee,bulkley,buitron,buda,bublitz,bryer,bryden,brouillette,brott,brookman,bronk,breshears,brennen,brannum,brandl,braman,bracewell,boyter,bomberger,bogen,boeding,blauvelt,blandford,biermann,bielecki,bibby,berthold,berkman,belvin,bellomy,beland,behne,beecham,becher,bax,bassham,barret,baley,auxier,atkison,ary,arocha,arechiga,anspach,algarin,alcott,alberty,ager,ackman,abdallah,zwick,ziemer,zastrow,zajicek,yokum,yokley,wittrock,winebarger,wilker,wilham,whitham,wetzler,westling,westbury,wendler,wellborn,weitzman,weitz,wallner,waldroup,vrabel,vowels,volker,vitiello,visconti,villicana,vibbert,vesey,vannatter,vangilder,vandervort,vandegrift,vanalstyne,vallecillo,usrey,tynan,turpen,tuller,trisler,townson,tillmon,threlkeld,thornell,terrio,taunton,tarry,tardy,swoboda,swihart,sustaita,suitt,stuber,strine,stookey,stmartin,stiger,stainbrook,solem,smail,sligh,siple,sieben,shumake,shriner,showman,sheen,sheckler,seim,secrist,scoggin,schultheis,schmalz,schendel,schacher,savard,saulter,santillanes,sandiford,sande,salzer,salvato,saltz,sakai,ryckman,ryant,ruck,rittenberry,ristau,richart,rhynes,reyer,reulet,reser,redington,reddington,rebello,reasor,raftery,rabago,raasch,quintanar,pylant,purington,provencal,prioleau,prestwood,pothier,popa,polster,politte,poffenberger,pinner,pietrzak,pettie,penaflor,pellot,pellham,paylor,payeur,papas,paik,oyola,osbourn,orzechowski,oppenheimer,olesen,oja,ohl,nuckolls,nordberg,noonkester,nold,nitta,niblett,neuhaus,nesler,nanney,myrie,mutch,mosquera,morena,montalto,montagna,mizelle,mincy,millikan,millay,miler,milbourn,mikels,migues,miesner,mershon,merrow,meigs,mealey,mcraney,mcmartin,mclachlan,mcgeehan,mcferren,mcdole,mccaulley,mcanulty,maziarz,maul,mateer,martinsen,marson,mariotti,manna,mance,malbon,magnusson,maclachlan,macek,lurie,luc,lown,loranger,lonon,lisenby,linsley,lenk,leavens,lauritzen,lathem,lashbrook,landman,lamarche,lamantia,laguerre,lagrange,kogan,klingbeil,kist,kimpel,kime,kier,kerfoot,kennamer,kellems,kammer,kamen,jepsen,jarnigan,isler,ishee,hux,hungate,hummell,hultgren,huffaker,hruby,hornick,hooser,hooley,hoggan,hirano,hilley,higham,heuser,henrickson,henegar,hellwig,hedley,hasegawa,hartt,hambright,halfacre,hafley,guion,guinan,grunwald,grothe,gries,greaney,granda,grabill,gothard,gossman,gosser,gossard,gosha,goldner,gobin,ginyard,gilkes,gilden,gerson,gephart,gengler,gautier,gassett,garon,galusha,gallager,galdamez,fulmore,fritsche,fowles,foutch,footman,fludd,ferriera,ferrero,ferreri,fenimore,fegley,fegan,fearn,farrier,fansler,fane,falzone,fairweather,etherton,elsberry,dykema,duppstadt,dunnam,dunklin,duet,dudgeon,dubuc,doxey,donmoyer,dodgen,disanto,dingler,dimattia,dilday,digennaro,diedrich,derossett,depp,demasi,degraffenreid,deakins,deady,davin,daigre,daddario,czerwinski,cullens,cubbage,cracraft,combest,coletti,coghill,claybrooks,christofferse,chiesa,chason,chamorro,celentano,cayer,carolan,carnegie,capetillo,callier,cadogan,caba,byrom,byrns,burrowes,burket,burdge,burbage,buchholtz,brunt,brungardt,brunetti,brumbelow,brugger,broadhurst,brigance,brandow,bouknight,bottorff,bottomley,bosarge,borger,bombardier,boggan,blumer,blecha,birney,birkland,betances,beran,belin,belgrave,bealer,bauch,bashir,bartow,baro,barnhouse,barile,ballweg,baisley,bains,baehr,badilla,bachus,bacher,bachelder,auzenne,aten,astle,allis,agarwal,adger,adamek,ziolkowski,zinke,zazueta,zamorano,younkin,wittig,witman,winsett,winkles,wiedman,whitner,whitcher,wetherby,westra,westhoff,wehrle,wagaman,voris,vicknair,veasley,vaugh,vanderburg,valletta,tunney,trumbo,truluck,trueman,truby,trombly,tourville,tostado,titcomb,timpson,tignor,thrush,thresher,thiede,tews,tamplin,taff,tacker,syverson,sylvestre,summerall,stumbaugh,strouth,straker,stradford,stokley,steinhoff,steinberger,spigner,soltero,snively,sletten,sinkler,sinegal,simoes,siller,sigel,shire,shinkle,shellman,sheller,sheats,sharer,selvage,sedlak,schriver,schimke,scheuerman,schanz,savory,saulters,sauers,sais,rusin,rumfelt,ruhland,rozar,rosborough,ronning,rolph,roloff,robie,rimer,riehle,ricco,rhein,retzlaff,reisman,reimann,rayes,raub,raminez,quesinberry,pua,procopio,priolo,printz,prewett,preas,prahl,poovey,ploof,platz,plaisted,pinzon,pineiro,pickney,petrovich,perl,pehrson,peets,pavon,pautz,pascarella,paras,paolini,pafford,oyer,ovellette,outten,outen,orduna,odriscoll,oberlin,nosal,niven,nisbett,nevers,nathanson,mukai,mozee,mowers,motyka,morency,montford,mollica,molden,mitten,miser,millender,midgette,messerly,melendy,meisel,meidinger,meany,mcnitt,mcnemar,mcmakin,mcgaugh,mccaa,mauriello,maudlin,matzke,mattia,matsumura,masuda,mangels,maloof,malizia,mahmoud,maglione,maddix,lucchesi,lochner,linquist,lietz,leventhal,lemanski,leiser,laury,lauber,lamberth,kuss,kulik,kuiper,krout,kotter,kort,kohlmeier,koffler,koeller,knipe,knauss,kleiber,kissee,kirst,kirch,kilgo,kerlin,kellison,kehl,kalb,jorden,jantzen,inabinet,ikard,husman,hunsberger,hundt,hucks,houtz,houseknecht,hoots,hogsett,hogans,hintze,hession,henault,hemming,helsley,heinen,heffington,heberling,heasley,hazley,hazeltine,hayton,hayse,hawke,haston,harward,harrow,hanneman,hafford,hadnot,guerro,grahm,gowins,gordillo,goosby,glatt,gibbens,ghent,gerrard,germann,gebo,gean,garling,gardenhire,garbutt,gagner,furguson,funchess,fujiwara,fujita,friley,frigo,forshee,folkes,filler,fernald,ferber,feingold,faul,farrelly,fairbank,failla,espey,eshleman,ertl,erhart,erhardt,erbe,elsea,ells,ellman,eisenhart,ehmann,earnhardt,duplantis,dulac,ducote,draves,dosch,dolce,divito,dimauro,derringer,demeo,demartini,delima,dehner,degen,defrancisco,defoor,dedeaux,debnam,cypert,cutrer,cusumano,custis,croker,courtois,costantino,cormack,corbeil,copher,conlan,conkling,cogdell,cilley,chapdelaine,cendejas,castiglia,cashin,carstensen,caprio,calcote,calaway,byfield,butner,bushway,burritt,browner,brobst,briner,bridger,brickley,brendel,bratten,bratt,brainerd,brackman,bowne,bouck,borunda,bordner,bonenfant,boer,boehmer,bodiford,bleau,blankinship,blane,blaha,bitting,bissonette,bigby,bibeau,bermudes,berke,bergevin,bergerson,bendel,belville,bechard,bearce,beadles,batz,bartlow,ayoub,avans,aumiller,arviso,arpin,arnwine,armwood,arent,arehart,arcand,antle,ambrosino,alongi,alm,allshouse,ahart,aguon,ziebarth,zeledon,zakrzewski,yuhas,yingst,yedinak,wommack,winnett,wingler,wilcoxen,whitmarsh,wayt,watley,warkentin,voll,vogelsang,voegele,vivanco,vinton,villafane,viles,ver,venne,vanwagoner,vanwagenen,vanleuven,vanauken,uselton,uren,trumbauer,tritt,treadaway,tozier,tope,tomczak,tomberlin,tomasini,tollett,toller,titsworth,tirrell,tilly,tavera,tarnowski,tanouye,swarthout,sutera,surette,styers,styer,stipe,stickland,stembridge,stearn,starkes,stanberry,stahr,spino,spicher,sperber,speece,sonntag,sneller,smalling,slowik,slocumb,sliva,slemp,slama,sitz,sisto,sisemore,sindelar,shipton,shillings,sheeley,sharber,shaddix,severns,severino,sensabaugh,seder,seawell,seamons,schrantz,schooler,scheffer,scheerer,scalia,saum,santibanez,sano,sanjuan,sampley,sailer,sabella,sabbagh,royall,rottman,rivenbark,rikard,ricketson,rickel,rethman,reily,reddin,reasoner,rast,ranallo,quintal,pung,pucci,proto,prosperie,prim,preusser,preslar,powley,postma,pinnix,pilla,pietsch,pickerel,pica,pharris,petway,petillo,perin,pereda,pennypacker,pennebaker,pedrick,patin,patchell,parodi,parman,pantano,padua,padro,osterhout,orner,olivar,ohlson,odonoghue,oceguera,oberry,novello,noguera,newquist,newcombe,neihoff,nehring,nees,nebeker,mundo,mullenix,morrisey,moronta,morillo,morefield,mongillo,molino,minto,midgley,michie,menzies,medved,mechling,mealy,mcshan,mcquaig,mcnees,mcglade,mcgarity,mcgahey,mcduff,mayweather,mastropietro,masten,maranto,maniscalco,maize,mahmood,maddocks,maday,macha,maag,luken,lopp,lolley,llanas,litz,litherland,lindenberg,lieu,letcher,lentini,lemelle,leet,lecuyer,leber,laursen,larrick,lantigua,langlinais,lalli,lafever,labat,labadie,krogman,kohut,knarr,klimas,klar,kittelson,kirschbaum,kintzel,kincannon,kimmell,killgore,kettner,kelsch,karle,kapoor,johansson,jenkinson,janney,iraheta,insley,hyslop,huckstep,holleran,hoerr,hinze,hinnenkamp,hilger,higgin,hicklin,heroux,henkle,helfer,heikkinen,heckstall,heckler,heavener,haydel,haveman,haubert,harrop,harnois,hansard,hanover,hammitt,haliburton,haefner,hadsell,haakenson,guynn,guizar,grout,grosz,gomer,golla,godby,glanz,glancy,givan,giesen,gerst,gayman,garraway,gabor,furness,frisk,fremont,frary,forand,fessenden,ferrigno,fearon,favreau,faulks,falbo,ewen,eurich,etchison,esterly,entwistle,ellingsworth,eisenbarth,edelson,eckel,earnshaw,dunneback,doyal,donnellan,dolin,dibiase,deschenes,dermody,degregorio,darnall,dant,dansereau,danaher,dammann,dames,czarnecki,cuyler,custard,cummingham,cuffie,cuffee,cudney,cuadra,crigler,creger,coughlan,corvin,cortright,corchado,connery,conforti,condron,colosimo,colclough,cohee,ciotti,chien,chacko,cevallos,cavitt,cavins,castagna,cashwell,carrozza,carrara,capra,campas,callas,caison,caggiano,bynoe,buswell,burpo,burnam,burges,buerger,buelow,bueche,bruni,brummitt,brodersen,briese,breit,brakebill,braatz,boyers,boughner,borror,borquez,bonelli,bohner,blaker,blackmer,bissette,bibbins,bhatt,bhatia,bessler,bergh,beresford,bensen,benningfield,bellantoni,behler,beehler,beazley,beauchesne,bargo,bannerman,baltes,balog,ballantyne,axelson,apgar,aoki,anstett,alejos,alcocer,albury,aichele,ackles,zerangue,zehner,zank,zacarias,youngberg,yorke,yarbro,wydra,worthley,wolbert,wittmer,witherington,wishart,winkleman,willilams,willer,wiedeman,whittingham,whitbeck,whetsel,wheless,westerberg,welcher,wegman,waterfield,wasinger,warfel,wannamaker,walborn,wada,vogl,vizcarrondo,vitela,villeda,veras,venuti,veney,ulrey,uhlig,turcios,tremper,torian,torbett,thrailkill,terrones,teitelbaum,teems,swoope,sunseri,stutes,stthomas,strohm,stroble,striegel,streicher,stodola,stinchcomb,steves,steppe,steller,staudt,starner,stamant,stam,stackpole,sprankle,speciale,spahr,sowders,sova,soluri,soderlund,slinkard,sjogren,sirianni,siewert,sickels,sica,shugart,shoults,shive,shimer,shier,shepley,sheeran,sevin,seto,segundo,sedlacek,scuderi,schurman,schuelke,scholten,schlater,schisler,schiefelbein,schalk,sanon,sabala,ruyle,ruybal,rueb,rowsey,rosol,rocheleau,rishel,rippey,ringgold,rieves,ridinger,retherford,rempe,reith,rafter,raffaele,quinto,putz,purdom,puls,pulaski,propp,principato,preiss,prada,polansky,poch,plath,pittard,pinnock,pfarr,pfannenstiel,penniman,pauling,patchen,paschke,parkey,pando,ouimet,ottman,ostlund,ormiston,occhipinti,nowacki,norred,noack,nishida,nilles,nicodemus,neth,nealey,myricks,murff,mungia,motsinger,moscato,morado,monnier,molyneux,modzelewski,miura,minich,militello,milbrandt,michalik,meserve,mendivil,melara,mcnish,mcelhannon,mccroy,mccrady,mazzella,maule,mattera,mathena,matas,mascorro,marinello,marguez,manwaring,manhart,mangano,maggi,lymon,luter,luse,lukasik,luiz,ludlum,luczak,lowenthal,lossett,lorentzen,loredo,longworth,lomanto,lisi,lish,lipsky,linck,liedtke,levering,lessman,lemond,lembo,ledonne,leatham,laufer,lanphear,langlais,lamphear,lamberton,lafon,lade,lacross,kyzer,krok,kring,krell,krehbiel,kratochvil,krach,kovar,kostka,knudtson,knaack,kliebert,klahn,kirkley,kimzey,kerrick,kennerson,keesler,karlin,janousek,imel,icenhour,hyler,hudock,houpt,holquin,holiman,holahan,hodapp,hillen,hickmon,hersom,henrich,helvey,heidt,heideman,hedstrom,hedin,hebron,hayter,harn,hardage,halsted,hahne,hagemann,guzik,guel,groesbeck,gritton,grego,graziani,grasty,graney,gouin,gossage,golston,goheen,godina,glade,giorgi,giambrone,gerrity,gerrish,gero,gerling,gaulke,garlick,galiano,gaiter,gahagan,gagnier,friddle,fredericksen,franqui,follansbee,foerster,flury,fitzmaurice,fiorini,finlayson,fiecke,fickes,fichter,ferron,farrel,fackler,eyman,escarcega,errico,erler,erby,engman,engelmann,elsass,elliston,eddleman,eadie,dummer,drost,dorrough,dorrance,doolan,donalson,domenico,ditullio,dittmar,dishon,dionisio,dike,devinney,desir,deschamp,derrickson,delamora,deitch,dechant,danek,dahmen,curci,cudjoe,croxton,creasman,craney,crader,cowling,coulston,cortina,corlew,corl,copland,convery,cohrs,clune,clausing,cipriani,cianciolo,chubb,chittum,chenard,charlesworth,charlebois,champine,chamlee,chagoya,casselman,cardello,capasso,cannella,calderwood,byford,buttars,bushee,burrage,buentello,brzozowski,bryner,brumit,brookover,bronner,bromberg,brixey,brinn,briganti,bremner,brawn,branscome,brannigan,bradsher,bozek,boulay,bormann,bongiorno,bollin,bohler,bogert,bodenhamer,blose,bivona,billips,bibler,benfer,benedetti,belue,bellanger,belford,behn,barnhardt,baltzell,balling,balducci,bainter,babineau,babich,baade,attwood,asmus,asaro,artiaga,applebaum,anding,amar,amaker,allsup,alligood,alers,agin,agar,achenbach,abramowitz,abbas,aasen,zehnder,yopp,yelle,yeldell,wynter,woodmansee,wooding,woll,winborne,willsey,willeford,widger,whiten,whitchurch,whang,weissinger,weinman,weingartner,weidler,waltrip,wagar,wafford,vitagliano,villalvazo,villacorta,vigna,vickrey,vicini,ventimiglia,vandenbosch,valvo,valazquez,utsey,urbaniak,unzueta,trombetta,trevizo,trembley,tremaine,traverso,tores,tolan,tillison,tietjen,teachout,taube,tatham,tarwater,tarbell,sydow,swims,swader,striplin,stoltenberg,steinhauer,steil,steigerwald,starkweather,stallman,squier,sparacino,spadafora,shiflet,shibata,shevlin,sherrick,sessums,servais,senters,seevers,seelye,searfoss,seabrooks,scoles,schwager,schrom,schmeltzer,scheffel,sawin,saterfiel,sardina,sanroman,sandin,salamanca,saladin,sabia,rustin,rushin,ruley,rueter,rotter,rosenzweig,rohe,roder,riter,rieth,ried,ridder,rennick,remmers,remer,relyea,reilley,reder,rasheed,rakowski,rabin,queener,pursel,prowell,pritts,presler,pouncy,porche,porcaro,pollman,pleas,planas,pinkley,pinegar,pilger,philson,petties,perrodin,pendergrast,patao,pasternak,passarelli,pasko,parshall,panos,panella,palombo,padillo,oyama,overlock,overbeck,otterson,orrell,ornellas,opitz,okelly,obando,noggle,nicosia,netto,negrin,natali,nakayama,nagao,nadel,musial,murrill,murrah,munsch,mucci,mrozek,moyes,mowrer,moris,morais,moorhouse,monico,mondy,moncayo,miltenberger,milsap,milone,millikin,milardo,micheals,micco,meyerson,mericle,mendell,meinhardt,meachum,mcleroy,mcgray,mcgonigal,maultsby,matis,matheney,matamoros,marro,marcil,marcial,mantz,mannings,maltby,malchow,maiorano,mahn,mahlum,maglio,maberry,lustig,luellen,longwell,longenecker,lofland,locascio,linney,linneman,lighty,levell,levay,lenahan,lemen,lehto,lebaron,lanctot,lamy,lainez,laffoon,labombard,kujawski,kroger,kreutzer,korhonen,kondo,kollman,kohan,kogut,knaus,kivi,kittel,kinner,kindig,kindel,kiesel,kibby,khang,kettler,ketterer,kepner,kelliher,keenum,kanode,kail,juhasz,jowett,jolicoeur,jeon,iser,ingrassia,imai,hutchcraft,humiston,hulings,hukill,huizenga,hugley,hornyak,hodder,hisle,hillenbrand,hille,higuchi,hertzler,herdon,heppner,hepp,heitmann,heckart,hazlewood,hayles,hayek,hawkin,haugland,hasler,harbuck,happel,hambly,hambleton,hagaman,guzzi,gullette,guinyard,grogg,grise,griffing,goto,gosney,goley,goldblatt,gledhill,girton,giltner,gillock,gilham,gilfillan,giblin,gentner,gehlert,gehl,garten,garney,garlow,garett,galles,galeana,futral,fuhr,friedland,franson,fransen,foulds,follmer,foland,flax,flavin,firkins,fillion,figueredo,ferrill,fenster,fenley,fauver,farfan,eustice,eppler,engelman,engelke,emmer,elzy,ellwood,ellerbee,elks,ehret,ebbert,durrah,dupras,dubuque,dragoo,donlon,dolloff,dibella,derrico,demko,demar,darrington,czapla,crooker,creagh,cranor,craner,crabill,coyer,cowman,cowherd,cottone,costillo,coster,costas,cosenza,corker,collinson,coello,clingman,clingerman,claborn,chmura,chausse,chaudhry,chapell,chancy,cerrone,caverly,caulkins,carn,campfield,campanelli,callaham,cadorette,butkovich,buske,burrier,burkley,bunyard,buckelew,buchheit,broman,brescia,brasel,boyster,booe,bonomo,bondi,bohnsack,blomberg,blanford,bilderback,biggins,bently,behrends,beegle,bedoya,bechtol,beaubien,bayerl,baumgart,baumeister,barratt,barlowe,barkman,barbagallo,baldree,baine,baggs,bacote,aylward,ashurst,arvidson,arthurs,arrieta,arrey,arreguin,arrant,arner,arizmendi,anker,amis,amend,alphin,allbright,aikin,zupan,zuchowski,zeolla,zanchez,zahradnik,zahler,younan,yeater,yearta,yarrington,yantis,woomer,wollard,wolfinger,woerner,witek,wishon,wisener,wingerter,willet,wilding,wiedemann,weisel,wedeking,waybright,wardwell,walkins,waldorf,voth,voit,virden,viloria,villagran,vasta,vashon,vaquera,vantassell,vanderlinden,vandergrift,vancuren,valenta,underdahl,tygart,twining,twiford,turlington,tullius,tubman,trowell,trieu,transue,tousant,torgersen,tooker,tome,toma,tocci,tippins,tinner,timlin,tillinghast,tidmore,teti,tedrick,tacey,swanberg,sunde,summitt,summerford,summa,stratman,strandberg,storck,stober,steitz,stayer,stauber,staiger,sponaugle,spofford,sparano,spagnola,sokoloski,snay,slough,skowronski,sieck,shimkus,sheth,sherk,shankles,shahid,sevy,senegal,seiden,seidell,searls,searight,schwalm,schug,schilke,schier,scheck,sawtelle,santore,sanks,sandquist,sanden,saling,saathoff,ryberg,rustad,ruffing,rudnicki,ruane,rozzi,rowse,rosenau,rodes,risser,riggin,riess,riese,rhoten,reinecke,reigle,reichling,redner,rebelo,raynes,raimondi,rahe,rada,querry,quellette,pulsifer,prochnow,prato,poulton,poudrier,policastro,polhemus,polasek,poissant,pohlmann,plotner,pitkin,pita,pinkett,piekarski,pichon,pfau,petroff,petermann,peplinski,peller,pecinovsky,pearse,pattillo,patague,parlier,parenti,parchman,pane,paff,ortner,oros,nolley,noakes,nigh,nicolosi,nicolay,newnam,netter,nass,napoles,nakata,nakamoto,morlock,moraga,montilla,mongeau,molitor,mohney,mitchener,meyerhoff,medel,mcniff,mcmonagle,mcglown,mcglinchey,mcgarrity,mccright,mccorvey,mcconnel,mccargo,mazzei,matula,mastroianni,massingale,maring,maricle,mans,mannon,mannix,manney,manalo,malo,malan,mahony,madril,mackowiak,macko,macintosh,lurry,luczynski,lucke,lucarelli,losee,lorence,loiacono,lohse,loder,lipari,linebarger,lindamood,limbaugh,letts,leleux,leep,leeder,leard,laxson,lawry,laverdiere,laughton,lastra,kurek,kriss,krishnan,kretschmer,krebsbach,kontos,knobel,knauf,klick,kleven,klawitter,kitchin,kirkendoll,kinkel,kingrey,kilbourn,kensinger,kennerly,kamin,justiniano,jurek,junkin,judon,jordahl,jeanes,jarrells,iwamoto,ishida,immel,iman,ihle,hyre,hurn,hunn,hultman,huffstetler,huffer,hubner,howey,hooton,holts,holscher,holen,hoggatt,hilaire,herz,henne,helstrom,hellickson,heinlein,heckathorn,heckard,headlee,hauptman,haughey,hatt,harring,harford,hammill,hamed,halperin,haig,hagwood,hagstrom,gunnells,gundlach,guardiola,greeno,greenland,gonce,goldsby,gobel,gisi,gillins,gillie,germano,geibel,gauger,garriott,garbarino,gajewski,funari,fullbright,fuell,fritzler,freshwater,freas,fortino,forbus,flohr,flemister,fisch,finks,fenstermaker,feldstein,farhat,fankhauser,fagg,fader,exline,emigh,eguia,edman,eckler,eastburn,dunmore,dubuisson,dubinsky,drayer,doverspike,doubleday,doten,dorner,dolson,dohrmann,disla,direnzo,dipaola,dines,diblasi,dewolf,desanti,dennehy,demming,delker,decola,davilla,daughtridge,darville,darland,danzy,dagenais,culotta,cruzado,crudup,croswell,coverdale,covelli,couts,corbell,coplan,coolbaugh,conyer,conlee,conigliaro,comiskey,coberly,clendening,clairmont,cienfuegos,chojnacki,chilcote,champney,cassara,casazza,casado,carew,carbin,carabajal,calcagni,cail,busbee,burts,burbridge,bunge,bundick,buhler,bucholtz,bruen,broce,brite,brignac,brierly,bridgman,braham,bradish,boyington,borjas,bonn,bonhomme,bohlen,bogardus,bockelman,blick,blackerby,bizier,biro,binney,bertolini,bertin,berti,bento,beno,belgarde,belding,beckel,becerril,bazaldua,bayes,bayard,barrus,barris,baros,bara,ballow,bakewell,baginski,badalamenti,backhaus,avilez,auvil,atteberry,ardon,anzaldua,anello,amsler,ambrosio,althouse,alles,alberti,alberson,aitchison,aguinaga,ziemann,zickefoose,zerr,zeck,zartman,zahm,zabriskie,yohn,yellowhair,yeaton,yarnall,yaple,wolski,wixon,willner,willms,whitsitt,wheelwright,weyandt,wess,wengerd,weatherholtz,wattenbarger,walrath,walpole,waldrip,voges,vinzant,viars,veres,veneziano,veillon,vawter,vaughns,vanwart,vanostrand,valiente,valderas,uhrig,tunison,tulloch,trostle,treaster,traywick,toye,tomson,tomasello,tomasek,tippit,tinajero,tift,tienda,thorington,thieme,thibeau,thakkar,tewell,telfer,sweetser,stratford,stracener,stoke,stiverson,stelling,spatz,spagnoli,sorge,slevin,slabaugh,simson,shupp,shoultz,shotts,shiroma,shetley,sherrow,sheffey,shawgo,shamburger,sester,segraves,seelig,scioneaux,schwartzkopf,schwabe,scholes,schluter,schlecht,schillaci,schildgen,schieber,schewe,schecter,scarpelli,scaglione,sautter,santelli,salmi,sabado,ryer,rydberg,ryba,rushford,runk,ruddick,rotondo,rote,rosenfield,roesner,rocchio,ritzer,rippel,rimes,riffel,richison,ribble,reynold,resh,rehn,ratti,rasor,rasnake,rappold,rando,radosevich,pulice,prichett,pribble,poynor,plowden,pitzen,pittsley,pitter,philyaw,philipps,pestana,perro,perone,pera,peil,pedone,pawlowicz,pattee,parten,parlin,pariseau,paredez,paek,pacifico,otts,ostrow,osornio,oslund,orso,ooten,onken,oniel,onan,ollison,ohlsen,ohlinger,odowd,niemiec,neubert,nembhard,neaves,neathery,nakasone,myerson,muto,muntz,munez,mumme,mumm,mujica,muise,muench,morriss,molock,mishoe,minier,metzgar,mero,meiser,meese,mcsween,mcquire,mcquinn,mcpheeters,mckeller,mcilrath,mcgown,mcdavis,mccuen,mcclenton,maxham,matsui,marriner,marlette,mansur,mancino,maland,majka,maisch,maheux,madry,madriz,mackley,macke,lydick,lutterman,luppino,lundahl,lovingood,loudon,longmore,liefer,leveque,lescarbeau,lemmer,ledgerwood,lawver,lawrie,lattea,lasko,lahman,kulpa,kukowski,kukla,kubota,kubala,krizan,kriz,krikorian,kravetz,kramp,kowaleski,knobloch,klosterman,kloster,klepper,kirven,kinnaman,kinnaird,killam,kiesling,kesner,keebler,keagle,karls,kapinos,kantner,kaba,junious,jefferys,jacquet,izzi,ishii,irion,ifill,hotard,horman,hoppes,hopkin,hokanson,hoda,hocutt,hoaglin,hites,hirai,hindle,hinch,hilty,hild,hier,hickle,hibler,henrichs,hempstead,helmers,hellard,heims,heidler,hawbaker,harkleroad,harari,hanney,hannaford,hamid,haltom,hallford,guilliams,guerette,gryder,groseclose,groen,grimley,greenidge,graffam,goucher,goodenough,goldsborough,gloster,glanton,gladson,gladding,ghee,gethers,gerstein,geesey,geddie,gayer,gaver,gauntt,gartland,garriga,garoutte,fronk,fritze,frenzel,forgione,fluitt,flinchbaugh,flach,fiorito,finan,finamore,fimbres,fillman,figeroa,ficklin,feher,feddersen,fambro,fairbairn,eves,escalona,elsey,eisenstein,ehrenberg,eargle,drane,dogan,dively,dewolfe,dettman,desiderio,desch,dennen,denk,demaris,delsignore,dejarnette,deere,dedman,daws,dauphinais,danz,dantin,dannenberg,dalby,currence,culwell,cuesta,croston,crossno,cromley,crisci,craw,coryell,condra,colpitts,colas,clink,clevinger,clermont,cistrunk,cirilo,chirico,chiarello,cephus,cecena,cavaliere,caughey,casimir,carwell,carlon,carbonaro,caraveo,cantley,callejas,cagney,cadieux,cabaniss,bushard,burlew,buras,budzinski,bucklew,bruneau,brummer,brueggemann,brotzman,bross,brittian,brimage,briles,brickman,breneman,breitenstein,brandel,brackins,boydstun,botta,bosket,boros,borgmann,bordeau,bonifacio,bolten,boehman,blundell,bloodsaw,bjerke,biffle,bickett,bickers,beville,bergren,bergey,benzing,belfiore,beirne,beckert,bebout,baumert,battey,barrs,barriere,barcelo,barbe,balliet,baham,babst,auton,asper,asbell,arzate,argento,arel,araki,arai,antley,amodeo,ammann,allensworth,aldape,akey,abeita,zweifel,zeiler,zamor,zalenski,yzaguirre,yousef,yetman,wyer,woolwine,wohlgemuth,wohlers,wittenberg,wingrove,wimsatt,willimas,wilkenson,wildey,wilderman,wilczynski,wigton,whorley,wellons,welle,weirich,weideman,weide,weast,wasmund,warshaw,walson,waldner,walch,walberg,wagener,wageman,vrieze,vossen,vorce,voorhis,vonderheide,viruet,vicari,verne,velasques,vautour,vartanian,varona,vankeuren,vandine,vandermeer,ursery,underdown,uhrich,uhlman,tworek,twine,twellman,tweedie,tutino,turmelle,tubb,trivedi,triano,trevathan,treese,treanor,treacy,traina,topham,toenjes,tippetts,tieu,thomure,thatch,tetzlaff,tetterton,teamer,tappan,talcott,tagg,szczepanski,syring,surace,sulzer,sugrue,sugarman,suess,styons,stwart,stupka,strey,straube,strate,stoddart,stockbridge,stjames,steimle,steenberg,stamand,staller,stahly,stager,spurgin,sprow,sponsler,speas,spainhour,sones,smits,smelcer,slovak,slaten,singleterry,simien,sidebottom,sibrian,shellhammer,shelburne,shambo,sepeda,seigel,scogin,scianna,schmoll,schmelzer,scheu,schachter,savant,sauseda,satcher,sandor,sampsell,rugh,rufener,rotenberry,rossow,rossbach,rollman,rodrique,rodreguez,rodkey,roda,rini,riggan,rients,riedl,rhines,ress,reinbold,raschke,rardin,racicot,quillin,pushard,primrose,pries,pressey,precourt,pratts,postel,poppell,plumer,pingree,pieroni,pflug,petre,petrarca,peterka,perkin,pergande,peranio,penna,paulhus,pasquariello,parras,parmentier,pamplin,oviatt,osterhoudt,ostendorf,osmun,ortman,orloff,orban,onofrio,olveda,oltman,okeeffe,ocana,nunemaker,novy,noffsinger,nish,niday,nethery,nemitz,neidert,nadal,nack,muszynski,munsterman,mulherin,mortimore,morter,montesino,montalvan,montalbano,momon,moman,mogan,minns,millward,milling,michelsen,mewborn,metayer,mensch,meloy,meggs,meaders,mcsorley,mcmenamin,mclead,mclauchlin,mcguffey,mcguckin,mcglaughlin,mcferron,mcentyre,mccrum,mccawley,mcbain,mayhue,matzen,matton,marsee,marrin,marland,markum,mantilla,manfre,makuch,madlock,macauley,luzier,luthy,lufkin,lucena,loudin,lothrop,lorch,loll,loadholt,lippold,lichtman,liberto,liakos,lewicki,levett,lentine,leja,legree,lawhead,lauro,lauder,lanman,lank,laning,lalor,krob,kriger,kriegel,krejci,kreisel,kozel,konkel,kolstad,koenen,kocsis,knoblock,knebel,klopfer,klee,kilday,kesten,kerbs,kempker,keathley,kazee,kaur,kamer,kamaka,kallenbach,jehle,jaycox,jardin,jahns,ivester,hyppolite,hyche,huppert,hulin,hubley,horsey,hornak,holzwarth,holmon,hollabaugh,holaway,hodes,hoak,hinesley,hillwig,hillebrand,highfield,heslop,herrada,hendryx,hellums,heit,heishman,heindel,hayslip,hayford,hastie,hartgrove,hanus,hakim,hains,hadnott,gundersen,gulino,guidroz,guebert,gressett,graydon,gramling,grahn,goupil,gorelick,goodreau,goodnough,golay,goers,glatz,gillikin,gieseke,giammarino,getman,gensler,gazda,garibaldi,gahan,funderburke,fukuda,fugitt,fuerst,fortman,forsgren,formica,flink,fitton,feltz,fekete,feit,fehrenbach,farone,farinas,faries,fagen,ewin,esquilin,esch,enderle,ellery,ellers,ekberg,egli,effinger,dymond,dulle,dula,duhe,dudney,dowless,dower,dorminey,dopp,dooling,domer,disher,dillenbeck,difilippo,dibernardo,deyoe,devillier,denley,deland,defibaugh,deeb,debow,dauer,datta,darcangelo,daoust,damelio,dahm,dahlman,curlin,cupit,culton,cuenca,cropp,croke,cremer,crace,cosio,corzine,coombe,coman,colone,coloma,collingwood,coderre,cocke,cobler,claybrook,cincotta,cimmino,christoff,chisum,chillemi,chevere,chachere,cervone,cermak,cefalu,cauble,cather,caso,carns,carcamo,carbo,capoccia,capello,capell,canino,cambareri,calvi,cabiness,bushell,burtt,burstein,burkle,bunner,bundren,buechler,bryand,bruso,brownstein,brouse,brodt,brisbin,brightman,brenes,breitenbach,brazzell,brazee,bramwell,bramhall,bradstreet,boyton,bowland,boulter,bossert,bonura,bonebrake,bonacci,boeck,blystone,birchard,bilal,biddy,bibee,bevans,bethke,bertelsen,berney,bergfeld,benware,bellon,bellah,batterton,barberio,bamber,bagdon,badeaux,averitt,augsburger,ates,arvie,aronowitz,arens,araya,angelos,andrada,amell,amante,almy,almquist,alls,aispuro,aguillon,agudelo,aceto,abalos,zdenek,zaremba,zaccaria,youssef,wrona,wrede,wotton,woolston,wolpert,wollman,wince,wimberley,willmore,willetts,wikoff,wieder,wickert,whitenack,wernick,welte,welden,weisenberger,weich,wallington,walder,vossler,vore,vigo,vierling,victorine,verdun,vencill,vazguez,vassel,vanzile,vanvliet,vantrease,vannostrand,vanderveer,vanderveen,vancil,uyeda,umphrey,uhler,uber,tutson,turrentine,tullier,tugwell,trundy,tripodi,tomer,tomasi,tomaselli,tokarski,tisher,tibbets,thweatt,tharrington,tesar,telesco,teasdale,tatem,taniguchi,suriel,sudler,stutsman,sturman,strite,strelow,streight,strawder,stransky,strahl,stours,stong,stinebaugh,stillson,steyer,stelle,steffensmeier,statham,squillante,spiess,spargo,southward,soller,soden,snuggs,snellgrove,smyers,smiddy,slonaker,skyles,skowron,sivils,siqueiros,siers,siddall,shontz,shingler,shiley,shibley,sherard,shelnutt,shedrick,shasteen,sereno,selke,scovil,scola,schuett,schuessler,schreckengost,schranz,schoepp,schneiderman,schlanger,schiele,scheuermann,schertz,scheidler,scheff,schaner,schamber,scardina,savedra,saulnier,sater,sarro,sambrano,salomone,sabourin,ruud,rutten,ruffino,ruddock,rowser,roussell,rosengarten,rominger,rollinson,rohman,roeser,rodenberg,roberds,ridgell,rhodus,reynaga,rexrode,revelle,rempel,remigio,reising,reiling,reetz,rayos,ravenscroft,ravenell,raulerson,rasmusson,rask,rase,ragon,quesnel,quashie,puzo,puterbaugh,ptak,prost,prisbrey,principe,pricer,pratte,pouncey,portman,pontious,pomerantz,planck,pilkenton,pilarski,phegley,pertuit,penta,pelc,peffer,pech,peagler,pavelka,pavao,patman,paskett,parrilla,pardini,papazian,panter,palin,paley,paetzold,packett,pacheo,ostrem,orsborn,olmedo,okamura,oiler,oglesbee,oatis,nuckles,notter,nordyke,nogueira,niswander,nibert,nesby,neloms,nading,naab,munns,mullarkey,moudy,moret,monnin,molder,modisette,moczygemba,moctezuma,mischke,miro,mings,milot,milledge,milhorn,milera,mieles,mickley,micek,metellus,mersch,merola,mercure,mencer,mellin,mell,meinke,mcquillan,mcmurtrie,mckillop,mckiernan,mckendrick,mckamie,mcilvaine,mcguffie,mcgonigle,mcgarrah,mcfetridge,mcenaney,mcdow,mccutchan,mccallie,mcadam,maycock,maybee,mattei,massi,masser,masiello,marshell,marmo,marksberry,markell,marchal,manross,manganaro,mally,mallow,mailhot,magyar,madero,madding,maddalena,macfarland,lynes,lugar,luckie,lucca,lovitt,loveridge,loux,loth,loso,lorenzana,lorance,lockley,lockamy,littler,litman,litke,liebel,lichtenberger,licea,leverich,letarte,lesesne,leno,legleiter,leffew,laurin,launius,laswell,lassen,lasala,laraway,laramore,landrith,lancon,lanahan,laiche,laford,lachermeier,kunst,kugel,kuck,kuchta,kube,korus,koppes,kolbe,koerber,kochan,knittel,kluck,kleve,kleine,kitch,kirton,kirker,kintz,kinghorn,kindell,kimrey,kilduff,kilcrease,kicklighter,kibble,kervin,keplinger,keogh,kellog,keeth,kealey,kazmierczak,karner,kamel,kalina,kaczynski,juel,jerman,jeppson,jawad,jasik,jaqua,janusz,janco,inskeep,inks,ingold,hyndman,hymer,hunte,hunkins,humber,huffstutler,huffines,hudon,hudec,hovland,houze,hout,hougland,hopf,holsapple,holness,hollenbach,hoffmeister,hitchings,hirata,hieber,hickel,hewey,herriman,hermansen,herandez,henze,heffelfinger,hedgecock,hazlitt,hazelrigg,haycock,harren,harnage,harling,harcrow,hannold,hanline,hanel,hanberry,hammersley,hamernik,hajduk,haithcock,haff,hadaway,haan,gullatt,guilbault,guidotti,gruner,grisson,grieves,granato,grabert,gover,gorka,glueck,girardin,giesler,gersten,gering,geers,gaut,gaulin,gaskamp,garbett,gallivan,galland,gaeth,fullenkamp,fullam,friedrichs,freire,freeney,fredenburg,frappier,fowkes,foree,fleurant,fleig,fleagle,fitzsimons,fischetti,fiorenza,finneran,filippi,figueras,fesler,fertig,fennel,feltmann,felps,felmlee,fannon,familia,fairall,fadden,esslinger,enfinger,elsasser,elmendorf,ellisor,einhorn,ehrman,egner,edmisten,edlund,ebinger,dyment,dykeman,durling,dunstan,dunsmore,dugal,duer,drescher,doyel,dossey,donelan,dockstader,dobyns,divis,dilks,didier,desrosier,desanto,deppe,delosh,delange,defrank,debo,dauber,dartez,daquila,dankert,dahn,cygan,cusic,curfman,croghan,croff,criger,creviston,crays,cravey,crandle,crail,crago,craghead,cousineau,couchman,cothron,corella,conine,coller,colberg,cogley,coatney,coale,clendenin,claywell,clagon,cifaldi,choiniere,chickering,chica,chennault,chavarin,chattin,chaloux,challis,cesario,cazarez,caughman,catledge,casebolt,carrel,carra,carlow,capote,canez,camillo,caliendo,calbert,bylsma,buskey,buschman,burkhard,burghardt,burgard,buonocore,bunkley,bungard,bundrick,bumbrey,buice,buffkin,brundige,brockwell,brion,briant,bredeson,bransford,brannock,brakefield,brackens,brabant,bowdoin,bouyer,bothe,boor,bonavita,bollig,blurton,blunk,blanke,blanck,birden,bierbaum,bevington,beutler,betters,bettcher,bera,benway,bengston,benesh,behar,bedsole,becenti,beachy,battersby,basta,bartmess,bartle,bartkowiak,barsky,barrio,barletta,barfoot,banegas,baldonado,azcona,avants,austell,aungst,aune,aumann,audia,atterbury,asselin,asmussen,ashline,asbill,arvizo,arnot,ariola,ardrey,angstadt,anastasio,amsden,amerman,alred,allington,alewine,alcina,alberico,ahlgren,aguas,agrawal,agosta,adolphsen,acey,aburto,abler,zwiebel,zepp,zentz,ybarbo,yarberry,yamauchi,yamashiro,wurtz,wronski,worster,wootten,wongus,woltz,wolanski,witzke,withey,wisecarver,wingham,wineinger,winegarden,windholz,wilgus,wiesen,wieck,widrick,wickliffe,whittenberg,westby,werley,wengert,wendorf,weimar,weick,weckerly,watrous,wasden,walford,wainright,wahlstrom,wadlow,vrba,voisin,vives,vivas,vitello,villescas,villavicencio,villanova,vialpando,vetrano,vensel,vassell,varano,vanriper,vankleeck,vanduyne,vanderpol,vanantwerp,valenzula,udell,turnquist,tuff,trickett,tramble,tingey,timbers,tietz,thiem,tercero,tenner,tenaglia,teaster,tarlton,taitt,tabon,sward,swaby,suydam,surita,suman,suddeth,stumbo,studivant,strobl,streich,stoodley,stoecker,stillwagon,stickle,stellmacher,stefanik,steedley,starbird,stainback,stacker,speir,spath,sommerfeld,soltani,solie,sojka,sobota,sobieski,sobczak,smullen,sleeth,slaymaker,skolnick,skoglund,sires,singler,silliman,shrock,shott,shirah,shimek,shepperd,sheffler,sheeler,sharrock,sharman,shalash,seyfried,seybold,selander,seip,seifried,sedor,sedlock,sebesta,seago,scutt,scrivens,sciacca,schultze,schoemaker,schleifer,schlagel,schlachter,schempp,scheider,scarboro,santi,sandhu,salim,saia,rylander,ryburn,rutigliano,ruocco,ruland,rudloff,rott,rosenburg,rosenbeck,romberger,romanelli,rohloff,rohlfing,rodda,rodd,ritacco,rielly,rieck,rickles,rickenbacker,respass,reisner,reineck,reighard,rehbein,rega,reddix,rawles,raver,rattler,ratledge,rathman,ramsburg,raisor,radovich,radigan,quail,puskar,purtee,priestly,prestidge,presti,pressly,pozo,pottinger,portier,porta,porcelli,poplawski,polin,poeppelman,pocock,plump,plantz,placek,piro,pinnell,pinkowski,pietz,picone,philbeck,pflum,peveto,perret,pentz,payer,patlan,paterno,papageorge,overmyer,overland,osier,orwig,orum,orosz,oquin,opie,ochsner,oathout,nygard,norville,northway,niver,nicolson,newhart,neitzel,nath,nanez,murnane,mortellaro,morreale,morino,moriarity,morgado,moorehouse,mongiello,molton,mirza,minnix,millspaugh,milby,miland,miguez,mickles,michaux,mento,melugin,melito,meinecke,mehr,meares,mcneece,mckane,mcglasson,mcgirt,mcgilvery,mcculler,mccowen,mccook,mcclintic,mccallon,mazzotta,maza,mayse,mayeda,matousek,matley,martyn,marney,marnell,marling,manuelito,maltos,malson,mahi,maffucci,macken,maass,lyttle,lynd,lyden,lukasiewicz,luebbers,lovering,loveall,longtin,lobue,loberg,lipka,lightbody,lichty,levert,lettieri,letsinger,lepak,lemmond,lembke,leitz,lasso,lasiter,lango,landsman,lamirande,lamey,laber,kuta,kulesza,krenz,kreiner,krein,kreiger,kraushaar,kottke,koser,kornreich,kopczynski,konecny,koff,koehl,kocian,knaub,kmetz,kluender,klenke,kleeman,kitzmiller,kirsh,kilman,kildow,kielbasa,ketelsen,kesinger,kehr,keef,kauzlarich,karter,kahre,jobin,jinkins,jines,jeffress,jaquith,jaillet,jablonowski,ishikawa,irey,ingerson,indelicato,huntzinger,huisman,huett,howson,houge,hosack,hora,hoobler,holtzen,holtsclaw,hollingworth,hollin,hoberg,hobaugh,hilker,hilgefort,higgenbotham,heyen,hetzler,hessel,hennessee,hendrie,hellmann,heft,heesch,haymond,haymon,haye,havlik,havis,haverland,haus,harstad,harriston,harju,hardegree,hammell,hamaker,halbrook,halberg,guptill,guntrum,gunderman,gunder,gularte,guarnieri,groll,grippo,greely,gramlich,goewey,goetzinger,goding,giraud,giefer,giberson,gennaro,gemmell,gearing,gayles,gaudin,gatz,gatts,gasca,garn,gandee,gammel,galindez,galati,gagliardo,fulop,fukushima,friedt,fretz,frenz,freeberg,fravel,fountaine,forry,forck,fonner,flippin,flewelling,flansburg,filippone,fettig,fenlon,felter,felkins,fein,favero,faulcon,farver,farless,fahnestock,facemire,faas,eyer,evett,esses,escareno,ensey,ennals,engelking,empey,ellithorpe,effler,edling,edgley,durrell,dunkerson,draheim,domina,dombrosky,doescher,dobbin,divens,dinatale,dieguez,diede,devivo,devilbiss,devaul,determan,desjardin,deshaies,delpozo,delorey,delman,delapp,delamater,deibert,degroff,debelak,dapolito,dano,dacruz,dacanay,cushenberry,cruze,crosbie,cregan,cousino,corrao,corney,cookingham,conry,collingsworth,coldren,cobian,coate,clauss,christenberry,chmiel,chauez,charters,chait,cesare,cella,caya,castenada,cashen,cantrelle,canova,campione,calixte,caicedo,byerley,buttery,burda,burchill,bulmer,bulman,buesing,buczek,buckholz,buchner,buchler,buban,bryne,brunkhorst,brumsey,brumer,brownson,brodnax,brezinski,brazile,braverman,branning,boye,boulden,bough,bossard,bosak,borth,borgmeyer,borge,blowers,blaschke,blann,blankenbaker,bisceglia,billingslea,bialek,beverlin,besecker,berquist,benigno,benavente,belizaire,beisner,behrman,beausoleil,baylon,bayley,bassi,basnett,basilio,basden,basco,banerjee,balli,bagnell,bady,averette,arzu,archambeault,arboleda,arbaugh,arata,antrim,amrhein,amerine,alpers,alfrey,alcon,albus,albertini,aguiniga,aday,acquaviva,accardi,zygmont,zych,zollner,zobel,zinck,zertuche,zaragosa,zale,zaldivar,yeadon,wykoff,woullard,wolfrum,wohlford,wison,wiseley,wisecup,winchenbach,wiltsie,whittlesey,whitelow,whiteford,wever,westrich,wertman,wensel,wenrich,weisbrod,weglarz,wedderburn,weatherhead,wease,warring,wadleigh,voltz,vise,villano,vicario,vermeulen,vazques,vasko,varughese,vangieson,vanfossen,vanepps,vanderploeg,vancleve,valerius,uyehara,unsworth,twersky,turrell,tuner,tsui,trunzo,trousdale,trentham,traughber,torgrimson,toppin,tokar,tobia,tippens,tigue,thiry,thackston,terhaar,tenny,tassin,tadeo,sweigart,sutherlin,sumrell,suen,stuhr,strzelecki,strosnider,streiff,stottlemyer,storment,storlie,stonesifer,stogsdill,stenzel,stemen,stellhorn,steidl,stecklein,statton,stangle,spratling,spoor,spight,spelman,spece,spanos,spadoni,southers,sola,sobol,smyre,slaybaugh,sizelove,sirmons,simington,silversmith,siguenza,sieren,shelman,sharples,sharif,sessler,serrata,serino,serafini,semien,selvey,seedorf,seckman,seawood,scoby,scicchitano,schorn,schommer,schnitzer,schleusner,schlabach,schiel,schepers,schaber,scally,sautner,sartwell,santerre,sandage,salvia,salvetti,salsman,sallis,salais,saeger,sabat,saar,ruther,russom,ruoff,rumery,rubottom,rozelle,rowton,routon,rotolo,rostad,roseborough,rorick,ronco,roher,roberie,robare,ritts,rison,rippe,rinke,ringwood,righter,rieser,rideaux,rickerson,renfrew,releford,reinsch,reiman,reifsteck,reidhead,redfearn,reddout,reaux,rado,radebaugh,quinby,quigg,provo,provenza,provence,pridgeon,praylow,powel,poulter,portner,pontbriand,poirrier,poirer,platero,pixler,pintor,pigman,piersall,piel,pichette,phou,pharis,phalen,petsche,perrier,penfield,pelosi,pebley,peat,pawloski,pawlik,pavlick,pavel,patz,patout,pascucci,pasch,parrinello,parekh,pantaleo,pannone,pankow,pangborn,pagani,pacelli,orsi,oriley,orduno,oommen,olivero,okada,ocon,ocheltree,oberman,nyland,noss,norling,nolton,nobile,nitti,nishimoto,nghiem,neuner,neuberger,neifert,negus,nagler,mullally,moulden,morra,morquecho,moots,mizzell,mirsky,mirabito,minardi,milholland,mikus,mijangos,michener,michalek,methvin,merrit,menter,meneely,meiers,mehring,mees,mcwhirt,mcwain,mcphatter,mcnichol,mcnaught,mclarty,mcivor,mcginness,mcgaughy,mcferrin,mcfate,mcclenny,mcclard,mccaskey,mccallion,mcamis,mathisen,marton,marsico,marchi,mani,mangione,macaraeg,lupi,lunday,lukowski,lucious,locicero,loach,littlewood,litt,lipham,linley,lindon,lightford,lieser,leyendecker,lewey,lesane,lenzi,lenart,leisinger,lehrman,lefebure,lazard,laycock,laver,launer,lastrapes,lastinger,lasker,larkey,lanser,lanphere,landey,lampton,lamark,kumm,kullman,krzeminski,krasner,koran,koning,kohls,kohen,kobel,kniffen,knick,kneip,knappenberger,klumpp,klausner,kitamura,kisling,kirshner,kinloch,kingman,kimery,kestler,kellen,keleher,keehn,kearley,kasprzak,kampf,kamerer,kalis,kahan,kaestner,kadel,kabel,junge,juckett,joynt,jorstad,jetter,jelley,jefferis,jeansonne,janecek,jaffee,izzard,istre,isherwood,ipock,iannuzzi,hypolite,humfeld,hotz,hosein,honahni,holzworth,holdridge,holdaway,holaday,hodak,hitchman,hippler,hinchey,hillin,hiler,hibdon,hevey,heth,hepfer,henneman,hemsley,hemmings,hemminger,helbert,helberg,heinze,heeren,heber,haver,hauff,haswell,harvison,hartson,harshberger,harryman,harries,hane,hamsher,haggett,hagemeier,haecker,haddon,haberkorn,guttman,guttierrez,guthmiller,guillet,guilbert,gugino,grumbles,griffy,gregerson,grana,goya,goranson,gonsoulin,goettl,goertz,godlewski,glandon,gilsdorf,gillogly,gilkison,giard,giampaolo,gheen,gettings,gesell,gershon,gaumer,gartrell,garside,garrigan,garmany,garlitz,garlington,gamet,furlough,funston,funaro,frix,frasca,francoeur,forshey,foose,flatley,flagler,fils,fillers,fickett,feth,fennelly,fencl,felch,fedrick,febres,fazekas,farnan,fairless,ewan,etsitty,enterline,elsworth,elliff,eleby,eldreth,eidem,edgecomb,edds,ebarb,dworkin,dusenberry,durrance,duropan,durfey,dungy,dundon,dumbleton,dubon,dubberly,droz,drinkwater,dressel,doughtie,doshier,dorrell,dople,doonan,donadio,dollison,doig,ditzler,dishner,discher,dimaio,digman,difalco,devino,devens,derosia,deppen,depaola,deniz,denardo,demos,demay,delgiudice,davi,danielsen,dally,dais,dahmer,cutsforth,cusimano,curington,cumbee,cryan,crusoe,crowden,crete,cressman,crapo,cowens,coupe,councill,coty,cotnoir,correira,copen,consiglio,combes,coffer,cockrill,coad,clogston,clasen,chesnutt,charrier,chadburn,cerniglia,cebula,castruita,castilla,castaldi,casebeer,casagrande,carta,carrales,carnley,cardon,capshaw,capron,cappiello,capito,canney,candela,caminiti,califano,calabria,caiazzo,cahall,buscemi,burtner,burgdorf,burdo,buffaloe,buchwald,brwon,brunke,brummond,brumm,broe,brocious,brocato,briski,brisker,brightwell,bresett,breiner,brazeau,braz,brayman,brandis,bramer,bradeen,boyko,bossi,boshart,bortle,boniello,bomgardner,bolz,bolenbaugh,bohling,bohland,bochenek,blust,bloxham,blowe,blish,blackwater,bjelland,biros,biederman,bickle,bialaszewski,bevil,beumer,bettinger,besse,bernett,bermejo,bement,belfield,beckler,baxendale,batdorf,bastin,bashore,bascombe,bartlebaugh,barsh,ballantine,bahl,badon,autin,astin,askey,ascher,arrigo,arbeiter,antes,angers,amburn,amarante,alvidrez,althaus,allmond,alfieri,aldinger,akerley,akana,aikins,ader,acebedo,accardo,abila,aberle,abele,abboud,zollars,zimmerer,zieman,zerby,zelman,zellars,yoshimura,yonts,yeats,yant,yamanaka,wyland,wuensche,worman,wordlaw,wohl,winslett,winberg,wilmeth,willcutt,wiers,wiemer,wickwire,wichman,whitting,whidbee,westergard,wemmer,wellner,weishaupt,weinert,weedon,waynick,wasielewski,waren,walworth,wallingford,walke,waechter,viviani,vitti,villagrana,vien,vicks,venema,varnes,varnadoe,varden,vanpatten,vanorden,vanderzee,vandenburg,vandehey,valls,vallarta,valderrama,valade,urman,ulery,tusa,tuft,tripoli,trimpe,trickey,tortora,torrens,torchia,toft,tjaden,tison,tindel,thurmon,thode,tardugno,tancredi,taketa,taillon,tagle,sytsma,symes,swindall,swicegood,swartout,sundstrom,sumners,sulton,studstill,stroop,stonerock,stmarie,stlawrence,stemm,steinhauser,steinert,steffensen,stefaniak,starck,stalzer,spidle,spake,sowinski,sosnowski,sorber,somma,soliday,soldner,soja,soderstrom,soder,sockwell,sobus,sloop,sinkfield,simerly,silguero,sigg,siemers,siegmund,shum,sholtis,shkreli,sheikh,shattles,sharlow,shambaugh,shaikh,serrao,serafino,selley,selle,seel,sedberry,secord,schunk,schuch,schor,scholze,schnee,schmieder,schleich,schimpf,scherf,satterthwaite,sasson,sarkisian,sarinana,sanzone,salvas,salone,salido,saiki,sahr,rusher,rusek,ruppel,rubel,rothfuss,rothenberger,rossell,rosenquist,rosebrook,romito,romines,rolan,roker,roehrig,rockhold,rocca,robuck,riss,rinaldo,riggenbach,rezentes,reuther,renolds,rench,remus,remsen,reller,relf,reitzel,reiher,rehder,redeker,ramero,rahaim,radice,quijas,qualey,purgason,prum,proudfoot,prock,probert,printup,primer,primavera,prenatt,pratico,polich,podkowka,podesta,plattner,plasse,plamondon,pittmon,pippenger,pineo,pierpont,petzold,petz,pettiway,petters,petroski,petrik,pesola,pershall,perlmutter,penepent,peevy,pechacek,peaden,pazos,pavia,pascarelli,parm,parillo,parfait,paoletti,palomba,palencia,pagaduan,oxner,overfield,overcast,oullette,ostroff,osei,omarah,olenick,olah,odem,nygren,notaro,northcott,nodine,nilges,neyman,neve,neuendorf,neisler,neault,narciso,naff,muscarella,morrisette,morphew,morein,montville,montufar,montesinos,monterroso,mongold,mojarro,moitoso,mirarchi,mirando,minogue,milici,miga,midyett,michna,meuser,messana,menzie,menz,mendicino,melone,mellish,meller,melle,meints,mechem,mealer,mcwilliam,mcwhite,mcquiggan,mcphillips,mcpartland,mcnellis,mcmackin,mclaughin,mckinny,mckeithan,mcguirk,mcgillivray,mcgarr,mcgahee,mcfaul,mcfadin,mceuen,mccullah,mcconico,mcclaren,mccaul,mccalley,mccalister,mazer,mayson,mayhan,maugeri,mauger,mattix,mattews,maslowski,masek,martir,marsch,marquess,maron,markwell,markow,marinaro,marcinek,mannella,mallen,majeed,mahnke,mahabir,magby,magallan,madere,machnik,lybrand,luque,lundholm,lueders,lucian,lubinski,lowy,loew,lippard,linson,lindblad,lightcap,levitsky,levens,leonardi,lenton,lengyel,leitzel,leicht,leaver,laubscher,lashua,larusso,larrimore,lanterman,lanni,lanasa,lamoureaux,lambros,lamborn,lamberti,lall,lafuente,laferriere,laconte,kyger,kupiec,kunzman,kuehne,kuder,kubat,krogh,kreidler,krawiec,krauth,kratky,kottwitz,korb,kono,kolman,kolesar,koeppel,knapper,klingenberg,kjos,keppel,kennan,keltz,kealoha,kasel,karney,kanne,kamrowski,kagawa,johnosn,jilek,jarvie,jarret,jansky,jacquemin,jacox,jacome,iriarte,ingwersen,imboden,iglesia,huyser,hurston,hursh,huntoon,hudman,hoying,horsman,horrigan,hornbaker,horiuchi,hopewell,hommel,homeyer,holzinger,holmer,hipsher,hinchman,hilts,higginbottom,hieb,heyne,hessling,hesler,hertlein,herford,heras,henricksen,hennemann,henery,hendershott,hemstreet,heiney,heckert,heatley,hazell,hazan,hayashida,hausler,hartsoe,harth,harriott,harriger,harpin,hardisty,hardge,hannaman,hannahs,hamp,hammersmith,hamiton,halsell,halderman,hagge,habel,gusler,gushiken,gurr,gummer,gullick,grunden,grosch,greenburg,greb,greaver,gratz,grajales,gourlay,gotto,gorley,goodpasture,godard,glorioso,gloor,glascock,gizzi,giroir,gibeault,gauldin,gauer,gartin,garrels,gamber,gallogly,gade,fusaro,fripp,freyer,freiberg,franzoni,fragale,foston,forti,forness,folts,followell,foard,flom,flett,fleitas,flamm,fino,finnen,finchum,filippelli,fickel,feucht,feiler,feenstra,feagins,faver,faulkenberry,farabaugh,fandel,faler,faivre,fairey,facey,exner,evensen,erion,erben,epting,epping,ephraim,engberg,elsen,ellingwood,eisenmann,eichman,ehle,edsall,durall,dupler,dunker,dumlao,duford,duffie,dudding,dries,doung,dorantes,donahoo,domenick,dollins,dobles,dipiazza,dimeo,diehm,dicicco,devenport,desormeaux,derrow,depaolo,demas,delpriore,delosantos,degreenia,degenhardt,defrancesco,defenbaugh,deets,debonis,deary,dazey,dargie,dambrosia,dalal,dagen,cuen,crupi,crossan,crichlow,creque,coutts,counce,coram,constante,connon,collelo,coit,cocklin,coblentz,cobey,coard,clutts,clingan,clampitt,claeys,ciulla,cimini,ciampa,christon,choat,chiou,chenail,chavous,catto,catalfamo,casterline,cassinelli,caspers,carroway,carlen,carithers,cappel,calo,callow,cagley,cafferty,byun,byam,buttner,buth,burtenshaw,burget,burfield,buresh,bunt,bultman,bulow,buchta,buchmann,brunett,bruemmer,brueggeman,britto,briney,brimhall,bribiesca,bresler,brazan,brashier,brar,brandstetter,boze,boonstra,bluitt,blomgren,blattner,blasi,bladen,bitterman,bilby,bierce,biello,bettes,bertone,berrey,bernat,berberich,benshoof,bendickson,bellefeuille,bednarski,beddingfield,beckerman,beaston,bavaro,batalla,basye,baskins,bartolotta,bartkowski,barranco,barkett,banaszak,bame,bamberger,balsley,ballas,balicki,badura,aymond,aylor,aylesworth,axley,axelrod,aubert,armond,ariza,apicella,anstine,ankrom,angevine,andreotti,alto,alspaugh,alpaugh,almada,allinder,alequin,aguillard,agron,agena,afanador,ackerley,abrev,abdalla,aaronson,zynda,zucco,zipp,zetina,zenz,zelinski,youngren,yochum,yearsley,yankey,woodfork,wohlwend,woelfel,wiste,wismer,winzer,winker,wilkison,wigger,wierenga,whipps,westray,wesch,weld,weible,wedell,weddell,wawrzyniak,wasko,washinton,wantz,walts,wallander,wain,wahlen,wachowiak,voshell,viteri,vire,villafuerte,vieyra,viau,vescio,verrier,verhey,vause,vandermolen,vanderhorst,valois,valla,valcourt,vacek,uzzle,umland,ulman,ulland,turvey,tuley,trembath,trabert,towsend,totman,toews,tisch,tisby,tierce,thivierge,tenenbaum,teagle,tacy,tabler,szewczyk,swearngin,suire,sturrock,stubbe,stronach,stoute,stoudemire,stoneberg,sterba,stejskal,steier,stehr,steckel,stearman,steakley,stanforth,stancill,srour,sprowl,spevak,sokoloff,soderman,snover,sleeman,slaubaugh,sitzman,simes,siegal,sidoti,sidler,sider,sidener,siddiqi,shireman,shima,sheroan,shadduck,seyal,sentell,sennett,senko,seligman,seipel,seekins,seabaugh,scouten,schweinsberg,schwartzberg,schurr,schult,schrick,schoening,schmitmeyer,schlicher,schlager,schack,schaar,scavuzzo,scarpa,sassano,santigo,sandavol,sampsel,samms,samet,salzano,salyards,salva,saidi,sabir,saam,runions,rundquist,rousselle,rotunno,rosch,romney,rohner,roff,rockhill,rocamora,ringle,riggie,ricklefs,rexroat,reves,reuss,repka,rentfro,reineke,recore,recalde,rease,rawling,ravencraft,ravelo,rappa,randol,ramsier,ramerez,rahimi,rahim,radney,racey,raborn,rabalais,quebedeaux,pujol,puchalski,prothro,proffit,prigge,prideaux,prevo,portales,porco,popovic,popek,popejoy,pompei,plude,platner,pizzuto,pizer,pistone,piller,pierri,piehl,pickert,piasecki,phong,philipp,peugh,pesqueira,perrett,perfetti,percell,penhollow,pelto,pellett,pavlak,paulo,pastorius,parsell,parrales,pareja,parcell,pappan,pajak,owusu,ovitt,orrick,oniell,olliff,olberding,oesterling,odwyer,ocegueda,obermiller,nylander,nulph,nottage,northam,norgard,nodal,niel,nicols,newhard,nellum,neira,nazzaro,nassif,narducci,nalbandian,musil,murga,muraoka,mumper,mulroy,mountjoy,mossey,moreton,morea,montoro,montesdeoca,montealegre,montanye,montandon,moisan,mohl,modeste,mitra,minson,minjarez,milbourne,michaelsen,metheney,mestre,mescher,mervis,mennenga,melgarejo,meisinger,meininger,mcwaters,mckern,mckendree,mchargue,mcglothlen,mcgibbon,mcgavock,mcduffee,mcclurkin,mccausland,mccardell,mccambridge,mazzoni,mayen,maxton,mawson,mauffray,mattinson,mattila,matsunaga,mascia,marse,marotz,marois,markin,markee,marcinko,marcin,manville,mantyla,manser,manry,manderscheid,mallari,malecha,malcomb,majerus,macinnis,mabey,lyford,luth,lupercio,luhman,luedke,lovick,lossing,lookabaugh,longway,loisel,logiudice,loffredo,lobaugh,lizaola,livers,littlepage,linnen,limmer,liebsch,liebman,leyden,levitan,levison,levier,leven,levalley,lettinga,lessley,lessig,lepine,leight,leick,leggio,leffingwell,leffert,lefevers,ledlow,leaton,leander,leaming,lazos,laviolette,lauffer,latz,lasorsa,lasch,larin,laporta,lanter,langstaff,landi,lamica,lambson,lambe,lamarca,laman,lamagna,lajeunesse,lafontant,lafler,labrum,laakso,kush,kuether,kuchar,kruk,kroner,kroh,kridler,kreuzer,kovats,koprowski,kohout,knicely,knell,klutts,kindrick,kiddy,khanna,ketcher,kerschner,kerfien,kensey,kenley,kenan,kemplin,kellerhouse,keesling,keas,kaplin,kanady,kampen,jutras,jungers,jeschke,janowski,janas,iskra,imperato,ikerd,igoe,hyneman,hynek,husain,hurrell,hultquist,hullett,hulen,huberty,hoyte,hossain,hornstein,hori,hopton,holms,hollmann,holdman,holdeman,holben,hoffert,himel,hillsman,herdt,hellyer,heister,heimer,heidecker,hedgpeth,hedgepath,hebel,heatwole,hayer,hausner,haskew,haselden,hartranft,harsch,harres,harps,hardimon,halm,hallee,hallahan,hackley,hackenberg,hachey,haapala,guynes,gunnerson,gunby,gulotta,gudger,groman,grignon,griebel,gregori,greenan,grauer,gourd,gorin,gorgone,gooslin,goold,goltz,goldberger,glotfelty,glassford,gladwin,giuffre,gilpatrick,gerdts,geisel,gayler,gaunce,gaulding,gateley,gassman,garson,garron,garand,gangestad,gallow,galbo,gabrielli,fullington,fucci,frum,frieden,friberg,frasco,francese,fowle,foucher,fothergill,foraker,fonder,foisy,fogal,flurry,flenniken,fitzhenry,fishbein,finton,filmore,filice,feola,felberbaum,fausnaught,fasciano,farquharson,faires,estridge,essman,enriques,emmick,ekker,ekdahl,eisman,eggleton,eddinger,eakle,eagar,durio,dunwoody,duhaime,duenes,duden,dudas,dresher,dresel,doutt,donlan,donathan,domke,dobrowolski,dingee,dimmitt,dimery,dilullo,deveaux,devalle,desper,desnoyers,desautels,derouin,derbyshire,denmon,demski,delucca,delpino,delmont,deller,dejulio,deibler,dehne,deharo,degner,defore,deerman,decuir,deckman,deasy,dease,deaner,dawdy,daughdrill,darrigo,darity,dalbey,dagenhart,daffron,curro,curnutte,curatolo,cruikshank,crosswell,croslin,croney,crofton,criado,crecelius,coscia,conniff,commodore,coltharp,colonna,collyer,collington,cobbley,coache,clonts,cloe,cliett,clemans,chrisp,chiarini,cheatam,cheadle,chand,chadd,cervera,cerulli,cerezo,cedano,cayetano,cawthorne,cavalieri,cattaneo,cartlidge,carrithers,carreira,carranco,cargle,candanoza,camburn,calender,calderin,calcagno,cahn,cadden,byham,buttry,burry,burruel,burkitt,burgio,burgener,buescher,buckalew,brymer,brumett,brugnoli,brugman,brosnahan,bronder,broeckel,broderson,brisbon,brinsfield,brinks,bresee,bregman,branner,brambila,brailsford,bouska,boster,borucki,bortner,boroughs,borgeson,bonier,bomba,bolender,boesch,boeke,bloyd,bley,binger,bilbro,biery,bichrest,bezio,bevel,berrett,bermeo,bergdoll,bercier,benzel,bentler,belnap,bellini,beitz,behrend,bednarczyk,bearse,bartolini,bartol,barretta,barbero,barbaro,banvelos,bankes,ballengee,baldon,ausmus,atilano,atienza,aschenbrenner,arora,armstong,aquilino,appleberry,applebee,apolinar,antos,andrepont,ancona,amesquita,alvino,altschuler,allin,alire,ainslie,agular,aeschliman,accetta,abdulla,abbe,zwart,zufelt,zirbel,zingaro,zilnicki,zenteno,zent,zemke,zayac,zarrella,yoshimoto,yearout,womer,woltman,wolin,wolery,woldt,witts,wittner,witherow,winward,winrow,wiemann,wichmann,whitwell,whitelaw,wheeless,whalley,wessner,wenzl,wene,weatherbee,waye,wattles,wanke,walkes,waldeck,vonruden,voisine,vogus,vittetoe,villalva,villacis,venturini,venturi,venson,vanloan,vanhooser,vanduzer,vandever,vanderwal,vanderheyden,vanbeek,vanbebber,vallance,vales,vahle,urbain,upshur,umfleet,tsuji,trybus,triolo,trimarchi,trezza,trenholm,tovey,tourigny,torry,torrain,torgeson,tomey,tischler,tinkler,tinder,ticknor,tibbles,tibbals,throneberry,thormahlen,thibert,thibeaux,theurer,templet,tegeler,tavernier,taubman,tamashiro,tallon,tallarico,taboada,sypher,sybert,swyers,switalski,swedberg,suther,surprenant,sullen,sulik,sugden,suder,suchan,strube,stroope,strittmatter,streett,straughn,strasburg,stjacques,stimage,stimac,stifter,stgelais,steinhart,stehlik,steffenson,steenbergen,stanbery,stallone,spraggs,spoto,spilman,speno,spanbauer,spalla,spagnolo,soliman,solan,sobolik,snelgrove,snedden,smale,sliter,slankard,sircy,shutter,shurtliff,shur,shirkey,shewmake,shams,shadley,shaddox,sgro,serfass,seppala,segawa,segalla,seaberry,scruton,scism,schwein,schwartzman,schwantes,schomer,schoenborn,schlottmann,schissler,scheurer,schepis,scheidegger,saunier,sauders,sassman,sannicolas,sanderfur,salser,sagar,saffer,saeed,sadberry,saban,ryce,rybak,rumore,rummell,rudasill,rozman,rota,rossin,rosell,rosel,romberg,rojero,rochin,robideau,robarge,roath,risko,ringel,ringdahl,riera,riemann,ribas,revard,renegar,reinwald,rehman,redel,raysor,rathke,rapozo,rampton,ramaker,rakow,raia,radin,raco,rackham,racca,racanelli,rabun,quaranta,purves,pundt,protsman,prezioso,presutti,presgraves,poydras,portnoy,portalatin,pontes,poehler,poblete,poat,plumadore,pleiman,pizana,piscopo,piraino,pinelli,pillai,picken,picha,piccoli,philen,petteway,petros,peskin,perugini,perrella,pernice,peper,pensinger,pembleton,passman,parrent,panetta,pallas,palka,pais,paglia,padmore,ottesen,oser,ortmann,ormand,oriol,orick,oler,okafor,ohair,obert,oberholtzer,nowland,nosek,nordeen,nolf,nogle,nobriga,nicley,niccum,newingham,neumeister,neugebauer,netherland,nerney,neiss,neis,neider,neeld,nailor,mustain,mussman,musante,murton,murden,munyon,muldrew,motton,moscoso,moschella,moroz,morelos,morace,moone,montesano,montemurro,montas,montalbo,molander,mleczko,miyake,mitschke,minger,minelli,minear,millener,mihelich,miedema,miah,metzer,mery,merrigan,merck,mennella,membreno,melecio,melder,mehling,mehler,medcalf,meche,mealing,mcqueeney,mcphaul,mcmickle,mcmeen,mcmains,mclees,mcgowin,mcfarlain,mcdivitt,mccotter,mcconn,mccaster,mcbay,mcbath,mayoral,mayeux,matsuo,masur,massman,marzette,martensen,marlett,markgraf,marcinkowski,marchbanks,mansir,mandez,mancil,malagon,magnani,madonia,madill,madia,mackiewicz,macgillivray,macdowell,mabee,lundblad,lovvorn,lovings,loreto,linz,linnell,linebaugh,lindstedt,lindbloom,limberg,liebig,lickteig,lichtenberg,licari,lewison,levario,levar,lepper,lenzen,lenderman,lemarr,leinen,leider,legrande,lefort,lebleu,leask,leacock,lazano,lawalin,laven,laplaca,lant,langsam,langone,landress,landen,lande,lamorte,lairsey,laidlaw,laffin,lackner,lacaze,labuda,labree,labella,labar,kyer,kuyper,kulinski,kulig,kuhnert,kuchera,kubicek,kruckeberg,kruchten,krider,kotch,kornfeld,koren,koogler,koll,kole,kohnke,kohli,kofoed,koelling,kluth,klump,klopfenstein,klippel,klinge,klett,klemp,kleis,klann,kitzman,kinnan,kingsberry,kilmon,killpack,kilbane,kijowski,kies,kierstead,kettering,kesselman,kennington,keniston,kehrer,kearl,keala,kassa,kasahara,kantz,kalin,kaina,jupin,juntunen,juares,joynes,jovel,joos,jiggetts,jervis,jerabek,jennison,jaso,janz,izatt,ishibashi,iannotti,hymas,huneke,hulet,hougen,horvat,horstmann,hopple,holtkamp,holsten,hohenstein,hoefle,hoback,hiney,hiemstra,herwig,herter,herriott,hermsen,herdman,herder,herbig,helling,helbig,heitkamp,heinrichs,heinecke,heileman,heffley,heavrin,heaston,haymaker,hauenstein,hartlage,harig,hardenbrook,hankin,hamiter,hagens,hagel,grizzell,griest,griese,grennan,graden,gosse,gorder,goldin,goatley,gillespi,gilbride,giel,ghoston,gershman,geisinger,gehringer,gedeon,gebert,gaxiola,gawronski,gathright,gatchell,gargiulo,garg,galang,gadison,fyock,furniss,furby,funnell,frizell,frenkel,freeburg,frankhouser,franchi,foulger,formby,forkey,fonte,folson,follette,flavell,finegan,filippini,ferencz,ference,fennessey,feggins,feehan,fazzino,fazenbaker,faunce,farraj,farnell,farler,farabee,falkowski,facio,etzler,ethington,esterline,esper,esker,erxleben,engh,emling,elridge,ellenwood,elfrink,ekhoff,eisert,eifert,eichenlaub,egnor,eggebrecht,edlin,edberg,eble,eber,easler,duwe,dutta,dutremble,dusseault,durney,dunworth,dumire,dukeman,dufner,duey,duble,dreese,dozal,douville,ditmore,distin,dimuzio,dildine,dieterich,dieckman,didonna,dhillon,dezern,devereux,devall,detty,detamore,derksen,deremer,deras,denslow,deno,denicola,denbow,demma,demille,delira,delawder,delara,delahanty,dejonge,deininger,dedios,dederick,decelles,debus,debruyn,deborde,deak,dauenhauer,darsey,dansie,dalman,dakin,dagley,czaja,cybart,cutchin,currington,curbelo,croucher,crinklaw,cremin,cratty,cranfield,crafford,cowher,couvillion,couturier,corter,coombes,contos,consolini,connaughton,conely,collom,cockett,clepper,cleavenger,claro,clarkin,ciriaco,ciesla,cichon,ciancio,cianci,chynoweth,chrzanowski,christion,cholewa,chipley,chilcott,cheyne,cheslock,chenevert,charlot,chagolla,chabolla,cesena,cerutti,cava,caul,cassone,cassin,cassese,casaus,casali,cartledge,cardamone,carcia,carbonneau,carboni,carabello,capozzoli,capella,cannata,campoverde,campeau,cambre,camberos,calvery,calnan,calmes,calley,callery,calise,cacciotti,cacciatore,butterbaugh,burgo,burgamy,burell,bunde,bumbalough,buel,buechner,buchannon,brunn,brost,broadfoot,brittan,brevard,breda,brazel,brayboy,brasier,boyea,boxx,boso,bosio,boruff,borda,bongiovanni,bolerjack,boedeker,blye,blumstein,blumenfeld,blinn,bleakley,blatter,blan,bjornson,bisignano,billick,bieniek,bhatti,bevacqua,berra,berenbaum,bensinger,bennefield,belvins,belson,bellin,beighley,beecroft,beaudreau,baynard,bautch,bausch,basch,bartleson,barthelemy,barak,balzano,balistreri,bailer,bagnall,bagg,auston,augustyn,aslinger,ashalintubbi,arjona,arebalo,appelbaum,angert,angelucci,andry,andersson,amorim,amavisca,alward,alvelo,alvear,alumbaugh,alsobrook,allgeier,allende,aldrete,akiyama,ahlquist,adolphson,addario,acoff,abelson,abasta,zulauf,zirkind,zeoli,zemlicka,zawislak,zappia,zanella,yelvington,yeatman,yanni,wragg,wissing,wischmeier,wirta,wiren,wilmouth,williard,willert,willaert,wildt,whelpley,weingart,weidenbach,weidemann,weatherman,weakland,watwood,wattley,waterson,wambach,walzer,waldow,waag,vorpahl,volkmann,vitolo,visitacion,vincelette,viggiano,vieth,vidana,vert,verges,verdejo,venzon,velardi,varian,vargus,vandermeulen,vandam,vanasse,vanaman,utzinger,uriostegui,uplinger,twiss,tumlinson,tschanz,trunnell,troung,troublefield,trojacek,treloar,tranmer,touchton,torsiello,torina,tootle,toki,toepfer,tippie,thronson,thomes,tezeno,texada,testani,tessmer,terrel,terlizzi,tempel,temblador,tayler,tawil,tasch,tames,talor,talerico,swinderman,sweetland,swager,sulser,sullens,subia,sturgell,stumpff,stufflebeam,stucki,strohmeyer,strebel,straughan,strackbein,stobaugh,stetz,stelter,steinmann,steinfeld,stecher,stanwood,stanislawski,stander,speziale,soppe,soni,sobotka,smuin,slee,skerrett,sjoberg,sittig,simonelli,simo,silverio,silveria,silsby,sillman,sienkiewicz,shomo,shoff,shoener,shiba,sherfey,shehane,sexson,setton,sergi,selvy,seiders,seegmiller,sebree,seabury,scroggin,sconyers,schwalb,schurg,schulenberg,schuld,schrage,schow,schon,schnur,schneller,schmidtke,schlatter,schieffer,schenkel,scheeler,schauwecker,schartz,schacherer,scafe,sayegh,savidge,saur,sarles,sarkissian,sarkis,sarcone,sagucio,saffell,saenger,sacher,rylee,ruvolo,ruston,ruple,rulison,ruge,ruffo,ruehl,rueckert,rudman,rudie,rubert,rozeboom,roysden,roylance,rothchild,rosse,rosecrans,rodi,rockmore,robnett,roberti,rivett,ritzel,rierson,ricotta,ricken,rezac,rendell,reitman,reindl,reeb,reddic,reddell,rebuck,reali,raso,ramthun,ramsden,rameau,ralphs,rago,racz,quinteros,quinter,quinley,quiggle,purvines,purinton,purdum,pummill,puglia,puett,ptacek,przybyla,prowse,prestwich,pracht,poutre,poucher,portera,polinsky,poage,platts,pineau,pinckard,pilson,pilling,pilkins,pili,pikes,pigram,pietila,pickron,philippi,philhower,pflueger,pfalzgraf,pettibone,pett,petrosino,persing,perrino,perotti,periera,peri,peredo,peralto,pennywell,pennel,pellegren,pella,pedroso,paulos,paulding,pates,pasek,paramo,paolino,panganiban,paneto,paluch,ozaki,ownbey,overfelt,outman,opper,onstad,oland,okuda,oertel,oelke,normandeau,nordby,nordahl,noecker,noblin,niswonger,nishioka,nett,negley,nedeau,natera,nachman,naas,musich,mungin,mourer,mounsey,mottola,mothershed,moskal,mosbey,morini,moreles,montaluo,moneypenny,monda,moench,moates,moad,missildine,misiewicz,mirabella,minott,mincks,milum,milani,mikelson,mestayer,mertes,merrihew,merlos,meritt,melnyk,medlen,meder,mcvea,mcquarrie,mcquain,mclucas,mclester,mckitrick,mckennon,mcinnes,mcgrory,mcgranahan,mcglamery,mcgivney,mcgilvray,mccuiston,mccuin,mccrystal,mccolley,mcclerkin,mcclenon,mccamey,mcaninch,mazariegos,maynez,mattioli,mastronardi,masone,marzett,marsland,margulies,margolin,malatesta,mainer,maietta,magrath,maese,madkins,madeiros,madamba,mackson,maben,lytch,lundgreen,lumb,lukach,luick,luetkemeyer,luechtefeld,ludy,ludden,luckow,lubinsky,lowes,lorenson,loran,lopinto,looby,lones,livsey,liskey,lisby,lintner,lindow,lindblom,liming,liechty,leth,lesniewski,lenig,lemonds,leisy,lehrer,lehnen,lehmkuhl,leeth,leeks,lechler,lebsock,lavere,lautenschlage,laughridge,lauderback,laudenslager,lassonde,laroque,laramee,laracuente,lapeyrouse,lampron,lamers,laino,lague,lafromboise,lafata,lacount,lachowicz,kysar,kwiecien,kuffel,kueter,kronenberg,kristensen,kristek,krings,kriesel,krey,krebbs,kreamer,krabbe,kossman,kosakowski,kosak,kopacz,konkol,koepsell,koening,koen,knerr,knapik,kluttz,klocke,klenk,klemme,klapp,kitchell,kita,kissane,kirkbride,kirchhoff,kinter,kinsel,kingsland,kimmer,kimler,killoran,kieser,khalsa,khalaf,kettel,kerekes,keplin,kentner,kennebrew,kenison,kellough,keatts,keasey,kauppi,katon,kanner,kampa,kall,kaczorowski,kaczmarski,juarbe,jordison,jobst,jezierski,jeanbart,jarquin,jagodzinski,ishak,isett,infantino,imburgia,illingworth,hysmith,hynson,hydrick,hurla,hunton,hunnell,humbertson,housand,hottle,hosch,hoos,honn,hohlt,hodel,hochmuth,hixenbaugh,hislop,hisaw,hintzen,hilgendorf,hilchey,higgens,hersman,herrara,hendrixson,hendriks,hemond,hemmingway,heminger,helgren,heisey,heilmann,hehn,hegna,heffern,hawrylak,haverty,hauger,haslem,harnett,harb,happ,hanzlik,hanway,hanby,hanan,hamric,hammaker,halas,hagenbuch,habeck,gwozdz,gunia,guadarrama,grubaugh,grivas,griffieth,grieb,grewell,gregorich,grazier,graeber,graciano,gowens,goodpaster,gondek,gohr,goffney,godbee,gitlin,gisler,gillyard,gillooly,gilchrest,gilbo,gierlach,giebler,giang,geske,gervasio,gertner,gehling,geeter,gaus,gattison,gatica,gathings,gath,gassner,gassert,garabedian,gamon,gameros,galban,gabourel,gaal,fuoco,fullenwider,fudala,friscia,franceschini,foronda,fontanilla,florey,flore,flegle,flecha,fisler,fischbach,fiorita,figura,figgins,fichera,ferra,fawley,fawbush,fausett,farnes,farago,fairclough,fahie,fabiani,evanson,eutsey,eshbaugh,ertle,eppley,englehardt,engelhard,emswiler,elling,elderkin,eland,efaw,edstrom,edgemon,ecton,echeverri,ebright,earheart,dynes,dygert,dyches,dulmage,duhn,duhamel,dubrey,dubray,dubbs,drey,drewery,dreier,dorval,dorough,dorais,donlin,donatelli,dohm,doetsch,dobek,disbrow,dinardi,dillahunty,dillahunt,diers,dier,diekmann,diangelo,deskin,deschaine,depaoli,denner,demyan,demont,demaray,delillo,deleeuw,deibel,decato,deblasio,debartolo,daubenspeck,darner,dardon,danziger,danials,damewood,dalpiaz,dallman,dallaire,cunniffe,cumpston,cumbo,cubero,cruzan,cronkhite,critelli,crimi,creegan,crean,craycraft,cranfill,coyt,courchesne,coufal,corradino,corprew,colville,cocco,coby,clinch,clickner,clavette,claggett,cirigliano,ciesielski,christain,chesbro,chavera,chard,casteneda,castanedo,casseus,caruana,carnero,cappelli,capellan,canedy,cancro,camilleri,calero,cada,burghart,burbidge,bulfer,buis,budniewski,bruney,brugh,brossard,brodmerkel,brockmann,brigmond,briere,bremmer,breck,breau,brautigam,brasch,brandenberger,bragan,bozell,bowsher,bosh,borgia,borey,boomhower,bonneville,bonam,bolland,boise,boeve,boettger,boersma,boateng,bliven,blazier,blahnik,bjornstad,bitton,biss,birkett,billingsly,biagioni,bettle,bertucci,bertolino,bermea,bergner,berber,bensley,bendixen,beltrami,bellone,belland,behringer,begum,bayona,batiz,bassin,baskette,bartolomeo,bartolo,bartholow,barkan,barish,barett,bardo,bamburg,ballerini,balla,balis,bakley,bailon,bachicha,babiarz,ayars,axton,axel,awong,awalt,auslander,ausherman,aumick,atha,atchinson,aslett,askren,arrowsmith,arras,arnhold,armagost,arey,arcos,archibeque,antunes,antilla,andras,amyx,amison,amero,alzate,alper,aller,alioto,aigner,agtarap,agbayani,adami,achorn,aceuedo,acedo,abundis,aber,abee,zuccaro,ziglar,zier,ziebell,zieba,zamzow,zahl,yurko,yurick,yonkers,yerian,yeaman,yarman,yann,yahn,yadon,yadao,woodbridge,wolske,wollenberg,wojtczak,wnuk,witherite,winther,winick,widell,wickens,whichard,wheelis,wesely,wentzell,wenthold,wemple,weisenburger,wehling,weger,weaks,wassink,walquist,wadman,wacaster,waage,voliva,vlcek,villafana,vigliotti,viger,viernes,viands,veselka,versteeg,vero,verhoeven,vendetti,velardo,vatter,vasconcellos,varn,vanwagner,vanvoorhis,vanhecke,vanduyn,vandervoort,vanderslice,valone,vallier,vails,uvalle,ursua,urenda,uphoff,tustin,turton,turnbough,turck,tullio,tuch,truehart,tropea,troester,trippe,tricarico,trevarthen,trembly,trabue,traber,tosi,toal,tinley,tingler,timoteo,tiffin,ticer,thorman,therriault,theel,tessman,tekulve,tejera,tebbs,tavernia,tarpey,tallmadge,takemoto,szot,sylvest,swindoll,swearinger,swantek,swaner,swainston,susi,surrette,sullenger,sudderth,suddarth,suckow,strege,strassburg,stoval,stotz,stoneham,stilley,stille,stierwalt,stfleur,steuck,stermer,stclaire,stano,staker,stahler,stablein,srinivasan,squillace,sprvill,sproull,sprau,sporer,spore,spittler,speelman,sparr,sparkes,spang,spagnuolo,sosinski,sorto,sorkin,sondag,sollers,socia,snarr,smrekar,smolka,slyter,slovinsky,sliwa,slavik,slatter,skiver,skeem,skala,sitzes,sitsler,sitler,sinko,simser,siegler,sideris,shrewsberry,shoopman,shoaff,shindler,shimmin,shill,shenkel,shemwell,shehorn,severa,semones,selsor,sekulski,segui,sechrest,schwer,schwebach,schur,schmiesing,schlick,schlender,schebler,schear,schapiro,sauro,saunder,sauage,satterly,saraiva,saracino,saperstein,sanmartin,sanluis,sandt,sandrock,sammet,sama,salk,sakata,saini,sackrider,russum,russi,russaw,rozzell,roza,rowlette,rothberg,rossano,rosebrock,romanski,romanik,romani,roiger,roig,roehr,rodenberger,rodela,rochford,ristow,rispoli,rigo,riesgo,riebel,ribera,ribaudo,reys,resendes,repine,reisdorf,reisch,rebman,rasmus,raske,ranum,rames,rambin,raman,rajewski,raffield,rady,radich,raatz,quinnie,pyper,puthoff,prow,proehl,pribyl,pretti,prete,presby,poyer,powelson,porteous,poquette,pooser,pollan,ploss,plewa,placide,pion,pinnick,pinales,pillot,pille,pilato,piggee,pietrowski,piermarini,pickford,piccard,phenix,pevey,petrowski,petrillose,pesek,perrotti,peppler,peppard,penfold,pellitier,pelland,pehowic,pedretti,paules,passero,pasha,panza,pallante,palau,pakele,pacetti,paavola,overy,overson,outler,osegueda,oplinger,oldenkamp,ohern,oetting,odums,nowlen,nowack,nordlund,noblett,nobbe,nierman,nichelson,niblock,newbrough,nemetz,needleman,navin,nastasi,naslund,naramore,nakken,nakanishi,najarro,mushrush,muma,mulero,morganfield,moreman,morain,moquin,monterrosa,monsivais,monroig,monje,monfort,moffa,moeckel,mobbs,misiak,mires,mirelez,mineo,mineau,milnes,mikeska,michelin,michalowski,meszaros,messineo,meshell,merten,meola,menton,mends,mende,memmott,melius,mehan,mcnickle,mcmorran,mclennon,mcleish,mclaine,mckendry,mckell,mckeighan,mcisaac,mcie,mcguinn,mcgillis,mcfatridge,mcfarling,mcelravy,mcdonalds,mcculla,mcconnaughy,mcconnaughey,mcchriston,mcbeath,mayr,matyas,matthiesen,matsuura,matinez,mathys,matarazzo,masker,masden,mascio,martis,marrinan,marinucci,margerum,marengo,manthe,mansker,manoogian,mankey,manigo,manier,mangini,maltese,malsam,mallo,maliszewski,mainolfi,maharaj,maggart,magar,maffett,macmaster,macky,macdonnell,lyvers,luzzi,lutman,lovan,lonzo,longerbeam,lofthouse,loethen,lodi,llorens,lizama,litscher,lisowski,lipski,lipsett,lipkin,linzey,lineman,limerick,limas,lige,lierman,liebold,liberti,leverton,levene,lesueur,lenser,lenker,legnon,lefrancois,ledwell,lavecchia,laurich,lauricella,lannigan,landor,lamprecht,lamountain,lamore,lammert,lamboy,lamarque,lamacchia,lalley,lagace,lacorte,lacomb,kyllonen,kyker,kuschel,kupfer,kunde,kucinski,kubacki,kroenke,krech,koziel,kovacich,kothari,koth,kotek,kostelnik,kosloski,knoles,knabe,kmiecik,klingman,kliethermes,kleffman,klees,klaiber,kittell,kissling,kisinger,kintner,kinoshita,kiener,khouri,kerman,kelii,keirn,keezer,kaup,kathan,kaser,karlsen,kapur,kandoll,kammel,kahele,justesen,jonason,johnsrud,joerling,jochim,jespersen,jeong,jenness,jedlicka,jakob,isaman,inghram,ingenito,iadarola,hynd,huxtable,huwe,hurless,humpal,hughston,hughart,huggett,hugar,huether,howdyshell,houtchens,houseworth,hoskie,holshouser,holmen,holloran,hohler,hoefler,hodsdon,hochman,hjort,hippert,hippe,hinzman,hillock,hilden,heyn,heyden,heyd,hergert,henrikson,henningsen,hendel,helget,helf,helbing,heintzman,heggie,hege,hecox,heatherington,heare,haxton,haverstock,haverly,hatler,haselton,hase,hartzfeld,harten,harken,hargrow,haran,hanton,hammar,hamamoto,halper,halko,hackathorn,haberle,haake,gunnoe,gunkel,gulyas,guiney,guilbeau,guider,guerrant,gudgel,guarisco,grossen,grossberg,gropp,groome,grobe,gremminger,greenley,grauberger,grabenstein,gowers,gostomski,gosier,goodenow,gonzoles,goliday,goettle,goens,goates,glymph,glavin,glassco,gladfelter,glackin,githens,girgis,gimpel,gilbreth,gilbeau,giffen,giannotti,gholar,gervasi,gertsch,gernatt,gephardt,genco,gehr,geddis,gase,garrott,garrette,gapinski,ganter,ganser,gangi,gangemi,gallina,galdi,gailes,gaetano,gadomski,gaccione,fuschetto,furtick,furfaro,fullman,frutos,fruchter,frogge,freytag,freudenthal,fregoe,franzone,frankum,francia,franceschi,forys,forero,folkers,flug,flitter,flemons,fitzer,firpo,finizio,filiault,figg,fichtner,fetterolf,ferringer,feil,fayne,farro,faddis,ezzo,ezelle,eynon,evitt,eutsler,euell,escovedo,erne,eriksson,enriguez,empson,elkington,eisenmenger,eidt,eichenberger,ehrmann,ediger,earlywine,eacret,duzan,dunnington,ducasse,dubiel,drovin,drager,drage,donham,donat,dolinger,dokken,doepke,dodwell,docherty,distasio,disandro,diniz,digangi,didion,dezzutti,detmer,deshon,derrigo,dentler,demoura,demeter,demeritt,demayo,demark,demario,delzell,delnero,delgrosso,dejarnett,debernardi,dearmas,dashnaw,daris,danks,danker,dangler,daignault,dafoe,dace,curet,cumberledge,culkin,crowner,crocket,crawshaw,craun,cranshaw,cragle,courser,costella,cornforth,corkill,coopersmith,conzemius,connett,connely,condict,condello,comley,cohoon,coday,clugston,clowney,clippard,clinkenbeard,clines,clelland,clapham,clancey,clabough,cichy,cicalese,chua,chittick,chisom,chisley,chinchilla,cheramie,cerritos,cercone,cena,cawood,cavness,catanzarite,casada,carvell,carmicheal,carll,cardozo,caplin,candia,canby,cammon,callister,calligan,calkin,caillouet,buzzelli,bute,bustillo,bursey,burgeson,bupp,bulson,buist,buffey,buczkowski,buckbee,bucio,brueckner,broz,brookhart,brong,brockmeyer,broberg,brittenham,brisbois,bridgmon,breyer,brede,breakfield,breakey,brauner,branigan,brandewie,branche,brager,brader,bovell,bouthot,bostock,bosma,boseman,boschee,borthwick,borneman,borer,borek,boomershine,boni,bommarito,bolman,boleware,boisse,boehlke,bodle,blash,blasco,blakesley,blacklock,blackley,bittick,birks,birdin,bircher,bilbao,bick,biby,bertoni,bertino,bertini,berson,bern,berkebile,bergstresser,benne,benevento,belzer,beltre,bellomo,bellerose,beilke,begeman,bebee,beazer,beaven,beamish,baymon,baston,bastidas,basom,basey,bartles,baroni,barocio,barnet,barclift,banville,balthazor,balleza,balkcom,baires,bailie,baik,baggott,bagen,bachner,babington,babel,asmar,arvelo,artega,arrendondo,arreaga,arrambide,arquette,aronoff,arico,argentieri,arevalos,archbold,apuzzo,antczak,ankeny,angelle,angelini,anfinson,amer,amarillas,altier,altenburg,alspach,alosa,allsbrook,alexopoulos,aleem,aldred,albertsen,akerson,agler,adley,addams,acoba,achille,abplanalp,abella,abare,zwolinski,zollicoffer,zins,ziff,zenner,zender,zelnick,zelenka,zeches,zaucha,zauala,zangari,zagorski,youtsey,yasso,yarde,yarbough,woolever,woodsmall,woodfolk,wobig,wixson,wittwer,wirtanen,winson,wingerd,wilkening,wilhelms,wierzbicki,wiechman,weyrick,wessell,wenrick,wenning,weltz,weinrich,weiand,wehunt,wareing,walth,waibel,wahlquist,vona,voelkel,vitek,vinsant,vincente,vilar,viel,vicars,vermette,verma,venner,veazie,vayda,vashaw,varon,vardeman,vandevelde,vanbrocklin,vaccarezza,urquidez,urie,urbach,uram,ungaro,umali,ulsh,tutwiler,turnbaugh,tumminello,tuite,tueller,trulove,troha,trivino,trisdale,trippett,tribbett,treptow,tremain,travelstead,trautwein,trautmann,tram,traeger,tonelli,tomsic,tomich,tomasulo,tomasino,tole,todhunter,toborg,tischer,tirpak,tircuit,tinnon,tinnel,tines,timbs,tilden,tiede,thumm,throgmorton,thorndike,thornburgh,thoren,thomann,therrell,thau,thammavong,tetrick,tessitore,tesreau,teicher,teaford,tauscher,tauer,tanabe,talamo,takeuchi,taite,tadych,sweeton,swecker,swartzentrube,swarner,surrell,surbaugh,suppa,sumbry,suchy,stuteville,studt,stromer,strome,streng,stonestreet,stockley,stmichel,stfort,sternisha,stensrud,steinhardt,steinback,steichen,stauble,stasiak,starzyk,stango,standerfer,stachowiak,springston,spratlin,spracklen,sponseller,spilker,spiegelman,spellacy,speiser,spaziani,spader,spackman,sorum,sopha,sollis,sollenberger,solivan,solheim,sokolsky,sogge,smyser,smitley,sloas,slinker,skora,skiff,skare,siverd,sivels,siska,siordia,simmering,simko,sime,silmon,silano,sieger,siebold,shukla,shreves,shoun,shortle,shonkwiler,shoals,shimmel,shiel,shieh,sherbondy,shenkman,shein,shearon,shean,shatz,shanholtz,shafran,shaff,shackett,sgroi,sewall,severy,sethi,sessa,sequra,sepulvado,seper,senteno,sendejo,semmens,seipp,segler,seegers,sedwick,sedore,sechler,sebastiano,scovel,scotton,scopel,schwend,schwarting,schutter,schrier,schons,scholtes,schnetzer,schnelle,schmutz,schlichter,schelling,schams,schamp,scarber,scallan,scalisi,scaffidi,saxby,sawrey,sauvageau,sauder,sarrett,sanzo,santizo,santella,santander,sandez,sandel,sammon,salsedo,salge,sagun,safi,sader,sacchetti,sablan,saade,runnion,runkel,rumbo,ruesch,ruegg,ruckle,ruchti,rubens,rubano,rozycki,roupe,roufs,rossel,rosmarin,rosero,rosenwald,ronca,romos,rolla,rohling,rohleder,roell,roehm,rochefort,roch,robotham,rivenburgh,riopel,riederer,ridlen,rias,rhudy,reynard,retter,respess,reppond,repko,rengifo,reinking,reichelt,reeh,redenius,rebolledo,rauh,ratajczak,rapley,ranalli,ramie,raitt,radloff,radle,rabbitt,quay,quant,pusateri,puffinberger,puerta,provencio,proano,privitera,prenger,prellwitz,pousson,potier,portz,portlock,porth,portela,portee,porchia,pollick,polinski,polfer,polanski,polachek,pluta,plourd,plauche,pitner,piontkowski,pileggi,pierotti,pico,piacente,phinisee,phaup,pfost,pettinger,pettet,petrich,peto,persley,persad,perlstein,perko,pere,penders,peifer,peco,pawley,pash,parrack,parady,papen,pangilinan,pandolfo,palone,palmertree,padin,ottey,ottem,ostroski,ornstein,ormonde,onstott,oncale,oltremari,olcott,olan,oishi,oien,odonell,odonald,obeso,obeirne,oatley,nusser,novo,novicki,nitschke,nistler,nikkel,niese,nierenberg,nield,niedzwiecki,niebla,niebel,nicklin,neyhart,newsum,nevares,nageotte,nagai,mutz,murata,muralles,munnerlyn,mumpower,muegge,muckle,muchmore,moulthrop,motl,moskos,mortland,morring,mormile,morimoto,morikawa,morgon,mordecai,montour,mont,mongan,monell,miyasato,mish,minshew,mimbs,millin,milliard,mihm,middlemiss,miano,mesick,merlan,mendonsa,mench,melonson,melling,meachem,mctighe,mcnelis,mcmurtrey,mckesson,mckenrick,mckelvie,mcjunkins,mcgory,mcgirr,mcgeever,mcfield,mcelhinney,mccrossen,mccommon,mccannon,mazyck,mawyer,maull,matute,mathies,maschino,marzan,martinie,marrotte,marmion,markarian,marinacci,margolies,margeson,marak,maraia,maracle,manygoats,manker,mank,mandich,manderson,maltz,malmquist,malacara,majette,magnan,magliocca,madina,madara,macwilliams,macqueen,maccallum,lyde,lyday,lutrick,lurz,lurvey,lumbreras,luhrs,luhr,lowrimore,lowndes,lourenco,lougee,lorona,longstreth,loht,lofquist,loewenstein,lobos,lizardi,lionberger,limoli,liljenquist,liguori,liebl,liburd,leukhardt,letizia,lesinski,lepisto,lenzini,leisenring,leipold,leier,leggitt,legare,leaphart,lazor,lazaga,lavey,laue,laudermilk,lauck,lassalle,larsson,larison,lanzo,lantzy,lanners,langtry,landford,lancour,lamour,lambertson,lalone,lairson,lainhart,lagreca,lacina,labranche,labate,kurtenbach,kuipers,kuechle,kubo,krinsky,krauser,kraeger,kracht,kozeliski,kozar,kowalik,kotler,kotecki,koslosky,kosel,koob,kolasinski,koizumi,kohlman,koffman,knutt,knore,knaff,kmiec,klamm,kittler,kitner,kirkeby,kiper,kindler,kilmartin,kilbride,kerchner,kendell,keddy,keaveney,kearsley,karlsson,karalis,kappes,kapadia,kallman,kallio,kalil,kader,jurkiewicz,jitchaku,jillson,jeune,jarratt,jarchow,janak,ivins,ivans,isenhart,inocencio,inoa,imhof,iacono,hynds,hutching,hutchin,hulsman,hulsizer,hueston,huddleson,hrbek,howry,housey,hounshell,hosick,hortman,horky,horine,hootman,honeywell,honeyestewa,holste,holien,holbrooks,hoffmeyer,hoese,hoenig,hirschfeld,hildenbrand,higson,higney,hibert,hibbetts,hewlin,hesley,herrold,hermon,hepker,henwood,helbling,heinzman,heidtbrink,hedger,havey,hatheway,hartshorne,harpel,haning,handelman,hamalainen,hamad,halasz,haigwood,haggans,hackshaw,guzzo,gundrum,guilbeault,gugliuzza,guglielmi,guderian,gruwell,grunow,grundman,gruen,grotzke,grossnickle,groomes,grode,grochowski,grob,grein,greif,greenwall,greenup,grassl,grannis,grandfield,grames,grabski,grabe,gouldsberry,gosch,goodling,goodermote,gonzale,golebiowski,goldson,godlove,glanville,gillin,gilkerson,giessler,giambalvo,giacomini,giacobbe,ghio,gergen,gentz,genrich,gelormino,gelber,geitner,geimer,gauthreaux,gaultney,garvie,gareau,garbacz,ganoe,gangwer,gandarilla,galyen,galt,galluzzo,galardo,gager,gaddie,gaber,gabehart,gaarder,fusilier,furnari,furbee,fugua,fruth,frohman,friske,frilot,fridman,frescas,freier,frayer,franzese,frankenberry,frain,fosse,foresman,forbess,flook,fletes,fleer,fleek,fleegle,fishburne,fiscalini,finnigan,fini,filipiak,figueira,fiero,ficek,fiaschetti,ferren,ferrando,ferman,fergusson,fenech,feiner,feig,faulds,fariss,falor,falke,ewings,eversley,everding,etling,essen,erskin,enstrom,engebretsen,eitel,eichberger,ehler,eekhoff,edrington,edmonston,edgmon,edes,eberlein,dwinell,dupee,dunklee,dungey,dunagin,dumoulin,duggar,duenez,dudzic,dudenhoeffer,ducey,drouillard,dreibelbis,dreger,dreesman,draughon,downen,dorminy,dombeck,dolman,doebler,dittberner,dishaw,disanti,dinicola,dinham,dimino,dilling,difrancesco,dicello,dibert,deshazer,deserio,descoteau,deruyter,dering,depinto,dente,demus,demattos,demarsico,delude,dekok,debrito,debois,deakin,dayley,dawsey,dauria,datson,darty,darsow,darragh,darensbourg,dalleva,dalbec,dadd,cutcher,cung,cuello,cuadros,crute,crutchley,crispino,crislip,crisco,crevier,creekmur,crance,cragg,crager,cozby,coyan,coxon,covalt,couillard,costley,costilow,cossairt,corvino,corigliano,cordaro,corbridge,corban,coor,conkel,conary,coltrain,collopy,colgin,colen,colbath,coiro,coffie,cochrum,cobbett,clopper,cliburn,clendenon,clemon,clementi,clausi,cirino,cina,churchman,chilcutt,cherney,cheetham,cheatom,chatelain,chalifour,cesa,cervenka,cerullo,cerreta,cerbone,cecchini,ceccarelli,cawthorn,cavalero,castner,castlen,castine,casimiro,casdorph,cartmill,cartmell,carro,carriger,carias,caravella,cappas,capen,cantey,canedo,camuso,campanaro,cambria,calzado,callejo,caligiuri,cafaro,cadotte,cacace,byrant,busbey,burtle,burres,burnworth,burggraf,burback,bunte,bunke,bulle,bugos,budlong,buckhalter,buccellato,brummet,bruff,brubeck,brouk,broten,brosky,broner,brislin,brimm,brillhart,bridgham,brideau,brennecke,breer,breeland,bredesen,brackney,brackeen,boza,boyum,bowdry,bowdish,bouwens,bouvier,bougie,bouche,bottenfield,bostian,bossie,bosler,boschert,boroff,borello,bonser,bonfield,bole,boldue,bogacz,boemer,bloxom,blickenstaff,blessinger,bleazard,blatz,blanchet,blacksher,birchler,binning,binkowski,biltz,bilotta,bilagody,bigbee,bieri,biehle,bidlack,betker,bethers,bethell,bero,bernacchi,bermingham,berkshire,benvenuto,bensman,benoff,bencivenga,beman,bellow,bellany,belflower,belch,bekker,bejar,beisel,beichner,beedy,beas,beanblossom,bawek,baus,baugus,battie,battershell,bateson,basque,basford,bartone,barritt,barko,bann,bamford,baltrip,balon,balliew,ballam,baldus,ayling,avelino,ashwell,ashland,arseneau,arroyos,armendarez,arita,argust,archuletta,arcement,antonacci,anthis,antal,annan,anderman,amster,amiri,amadon,alveraz,altomari,altmann,altenhofen,allers,allbee,allaway,aleo,alcoser,alcorta,akhtar,ahuna,agramonte,agard,adkerson,achord,abdi,abair,zurn,zoellner,zirk,zion,zarro,zarco,zambo,zaiser,zaino,zachry,youd,yonan,yniguez,yepes,yellock,yellen,yeatts,yearling,yatsko,yannone,wyler,woodridge,wolfrom,wolaver,wolanin,wojnar,wojciak,wittmann,wittich,wiswell,wisser,wintersteen,wineland,willford,wiginton,wigfield,wierman,wice,wiater,whitsel,whitbread,wheller,wettstein,werling,wente,wenig,wempe,welz,weinhold,weigelt,weichman,wedemeyer,weddel,wayment,waycaster,wauneka,watzka,watton,warnell,warnecke,warmack,warder,wands,waldvogel,waldridge,wahs,wagganer,waddill,vyas,vought,votta,voiles,virga,viner,villella,villaverde,villaneda,viele,vickroy,vicencio,vetere,vermilyea,verley,verburg,ventresca,veno,venard,venancio,velaquez,veenstra,vasil,vanzee,vanwie,vantine,vant,vanschoyck,vannice,vankampen,vanicek,vandersloot,vanderpoel,vanderlinde,vallieres,uzzell,uzelac,uranga,uptain,updyke,uong,untiedt,umbrell,umbaugh,umbarger,ulysse,ullmann,ullah,tutko,turturro,turnmire,turnley,turcott,turbyfill,turano,tuminello,tumbleson,tsou,truscott,trulson,troutner,trone,trinklein,tremmel,tredway,trease,traynham,traw,totty,torti,torregrossa,torok,tomkins,tomaino,tkach,tirey,tinsman,timpe,tiefenauer,tiedt,tidball,thwaites,thulin,throneburg,thorell,thorburn,thiemann,thieman,thesing,tham,terrien,telfair,taybron,tasson,tasso,tarro,tanenbaum,taddeo,taborn,tabios,szekely,szatkowski,sylve,swineford,swartzfager,swanton,swagerty,surrency,sunderlin,sumerlin,suero,suddith,sublette,stumpe,stueve,stuckert,strycker,struve,struss,strubbe,strough,strothmann,strahle,stoutner,stooksbury,stonebarger,stokey,stoffer,stimmel,stief,stephans,stemper,steltenpohl,stellato,steinle,stegeman,steffler,steege,steckman,stapel,stansbery,stanaland,stahley,stagnaro,stachowski,squibb,sprunger,sproule,sprehe,spreen,sprecher,sposato,spivery,souter,sopher,sommerfeldt,soffer,snowberger,snape,smylie,smyer,slaydon,slatton,slaght,skovira,skeans,sjolund,sjodin,siragusa,singelton,silis,siebenaler,shuffield,shobe,shiring,shimabukuro,shilts,sherbert,shelden,sheil,shedlock,shearn,shaub,sharbono,shapley,shands,shaheen,shaffner,servantez,sentz,seney,selin,seitzinger,seider,sehr,sego,segall,sebastien,scimeca,schwenck,schweiss,schwark,schwalbe,schucker,schronce,schrag,schouten,schoppe,schomaker,schnarr,schmied,schmader,schlicht,schlag,schield,schiano,scheve,scherbarth,schaumburg,schauman,scarpino,savinon,sassaman,saporito,sanville,santilli,santaana,salzmann,salman,sagraves,safran,saccone,rutty,russett,rupard,rumbley,ruffins,ruacho,rozema,roxas,routson,rourk,rought,rotunda,rotermund,rosman,rork,rooke,rolin,rohm,rohlman,rohl,roeske,roecker,rober,robenson,riso,rinne,riina,rigsbee,riggles,riester,rials,rhinehardt,reynaud,reyburn,rewis,revermann,reutzel,retz,rende,rendall,reistad,reinders,reichardt,rehrig,rehrer,recendez,reamy,rauls,ratz,rattray,rasband,rapone,ragle,ragins,radican,raczka,rachels,raburn,rabren,raboin,quesnell,quaintance,puccinelli,pruner,prouse,prosise,proffer,prochazka,probasco,previte,portell,porcher,popoca,pomroy,poma,polsky,polsgrove,polidore,podraza,plymale,plescia,pleau,platte,pizzi,pinchon,picot,piccione,picazo,philibert,phebus,pfohl,petell,pesso,pesante,pervis,perrins,perley,perkey,pereida,penate,peloso,pellerito,peffley,peddicord,pecina,peale,payette,paxman,pawlikowski,pavy,patry,patmon,patil,pater,patak,pasqua,pasche,partyka,parody,parmeter,pares,pardi,paonessa,panozzo,panameno,paletta,pait,oyervides,ossman,oshima,ortlieb,orsak,onley,oldroyd,okano,ohora,offley,oestreicher,odonovan,odham,odegard,obst,obriant,obrecht,nuccio,nowling,nowden,novelli,nost,norstrom,nordgren,nopper,noller,nisonger,niskanen,nienhuis,nienaber,neuwirth,neumeyer,neice,naugher,naiman,nagamine,mustin,murrietta,murdaugh,munar,muhlbauer,mroczkowski,mowdy,mouw,mousel,mountcastle,moscowitz,mosco,morro,moresi,morago,moomaw,montroy,montpas,montieth,montanaro,mongelli,mollison,mollette,moldovan,mohar,mitchelle,mishra,misenheimer,minshall,minozzi,minniefield,milhous,migliaccio,migdal,mickell,meyering,methot,mester,mesler,meriweather,mensing,mensah,menge,mendibles,meloche,melnik,mellas,meinert,mehrhoff,medas,meckler,mctague,mcspirit,mcshea,mcquown,mcquiller,mclarney,mckiney,mckearney,mcguyer,mcfarlan,mcfadyen,mcdanial,mcdanel,mccurtis,mccrohan,mccorry,mcclune,mccant,mccanna,mccandlish,mcaloon,mayall,maver,maune,matza,matsuzaki,matott,mathey,mateos,masoner,masino,marzullo,marz,marsolek,marquard,marchetta,marberry,manzione,manthei,manka,mangram,mangle,mangel,mandato,mancillas,mammen,malina,maletta,malecki,majkut,mages,maestre,macphail,maco,macneill,macadam,lysiak,lyne,luxton,luptak,lundmark,luginbill,lovallo,louthan,lousteau,loupe,lotti,lopresto,lonsdale,longsworth,lohnes,loghry,logemann,lofaro,loeber,locastro,livings,litzinger,litts,liotta,lingard,lineback,lindhorst,lill,lide,lickliter,liberman,lewinski,levandowski,leimbach,leifer,leidholt,leiby,leibel,leibee,lehrke,lehnherr,lego,leese,leen,ledo,lech,leblond,leahey,lazzari,lawrance,lawlis,lawhorne,lawes,lavigna,lavell,lauzier,lauter,laumann,latsha,latourette,latona,latney,laska,larner,larmore,larke,larence,lapier,lanzarin,lammey,lamke,laminack,lamastus,lamaster,lacewell,labarr,laabs,kutch,kuper,kuna,kubis,krzemien,krupinski,krepps,kreeger,kraner,krammer,kountz,kothe,korpela,komara,kolenda,kolek,kohnen,koelzer,koelsch,kocurek,knoke,knauff,knaggs,knab,kluver,klose,klien,klahr,kitagawa,kissler,kirstein,kinnon,kinnebrew,kinnamon,kimmins,kilgour,kilcoyne,kiester,kiehm,kesselring,kerestes,kenniston,kennamore,kenebrew,kelderman,keitel,kefauver,katzenberger,katt,kast,kassel,kamara,kalmbach,kaizer,kaiwi,kainz,jurczyk,jumonville,juliar,jourdain,johndrow,johanning,johannesen,joffrion,jobes,jerde,jentzsch,jenkens,jendro,jellerson,jefferds,jaure,jaquish,janeway,jago,iwasaki,ishman,isaza,inmon,inlow,inclan,ildefonso,iezzi,ianni,iacovetto,hyldahl,huxhold,huser,humpherys,humburg,hult,hullender,hulburt,huckabay,howeth,hovermale,hoven,houtman,hourigan,hosek,hopgood,homrich,holstine,holsclaw,hokama,hoffpauir,hoffner,hochstein,hochstatter,hochberg,hjelm,hiscox,hinsley,hineman,hineline,hinck,hilbun,hewins,herzing,hertzberg,hertenstein,herrea,herington,henrie,henman,hengst,hemmen,helmke,helgerson,heinsohn,heigl,hegstad,heggen,hegge,hefti,heathcock,haylett,haupert,haufler,hatala,haslip,hartless,hartje,hartis,harpold,harmsen,harbach,hanten,hanington,hammen,hameister,hallstrom,habersham,habegger,gussman,gundy,guitterez,guisinger,guilfoyle,groulx,grismer,griesbach,grawe,grall,graben,goulden,gornick,gori,gookin,gonzalaz,gonyer,gonder,golphin,goller,goergen,glosson,glor,gladin,girdler,gillim,gillians,gillaspie,gilhooly,gildon,gignac,gibler,gibbins,giardino,giampietro,gettman,gerringer,gerrald,gerlich,georgiou,georgi,geiselman,gehman,gangl,gamage,gallian,gallen,gallatin,galea,gainor,gahr,furbush,fulfer,fuhrmann,fritter,friis,friedly,freudenberger,freemon,fratus,frans,foulke,fosler,forquer,fontan,folwell,foeller,fodge,fobes,florek,fliss,flesner,flegel,fitzloff,fiser,firmin,firestine,finfrock,fineberg,fiegel,fickling,fesperman,fernadez,felber,feimster,feazel,favre,faughn,fatula,fasone,farron,faron,farino,falvey,falkenberg,faley,faletti,faeth,fackrell,espe,eskola,escott,esaw,erps,erker,erath,enfield,emfinger,embury,embleton,emanuele,elvers,ellwanger,ellegood,eichinger,egge,egeland,edgett,echard,eblen,eastmond,duteau,durland,dure,dunlavy,dungee,dukette,dugay,duboise,dubey,dsouza,druck,dralle,doubek,dorta,dorch,dorce,dopson,dolney,dockter,distler,dippel,dichiara,dicerbo,dewindt,dewan,deveney,devargas,deutscher,deuel,detter,dess,derrington,deroberts,dern,deponte,denogean,denardi,denard,demary,demarais,delucas,deloe,delmonico,delisi,delio,delduca,deihl,dehmer,decoste,dechick,decatur,debruce,debold,debell,deats,daunt,daquilante,dambrosi,damas,dalin,dahman,dahlem,daffin,dacquel,cutrell,cusano,curtner,currens,curnow,cuppett,cummiskey,cullers,culhane,crull,crossin,cropsey,cromie,crofford,criscuolo,crisafulli,crego,creeden,covello,covel,corse,correra,cordner,cordier,coplen,copeman,contini,conteras,consalvo,conduff,compher,colliver,colan,cohill,cohenour,cogliano,codd,cockayne,clum,clowdus,clarida,clance,clairday,clagg,citron,citino,ciriello,cicciarelli,chrostowski,christley,chrisco,chrest,chisler,chieffo,cherne,cherico,cherian,cheirs,chauhan,chamblin,cerra,cepero,cellini,celedon,cejka,cavagnaro,cauffman,catanese,castrillo,castrellon,casserly,caseres,carthen,carse,carragher,carpentieri,carmony,carmer,carlozzi,caradine,cappola,capece,capaldi,cantres,cantos,canevari,canete,calcaterra,cadigan,cabbell,byrn,bykowski,butchko,busler,bushaw,buschmann,burow,buri,burgman,bunselmeyer,bunning,buhrman,budnick,buckson,buckhannon,brunjes,brumleve,bruckman,brouhard,brougham,brostrom,broerman,brocks,brison,brining,brindisi,brereton,breon,breitling,breedon,brasseaux,branaman,bramon,brackenridge,boyan,boxley,bouman,bouillion,botting,botti,bosshart,borup,borner,bordonaro,bonsignore,bonsall,bolter,bojko,bohne,bohlmann,bogdon,boen,bodenschatz,bockoven,bobrow,blondin,blissett,bligen,blasini,blankenburg,bjorkman,bistline,bisset,birdow,biondolillo,bielski,biele,biddix,biddinger,bianchini,bevens,bevard,betancur,bernskoetter,bernet,bernardez,berliner,berland,berkheimer,berent,bensch,benesch,belleau,bedingfield,beckstrom,beckim,bechler,beachler,bazzell,basa,bartoszek,barsch,barrell,barnas,barnaba,barillas,barbier,baltodano,baltierra,balle,balint,baldi,balderson,balderama,baldauf,balcazar,balay,baiz,bairos,azim,aversa,avellaneda,ausburn,auila,augusto,atwill,artiles,arterberry,arnow,arnaud,arnall,arenz,arduini,archila,arakawa,appleman,aplin,antonini,anstey,anglen,andros,amweg,amstutz,amari,amadeo,alteri,aloi,allebach,aley,alamillo,airhart,ahrendt,aegerter,adragna,admas,adderly,adderley,addair,abelar,abbamonte,abadi,zurek,zundel,zuidema,zuelke,zuck,zogg,zody,zets,zech,zecca,zavaleta,zarr,yousif,yoes,yoast,yeagley,yaney,yanda,yackel,wyles,wyke,woolman,woollard,woodis,woodin,wonderly,wombles,woloszyn,wollam,wnek,wittie,withee,wissman,wisham,wintle,winokur,wilmarth,willhoite,wildner,wikel,wieser,wien,wicke,wiatrek,whitehall,whetstine,wheelus,weyrauch,weyers,westerling,wendelken,welner,weinreb,weinheimer,weilbacher,weihe,weider,wecker,wead,watler,watkinson,wasmer,waskiewicz,wasik,warneke,wares,wangerin,wamble,walken,waker,wakeley,wahlgren,wahlberg,wagler,wachob,vorhies,vonseggern,vittitow,vink,villarruel,villamil,villamar,villalovos,vidmar,victorero,vespa,vertrees,verissimo,veltman,vecchione,veals,varrone,varma,vanveen,vanterpool,vaneck,vandyck,vancise,vanausdal,vanalphen,valdiviezo,urton,urey,updegrove,unrue,ulbrich,tysinger,twiddy,tunson,trueheart,troyan,trier,traweek,trafford,tozzi,toulouse,tosto,toste,torez,tooke,tonini,tonge,tomerlin,tolmie,tobe,tippen,tierno,tichy,thuss,thran,thornbury,thone,theunissen,thelmon,theall,textor,teters,tesh,tench,tekautz,tehrani,teat,teare,tavenner,tartaglione,tanski,tanis,tanguma,tangeman,taney,tammen,tamburri,tamburello,talsma,tallie,takeda,taira,taheri,tademy,taddei,taaffe,szymczak,szczepaniak,szafranski,swygert,swem,swartzlander,sutley,supernaw,sundell,sullivant,suderman,sudbury,suares,stueber,stromme,streeper,streck,strebe,stonehouse,stoia,stohr,stodghill,stirewalt,sterry,stenstrom,stene,steinbrecher,stear,stdenis,stanphill,staniszewski,stanard,stahlhut,stachowicz,srivastava,spong,spomer,spinosa,spindel,spera,soward,sopp,sooter,sonnek,soland,sojourner,soeder,sobolewski,snellings,smola,smetana,smeal,smarr,sloma,sligar,skenandore,skalsky,sissom,sirko,simkin,silverthorn,silman,sikkink,signorile,siddens,shumsky,shrider,shoulta,shonk,shomaker,shippey,shimada,shillingburg,shifflet,shiels,shepheard,sheerin,shedden,sheckles,sharrieff,sharpley,shappell,shaneyfelt,shampine,shaefer,shaddock,shadd,sforza,severtson,setzler,sepich,senne,senatore,sementilli,selway,selover,sellick,seigworth,sefton,seegars,sebourn,seaquist,sealock,seabreeze,scriver,scinto,schumer,schulke,schryver,schriner,schramek,schoon,schoolfield,schonberger,schnieder,schnider,schlitz,schlather,schirtzinger,scherman,schenker,scheiner,scheible,schaus,schakel,schaad,saxe,savely,savary,sardinas,santarelli,sanschagrin,sanpedro,sandine,sandigo,sandgren,sanderford,sandahl,salzwedel,salzar,salvino,salvatierra,salminen,salierno,salberg,sahagun,saelee,sabel,rynearson,ryker,rupprecht,runquist,rumrill,ruhnke,rovira,rottenberg,rosoff,rosete,rosebrough,roppolo,roope,romas,roley,rohrback,rohlfs,rogriguez,roel,rodriguiz,rodewald,roback,rizor,ritt,rippee,riolo,rinkenberger,riggsby,rigel,rieman,riedesel,rideau,ricke,rhinebolt,rheault,revak,relford,reinsmith,reichmann,regula,redlinger,rayno,raycroft,raus,raupp,rathmann,rastorfer,rasey,raponi,rantz,ranno,ranes,ramnauth,rahal,raddatz,quattrocchi,quang,pullis,pulanco,pryde,prohaska,primiano,prez,prevatt,prechtl,pottle,potenza,portes,porowski,poppleton,pontillo,politz,politi,poggi,plonka,plaskett,placzek,pizzuti,pizzaro,pisciotta,pippens,pinkins,pinilla,pini,pingitore,piercey,piccola,piccioni,picciano,philps,philp,philo,philmon,philbin,pflieger,pezzullo,petruso,petrea,petitti,peth,peshlakai,peschel,persico,persichetti,persechino,perris,perlow,perico,pergola,penniston,pembroke,pellman,pekarek,peirson,pearcey,pealer,pavlicek,passino,pasquarello,pasion,parzych,parziale,parga,papalia,papadakis,paino,pacini,oyen,ownes,owczarzak,outley,ouelette,ottosen,otting,ostwinkle,osment,oshita,osario,orlow,oriordan,orefice,orantes,oran,orahood,opel,olpin,oliveria,okon,okerlund,okazaki,ohta,offerman,nyce,nutall,northey,norcia,noor,niehoff,niederhauser,nickolson,nguy,neylon,newstrom,nevill,netz,nesselrodt,nemes,neally,nauyen,nascimento,nardella,nanni,myren,murchinson,munter,mundschenk,mujalli,muckleroy,moussa,mouret,moulds,mottram,motte,morre,montreuil,monton,montellano,monninger,monhollen,mongeon,monestime,monegro,mondesir,monceaux,mola,moga,moening,moccia,misko,miske,mishaw,minturn,mingione,milstein,milla,milks,michl,micheletti,michals,mesia,merson,meras,menifee,meluso,mella,melick,mehlman,meffert,medoza,mecum,meaker,meahl,mczeal,mcwatters,mcomber,mcmonigle,mckiddy,mcgranor,mcgeary,mcgaw,mcenery,mcelderry,mcduffey,mccuistion,mccrudden,mccrossin,mccosh,mccolgan,mcclish,mcclenahan,mcclam,mccartt,mccarrell,mcbane,maybury,mayben,maulden,mauceri,matko,mathie,matheis,mathai,masucci,massiah,martorano,martnez,martindelcamp,marschke,marovich,markiewicz,marinaccio,marhefka,marcrum,manton,mannarino,manlove,mangham,manasco,malpica,mallernee,malinsky,malhotra,maish,maisel,mainville,maharrey,magid,maertz,mada,maclaughlin,macina,macdermott,macallister,macadangdang,maack,lynk,lydic,luyando,lutke,lupinacci,lunz,lundsten,lujano,luhn,luecke,luebbe,ludolph,luckman,lucker,luckenbill,luckenbach,lucido,lowney,lowitz,lovaglio,louro,louk,loudy,louderback,lorick,lorenzini,lorensen,lorenc,lomuscio,loguidice,lockner,lockart,lochridge,litaker,lisowe,liptrap,linnane,linhares,lindfors,lindenmuth,lincourt,liew,liebowitz,levengood,leskovec,lesch,leoni,lennard,legner,leaser,leas,leadingham,lazarski,layland,laurito,laulu,laughner,laughman,laughery,laube,latiolais,lasserre,lasser,larrow,larrea,lapsley,lantrip,lanthier,langwell,langelier,landaker,lampi,lamond,lamblin,lambie,lakins,laipple,lagrimas,lafrancois,laffitte,laday,lacko,lacava,labianca,kutsch,kuske,kunert,kubly,kuamoo,krummel,krise,krenek,kreiser,krausz,kraska,krakowski,kradel,kozik,koza,kotowski,koslow,korber,kojima,kochel,knabjian,klunder,klugh,klinkhammer,kliewer,klever,kleber,klages,klaas,kizziar,kitchel,kishimoto,kirschenman,kirschenbaum,kinnick,kinn,kiner,kindla,kindall,kincaide,kilson,killins,kightlinger,kienzle,kiah,khim,ketcherside,kerl,kelsoe,kelker,keizer,keir,kawano,kawa,kaveney,kasparek,kaplowitz,kantrowitz,kant,kanoff,kano,kamalii,kalt,kaleta,kalbach,kalauli,kalata,kalas,kaigler,kachel,juran,jubb,jonker,jonke,jolivette,joles,joas,jividen,jeffus,jeanty,jarvi,jardon,janvier,janosko,janoski,janiszewski,janish,janek,iwanski,iuliano,irle,ingmire,imber,ijames,iiams,ihrig,ichikawa,hynum,hutzel,hutts,huskin,husak,hurndon,huntsinger,hulette,huitron,huguenin,hugg,hugee,huelskamp,huch,howen,hovanec,hoston,hostettler,horsfall,horodyski,holzhauer,hollimon,hollender,hogarth,hoffelmeyer,histand,hissem,hisel,hirayama,hinegardner,hinde,hinchcliffe,hiltbrand,hilsinger,hillstrom,hiley,hickenbottom,hickam,hibley,heying,hewson,hetland,hersch,herlong,herda,henzel,henshall,helson,helfen,heinbach,heikkila,heggs,hefferon,hebard,heathcote,hearl,heaberlin,hauth,hauschild,haughney,hauch,hattori,hasley,hartpence,harroun,harelson,hardgrove,hardel,hansbrough,handshoe,handly,haluska,hally,halling,halfhill,halferty,hakanson,haist,hairgrove,hahner,hagg,hafele,haaland,guttierez,gutknecht,gunnarson,gunlock,gummersheimer,gullatte,guity,guilmette,guhl,guenette,guardino,groshong,grober,gripp,grillot,grilli,greulich,gretzinger,greenwaldt,graven,grassman,granberg,graeser,graeff,graef,grabow,grabau,gotchy,goswick,gosa,gordineer,gorczyca,goodchild,golz,gollihue,goldwire,goldbach,goffredo,glassburn,glaeser,gillilan,gigante,giere,gieger,gidcumb,giarrusso,giannelli,gettle,gesualdi,geschke,gerwig,gervase,geoffrion,gentilcore,genther,gemes,gemberling,gelles,geitz,geeslin,gedney,gebauer,gawron,gavia,gautney,gaustad,gasmen,gargus,ganske,ganger,galvis,gallinger,gallichio,galletta,gaede,gadlin,gaby,gabrielsen,gaboriault,furlan,furgerson,fujioka,fugett,fuehrer,frint,frigon,frevert,frautschi,fraker,fradette,foulkes,forslund,forni,fontenette,fones,folz,folmer,follman,folkman,flourney,flickner,flemmings,fleischacker,flander,flament,fithian,fiorello,fiorelli,fioravanti,fieck,ficke,fiallos,fiacco,feuer,ferrington,fernholz,feria,fergurson,feick,febles,favila,faulkingham,fath,farnam,falter,fakhouri,fairhurst,fahs,estrello,essick,espree,esmond,eskelson,escue,escatel,erebia,epperley,epler,enyart,engelbert,enderson,emch,elisondo,elford,ekman,eick,eichmann,ehrich,ehlen,edwardson,edley,edghill,edel,eastes,easterbrooks,eagleson,eagen,eade,dyle,dutkiewicz,dunnagan,duncil,duling,drumgoole,droney,dreyfus,dragan,dowty,doscher,dornan,doremus,doogan,donaho,donahey,dombkowski,dolton,dolen,dobratz,diveley,dittemore,ditsch,disque,dishmon,disch,dirickson,dippolito,dimuccio,dilger,diefenderfer,dicola,diblasio,dibello,devan,dettmer,deschner,desbiens,derusha,denkins,demonbreun,demchak,delucchi,delprete,deloy,deliz,deline,delap,deiter,deignan,degiacomo,degaetano,defusco,deboard,debiase,deaville,deadwyler,davanzo,daughton,darter,danser,dandrade,dando,dampeer,dalziel,dalen,dain,dague,czekanski,cutwright,cutliff,curle,cuozzo,cunnington,cunnigham,cumings,crowston,crittle,crispell,crisostomo,crear,creach,craigue,crabbs,cozzi,cozza,coxe,cowsert,coviello,couse,coull,cottier,costagliola,corra,corpening,cormany,corless,corkern,conteh,conkey,conditt,conaty,colomb,collura,colledge,colins,colgate,coleson,colemon,coffland,coccia,clougherty,clewell,cleckley,cleaveland,clarno,civils,cillo,cifelli,ciesluk,christison,chowning,chouteau,choung,childres,cherrington,chenette,cheeves,cheairs,chaddock,cernoch,cerino,cazier,castel,casselberry,caserta,carvey,carris,carmant,cariello,cardarelli,caras,caracciolo,capitano,cantoni,cantave,cancio,campillo,callens,caldero,calamia,cahee,cahan,cahalan,cabanilla,cabal,bywater,bynes,byassee,busker,bushby,busack,burtis,burrola,buroker,burnias,burlock,burham,burak,bulla,buffin,buening,budney,buchannan,buchalter,brule,brugler,broxson,broun,brosh,brissey,brisby,brinlee,brinkmeyer,brimley,brickell,breth,breger,brees,brank,braker,bozak,bowlds,bowersock,bousman,boushie,botz,bordwell,bonkowski,bonine,bonifay,bonesteel,boldin,bohringer,bohlander,boecker,bocook,bocock,boblett,bobbett,boas,boarman,bleser,blazejewski,blaustein,blausey,blancarte,blaize,blackson,blacketer,blackard,bisch,birchett,billa,bilder,bierner,bienvenu,bielinski,bialas,biagini,beynon,beyl,bettini,betcher,bessent,beshara,besch,bernd,bergemann,bergeaux,berdan,bens,benedicto,bendall,beltron,beltram,bellville,beisch,behney,beechler,beckum,batzer,batte,bastida,bassette,basley,bartosh,bartolone,barraclough,barnick,barket,barkdoll,baringer,barella,barbian,barbati,bannan,balles,baldo,balasubramani,baig,bahn,bachmeier,babyak,baas,baars,ayuso,avinger,avella,ausbrooks,aull,augello,atkeson,atkerson,atherley,athan,assad,asebedo,arrison,armon,armfield,arkin,archambeau,antonellis,angotti,amorose,amini,amborn,amano,aluarez,allgaier,allegood,alen,aldama,aird,ahsing,ahmann,aguado,agostino,agostinelli,adwell,adsit,adelstein,actis,acierno,achee,abbs,abbitt,zwagerman,zuercher,zinno,zettler,zeff,zavalza,zaugg,zarzycki,zappulla,zanotti,zachman,zacher,yundt,yslas,younes,yontz,yglesias,yeske,yeargin,yauger,yamane,xang,wylam,wrobleski,wratchford,woodlee,wolsey,wolfinbarger,wohlenhaus,wittler,wittenmyer,witkop,wishman,wintz,winkelmann,windus,winborn,wims,wiltrout,willmott,williston,wilemon,wilbourne,wiedyk,widmann,wickland,wickes,wichert,whitsell,whisenand,whidby,wetz,westmeyer,wertheim,wernert,werle,werkheiser,weldin,weissenborn,weingard,weinfeld,weihl,weightman,weichel,wehrheim,wegrzyn,wegmann,waszak,wankum,walthour,waltermire,walstad,waldren,walbert,walawender,wahlund,wahlert,wahlers,wach,vuncannon,vredenburgh,vonk,vollmar,voisinet,vlahos,viscardi,vires,vipperman,violante,vidro,vessey,vesper,veron,vergari,verbeck,venturino,velastegui,vegter,varas,vanwey,vanvranken,vanvalkenbur,vanorsdale,vanoli,vanochten,vanier,vanevery,vane,vanduser,vandersteen,vandell,vandall,vallot,vallon,vallez,vallely,vadenais,uthe,usery,unga,ultsch,ullom,tyminski,twogood,tursi,turay,tungate,truxillo,trulock,trovato,troise,tripi,trinks,trimboli,trickel,trezise,trefry,treen,trebilcock,travieso,trachtenberg,touhey,tougas,tortorella,tormey,torelli,torborg,toran,tomek,tomassi,tollerson,tolden,toda,tobon,tjelmeland,titmus,tilbury,tietje,thurner,thum,thrope,thornbrough,thibaudeau,thackeray,tesoro,territo,ternes,teich,tecson,teater,teagarden,tatsch,tarallo,tapanes,tanberg,tamm,sylvis,swenor,swedlund,sutfin,sura,sundt,sundin,summerson,sumatzkuku,sultemeier,sulivan,suggitt,suermann,sturkie,sturgess,stumph,stuemke,struckhoff,strose,stroder,stricklen,strick,streib,strei,strawther,stratis,strahm,stortz,storrer,storino,stohler,stohl,stockel,stinnette,stile,stieber,steffenhagen,stefanowicz,steever,steagall,statum,stapley,stanish,standiford,standen,stamos,stahlecker,stadtler,spratley,spraker,sposito,spickard,spehar,spees,spearing,spangle,spallone,soulard,sora,sopko,sood,sonnen,solly,solesbee,soldano,sobey,sobczyk,snedegar,sneddon,smolinski,smolik,slota,slavick,skorupski,skolnik,skirvin,skeels,skains,skahan,skaar,siwiec,siverly,siver,sivak,sirk,sinton,sinor,sincell,silberstein,sieminski,sidelinger,shurman,shunnarah,shirer,shidler,sherlin,shepperson,shemanski,sharum,shartrand,shapard,shanafelt,shamp,shader,shackelton,seyer,seroka,sernas,seright,serano,sengupta,selinger,seith,seidler,seehusen,seefried,scovell,scorzelli,sconiers,schwind,schwichtenber,schwerin,schwenke,schwaderer,schussler,schuneman,schumpert,schultheiss,schroll,schroepfer,schroeden,schrimpf,schook,schoof,schomburg,schoenfeldt,schoener,schnoor,schmick,schlereth,schindele,schildt,schildknecht,schemmel,scharfenberg,schanno,schane,schaer,schad,scearce,scardino,sawka,sawinski,savoca,savery,saults,sarpy,saris,sardinha,sarafin,sankar,sanjurjo,sanderfer,sanagustin,samudio,sammartino,samas,salz,salmen,salkeld,salamon,sakurai,sakoda,safley,sada,sachse,ryden,ryback,russow,russey,ruprecht,rumple,ruffini,rudzinski,rudel,rudden,rovero,routledge,roussin,rousse,rouser,rougeau,rosica,romey,romaniello,rolfs,rogoff,rogne,rodriquz,rodrequez,rodin,rocray,rocke,riviere,rivette,riske,risenhoover,rindfleisch,rinaudo,rimbey,riha,righi,ridner,ridling,riden,rhue,reyome,reynoldson,reusch,rensing,rensch,rennels,renderos,reininger,reiners,reigel,rehmer,regier,reff,redlin,recchia,reaume,reagor,rawe,rattigan,raska,rashed,ranta,ranft,randlett,ramiez,ramella,rallis,rajan,raisbeck,raimondo,raible,ragone,rackliffe,quirino,quiring,quero,quaife,pyke,purugganan,pursifull,purkett,purdon,pulos,puccia,provance,propper,preis,prehn,prata,prasek,pranger,pradier,portor,portley,porte,popiel,popescu,pomales,polowy,pollett,politis,polit,poley,pohler,poggio,podolak,poag,plymel,ploeger,planty,piskura,pirrone,pirro,piroso,pinsky,pilant,pickerill,piccolomini,picart,piascik,phann,petruzzelli,petosa,persson,perretta,perkowski,perilli,percifield,perault,peppel,pember,pelotte,pelcher,peixoto,pehl,peatross,pearlstein,peacher,payden,paya,pawelek,pavey,pauda,pathak,parrillo,parness,parlee,paoli,pannebaker,palomar,palo,palmberg,paganelli,paffrath,padovano,padden,pachucki,ovando,othman,osowski,osler,osika,orsburn,orlowsky,oregel,oppelt,opfer,opdyke,onell,olivos,okumura,okoro,ogas,oelschlaeger,oder,ocanas,obrion,obarr,oare,nyhus,nyenhuis,nunnelley,nunamaker,nuckels,noyd,nowlan,novakovich,noteboom,norviel,nortz,norment,norland,nolt,nolie,nixson,nitka,nissley,nishiyama,niland,niewiadomski,niemeier,nieland,nickey,nicholsen,neugent,neto,nerren,neikirk,neigh,nedrow,neave,nazaire,navaro,navalta,nasworthy,nasif,nalepa,nakao,nakai,nadolny,myklebust,mussel,murthy,muratore,murat,mundie,mulverhill,muilenburg,muetzel,mudra,mudgett,mrozinski,moura,mottinger,morson,moretto,morentin,mordan,mooreland,mooers,monts,montone,montondo,montiero,monie,monat,monares,mollo,mollet,molacek,mokry,mohrmann,mohabir,mogavero,moes,moceri,miyoshi,mitzner,misra,mirr,minish,minge,minckler,milroy,mille,mileski,milanesi,miko,mihok,mihalik,mieczkowski,messerli,meskill,mesenbrink,merton,merryweather,merkl,menser,menner,menk,menden,menapace,melbourne,mekus,meinzer,meers,mctigue,mcquitty,mcpheron,mcmurdie,mcleary,mclafferty,mckinzy,mckibbin,mckethan,mcintee,mcgurl,mceachran,mcdowall,mcdermitt,mccuaig,mccreedy,mccoskey,mcclosky,mcclintick,mccleese,mccanless,mazzucco,mazzocco,mazurkiewicz,mazariego,mayhorn,maxcy,mavity,mauzey,maulding,matuszewski,mattsson,mattke,matsushita,matsuno,matsko,matkin,mathur,masterman,massett,massart,massari,mashni,martella,marren,margotta,marder,marczak,maran,maradiaga,manwarren,manter,mantelli,manso,mangone,manfredonia,malden,malboeuf,malanga,makara,maison,maisano,mairs,mailhiot,magri,madron,madole,mackall,macduff,macartney,lynds,lusane,luffman,louth,loughmiller,lougheed,lotspeich,lorenzi,loosli,longe,longanecker,lonero,lohmeyer,loeza,lobstein,lobner,lober,littman,litalien,lippe,lints,lijewski,ligas,liebert,liebermann,liberati,lezcano,levinthal,lessor,lesieur,lenning,lengel,lempke,lemp,lemar,leitzke,leinweber,legrone,lege,leder,lawnicki,lauth,laun,laughary,lassley,lashway,larrivee,largen,lare,lanouette,lanno,langille,langen,lamonte,lalin,laible,lafratta,laforte,lacuesta,lacer,labore,laboe,labeau,kwasniewski,kunselman,kuhr,kuchler,krugman,kruckenberg,krotzer,kroemer,krist,krigbaum,kreke,kreisman,kreisler,kreft,krasnow,kras,krag,kouyate,kough,kotz,kostura,korner,kornblum,korczynski,koppa,kopczyk,konz,komorowski,kollen,kolander,koepnick,koehne,kochis,knoch,knippers,knaebel,klipp,klinedinst,klimczyk,klier,klement,klaphake,kisler,kinzie,kines,kindley,kimple,kimm,kimbel,kilker,kilborn,kibbey,khong,ketchie,kerbow,kennemore,kennebeck,kenneally,kenndy,kenmore,kemnitz,kemler,kemery,kelnhofer,kellstrom,kellis,kellams,keiter,keirstead,keeny,keelin,keefauver,keams,kautzman,kaus,katayama,kasson,kassim,kasparian,kase,karwoski,kapuscinski,kaneko,kamerling,kamada,kalka,kalar,kakacek,kaczmarczyk,jurica,junes,journell,jolliffe,johnsey,jindra,jimenz,jette,jesperson,jerido,jenrette,jencks,jech,jayroe,jayo,javens,jaskot,jaros,jaquet,janowiak,jaegers,jackel,izumi,irelan,inzunza,imoto,imme,iglehart,iannone,iannacone,huyler,hussaini,hurlock,hurlbutt,huprich,humphry,hulslander,huelsman,hudelson,hudecek,hsia,hreha,hoyland,howk,housholder,housden,houff,horkey,honan,homme,holtzberg,hollyfield,hollings,hollenbaugh,hokenson,hogrefe,hogland,hoel,hodgkin,hochhalter,hjelle,hittson,hinderman,hinchliffe,hime,hilyer,hilby,hibshman,heydt,hewell,heward,hetu,hestand,heslep,herridge,herner,hernande,hermandez,hermance,herbold,heon,henthorne,henion,henao,heming,helmkamp,hellberg,heidgerken,heichel,hehl,hegedus,heckathorne,hearron,haymer,haycook,havlicek,hausladen,haseman,hartsook,hartog,harns,harne,harmann,haren,hanserd,hanners,hanekamp,hamra,hamley,hamelin,hamblet,hakimi,hagle,hagin,haehn,haeck,hackleman,haacke,gulan,guirand,guiles,guggemos,guerrieri,guerreiro,guereca,gudiel,guccione,gubler,gruenwald,gritz,grieser,grewe,grenon,gregersen,grefe,grech,grecco,gravette,grassia,granholm,graner,grandi,grahan,gradowski,gradney,graczyk,gouthier,gottschall,goracke,gootee,goodknight,goodine,gonzalea,gonterman,gonalez,gomm,goleman,goldtooth,goldstone,goldey,golan,goen,goeller,goel,goecke,godek,goan,glunz,gloyd,glodowski,glinski,glawe,girod,girdley,gindi,gillings,gildner,giger,giesbrecht,gierke,gier,giboney,giaquinto,giannakopoulo,giaimo,giaccio,giacalone,gessel,gerould,gerlt,gerhold,geralds,genson,genereux,gellatly,geigel,gehrig,gehle,geerdes,geagan,gawel,gavina,gauss,gatwood,gathman,gaster,garske,garratt,garms,garis,gansburg,gammell,gambale,gamba,galimore,gadway,gadoury,furrer,furino,fullard,fukui,fryou,friesner,friedli,friedl,friedberg,freyermuth,fremin,fredell,fraze,franken,foth,fote,fortini,fornea,formanek,forker,forgette,folan,foister,foglesong,flinck,flewellen,flaten,flaig,fitgerald,fischels,firman,finstad,finkelman,finister,fina,fetterhoff,ferriter,ferch,fennessy,feltus,feltes,feinman,farve,farry,farrall,farag,falzarano,falck,falanga,fakhoury,fairbrother,fagley,faggins,facteau,ewer,ewbank,evola,evener,eustis,estwick,estel,essa,espinola,escutia,eschmann,erpelding,ernsberger,erling,entz,engelhart,enbody,emick,elsinger,ellinwood,ellingsen,ellicott,elkind,eisinger,eisenbeisz,eischen,eimer,eigner,eichhorst,ehmke,egleston,eggett,efurd,edgeworth,eckels,ebey,eberling,eagleton,dwiggins,dweck,dunnings,dunnavant,dumler,duman,dugue,duerksen,dudeck,dreisbach,drawdy,drawbaugh,draine,draggoo,dowse,dovel,doughton,douds,doubrava,dort,dorshorst,dornier,doolen,donavan,dominik,domingez,dolder,dold,dobies,diskin,disano,dirden,diponio,dipirro,dimock,diltz,dillabough,diley,dikes,digges,digerolamo,diel,dicharry,dicecco,dibartolomeo,diamant,dewire,devone,dessecker,dertinger,derousselle,derk,depauw,depalo,denherder,demeyer,demetro,demastus,delvillar,deloye,delosrios,delgreco,delarge,delangel,dejongh,deitsch,degiorgio,degidio,defreese,defoe,decambra,debenedetto,deaderick,daza,dauzat,daughenbaugh,dato,dass,darwish,dantuono,danton,dammeyer,daloia,daleo,dagg,dacey,curts,cuny,cunneen,culverhouse,cucinella,cubit,crumm,crudo,crowford,crout,crotteau,crossfield,crooke,crom,critz,cristaldi,crickmore,cribbin,cremeens,crayne,cradduck,couvertier,cottam,cossio,correy,cordrey,coplon,copass,coone,coody,contois,consla,connelley,connard,congleton,condry,coltey,colindres,colgrove,colfer,colasurdo,cochell,cobbin,clouthier,closs,cloonan,clizbe,clennon,clayburn,claybourn,clausell,clasby,clagett,ciskowski,cirrincione,cinque,cinelli,cimaglia,ciaburri,christiani,christeson,chladek,chizmar,chinnici,chiarella,chevrier,cheves,chernow,cheong,chelton,chanin,cham,chaligoj,celestino,cayce,cavey,cavaretta,caughron,catmull,catapano,cashaw,carullo,carualho,carthon,cartelli,carruba,carrere,carolus,carlstrom,carfora,carello,carbary,caplette,cannell,cancilla,campell,cammarota,camilo,camejo,camarata,caisse,cacioppo,cabbagestalk,cabatu,cabanas,byles,buxbaum,butland,burrington,burnsed,burningham,burlingham,burgy,buitrago,bueti,buehring,buday,bucknell,buchbinder,bucey,bruster,brunston,brouillet,brosious,broomes,brodin,broddy,brochard,britsch,britcher,brierley,brezina,bressi,bressette,breslow,brenden,breier,brei,braymer,brasuell,branscomb,branin,brandley,brahler,bracht,bracamontes,brabson,boyne,boxell,bowery,bovard,boutelle,boulette,bottini,botkins,bosen,boscia,boscarino,borich,boreman,bordoy,bordley,bordenet,boquet,boocks,bolner,boissy,boilard,bohnen,bohall,boening,boccia,boccella,bobe,blyth,biviano,bitto,bisel,binstock,bines,billiter,bigsby,bighorse,bielawski,bickmore,bettin,bettenhausen,besson,beseau,berton,berroa,berntson,bernas,berisford,berhow,bergsma,benyo,benyard,bente,bennion,benko,belsky,bellavance,belasco,belardo,beidler,behring,begnaud,bega,befort,beek,bedore,beddard,becknell,beardslee,beardall,beagan,bayly,bauza,bautz,bausman,baumler,batterson,battenfield,bassford,basse,basemore,baruch,bartholf,barman,baray,barabas,banghart,banez,balsam,ballester,ballagh,baldock,bagnoli,bagheri,bacus,bacho,baccam,axson,averhart,aver,austill,auberry,athans,atcitty,atay,astarita,ascolese,artzer,arrasmith,argenbright,aresco,aranjo,appleyard,appenzeller,apilado,antonetti,antis,annas,angwin,andris,andries,andreozzi,ando,andis,anderegg,amyot,aminov,amelung,amelio,amason,alviar,allendorf,aldredge,alcivar,alaya,alapai,airington,aina,ailor,ahrns,ahmadi,agresta,affolter,aeschlimann,adney,aderhold,adachi,ackiss,aben,abdelhamid,abar,aase,zorilla,zordan,zollman,zoch,zipfel,zimmerle,zike,ziel,zens,zelada,zaman,zahner,zadora,zachar,zaborowski,zabinski,yzquierdo,yoshizawa,yori,yielding,yerton,yehl,yeargain,yeakley,yamaoka,yagle,yablonski,wynia,wyne,wyers,wrzesinski,wrye,wriston,woolums,woolen,woodlock,woodle,wonser,wombacher,wollschlager,wollen,wolfley,wolfer,wisse,wisell,wirsing,winstanley,winsley,winiecki,winiarski,winge,winesett,windell,winberry,willyard,willemsen,wilkosz,wilensky,wikle,wiford,wienke,wieneke,wiederhold,wiebold,widick,wickenhauser,whitrock,whisner,whinery,wherley,whedbee,wheadon,whary,wessling,wessells,wenninger,wendroth,wende,wellard,weirick,weinkauf,wehrman,weech,weathersbee,warncke,wardrip,walstrom,walkowski,walcutt,waight,wagman,waggett,wadford,vowles,vormwald,vondran,vohs,vitt,vitalo,viser,vinas,villena,villaneuva,villafranca,villaflor,vilain,vicory,viana,vian,verucchi,verra,venzke,venske,veley,veile,veeder,vaske,vasconez,vargason,varble,vanwert,vantol,vanscooter,vanmetre,vanmaanen,vanhise,vaneaton,vandyk,vandriel,vandorp,vandewater,vandervelden,vanderstelt,vanderhoef,vanderbeck,vanbibber,vanalstine,vanacore,valdespino,vaill,vailes,vagliardo,ursini,urrea,urive,uriegas,umphress,ucci,uballe,tynon,twiner,tutton,tudela,tuazon,troisi,tripplett,trias,trescott,treichel,tredo,tranter,tozer,toxey,tortorici,tornow,topolski,topia,topel,topalian,tonne,tondre,tola,toepke,tisdell,tiscareno,thornborrow,thomison,thilges,theuret,therien,thagard,thacher,texter,terzo,tenpenny,tempesta,teetz,teaff,tavella,taussig,tatton,tasler,tarrence,tardie,tarazon,tantillo,tanney,tankson,tangen,tamburo,tabone,szilagyi,syphers,swistak,swiatkowski,sweigert,swayzer,swapp,svehla,sutphen,sutch,susa,surma,surls,sundermeyer,sundeen,sulek,sughrue,sudol,sturms,stupar,stum,stuckman,strole,strohman,streed,strebeck,strausser,strassel,stpaul,storts,storr,stommes,stmary,stjulien,stika,stiggers,sthill,stevick,sterman,stepanek,stemler,stelman,stelmack,steinkamp,steinbock,stcroix,stcharles,staudinger,stanly,stallsworth,stalley,srock,spritzer,spracklin,spinuzzi,spidell,speyrer,sperbeck,spendlove,speckman,spargur,spangenberg,spaid,sowle,soulier,sotolongo,sostre,sorey,sonier,somogyi,somera,soldo,soderholm,snoots,snooks,snoke,snodderly,snee,smithhart,smillie,smay,smallman,sliwinski,slentz,sledd,slager,skogen,skog,skarda,skalicky,siwek,sitterson,sisti,sissel,sinopoli,similton,simila,simenson,silvertooth,silos,siggins,sieler,siburt,sianez,shurley,shular,shuecraft,shreeves,shollenberger,shoen,shishido,shipps,shipes,shinall,sherfield,shawe,sharrett,sharrard,shankman,sessum,serviss,servello,serice,serda,semler,semenza,selmon,sellen,seley,seidner,seib,sehgal,seelbach,sedivy,sebren,sebo,seanez,seagroves,seagren,seabron,schwertner,schwegel,schwarzer,schrunk,schriefer,schreder,schrank,schopp,schonfeld,schoenwetter,schnall,schnackenberg,schnack,schmutzler,schmierer,schmidgall,schlup,schloemer,schlitt,schermann,scherff,schellenberg,schain,schaedler,schabel,scaccia,saye,saurez,sasseen,sasnett,sarti,sarra,sarber,santoy,santeramo,sansoucy,sando,sandles,sandau,samra,samaha,salizar,salam,saindon,sagaser,saeteun,sadusky,sackman,sabater,saas,ruthven,ruszkowski,rusche,rumpf,ruhter,ruhenkamp,rufo,rudge,ruddle,rowlee,rowand,routhier,rougeot,rotramel,rotan,rosten,rosillo,rookard,roode,rongstad,rollie,roider,roffe,roettger,rodick,rochez,rochat,rivkin,rivadeneira,riston,risso,rinderknecht,riis,riggsbee,rieker,riegle,riedy,richwine,richmon,ricciuti,riccardo,ricardson,rhew,revier,remsberg,remiszewski,rembold,rella,reinken,reiland,reidel,reichart,rehak,redway,rednour,redifer,redgate,redenbaugh,redburn,readus,raybuck,rauhuff,rauda,ratte,rathje,rappley,rands,ramseyer,ramseur,ramsdale,ramo,ramariz,raitz,raisch,rainone,rahr,ragasa,rafalski,radunz,quenzer,queja,queenan,pyun,putzier,puskas,purrington,puri,punt,pullar,pruse,pring,primeau,prevette,preuett,prestage,pownell,pownall,potthoff,potratz,poth,poter,posthuma,posen,porritt,popkin,poormon,polidoro,polcyn,pokora,poer,pluviose,plock,pleva,placke,pioli,pingleton,pinchback,pieretti,piccone,piatkowski,philley,phibbs,phay,phagan,pfund,peyer,pettersen,petter,petrucelli,petropoulos,petras,petix,pester,pepperman,pennick,penado,pelot,pelis,peeden,pechon,peal,pazmino,patchin,pasierb,parran,parilla,pardy,parcells,paragas,paradee,papin,panko,pangrazio,pangelinan,pandya,pancheri,panas,palmiter,pallares,palinkas,palek,pagliaro,packham,pacitti,ozier,overbaugh,oursler,ouimette,otteson,otsuka,othon,osmundson,oroz,orgill,ordeneaux,orama,oppy,opheim,onkst,oltmanns,olstad,olofson,ollivier,olejniczak,okura,okuna,ohrt,oharra,oguendo,ogier,offermann,oetzel,oechsle,odoherty,oddi,ockerman,occhiogrosso,obryon,obremski,nyreen,nylund,nylen,nyholm,nuon,nuanes,norrick,noris,nordell,norbury,nooner,nomura,nole,nolden,nofsinger,nocito,niedbala,niebergall,nicolini,nevils,neuburger,nemerofsky,nemecek,nazareno,nastri,nast,nagorski,myre,muzzey,mutschler,muther,musumeci,muranaka,muramoto,murad,murach,muns,munno,muncrief,mugrage,muecke,mozer,moyet,mowles,mottern,mosman,mosconi,morine,morge,moravec,morad,mones,moncur,monarez,molzahn,moglia,moesch,mody,modisett,mitnick,mithcell,mitchiner,mistry,misercola,mirabile,minvielle,mino,minkler,minifield,minichiello,mindell,minasian,milteer,millwee,millstein,millien,mikrut,mihaly,miggins,michard,mezo,metzner,mesquita,merriwether,merk,merfeld,mercik,mercadante,menna,mendizabal,mender,melusky,melquist,mellado,meler,melendes,mekeel,meiggs,megginson,meck,mcwherter,mcwayne,mcsparren,mcrea,mcneff,mcnease,mcmurrin,mckeag,mchughes,mcguiness,mcgilton,mcelreath,mcelhone,mcelhenney,mceldowney,mccurtain,mccure,mccosker,mccory,mccormic,mccline,mccleave,mcclatchey,mccarney,mccanse,mcallen,mazzie,mazin,mazanec,mayette,mautz,maun,mattas,mathurin,mathiesen,massmann,masri,masias,mascolo,mascetti,mascagni,marzolf,maruska,martain,marszalek,marolf,marmas,marlor,markwood,marinero,marier,marich,marcom,marciante,marchman,marchio,marbach,manzone,mantey,mannina,manhardt,manaois,malmgren,mallonee,mallin,mallary,malette,makinson,makins,makarewicz,mainwaring,maiava,magro,magouyrk,magett,maeder,madyun,maduena,maden,madeira,mackins,mackel,macinnes,macia,macgowan,lyssy,lyerly,lyalls,lutter,lunney,luksa,ludeman,lucidi,lucci,lowden,lovier,loughridge,losch,lorson,lorenzano,lorden,lorber,lopardo,loosier,loomer,longsdorf,longchamps,loncar,loker,logwood,loeffelholz,lockmiller,livoti,linford,linenberger,lindloff,lindenbaum,limoges,liley,lighthill,lightbourne,lieske,leza,levandoski,leuck,lepere,leonhart,lenon,lemma,lemler,leising,leinonen,lehtinen,lehan,leetch,leeming,ledyard,ledwith,ledingham,leclere,leck,lebert,leandry,lazzell,layo,laye,laxen,lawther,lawerance,lavoy,lavertu,laverde,latouche,latner,lathen,laskin,lashbaugh,lascala,larroque,larick,laraia,laplume,lanzilotta,lannom,landrigan,landolt,landess,lamkins,lalla,lalk,lakeman,lakatos,laib,lahay,lagrave,lagerquist,lafoy,lafleche,lader,labrada,kwiecinski,kutner,kunshier,kulakowski,kujak,kuehnle,kubisiak,krzyminski,krugh,krois,kritikos,krill,kriener,krewson,kretzschmar,kretz,kresse,kreiter,kreischer,krebel,krans,kraling,krahenbuhl,kouns,kotson,kossow,kopriva,konkle,kolter,kolk,kolich,kohner,koeppen,koenigs,kock,kochanski,kobus,knowling,knouff,knoerzer,knippel,kloberdanz,kleinert,klarich,klaassen,kisamore,kirn,kiraly,kipps,kinson,kinneman,kington,kine,kimbriel,kille,kibodeaux,khamvongsa,keylon,kever,keser,kertz,kercheval,kendrix,kendle,kempt,kemple,keesey,keatley,kazmierski,kazda,kazarian,kawashima,katsch,kasun,kassner,kassem,kasperski,kasinger,kaschak,karels,kantola,kana,kamai,kalthoff,kalla,kalani,kahrs,kahanek,kacher,jurasek,jungels,jukes,juelfs,judice,juda,josselyn,jonsson,jonak,joens,jobson,jegede,jeanjacques,jaworowski,jaspers,jannsen,janner,jankowiak,jank,janiak,jackowski,jacklin,jabbour,iyer,iveson,isner,iniquez,ingwerson,ingber,imbrogno,ille,ikehara,iannelli,hyson,huxford,huseth,hurns,hurney,hurles,hunnings,humbarger,hulan,huisinga,hughett,hughen,hudler,hubiak,hricko,hoversten,hottel,hosaka,horsch,hormann,hordge,honzell,homburg,holten,holme,hollopeter,hollinsworth,hollibaugh,holberg,hohmann,hoenstine,hodell,hodde,hiter,hirko,hinzmann,hinrichsen,hinger,hincks,hilz,hilborn,highley,higashi,hieatt,hicken,heverly,hesch,hervert,hershkowitz,herreras,hermanns,herget,henriguez,hennon,hengel,helmlinger,helmig,heldman,heizer,heinitz,heifner,heidorn,heglin,heffler,hebner,heathman,heaslip,hazlip,haymes,hayase,hawver,havermale,havas,hauber,hashim,hasenauer,harvel,hartney,hartel,harsha,harpine,harkrider,harkin,harer,harclerode,hanzely,hanni,hannagan,hampel,hammerschmidt,hamar,hallums,hallin,hainline,haid,haggart,hafen,haer,hadiaris,hadad,hackford,habeeb,guymon,guttery,gunnett,guillette,guiliano,guilbeaux,guiher,guignard,guerry,gude,gucman,guadian,grzybowski,grzelak,grussendorf,grumet,gruenhagen,grudzinski,grossmann,grof,grisso,grisanti,griffitts,griesbaum,grella,gregston,graveline,grandusky,grandinetti,gramm,goynes,gowing,goudie,gosman,gort,gorsline,goralski,goodstein,goodroe,goodlin,goodheart,goodhart,gonzelez,gonthier,goldsworthy,goldade,goettel,goerlitz,goepfert,goehner,goben,gobeille,gliem,gleich,glasson,glascoe,gladwell,giusto,girdner,gipple,giller,giesing,giammona,ghormley,germon,geringer,gergely,gerberich,gepner,gens,genier,gemme,gelsinger,geigle,gebbia,gayner,gavitt,gatrell,gastineau,gasiewski,gascoigne,garro,garin,ganong,ganga,galpin,gallus,galizia,gajda,gahm,gagen,gaffigan,furno,furnia,furgason,fronczak,frishman,friess,frierdich,freestone,franta,frankovich,fors,forres,forrer,florido,flis,flicek,flens,flegal,finkler,finkenbinder,finefrock,filpo,filion,fierman,fieldman,ferreyra,fernendez,fergeson,fera,fencil,feith,feight,federici,federer,fechtner,feagan,fausnaugh,faubert,fata,farman,farinella,fantauzzi,fanara,falso,falardeau,fagnani,fabro,excell,ewton,evey,everetts,evarts,etherington,estremera,estis,estabrooks,essig,esplin,espenschied,ernzen,eppes,eppard,entwisle,emison,elison,elguezabal,eledge,elbaz,eisler,eiden,eichorst,eichert,egle,eggler,eggimann,edey,eckerman,echelberger,ebbs,ebanks,dziak,dyche,dyce,dusch,duross,durley,durate,dunsworth,dumke,dulek,duhl,duggin,dufford,dudziak,ducrepin,dubree,dubre,dubie,dubas,droste,drisko,drewniak,doxtator,dowtin,downum,doubet,dottle,dosier,doshi,dorst,dorset,dornbusch,donze,donica,domanski,domagala,dohse,doerner,doerfler,doble,dobkins,dilts,digiulio,digaetano,dietzel,diddle,dickel,dezarn,devoy,devoss,devilla,devere,deters,desvergnes,deshay,desena,deross,depedro,densley,demorest,demore,demora,demirjian,demerchant,dematteis,demateo,delgardo,delfavero,delaurentis,delamar,delacy,deitrich,deisher,degracia,degraaf,defries,defilippis,decoursey,debruin,debiasi,debar,dearden,dealy,dayhoff,davino,darvin,darrisaw,darbyshire,daquino,daprile,danh,danahy,dalsanto,dallavalle,dagel,dadamo,dacy,dacunha,dabadie,czyz,cutsinger,curney,cuppernell,cunliffe,cumby,cullop,cullinane,cugini,cudmore,cuda,cucuzza,cuch,crumby,crouser,critton,critchley,cremona,cremar,crehan,creary,crasco,crall,crabbe,cozzolino,cozier,coyner,couvillier,counterman,coulthard,coudriet,cottom,corzo,cornutt,corkran,corda,copelin,coonan,consolo,conrow,conran,connerton,conkwright,condren,comly,comisky,colli,collet,colello,colbeck,colarusso,coiner,cohron,codere,cobia,clure,clowser,clingenpeel,clenney,clendaniel,clemenson,cleere,cleckler,claybaugh,clason,cirullo,ciraulo,ciolek,ciampi,christopherse,chovanec,chopra,chol,chiem,chestnutt,chesterman,chernoff,chermak,chelette,checketts,charpia,charo,chargois,champman,challender,chafins,cerruto,celi,cazenave,cavaluzzi,cauthon,caudy,catino,catano,cassaro,cassarino,carrano,carozza,carow,carmickle,carlyon,carlew,cardena,caputi,capley,capalbo,canseco,candella,campton,camposano,calleros,calleja,callegari,calica,calarco,calais,caillier,cahue,cadenhead,cadenas,cabera,buzzo,busto,bussmann,busenbark,burzynski,bursley,bursell,burle,burkleo,burkette,burczyk,bullett,buikema,buenaventura,buege,buechel,budreau,budhram,bucknam,brye,brushwood,brumbalow,brulotte,bruington,bruderer,brougher,bromfield,broege,brodhead,brocklesby,broadie,brizuela,britz,brisendine,brilla,briggeman,brierton,bridgeford,breyfogle,brevig,breuninger,bresse,bresette,brelsford,breitbach,brayley,braund,branscom,brandner,brahm,braboy,brabble,bozman,boyte,boynes,boyken,bowell,bowan,boutet,bouse,boulet,boule,bottcher,bosquez,borrell,boria,bordes,borchard,bonson,bonino,bonas,bonamico,bolstad,bolser,bollis,bolich,bolf,boker,boileau,bohac,bogucki,bogren,boeger,bodziony,bodo,bodley,boback,blyther,blenker,blazina,blase,blamer,blacknall,blackmond,bitz,biser,biscardi,binz,bilton,billotte,billafuerte,bigford,biegler,bibber,bhandari,beyersdorf,bevelle,bettendorf,bessard,bertsche,berne,berlinger,berish,beranek,bentson,bentsen,benskin,benoy,benoist,benitz,belongia,belmore,belka,beitzel,beiter,beitel,behrns,becka,beaudion,beary,beare,beames,beabout,beaber,bazzano,bazinet,baucum,batrez,baswell,bastos,bascomb,bartha,barstad,barrilleaux,barretto,barresi,barona,barkhurst,barke,bardales,barczak,barca,barash,banfill,balonek,balmes,balko,balestrieri,baldino,baldelli,baken,baiza,bahner,baek,badour,badley,badia,backmon,bacich,bacca,ayscue,aynes,ausiello,auringer,auiles,aspinwall,askwith,artiga,arroliga,arns,arman,arellanes,aracena,antwine,antuna,anselmi,annen,angelino,angeli,angarola,andrae,amodio,ameen,alwine,alverio,altro,altobello,altemus,alquicira,allphin,allemand,allam,alessio,akpan,akerman,aiona,agyeman,agredano,adamik,adamczak,acrey,acevado,abreo,abrahamsen,abild,zwicker,zweig,zuvich,zumpano,zuluaga,zubek,zornes,zoglmann,ziminski,zimbelman,zhanel,zenor,zechman,zauner,zamarron,zaffino,yusuf,ytuarte,yett,yerkovich,yelder,yasuda,yapp,yaden,yackley,yaccarino,wytch,wyre,wussow,worthing,wormwood,wormack,wordell,woodroof,woodington,woodhams,wooddell,wollner,wojtkowski,wojcicki,wogan,wlodarczyk,wixted,withington,withem,wisler,wirick,winterhalter,winski,winne,winemiller,wimett,wiltfong,willibrand,willes,wilkos,wilbon,wiktor,wiggers,wigg,wiegmann,wickliff,wiberg,whittler,whittenton,whitling,whitledge,whitherspoon,whiters,whitecotton,whitebird,wheary,wetherill,westmark,westaby,wertenberger,wentland,wenstrom,wenker,wellen,weier,wegleitner,wedekind,wawers,wassel,warehime,wandersee,waltmon,waltersheid,walbridge,wakely,wakeham,wajda,waithe,waidelich,wahler,wahington,wagster,wadel,vuyovich,vuolo,vulich,vukovich,volmer,vollrath,vollbrecht,vogelgesang,voeller,vlach,vivar,vitullo,vitanza,visker,visalli,viray,vinning,viniard,villapando,villaman,vier,viar,viall,verstraete,vermilya,verdon,venn,velten,velis,vanoven,vanorder,vanlue,vanheel,vanderwoude,vanderheide,vandenheuvel,vandenbos,vandeberg,vandal,vanblarcom,vanaken,vanacker,vallian,valine,valent,vaine,vaile,vadner,uttech,urioste,urbanik,unrath,unnasch,underkofler,uehara,tyrer,tyburski,twaddle,turntine,tunis,tullock,tropp,troilo,tritsch,triola,trigo,tribou,tribley,trethewey,tress,trela,treharne,trefethen,trayler,trax,traut,tranel,trager,traczyk,towsley,torrecillas,tornatore,tork,torivio,toriello,tooles,tomme,tolosa,tolen,toca,titterington,tipsword,tinklenberg,tigney,tigert,thygerson,thurn,thur,thorstad,thornberg,thoresen,thomaston,tholen,thicke,theiler,thebeau,theaux,thaker,tewani,teufel,tetley,terrebonne,terrano,terpening,tela,teig,teichert,tegethoff,teele,tatar,tashjian,tarte,tanton,tanimoto,tamimi,tamas,talman,taal,szydlowski,szostak,swoyer,swerdlow,sweeden,sweda,swanke,swander,suyama,suriano,suri,surdam,suprenant,sundet,summerton,sult,suleiman,suffridge,suby,stych,studeny,strupp,struckman,strief,strictland,stremcha,strehl,stramel,stoy,stoutamire,storozuk,stordahl,stopher,stolley,stolfi,stoeger,stockhausen,stjulian,stivanson,stinton,stinchfield,stigler,stieglitz,stgermaine,steuer,steuber,steuart,stepter,stepnowski,stepanian,steimer,stefanelli,stebner,stears,steans,stayner,staubin,statz,stasik,starn,starmer,stargel,stanzione,stankovich,stamour,staib,stadelman,stadel,stachura,squadrito,springstead,spragg,spigelmyer,spieler,spaur,sovocool,soundara,soulia,souffrant,sorce,sonkin,sodhi,soble,sniffen,smouse,smittle,smithee,smedick,slowinski,slovacek,slominski,skowronek,skokan,skanes,sivertson,sinyard,sinka,sinard,simonin,simonian,simmions,silcott,silberg,siefken,siddon,shuttlesworth,shubin,shubeck,shiro,shiraki,shipper,shina,shilt,shikles,shideler,shenton,shelvey,shellito,shelhorse,shawcroft,shatto,shanholtzer,shamonsky,shadden,seymer,seyfarth,setlock,serratos,serr,sepulueda,senay,semmel,semans,selvig,selkirk,selk,seligson,seldin,seiple,seiersen,seidling,seidensticker,secker,searson,scordo,scollard,scoggan,scobee,sciandra,scialdone,schwimmer,schwieger,schweer,schwanz,schutzenhofer,schuetze,schrodt,schriever,schriber,schremp,schrecongost,schraeder,schonberg,scholtz,scholle,schoettle,schoenemann,schoene,schnitker,schmuhl,schmith,schlotterbeck,schleppenbach,schlee,schickel,schibi,schein,scheide,scheibe,scheib,schaumberg,schardein,schaalma,scantlin,scantlebury,sayle,sausedo,saurer,sassone,sarracino,saric,sanz,santarpia,santano,santaniello,sangha,sandvik,sandoral,sandobal,sandercock,sanantonio,salviejo,salsberry,salois,salazer,sagon,saglibene,sagel,sagal,saetern,saefong,sadiq,sabori,saballos,rygiel,rushlow,runco,rulli,ruller,ruffcorn,ruess,ruebush,rudlong,rudin,rudgers,rudesill,ruderman,rucki,rucinski,rubner,rubinson,rubiano,roznowski,rozanski,rowson,rower,rounsaville,roudabush,rotundo,rothell,rotchford,rosiles,roshak,rosetti,rosenkranz,rorer,rollyson,rokosz,rojek,roitman,rohrs,rogel,roewe,rodriges,rodocker,rodgerson,rodan,rodak,rocque,rochholz,robicheau,robbinson,roady,ritchotte,ripplinger,rippetoe,ringstaff,ringenberg,rinard,rigler,rightmire,riesen,riek,ridges,richner,richberg,riback,rial,rhyner,rhees,resse,renno,rendleman,reisz,reisenauer,reinschmidt,reinholt,reinard,reifsnyder,rehfeld,reha,regester,reffitt,redler,rediske,reckner,reckart,rebolloso,rebollar,reasonover,reasner,reaser,reano,reagh,raval,ratterman,ratigan,rater,rasp,raneses,randolf,ramil,ramdas,ramberg,rajaniemi,raggio,ragel,ragain,rade,radaker,racioppi,rabinovich,quickle,quertermous,queal,quartucci,quander,quain,pynes,putzel,purl,pulizzi,pugliares,prusak,prueter,protano,propps,primack,prieur,presta,preister,prawl,pratley,pozzo,powless,povey,pottorf,pote,postley,porzio,portney,ponzi,pontoriero,ponto,pont,poncedeleon,polimeni,polhamus,polan,poetker,poellnitz,podgurski,plotts,pliego,plaugher,plantenberg,plair,plagmann,pizzitola,pittinger,pitcavage,pischke,piontek,pintar,pinnow,pinneo,pinley,pingel,pinello,pimenta,pillard,piker,pietras,piere,phillps,pfleger,pfahl,pezzuti,petruccelli,petrello,peteet,pescatore,peruzzi,perusse,perotta,perona,perini,perelman,perciful,peppin,pennix,pennino,penalosa,pemble,pelz,peltzer,pelphrey,pelote,pellum,pellecchia,pelikan,peitz,pebworth,peary,pawlicki,pavelich,paster,pasquarella,paskey,paseur,paschel,parslow,parrow,parlow,parlett,parler,pargo,parco,paprocki,panepinto,panebianco,pandy,pandey,pamphile,pamintuan,pamer,paluso,paleo,paker,pagett,paczkowski,ozburn,ovington,overmeyer,ouellet,osterlund,oslin,oseguera,osaki,orrock,ormsbee,orlikowski,organista,oregan,orebaugh,orabuena,openshaw,ontiveroz,ondo,omohundro,ollom,ollivierre,olivencia,oley,olazabal,okino,offenberger,oestmann,ocker,obar,oakeson,nuzum,nurre,nowinski,novosel,norquist,nordlie,noorani,nonnemacher,nolder,njoku,niznik,niwa,niss,ninneman,nimtz,niemczyk,nieder,nicolo,nichlos,niblack,newtown,newill,newcom,neverson,neuhart,neuenschwande,nestler,nenno,nejman,neiffer,neidlinger,neglia,nazarian,navor,nary,narayan,nangle,nakama,naish,naik,nadolski,muscato,murphrey,murdick,murchie,muratalla,munnis,mundwiller,muncey,munce,mullenbach,mulhearn,mulcahey,muhammed,muchow,mountford,moudry,mosko,morvay,morrical,morr,moros,mormann,morgen,moredock,morden,mordarski,moravek,morandi,mooradian,montejo,montegut,montan,monsanto,monford,moncus,molinas,molek,mohd,moehrle,moehring,modzeleski,modafferi,moala,moake,miyahira,mitani,mischel,minges,minella,mimes,milles,milbrett,milanes,mikolajczyk,mikami,meucci,metler,methven,metge,messmore,messerschmidt,mesrobian,meservey,merseal,menor,menon,menear,melott,melley,melfi,meinhart,megivern,megeath,meester,meeler,meegan,medoff,medler,meckley,meath,mearns,mcquigg,mcpadden,mclure,mckellips,mckeithen,mcglathery,mcginnes,mcghan,mcdonel,mccullom,mccraken,mccrackin,mcconathy,mccloe,mcclaughry,mcclaflin,mccarren,mccaig,mcaulay,mcaffee,mazzuca,maytubby,mayner,maymi,mattiello,matthis,matthees,matthai,mathiason,mastrogiovann,masteller,mashack,marucci,martorana,martiniz,marter,martellaro,marsteller,marris,marrara,maroni,marolda,marocco,maritn,maresh,maready,marchione,marbut,maranan,maragno,mapps,manrriquez,mannis,manni,mangina,manganelli,mancera,mamon,maloch,mallozzi,maller,majchrzak,majano,mainella,mahanna,maertens,madon,macumber,macioce,machuga,machlin,machala,mabra,lybbert,luvert,lutts,luttrull,lupez,lukehart,ludewig,luchsinger,lovecchio,louissaint,loughney,lostroh,lorton,lopeman,loparo,londo,lombera,lokietek,loiko,lohrenz,lohan,lofties,locklar,lockaby,lobianco,llano,livesey,litster,liske,linsky,linne,lindbeck,licudine,leyua,levie,leonelli,lenzo,lenze,lents,leitao,leidecker,leibold,lehne,legan,lefave,leehy,ledue,lecount,lecea,leadley,lazzara,lazcano,lazalde,lavi,lavancha,lavan,latu,latty,lato,larranaga,lapidus,lapenta,langridge,langeveld,langel,landowski,landgren,landfried,lamattina,lallier,lairmore,lahaie,lagazo,lagan,lafoe,lafluer,laflame,lafevers,lada,lacoss,lachney,labreck,labreche,labay,kwasnik,kuzyk,kutzner,kushnir,kusek,kurtzman,kurian,kulhanek,kuklinski,kueny,kuczynski,kubitz,kruschke,krous,krompel,kritz,krimple,kriese,krenzer,kreis,kratzke,krane,krage,kraebel,kozub,kozma,kouri,koudelka,kotcher,kotas,kostic,kosh,kosar,kopko,kopka,kooy,konigsberg,konarski,kolmer,kohlmeyer,kobbe,knoop,knoedler,knocke,knipple,knippenberg,knickrehm,kneisel,kluss,klossner,klipfel,klawiter,klasen,kittles,kissack,kirtland,kirschenmann,kirckof,kiphart,kinstler,kinion,kilton,killman,kiehl,kief,kett,kesling,keske,kerstein,kepple,keneipp,kempson,kempel,kehm,kehler,keeran,keedy,kebert,keast,kearbey,kawaguchi,kaupu,kauble,katzenbach,katcher,kartes,karpowicz,karpf,karban,kanzler,kanarek,kamper,kaman,kalsow,kalafut,kaeser,kaercher,kaeo,kaeding,jurewicz,julson,jozwick,jollie,johnigan,johll,jochum,jewkes,jestes,jeska,jereb,jaurez,jarecki,jansma,janosik,jandris,jamin,jahr,jacot,ivens,itson,isenhower,iovino,ionescu,ingrum,ingels,imrie,imlay,ihlenfeld,ihde,igou,ibach,huyett,huppe,hultberg,hullihen,hugi,hueso,huesman,hsiao,hronek,hovde,housewright,houlahan,hougham,houchen,hostler,hoster,hosang,hornik,hornes,horio,honyumptewa,honeyman,honer,hommerding,holsworth,hollobaugh,hollinshead,hollands,hollan,holecek,holdorf,hokes,hogston,hoesly,hodkinson,hodgman,hodgens,hochstedler,hochhauser,hobbie,hoare,hnat,hiskey,hirschy,hinostroza,hink,hing,hillmer,hillian,hillerman,hietala,hierro,hickling,hickingbottom,heye,heubusch,hesselschward,herriot,hernon,hermida,hermans,hentschel,henningson,henneke,henk,heninger,heltsley,helmle,helminiak,helmes,hellner,hellmuth,helke,heitmeyer,heird,heinle,heinicke,heinandez,heimsoth,heibel,hegyi,heggan,hefel,heeralall,hedrington,heacox,hazlegrove,hazelett,haymore,havenhill,hautala,hascall,harvie,hartrick,hartling,harrer,harles,hargenrader,hanshew,hanly,hankla,hanisch,hancox,hammann,hambelton,halseth,hallisey,halleck,hallas,haisley,hairr,hainey,hainer,hailstock,haertel,guzek,guyett,guster,gussler,gurwitz,gurka,gunsolus,guinane,guiden,gugliotti,guevin,guevarra,guerard,gudaitis,guadeloupe,gschwind,grupe,grumbach,gruenes,gruenberg,grom,grodski,groden,grizzel,gritten,griswald,grishaber,grinage,grimwood,grims,griffon,griffies,gribben,gressley,gren,greenstreet,grealish,gravett,grantz,granfield,granade,gowell,gossom,gorsky,goring,goodnow,goodfriend,goodemote,golob,gollnick,golladay,goldwyn,goldsboro,golds,goldrick,gohring,gohn,goettsch,goertzen,goelz,godinho,goans,glumac,gleisner,gleen,glassner,glanzer,gladue,gjelaj,givhan,girty,girone,girgenti,giorgianni,gilpatric,gillihan,gillet,gilbar,gierut,gierhart,gibert,gianotti,giannetto,giambanco,gharing,geurts,gettis,gettel,gest,germani,gerdis,gerbitz,geppert,gennings,gemmer,gelvin,gellert,gehler,geddings,gearon,geach,gazaille,gayheart,gauld,gaukel,gaudio,gathing,gasque,garstka,garsee,garringer,garofano,garo,garnsey,garigen,garcias,garbe,ganoung,ganfield,ganaway,gamero,galuska,galster,gallacher,galinski,galimi,galik,galeazzi,galdo,galdames,galas,galanis,gaglio,gaeddert,gadapee,fussner,furukawa,fuhs,fuerte,fuerstenberg,fryrear,froese,fringer,frieson,friesenhahn,frieler,friede,freymuth,freyman,freudenberg,freman,fredricksen,frech,frasch,frantum,frankin,franca,frago,fragnoli,fouquet,fossen,foskett,forner,formosa,formisano,fooks,fons,folino,flott,flesch,flener,flemmons,flanagin,flamino,flamand,fitzerald,findling,filsinger,fillyaw,fillinger,fiechter,ferre,ferdon,feldkamp,fazzio,favia,faulconer,faughnan,faubel,fassler,faso,farrey,farrare,farnworth,farland,fairrow,faille,faherty,fagnant,fabula,fabbri,eylicio,esteve,estala,espericueta,escajeda,equia,enrriquez,enomoto,enmon,engemann,emmerson,emmel,emler,elstad,ellwein,ellerson,eliott,eliassen,elchert,eisenbeis,eisel,eikenberry,eichholz,ehmer,edgerson,echenique,eberley,eans,dziuk,dykhouse,dworak,dutt,dupas,duntz,dunshee,dunovant,dunnaway,dummermuth,duerson,ducotey,duchon,duchesneau,ducci,dubord,duberry,dubach,drummonds,droege,drish,drexel,dresch,dresbach,drenner,drechsler,dowen,dotter,dosreis,doser,dorward,dorin,dorf,domeier,doler,doleman,dolbow,dolbin,dobrunz,dobransky,dobberstein,dlouhy,diosdado,dingmann,dimmer,dimarino,dimaria,dillenburg,dilaura,dieken,dickhaus,dibbles,dibben,diamante,dewilde,dewaard,devich,devenney,devaux,dettinger,desroberts,dershem,dersch,derita,derickson,depina,deorio,deoliveira,denzler,dentremont,denoble,demshar,demond,demint,demichele,demel,delzer,delval,delorbe,delli,delbridge,delanoy,delancy,delahoya,dekle,deitrick,deis,dehnert,degrate,defrance,deetz,deeg,decoster,decena,dearment,daughety,datt,darrough,danzer,danielovich,dandurand,dancause,dalo,dalgleish,daisley,dadlani,daddona,daddio,dacpano,cyprian,cutillo,curz,curvin,cuna,cumber,cullom,cudworth,cubas,crysler,cryderman,crummey,crumbly,crookshanks,croes,criscione,crespi,cresci,creaser,craton,cowin,cowdrey,coutcher,cotterman,cosselman,cosgriff,cortner,corsini,corporan,corniel,cornick,cordts,copening,connick,conlisk,conelli,comito,colten,colletta,coldivar,colclasure,colantuono,colaizzi,coggeshall,cockman,cockfield,cobourn,cobo,cobarrubias,clyatt,cloney,clonch,climes,cleckner,clearo,claybourne,clavin,claridge,claffey,ciufo,cisnero,cipollone,cieslik,ciejka,cichocki,cicchetti,cianflone,chrusciel,christesen,chmielowiec,chirino,chillis,chhoun,chevas,chehab,chaviano,chavaria,chasten,charbonnet,chanley,champoux,champa,chalifoux,cerio,cedotal,cech,cavett,cavendish,catoire,castronovo,castellucci,castellow,castaner,casso,cassels,cassatt,cassar,cashon,cartright,carros,carrisalez,carrig,carrejo,carnicelli,carnett,carlise,carhart,cardova,cardell,carchi,caram,caquias,capper,capizzi,capano,cannedy,campese,calvello,callon,callins,callies,callicutt,calix,calin,califf,calderaro,caldeira,cadriel,cadmus,cadman,caccamise,buttermore,butay,bustamente,busa,burmester,burkard,burhans,burgert,bure,burdin,bullman,bulin,buelna,buehner,budin,buco,buckhanon,bryars,brutger,brus,brumitt,brum,bruer,brucato,broyhill,broy,brownrigg,brossart,brookings,broden,brocklehurst,brockert,bristo,briskey,bringle,bries,bressman,branyan,brands,bramson,brammell,brallier,bozich,boysel,bowthorpe,bowron,bowin,boutilier,boulos,boullion,boughter,bottiglieri,borruso,borreggine,borns,borkoski,borghese,borenstein,boran,booton,bonvillain,bonini,bonello,bolls,boitnott,boike,bohnet,bohnenkamp,bohmer,boeson,boeneke,bodey,bocchino,bobrowski,bobic,bluestein,bloomingdale,blogg,blewitt,blenman,bleck,blaszak,blankenbeckle,blando,blanchfield,blancato,blalack,blakenship,blackett,bisping,birkner,birckhead,bingle,bineau,billiel,bigness,bies,bierer,bhalla,beyerlein,betesh,besler,berzins,bertalan,berntsen,bergo,berganza,bennis,benney,benkert,benjamen,benincasa,bengochia,bendle,bendana,benchoff,benbrook,belsito,belshaw,belinsky,belak,beigert,beidleman,behen,befus,beel,bedonie,beckstrand,beckerle,beato,bauguess,baughan,bauerle,battis,batis,bastone,bassetti,bashor,bary,bartunek,bartoletti,barro,barno,barnicle,barlage,barkus,barkdull,barcellos,barbarino,baranski,baranick,bankert,banchero,bambrick,bamberg,bambenek,balthrop,balmaceda,ballman,balistrieri,balcomb,balboni,balbi,bagner,bagent,badasci,bacot,bache,babione,babic,babers,babbs,avitabile,avers,avena,avance,ausley,auker,audas,aubut,athearn,atcheson,astorino,asplund,aslanian,askari,ashmead,asby,asai,arterbury,artalejo,arqueta,arquero,arostegui,arnell,armeli,arista,arender,arca,arballo,aprea,applen,applegarth,apfel,antonello,antolin,antkowiak,angis,angione,angerman,angelilli,andujo,andrick,anderberg,amigon,amalfitano,alviso,alvez,altice,altes,almarez,allton,allston,allgeyer,allegretti,aliaga,algood,alberg,albarez,albaladejo,akre,aitkin,ahles,ahlberg,agnello,adinolfi,adamis,abramek,abolt,abitong,zurawski,zufall,zubke,zizzo,zipperer,zinner,zinda,ziller,zill,zevallos,zesati,zenzen,zentner,zellmann,zelinsky,zboral,zarcone,zapalac,zaldana,zakes,zaker,zahniser,zacherl,zabawa,zabaneh,youree,younis,yorty,yonce,yero,yerkey,yeck,yeargan,yauch,yashinski,yambo,wrinn,wrightsman,worton,wortley,worland,woolworth,woolfrey,woodhead,woltjer,wolfenden,wolden,wolchesky,wojick,woessner,witters,witchard,wissler,wisnieski,wisinski,winnike,winkowski,winkels,wingenter,wineman,winegardner,wilridge,wilmont,willians,williamsen,wilhide,wilhelmsen,wilhelmi,wildrick,wilden,wiland,wiker,wigglesworth,wiebusch,widdowson,wiant,wiacek,whittet,whitelock,whiteis,whiley,westrope,westpfahl,westin,wessman,wessinger,wesemann,wesby,wertheimer,weppler,wenke,wengler,wender,welp,weitzner,weissberg,weisenborn,weipert,weiman,weidmann,wehrsig,wehrenberg,weemes,weeman,wayner,waston,wasicek,wascom,wasco,warmath,warbritton,waltner,wallenstein,waldoch,waldal,wala,waide,wadlinger,wadhams,vullo,voorheis,vonbargen,volner,vollstedt,vollman,vold,voge,vittorio,violett,viney,vinciguerra,vinal,villata,villarrvel,vilanova,vigneault,vielma,veyna,vessella,versteegh,verderber,venier,venditti,velotta,vejarano,vecchia,vecchi,vastine,vasguez,varella,vanry,vannah,vanhyning,vanhuss,vanhoff,vanhoesen,vandivort,vandevender,vanderlip,vanderkooi,vandebrink,vancott,vallien,vallas,vallandingham,valiquette,valasek,vahey,vagott,uyematsu,urbani,uran,umbach,tyon,tyma,twyford,twombley,twohig,tutterrow,turnes,turkington,turchi,tunks,tumey,tumbaga,tuinstra,tsukamoto,tschetter,trussel,trubey,trovillion,troth,trostel,tron,trinka,trine,triarsi,treto,trautz,tragesser,tooman,toolson,tonozzi,tomkiewicz,tomasso,tolin,tolfree,toelle,tisor,tiry,tinstman,timmermann,tickner,tiburcio,thunberg,thronton,thompsom,theil,thayne,thaggard,teschner,tensley,tenery,tellman,tellado,telep,teigen,teator,teall,tayag,tavis,tattersall,tassoni,tarshis,tappin,tappe,tansley,talone,talford,tainter,taha,taguchi,tacheny,tabak,szymczyk,szwaja,szopinski,syvertsen,swogger,switcher,swist,swierczek,swiech,swickard,swiatek,swezey,swepson,sweezy,swaringen,swanagan,swailes,swade,sveum,svenningsen,svec,suttie,supry,sunga,summerhill,summars,sulit,stys,stutesman,stupak,stumpo,stuller,stuekerjuerge,stuckett,stuckel,stuchlik,stuard,strutton,strop,stromski,stroebel,strehlow,strause,strano,straney,stoyle,stormo,stopyra,stoots,stonis,stoltenburg,stoiber,stoessel,stitzer,stien,stichter,stezzi,stewert,stepler,steinkraus,stegemann,steeples,steenburg,steeley,staszak,stasko,starkson,stanwick,stanke,stanifer,stangel,stai,squiers,spraglin,spragins,spraberry,spoelstra,spisak,spirko,spille,spidel,speyer,speroni,spenst,spartz,sparlin,sparacio,spaman,spainhower,souers,souchet,sosbee,sorn,sorice,sorbo,soqui,solon,soehl,sodergren,sobie,smucker,smsith,smoley,smolensky,smolenski,smolder,smethers,slusar,slowey,slonski,slemmons,slatkin,slates,slaney,slagter,slacum,skutnik,skrzypek,skibbe,sjostrom,sjoquist,sivret,sitko,sisca,sinnett,sineath,simoni,simar,simao,silvestro,silleman,silha,silfies,silberhorn,silacci,sigrist,sieczkowski,sieczka,shure,shulz,shugrue,shrode,shovlin,shortell,shonka,shiyou,shiraishi,shiplett,sheu,shermer,sherick,sheeks,shantz,shakir,shaheed,shadoan,shadid,shackford,shabot,seung,seufert,setty,setters,servis,serres,serrell,serpas,sensenig,senft,semenec,semas,semaan,selvera,sellmeyer,segar,seever,seeney,seeliger,seehafer,seebach,sebben,seaward,seary,searl,searby,scordino,scolieri,scolaro,schwiebert,schwartze,schwaner,schuur,schupbach,schumacker,schum,schudel,schubbe,schroader,schramel,schollmeyer,schoenherr,schoeffler,schoeder,schnurr,schnorr,schneeman,schnake,schnaible,schmaus,schlotter,schinke,schimming,schimek,schikora,scheulen,scherping,schermer,scherb,schember,schellhase,schedler,schanck,schaffhauser,schaffert,schadler,scarola,scarfo,scarff,scantling,scaff,sayward,sayas,saxbury,savel,savastano,sault,satre,sarkar,santellan,sandmeier,sampica,salvesen,saltis,salloum,salling,salce,salatino,salata,salamy,sadowsky,sadlier,sabbatini,sabatelli,sabal,sabados,rydzewski,rybka,rybczyk,rusconi,rupright,rufino,ruffalo,rudiger,rudig,ruda,rubyor,royea,roxberry,rouzer,roumeliotis,rossmann,rosko,rosene,rosenbluth,roseland,rosasco,rosano,rosal,rorabaugh,romie,romaro,rolstad,rollow,rohrich,roghair,rogala,roets,roen,roemmich,roelfs,roeker,roedl,roedel,rodeheaver,roddenberry,rockstad,rocchi,robirds,robben,robasciotti,robaina,rizzotto,rizzio,ritcher,rissman,riseden,ripa,rion,rintharamy,rinehimer,rinck,riling,rietschlin,riesenberg,riemenschneid,rieland,rickenbaugh,rickenbach,rhody,revells,reutter,respress,resnik,remmel,reitmeyer,reitan,reister,reinstein,reino,reinkemeyer,reifschneider,reierson,reichle,rehmeier,rehl,reeds,rede,recar,rebeiro,raybourn,rawl,rautio,raugust,raudenbush,raudales,rattan,rapuano,rapoport,rantanen,ransbottom,raner,ramkissoon,rambousek,raio,rainford,radakovich,rabenhorst,quivers,quispe,quinoes,quilici,quattrone,quates,quance,quale,purswell,purpora,pulera,pulcher,puckhaber,pryer,pruyne,pruit,prudencio,prows,protzman,prothero,prosperi,prospal,privott,pritchet,priem,prest,prell,preer,pree,preddy,preda,pravata,pradhan,potocki,postier,postema,posadas,poremba,popichak,ponti,pomrenke,pomarico,pollok,polkinghorn,polino,pock,plater,plagman,pipher,pinzone,pinkleton,pillette,pillers,pilapil,pignone,pignatelli,piersol,piepho,picton,pickrel,pichard,picchi,piatek,pharo,phanthanouvon,pettingill,pettinato,petrovits,pethtel,petersheim,pershing,perrez,perra,pergram,peretz,perego,perches,pennello,pennella,pendry,penaz,pellish,pecanty,peare,paysour,pavlovich,pavick,pavelko,paustian,patzer,patete,patadia,paszkiewicz,pase,pasculli,pascascio,parrotte,parajon,paparo,papandrea,paone,pantaleon,panning,paniccia,panarello,palmeter,pallan,palardy,pahmeier,padget,padel,oxborrow,oveson,outwater,ottaway,otake,ostermeyer,osmer,osinski,osiecki,oroak,orndoff,orms,orkin,ordiway,opatz,onsurez,onishi,oliger,okubo,okoye,ohlmann,offord,offner,offerdahl,oesterle,oesch,odonnel,odeh,odebralski,obie,obermeier,oberhausen,obenshain,obenchain,nute,nulty,norrington,norlin,nore,nordling,nordhoff,norder,nordan,norals,nogales,noboa,nitsche,niermann,nienhaus,niedringhaus,niedbalski,nicolella,nicolais,nickleberry,nicewander,newfield,neurohr,neumeier,netterville,nersesian,nern,nerio,nerby,nerbonne,neitz,neidecker,neason,nead,navratil,naves,nastase,nasir,nasca,narine,narimatsu,nard,narayanan,nappo,namm,nalbone,nakonechny,nabarro,myott,muthler,muscatello,murriel,murin,muoio,mundel,munafo,mukherjee,muffoletto,muessig,muckey,mucher,mruk,moyd,mowell,mowatt,moutray,motzer,moster,morgenroth,morga,morataya,montross,montezuma,monterroza,montemarano,montello,montbriand,montavon,montaque,monigold,monforte,molgard,moleski,mohsin,mohead,mofield,moerbe,moeder,mochizuki,miyazaki,miyasaki,mital,miskin,mischler,minniear,minero,milosevic,mildenhall,mielsch,midden,michonski,michniak,michitsch,michelotti,micheli,michelfelder,michand,metelus,merkt,merando,meranda,mentz,meneley,menaker,melino,mehaffy,meehl,meech,meczywor,mcweeney,mcumber,mcredmond,mcneer,mcnay,mcmikle,mcmaken,mclaurine,mclauglin,mclaney,mckune,mckinnies,mckague,mchattie,mcgrapth,mcglothen,mcgath,mcfolley,mcdannell,mccurty,mccort,mcclymonds,mcclimon,mcclamy,mccaughan,mccartan,mccan,mccadden,mcburnie,mcburnett,mcbryar,mcannally,mcalevy,mcaleese,maytorena,mayrant,mayland,mayeaux,mauter,matthewson,mathiew,matern,matera,maslow,mashore,masaki,maruco,martorell,martenez,marrujo,marrison,maroun,markway,markos,markoff,markman,marello,marbry,marban,maphis,manuele,mansel,manganello,mandrell,mandoza,manard,manago,maltba,mallick,mallak,maline,malikowski,majure,majcher,maise,mahl,maffit,maffeo,madueno,madlem,madariaga,macvane,mackler,macconnell,macchi,maccarone,lyng,lynchard,lunning,luneau,lunden,lumbra,lumbert,lueth,ludington,luckado,lucchini,lucatero,luallen,lozeau,lowen,lovera,lovelock,louck,lothian,lorio,lorimer,lorge,loretto,longhenry,lonas,loiseau,lohrman,logel,lockie,llerena,livington,liuzzi,liscomb,lippeatt,liou,linhardt,lindelof,lindbo,limehouse,limage,lillo,lilburn,liggons,lidster,liddick,lich,liberato,leysath,lewelling,lesney,leser,lescano,leonette,lentsch,lenius,lemmo,lemming,lemcke,leggette,legerski,legard,leever,leete,ledin,lecomte,lecocq,leakes,leab,lazarz,layous,lawrey,lawery,lauze,lautz,laughinghouse,latulippe,lattus,lattanzio,lascano,larmer,laris,larcher,laprise,lapin,lapage,lano,langseth,langman,langland,landstrom,landsberg,landsaw,landram,lamphier,lamendola,lamberty,lakhani,lajara,lagrow,lagman,ladewig,laderman,ladden,lacrue,laclaire,lachut,lachner,kwit,kvamme,kvam,kutscher,kushi,kurgan,kunsch,kundert,kulju,kukene,kudo,kubin,kubes,kuberski,krystofiak,kruppa,krul,krukowski,kruegel,kronemeyer,krock,kriston,kretzer,krenn,kralik,krafft,krabill,kozisek,koverman,kovatch,kovarik,kotlowski,kosmala,kosky,kosir,kosa,korpi,kornbluth,koppen,kooistra,kohlhepp,kofahl,koeneman,koebel,koczur,kobrin,kobashigawa,koba,knuteson,knoff,knoble,knipper,knierim,kneisley,klusman,kloc,klitzing,klinko,klinefelter,klemetson,kleinpeter,klauser,klatte,klaren,klare,kissam,kirkhart,kirchmeier,kinzinger,kindt,kincy,kincey,kimoto,killingworth,kilcullen,kilbury,kietzman,kienle,kiedrowski,kidane,khamo,khalili,ketterling,ketchem,kessenich,kessell,kepp,kenon,kenning,kennady,kendzior,kemppainen,kellermann,keirns,keilen,keiffer,kehew,keelan,keawe,keator,kealy,keady,kathman,kastler,kastanes,kassab,karpin,karau,karathanasis,kaps,kaplun,kapaun,kannenberg,kanipe,kander,kandel,kanas,kanan,kamke,kaltenbach,kallenberger,kallam,kafton,kafer,kabler,kaaihue,jundt,jovanovich,jojola,johnstad,jodon,joachin,jinright,jessick,jeronimo,jenne,jelsma,jeannotte,jeangilles,jaworsky,jaubert,jarry,jarrette,jarreau,jarett,janos,janecka,janczak,jalomo,jagoda,jagla,jacquier,jaber,iwata,ivanoff,isola,iserman,isais,isaacks,inverso,infinger,ibsen,hyser,hylan,hybarger,hwee,hutchenson,hutchcroft,husar,hurlebaus,hunsley,humberson,hulst,hulon,huhtala,hugill,hugghins,huffmaster,huckeba,hrabovsky,howden,hoverson,houts,houskeeper,housh,hosten,horras,horchler,hopke,hooke,honie,holtsoi,holsomback,holoway,holmstead,hoistion,hohnstein,hoheisel,hoguet,hoggle,hogenson,hoffstetter,hoffler,hofe,hoefling,hoague,hizer,hirschfield,hironaka,hiraldo,hinote,hingston,hinaman,hillie,hillesheim,hilderman,hiestand,heyser,heys,hews,hertler,herrandez,heppe,henle,henkensiefken,henigan,henandez,henagan,hemberger,heman,helser,helmich,hellinger,helfrick,heldenbrand,heinonen,heineck,heikes,heidkamp,heglar,heffren,heelan,hedgebeth,heckmann,heckaman,hechmer,hazelhurst,hawken,haverkamp,havatone,hausauer,hasch,harwick,hartse,harrower,harle,hargroder,hardway,hardinger,hardemon,harbeck,hant,hamre,hamberg,hallback,haisten,hailstone,hahl,hagner,hagman,hagemeyer,haeussler,hackwell,haby,haataja,gverrero,gustovich,gustave,guske,gushee,gurski,gurnett,gura,gunto,gunselman,gugler,gudmundson,gudinas,guarneri,grumbine,gruis,grotz,grosskopf,grosman,grosbier,grinter,grilley,grieger,grewal,gressler,greaser,graus,grasman,graser,grannan,granath,gramer,graboski,goyne,gowler,gottwald,gottesman,goshay,gorr,gorovitz,gores,goossens,goodier,goodhue,gonzeles,gonzalos,gonnella,golomb,golick,golembiewski,goeke,godzik,goar,glosser,glendenning,glendening,glatter,glas,gittings,gitter,gisin,giscombe,gimlin,gillitzer,gillick,gilliand,gilb,gigler,gidden,gibeau,gibble,gianunzio,giannattasio,gertelman,gerosa,gerold,gerland,gerig,gerecke,gerbino,genz,genovesi,genet,gelrud,geitgey,geiszler,gehrlein,gawrys,gavilanes,gaulden,garthwaite,garmoe,gargis,gara,gannett,galligher,galler,galleher,gallahan,galford,gahn,gacek,gabert,fuster,furuya,furse,fujihara,fuhriman,frueh,fromme,froemming,friskney,frietas,freiler,freelove,freber,frear,frankl,frankenfield,franey,francke,foxworthy,formella,foringer,forgue,fonnesbeck,fonceca,folland,fodera,fode,floresca,fleurent,fleshner,flentge,fleischhacker,fleeger,flecher,flam,flaim,fivecoat,firebaugh,fioretti,finucane,filley,figuroa,figuerda,fiddelke,feurtado,fetterly,fessel,femia,feild,fehling,fegett,fedde,fechter,fawver,faulhaber,fatchett,fassnacht,fashaw,fasel,farrugia,farran,farness,farhart,fama,falwell,falvo,falkenstein,falin,failor,faigin,fagundo,fague,fagnan,fagerstrom,faden,eytchison,eyles,everage,evangelist,estrin,estorga,esponda,espindola,escher,esche,escarsega,escandon,erven,erding,eplin,enix,englade,engdahl,enck,emmette,embery,emberson,eltzroth,elsayed,ellerby,ellens,elhard,elfers,elazegui,eisermann,eilertson,eiben,ehrhard,ehresman,egolf,egnew,eggins,efron,effland,edminster,edgeston,eckstrom,eckhard,eckford,echoles,ebsen,eatherly,eastlick,earnheart,dykhuizen,dyas,duttweiler,dutka,dusenbury,dusenbery,durre,durnil,durnell,durie,durhan,durando,dupriest,dunsmoor,dunseith,dunnum,dunman,dunlevy,duma,dulude,dulong,duignan,dugar,dufek,ducos,duchaine,duch,dubow,drowne,dross,drollinger,droke,driggars,drawhorn,drach,drabek,doyne,doukas,dorvil,dorow,doroski,dornak,dormer,donnelson,donivan,dondero,dompe,dolle,doakes,diza,divirgilio,ditore,distel,disimone,disbro,dipiero,dingson,diluzio,dillehay,digiorgio,diflorio,dietzler,dietsch,dieterle,dierolf,dierker,dicostanzo,dicesare,dexheimer,dewitte,dewing,devoti,devincentis,devary,deutschman,dettloff,detienne,destasio,dest,despard,desmet,deslatte,desfosses,derise,derenzo,deppner,depolo,denoyer,denoon,denno,denne,deniston,denike,denes,demoya,demick,demicco,demetriou,demange,delva,delorge,delley,delisio,delhoyo,delgrande,delgatto,delcour,delair,deinert,degruy,degrave,degeyter,defino,deffenbaugh,deener,decook,decant,deboe,deblanc,deatley,dearmitt,deale,deaguiar,dayan,daus,dauberman,datz,dase,dary,dartt,darocha,dari,danowski,dancel,dami,dallmann,dalere,dalba,dakan,daise,dailing,dahan,dagnan,daggs,dagan,czarkowski,czaplinski,cutten,curtice,curenton,curboy,cura,culliton,culberth,cucchiara,cubbison,csaszar,crytser,crotzer,crossgrove,crosser,croshaw,crocco,critzer,creveling,cressy,creps,creese,cratic,craigo,craigen,craib,cracchiolo,crable,coykendall,cowick,coville,couzens,coutch,cousens,cousain,counselman,coult,cotterell,cott,cotham,corsaut,corriere,corredor,cornet,corkum,coreas,cordoza,corbet,corathers,conwill,contreas,consuegra,constanza,conolly,conedy,comins,combee,colosi,colom,colmenares,collymore,colleran,colina,colaw,colatruglio,colantro,colantonio,cohea,cogill,codner,codding,cockram,cocanougher,cobine,cluckey,clucas,cloward,cloke,clisham,clinebell,cliffe,clendenen,cisowski,cirelli,ciraolo,ciocca,cintora,ciesco,cibrian,chupka,chugg,christmann,choma,chiverton,chirinos,chinen,chimenti,chima,cheuvront,chesla,chesher,chesebro,chern,chehebar,cheatum,chastine,chapnick,chapelle,chambley,cercy,celius,celano,cayea,cavicchi,cattell,catanach,catacutan,castelluccio,castellani,cassmeyer,cassetta,cassada,caspi,cashmore,casebier,casanas,carrothers,carrizal,carriveau,carretero,carradine,carosella,carnine,carloni,carkhuff,cardosi,cardo,carchidi,caravello,caranza,carandang,cantrall,canpos,canoy,cannizzaro,canion,canida,canham,cangemi,cange,cancelliere,canard,camarda,calverley,calogero,callendar,calame,cadrette,cachero,caccavale,cabreros,cabrero,cabrara,cabler,butzer,butte,butrick,butala,bustios,busser,busic,bushorn,busher,burmaster,burkland,burkins,burkert,burgueno,burgraff,burel,burck,burby,bumford,bulock,bujnowski,buggie,budine,bucciero,bubier,brzoska,brydges,brumlow,brosseau,brooksher,brokke,broeker,brittin,bristle,briano,briand,brettschneide,bresnan,brentson,brenneis,brender,brazle,brassil,brasington,branstrom,branon,branker,brandwein,brandau,bralley,brailey,brague,brade,bozzi,bownds,bowmer,bournes,bour,bouchey,botto,boteler,borroel,borra,boroski,boothroyd,boord,bonga,bonato,bonadonna,bolejack,boldman,boiser,boggio,bogacki,boerboom,boehnlein,boehle,bodah,bobst,boak,bluemel,blockmon,blitch,blincoe,bleier,blaydes,blasius,bittel,binsfeld,bindel,bilotti,billiott,bilbrew,bihm,biersner,bielat,bidrowski,bickler,biasi,bhola,bhat,bewick,betzen,bettridge,betti,betsch,besley,beshero,besa,bertoli,berstein,berrien,berrie,berrell,bermel,berenguer,benzer,bensing,benedix,bemo,belile,beilman,behunin,behrmann,bedient,becht,beaule,beaudreault,bealle,beagley,bayuk,bayot,bayliff,baugess,battistoni,batrum,basinski,basgall,bartolomei,bartnik,bartl,bartko,bartholomay,barthlow,bartgis,barsness,barski,barlette,barickman,bargen,bardon,barcliff,barbu,barakat,baracani,baraban,banos,banko,bambach,balok,balogun,bally,baldini,balck,balcer,balash,baim,bailor,bahm,bahar,bagshaw,baggerly,badie,badal,backues,babino,aydelott,awbrey,aversano,avansino,auyon,aukamp,aujla,augenstein,astacio,asplin,asato,asano,aruizu,artale,arrick,arneecher,armelin,armbrester,armacost,arkell,argrave,areizaga,apolo,anzures,anzualda,antwi,antillon,antenor,annand,anhalt,angove,anglemyer,anglada,angiano,angeloni,andaya,ancrum,anagnos,ammirati,amescua,ambrosius,amacker,amacher,amabile,alvizo,alvernaz,alvara,altobelli,altobell,althauser,alterman,altavilla,alsip,almeyda,almeter,alman,allscheid,allaman,aliotta,aliberti,alghamdi,albiston,alberding,alarie,alano,ailes,ahsan,ahrenstorff,ahler,aerni,ackland,achor,acero,acebo,abshier,abruzzo,abrom,abood,abnet,abend,abegg,abbruzzese,aaberg,zysk,zutell,zumstein,zummo,zuhlke,zuehlsdorff,zuch,zucconi,zortman,zohn,zingone,zingg,zingale,zima,zientek,zieg,zervas,zerger,zenk,zeldin,zeiss,zeiders,zediker,zavodny,zarazua,zappone,zappala,zapanta,zaniboni,zanchi,zampedri,zaller,zakrajsek,zagar,zadrozny,zablocki,zable,yust,yunk,youngkin,yosten,yockers,yochim,yerke,yerena,yanos,wysinger,wyner,wrisley,woznicki,wortz,worsell,wooters,woon,woolcock,woodke,wonnacott,wolnik,wittstock,witting,witry,witfield,witcraft,wissmann,wissink,wisehart,wiscount,wironen,wipf,winterrowd,wingett,windon,windish,windisch,windes,wiltbank,willmarth,wiler,wieseler,wiedmaier,wiederstein,wiedenheft,wieberg,wickware,wickkiser,wickell,whittmore,whitker,whitegoat,whitcraft,whisonant,whisby,whetsell,whedon,westry,westcoat,wernimont,wentling,wendlandt,wencl,weisgarber,weininger,weikle,weigold,weigl,weichbrodt,wehrli,wehe,weege,weare,watland,wassmann,warzecha,warrix,warrell,warnack,waples,wantland,wanger,wandrei,wanat,wampole,waltjen,walterscheid,waligora,walding,waldie,walczyk,wakins,waitman,wair,wainio,wahpekeche,wahlman,wagley,wagenknecht,wadle,waddoups,wadding,vuono,vuillemot,vugteveen,vosmus,vorkink,vories,vondra,voelz,vlashi,vitelli,vitali,viscarra,vinet,vimont,villega,villard,vignola,viereck,videtto,vicoy,vessell,vescovi,verros,vernier,vernaglia,vergin,verdone,verdier,verastequi,vejar,vasile,vasi,varnadore,vardaro,vanzanten,vansumeren,vanschuyver,vanleeuwen,vanhowe,vanhoozer,vaness,vandewalker,vandevoorde,vandeveer,vanderzwaag,vanderweide,vanderhyde,vandellen,vanamburg,vanalst,vallin,valk,valentini,valcarcel,valasco,valadao,vacher,urquijo,unterreiner,unsicker,unser,unrau,undercoffler,uffelman,uemura,ueda,tyszko,tyska,tymon,tyce,tyacke,twinam,tutas,tussing,turmel,turkowski,turkel,turchetta,tupick,tukes,tufte,tufo,tuey,tuell,tuckerman,tsutsumi,tsuchiya,trossbach,trivitt,trippi,trippensee,trimbach,trillo,triller,trible,tribby,trevisan,tresch,tramonte,traff,trad,tousey,totaro,torregrosa,torralba,tolly,tofil,tofani,tobiassen,tiogangco,tino,tinnes,tingstrom,tingen,tindol,tifft,tiffee,tiet,thuesen,thruston,throndson,thornsbury,thornes,thiery,thielman,thie,theilen,thede,thate,thane,thalacker,thaden,teuscher,terracina,terell,terada,tepfer,tenneson,temores,temkin,telleria,teaque,tealer,teachey,tavakoli,tauras,taucher,tartaglino,tarpy,tannery,tani,tams,tamlin,tambe,tallis,talamante,takayama,takaki,taibl,taffe,tadesse,tade,tabeling,tabag,szoke,szoc,szala,szady,sysak,sylver,syler,swonger,swiggett,swensson,sweis,sweers,sweene,sweany,sweaney,swartwout,swamy,swales,susman,surman,sundblad,summerset,summerhays,sumerall,sule,sugimoto,subramanian,sturch,stupp,stunkard,stumpp,struiksma,stropes,stromyer,stromquist,strede,strazza,strauf,storniolo,storjohann,stonum,stonier,stonecypher,stoneberger,stollar,stokke,stokan,stoetzel,stoeckel,stockner,stockinger,stockert,stockdill,stobbe,stitzel,stitely,stirgus,stigers,stettner,stettler,sterlin,sterbenz,stemp,stelluti,steinmeyer,steininger,steinauer,steigerwalt,steider,stavrou,staufenberger,stassi,stankus,stanaway,stammer,stakem,staino,stahlnecker,stagnitta,staelens,staal,srsen,sprott,sprigg,sprenkle,sprenkel,spreitzer,spraque,sprandel,sporn,spivak,spira,spiewak,spieth,spiering,sperow,speh,specking,spease,spead,sparger,spanier,spall,sower,southcott,sosna,soran,sookram,sonders,solak,sohr,sohl,sofranko,soderling,sochor,sobon,smutz,smudrick,smithj,smid,slosser,sliker,slenker,sleger,slaby,skousen,skilling,skibinski,skees,skane,skafidas,sivic,sivertsen,sivers,sitra,sito,siracusa,sinicki,simpers,simley,simbeck,silberberg,siever,siegwarth,sidman,siddle,sibbett,shumard,shubrooks,shough,shorb,shoptaw,sholty,shoffstall,shiverdecker,shininger,shimasaki,shifrin,shiffler,sheston,sherr,shere,shepeard,shelquist,sheler,shauf,sharrar,sharpnack,shamsiddeen,shambley,shallenberger,shadler,shaban,sferra,seys,sexauer,sevey,severo,setlak,seta,sesko,sersen,serratore,serdula,senechal,seldomridge,seilhamer,seifer,seidlitz,sehnert,sedam,sebron,seber,sebek,seavers,scullark,scroger,scovill,sciascia,sciarra,schweers,schwarze,schummer,schultes,schuchardt,schuchard,schrieber,schrenk,schreifels,schowalter,schoultz,scholer,schofill,schoff,schnuerer,schnettler,schmitke,schmiege,schloop,schlinger,schlessman,schlesser,schlageter,schiess,schiefer,schiavoni,scherzer,scherich,schechtman,schebel,scharpman,schaich,schaap,scappaticci,scadlock,savocchia,savini,savers,savageau,sauvage,sause,sauerwein,sary,sarwary,sarnicola,santone,santoli,santalucia,santacruce,sansoucie,sankoff,sanes,sandri,sanderman,sammartano,salmonson,salmela,salmans,sallaz,salis,sakuma,sakowski,sajdak,sahm,sagredo,safrit,sackey,sabio,sabino,rybolt,ruzzo,ruthstrom,ruta,russin,russak,rusko,ruskin,rusiecki,ruscher,rupar,rumberger,rullan,ruliffson,ruhlman,rufenacht,ruelle,rudisell,rudi,rucci,rublee,ruberto,rubeck,rowett,rottinghaus,roton,rothgeb,rothgaber,rothermich,rostek,rossini,roskelley,rosing,rosi,rosewell,rosberg,roon,ronin,romesburg,romelus,rolley,rollerson,rollefson,rolins,rolens,rois,rohrig,rohrbacher,rohland,rohen,rogness,roes,roering,roehrick,roebke,rodregez,rodabaugh,rockingham,roblee,robel,roadcap,rizzolo,riviezzo,rivest,riveron,risto,rissler,rippentrop,ripka,rinn,ringuette,ringering,rindone,rindels,rieffer,riedman,riede,riecke,riebow,riddlebarger,rhome,rhodd,rhatigan,rhame,reyers,rewitzer,revalee,retzer,rettinger,reschke,requa,reper,reopell,renzelman,renne,renker,renk,renicker,rendina,rendel,remund,remmele,remiasz,remaklus,remak,reitsma,reitmeier,reiswig,reishus,reining,reim,reidinger,reick,reiche,regans,reffett,reesor,reekie,redpath,redditt,rechtzigel,recht,rearden,raynoso,raxter,ratkowski,rasulo,rassmussen,rassel,raser,rappleye,rappe,randrup,randleman,ramson,rampey,radziewicz,quirarte,quintyne,quickel,quattrini,quakenbush,quaile,pytel,pushaw,pusch,purslow,punzo,pullam,pugmire,puello,przekop,pruss,pruiett,provow,prophete,procaccini,pritz,prillaman,priess,pretlow,prestia,presha,prescod,preast,praytor,prashad,praino,pozzi,pottenger,potash,porada,popplewell,ponzo,ponter,pommier,polland,polidori,polasky,pola,poisso,poire,pofahl,podolsky,podell,plueger,plowe,plotz,plotnik,ploch,pliska,plessner,plaut,platzer,plake,pizzino,pirog,piquette,pipho,pioche,pintos,pinkert,pinet,pilkerton,pilch,pilarz,pignataro,piermatteo,picozzi,pickler,pickette,pichler,philogene,phare,phang,pfrogner,pfisterer,pettinelli,petruzzi,petrovic,petretti,petermeier,pestone,pesterfield,pessin,pesch,persky,perruzza,perrott,perritt,perretti,perrera,peroutka,peroni,peron,peret,perdew,perazzo,peppe,peno,penberthy,penagos,peles,pelech,peiper,peight,pefferman,peddie,peckenpaugh,pean,payen,pavloski,pavlica,paullin,patteson,passon,passey,passalacqua,pasquini,paskel,partch,parriott,parrella,parraz,parmely,parizo,papelian,papasergi,pantojz,panto,panich,panchal,palys,pallone,palinski,pali,palevic,pagels,paciorek,pacho,pacella,paar,ozbun,overweg,overholser,ovalles,outcalt,otterbein,otta,ostergren,osher,osbon,orzech,orwick,orrico,oropesa,ormes,orillion,onorati,onnen,omary,olding,okonski,okimoto,ohlrich,ohayon,oguin,ogley,oftedahl,offen,ofallon,oeltjen,odam,ockmond,ockimey,obermeyer,oberdorf,obanner,oballe,oard,oakden,nyhan,nydam,numan,noyer,notte,nothstein,notestine,noser,nork,nolde,nishihara,nishi,nikolic,nihart,nietupski,niesen,niehus,nidiffer,nicoulin,nicolaysen,nicklow,nickl,nickeson,nichter,nicholl,ngyun,newsham,newmann,neveux,neuzil,neumayer,netland,nessen,nesheim,nelli,nelke,necochea,nazari,navorro,navarez,navan,natter,natt,nater,nasta,narvaiz,nardelli,napp,nakahara,nairn,nagg,nager,nagano,nafziger,naffziger,nadelson,muzzillo,murri,murrey,murgia,murcia,muno,munier,mulqueen,mulliniks,mulkins,mulik,muhs,muffley,moynahan,mounger,mottley,motil,moseman,moseby,mosakowski,mortell,morrisroe,morrero,mormino,morland,morger,morgenthaler,moren,morelle,morawski,morasca,morang,morand,moog,montney,montera,montee,montane,montagne,mons,monohan,monnett,monkhouse,moncure,momphard,molyneaux,molles,mollenkopf,molette,mohs,mohmand,mohlke,moessner,moers,mockus,moccio,mlinar,mizzelle,mittler,mitri,mitchusson,mitchen,mistrot,mistler,misch,miriello,minkin,mininger,minerich,minehart,minderman,minden,minahan,milonas,millon,millholland,milleson,millerbernd,millage,militante,milionis,milhoan,mildenberger,milbury,mikolajczak,miklos,mikkola,migneault,mifsud,mietus,mieszala,mielnicki,midy,michon,michioka,micheau,michaeli,micali,methe,metallo,messler,mesch,merow,meroney,mergenthaler,meres,menuey,menousek,menning,menn,menghini,mendia,memmer,melot,mellenthin,melland,meland,meixner,meisenheimer,meineke,meinders,mehrens,mehlig,meglio,medsker,medero,mederios,meabon,mcwright,mcright,mcreath,mcrary,mcquirter,mcquerry,mcquary,mcphie,mcnurlen,mcnelley,mcnee,mcnairy,mcmanamy,mcmahen,mckowen,mckiver,mckinlay,mckearin,mcirvin,mcintrye,mchorse,mchaffie,mcgroarty,mcgoff,mcgivern,mceniry,mcelhiney,mcdiarmid,mccullars,mccubbins,mccrimon,mccovery,mccommons,mcclour,mccarrick,mccarey,mccallen,mcbrien,mcarthy,mayone,maybin,maxam,maurais,maughn,matzek,matts,matin,mathre,mathia,mateen,matava,masso,massar,massanet,masingale,mascaro,marthaler,martes,marso,marshman,marsalis,marrano,marolt,marold,markins,margulis,mardirosian,marchiano,marchak,marandola,marana,manues,mante,mansukhani,mansi,mannan,maniccia,mangine,manery,mandigo,mancell,mamo,malstrom,malouf,malenfant,maldenado,malandruccolo,malak,malabanan,makino,maisonave,mainord,maino,mainard,maillard,mahmud,mahdi,mahapatra,mahaley,mahaffy,magouirk,maglaras,magat,maga,maffia,madrazo,madrano,maditz,mackert,mackellar,mackell,macht,macchia,maccarthy,maahs,lytal,luzar,luzader,lutjen,lunger,lunan,luma,lukins,luhmann,luers,ludvigsen,ludlam,ludemann,luchini,lucente,lubrano,lubow,luber,lubeck,lowing,loven,loup,louge,losco,lorts,lormand,lorenzetti,longford,longden,longbrake,lokhmatov,loge,loeven,loeser,locey,locatelli,litka,lista,lisonbee,lisenbee,liscano,liranzo,liquori,liptrot,lionetti,linscomb,linkovich,linington,lingefelt,lindler,lindig,lindall,lincks,linander,linan,limburg,limbrick,limbach,likos,lighthall,liford,lietzke,liebe,liddicoat,lickley,lichter,liapis,lezo,lewan,levitz,levesgue,leverson,levander,leuthauser,letbetter,lesuer,lesmeister,lesly,lerer,leppanen,lepinski,lenherr,lembrick,lelonek,leisten,leiss,leins,leingang,leinberger,leinbach,leikam,leidig,lehtonen,lehnert,lehew,legier,lefchik,lecy,leconte,lecher,lebrecht,leaper,lawter,lawrenz,lavy,laur,lauderbaugh,lauden,laudato,latting,latsko,latini,lassere,lasseigne,laspina,laso,laslie,laskowitz,laske,lasenby,lascola,lariosa,larcade,lapete,laperouse,lanuza,lanting,lantagne,lansdale,lanphier,langmaid,langella,lanese,landrus,lampros,lamens,laizure,laitinen,laigle,lahm,lagueux,lagorio,lagomarsino,lagasca,lagana,lafont,laflen,lafavor,lafarge,laducer,ladnier,ladesma,lacognata,lackland,lacerte,labuff,laborin,labine,labauve,kuzio,kusterer,kussman,kusel,kusch,kurutz,kurdyla,kupka,kunzler,kunsman,kuni,kuney,kunc,kulish,kuliga,kulaga,kuilan,kuhre,kuhnke,kuemmerle,kueker,kudla,kudelka,kubinski,kubicki,kubal,krzyzanowski,krupicka,krumwiede,krumme,kropidlowski,krokos,kroell,kritzer,kribs,kreitlow,kreisher,kraynak,krass,kranzler,kramb,kozyra,kozicki,kovalik,kovalchik,kovacevic,kotula,kotrba,koteles,kosowski,koskela,kosiba,koscinski,kosch,korab,kopple,kopper,koppelman,koppel,konwinski,kolosky,koloski,kolinsky,kolinski,kolbeck,kolasa,koepf,koda,kochevar,kochert,kobs,knust,knueppel,knoy,knieriem,knier,kneller,knappert,klitz,klintworth,klinkenberg,klinck,kleindienst,kleeb,klecker,kjellberg,kitsmiller,kisor,kisiel,kise,kirbo,kinzle,kingsford,kingry,kimpton,kimel,killmon,killick,kilgallon,kilcher,kihn,kiggins,kiecker,kher,khaleel,keziah,kettell,ketchen,keshishian,kersting,kersch,kerins,kercher,kenefick,kemph,kempa,kelsheimer,kelln,kellenberger,kekahuna,keisling,keirnan,keimig,kehn,keal,kaupp,kaufhold,kauffmann,katzenberg,katona,kaszynski,kaszuba,kassebaum,kasa,kartye,kartchner,karstens,karpinsky,karmely,karel,karasek,kapral,kaper,kanelos,kanahele,kampmann,kampe,kalp,kallus,kallevig,kallen,kaliszewski,kaleohano,kalchthaler,kalama,kalahiki,kaili,kahawai,kagey,justiss,jurkowski,jurgensmeyer,juilfs,jopling,jondahl,jomes,joice,johannessen,joeckel,jezewski,jezek,jeswald,jervey,jeppsen,jenniges,jennett,jemmott,jeffs,jaurequi,janisch,janick,jacek,jacaruso,iwanicki,ishihara,isenberger,isbister,iruegas,inzer,inyart,inscore,innocenti,inglish,infantolino,indovina,inaba,imondi,imdieke,imbert,illes,iarocci,iannucci,huver,hutley,husser,husmann,hupf,huntsberger,hunnewell,hullum,huit,huish,hughson,huft,hufstetler,hueser,hudnell,hovden,housen,houghtling,hossack,hoshaw,horsford,horry,hornbacher,hoppenstedt,hopkinson,honza,homann,holzmeister,holycross,holverson,holtzlander,holroyd,holmlund,holderness,holderfield,holck,hojnacki,hohlfeld,hohenberger,hoganson,hogancamp,hoffses,hoerauf,hoell,hoefert,hodum,hoder,hockenbury,hoage,hisserich,hislip,hirons,hippensteel,hippen,hinkston,hindes,hinchcliff,himmel,hillberry,hildring,hiester,hiefnar,hibberd,hibben,heyliger,heyl,heyes,hevia,hettrick,hert,hersha,hernandz,herkel,herber,henscheid,hennesy,henly,henegan,henebry,hench,hemsath,hemm,hemken,hemann,heltzel,hellriegel,hejny,heinl,heinke,heidinger,hegeman,hefferan,hedglin,hebdon,hearnen,heape,heagy,headings,headd,hazelbaker,havlick,hauschildt,haury,hassenfritz,hasenbeck,haseltine,hartstein,hartry,hartnell,harston,harpool,harmen,hardister,hardey,harders,harbolt,harbinson,haraway,haque,hansmann,hanser,hansch,hansberry,hankel,hanigan,haneline,hampe,hamons,hammerstone,hammerle,hamme,hammargren,hamelton,hamberger,hamasaki,halprin,halman,hallihan,haldane,haifley,hages,hagadorn,hadwin,habicht,habermehl,gyles,gutzman,gutekunst,gustason,gusewelle,gurnsey,gurnee,gunterman,gumina,gulliver,gulbrandson,guiterez,guerino,guedry,gucwa,guardarrama,guagliano,guadagno,grulke,groote,groody,groft,groeneweg,grochow,grippe,grimstead,griepentrog,greenfeld,greenaway,grebe,graziosi,graw,gravina,grassie,granzow,grandjean,granby,gramacy,gozalez,goyer,gotch,gosden,gorny,gormont,goodgion,gonya,gonnerman,gompert,golish,goligoski,goldmann,goike,goetze,godeaux,glaza,glassel,glaspy,glander,giumarro,gitelman,gisondi,gismondi,girvan,girten,gironda,giovinco,ginkel,gilster,giesy,gierman,giddins,giardini,gianino,ghea,geurin,gett,getson,gerrero,germond,gentsy,genta,gennette,genito,genis,gendler,geltz,geiss,gehret,gegenheimer,geffert,geeting,gebel,gavette,gavenda,gaumond,gaudioso,gatzke,gatza,gattshall,gaton,gatchel,gasperi,gaska,gasiorowski,garritson,garrigus,garnier,garnick,gardinier,gardenas,garcy,garate,gandolfi,gamm,gamel,gambel,gallmon,gallemore,gallati,gainous,gainforth,gahring,gaffey,gaebler,gadzinski,gadbury,gabri,gaba,fyke,furtaw,furnas,furcron,funn,funck,fulwood,fulvio,fullmore,fukumoto,fuest,fuery,frymire,frush,frohlich,froedge,frodge,fritzinger,fricker,frericks,frein,freid,freggiaro,fratto,franzi,franciscus,fralix,fowble,fotheringham,foslien,foshie,fortmann,forsey,forkner,foppiano,fontanetta,fonohema,fogler,fockler,fluty,flusche,flud,flori,flenory,fleharty,fleeks,flaxman,fiumara,fitzmorris,finnicum,finkley,fineran,fillhart,filipi,fijal,fieldson,ficarra,festerman,ferryman,ferner,fergason,ferell,fennern,femmer,feldmeier,feeser,feenan,federick,fedak,febbo,feazell,fazzone,fauth,fauset,faurote,faulker,faubion,fatzinger,fasick,fanguy,fambrough,falks,fahl,faaita,exler,ewens,estrado,esten,esteen,esquivez,espejo,esmiol,esguerra,esco,ertz,erspamer,ernstes,erisman,erhard,ereaux,ercanbrack,erbes,epple,entsminger,entriken,enslow,ennett,engquist,englebert,englander,engesser,engert,engeman,enge,enerson,emhoff,emge,elting,ellner,ellenberg,ellenbecker,elio,elfert,elawar,ekstrand,eison,eismont,eisenbrandt,eiseman,eischens,ehrgott,egley,egert,eddlemon,eckerson,eckersley,eckberg,echeverry,eberts,earthman,earnhart,eapen,eachus,dykas,dusi,durning,durdan,dunomes,duncombe,dume,dullen,dullea,dulay,duffett,dubs,dubard,drook,drenth,drahos,dragone,downin,downham,dowis,dowhower,doward,dovalina,dopazo,donson,donnan,dominski,dollarhide,dolinar,dolecki,dolbee,doege,dockus,dobkin,dobias,divoll,diviney,ditter,ditman,dissinger,dismang,dirlam,dinneen,dini,dingwall,diloreto,dilmore,dillaman,dikeman,diiorio,dighton,diffley,dieudonne,dietel,dieringer,diercks,dienhart,diekrager,diefendorf,dicke,dicamillo,dibrito,dibona,dezeeuw,dewhurst,devins,deviney,deupree,detherage,despino,desmith,desjarlais,deshner,desha,desanctis,derring,derousse,derobertis,deridder,derego,derden,deprospero,deprofio,depping,deperro,denty,denoncourt,dencklau,demler,demirchyan,demichiel,demesa,demere,demaggio,delung,deluise,delmoral,delmastro,delmas,delligatti,delle,delasbour,delarme,delargy,delagrange,delafontaine,deist,deiss,deighan,dehoff,degrazia,degman,defosses,deforrest,deeks,decoux,decarolis,debuhr,deberg,debarr,debari,dearmon,deare,deardurff,daywalt,dayer,davoren,davignon,daviau,dauteuil,dauterive,daul,darnley,darakjy,dapice,dannunzio,danison,daniello,damario,dalonzo,dallis,daleske,dalenberg,daiz,dains,daines,dagnese,dady,dadey,czyzewski,czapor,czaplewski,czajka,cyganiewicz,cuttino,cutrona,cussins,cusanelli,cuperus,cundy,cumiskey,cumins,cuizon,cuffia,cuffe,cuffari,cuccaro,cubie,cryder,cruson,crounse,cromedy,cring,creer,credeur,crea,cozort,cozine,cowee,cowdery,couser,courtway,courington,cotman,costlow,costell,corton,corsaro,corrieri,corrick,corradini,coron,coren,corbi,corado,copus,coppenger,cooperwood,coontz,coonce,contrera,connealy,conell,comtois,compere,commins,commings,comegys,colyar,colo,collister,collick,collella,coler,colborn,cohran,cogbill,coffen,cocuzzo,clynes,closter,clipp,clingingsmith,clemence,clayman,classon,clas,clarey,clague,ciubal,citrino,citarella,cirone,cipponeri,cindrich,cimo,ciliberto,cichowski,ciccarello,cicala,chura,chubbuck,chronis,christlieb,chizek,chittester,chiquito,chimento,childree,chianese,chevrette,checo,chastang,chargualaf,chapmon,chantry,chahal,chafetz,cezar,ceruantes,cerrillo,cerrano,cerecedes,cerami,cegielski,cavallero,catinella,cassata,caslin,casano,casacchia,caruth,cartrette,carten,carodine,carnrike,carnall,carmicle,carlan,carlacci,caris,cariaga,cardine,cardimino,cardani,carbonara,capua,capponi,cappellano,caporale,canupp,cantrel,cantone,canterberry,cannizzo,cannan,canelo,caneer,candill,candee,campbel,caminero,camble,caluya,callicott,calk,caito,caffie,caden,cadavid,cacy,cachu,cachola,cabreja,cabiles,cabada,caamano,byran,byon,buyck,bussman,bussie,bushner,burston,burnison,burkman,burkhammer,bures,burdeshaw,bumpass,bullinger,bullers,bulgrin,bugay,budak,buczynski,buckendorf,buccieri,bubrig,brynteson,brunz,brunmeier,brunkow,brunetto,brunelli,brumwell,bruggman,brucki,brucculeri,brozovich,browing,brotman,brocker,broadstreet,brix,britson,brinck,brimmage,brierre,bridenstine,brezenski,brezee,brevik,brentlinger,brentley,breidenbach,breckel,brech,brazzle,braughton,brauch,brattin,brattain,branhan,branford,braner,brander,braly,braegelmann,brabec,boyt,boyack,bowren,bovian,boughan,botton,botner,bosques,borzea,borre,boron,bornhorst,borgstrom,borella,bontempo,bonniwell,bonnes,bonillo,bonano,bolek,bohol,bohaty,boffa,boetcher,boesen,boepple,boehler,boedecker,boeckx,bodi,boal,bloodsworth,bloodgood,blome,blockett,blixt,blanchett,blackhurst,blackaby,bjornberg,bitzer,bittenbender,bitler,birchall,binnicker,binggeli,billett,bilberry,biglow,bierly,bielby,biegel,berzas,berte,bertagnolli,berreth,bernhart,bergum,berentson,berdy,bercegeay,bentle,bentivegna,bentham,benscoter,benns,bennick,benjamine,beneze,benett,beneke,bendure,bendix,bendick,benauides,belman,bellus,bellott,bellefleur,bellas,beljan,belgard,beith,beinlich,beierle,behme,beevers,beermann,beeching,bedward,bedrosian,bedner,bedeker,bechel,becera,beaubrun,beardmore,bealmear,bazin,bazer,baumhoer,baumgarner,bauknecht,battson,battiest,basulto,baster,basques,basista,basiliere,bashi,barzey,barz,bartus,bartucca,bartek,barrero,barreca,barnoski,barndt,barklow,baribeau,barette,bares,barentine,bareilles,barbre,barberi,barbagelata,baraw,baratto,baranoski,baptise,bankson,bankey,bankard,banik,baltzley,ballen,balkey,balius,balderston,bakula,bakalar,baffuto,baerga,badoni,backous,bachtel,bachrach,baccari,babine,babilonia,baar,azbill,azad,aycox,ayalla,avolio,austerberry,aughtry,aufderheide,auch,attanasio,athayde,atcher,asselta,aslin,aslam,ashwood,ashraf,ashbacher,asbridge,asakura,arzaga,arriaza,arrez,arrequin,arrants,armiger,armenteros,armbrister,arko,argumedo,arguijo,ardolino,arcia,arbizo,aravjo,aper,anzaldo,antu,antrikin,antonetty,antinoro,anthon,antenucci,anstead,annese,ankrum,andreason,andrado,andaverde,anastos,anable,amspoker,amrine,amrein,amorin,amel,ambrosini,alsbrook,alnutt,almasi,allessio,allateef,aldous,alderink,aldaz,akmal,akard,aiton,aites,ainscough,aikey,ahrends,ahlm,aguada,agans,adelmann,addesso,adaway,adamaitis,ackison,abud,abendroth,abdur,abdool,aamodt,zywiec,zwiefelhofer,zwahlen,zunino,zuehl,zmuda,zmolek,zizza,ziska,zinser,zinkievich,zinger,zingarelli,ziesmer,ziegenfuss,ziebol,zettlemoyer,zettel,zervos,zenke,zembower,zelechowski,zelasko,zeise,zeek,zeeb,zarlenga,zarek,zaidi,zahnow,zahnke,zaharis,zacate,zabrocki,zaborac,yurchak,yuengling,younie,youngers,youell,yott,yoshino,yorks,yordy,yochem,yerico,yerdon,yeiser,yearous,yearick,yeaney,ybarro,yasutake,yasin,yanke,yanish,yanik,yamazaki,yamat,yaggi,ximenez,wyzard,wynder,wyly,wykle,wutzke,wuori,wuertz,wuebker,wrightsel,worobel,worlie,worford,worek,woolson,woodrome,woodly,woodling,wontor,wondra,woltemath,wollmer,wolinski,wolfert,wojtanik,wojtak,wohlfarth,woeste,wobbleton,witz,wittmeyer,witchey,wisotzkey,wisnewski,wisman,wirch,wippert,wineberg,wimpee,wilusz,wiltsey,willig,williar,willers,willadsen,wildhaber,wilday,wigham,wiewel,wieting,wietbrock,wiesel,wiesehan,wiersema,wiegert,widney,widmark,wickson,wickings,wichern,whtie,whittie,whitlinger,whitfill,whitebread,whispell,whetten,wheeley,wheeles,wheelen,whatcott,weyland,weter,westrup,westphalen,westly,westland,wessler,wesolick,wesler,wesche,werry,wero,wernecke,werkhoven,wellspeak,wellings,welford,welander,weissgerber,weisheit,weins,weill,weigner,wehrmann,wehrley,wehmeier,wege,weers,weavers,watring,wassum,wassman,wassil,washabaugh,wascher,warth,warbington,wanca,wammack,wamboldt,walterman,walkington,walkenhorst,walinski,wakley,wagg,wadell,vuckovich,voogd,voller,vokes,vogle,vogelsberg,vodicka,vissering,vipond,vincik,villalona,vickerman,vettel,veteto,vesperman,vesco,vertucci,versaw,verba,ventris,venecia,vendela,venanzi,veldhuizen,vehrs,vaughen,vasilopoulos,vascocu,varvel,varno,varlas,varland,vario,vareschi,vanwyhe,vanweelden,vansciver,vannaman,vanluven,vanloo,vanlaningham,vankomen,vanhout,vanhampler,vangorp,vangorden,vanella,vandresar,vandis,vandeyacht,vandewerker,vandevsen,vanderwall,vandercook,vanderberg,vanbergen,valko,valesquez,valeriano,valen,vachula,vacha,uzee,uselman,urizar,urion,urben,upthegrove,unzicker,unsell,unick,umscheid,umin,umanzor,ullo,ulicki,uhlir,uddin,tytler,tymeson,tyger,twisdale,twedell,tweddle,turrey,tures,turell,tupa,tuitt,tuberville,tryner,trumpower,trumbore,troglen,troff,troesch,trivisonno,tritto,tritten,tritle,trippany,tringali,tretheway,treon,trejos,tregoning,treffert,traycheff,travali,trauth,trauernicht,transou,trane,trana,toves,tosta,torp,tornquist,tornes,torchio,toor,tooks,tonks,tomblinson,tomala,tollinchi,tolles,tokich,tofte,todman,titze,timpone,tillema,tienken,tiblier,thyberg,thursby,thurrell,thurm,thruman,thorsted,thorley,thomer,thoen,thissen,theimer,thayn,thanpaeng,thammavongsa,thalman,texiera,texidor,teverbaugh,teska,ternullo,teplica,tepe,teno,tenholder,tenbusch,tenbrink,temby,tejedor,teitsworth,teichmann,tehan,tegtmeyer,tees,teem,tays,taubert,tauares,taschler,tartamella,tarquinio,tarbutton,tappendorf,tapija,tansil,tannahill,tamondong,talahytewa,takashima,taecker,tabora,tabin,tabbert,szymkowski,szymanowski,syversen,syrett,synnott,sydnes,swimm,sweney,swearegene,swartzel,swanstrom,svedin,suryan,supplice,supnet,suoboda,sundby,sumaya,sumabat,sulzen,sukovaty,sukhu,sugerman,sugalski,sudweeks,sudbeck,sucharski,stutheit,stumfoll,stuffle,struyk,strutz,strumpf,strowbridge,strothman,strojny,strohschein,stroffolino,stribble,strevel,strenke,stremming,strehle,stranak,stram,stracke,stoudamire,storks,stopp,stonebreaker,stolt,stoica,stofer,stockham,stockfisch,stjuste,stiteler,stiman,stillions,stillabower,stierle,sterlace,sterk,stepps,stenquist,stenner,stellman,steines,steinbaugh,steinbacher,steiling,steidel,steffee,stavinoha,staver,stastny,stasiuk,starrick,starliper,starlin,staniford,staner,standre,standefer,standafer,stanczyk,stallsmith,stagliano,staehle,staebler,stady,stadtmiller,squyres,spurbeck,sprunk,spranger,spoonamore,spoden,spilde,spezio,speros,sperandio,specchio,spearin,spayer,spallina,spadafino,sovie,sotello,sortor,sortino,soros,sorola,sorbello,sonner,sonday,somes,soloway,soens,soellner,soderblom,sobin,sniezek,sneary,smyly,smutnick,smoots,smoldt,smitz,smitreski,smallen,smades,slunaker,sluka,slown,slovick,slocomb,slinger,slife,sleeter,slanker,skufca,skubis,skrocki,skov,skjei,skilton,skarke,skalka,skalak,skaff,sixkiller,sitze,siter,sisko,sirman,sirls,sinotte,sinon,sincock,sincebaugh,simmoms,similien,silvius,silton,silloway,sikkema,sieracki,sienko,siemon,siemer,siefker,sieberg,siebens,siebe,sicurella,sicola,sickle,shumock,shumiloff,shuffstall,shuemaker,shuart,shroff,shreeve,shostak,shortes,shorr,shivley,shintaku,shindo,shimomura,shiigi,sherow,sherburn,shepps,shenefield,shelvin,shelstad,shelp,sheild,sheaman,shaulis,sharrer,sharps,sharpes,shappy,shapero,shanor,shandy,seyller,severn,sessom,sesley,servidio,serrin,sero,septon,septer,sennott,sengstock,senff,senese,semprini,semone,sembrat,selva,sella,selbig,seiner,seif,seidt,sehrt,seemann,seelbinder,sedlay,sebert,seaholm,seacord,seaburg,scungio,scroggie,scritchfield,scrimpsher,scrabeck,scorca,scobey,scivally,schwulst,schwinn,schwieson,schwery,schweppe,schwartzenbur,schurz,schumm,schulenburg,schuff,schuerholz,schryer,schrager,schorsch,schonhardt,schoenfelder,schoeck,schoeb,schnitzler,schnick,schnautz,schmig,schmelter,schmeichel,schluneger,schlosberg,schlobohm,schlenz,schlembach,schleisman,schleining,schleiff,schleider,schink,schilz,schiffler,schiavi,scheuer,schemonia,scheman,schelb,schaul,schaufelberge,scharer,schardt,scharbach,schabacker,scee,scavone,scarth,scarfone,scalese,sayne,sayed,savitz,satterlund,sattazahn,satow,sastre,sarr,sarjeant,sarff,sardella,santoya,santoni,santai,sankowski,sanft,sandow,sandoe,sandhaus,sandefer,sampey,samperi,sammarco,samia,samek,samay,samaan,salvadore,saltness,salsgiver,saller,salaz,salano,sakal,saka,saintlouis,saile,sahota,saggese,sagastume,sadri,sadak,sachez,saalfrank,saal,saadeh,rynn,ryley,ryle,rygg,rybarczyk,ruzich,ruyter,ruvo,rupel,ruopp,rundlett,runde,rundall,runck,rukavina,ruggiano,rufi,ruef,rubright,rubbo,rowbottom,rotner,rotman,rothweiler,rothlisberger,rosseau,rossean,rossa,roso,rosiek,roshia,rosenkrans,rosener,rosencrantz,rosencrans,rosello,roques,rookstool,rondo,romasanta,romack,rokus,rohweder,roethler,roediger,rodwell,rodrigus,rodenbeck,rodefer,rodarmel,rockman,rockholt,rochow,roches,roblin,roblez,roble,robers,roat,rizza,rizvi,rizk,rixie,riveiro,rius,ritschard,ritrovato,risi,rishe,rippon,rinks,ringley,ringgenberg,ringeisen,rimando,rilley,rijos,rieks,rieken,riechman,riddley,ricord,rickabaugh,richmeier,richesin,reyolds,rexach,requena,reppucci,reposa,renzulli,renter,remondini,reither,reisig,reifsnider,reifer,reibsome,reibert,rehor,rehmann,reedus,redshaw,reczek,recupero,recor,reckard,recher,realbuto,razer,rayman,raycraft,rayas,rawle,raviscioni,ravetto,ravenelle,rauth,raup,rattliff,rattley,rathfon,rataj,rasnic,rappleyea,rapaport,ransford,rann,rampersad,ramis,ramcharan,rainha,rainforth,ragans,ragains,rafidi,raffety,raducha,radsky,radler,radatz,raczkowski,rabenold,quraishi,quinerly,quercia,quarnstrom,pusser,puppo,pullan,pulis,pugel,puca,pruna,prowant,provines,pronk,prinkleton,prindall,primas,priesmeyer,pridgett,prevento,preti,presser,presnall,preseren,presas,presa,prchal,prattis,pratillo,praska,prak,powis,powderly,postlewait,postle,posch,porteus,porraz,popwell,popoff,poplaski,poniatoski,pollina,polle,polhill,poletti,polaski,pokorney,pointdexter,poinsette,ploszaj,plitt,pletz,pletsch,plemel,pleitez,playford,plaxco,platek,plambeck,plagens,placido,pisarski,pinuelas,pinnette,pinick,pinell,pinciaro,pinal,pilz,piltz,pillion,pilkinton,pikul,piepenburg,piening,piehler,piedrahita,piechocki,picknell,pickelsimer,pich,picariello,phoeuk,phillipson,philbert,pherigo,phelka,peverini,petrash,petramale,petraglia,pery,personius,perrington,perrill,perpall,perot,perman,peragine,pentland,pennycuff,penninger,pennachio,pendexter,penalver,pelzel,pelter,pelow,pelo,peli,peinado,pedley,pecue,pecore,pechar,peairs,paynes,payano,pawelk,pavlock,pavlich,pavich,pavek,pautler,paulik,patmore,patella,patee,patalano,passini,passeri,paskell,parrigan,parmar,parayno,paparelli,pantuso,pante,panico,panduro,panagos,pama,palmo,pallotta,paling,palamino,pake,pajtas,pailthorpe,pahler,pagon,paglinawan,pagley,paget,paetz,paet,padley,pacleb,pachelo,paccione,pabey,ozley,ozimek,ozawa,owney,outram,ouillette,oudekerk,ostrosky,ostermiller,ostermann,osterloh,osterfeld,ossenfort,osoria,oshell,orsino,orscheln,orrison,ororke,orellano,orejuela,ordoyne,opsahl,opland,onofre,onaga,omahony,olszowka,olshan,ollig,oliff,olien,olexy,oldridge,oldfather,olalde,okun,okumoto,oktavec,okin,ohme,ohlemacher,ohanesian,odneal,odgers,oderkirk,odden,ocain,obradovich,oakey,nussey,nunziato,nunoz,nunnenkamp,nuncio,noviello,novacek,nothstine,northum,norsen,norlander,norkus,norgaard,norena,nored,nobrega,niziolek,ninnemann,nievas,nieratko,nieng,niedermeyer,niedermaier,nicolls,newham,newcome,newberger,nevills,nevens,nevel,neumiller,netti,nessler,neria,nemet,nelon,nellon,neller,neisen,neilly,neifer,neid,neering,neehouse,neef,needler,nebergall,nealis,naumoff,naufzinger,narum,narro,narramore,naraine,napps,nansteel,namisnak,namanny,nallie,nakhle,naito,naccari,nabb,myracle,myhand,mwakitwile,muzzy,muscolino,musco,muscente,muscat,muscara,musacchia,musa,murrish,murfin,muray,munnelly,munley,munivez,mundine,mundahl,munari,mullennex,mullendore,mulkhey,mulinix,mulders,muhl,muenchow,muellner,mudget,mudger,muckenfuss,muchler,mozena,movius,mouldin,motola,mosseri,mossa,moselle,mory,morsell,morrish,morles,morie,morguson,moresco,morck,moppin,moosman,montuori,montono,montogomery,montis,monterio,monter,monsalve,mongomery,mongar,mondello,moncivais,monard,monagan,molt,mollenhauer,moldrem,moldonado,molano,mokler,moisant,moilanen,mohrman,mohamad,moger,mogel,modine,modin,modic,modha,mlynek,miya,mittiga,mittan,mitcheltree,misfeldt,misener,mirchandani,miralles,miotke,miosky,mintey,mins,minassian,minar,mimis,milon,milloy,millison,milito,milfort,milbradt,mikulich,mikos,miklas,mihelcic,migliorisi,migliori,miesch,midura,miclette,michela,micale,mezey,mews,mewes,mettert,mesker,mesich,mesecher,merthie,mersman,mersereau,merrithew,merriott,merring,merenda,merchen,mercardo,merati,mentzel,mentis,mentel,menotti,meno,mengle,mendolia,mellick,mellett,melichar,melhorn,melendres,melchiorre,meitzler,mehtani,mehrtens,meditz,medeiras,meckes,mcteer,mctee,mcparland,mcniell,mcnealey,mcmanaway,mcleon,mclay,mclavrin,mcklveen,mckinzey,mcken,mckeand,mckale,mcilwraith,mcilroy,mcgreal,mcgougan,mcgettigan,mcgarey,mcfeeters,mcelhany,mcdaris,mccomis,mccomber,mccolm,mccollins,mccollin,mccollam,mccoach,mcclory,mcclennon,mccathern,mccarthey,mccarson,mccarrel,mccargar,mccandles,mccamish,mccally,mccage,mcbrearty,mcaneny,mcanallen,mcalarney,mcaferty,mazzo,mazy,mazurowski,mazique,mayoras,mayden,maxberry,mauller,matusiak,mattsen,matthey,matkins,mathiasen,mathe,mateus,matalka,masullo,massay,mashak,mascroft,martinex,martenson,marsiglia,marsella,maroudas,marotte,marner,markes,maret,mareno,marean,marcinkiewicz,marchel,marasigan,manzueta,manzanilla,manternach,manring,manquero,manoni,manne,mankowski,manjarres,mangen,mangat,mandonado,mandia,mancias,manbeck,mamros,maltez,mallia,mallar,malla,malen,malaspina,malahan,malagisi,malachowski,makowsky,makinen,makepeace,majkowski,majid,majercin,maisey,mainguy,mailliard,maignan,mahlman,maha,magsamen,magpusao,magnano,magley,magedanz,magarelli,magaddino,maenner,madnick,maddrey,madaffari,macnaughton,macmullen,macksey,macknight,macki,macisaac,maciejczyk,maciag,machenry,machamer,macguire,macdaniel,maccormack,maccabe,mabbott,mabb,lynott,lycan,lutwin,luscombe,lusco,lusardi,luria,lunetta,lundsford,lumas,luisi,luevanos,lueckenhoff,ludgate,ludd,lucherini,lubbs,lozado,lourens,lounsberry,loughrey,loughary,lotton,losser,loshbaugh,loseke,loscalzo,lortz,loperena,loots,loosle,looman,longstaff,longobardi,longbottom,lomay,lomasney,lohrmann,lohmiller,logalbo,loetz,loeffel,lodwick,lodrigue,lockrem,llera,llarena,littrel,littmann,lisser,lippa,lipner,linnemann,lingg,lindemuth,lindeen,lillig,likins,lieurance,liesmann,liesman,liendo,lickert,lichliter,leyvas,leyrer,lewy,leubner,lesslie,lesnick,lesmerises,lerno,lequire,lepera,lepard,lenske,leneau,lempka,lemmen,lemm,lemere,leinhart,leichner,leicher,leibman,lehmberg,leggins,lebeda,leavengood,leanard,lazaroff,laventure,lavant,lauster,laumea,latigo,lasota,lashure,lasecki,lascurain,lartigue,larouche,lappe,laplaunt,laplace,lanum,lansdell,lanpher,lanoie,lankard,laniado,langowski,langhorn,langfield,langfeldt,landt,landerman,landavazo,lampo,lampke,lamper,lamery,lambey,lamadrid,lallemand,laisure,laigo,laguer,lagerman,lageman,lagares,lacosse,lachappelle,laborn,labonne,kuzia,kutt,kutil,kurylo,kurowski,kuriger,kupcho,kulzer,kulesa,kules,kuhs,kuhne,krutz,krus,krupka,kronberg,kromka,kroese,krizek,krivanek,kringel,kreiss,kratofil,krapp,krakowsky,kracke,kozlow,kowald,kover,kovaleski,kothakota,kosten,koskinen,kositzke,korff,korbar,kopplin,koplin,koos,konyn,konczak,komp,komo,kolber,kolash,kolakowski,kohm,kogen,koestner,koegler,kodama,kocik,kochheiser,kobler,kobara,knezevich,kneifl,knapchuck,knabb,klugman,klosner,klingel,klimesh,klice,kley,kleppe,klemke,kleinmann,kleinhans,kleinberg,kleffner,kleckley,klase,kisto,kissick,kisselburg,kirschman,kirks,kirkner,kirkey,kirchman,kinville,kinnunen,kimmey,kimmerle,kimbley,kilty,kilts,killmeyer,killilea,killay,kiest,kierce,kiepert,kielman,khalid,kewal,keszler,kesson,kesich,kerwood,kerksiek,kerkhoff,kerbo,keranen,keomuangtai,kenter,kennelley,keniry,kendzierski,kempner,kemmis,kemerling,kelsay,kelchner,kela,keithly,keipe,kegg,keer,keahey,kaywood,kayes,kawahara,kasuboski,kastendieck,kassin,kasprzyk,karraker,karnofski,karman,karger,karge,karella,karbowski,kapphahn,kannel,kamrath,kaminer,kamansky,kalua,kaltz,kalpakoff,kalkbrenner,kaku,kaib,kaehler,kackley,kaber,justo,juris,jurich,jurgenson,jurez,junor,juniel,juncker,jugo,jubert,jowell,jovanovic,joosten,joncas,joma,johnso,johanns,jodoin,jockers,joans,jinwright,jinenez,jimeson,jerrett,jergens,jerden,jerdee,jepperson,jendras,jeanfrancois,jazwa,jaussi,jaster,jarzombek,jarencio,janocha,jakab,jadlowiec,jacobsma,jach,izaquirre,iwaoka,ivaska,iturbe,israelson,isles,isachsen,isaak,irland,inzerillo,insogna,ingegneri,ingalsbe,inciong,inagaki,icenogle,hyett,hyers,huyck,hutti,hutten,hutnak,hussar,hurrle,hurford,hurde,hupper,hunkin,hunkele,hunke,humann,huhtasaari,hugel,hufft,huegel,hrobsky,hren,hoyles,hovsepian,hovenga,hovatter,houdek,hotze,hossler,hossfeld,hosseini,horten,hort,horr,horgen,horen,hoopii,hoon,hoogland,hontz,honnold,homewood,holway,holtgrewe,holtan,holstrom,holstege,hollway,hollingshed,hollenback,hollard,holberton,hoines,hogeland,hofstad,hoetger,hoen,hoaglund,hirota,hintermeister,hinnen,hinders,hinderer,hinchee,himelfarb,himber,hilzer,hilling,hillers,hillegas,hildinger,hignight,highman,hierholzer,heyde,hettich,hesketh,herzfeld,herzer,hershenson,hershberg,hernando,hermenegildo,hereth,hererra,hereda,herbin,heraty,herard,hepa,henschel,henrichsen,hennes,henneberger,heningburg,henig,hendron,hendericks,hemple,hempe,hemmingsen,hemler,helvie,helmly,helmbrecht,heling,helin,helfrey,helble,helaire,heizman,heisser,heiny,heinbaugh,heidemann,heidema,heiberger,hegel,heerdt,heeg,heefner,heckerman,heckendorf,heavin,headman,haynesworth,haylock,hayakawa,hawksley,haverstick,haut,hausen,hauke,haubold,hattan,hattabaugh,hasstedt,hashem,haselhorst,harrist,harpst,haroldsen,harmison,harkema,harison,hariri,harcus,harcum,harcharik,hanzel,hanvey,hantz,hansche,hansberger,hannig,hanken,hanhardt,hanf,hanauer,hamberlin,halward,halsall,hals,hallquist,hallmon,halk,halbach,halat,hajdas,hainsworth,haik,hahm,hagger,haggar,hader,hadel,haddick,hackmann,haasch,haaf,guzzetta,guzy,gutterman,gutmann,gutkowski,gustine,gursky,gurner,gunsolley,gumpert,gulla,guilmain,guiliani,guier,guers,guerero,guerena,guebara,guadiana,grunder,grothoff,grosland,grosh,groos,grohs,grohmann,groepper,grodi,grizzaffi,grissinger,grippi,grinde,griffee,grether,greninger,greigo,gregorski,greger,grega,greenberger,graza,grattan,grasse,grano,gramby,gradilla,govin,goutremout,goulas,gotay,gosling,gorey,gordner,goossen,goodwater,gonzaga,gonyo,gonska,gongalves,gomillion,gombos,golonka,gollman,goldtrap,goldammer,golas,golab,gola,gogan,goffman,goeppinger,godkin,godette,glore,glomb,glauner,glassey,glasner,gividen,giuffrida,gishal,giovanelli,ginoza,ginns,gindlesperger,gindhart,gillem,gilger,giggey,giebner,gibbson,giacomo,giacolone,giaccone,giacchino,ghere,gherardini,gherardi,gfeller,getts,gerwitz,gervin,gerstle,gerfin,geremia,gercak,gener,gencarelli,gehron,gehrmann,geffers,geery,geater,gawlik,gaudino,garsia,garrahan,garrabrant,garofolo,garigliano,garfinkle,garelick,gardocki,garafola,gappa,gantner,ganther,gangelhoff,gamarra,galstad,gally,gallik,gallier,galimba,gali,galassi,gaige,gadsby,gabbin,gabak,fyall,furney,funez,fulwider,fulson,fukunaga,fujikawa,fugere,fuertes,fuda,fryson,frump,frothingham,froning,froncillo,frohling,froberg,froats,fritchman,frische,friedrichsen,friedmann,friddell,frid,fresch,frentzel,freno,frelow,freimuth,freidel,freehan,freeby,freeburn,fredieu,frederiksen,fredeen,frazell,frayser,fratzke,frattini,franze,franich,francescon,framer,fragman,frack,foxe,fowlston,fosberg,fortna,fornataro,forden,foots,foody,fogt,foglia,fogerty,fogelson,flygare,flowe,flinner,flem,flath,flater,flahaven,flad,fjeld,fitanides,fistler,fishbaugh,firsching,finzel,finical,fingar,filosa,filicetti,filby,fierst,fierra,ficklen,ficher,fersner,ferrufino,ferrucci,fero,ferlenda,ferko,fergerstrom,ferge,fenty,fent,fennimore,fendt,femat,felux,felman,feldhaus,feisthamel,feijoo,feiertag,fehrman,fehl,feezell,feeback,fedigan,fedder,fechner,feary,fayson,faylor,fauteux,faustini,faure,fauci,fauber,fattig,farruggio,farrens,faraci,fantini,fantin,fanno,fannings,faniel,fallaw,falker,falkenhagen,fajen,fahrner,fabel,fabacher,eytcheson,eyster,exford,exel,evetts,evenstad,evanko,euresti,euber,etcitty,estler,essner,essinger,esplain,espenshade,espaillat,escribano,escorcia,errington,errett,errera,erlanger,erenrich,erekson,erber,entinger,ensworth,ensell,enno,ennen,englin,engblom,engberson,encinias,enama,emel,elzie,elsbree,elman,ellebracht,elkan,elfstrom,elerson,eleazer,eleam,eldrige,elcock,einspahr,eike,eidschun,eickman,eichele,eiche,ehlke,eguchi,eggink,edouard,edgehill,eckes,eblin,ebberts,eavenson,earvin,eardley,eagon,eader,dzubak,dylla,dyckman,dwire,dutrow,dutile,dusza,dustman,dusing,duryee,durupan,durtschi,durtsche,durell,dunny,dunnegan,dunken,dumm,dulak,duker,dukelow,dufort,dufilho,duffee,duett,dueck,dudzinski,dudasik,duckwall,duchemin,dubrow,dubis,dubicki,duba,drust,druckman,drinnen,drewett,drewel,dreitzler,dreckman,drappo,draffen,drabant,doyen,dowding,doub,dorson,dorschner,dorrington,dorney,dormaier,dorff,dorcy,donges,donelly,donel,domangue,dols,dollahite,dolese,doldo,doiley,dohrman,dohn,doheny,doceti,dobry,dobrinski,dobey,divincenzo,dischinger,dirusso,dirocco,dipiano,diop,dinitto,dinehart,dimsdale,diminich,dimalanta,dillavou,dilello,difusco,diffey,diffenderfer,diffee,difelice,difabio,dietzman,dieteman,diepenbrock,dieckmann,dicampli,dibari,diazdeleon,diallo,dewitz,dewiel,devoll,devol,devincent,devier,devendorf,devalk,detten,detraglia,dethomas,detemple,desler,desharnais,desanty,derocco,dermer,derks,derito,derhammer,deraney,dequattro,depass,depadua,denyes,denyer,dentino,denlinger,deneal,demory,demopoulos,demontigny,demonte,demeza,delsol,delrosso,delpit,delpapa,delouise,delone,delo,delmundo,delmore,dellapaolera,delfin,delfierro,deleonardis,delenick,delcarlo,delcampo,delcamp,delawyer,delaroca,delaluz,delahunt,delaguardia,dekeyser,dekay,dejaeger,dejackome,dehay,dehass,degraffenried,degenhart,degan,deever,deedrick,deckelbaum,dechico,dececco,decasas,debrock,debona,debeaumont,debarros,debaca,dearmore,deangelus,dealmeida,dawood,davney,daudt,datri,dasgupta,darring,darracott,darcus,daoud,dansbury,dannels,danielski,danehy,dancey,damour,dambra,dalcour,dahlheimer,dadisman,dacunto,dacamara,dabe,cyrulik,cyphert,cwik,cussen,curles,curit,curby,curbo,cunas,cunard,cunanan,cumpton,culcasi,cucinotta,cucco,csubak,cruthird,crumwell,crummitt,crumedy,crouthamel,cronce,cromack,crisafi,crimin,cresto,crescenzo,cremonese,creedon,crankshaw,cozzens,coval,courtwright,courcelle,coupland,counihan,coullard,cotrell,cosgrave,cornelio,corish,cordoua,corbit,coppersmith,coonfield,conville,contrell,contento,conser,conrod,connole,congrove,conery,condray,colver,coltman,colflesh,colcord,colavito,colar,coile,coggan,coenen,codling,coda,cockroft,cockrel,cockerill,cocca,coberley,clouden,clos,clish,clinkscale,clester,clammer,cittadino,citrano,ciresi,cillis,ciccarelli,ciborowski,ciarlo,ciardullo,chritton,chopp,chirco,chilcoat,chevarie,cheslak,chernak,chay,chatterjee,chatten,chatagnier,chastin,chappuis,channey,champlain,chalupsky,chalfin,chaffer,chadek,chadderton,cestone,cestero,cestari,cerros,cermeno,centola,cedrone,cayouette,cavan,cavaliero,casuse,castricone,castoreno,casten,castanada,castagnola,casstevens,cassanova,caspari,casher,cashatt,casco,casassa,casad,carville,cartland,cartegena,carsey,carsen,carrino,carrilo,carpinteyro,carmley,carlston,carlsson,cariddi,caricofe,carel,cardy,carducci,carby,carangelo,capriotti,capria,caprario,capelo,canul,cantua,cantlow,canny,cangialosi,canepa,candland,campolo,campi,camors,camino,camfield,camelo,camarero,camaeho,calvano,calliste,caldarella,calcutt,calcano,caissie,cager,caccamo,cabotage,cabble,byman,buzby,butkowski,bussler,busico,bushovisky,busbin,busard,busalacchi,burtman,burrous,burridge,burrer,burno,burin,burgette,burdock,burdier,burckhard,bunten,bungay,bundage,bumby,bultema,bulinski,bulan,bukhari,buganski,buerkle,buen,buehl,budzynski,buckham,bryk,brydon,bruyere,brunsvold,brunnett,brunker,brunfield,brumble,brue,brozina,brossman,brosey,brookens,broersma,brodrick,brockmeier,brockhouse,brisky,brinkly,brincefield,brighenti,brigante,brieno,briede,bridenbaugh,brickett,breske,brener,brenchley,breitkreutz,breitbart,breister,breining,breighner,breidel,brehon,breheny,breard,breakell,brazill,braymiller,braum,brau,brashaw,bransom,brandolino,brancato,branagan,braff,brading,bracker,brackenbury,bracher,braasch,boylen,boyda,boyanton,bowlus,bowditch,boutot,bouthillette,boursiquot,bourjolly,bouret,boulerice,bouer,bouchillon,bouchie,bottin,boteilho,bosko,bosack,borys,bors,borla,borjon,borghi,borah,booten,boore,bonuz,bonne,bongers,boneta,bonawitz,bonanni,bomer,bollen,bollard,bolla,bolio,boisseau,boies,boiani,bohorquez,boghossian,boespflug,boeser,boehl,boegel,bodrick,bodkins,bodenstein,bodell,bockover,bocci,bobbs,boals,boahn,boadway,bluma,bluett,bloor,blomker,blevens,blethen,bleecker,blayney,blaske,blasetti,blancas,blackner,bjorkquist,bjerk,bizub,bisono,bisges,bisaillon,birr,birnie,bires,birdtail,birdine,bina,billock,billinger,billig,billet,bigwood,bigalk,bielicki,biddick,biccum,biafore,bhagat,beza,beyah,bevier,bevell,beute,betzer,betthauser,bethay,bethard,beshaw,bertholf,bertels,berridge,bernot,bernath,bernabei,berkson,berkovitz,berkich,bergsten,berget,berezny,berdin,beougher,benthin,benhaim,benenati,benejan,bemiss,beloate,bellucci,bellotti,belling,bellido,bellaire,bellafiore,bekins,bekele,beish,behnken,beerly,beddo,becket,becke,bebeau,beauchaine,beaucage,beadling,beacher,bazar,baysmore".split(",")))];
+ra=v.concat([function(b){var a,d,c,e,f,g,h,i,j,k,l,m,o,n,p,q;f=[];p=P(R(b));j=0;for(m=p.length;j "+a);i.sub_display=B.join(", ");f.push(c)}}}return f},function(b){var a,d,c,e,f,g;f=p(b,N);
+g=[];c=0;for(e=f.length;c",",<"],$:["3#",null,null,"5%","pP",".>"],"%":["4$",null,null,"6^","yY","pP"],"&":["6^",null,null,"8*",
+"gG","fF"],"'":[null,"1!","2@",",<","aA",null],"(":["8*",null,null,"0)","rR","cC"],")":["9(",null,null,"[{","lL","rR"],"*":["7&",null,null,"9(","cC","gG"],"+":["/?","]}",null,"\\|",null,"-_"],",":"'\",2@,3#,.>,oO,aA".split(","),"-":["sS","/?","=+",null,null,"zZ"],".":",< 3# 4$ pP eE oO".split(" "),"/":"lL,[{,]},=+,-_,sS".split(","),"0":["9(",null,null,"[{","lL","rR"],1:["`~",null,null,"2@","'\"",null],2:["1!",null,null,"3#",",<","'\""],3:["2@",null,null,"4$",".>",",<"],4:["3#",null,null,"5%","pP",
+".>"],5:["4$",null,null,"6^","yY","pP"],6:["5%",null,null,"7&","fF","yY"],7:["6^",null,null,"8*","gG","fF"],8:["7&",null,null,"9(","cC","gG"],9:["8*",null,null,"0)","rR","cC"],":":[null,"aA","oO","qQ",null,null],";":[null,"aA","oO","qQ",null,null],"<":"'\",2@,3#,.>,oO,aA".split(","),"=":["/?","]}",null,"\\|",null,"-_"],">":",< 3# 4$ pP eE oO".split(" "),"?":"lL,[{,]},=+,-_,sS".split(","),"@":["1!",null,null,"3#",",<","'\""],A:[null,"'\"",",<","oO",";:",null],B:["xX","dD","hH","mM",null,null],C:"gG,8*,9(,rR,tT,hH".split(","),
+D:"iI,fF,gG,hH,bB,xX".split(","),E:"oO,.>,pP,uU,jJ,qQ".split(","),F:"yY,6^,7&,gG,dD,iI".split(","),G:"fF,7&,8*,cC,hH,dD".split(","),H:"dD,gG,cC,tT,mM,bB".split(","),I:"uU,yY,fF,dD,xX,kK".split(","),J:["qQ","eE","uU","kK",null,null],K:["jJ","uU","iI","xX",null,null],L:"rR,0),[{,/?,sS,nN".split(","),M:["bB","hH","tT","wW",null,null],N:"tT,rR,lL,sS,vV,wW".split(","),O:"aA ,< .> eE qQ ;:".split(" "),P:".>,4$,5%,yY,uU,eE".split(","),Q:[";:","oO","eE","jJ",null,null],R:"cC,9(,0),lL,nN,tT".split(","),S:"nN,lL,/?,-_,zZ,vV".split(","),
+T:"hH,cC,rR,nN,wW,mM".split(","),U:"eE,pP,yY,iI,kK,jJ".split(","),V:["wW","nN","sS","zZ",null,null],W:["mM","tT","nN","vV",null,null],X:["kK","iI","dD","bB",null,null],Y:"pP,5%,6^,fF,iI,uU".split(","),Z:["vV","sS","-_",null,null,null],"[":["0)",null,null,"]}","/?","lL"],"\\":["=+",null,null,null,null,null],"]":["[{",null,null,null,"=+","/?"],"^":["5%",null,null,"7&","fF","yY"],_:["sS","/?","=+",null,null,"zZ"],"`":[null,null,null,"1!",null,null],a:[null,"'\"",",<","oO",";:",null],b:["xX","dD","hH",
+"mM",null,null],c:"gG,8*,9(,rR,tT,hH".split(","),d:"iI,fF,gG,hH,bB,xX".split(","),e:"oO,.>,pP,uU,jJ,qQ".split(","),f:"yY,6^,7&,gG,dD,iI".split(","),g:"fF,7&,8*,cC,hH,dD".split(","),h:"dD,gG,cC,tT,mM,bB".split(","),i:"uU,yY,fF,dD,xX,kK".split(","),j:["qQ","eE","uU","kK",null,null],k:["jJ","uU","iI","xX",null,null],l:"rR,0),[{,/?,sS,nN".split(","),m:["bB","hH","tT","wW",null,null],n:"tT,rR,lL,sS,vV,wW".split(","),o:"aA ,< .> eE qQ ;:".split(" "),p:".>,4$,5%,yY,uU,eE".split(","),q:[";:","oO","eE","jJ",
+null,null],r:"cC,9(,0),lL,nN,tT".split(","),s:"nN,lL,/?,-_,zZ,vV".split(","),t:"hH,cC,rR,nN,wW,mM".split(","),u:"eE,pP,yY,iI,kK,jJ".split(","),v:["wW","nN","sS","zZ",null,null],w:["mM","tT","nN","vV",null,null],x:["kK","iI","dD","bB",null,null],y:"pP,5%,6^,fF,iI,uU".split(","),z:["vV","sS","-_",null,null,null],"{":["0)",null,null,"]}","/?","lL"],"|":["=+",null,null,null,null,null],"}":["[{",null,null,null,"=+","/?"],"~":[null,null,null,"1!",null,null]},keypad:F,mac_keypad:{"*":["/",null,null,null,
+null,null,"-","9"],"+":["6","9","-",null,null,null,null,"3"],"-":["9","/","*",null,null,null,"+","6"],".":["0","2","3",null,null,null,null,null],"/":["=",null,null,null,"*","-","9","8"],"0":[null,"1","2","3",".",null,null,null],1:[null,null,"4","5","2","0",null,null],2:["1","4","5","6","3",".","0",null],3:["2","5","6","+",null,null,".","0"],4:[null,null,"7","8","5","2","1",null],5:"4,7,8,9,6,3,2,1".split(","),6:["5","8","9","-","+",null,"3","2"],7:[null,null,null,"=","8","5","4",null],8:["7",null,
+"=","/","9","6","5","4"],9:"8,=,/,*,-,+,6,5".split(","),"=":[null,null,null,null,"/","9","8","7"]}};t=function(b){var a,d,c,e,f;a=0;for(c in b)f=b[c],a+=function(){var a,b,c;c=[];a=0;for(b=f.length;agetTempManager()->cleanOld();
// Exit if background jobs are disabled!
$appmode = OC_BackgroundJob::getExecutionType();
@@ -132,9 +131,9 @@ try {
// done!
TemporaryCronClass::$sent = true;
- // Log the successfull cron exec
- if (OC_Config::getValue('cron_log', true)) {
- OC_Appconfig::setValue('core', 'lastcron', time());
+ // Log the successful cron execution
+ if (\OC::$server->getConfig()->getSystemValue('cron_log', true)) {
+ \OC::$server->getAppConfig()->setValue('core', 'lastcron', time());
}
exit();
diff --git a/index.php b/index.php
old mode 100755
new mode 100644
diff --git a/l10n/.gitignore b/l10n/.gitignore
index 6d609cec52b..72ab4b0e236 100644
--- a/l10n/.gitignore
+++ b/l10n/.gitignore
@@ -1 +1,2 @@
*.po
+*.pot
diff --git a/l10n/init.sh b/l10n/init.sh
deleted file mode 100755
index 98195bf01bf..00000000000
--- a/l10n/init.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-for resource in calendar contacts core files media gallery settings
-do
-tx set --auto-local -r owncloud.$resource "/$resource.po" --source-lang en --source-file templates/$resource.pot --execute
-done
diff --git a/l10n/l10n.pl b/l10n/l10n.pl
index 10df5f8f803..7443a5f941d 100644
--- a/l10n/l10n.pl
+++ b/l10n/l10n.pl
@@ -120,7 +120,7 @@ if( $task eq 'read' ){
my $language = ( $file =~ /\.js$/ ? 'Python' : 'PHP');
my $joinexisting = ( -e $output ? '--join-existing' : '');
print " Reading $file\n";
- `xgettext --output="$output" $joinexisting $keywords --language=$language "$file" --add-comments=TRANSLATORS --from-code=UTF-8 --package-version="6.0.0" --package-name="ownCloud Core" --msgid-bugs-address="translations\@owncloud.org"`;
+ `xgettext --output="$output" $joinexisting $keywords --language=$language "$file" --add-comments=TRANSLATORS --from-code=UTF-8 --package-version="8.0.0" --package-name="ownCloud Core" --msgid-bugs-address="translations\@owncloud.org"`;
}
chdir( $whereami );
}
@@ -142,6 +142,7 @@ elsif( $task eq 'write' ){
my $array = Locale::PO->load_file_asarray( $input );
# Create array
my @strings = ();
+ my @js_strings = ();
my $plurals;
foreach my $string ( @{$array} ){
@@ -160,11 +161,13 @@ elsif( $task eq 'write' ){
}
push( @strings, "\"$identifier\" => array(".join(",", @variants).")");
+ push( @js_strings, "\"$identifier\" : [".join(",", @variants)."]");
}
else{
# singular translations
next if $string->msgstr() eq '""';
push( @strings, $string->msgid()." => ".$string->msgstr());
+ push( @js_strings, $string->msgid()." : ".$string->msgstr());
}
}
next if $#strings == -1; # Skip empty files
@@ -173,12 +176,24 @@ elsif( $task eq 'write' ){
s/\$/\\\$/g;
}
- # Write PHP file
- open( OUT, ">$language.php" );
- print OUT "$language.js" );
+ print OUT "OC.L10N.register(\n \"$app\",\n {\n ";
+ print OUT join( ",\n ", @js_strings );
+ print OUT "\n},\n\"$plurals\");\n";
close( OUT );
+
+ # Write json file
+ open( OUT, ">$language.json" );
+ print OUT "{ \"translations\": ";
+ print OUT "{\n ";
+ print OUT join( ",\n ", @js_strings );
+ print OUT "\n},\"pluralForm\" :\"$plurals\"\n}";
+ close( OUT );
+
}
chdir( $whereami );
}
diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot
deleted file mode 100644
index 31ca65cdd60..00000000000
--- a/l10n/templates/core.pot
+++ /dev/null
@@ -1,931 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: ajax/share.php:118 ajax/share.php:160
-#, php-format
-msgid "Couldn't send mail to following users: %s "
-msgstr ""
-
-#: ajax/update.php:14
-msgid "Turned on maintenance mode"
-msgstr ""
-
-#: ajax/update.php:17
-msgid "Turned off maintenance mode"
-msgstr ""
-
-#: ajax/update.php:20
-msgid "Updated database"
-msgstr ""
-
-#: ajax/update.php:23
-msgid "Checked database schema update"
-msgstr ""
-
-#: ajax/update.php:26
-msgid "Checked database schema update for apps"
-msgstr ""
-
-#: ajax/update.php:29
-#, php-format
-msgid "Updated \"%s\" to %s"
-msgstr ""
-
-#: ajax/update.php:37
-#, php-format
-msgid "Disabled incompatible apps: %s"
-msgstr ""
-
-#: avatar/controller.php:69
-msgid "No image or file provided"
-msgstr ""
-
-#: avatar/controller.php:86
-msgid "Unknown filetype"
-msgstr ""
-
-#: avatar/controller.php:90
-msgid "Invalid image"
-msgstr ""
-
-#: avatar/controller.php:120 avatar/controller.php:147
-msgid "No temporary profile picture available, try again"
-msgstr ""
-
-#: avatar/controller.php:140
-msgid "No crop data provided"
-msgstr ""
-
-#: js/config.php:45
-msgid "Sunday"
-msgstr ""
-
-#: js/config.php:46
-msgid "Monday"
-msgstr ""
-
-#: js/config.php:47
-msgid "Tuesday"
-msgstr ""
-
-#: js/config.php:48
-msgid "Wednesday"
-msgstr ""
-
-#: js/config.php:49
-msgid "Thursday"
-msgstr ""
-
-#: js/config.php:50
-msgid "Friday"
-msgstr ""
-
-#: js/config.php:51
-msgid "Saturday"
-msgstr ""
-
-#: js/config.php:56
-msgid "January"
-msgstr ""
-
-#: js/config.php:57
-msgid "February"
-msgstr ""
-
-#: js/config.php:58
-msgid "March"
-msgstr ""
-
-#: js/config.php:59
-msgid "April"
-msgstr ""
-
-#: js/config.php:60
-msgid "May"
-msgstr ""
-
-#: js/config.php:61
-msgid "June"
-msgstr ""
-
-#: js/config.php:62
-msgid "July"
-msgstr ""
-
-#: js/config.php:63
-msgid "August"
-msgstr ""
-
-#: js/config.php:64
-msgid "September"
-msgstr ""
-
-#: js/config.php:65
-msgid "October"
-msgstr ""
-
-#: js/config.php:66
-msgid "November"
-msgstr ""
-
-#: js/config.php:67
-msgid "December"
-msgstr ""
-
-#: js/js.js:499
-msgid "Settings"
-msgstr ""
-
-#: js/js.js:588
-msgid "File"
-msgstr ""
-
-#: js/js.js:589
-msgid "Folder"
-msgstr ""
-
-#: js/js.js:590
-msgid "Image"
-msgstr ""
-
-#: js/js.js:591
-msgid "Audio"
-msgstr ""
-
-#: js/js.js:605
-msgid "Saving..."
-msgstr ""
-
-#: js/lostpassword.js:3 lostpassword/controller/lostcontroller.php:198
-msgid "Couldn't send reset email. Please contact your administrator."
-msgstr ""
-
-#: js/lostpassword.js:5
-msgid ""
-"The link to reset your password has been sent to your email. If you do not "
-"receive it within a reasonable amount of time, check your spam/junk folders."
-" If it is not there ask your local administrator."
-msgstr ""
-
-#: js/lostpassword.js:7
-msgid ""
-"Your files are encrypted. If you haven't enabled the recovery key, there "
-"will be no way to get your data back after your password is reset. If "
-"you are not sure what to do, please contact your administrator before you "
-"continue. Do you really want to continue?"
-msgstr ""
-
-#: js/lostpassword.js:10
-msgid "I know what I'm doing"
-msgstr ""
-
-#: js/lostpassword.js:13 lostpassword/templates/resetpassword.php:9
-msgid "Reset password"
-msgstr ""
-
-#: js/lostpassword.js:16
-msgid "Password can not be changed. Please contact your administrator."
-msgstr ""
-
-#: js/oc-dialogs.js:108 js/oc-dialogs.js:255
-msgid "No"
-msgstr ""
-
-#: js/oc-dialogs.js:116 js/oc-dialogs.js:264
-msgid "Yes"
-msgstr ""
-
-#: js/oc-dialogs.js:202
-msgid "Choose"
-msgstr ""
-
-#: js/oc-dialogs.js:229
-msgid "Error loading file picker template: {error}"
-msgstr ""
-
-#: js/oc-dialogs.js:282
-msgid "Ok"
-msgstr ""
-
-#: js/oc-dialogs.js:302
-msgid "Error loading message template: {error}"
-msgstr ""
-
-#: js/oc-dialogs.js:430
-msgid "{count} file conflict"
-msgid_plural "{count} file conflicts"
-msgstr[0] ""
-msgstr[1] ""
-
-#: js/oc-dialogs.js:444
-msgid "One file conflict"
-msgstr ""
-
-#: js/oc-dialogs.js:450
-msgid "New Files"
-msgstr ""
-
-#: js/oc-dialogs.js:451
-msgid "Already existing files"
-msgstr ""
-
-#: js/oc-dialogs.js:453
-msgid "Which files do you want to keep?"
-msgstr ""
-
-#: js/oc-dialogs.js:454
-msgid ""
-"If you select both versions, the copied file will have a number added to its "
-"name."
-msgstr ""
-
-#: js/oc-dialogs.js:462
-msgid "Cancel"
-msgstr ""
-
-#: js/oc-dialogs.js:472
-msgid "Continue"
-msgstr ""
-
-#: js/oc-dialogs.js:519 js/oc-dialogs.js:532
-msgid "(all selected)"
-msgstr ""
-
-#: js/oc-dialogs.js:522 js/oc-dialogs.js:536
-msgid "({count} selected)"
-msgstr ""
-
-#: js/oc-dialogs.js:544
-msgid "Error loading file exists template"
-msgstr ""
-
-#: js/setup.js:99
-msgid "Very weak password"
-msgstr ""
-
-#: js/setup.js:100
-msgid "Weak password"
-msgstr ""
-
-#: js/setup.js:101
-msgid "So-so password"
-msgstr ""
-
-#: js/setup.js:102
-msgid "Good password"
-msgstr ""
-
-#: js/setup.js:103
-msgid "Strong password"
-msgstr ""
-
-#: js/setupchecks.js:24
-msgid ""
-"Your web server is not yet properly setup to allow files synchronization "
-"because the WebDAV interface seems to be broken."
-msgstr ""
-
-#: js/setupchecks.js:54
-msgid ""
-"This server has no working internet connection. This means that some of the "
-"features like mounting of external storage, notifications about updates or "
-"installation of 3rd party apps don´t work. Accessing files from remote and "
-"sending of notification emails might also not work. We suggest to enable "
-"internet connection for this server if you want to have all features."
-msgstr ""
-
-#: js/setupchecks.js:58
-msgid "Error occurred while checking server setup"
-msgstr ""
-
-#: js/share.js:129 js/share.js:251
-msgid "Shared"
-msgstr ""
-
-#: js/share.js:257
-msgid "Shared with {recipients}"
-msgstr ""
-
-#: js/share.js:266
-msgid "Share"
-msgstr ""
-
-#: js/share.js:326 js/share.js:340 js/share.js:347 js/share.js:1076
-#: templates/installation.php:10
-msgid "Error"
-msgstr ""
-
-#: js/share.js:328 js/share.js:1139
-msgid "Error while sharing"
-msgstr ""
-
-#: js/share.js:340
-msgid "Error while unsharing"
-msgstr ""
-
-#: js/share.js:347
-msgid "Error while changing permissions"
-msgstr ""
-
-#: js/share.js:357
-msgid "Shared with you and the group {group} by {owner}"
-msgstr ""
-
-#: js/share.js:359
-msgid "Shared with you by {owner}"
-msgstr ""
-
-#: js/share.js:383
-msgid "Share with user or group …"
-msgstr ""
-
-#: js/share.js:391
-msgid "Share link"
-msgstr ""
-
-#: js/share.js:396
-msgid ""
-"The public link will expire no later than {days} days after it is created"
-msgstr ""
-
-#: js/share.js:400
-msgid "Password protect"
-msgstr ""
-
-#: js/share.js:402
-msgid "Choose a password for the public link"
-msgstr ""
-
-#: js/share.js:410
-msgid "Allow Public Upload"
-msgstr ""
-
-#: js/share.js:414
-msgid "Email link to person"
-msgstr ""
-
-#: js/share.js:415
-msgid "Send"
-msgstr ""
-
-#: js/share.js:420
-msgid "Set expiration date"
-msgstr ""
-
-#: js/share.js:421
-msgid "Expiration date"
-msgstr ""
-
-#: js/share.js:496
-msgid "Adding user..."
-msgstr ""
-
-#: js/share.js:513 js/share.js:581
-msgid "group"
-msgstr ""
-
-#: js/share.js:546
-msgid "Resharing is not allowed"
-msgstr ""
-
-#: js/share.js:597
-msgid "Shared in {item} with {user}"
-msgstr ""
-
-#: js/share.js:619
-msgid "Unshare"
-msgstr ""
-
-#: js/share.js:627
-msgid "notify by email"
-msgstr ""
-
-#: js/share.js:630
-msgid "can share"
-msgstr ""
-
-#: js/share.js:633
-msgid "can edit"
-msgstr ""
-
-#: js/share.js:635
-msgid "access control"
-msgstr ""
-
-#: js/share.js:638
-msgid "create"
-msgstr ""
-
-#: js/share.js:641
-msgid "update"
-msgstr ""
-
-#: js/share.js:644
-msgid "delete"
-msgstr ""
-
-#: js/share.js:1057
-msgid "Password protected"
-msgstr ""
-
-#: js/share.js:1076
-msgid "Error unsetting expiration date"
-msgstr ""
-
-#: js/share.js:1097
-msgid "Error setting expiration date"
-msgstr ""
-
-#: js/share.js:1126
-msgid "Sending ..."
-msgstr ""
-
-#: js/share.js:1137
-msgid "Email sent"
-msgstr ""
-
-#: js/share.js:1161
-msgid "Warning"
-msgstr ""
-
-#: js/tags.js:8
-msgid "The object type is not specified."
-msgstr ""
-
-#: js/tags.js:19
-msgid "Enter new"
-msgstr ""
-
-#: js/tags.js:33
-msgid "Delete"
-msgstr ""
-
-#: js/tags.js:43
-msgid "Add"
-msgstr ""
-
-#: js/tags.js:57
-msgid "Edit tags"
-msgstr ""
-
-#: js/tags.js:75
-msgid "Error loading dialog template: {error}"
-msgstr ""
-
-#: js/tags.js:288
-msgid "No tags selected for deletion."
-msgstr ""
-
-#: js/update.js:30
-msgid "Updating {productName} to version {version}, this may take a while."
-msgstr ""
-
-#: js/update.js:43
-msgid "Please reload the page."
-msgstr ""
-
-#: js/update.js:52
-msgid "The update was unsuccessful."
-msgstr ""
-
-#: js/update.js:61
-msgid "The update was successful. Redirecting you to ownCloud now."
-msgstr ""
-
-#: lostpassword/controller/lostcontroller.php:133
-msgid "Couldn't reset password because the token is invalid"
-msgstr ""
-
-#: lostpassword/controller/lostcontroller.php:159
-msgid "Couldn't send reset email. Please make sure your username is correct."
-msgstr ""
-
-#: lostpassword/controller/lostcontroller.php:174
-msgid ""
-"Couldn't send reset email because there is no email address for this "
-"username. Please contact your administrator."
-msgstr ""
-
-#: lostpassword/controller/lostcontroller.php:191
-#, php-format
-msgid "%s password reset"
-msgstr ""
-
-#: lostpassword/templates/email.php:2
-msgid "Use the following link to reset your password: {link}"
-msgstr ""
-
-#: lostpassword/templates/lostpassword.php:6
-msgid "You will receive a link to reset your password via Email."
-msgstr ""
-
-#: lostpassword/templates/lostpassword.php:8
-#: lostpassword/templates/lostpassword.php:9 templates/installation.php:44
-#: templates/installation.php:47 templates/login.php:24 templates/login.php:28
-msgid "Username"
-msgstr ""
-
-#: lostpassword/templates/lostpassword.php:13
-msgid ""
-"Your files are encrypted. If you haven't enabled the recovery key, there "
-"will be no way to get your data back after your password is reset. If you "
-"are not sure what to do, please contact your administrator before you "
-"continue. Do you really want to continue?"
-msgstr ""
-
-#: lostpassword/templates/lostpassword.php:15
-msgid "Yes, I really want to reset my password now"
-msgstr ""
-
-#: lostpassword/templates/lostpassword.php:18
-msgid "Reset"
-msgstr ""
-
-#: lostpassword/templates/resetpassword.php:5
-msgid "New password"
-msgstr ""
-
-#: lostpassword/templates/resetpassword.php:6
-msgid "New Password"
-msgstr ""
-
-#: setup/controller.php:144
-#, php-format
-msgid ""
-"Mac OS X is not supported and %s will not work properly on this platform. "
-"Use it at your own risk! "
-msgstr ""
-
-#: setup/controller.php:148
-msgid "For the best results, please consider using a GNU/Linux server instead."
-msgstr ""
-
-#: strings.php:5
-msgid "Personal"
-msgstr ""
-
-#: strings.php:6
-msgid "Users"
-msgstr ""
-
-#: strings.php:7 templates/layout.user.php:58 templates/layout.user.php:127
-msgid "Apps"
-msgstr ""
-
-#: strings.php:8
-msgid "Admin"
-msgstr ""
-
-#: strings.php:9
-msgid "Help"
-msgstr ""
-
-#: tags/controller.php:22
-msgid "Error loading tags"
-msgstr ""
-
-#: tags/controller.php:48
-msgid "Tag already exists"
-msgstr ""
-
-#: tags/controller.php:64
-msgid "Error deleting tag(s)"
-msgstr ""
-
-#: tags/controller.php:75
-msgid "Error tagging"
-msgstr ""
-
-#: tags/controller.php:86
-msgid "Error untagging"
-msgstr ""
-
-#: tags/controller.php:97
-msgid "Error favoriting"
-msgstr ""
-
-#: tags/controller.php:108
-msgid "Error unfavoriting"
-msgstr ""
-
-#: templates/403.php:12
-msgid "Access forbidden"
-msgstr ""
-
-#: templates/404.php:17
-msgid "File not found"
-msgstr ""
-
-#: templates/404.php:18
-msgid "The specified document has not been found on the server."
-msgstr ""
-
-#: templates/404.php:19
-#, php-format
-msgid "You can click here to return to %s."
-msgstr ""
-
-#: templates/altmail.php:2
-#, php-format
-msgid ""
-"Hey there,\n"
-"\n"
-"just letting you know that %s shared %s with you.\n"
-"View it: %s\n"
-"\n"
-msgstr ""
-
-#: templates/altmail.php:4 templates/mail.php:17
-#, php-format
-msgid "The share will expire on %s."
-msgstr ""
-
-#. TRANSLATORS term at the end of a mail
-#: templates/altmail.php:8 templates/mail.php:21
-msgid "Cheers!"
-msgstr ""
-
-#: templates/exception.php:7
-msgid ""
-"The server encountered an internal error and was unable to complete your "
-"request."
-msgstr ""
-
-#: templates/exception.php:8
-msgid ""
-"Please contact the server administrator if this error reappears multiple "
-"times, please include the technical details below in your report."
-msgstr ""
-
-#: templates/exception.php:9
-msgid "More details can be found in the server log."
-msgstr ""
-
-#: templates/exception.php:12
-msgid "Technical details"
-msgstr ""
-
-#: templates/exception.php:14
-#, php-format
-msgid "Remote Address: %s"
-msgstr ""
-
-#: templates/exception.php:15
-#, php-format
-msgid "Request ID: %s"
-msgstr ""
-
-#: templates/exception.php:17
-#, php-format
-msgid "Code: %s"
-msgstr ""
-
-#: templates/exception.php:18
-#, php-format
-msgid "Message: %s"
-msgstr ""
-
-#: templates/exception.php:19
-#, php-format
-msgid "File: %s"
-msgstr ""
-
-#: templates/exception.php:20
-#, php-format
-msgid "Line: %s"
-msgstr ""
-
-#: templates/exception.php:26
-msgid "Trace"
-msgstr ""
-
-#: templates/installation.php:25 templates/installation.php:32
-msgid "Security Warning"
-msgstr ""
-
-#: templates/installation.php:26
-msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
-msgstr ""
-
-#: templates/installation.php:27
-#, php-format
-msgid "Please update your PHP installation to use %s securely."
-msgstr ""
-
-#: templates/installation.php:33
-msgid ""
-"Your data directory and files are probably accessible from the internet "
-"because the .htaccess file does not work."
-msgstr ""
-
-#: templates/installation.php:35
-#, php-format
-msgid ""
-"For information how to properly configure your server, please see the documentation ."
-msgstr ""
-
-#: templates/installation.php:41
-msgid "Create an admin account "
-msgstr ""
-
-#: templates/installation.php:52 templates/installation.php:55
-#: templates/login.php:34 templates/login.php:37
-msgid "Password"
-msgstr ""
-
-#: templates/installation.php:65
-msgid "Storage & database"
-msgstr ""
-
-#: templates/installation.php:72
-msgid "Data folder"
-msgstr ""
-
-#: templates/installation.php:85
-msgid "Configure the database"
-msgstr ""
-
-#: templates/installation.php:89
-#, php-format
-msgid "Only %s is available."
-msgstr ""
-
-#: templates/installation.php:104 templates/installation.php:106
-msgid "Database user"
-msgstr ""
-
-#: templates/installation.php:112 templates/installation.php:115
-msgid "Database password"
-msgstr ""
-
-#: templates/installation.php:120 templates/installation.php:122
-msgid "Database name"
-msgstr ""
-
-#: templates/installation.php:130 templates/installation.php:132
-msgid "Database tablespace"
-msgstr ""
-
-#: templates/installation.php:139 templates/installation.php:141
-msgid "Database host"
-msgstr ""
-
-#: templates/installation.php:150
-msgid ""
-"SQLite will be used as database. For larger installations we recommend to "
-"change this."
-msgstr ""
-
-#: templates/installation.php:152
-msgid "Finish setup"
-msgstr ""
-
-#: templates/installation.php:152
-msgid "Finishing …"
-msgstr ""
-
-#: templates/layout.base.php:35 templates/layout.guest.php:37
-#: templates/layout.user.php:43
-msgid ""
-"This application requires JavaScript for correct operation. Please enable JavaScript "
-"and reload the page."
-msgstr ""
-
-#: templates/layout.user.php:47
-#, php-format
-msgid "%s is available. Get more information on how to update."
-msgstr ""
-
-#: templates/layout.user.php:89 templates/singleuser.user.php:8
-msgid "Log out"
-msgstr ""
-
-#: templates/login.php:12
-msgid "Server side authentication failed!"
-msgstr ""
-
-#: templates/login.php:13
-msgid "Please contact your administrator."
-msgstr ""
-
-#: templates/login.php:43
-msgid "Forgot your password? Reset it!"
-msgstr ""
-
-#: templates/login.php:48
-msgid "remember"
-msgstr ""
-
-#: templates/login.php:53
-msgid "Log in"
-msgstr ""
-
-#: templates/login.php:59
-msgid "Alternative Logins"
-msgstr ""
-
-#: templates/mail.php:15
-#, php-format
-msgid ""
-"Hey there, just letting you know that %s shared %s "
-"with you.View it! "
-msgstr ""
-
-#: templates/singleuser.user.php:3
-msgid "This ownCloud instance is currently in single user mode."
-msgstr ""
-
-#: templates/singleuser.user.php:4
-msgid "This means only administrators can use the instance."
-msgstr ""
-
-#: templates/singleuser.user.php:5 templates/update.user.php:5
-msgid ""
-"Contact your system administrator if this message persists or appeared "
-"unexpectedly."
-msgstr ""
-
-#: templates/singleuser.user.php:7 templates/update.user.php:6
-msgid "Thank you for your patience."
-msgstr ""
-
-#: templates/untrustedDomain.php:5
-msgid "You are accessing the server from an untrusted domain."
-msgstr ""
-
-#: templates/untrustedDomain.php:8
-msgid ""
-"Please contact your administrator. If you are an administrator of this "
-"instance, configure the \"trusted_domain\" setting in config/config.php. An "
-"example configuration is provided in config/config.sample.php."
-msgstr ""
-
-#: templates/untrustedDomain.php:10
-msgid ""
-"Depending on your configuration, as an administrator you might also be able "
-"to use the button below to trust this domain."
-msgstr ""
-
-#: templates/untrustedDomain.php:14
-#, php-format
-msgid "Add \"%s\" as trusted domain"
-msgstr ""
-
-#: templates/update.admin.php:3
-#, php-format
-msgid "%s will be updated to version %s."
-msgstr ""
-
-#: templates/update.admin.php:7
-msgid "The following apps will be disabled:"
-msgstr ""
-
-#: templates/update.admin.php:17
-#, php-format
-msgid "The theme %s has been disabled."
-msgstr ""
-
-#: templates/update.admin.php:21
-msgid ""
-"Please make sure that the database, the config folder and the data folder "
-"have been backed up before proceeding."
-msgstr ""
-
-#: templates/update.admin.php:23
-msgid "Start update"
-msgstr ""
-
-#: templates/update.admin.php:25
-msgid ""
-"To avoid timeouts with larger installations, you can instead run the "
-"following command from your installation directory:"
-msgstr ""
-
-#: templates/update.user.php:3
-#, php-format
-msgid "This %s instance is currently being updated, which may take a while."
-msgstr ""
-
-#: templates/update.user.php:4
-#, php-format
-msgid "This page will refresh itself when the %s instance is available again."
-msgstr ""
diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot
deleted file mode 100644
index 50b95a7d07d..00000000000
--- a/l10n/templates/files.pot
+++ /dev/null
@@ -1,423 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: ajax/list.php:38
-msgid "Storage not available"
-msgstr ""
-
-#: ajax/list.php:45
-msgid "Storage invalid"
-msgstr ""
-
-#: ajax/list.php:52
-msgid "Unknown error"
-msgstr ""
-
-#: ajax/move.php:15
-#, php-format
-msgid "Could not move %s - File with this name already exists"
-msgstr ""
-
-#: ajax/move.php:26 ajax/move.php:34
-#, php-format
-msgid "Could not move %s"
-msgstr ""
-
-#: ajax/move.php:29
-msgid "Permission denied"
-msgstr ""
-
-#: ajax/newfile.php:59 js/files.js:103
-msgid "File name cannot be empty."
-msgstr ""
-
-#: ajax/newfile.php:64
-#, php-format
-msgid "\"%s\" is an invalid file name."
-msgstr ""
-
-#: ajax/newfile.php:70 ajax/newfolder.php:28 js/files.js:110
-msgid ""
-"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not "
-"allowed."
-msgstr ""
-
-#: ajax/newfile.php:77 ajax/newfolder.php:35 ajax/upload.php:161
-#: lib/app.php:87
-msgid "The target folder has been moved or deleted."
-msgstr ""
-
-#: ajax/newfile.php:89 ajax/newfolder.php:47 lib/app.php:96
-#, php-format
-msgid ""
-"The name %s is already used in the folder %s. Please choose a different name."
-msgstr ""
-
-#: ajax/newfile.php:99
-msgid "Not a valid source"
-msgstr ""
-
-#: ajax/newfile.php:104
-msgid ""
-"Server is not allowed to open URLs, please check the server configuration"
-msgstr ""
-
-#: ajax/newfile.php:131
-#, php-format
-msgid "The file exceeds your quota by %s"
-msgstr ""
-
-#: ajax/newfile.php:146
-#, php-format
-msgid "Error while downloading %s to %s"
-msgstr ""
-
-#: ajax/newfile.php:174
-msgid "Error when creating the file"
-msgstr ""
-
-#: ajax/newfolder.php:22
-msgid "Folder name cannot be empty."
-msgstr ""
-
-#: ajax/newfolder.php:66
-msgid "Error when creating the folder"
-msgstr ""
-
-#: ajax/upload.php:19 ajax/upload.php:59
-msgid "Unable to set upload directory."
-msgstr ""
-
-#: ajax/upload.php:35
-msgid "Invalid Token"
-msgstr ""
-
-#: ajax/upload.php:79
-msgid "No file was uploaded. Unknown error"
-msgstr ""
-
-#: ajax/upload.php:86
-msgid "There is no error, the file uploaded with success"
-msgstr ""
-
-#: ajax/upload.php:87
-msgid ""
-"The uploaded file exceeds the upload_max_filesize directive in php.ini: "
-msgstr ""
-
-#: ajax/upload.php:89
-msgid ""
-"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
-"the HTML form"
-msgstr ""
-
-#: ajax/upload.php:90
-msgid "The uploaded file was only partially uploaded"
-msgstr ""
-
-#: ajax/upload.php:91
-msgid "No file was uploaded"
-msgstr ""
-
-#: ajax/upload.php:92
-msgid "Missing a temporary folder"
-msgstr ""
-
-#: ajax/upload.php:93
-msgid "Failed to write to disk"
-msgstr ""
-
-#: ajax/upload.php:113
-msgid "Not enough storage available"
-msgstr ""
-
-#: ajax/upload.php:175
-msgid "Upload failed. Could not find uploaded file"
-msgstr ""
-
-#: ajax/upload.php:185
-msgid "Upload failed. Could not get file info."
-msgstr ""
-
-#: ajax/upload.php:200
-msgid "Invalid directory."
-msgstr ""
-
-#: appinfo/app.php:11 js/filelist.js:25
-msgid "Files"
-msgstr ""
-
-#: appinfo/app.php:27
-msgid "All files"
-msgstr ""
-
-#: js/file-upload.js:269
-msgid "Unable to upload {filename} as it is a directory or has 0 bytes"
-msgstr ""
-
-#: js/file-upload.js:284
-msgid "Total file size {size1} exceeds upload limit {size2}"
-msgstr ""
-
-#: js/file-upload.js:295
-msgid ""
-"Not enough free space, you are uploading {size1} but only {size2} is left"
-msgstr ""
-
-#: js/file-upload.js:372
-msgid "Upload cancelled."
-msgstr ""
-
-#: js/file-upload.js:418
-msgid "Could not get result from server."
-msgstr ""
-
-#: js/file-upload.js:510
-msgid ""
-"File upload is in progress. Leaving the page now will cancel the upload."
-msgstr ""
-
-#: js/file-upload.js:575
-msgid "URL cannot be empty"
-msgstr ""
-
-#: js/file-upload.js:579 js/filelist.js:1308
-msgid "{new_name} already exists"
-msgstr ""
-
-#: js/file-upload.js:634
-msgid "Could not create file"
-msgstr ""
-
-#: js/file-upload.js:650
-msgid "Could not create folder"
-msgstr ""
-
-#: js/file-upload.js:697
-msgid "Error fetching URL"
-msgstr ""
-
-#: js/fileactions.js:285
-msgid "Share"
-msgstr ""
-
-#: js/fileactions.js:295 templates/list.php:77 templates/list.php:78
-msgid "Delete"
-msgstr ""
-
-#: js/fileactions.js:297
-msgid "Disconnect storage"
-msgstr ""
-
-#: js/fileactions.js:299
-msgid "Unshare"
-msgstr ""
-
-#: js/fileactions.js:301
-msgid "Delete permanently"
-msgstr ""
-
-#: js/fileactions.js:342
-msgid "Rename"
-msgstr ""
-
-#: js/filelist.js:698 js/filelist.js:1854
-msgid "Pending"
-msgstr ""
-
-#: js/filelist.js:1259
-msgid "Error moving file."
-msgstr ""
-
-#: js/filelist.js:1267
-msgid "Error moving file"
-msgstr ""
-
-#: js/filelist.js:1267
-msgid "Error"
-msgstr ""
-
-#: js/filelist.js:1356
-msgid "Could not rename file"
-msgstr ""
-
-#: js/filelist.js:1478
-msgid "Error deleting file."
-msgstr ""
-
-#: js/filelist.js:1580 templates/list.php:61
-msgid "Name"
-msgstr ""
-
-#: js/filelist.js:1581 templates/list.php:72
-msgid "Size"
-msgstr ""
-
-#: js/filelist.js:1582 templates/list.php:75
-msgid "Modified"
-msgstr ""
-
-#: js/filelist.js:1592 js/filesummary.js:141 js/filesummary.js:168
-msgid "%n folder"
-msgid_plural "%n folders"
-msgstr[0] ""
-msgstr[1] ""
-
-#: js/filelist.js:1598 js/filesummary.js:142 js/filesummary.js:169
-msgid "%n file"
-msgid_plural "%n files"
-msgstr[0] ""
-msgstr[1] ""
-
-#: js/filelist.js:1655 templates/list.php:47
-msgid "You don’t have permission to upload or create files here"
-msgstr ""
-
-#: js/filelist.js:1747 js/filelist.js:1786
-msgid "Uploading %n file"
-msgid_plural "Uploading %n files"
-msgstr[0] ""
-msgstr[1] ""
-
-#: js/files.js:101
-msgid "\"{name}\" is an invalid file name."
-msgstr ""
-
-#: js/files.js:122
-msgid "Your storage is full, files can not be updated or synced anymore!"
-msgstr ""
-
-#: js/files.js:126
-msgid "Your storage is almost full ({usedSpacePercent}%)"
-msgstr ""
-
-#: js/files.js:140
-msgid ""
-"Encryption App is enabled but your keys are not initialized, please log-out "
-"and log-in again"
-msgstr ""
-
-#: js/files.js:144
-msgid ""
-"Invalid private key for Encryption App. Please update your private key "
-"password in your personal settings to recover access to your encrypted files."
-msgstr ""
-
-#: js/files.js:148
-msgid ""
-"Encryption was disabled but your files are still encrypted. Please go to "
-"your personal settings to decrypt your files."
-msgstr ""
-
-#: js/filesummary.js:182
-msgid "{dirs} and {files}"
-msgstr ""
-
-#: lib/app.php:80
-#, php-format
-msgid "%s could not be renamed as it has been deleted"
-msgstr ""
-
-#: lib/app.php:113
-#, php-format
-msgid "%s could not be renamed"
-msgstr ""
-
-#: lib/helper.php:23 templates/list.php:25
-#, php-format
-msgid "Upload (max. %s)"
-msgstr ""
-
-#: templates/admin.php:6
-msgid "File handling"
-msgstr ""
-
-#: templates/admin.php:7
-msgid "Maximum upload size"
-msgstr ""
-
-#: templates/admin.php:10
-msgid "max. possible: "
-msgstr ""
-
-#: templates/admin.php:15
-msgid "Save"
-msgstr ""
-
-#: templates/appnavigation.php:12
-msgid "WebDAV"
-msgstr ""
-
-#: templates/appnavigation.php:14
-#, php-format
-msgid ""
-"Use this address to access your Files via "
-"WebDAV "
-msgstr ""
-
-#: templates/list.php:5
-msgid "New"
-msgstr ""
-
-#: templates/list.php:8
-msgid "New text file"
-msgstr ""
-
-#: templates/list.php:9
-msgid "Text file"
-msgstr ""
-
-#: templates/list.php:12
-msgid "New folder"
-msgstr ""
-
-#: templates/list.php:13
-msgid "Folder"
-msgstr ""
-
-#: templates/list.php:16
-msgid "From link"
-msgstr ""
-
-#: templates/list.php:52
-msgid "Nothing in here. Upload something!"
-msgstr ""
-
-#: templates/list.php:66
-msgid "Download"
-msgstr ""
-
-#: templates/list.php:91
-msgid "Upload too large"
-msgstr ""
-
-#: templates/list.php:93
-msgid ""
-"The files you are trying to upload exceed the maximum size for file uploads "
-"on this server."
-msgstr ""
-
-#: templates/list.php:98
-msgid "Files are being scanned, please wait."
-msgstr ""
-
-#: templates/list.php:101
-msgid "Currently scanning"
-msgstr ""
diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot
deleted file mode 100644
index 58586e91ea1..00000000000
--- a/l10n/templates/files_encryption.pot
+++ /dev/null
@@ -1,203 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ajax/adminrecovery.php:29
-msgid "Recovery key successfully enabled"
-msgstr ""
-
-#: ajax/adminrecovery.php:34
-msgid "Could not enable recovery key. Please check your recovery key password!"
-msgstr ""
-
-#: ajax/adminrecovery.php:48
-msgid "Recovery key successfully disabled"
-msgstr ""
-
-#: ajax/adminrecovery.php:53
-msgid ""
-"Could not disable recovery key. Please check your recovery key password!"
-msgstr ""
-
-#: ajax/changeRecoveryPassword.php:50
-msgid "Password successfully changed."
-msgstr ""
-
-#: ajax/changeRecoveryPassword.php:52
-msgid "Could not change the password. Maybe the old password was not correct."
-msgstr ""
-
-#: ajax/updatePrivateKeyPassword.php:52
-msgid "Private key password successfully updated."
-msgstr ""
-
-#: ajax/updatePrivateKeyPassword.php:54
-msgid ""
-"Could not update the private key password. Maybe the old password was not "
-"correct."
-msgstr ""
-
-#: files/error.php:16
-msgid ""
-"Encryption app not initialized! Maybe the encryption app was re-enabled "
-"during your session. Please try to log out and log back in to initialize the "
-"encryption app."
-msgstr ""
-
-#: files/error.php:20
-#, php-format
-msgid ""
-"Your private key is not valid! Likely your password was changed outside of "
-"%s (e.g. your corporate directory). You can update your private key password "
-"in your personal settings to recover access to your encrypted files."
-msgstr ""
-
-#: files/error.php:23
-msgid ""
-"Can not decrypt this file, probably this is a shared file. Please ask the "
-"file owner to reshare the file with you."
-msgstr ""
-
-#: files/error.php:26 files/error.php:31
-msgid ""
-"Unknown error. Please check your system settings or contact your "
-"administrator"
-msgstr ""
-
-#: hooks/hooks.php:66
-msgid "Missing requirements."
-msgstr ""
-
-#: hooks/hooks.php:67
-msgid ""
-"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL "
-"together with the PHP extension is enabled and configured properly. For now, "
-"the encryption app has been disabled."
-msgstr ""
-
-#: hooks/hooks.php:300
-msgid "Following users are not set up for encryption:"
-msgstr ""
-
-#: js/detect-migration.js:21
-msgid "Initial encryption started... This can take some time. Please wait."
-msgstr ""
-
-#: js/detect-migration.js:25
-msgid "Initial encryption running... Please try again later."
-msgstr ""
-
-#: templates/invalid_private_key.php:8
-#, php-format
-msgid "Go directly to your %spersonal settings%s."
-msgstr ""
-
-#: templates/settings-admin.php:2 templates/settings-personal.php:2
-msgid "Encryption"
-msgstr ""
-
-#: templates/settings-admin.php:5 templates/settings-personal.php:6
-msgid ""
-"Encryption App is enabled but your keys are not initialized, please log-out "
-"and log-in again"
-msgstr ""
-
-#: templates/settings-admin.php:8
-msgid ""
-"Enable recovery key (allow to recover users files in case of password loss):"
-msgstr ""
-
-#: templates/settings-admin.php:12
-msgid "Recovery key password"
-msgstr ""
-
-#: templates/settings-admin.php:15
-msgid "Repeat Recovery key password"
-msgstr ""
-
-#: templates/settings-admin.php:23 templates/settings-personal.php:53
-msgid "Enabled"
-msgstr ""
-
-#: templates/settings-admin.php:32 templates/settings-personal.php:62
-msgid "Disabled"
-msgstr ""
-
-#: templates/settings-admin.php:37
-msgid "Change recovery key password:"
-msgstr ""
-
-#: templates/settings-admin.php:43
-msgid "Old Recovery key password"
-msgstr ""
-
-#: templates/settings-admin.php:50
-msgid "New Recovery key password"
-msgstr ""
-
-#: templates/settings-admin.php:56
-msgid "Repeat New Recovery key password"
-msgstr ""
-
-#: templates/settings-admin.php:61
-msgid "Change Password"
-msgstr ""
-
-#: templates/settings-personal.php:12
-msgid "Your private key password no longer matches your log-in password."
-msgstr ""
-
-#: templates/settings-personal.php:15
-msgid "Set your old private key password to your current log-in password:"
-msgstr ""
-
-#: templates/settings-personal.php:17
-msgid ""
-" If you don't remember your old password you can ask your administrator to "
-"recover your files."
-msgstr ""
-
-#: templates/settings-personal.php:24
-msgid "Old log-in password"
-msgstr ""
-
-#: templates/settings-personal.php:30
-msgid "Current log-in password"
-msgstr ""
-
-#: templates/settings-personal.php:35
-msgid "Update Private Key Password"
-msgstr ""
-
-#: templates/settings-personal.php:43
-msgid "Enable password recovery:"
-msgstr ""
-
-#: templates/settings-personal.php:45
-msgid ""
-"Enabling this option will allow you to reobtain access to your encrypted "
-"files in case of password loss"
-msgstr ""
-
-#: templates/settings-personal.php:63
-msgid "File recovery settings updated"
-msgstr ""
-
-#: templates/settings-personal.php:64
-msgid "Could not update file recovery"
-msgstr ""
diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot
deleted file mode 100644
index 0b2da126aa5..00000000000
--- a/l10n/templates/files_external.pot
+++ /dev/null
@@ -1,313 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ajax/dropbox.php:27
-msgid ""
-"Fetching request tokens failed. Verify that your Dropbox app key and secret "
-"are correct."
-msgstr ""
-
-#: ajax/dropbox.php:40
-msgid ""
-"Fetching access tokens failed. Verify that your Dropbox app key and secret "
-"are correct."
-msgstr ""
-
-#: ajax/dropbox.php:48 js/dropbox.js:102
-msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
-
-#: ajax/google.php:27
-#, php-format
-msgid "Step 1 failed. Exception: %s"
-msgstr ""
-
-#: ajax/google.php:38
-#, php-format
-msgid "Step 2 failed. Exception: %s"
-msgstr ""
-
-#: appinfo/app.php:35 js/app.js:32 templates/settings.php:9
-msgid "External storage"
-msgstr ""
-
-#: appinfo/app.php:44
-msgid "Local"
-msgstr ""
-
-#: appinfo/app.php:47
-msgid "Location"
-msgstr ""
-
-#: appinfo/app.php:50
-msgid "Amazon S3"
-msgstr ""
-
-#: appinfo/app.php:53
-msgid "Key"
-msgstr ""
-
-#: appinfo/app.php:54
-msgid "Secret"
-msgstr ""
-
-#: appinfo/app.php:55 appinfo/app.php:64 appinfo/app.php:112
-msgid "Bucket"
-msgstr ""
-
-#: appinfo/app.php:59
-msgid "Amazon S3 and compliant"
-msgstr ""
-
-#: appinfo/app.php:62
-msgid "Access Key"
-msgstr ""
-
-#: appinfo/app.php:63
-msgid "Secret Key"
-msgstr ""
-
-#: appinfo/app.php:65
-msgid "Hostname"
-msgstr ""
-
-#: appinfo/app.php:66
-msgid "Port"
-msgstr ""
-
-#: appinfo/app.php:67
-msgid "Region"
-msgstr ""
-
-#: appinfo/app.php:68
-msgid "Enable SSL"
-msgstr ""
-
-#: appinfo/app.php:69
-msgid "Enable Path Style"
-msgstr ""
-
-#: appinfo/app.php:77
-msgid "App key"
-msgstr ""
-
-#: appinfo/app.php:78
-msgid "App secret"
-msgstr ""
-
-#: appinfo/app.php:88 appinfo/app.php:129 appinfo/app.php:140
-#: appinfo/app.php:173
-msgid "Host"
-msgstr ""
-
-#: appinfo/app.php:89 appinfo/app.php:111 appinfo/app.php:130
-#: appinfo/app.php:152 appinfo/app.php:163 appinfo/app.php:174
-msgid "Username"
-msgstr ""
-
-#: appinfo/app.php:90 appinfo/app.php:131 appinfo/app.php:153
-#: appinfo/app.php:164 appinfo/app.php:175
-msgid "Password"
-msgstr ""
-
-#: appinfo/app.php:91 appinfo/app.php:133 appinfo/app.php:143
-#: appinfo/app.php:154 appinfo/app.php:176
-msgid "Root"
-msgstr ""
-
-#: appinfo/app.php:92
-msgid "Secure ftps://"
-msgstr ""
-
-#: appinfo/app.php:100
-msgid "Client ID"
-msgstr ""
-
-#: appinfo/app.php:101
-msgid "Client secret"
-msgstr ""
-
-#: appinfo/app.php:108
-msgid "OpenStack Object Storage"
-msgstr ""
-
-#: appinfo/app.php:113
-msgid "Region (optional for OpenStack Object Storage)"
-msgstr ""
-
-#: appinfo/app.php:114
-msgid "API Key (required for Rackspace Cloud Files)"
-msgstr ""
-
-#: appinfo/app.php:115
-msgid "Tenantname (required for OpenStack Object Storage)"
-msgstr ""
-
-#: appinfo/app.php:116
-msgid "Password (required for OpenStack Object Storage)"
-msgstr ""
-
-#: appinfo/app.php:117
-msgid "Service Name (required for OpenStack Object Storage)"
-msgstr ""
-
-#: appinfo/app.php:118
-msgid "URL of identity endpoint (required for OpenStack Object Storage)"
-msgstr ""
-
-#: appinfo/app.php:119
-msgid "Timeout of HTTP requests in seconds"
-msgstr ""
-
-#: appinfo/app.php:132 appinfo/app.php:142
-msgid "Share"
-msgstr ""
-
-#: appinfo/app.php:137
-msgid "SMB / CIFS using OC login"
-msgstr ""
-
-#: appinfo/app.php:141
-msgid "Username as share"
-msgstr ""
-
-#: appinfo/app.php:151 appinfo/app.php:162
-msgid "URL"
-msgstr ""
-
-#: appinfo/app.php:155 appinfo/app.php:166
-msgid "Secure https://"
-msgstr ""
-
-#: appinfo/app.php:165
-msgid "Remote subfolder"
-msgstr ""
-
-#: js/dropbox.js:7 js/dropbox.js:29 js/google.js:8 js/google.js:40
-msgid "Access granted"
-msgstr ""
-
-#: js/dropbox.js:33 js/dropbox.js:97 js/dropbox.js:103
-msgid "Error configuring Dropbox storage"
-msgstr ""
-
-#: js/dropbox.js:68 js/google.js:89
-msgid "Grant access"
-msgstr ""
-
-#: js/google.js:45 js/google.js:122
-msgid "Error configuring Google Drive storage"
-msgstr ""
-
-#: js/mountsfilelist.js:34
-msgid "Personal"
-msgstr ""
-
-#: js/mountsfilelist.js:36
-msgid "System"
-msgstr ""
-
-#: js/settings.js:208
-msgid "All users. Type to select user or group."
-msgstr ""
-
-#: js/settings.js:291
-msgid "(group)"
-msgstr ""
-
-#: js/settings.js:467 js/settings.js:474
-msgid "Saved"
-msgstr ""
-
-#: lib/config.php:670
-msgid "Note: "
-msgstr ""
-
-#: lib/config.php:680
-msgid " and "
-msgstr ""
-
-#: lib/config.php:702
-#, php-format
-msgid ""
-"Note: The cURL support in PHP is not enabled or installed. Mounting "
-"of %s is not possible. Please ask your system administrator to install it."
-msgstr ""
-
-#: lib/config.php:704
-#, php-format
-msgid ""
-"Note: The FTP support in PHP is not enabled or installed. Mounting of "
-"%s is not possible. Please ask your system administrator to install it."
-msgstr ""
-
-#: lib/config.php:706
-#, php-format
-msgid ""
-"Note: \"%s\" is not installed. Mounting of %s is not possible. Please "
-"ask your system administrator to install it."
-msgstr ""
-
-#: templates/list.php:7
-msgid "You don't have any external storages"
-msgstr ""
-
-#: templates/list.php:16
-msgid "Name"
-msgstr ""
-
-#: templates/list.php:20
-msgid "Storage type"
-msgstr ""
-
-#: templates/list.php:23
-msgid "Scope"
-msgstr ""
-
-#: templates/settings.php:2
-msgid "External Storage"
-msgstr ""
-
-#: templates/settings.php:8 templates/settings.php:27
-msgid "Folder name"
-msgstr ""
-
-#: templates/settings.php:10
-msgid "Configuration"
-msgstr ""
-
-#: templates/settings.php:11
-msgid "Available for"
-msgstr ""
-
-#: templates/settings.php:33
-msgid "Add storage"
-msgstr ""
-
-#: templates/settings.php:96 templates/settings.php:97
-msgid "Delete"
-msgstr ""
-
-#: templates/settings.php:110
-msgid "Enable User External Storage"
-msgstr ""
-
-#: templates/settings.php:113
-msgid "Allow users to mount the following external storage"
-msgstr ""
diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot
deleted file mode 100644
index c7b98245c16..00000000000
--- a/l10n/templates/files_sharing.pot
+++ /dev/null
@@ -1,163 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ajax/external.php:17
-msgid "Server to server sharing is not enabled on this server"
-msgstr ""
-
-#: ajax/external.php:29
-msgid "The mountpoint name contains invalid characters."
-msgstr ""
-
-#: ajax/external.php:44
-msgid "Invalid or untrusted SSL certificate"
-msgstr ""
-
-#: ajax/external.php:58
-msgid "Couldn't add remote share"
-msgstr ""
-
-#: appinfo/app.php:39 js/app.js:34
-msgid "Shared with you"
-msgstr ""
-
-#: appinfo/app.php:51 js/app.js:53
-msgid "Shared with others"
-msgstr ""
-
-#: appinfo/app.php:60 js/app.js:72
-msgid "Shared by link"
-msgstr ""
-
-#: js/app.js:35
-msgid "No files have been shared with you yet."
-msgstr ""
-
-#: js/app.js:54
-msgid "You haven't shared any files yet."
-msgstr ""
-
-#: js/app.js:73
-msgid "You haven't shared any files by link yet."
-msgstr ""
-
-#: js/external.js:48 js/external.js:59
-msgid "Do you want to add the remote share {name} from {owner}@{remote}?"
-msgstr ""
-
-#: js/external.js:51 js/external.js:62
-msgid "Remote share"
-msgstr ""
-
-#: js/external.js:65
-msgid "Remote share password"
-msgstr ""
-
-#: js/external.js:76
-msgid "Cancel"
-msgstr ""
-
-#: js/external.js:77
-msgid "Add remote share"
-msgstr ""
-
-#: js/public.js:213
-msgid "No ownCloud installation found at {remote}"
-msgstr ""
-
-#: js/public.js:214
-msgid "Invalid ownCloud url"
-msgstr ""
-
-#: js/sharedfilelist.js:128
-msgid "Shared by"
-msgstr ""
-
-#: templates/authenticate.php:4
-msgid "This share is password-protected"
-msgstr ""
-
-#: templates/authenticate.php:7
-msgid "The password is wrong. Try again."
-msgstr ""
-
-#: templates/authenticate.php:10 templates/authenticate.php:12
-msgid "Password"
-msgstr ""
-
-#: templates/list.php:16
-msgid "Name"
-msgstr ""
-
-#: templates/list.php:20
-msgid "Share time"
-msgstr ""
-
-#: templates/part.404.php:3
-msgid "Sorry, this link doesn’t seem to work anymore."
-msgstr ""
-
-#: templates/part.404.php:4
-msgid "Reasons might be:"
-msgstr ""
-
-#: templates/part.404.php:6
-msgid "the item was removed"
-msgstr ""
-
-#: templates/part.404.php:7
-msgid "the link expired"
-msgstr ""
-
-#: templates/part.404.php:8
-msgid "sharing is disabled"
-msgstr ""
-
-#: templates/part.404.php:10
-msgid "For more info, please ask the person who sent this link."
-msgstr ""
-
-#: templates/public.php:38
-msgid "Add to your ownCloud"
-msgstr ""
-
-#: templates/public.php:47
-msgid "Download"
-msgstr ""
-
-#: templates/public.php:70
-#, php-format
-msgid "Download %s"
-msgstr ""
-
-#: templates/public.php:74
-msgid "Direct link"
-msgstr ""
-
-#: templates/settings-admin.php:3
-msgid "Remote Shares"
-msgstr ""
-
-#: templates/settings-admin.php:7
-msgid "Allow other instances to mount public links shared from this server"
-msgstr ""
-
-#: templates/settings-admin.php:11
-msgid "Allow users to mount public link shares"
-msgstr ""
diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot
deleted file mode 100644
index 75f38a4de4d..00000000000
--- a/l10n/templates/files_trashbin.pot
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ajax/delete.php:59
-#, php-format
-msgid "Couldn't delete %s permanently"
-msgstr ""
-
-#: ajax/undelete.php:64
-#, php-format
-msgid "Couldn't restore %s"
-msgstr ""
-
-#: appinfo/app.php:15 js/filelist.js:34
-msgid "Deleted files"
-msgstr ""
-
-#: js/app.js:52 templates/index.php:21 templates/index.php:23
-msgid "Restore"
-msgstr ""
-
-#: js/filelist.js:119 js/filelist.js:164 js/filelist.js:214
-msgid "Error"
-msgstr ""
-
-#: lib/trashbin.php:962 lib/trashbin.php:964
-msgid "restored"
-msgstr ""
-
-#: templates/index.php:7
-msgid "Nothing in here. Your trash bin is empty!"
-msgstr ""
-
-#: templates/index.php:18
-msgid "Name"
-msgstr ""
-
-#: templates/index.php:29
-msgid "Deleted"
-msgstr ""
-
-#: templates/index.php:32 templates/index.php:33
-msgid "Delete"
-msgstr ""
diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot
deleted file mode 100644
index a69c67fae1d..00000000000
--- a/l10n/templates/files_versions.pot
+++ /dev/null
@@ -1,43 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ajax/rollbackVersion.php:13
-#, php-format
-msgid "Could not revert: %s"
-msgstr ""
-
-#: js/versions.js:48
-msgid "Versions"
-msgstr ""
-
-#: js/versions.js:70
-msgid "Failed to revert {file} to revision {timestamp}."
-msgstr ""
-
-#: js/versions.js:97
-msgid "More versions..."
-msgstr ""
-
-#: js/versions.js:135
-msgid "No other versions available"
-msgstr ""
-
-#: js/versions.js:165
-msgid "Restore"
-msgstr ""
diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot
deleted file mode 100644
index d8b515d8b9e..00000000000
--- a/l10n/templates/lib.pot
+++ /dev/null
@@ -1,617 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: base.php:201 base.php:208
-msgid "Cannot write into \"config\" directory!"
-msgstr ""
-
-#: base.php:202
-msgid ""
-"This can usually be fixed by giving the webserver write access to the config "
-"directory"
-msgstr ""
-
-#: base.php:204
-#, php-format
-msgid "See %s"
-msgstr ""
-
-#: base.php:209 private/util.php:453
-#, php-format
-msgid ""
-"This can usually be fixed by %sgiving the webserver write access to the "
-"config directory%s."
-msgstr ""
-
-#: base.php:587
-msgid "Sample configuration detected"
-msgstr ""
-
-#: base.php:588
-msgid ""
-"It has been detected that the sample configuration has been copied. This can "
-"break your installation and is unsupported. Please read the documentation "
-"before performing changes on config.php"
-msgstr ""
-
-#: private/app.php:391
-msgid "Help"
-msgstr ""
-
-#: private/app.php:404
-msgid "Personal"
-msgstr ""
-
-#: private/app.php:415
-msgid "Settings"
-msgstr ""
-
-#: private/app.php:427
-msgid "Users"
-msgstr ""
-
-#: private/app.php:440
-msgid "Admin"
-msgstr ""
-
-#: private/app.php:1135
-#, php-format
-msgid ""
-"App \\\"%s\\\" can't be installed because it is not compatible with this "
-"version of ownCloud."
-msgstr ""
-
-#: private/app.php:1147
-msgid "No app name specified"
-msgstr ""
-
-#: private/avatar.php:66
-msgid "Unknown filetype"
-msgstr ""
-
-#: private/avatar.php:71
-msgid "Invalid image"
-msgstr ""
-
-#: private/defaults.php:44
-msgid "web services under your control"
-msgstr ""
-
-#: private/installer.php:77
-msgid "App directory already exists"
-msgstr ""
-
-#: private/installer.php:90
-#, php-format
-msgid "Can't create app folder. Please fix permissions. %s"
-msgstr ""
-
-#: private/installer.php:235
-msgid "No source specified when installing app"
-msgstr ""
-
-#: private/installer.php:243
-msgid "No href specified when installing app from http"
-msgstr ""
-
-#: private/installer.php:248
-msgid "No path specified when installing app from local file"
-msgstr ""
-
-#: private/installer.php:256
-#, php-format
-msgid "Archives of type %s are not supported"
-msgstr ""
-
-#: private/installer.php:270
-msgid "Failed to open archive when installing app"
-msgstr ""
-
-#: private/installer.php:308
-msgid "App does not provide an info.xml file"
-msgstr ""
-
-#: private/installer.php:314
-msgid "App can't be installed because of not allowed code in the App"
-msgstr ""
-
-#: private/installer.php:320
-msgid ""
-"App can't be installed because it is not compatible with this version of "
-"ownCloud"
-msgstr ""
-
-#: private/installer.php:326
-msgid ""
-"App can't be installed because it contains the true tag "
-"which is not allowed for non shipped apps"
-msgstr ""
-
-#: private/installer.php:339
-msgid ""
-"App can't be installed because the version in info.xml/version is not the "
-"same as the version reported from the app store"
-msgstr ""
-
-#: private/json.php:29
-msgid "Application is not enabled"
-msgstr ""
-
-#: private/json.php:40 private/json.php:62 private/json.php:87
-msgid "Authentication error"
-msgstr ""
-
-#: private/json.php:51
-msgid "Token expired. Please reload page."
-msgstr ""
-
-#: private/json.php:74
-msgid "Unknown user"
-msgstr ""
-
-#: private/setup/abstractdatabase.php:26 private/setup/oci.php:26
-#, php-format
-msgid "%s enter the database username."
-msgstr ""
-
-#: private/setup/abstractdatabase.php:29 private/setup/oci.php:29
-#, php-format
-msgid "%s enter the database name."
-msgstr ""
-
-#: private/setup/abstractdatabase.php:32
-#, php-format
-msgid "%s you may not use dots in the database name"
-msgstr ""
-
-#: private/setup/mssql.php:20
-#, php-format
-msgid "MS SQL username and/or password not valid: %s"
-msgstr ""
-
-#: private/setup/mssql.php:21 private/setup/mysql.php:13
-#: private/setup/oci.php:128 private/setup/postgresql.php:31
-#: private/setup/postgresql.php:84
-msgid "You need to enter either an existing account or the administrator."
-msgstr ""
-
-#: private/setup/mysql.php:12
-msgid "MySQL/MariaDB username and/or password not valid"
-msgstr ""
-
-#: private/setup/mysql.php:81 private/setup/oci.php:68
-#: private/setup/oci.php:135 private/setup/oci.php:158
-#: private/setup/oci.php:165 private/setup/oci.php:176
-#: private/setup/oci.php:183 private/setup/oci.php:192
-#: private/setup/oci.php:200 private/setup/oci.php:209
-#: private/setup/oci.php:215 private/setup/postgresql.php:103
-#: private/setup/postgresql.php:112 private/setup/postgresql.php:129
-#: private/setup/postgresql.php:139 private/setup/postgresql.php:148
-#, php-format
-msgid "DB Error: \"%s\""
-msgstr ""
-
-#: private/setup/mysql.php:82 private/setup/oci.php:69
-#: private/setup/oci.php:136 private/setup/oci.php:159
-#: private/setup/oci.php:166 private/setup/oci.php:177
-#: private/setup/oci.php:193 private/setup/oci.php:201
-#: private/setup/oci.php:210 private/setup/postgresql.php:104
-#: private/setup/postgresql.php:113 private/setup/postgresql.php:130
-#: private/setup/postgresql.php:140 private/setup/postgresql.php:149
-#, php-format
-msgid "Offending command was: \"%s\""
-msgstr ""
-
-#: private/setup/mysql.php:99
-#, php-format
-msgid "MySQL/MariaDB user '%s'@'localhost' exists already."
-msgstr ""
-
-#: private/setup/mysql.php:100
-msgid "Drop this user from MySQL/MariaDB"
-msgstr ""
-
-#: private/setup/mysql.php:105
-#, php-format
-msgid "MySQL/MariaDB user '%s'@'%%' already exists"
-msgstr ""
-
-#: private/setup/mysql.php:106
-msgid "Drop this user from MySQL/MariaDB."
-msgstr ""
-
-#: private/setup/oci.php:48
-msgid "Oracle connection could not be established"
-msgstr ""
-
-#: private/setup/oci.php:55 private/setup/oci.php:127
-msgid "Oracle username and/or password not valid"
-msgstr ""
-
-#: private/setup/oci.php:184 private/setup/oci.php:216
-#, php-format
-msgid "Offending command was: \"%s\", name: %s, password: %s"
-msgstr ""
-
-#: private/setup/postgresql.php:30 private/setup/postgresql.php:83
-msgid "PostgreSQL username and/or password not valid"
-msgstr ""
-
-#: private/setup.php:27
-msgid "Set an admin username."
-msgstr ""
-
-#: private/setup.php:30
-msgid "Set an admin password."
-msgstr ""
-
-#: private/setup.php:54
-#, php-format
-msgid "Can't create or write into the data directory %s"
-msgstr ""
-
-#: private/share/mailnotifications.php:91
-#: private/share/mailnotifications.php:142
-#, php-format
-msgid "%s shared »%s« with you"
-msgstr ""
-
-#: private/share/share.php:505
-#, php-format
-msgid "Sharing %s failed, because the file does not exist"
-msgstr ""
-
-#: private/share/share.php:512
-#, php-format
-msgid "You are not allowed to share %s"
-msgstr ""
-
-#: private/share/share.php:542
-#, php-format
-msgid "Sharing %s failed, because the user %s is the item owner"
-msgstr ""
-
-#: private/share/share.php:548
-#, php-format
-msgid "Sharing %s failed, because the user %s does not exist"
-msgstr ""
-
-#: private/share/share.php:557
-#, php-format
-msgid ""
-"Sharing %s failed, because the user %s is not a member of any groups that %s "
-"is a member of"
-msgstr ""
-
-#: private/share/share.php:570 private/share/share.php:598
-#, php-format
-msgid "Sharing %s failed, because this item is already shared with %s"
-msgstr ""
-
-#: private/share/share.php:578
-#, php-format
-msgid "Sharing %s failed, because the group %s does not exist"
-msgstr ""
-
-#: private/share/share.php:585
-#, php-format
-msgid "Sharing %s failed, because %s is not a member of the group %s"
-msgstr ""
-
-#: private/share/share.php:639
-msgid ""
-"You need to provide a password to create a public link, only protected links "
-"are allowed"
-msgstr ""
-
-#: private/share/share.php:668
-#, php-format
-msgid "Sharing %s failed, because sharing with links is not allowed"
-msgstr ""
-
-#: private/share/share.php:675
-#, php-format
-msgid "Share type %s is not valid for %s"
-msgstr ""
-
-#: private/share/share.php:899
-#, php-format
-msgid ""
-"Setting permissions for %s failed, because the permissions exceed "
-"permissions granted to %s"
-msgstr ""
-
-#: private/share/share.php:960
-#, php-format
-msgid "Setting permissions for %s failed, because the item was not found"
-msgstr ""
-
-#: private/share/share.php:998
-#, php-format
-msgid ""
-"Cannot set expiration date. Shares cannot expire later than %s after they "
-"have been shared"
-msgstr ""
-
-#: private/share/share.php:1006
-msgid "Cannot set expiration date. Expiration date is in the past"
-msgstr ""
-
-#: private/share/share.php:1132
-#, php-format
-msgid "Sharing backend %s must implement the interface OCP\\Share_Backend"
-msgstr ""
-
-#: private/share/share.php:1139
-#, php-format
-msgid "Sharing backend %s not found"
-msgstr ""
-
-#: private/share/share.php:1145
-#, php-format
-msgid "Sharing backend for %s not found"
-msgstr ""
-
-#: private/share/share.php:1812
-#, php-format
-msgid "Sharing %s failed, because the user %s is the original sharer"
-msgstr ""
-
-#: private/share/share.php:1822
-#, php-format
-msgid ""
-"Sharing %s failed, because the permissions exceed permissions granted to %s"
-msgstr ""
-
-#: private/share/share.php:1838
-#, php-format
-msgid "Sharing %s failed, because resharing is not allowed"
-msgstr ""
-
-#: private/share/share.php:1852
-#, php-format
-msgid ""
-"Sharing %s failed, because the sharing backend for %s could not find its "
-"source"
-msgstr ""
-
-#: private/share/share.php:1866
-#, php-format
-msgid ""
-"Sharing %s failed, because the file could not be found in the file cache"
-msgstr ""
-
-#: private/tags.php:183
-#, php-format
-msgid "Could not find category \"%s\""
-msgstr ""
-
-#: private/template/functions.php:184
-msgid "seconds ago"
-msgstr ""
-
-#: private/template/functions.php:185
-msgid "%n minute ago"
-msgid_plural "%n minutes ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: private/template/functions.php:186
-msgid "%n hour ago"
-msgid_plural "%n hours ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: private/template/functions.php:187
-msgid "today"
-msgstr ""
-
-#: private/template/functions.php:188
-msgid "yesterday"
-msgstr ""
-
-#: private/template/functions.php:190
-msgid "%n day go"
-msgid_plural "%n days ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: private/template/functions.php:192
-msgid "last month"
-msgstr ""
-
-#: private/template/functions.php:193
-msgid "%n month ago"
-msgid_plural "%n months ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: private/template/functions.php:195
-msgid "last year"
-msgstr ""
-
-#: private/template/functions.php:196
-msgid "years ago"
-msgstr ""
-
-#: private/user/manager.php:244
-msgid ""
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", "
-"\"0-9\", and \"_.@-\""
-msgstr ""
-
-#: private/user/manager.php:249
-msgid "A valid username must be provided"
-msgstr ""
-
-#: private/user/manager.php:253
-msgid "A valid password must be provided"
-msgstr ""
-
-#: private/user/manager.php:258
-msgid "The username is already being used"
-msgstr ""
-
-#: private/util.php:438
-msgid "No database drivers (sqlite, mysql, or postgresql) installed."
-msgstr ""
-
-#: private/util.php:445
-#, php-format
-msgid ""
-"Permissions can usually be fixed by %sgiving the webserver write access to "
-"the root directory%s."
-msgstr ""
-
-#: private/util.php:452
-msgid "Cannot write into \"config\" directory"
-msgstr ""
-
-#: private/util.php:466
-msgid "Cannot write into \"apps\" directory"
-msgstr ""
-
-#: private/util.php:467
-#, php-format
-msgid ""
-"This can usually be fixed by %sgiving the webserver write access to the apps "
-"directory%s or disabling the appstore in the config file."
-msgstr ""
-
-#: private/util.php:482
-#, php-format
-msgid "Cannot create \"data\" directory (%s)"
-msgstr ""
-
-#: private/util.php:483
-#, php-format
-msgid ""
-"This can usually be fixed by giving the "
-"webserver write access to the root directory ."
-msgstr ""
-
-#: private/util.php:500
-#, php-format
-msgid "Setting locale to %s failed"
-msgstr ""
-
-#: private/util.php:503
-msgid ""
-"Please install one of these locales on your system and restart your "
-"webserver."
-msgstr ""
-
-#: private/util.php:532
-msgid "Please ask your server administrator to install the module."
-msgstr ""
-
-#: private/util.php:552
-#, php-format
-msgid "PHP module %s not installed."
-msgstr ""
-
-#: private/util.php:560
-#, php-format
-msgid "PHP %s or higher is required."
-msgstr ""
-
-#: private/util.php:561
-msgid ""
-"Please ask your server administrator to update PHP to the latest version. "
-"Your PHP version is no longer supported by ownCloud and the PHP community."
-msgstr ""
-
-#: private/util.php:572
-msgid ""
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work "
-"properly."
-msgstr ""
-
-#: private/util.php:573
-msgid ""
-"PHP Safe Mode is a deprecated and mostly useless setting that should be "
-"disabled. Please ask your server administrator to disable it in php.ini or "
-"in your webserver config."
-msgstr ""
-
-#: private/util.php:580
-msgid ""
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work "
-"properly."
-msgstr ""
-
-#: private/util.php:581
-msgid ""
-"Magic Quotes is a deprecated and mostly useless setting that should be "
-"disabled. Please ask your server administrator to disable it in php.ini or "
-"in your webserver config."
-msgstr ""
-
-#: private/util.php:595
-msgid "PHP modules have been installed, but they are still listed as missing?"
-msgstr ""
-
-#: private/util.php:596
-msgid "Please ask your server administrator to restart the web server."
-msgstr ""
-
-#: private/util.php:626
-msgid "PostgreSQL >= 9 required"
-msgstr ""
-
-#: private/util.php:627
-msgid "Please upgrade your database version"
-msgstr ""
-
-#: private/util.php:634
-msgid "Error occurred while checking PostgreSQL version"
-msgstr ""
-
-#: private/util.php:635
-msgid ""
-"Please make sure you have PostgreSQL >= 9 or check the logs for more "
-"information about the error"
-msgstr ""
-
-#: private/util.php:700
-msgid ""
-"Please change the permissions to 0770 so that the directory cannot be listed "
-"by other users."
-msgstr ""
-
-#: private/util.php:709
-#, php-format
-msgid "Data directory (%s) is readable by other users"
-msgstr ""
-
-#: private/util.php:730
-#, php-format
-msgid "Data directory (%s) is invalid"
-msgstr ""
-
-#: private/util.php:731
-msgid ""
-"Please check that the data directory contains a file \".ocdata\" in its root."
-msgstr ""
-
-#: public/files/locknotacquiredexception.php:39
-#, php-format
-msgid "Could not obtain lock type %d on \"%s\"."
-msgstr ""
diff --git a/l10n/templates/private.pot b/l10n/templates/private.pot
deleted file mode 100644
index e03ca3d48c9..00000000000
--- a/l10n/templates/private.pot
+++ /dev/null
@@ -1,578 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: app.php:391
-msgid "Help"
-msgstr ""
-
-#: app.php:404
-msgid "Personal"
-msgstr ""
-
-#: app.php:415
-msgid "Settings"
-msgstr ""
-
-#: app.php:427
-msgid "Users"
-msgstr ""
-
-#: app.php:440
-msgid "Admin"
-msgstr ""
-
-#: app.php:1135
-#, php-format
-msgid ""
-"App \\\"%s\\\" can't be installed because it is not compatible with this "
-"version of ownCloud."
-msgstr ""
-
-#: app.php:1147
-msgid "No app name specified"
-msgstr ""
-
-#: avatar.php:66
-msgid "Unknown filetype"
-msgstr ""
-
-#: avatar.php:71
-msgid "Invalid image"
-msgstr ""
-
-#: defaults.php:44
-msgid "web services under your control"
-msgstr ""
-
-#: installer.php:77
-msgid "App directory already exists"
-msgstr ""
-
-#: installer.php:90
-#, php-format
-msgid "Can't create app folder. Please fix permissions. %s"
-msgstr ""
-
-#: installer.php:235
-msgid "No source specified when installing app"
-msgstr ""
-
-#: installer.php:243
-msgid "No href specified when installing app from http"
-msgstr ""
-
-#: installer.php:248
-msgid "No path specified when installing app from local file"
-msgstr ""
-
-#: installer.php:256
-#, php-format
-msgid "Archives of type %s are not supported"
-msgstr ""
-
-#: installer.php:270
-msgid "Failed to open archive when installing app"
-msgstr ""
-
-#: installer.php:308
-msgid "App does not provide an info.xml file"
-msgstr ""
-
-#: installer.php:314
-msgid "App can't be installed because of not allowed code in the App"
-msgstr ""
-
-#: installer.php:320
-msgid ""
-"App can't be installed because it is not compatible with this version of "
-"ownCloud"
-msgstr ""
-
-#: installer.php:326
-msgid ""
-"App can't be installed because it contains the true tag "
-"which is not allowed for non shipped apps"
-msgstr ""
-
-#: installer.php:339
-msgid ""
-"App can't be installed because the version in info.xml/version is not the "
-"same as the version reported from the app store"
-msgstr ""
-
-#: json.php:29
-msgid "Application is not enabled"
-msgstr ""
-
-#: json.php:40 json.php:62 json.php:87
-msgid "Authentication error"
-msgstr ""
-
-#: json.php:51
-msgid "Token expired. Please reload page."
-msgstr ""
-
-#: json.php:74
-msgid "Unknown user"
-msgstr ""
-
-#: setup/abstractdatabase.php:26 setup/oci.php:26
-#, php-format
-msgid "%s enter the database username."
-msgstr ""
-
-#: setup/abstractdatabase.php:29 setup/oci.php:29
-#, php-format
-msgid "%s enter the database name."
-msgstr ""
-
-#: setup/abstractdatabase.php:32
-#, php-format
-msgid "%s you may not use dots in the database name"
-msgstr ""
-
-#: setup/mssql.php:20
-#, php-format
-msgid "MS SQL username and/or password not valid: %s"
-msgstr ""
-
-#: setup/mssql.php:21 setup/mysql.php:13 setup/oci.php:128
-#: setup/postgresql.php:31 setup/postgresql.php:84
-msgid "You need to enter either an existing account or the administrator."
-msgstr ""
-
-#: setup/mysql.php:12
-msgid "MySQL/MariaDB username and/or password not valid"
-msgstr ""
-
-#: setup/mysql.php:81 setup/oci.php:68 setup/oci.php:135 setup/oci.php:158
-#: setup/oci.php:165 setup/oci.php:176 setup/oci.php:183 setup/oci.php:192
-#: setup/oci.php:200 setup/oci.php:209 setup/oci.php:215
-#: setup/postgresql.php:103 setup/postgresql.php:112 setup/postgresql.php:129
-#: setup/postgresql.php:139 setup/postgresql.php:148
-#, php-format
-msgid "DB Error: \"%s\""
-msgstr ""
-
-#: setup/mysql.php:82 setup/oci.php:69 setup/oci.php:136 setup/oci.php:159
-#: setup/oci.php:166 setup/oci.php:177 setup/oci.php:193 setup/oci.php:201
-#: setup/oci.php:210 setup/postgresql.php:104 setup/postgresql.php:113
-#: setup/postgresql.php:130 setup/postgresql.php:140 setup/postgresql.php:149
-#, php-format
-msgid "Offending command was: \"%s\""
-msgstr ""
-
-#: setup/mysql.php:99
-#, php-format
-msgid "MySQL/MariaDB user '%s'@'localhost' exists already."
-msgstr ""
-
-#: setup/mysql.php:100
-msgid "Drop this user from MySQL/MariaDB"
-msgstr ""
-
-#: setup/mysql.php:105
-#, php-format
-msgid "MySQL/MariaDB user '%s'@'%%' already exists"
-msgstr ""
-
-#: setup/mysql.php:106
-msgid "Drop this user from MySQL/MariaDB."
-msgstr ""
-
-#: setup/oci.php:48
-msgid "Oracle connection could not be established"
-msgstr ""
-
-#: setup/oci.php:55 setup/oci.php:127
-msgid "Oracle username and/or password not valid"
-msgstr ""
-
-#: setup/oci.php:184 setup/oci.php:216
-#, php-format
-msgid "Offending command was: \"%s\", name: %s, password: %s"
-msgstr ""
-
-#: setup/postgresql.php:30 setup/postgresql.php:83
-msgid "PostgreSQL username and/or password not valid"
-msgstr ""
-
-#: setup.php:27
-msgid "Set an admin username."
-msgstr ""
-
-#: setup.php:30
-msgid "Set an admin password."
-msgstr ""
-
-#: setup.php:54
-#, php-format
-msgid "Can't create or write into the data directory %s"
-msgstr ""
-
-#: share/mailnotifications.php:91 share/mailnotifications.php:142
-#, php-format
-msgid "%s shared »%s« with you"
-msgstr ""
-
-#: share/share.php:505
-#, php-format
-msgid "Sharing %s failed, because the file does not exist"
-msgstr ""
-
-#: share/share.php:512
-#, php-format
-msgid "You are not allowed to share %s"
-msgstr ""
-
-#: share/share.php:542
-#, php-format
-msgid "Sharing %s failed, because the user %s is the item owner"
-msgstr ""
-
-#: share/share.php:548
-#, php-format
-msgid "Sharing %s failed, because the user %s does not exist"
-msgstr ""
-
-#: share/share.php:557
-#, php-format
-msgid ""
-"Sharing %s failed, because the user %s is not a member of any groups that %s "
-"is a member of"
-msgstr ""
-
-#: share/share.php:570 share/share.php:598
-#, php-format
-msgid "Sharing %s failed, because this item is already shared with %s"
-msgstr ""
-
-#: share/share.php:578
-#, php-format
-msgid "Sharing %s failed, because the group %s does not exist"
-msgstr ""
-
-#: share/share.php:585
-#, php-format
-msgid "Sharing %s failed, because %s is not a member of the group %s"
-msgstr ""
-
-#: share/share.php:639
-msgid ""
-"You need to provide a password to create a public link, only protected links "
-"are allowed"
-msgstr ""
-
-#: share/share.php:668
-#, php-format
-msgid "Sharing %s failed, because sharing with links is not allowed"
-msgstr ""
-
-#: share/share.php:675
-#, php-format
-msgid "Share type %s is not valid for %s"
-msgstr ""
-
-#: share/share.php:899
-#, php-format
-msgid ""
-"Setting permissions for %s failed, because the permissions exceed "
-"permissions granted to %s"
-msgstr ""
-
-#: share/share.php:960
-#, php-format
-msgid "Setting permissions for %s failed, because the item was not found"
-msgstr ""
-
-#: share/share.php:998
-#, php-format
-msgid ""
-"Cannot set expiration date. Shares cannot expire later than %s after they "
-"have been shared"
-msgstr ""
-
-#: share/share.php:1006
-msgid "Cannot set expiration date. Expiration date is in the past"
-msgstr ""
-
-#: share/share.php:1132
-#, php-format
-msgid "Sharing backend %s must implement the interface OCP\\Share_Backend"
-msgstr ""
-
-#: share/share.php:1139
-#, php-format
-msgid "Sharing backend %s not found"
-msgstr ""
-
-#: share/share.php:1145
-#, php-format
-msgid "Sharing backend for %s not found"
-msgstr ""
-
-#: share/share.php:1812
-#, php-format
-msgid "Sharing %s failed, because the user %s is the original sharer"
-msgstr ""
-
-#: share/share.php:1822
-#, php-format
-msgid ""
-"Sharing %s failed, because the permissions exceed permissions granted to %s"
-msgstr ""
-
-#: share/share.php:1838
-#, php-format
-msgid "Sharing %s failed, because resharing is not allowed"
-msgstr ""
-
-#: share/share.php:1852
-#, php-format
-msgid ""
-"Sharing %s failed, because the sharing backend for %s could not find its "
-"source"
-msgstr ""
-
-#: share/share.php:1866
-#, php-format
-msgid ""
-"Sharing %s failed, because the file could not be found in the file cache"
-msgstr ""
-
-#: tags.php:183
-#, php-format
-msgid "Could not find category \"%s\""
-msgstr ""
-
-#: template/functions.php:184
-msgid "seconds ago"
-msgstr ""
-
-#: template/functions.php:185
-msgid "%n minute ago"
-msgid_plural "%n minutes ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: template/functions.php:186
-msgid "%n hour ago"
-msgid_plural "%n hours ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: template/functions.php:187
-msgid "today"
-msgstr ""
-
-#: template/functions.php:188
-msgid "yesterday"
-msgstr ""
-
-#: template/functions.php:190
-msgid "%n day go"
-msgid_plural "%n days ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: template/functions.php:192
-msgid "last month"
-msgstr ""
-
-#: template/functions.php:193
-msgid "%n month ago"
-msgid_plural "%n months ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: template/functions.php:195
-msgid "last year"
-msgstr ""
-
-#: template/functions.php:196
-msgid "years ago"
-msgstr ""
-
-#: user/manager.php:244
-msgid ""
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", "
-"\"0-9\", and \"_.@-\""
-msgstr ""
-
-#: user/manager.php:249
-msgid "A valid username must be provided"
-msgstr ""
-
-#: user/manager.php:253
-msgid "A valid password must be provided"
-msgstr ""
-
-#: user/manager.php:258
-msgid "The username is already being used"
-msgstr ""
-
-#: util.php:438
-msgid "No database drivers (sqlite, mysql, or postgresql) installed."
-msgstr ""
-
-#: util.php:445
-#, php-format
-msgid ""
-"Permissions can usually be fixed by %sgiving the webserver write access to "
-"the root directory%s."
-msgstr ""
-
-#: util.php:452
-msgid "Cannot write into \"config\" directory"
-msgstr ""
-
-#: util.php:453
-#, php-format
-msgid ""
-"This can usually be fixed by %sgiving the webserver write access to the "
-"config directory%s."
-msgstr ""
-
-#: util.php:466
-msgid "Cannot write into \"apps\" directory"
-msgstr ""
-
-#: util.php:467
-#, php-format
-msgid ""
-"This can usually be fixed by %sgiving the webserver write access to the apps "
-"directory%s or disabling the appstore in the config file."
-msgstr ""
-
-#: util.php:482
-#, php-format
-msgid "Cannot create \"data\" directory (%s)"
-msgstr ""
-
-#: util.php:483
-#, php-format
-msgid ""
-"This can usually be fixed by giving the "
-"webserver write access to the root directory ."
-msgstr ""
-
-#: util.php:500
-#, php-format
-msgid "Setting locale to %s failed"
-msgstr ""
-
-#: util.php:503
-msgid ""
-"Please install one of these locales on your system and restart your "
-"webserver."
-msgstr ""
-
-#: util.php:532
-msgid "Please ask your server administrator to install the module."
-msgstr ""
-
-#: util.php:552
-#, php-format
-msgid "PHP module %s not installed."
-msgstr ""
-
-#: util.php:560
-#, php-format
-msgid "PHP %s or higher is required."
-msgstr ""
-
-#: util.php:561
-msgid ""
-"Please ask your server administrator to update PHP to the latest version. "
-"Your PHP version is no longer supported by ownCloud and the PHP community."
-msgstr ""
-
-#: util.php:572
-msgid ""
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work "
-"properly."
-msgstr ""
-
-#: util.php:573
-msgid ""
-"PHP Safe Mode is a deprecated and mostly useless setting that should be "
-"disabled. Please ask your server administrator to disable it in php.ini or "
-"in your webserver config."
-msgstr ""
-
-#: util.php:580
-msgid ""
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work "
-"properly."
-msgstr ""
-
-#: util.php:581
-msgid ""
-"Magic Quotes is a deprecated and mostly useless setting that should be "
-"disabled. Please ask your server administrator to disable it in php.ini or "
-"in your webserver config."
-msgstr ""
-
-#: util.php:595
-msgid "PHP modules have been installed, but they are still listed as missing?"
-msgstr ""
-
-#: util.php:596
-msgid "Please ask your server administrator to restart the web server."
-msgstr ""
-
-#: util.php:626
-msgid "PostgreSQL >= 9 required"
-msgstr ""
-
-#: util.php:627
-msgid "Please upgrade your database version"
-msgstr ""
-
-#: util.php:634
-msgid "Error occurred while checking PostgreSQL version"
-msgstr ""
-
-#: util.php:635
-msgid ""
-"Please make sure you have PostgreSQL >= 9 or check the logs for more "
-"information about the error"
-msgstr ""
-
-#: util.php:700
-msgid ""
-"Please change the permissions to 0770 so that the directory cannot be listed "
-"by other users."
-msgstr ""
-
-#: util.php:709
-#, php-format
-msgid "Data directory (%s) is readable by other users"
-msgstr ""
-
-#: util.php:730
-#, php-format
-msgid "Data directory (%s) is invalid"
-msgstr ""
-
-#: util.php:731
-msgid ""
-"Please check that the data directory contains a file \".ocdata\" in its root."
-msgstr ""
diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot
deleted file mode 100644
index 4fcbc380df7..00000000000
--- a/l10n/templates/settings.pot
+++ /dev/null
@@ -1,1045 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: admin/controller.php:66
-#, php-format
-msgid "Invalid value supplied for %s"
-msgstr ""
-
-#: admin/controller.php:73
-msgid "Saved"
-msgstr ""
-
-#: admin/controller.php:90
-msgid "test email settings"
-msgstr ""
-
-#: admin/controller.php:91
-msgid "If you received this email, the settings seem to be correct."
-msgstr ""
-
-#: admin/controller.php:94
-msgid ""
-"A problem occurred while sending the e-mail. Please revisit your settings."
-msgstr ""
-
-#: admin/controller.php:99
-msgid "Email sent"
-msgstr ""
-
-#: admin/controller.php:101
-msgid "You need to set your user email before being able to send test emails."
-msgstr ""
-
-#: admin/controller.php:116 templates/admin.php:342
-msgid "Send mode"
-msgstr ""
-
-#: admin/controller.php:118 templates/admin.php:355 templates/personal.php:198
-msgid "Encryption"
-msgstr ""
-
-#: admin/controller.php:120 templates/admin.php:379
-msgid "Authentication method"
-msgstr ""
-
-#: ajax/apps/ocs.php:20
-msgid "Unable to load list from App Store"
-msgstr ""
-
-#: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17
-#: ajax/togglegroups.php:20 changepassword/controller.php:49
-msgid "Authentication error"
-msgstr ""
-
-#: ajax/changedisplayname.php:31
-msgid "Your full name has been changed."
-msgstr ""
-
-#: ajax/changedisplayname.php:34
-msgid "Unable to change full name"
-msgstr ""
-
-#: ajax/creategroup.php:11
-msgid "Group already exists"
-msgstr ""
-
-#: ajax/creategroup.php:20
-msgid "Unable to add group"
-msgstr ""
-
-#: ajax/decryptall.php:31
-msgid "Files decrypted successfully"
-msgstr ""
-
-#: ajax/decryptall.php:33
-msgid ""
-"Couldn't decrypt your files, please check your owncloud.log or ask your "
-"administrator"
-msgstr ""
-
-#: ajax/decryptall.php:36
-msgid "Couldn't decrypt your files, check your password and try again"
-msgstr ""
-
-#: ajax/deletekeys.php:14
-msgid "Encryption keys deleted permanently"
-msgstr ""
-
-#: ajax/deletekeys.php:16
-msgid ""
-"Couldn't permanently delete your encryption keys, please check your owncloud."
-"log or ask your administrator"
-msgstr ""
-
-#: ajax/installapp.php:18 ajax/uninstallapp.php:18
-msgid "Couldn't remove app."
-msgstr ""
-
-#: ajax/lostpassword.php:12
-msgid "Email saved"
-msgstr ""
-
-#: ajax/lostpassword.php:14
-msgid "Invalid email"
-msgstr ""
-
-#: ajax/removegroup.php:13
-msgid "Unable to delete group"
-msgstr ""
-
-#: ajax/removeuser.php:25
-msgid "Unable to delete user"
-msgstr ""
-
-#: ajax/restorekeys.php:14
-msgid "Backups restored successfully"
-msgstr ""
-
-#: ajax/restorekeys.php:23
-msgid ""
-"Couldn't restore your encryption keys, please check your owncloud.log or ask "
-"your administrator"
-msgstr ""
-
-#: ajax/setlanguage.php:15
-msgid "Language changed"
-msgstr ""
-
-#: ajax/setlanguage.php:17 ajax/setlanguage.php:20
-msgid "Invalid request"
-msgstr ""
-
-#: ajax/togglegroups.php:12
-msgid "Admins can't remove themself from the admin group"
-msgstr ""
-
-#: ajax/togglegroups.php:30
-#, php-format
-msgid "Unable to add user to group %s"
-msgstr ""
-
-#: ajax/togglegroups.php:36
-#, php-format
-msgid "Unable to remove user from group %s"
-msgstr ""
-
-#: ajax/updateapp.php:44
-msgid "Couldn't update app."
-msgstr ""
-
-#: changepassword/controller.php:17
-msgid "Wrong password"
-msgstr ""
-
-#: changepassword/controller.php:36
-msgid "No user supplied"
-msgstr ""
-
-#: changepassword/controller.php:68
-msgid ""
-"Please provide an admin recovery password, otherwise all user data will be "
-"lost"
-msgstr ""
-
-#: changepassword/controller.php:73
-msgid "Wrong admin recovery password. Please check the password and try again."
-msgstr ""
-
-#: changepassword/controller.php:81
-msgid ""
-"Back-end doesn't support password change, but the users encryption key was "
-"successfully updated."
-msgstr ""
-
-#: changepassword/controller.php:86 changepassword/controller.php:97
-msgid "Unable to change password"
-msgstr ""
-
-#: js/admin.js:6
-msgid "Are you really sure you want add \"{domain}\" as trusted domain?"
-msgstr ""
-
-#: js/admin.js:7
-msgid "Add trusted domain"
-msgstr ""
-
-#: js/admin.js:116
-msgid "Sending..."
-msgstr ""
-
-#: js/apps.js:12 templates/apps.php:61
-msgid "All"
-msgstr ""
-
-#: js/apps.js:50 templates/help.php:7
-msgid "User Documentation"
-msgstr ""
-
-#: js/apps.js:59
-msgid "Admin Documentation"
-msgstr ""
-
-#: js/apps.js:87
-msgid "Update to {appversion}"
-msgstr ""
-
-#: js/apps.js:95
-msgid "Uninstall App"
-msgstr ""
-
-#: js/apps.js:101 js/apps.js:156 js/apps.js:189
-msgid "Disable"
-msgstr ""
-
-#: js/apps.js:101 js/apps.js:165 js/apps.js:182 js/apps.js:213
-msgid "Enable"
-msgstr ""
-
-#: js/apps.js:145
-msgid "Please wait...."
-msgstr ""
-
-#: js/apps.js:153 js/apps.js:154 js/apps.js:180
-msgid "Error while disabling app"
-msgstr ""
-
-#: js/apps.js:179 js/apps.js:208 js/apps.js:209
-msgid "Error while enabling app"
-msgstr ""
-
-#: js/apps.js:218
-msgid "Updating...."
-msgstr ""
-
-#: js/apps.js:221
-msgid "Error while updating app"
-msgstr ""
-
-#: js/apps.js:221 js/apps.js:234
-msgid "Error"
-msgstr ""
-
-#: js/apps.js:222 templates/apps.php:55
-msgid "Update"
-msgstr ""
-
-#: js/apps.js:225
-msgid "Updated"
-msgstr ""
-
-#: js/apps.js:231
-msgid "Uninstalling ...."
-msgstr ""
-
-#: js/apps.js:234
-msgid "Error while uninstalling app"
-msgstr ""
-
-#: js/apps.js:235 templates/apps.php:56
-msgid "Uninstall"
-msgstr ""
-
-#: js/personal.js:256
-msgid "Select a profile picture"
-msgstr ""
-
-#: js/personal.js:287
-msgid "Very weak password"
-msgstr ""
-
-#: js/personal.js:288
-msgid "Weak password"
-msgstr ""
-
-#: js/personal.js:289
-msgid "So-so password"
-msgstr ""
-
-#: js/personal.js:290
-msgid "Good password"
-msgstr ""
-
-#: js/personal.js:291
-msgid "Strong password"
-msgstr ""
-
-#: js/personal.js:328
-msgid "Valid until {date}"
-msgstr ""
-
-#: js/personal.js:333 js/personal.js:334 js/users/users.js:75
-#: templates/personal.php:179 templates/personal.php:180
-#: templates/users/part.grouplist.php:46 templates/users/part.userlist.php:108
-msgid "Delete"
-msgstr ""
-
-#: js/personal.js:350
-msgid "Decrypting files... Please wait, this can take some time."
-msgstr ""
-
-#: js/personal.js:364
-msgid "Delete encryption keys permanently."
-msgstr ""
-
-#: js/personal.js:378
-msgid "Restore encryption keys."
-msgstr ""
-
-#: js/settings.js:27 js/users/users.js:49
-#: templates/users/part.createuser.php:12 templates/users/part.userlist.php:10
-#: templates/users/part.userlist.php:41
-msgid "Groups"
-msgstr ""
-
-#: js/users/deleteHandler.js:205
-msgid "Unable to delete {objName}"
-msgstr ""
-
-#: js/users/groups.js:94 js/users/groups.js:202
-msgid "Error creating group"
-msgstr ""
-
-#: js/users/groups.js:201
-msgid "A valid group name must be provided"
-msgstr ""
-
-#: js/users/groups.js:229
-msgid "deleted {groupName}"
-msgstr ""
-
-#: js/users/groups.js:230 js/users/users.js:301
-msgid "undo"
-msgstr ""
-
-#: js/users/users.js:53 templates/users/part.userlist.php:12
-#: templates/users/part.userlist.php:57
-msgid "Group Admin"
-msgstr ""
-
-#: js/users/users.js:96 templates/users/part.userlist.php:98
-msgid "never"
-msgstr ""
-
-#: js/users/users.js:300
-msgid "deleted {userName}"
-msgstr ""
-
-#: js/users/users.js:436
-msgid "add group"
-msgstr ""
-
-#: js/users/users.js:657
-msgid "A valid username must be provided"
-msgstr ""
-
-#: js/users/users.js:658 js/users/users.js:664 js/users/users.js:679
-msgid "Error creating user"
-msgstr ""
-
-#: js/users/users.js:663
-msgid "A valid password must be provided"
-msgstr ""
-
-#: js/users/users.js:695
-msgid "Warning: Home directory for user \"{user}\" already exists"
-msgstr ""
-
-#: personal.php:51 personal.php:52
-msgid "__language_name__"
-msgstr ""
-
-#: templates/admin.php:12
-msgid "Everything (fatal issues, errors, warnings, info, debug)"
-msgstr ""
-
-#: templates/admin.php:13
-msgid "Info, warnings, errors and fatal issues"
-msgstr ""
-
-#: templates/admin.php:14
-msgid "Warnings, errors and fatal issues"
-msgstr ""
-
-#: templates/admin.php:15
-msgid "Errors and fatal issues"
-msgstr ""
-
-#: templates/admin.php:16
-msgid "Fatal issues only"
-msgstr ""
-
-#: templates/admin.php:20 templates/admin.php:27
-msgid "None"
-msgstr ""
-
-#: templates/admin.php:21
-msgid "Login"
-msgstr ""
-
-#: templates/admin.php:22
-msgid "Plain"
-msgstr ""
-
-#: templates/admin.php:23
-msgid "NT LAN Manager"
-msgstr ""
-
-#: templates/admin.php:28
-msgid "SSL"
-msgstr ""
-
-#: templates/admin.php:29
-msgid "TLS"
-msgstr ""
-
-#: templates/admin.php:51 templates/admin.php:65
-msgid "Security Warning"
-msgstr ""
-
-#: templates/admin.php:54
-#, php-format
-msgid ""
-"You are accessing %s via HTTP. We strongly suggest you configure your server "
-"to require using HTTPS instead."
-msgstr ""
-
-#: templates/admin.php:68
-msgid ""
-"Your data directory and your files are probably accessible from the "
-"internet. The .htaccess file is not working. We strongly suggest that you "
-"configure your webserver in a way that the data directory is no longer "
-"accessible or you move the data directory outside the webserver document "
-"root."
-msgstr ""
-
-#: templates/admin.php:79
-msgid "Setup Warning"
-msgstr ""
-
-#: templates/admin.php:82
-msgid ""
-"PHP is apparently setup to strip inline doc blocks. This will make several "
-"core apps inaccessible."
-msgstr ""
-
-#: templates/admin.php:83
-msgid ""
-"This is probably caused by a cache/accelerator such as Zend OPcache or "
-"eAccelerator."
-msgstr ""
-
-#: templates/admin.php:94
-msgid "Database Performance Info"
-msgstr ""
-
-#: templates/admin.php:97
-msgid ""
-"SQLite is used as database. For larger installations we recommend to change "
-"this. To migrate to another database use the command line tool: 'occ db:"
-"convert-type'"
-msgstr ""
-
-#: templates/admin.php:108
-msgid "Module 'fileinfo' missing"
-msgstr ""
-
-#: templates/admin.php:111
-msgid ""
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this "
-"module to get best results with mime-type detection."
-msgstr ""
-
-#: templates/admin.php:122
-msgid "Your PHP version is outdated"
-msgstr ""
-
-#: templates/admin.php:125
-msgid ""
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or "
-"newer because older versions are known to be broken. It is possible that "
-"this installation is not working correctly."
-msgstr ""
-
-#: templates/admin.php:136
-msgid "PHP charset is not set to UTF-8"
-msgstr ""
-
-#: templates/admin.php:139
-msgid ""
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII "
-"characters in file names. We highly recommend to change the value of "
-"'default_charset' php.ini to 'UTF-8'."
-msgstr ""
-
-#: templates/admin.php:150
-msgid "Locale not working"
-msgstr ""
-
-#: templates/admin.php:155
-msgid "System locale can not be set to a one which supports UTF-8."
-msgstr ""
-
-#: templates/admin.php:159
-msgid ""
-"This means that there might be problems with certain characters in file "
-"names."
-msgstr ""
-
-#: templates/admin.php:163
-#, php-format
-msgid ""
-"We strongly suggest to install the required packages on your system to "
-"support one of the following locales: %s."
-msgstr ""
-
-#: templates/admin.php:174
-msgid "URL generation in notification emails"
-msgstr ""
-
-#: templates/admin.php:177
-#, php-format
-msgid ""
-"If your installation is not installed in the root of the domain and uses "
-"system cron, there can be issues with the URL generation. To avoid these "
-"problems, please set the \"overwritewebroot\" option in your config.php file "
-"to the webroot path of your installation (Suggested: \"%s\")"
-msgstr ""
-
-#: templates/admin.php:185
-msgid "Connectivity checks"
-msgstr ""
-
-#: templates/admin.php:187
-msgid "No problems found"
-msgstr ""
-
-#: templates/admin.php:191
-#, php-format
-msgid "Please double check the installation guides ."
-msgstr ""
-
-#: templates/admin.php:201
-msgid "Cron"
-msgstr ""
-
-#: templates/admin.php:208
-#, php-format
-msgid "Last cron was executed at %s."
-msgstr ""
-
-#: templates/admin.php:211
-#, php-format
-msgid ""
-"Last cron was executed at %s. This is more than an hour ago, something seems "
-"wrong."
-msgstr ""
-
-#: templates/admin.php:215
-msgid "Cron was not executed yet!"
-msgstr ""
-
-#: templates/admin.php:225
-msgid "Execute one task with each page loaded"
-msgstr ""
-
-#: templates/admin.php:233
-msgid ""
-"cron.php is registered at a webcron service to call cron.php every 15 "
-"minutes over http."
-msgstr ""
-
-#: templates/admin.php:241
-msgid "Use system's cron service to call the cron.php file every 15 minutes."
-msgstr ""
-
-#: templates/admin.php:246
-msgid "Sharing"
-msgstr ""
-
-#: templates/admin.php:250
-msgid "Allow apps to use the Share API"
-msgstr ""
-
-#: templates/admin.php:255
-msgid "Allow users to share via link"
-msgstr ""
-
-#: templates/admin.php:261
-msgid "Enforce password protection"
-msgstr ""
-
-#: templates/admin.php:264
-msgid "Allow public uploads"
-msgstr ""
-
-#: templates/admin.php:268
-msgid "Set default expiration date"
-msgstr ""
-
-#: templates/admin.php:272
-msgid "Expire after "
-msgstr ""
-
-#: templates/admin.php:275
-msgid "days"
-msgstr ""
-
-#: templates/admin.php:278
-msgid "Enforce expiration date"
-msgstr ""
-
-#: templates/admin.php:283
-msgid "Allow resharing"
-msgstr ""
-
-#: templates/admin.php:288
-msgid "Restrict users to only share with users in their groups"
-msgstr ""
-
-#: templates/admin.php:293
-msgid "Allow users to send mail notification for shared files"
-msgstr ""
-
-#: templates/admin.php:298
-msgid "Exclude groups from sharing"
-msgstr ""
-
-#: templates/admin.php:303
-msgid ""
-"These groups will still be able to receive shares, but not to initiate them."
-msgstr ""
-
-#: templates/admin.php:308
-msgid "Security"
-msgstr ""
-
-#: templates/admin.php:319
-msgid "Enforce HTTPS"
-msgstr ""
-
-#: templates/admin.php:321
-#, php-format
-msgid "Forces the clients to connect to %s via an encrypted connection."
-msgstr ""
-
-#: templates/admin.php:327
-#, php-format
-msgid ""
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement."
-msgstr ""
-
-#: templates/admin.php:337
-msgid "Email Server"
-msgstr ""
-
-#: templates/admin.php:339
-msgid "This is used for sending out notifications."
-msgstr ""
-
-#: templates/admin.php:370
-msgid "From address"
-msgstr ""
-
-#: templates/admin.php:371
-msgid "mail"
-msgstr ""
-
-#: templates/admin.php:392
-msgid "Authentication required"
-msgstr ""
-
-#: templates/admin.php:396
-msgid "Server address"
-msgstr ""
-
-#: templates/admin.php:400
-msgid "Port"
-msgstr ""
-
-#: templates/admin.php:405
-msgid "Credentials"
-msgstr ""
-
-#: templates/admin.php:406
-msgid "SMTP Username"
-msgstr ""
-
-#: templates/admin.php:409
-msgid "SMTP Password"
-msgstr ""
-
-#: templates/admin.php:413
-msgid "Test email settings"
-msgstr ""
-
-#: templates/admin.php:414
-msgid "Send email"
-msgstr ""
-
-#: templates/admin.php:419
-msgid "Log"
-msgstr ""
-
-#: templates/admin.php:420
-msgid "Log level"
-msgstr ""
-
-#: templates/admin.php:452
-msgid "More"
-msgstr ""
-
-#: templates/admin.php:453
-msgid "Less"
-msgstr ""
-
-#: templates/admin.php:459 templates/personal.php:247
-msgid "Version"
-msgstr ""
-
-#: templates/admin.php:463 templates/personal.php:250
-msgid ""
-"Developed by the ownCloud community , the source code is licensed under the AGPL ."
-msgstr ""
-
-#: templates/apps.php:14
-msgid "Add your App"
-msgstr ""
-
-#: templates/apps.php:31
-msgid "More Apps"
-msgstr ""
-
-#: templates/apps.php:38
-msgid "Select an App"
-msgstr ""
-
-#: templates/apps.php:43
-msgid "Documentation:"
-msgstr ""
-
-#: templates/apps.php:49
-msgid "See application page at apps.owncloud.com"
-msgstr ""
-
-#: templates/apps.php:51
-msgid "See application website"
-msgstr ""
-
-#: templates/apps.php:53
-msgid ""
-" -licensed by "
-msgstr ""
-
-#: templates/apps.php:59
-msgid "Enable only for specific groups"
-msgstr ""
-
-#: templates/help.php:13
-msgid "Administrator Documentation"
-msgstr ""
-
-#: templates/help.php:20
-msgid "Online Documentation"
-msgstr ""
-
-#: templates/help.php:25
-msgid "Forum"
-msgstr ""
-
-#: templates/help.php:33
-msgid "Bugtracker"
-msgstr ""
-
-#: templates/help.php:40
-msgid "Commercial Support"
-msgstr ""
-
-#: templates/personal.php:11
-msgid "Get the apps to sync your files"
-msgstr ""
-
-#: templates/personal.php:24
-msgid ""
-"If you want to support the project\n"
-"\t\tjoin development \n"
-"\t\tor\n"
-"\t\tspread the word !"
-msgstr ""
-
-#: templates/personal.php:34
-msgid "Show First Run Wizard again"
-msgstr ""
-
-#: templates/personal.php:43
-#, php-format
-msgid "You have used %s of the available %s "
-msgstr ""
-
-#: templates/personal.php:54 templates/users/part.createuser.php:8
-#: templates/users/part.userlist.php:9
-msgid "Password"
-msgstr ""
-
-#: templates/personal.php:55
-msgid "Your password was changed"
-msgstr ""
-
-#: templates/personal.php:56
-msgid "Unable to change your password"
-msgstr ""
-
-#: templates/personal.php:58
-msgid "Current password"
-msgstr ""
-
-#: templates/personal.php:61
-msgid "New password"
-msgstr ""
-
-#: templates/personal.php:65
-msgid "Change password"
-msgstr ""
-
-#: templates/personal.php:77 templates/users/part.userlist.php:8
-msgid "Full Name"
-msgstr ""
-
-#: templates/personal.php:92
-msgid "Email"
-msgstr ""
-
-#: templates/personal.php:94
-msgid "Your email address"
-msgstr ""
-
-#: templates/personal.php:97
-msgid ""
-"Fill in an email address to enable password recovery and receive "
-"notifications"
-msgstr ""
-
-#: templates/personal.php:105
-msgid "Profile picture"
-msgstr ""
-
-#: templates/personal.php:110
-msgid "Upload new"
-msgstr ""
-
-#: templates/personal.php:112
-msgid "Select new from Files"
-msgstr ""
-
-#: templates/personal.php:113
-msgid "Remove image"
-msgstr ""
-
-#: templates/personal.php:114
-msgid "Either png or jpg. Ideally square but you will be able to crop it."
-msgstr ""
-
-#: templates/personal.php:116
-msgid "Your avatar is provided by your original account."
-msgstr ""
-
-#: templates/personal.php:120
-msgid "Cancel"
-msgstr ""
-
-#: templates/personal.php:121
-msgid "Choose as profile image"
-msgstr ""
-
-#: templates/personal.php:127 templates/personal.php:128
-msgid "Language"
-msgstr ""
-
-#: templates/personal.php:147
-msgid "Help translate"
-msgstr ""
-
-#: templates/personal.php:157
-msgid "SSL root certificates"
-msgstr ""
-
-#: templates/personal.php:160
-msgid "Common Name"
-msgstr ""
-
-#: templates/personal.php:161
-msgid "Valid until"
-msgstr ""
-
-#: templates/personal.php:162
-msgid "Issued By"
-msgstr ""
-
-#: templates/personal.php:171
-#, php-format
-msgid "Valid until %s"
-msgstr ""
-
-#: templates/personal.php:190
-msgid "Import Root Certificate"
-msgstr ""
-
-#: templates/personal.php:204
-msgid "The encryption app is no longer enabled, please decrypt all your files"
-msgstr ""
-
-#: templates/personal.php:210
-msgid "Log-in password"
-msgstr ""
-
-#: templates/personal.php:215
-msgid "Decrypt all Files"
-msgstr ""
-
-#: templates/personal.php:225
-msgid ""
-"Your encryption keys are moved to a backup location. If something went wrong "
-"you can restore the keys. Only delete them permanently if you are sure that "
-"all files are decrypted correctly."
-msgstr ""
-
-#: templates/personal.php:229
-msgid "Restore Encryption Keys"
-msgstr ""
-
-#: templates/personal.php:233
-msgid "Delete Encryption Keys"
-msgstr ""
-
-#: templates/users/main.php:34
-msgid "Show storage location"
-msgstr ""
-
-#: templates/users/main.php:38
-msgid "Show last log in"
-msgstr ""
-
-#: templates/users/part.createuser.php:4
-msgid "Login Name"
-msgstr ""
-
-#: templates/users/part.createuser.php:20
-msgid "Create"
-msgstr ""
-
-#: templates/users/part.createuser.php:26
-msgid "Admin Recovery Password"
-msgstr ""
-
-#: templates/users/part.createuser.php:27
-#: templates/users/part.createuser.php:28
-msgid ""
-"Enter the recovery password in order to recover the users files during "
-"password change"
-msgstr ""
-
-#: templates/users/part.createuser.php:32
-msgid "Search Users and Groups"
-msgstr ""
-
-#: templates/users/part.grouplist.php:5
-msgid "Add Group"
-msgstr ""
-
-#: templates/users/part.grouplist.php:10
-msgid "Group"
-msgstr ""
-
-#: templates/users/part.grouplist.php:18
-msgid "Everyone"
-msgstr ""
-
-#: templates/users/part.grouplist.php:31
-msgid "Admins"
-msgstr ""
-
-#: templates/users/part.setquota.php:3
-msgid "Default Quota"
-msgstr ""
-
-#: templates/users/part.setquota.php:5 templates/users/part.userlist.php:66
-msgid "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")"
-msgstr ""
-
-#: templates/users/part.setquota.php:7 templates/users/part.userlist.php:75
-msgid "Unlimited"
-msgstr ""
-
-#: templates/users/part.setquota.php:22 templates/users/part.userlist.php:90
-msgid "Other"
-msgstr ""
-
-#: templates/users/part.userlist.php:7
-msgid "Username"
-msgstr ""
-
-#: templates/users/part.userlist.php:14
-msgid "Quota"
-msgstr ""
-
-#: templates/users/part.userlist.php:15
-msgid "Storage Location"
-msgstr ""
-
-#: templates/users/part.userlist.php:16
-msgid "Last Login"
-msgstr ""
-
-#: templates/users/part.userlist.php:30
-msgid "change full name"
-msgstr ""
-
-#: templates/users/part.userlist.php:34
-msgid "set new password"
-msgstr ""
-
-#: templates/users/part.userlist.php:70
-msgid "Default"
-msgstr ""
diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot
deleted file mode 100644
index 396ddc13500..00000000000
--- a/l10n/templates/user_ldap.pot
+++ /dev/null
@@ -1,586 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: ajax/clearMappings.php:34
-msgid "Failed to clear the mappings."
-msgstr ""
-
-#: ajax/deleteConfiguration.php:34
-msgid "Failed to delete the server configuration"
-msgstr ""
-
-#: ajax/testConfiguration.php:39
-msgid "The configuration is valid and the connection could be established!"
-msgstr ""
-
-#: ajax/testConfiguration.php:42
-msgid ""
-"The configuration is valid, but the Bind failed. Please check the server "
-"settings and credentials."
-msgstr ""
-
-#: ajax/testConfiguration.php:46
-msgid ""
-"The configuration is invalid. Please have a look at the logs for further "
-"details."
-msgstr ""
-
-#: ajax/wizard.php:32
-msgid "No action specified"
-msgstr ""
-
-#: ajax/wizard.php:38
-msgid "No configuration specified"
-msgstr ""
-
-#: ajax/wizard.php:97
-msgid "No data specified"
-msgstr ""
-
-#: ajax/wizard.php:105
-#, php-format
-msgid " Could not set configuration %s"
-msgstr ""
-
-#: js/settings.js:67
-msgid "Deletion failed"
-msgstr ""
-
-#: js/settings.js:83
-msgid "Take over settings from recent server configuration?"
-msgstr ""
-
-#: js/settings.js:84
-msgid "Keep settings?"
-msgstr ""
-
-#: js/settings.js:93
-msgid "{nthServer}. Server"
-msgstr ""
-
-#: js/settings.js:99
-msgid "Cannot add server configuration"
-msgstr ""
-
-#: js/settings.js:127
-msgid "mappings cleared"
-msgstr ""
-
-#: js/settings.js:128
-msgid "Success"
-msgstr ""
-
-#: js/settings.js:133
-msgid "Error"
-msgstr ""
-
-#: js/settings.js:244
-msgid "Please specify a Base DN"
-msgstr ""
-
-#: js/settings.js:245
-msgid "Could not determine Base DN"
-msgstr ""
-
-#: js/settings.js:276
-msgid "Please specify the port"
-msgstr ""
-
-#: js/settings.js:792
-msgid "Configuration OK"
-msgstr ""
-
-#: js/settings.js:801
-msgid "Configuration incorrect"
-msgstr ""
-
-#: js/settings.js:810
-msgid "Configuration incomplete"
-msgstr ""
-
-#: js/settings.js:827 js/settings.js:836
-msgid "Select groups"
-msgstr ""
-
-#: js/settings.js:830 js/settings.js:839
-msgid "Select object classes"
-msgstr ""
-
-#: js/settings.js:833
-msgid "Select attributes"
-msgstr ""
-
-#: js/settings.js:860
-msgid "Connection test succeeded"
-msgstr ""
-
-#: js/settings.js:867
-msgid "Connection test failed"
-msgstr ""
-
-#: js/settings.js:876
-msgid "Do you really want to delete the current Server Configuration?"
-msgstr ""
-
-#: js/settings.js:877
-msgid "Confirm Deletion"
-msgstr ""
-
-#: lib/wizard.php:98 lib/wizard.php:113
-#, php-format
-msgid "%s group found"
-msgid_plural "%s groups found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: lib/wizard.php:127
-#, php-format
-msgid "%s user found"
-msgid_plural "%s users found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: lib/wizard.php:394 lib/wizard.php:1130
-msgid "Could not find the desired feature"
-msgstr ""
-
-#: lib/wizard.php:937 lib/wizard.php:949
-msgid "Invalid Host"
-msgstr ""
-
-#: settings.php:52
-msgid "Server"
-msgstr ""
-
-#: settings.php:53
-msgid "User Filter"
-msgstr ""
-
-#: settings.php:54
-msgid "Login Filter"
-msgstr ""
-
-#: settings.php:55
-msgid "Group Filter"
-msgstr ""
-
-#: templates/part.settingcontrols.php:2
-msgid "Save"
-msgstr ""
-
-#: templates/part.settingcontrols.php:4
-msgid "Test Configuration"
-msgstr ""
-
-#: templates/part.settingcontrols.php:10 templates/part.wizardcontrols.php:14
-msgid "Help"
-msgstr ""
-
-#: templates/part.wizard-groupfilter.php:4
-#, php-format
-msgid "Groups meeting these criteria are available in %s:"
-msgstr ""
-
-#: templates/part.wizard-groupfilter.php:8
-#: templates/part.wizard-userfilter.php:8
-msgid "only those object classes:"
-msgstr ""
-
-#: templates/part.wizard-groupfilter.php:17
-#: templates/part.wizard-userfilter.php:17
-msgid "only from those groups:"
-msgstr ""
-
-#: templates/part.wizard-groupfilter.php:25
-#: templates/part.wizard-loginfilter.php:32
-#: templates/part.wizard-userfilter.php:25
-msgid "Edit raw filter instead"
-msgstr ""
-
-#: templates/part.wizard-groupfilter.php:30
-#: templates/part.wizard-loginfilter.php:37
-#: templates/part.wizard-userfilter.php:30
-msgid "Raw LDAP filter"
-msgstr ""
-
-#: templates/part.wizard-groupfilter.php:31
-#, php-format
-msgid ""
-"The filter specifies which LDAP groups shall have access to the %s instance."
-msgstr ""
-
-#: templates/part.wizard-groupfilter.php:38
-msgid "groups found"
-msgstr ""
-
-#: templates/part.wizard-loginfilter.php:4
-msgid "Users login with this attribute:"
-msgstr ""
-
-#: templates/part.wizard-loginfilter.php:8
-msgid "LDAP Username:"
-msgstr ""
-
-#: templates/part.wizard-loginfilter.php:16
-msgid "LDAP Email Address:"
-msgstr ""
-
-#: templates/part.wizard-loginfilter.php:24
-msgid "Other Attributes:"
-msgstr ""
-
-#: templates/part.wizard-loginfilter.php:38
-#, php-format
-msgid ""
-"Defines the filter to apply, when login is attempted. %%uid replaces the "
-"username in the login action. Example: \"uid=%%uid\""
-msgstr ""
-
-#: templates/part.wizard-server.php:13
-msgid "1. Server"
-msgstr ""
-
-#: templates/part.wizard-server.php:20
-#, php-format
-msgid "%s. Server:"
-msgstr ""
-
-#: templates/part.wizard-server.php:25
-msgid "Add Server Configuration"
-msgstr ""
-
-#: templates/part.wizard-server.php:28
-msgid "Delete Configuration"
-msgstr ""
-
-#: templates/part.wizard-server.php:37
-msgid "Host"
-msgstr ""
-
-#: templates/part.wizard-server.php:38
-msgid ""
-"You can omit the protocol, except you require SSL. Then start with ldaps://"
-msgstr ""
-
-#: templates/part.wizard-server.php:43
-msgid "Port"
-msgstr ""
-
-#: templates/part.wizard-server.php:51
-msgid "User DN"
-msgstr ""
-
-#: templates/part.wizard-server.php:52
-msgid ""
-"The DN of the client user with which the bind shall be done, e.g. uid=agent,"
-"dc=example,dc=com. For anonymous access, leave DN and Password empty."
-msgstr ""
-
-#: templates/part.wizard-server.php:59
-msgid "Password"
-msgstr ""
-
-#: templates/part.wizard-server.php:60
-msgid "For anonymous access, leave DN and Password empty."
-msgstr ""
-
-#: templates/part.wizard-server.php:67
-msgid "One Base DN per line"
-msgstr ""
-
-#: templates/part.wizard-server.php:68
-msgid "You can specify Base DN for users and groups in the Advanced tab"
-msgstr ""
-
-#: templates/part.wizard-userfilter.php:4
-#, php-format
-msgid "Limit %s access to users meeting these criteria:"
-msgstr ""
-
-#: templates/part.wizard-userfilter.php:31
-#, php-format
-msgid ""
-"The filter specifies which LDAP users shall have access to the %s instance."
-msgstr ""
-
-#: templates/part.wizard-userfilter.php:38
-msgid "users found"
-msgstr ""
-
-#: templates/part.wizardcontrols.php:5
-msgid "Back"
-msgstr ""
-
-#: templates/part.wizardcontrols.php:8
-msgid "Continue"
-msgstr ""
-
-#: templates/settings.php:7
-msgid "Expert"
-msgstr ""
-
-#: templates/settings.php:8
-msgid "Advanced"
-msgstr ""
-
-#: templates/settings.php:11
-msgid ""
-"Warning: Apps user_ldap and user_webdavauth are incompatible. You may "
-"experience unexpected behavior. Please ask your system administrator to "
-"disable one of them."
-msgstr ""
-
-#: templates/settings.php:14
-msgid ""
-"Warning: The PHP LDAP module is not installed, the backend will not "
-"work. Please ask your system administrator to install it."
-msgstr ""
-
-#: templates/settings.php:20
-msgid "Connection Settings"
-msgstr ""
-
-#: templates/settings.php:22
-msgid "Configuration Active"
-msgstr ""
-
-#: templates/settings.php:22
-msgid "When unchecked, this configuration will be skipped."
-msgstr ""
-
-#: templates/settings.php:23
-msgid "Backup (Replica) Host"
-msgstr ""
-
-#: templates/settings.php:23
-msgid ""
-"Give an optional backup host. It must be a replica of the main LDAP/AD "
-"server."
-msgstr ""
-
-#: templates/settings.php:24
-msgid "Backup (Replica) Port"
-msgstr ""
-
-#: templates/settings.php:25
-msgid "Disable Main Server"
-msgstr ""
-
-#: templates/settings.php:25
-msgid "Only connect to the replica server."
-msgstr ""
-
-#: templates/settings.php:26
-msgid "Case insensitive LDAP server (Windows)"
-msgstr ""
-
-#: templates/settings.php:27
-msgid "Turn off SSL certificate validation."
-msgstr ""
-
-#: templates/settings.php:27
-#, php-format
-msgid ""
-"Not recommended, use it for testing only! If connection only works with this "
-"option, import the LDAP server's SSL certificate in your %s server."
-msgstr ""
-
-#: templates/settings.php:28
-msgid "Cache Time-To-Live"
-msgstr ""
-
-#: templates/settings.php:28
-msgid "in seconds. A change empties the cache."
-msgstr ""
-
-#: templates/settings.php:30
-msgid "Directory Settings"
-msgstr ""
-
-#: templates/settings.php:32
-msgid "User Display Name Field"
-msgstr ""
-
-#: templates/settings.php:32
-msgid "The LDAP attribute to use to generate the user's display name."
-msgstr ""
-
-#: templates/settings.php:33
-msgid "Base User Tree"
-msgstr ""
-
-#: templates/settings.php:33
-msgid "One User Base DN per line"
-msgstr ""
-
-#: templates/settings.php:34
-msgid "User Search Attributes"
-msgstr ""
-
-#: templates/settings.php:34 templates/settings.php:37
-msgid "Optional; one attribute per line"
-msgstr ""
-
-#: templates/settings.php:35
-msgid "Group Display Name Field"
-msgstr ""
-
-#: templates/settings.php:35
-msgid "The LDAP attribute to use to generate the groups's display name."
-msgstr ""
-
-#: templates/settings.php:36
-msgid "Base Group Tree"
-msgstr ""
-
-#: templates/settings.php:36
-msgid "One Group Base DN per line"
-msgstr ""
-
-#: templates/settings.php:37
-msgid "Group Search Attributes"
-msgstr ""
-
-#: templates/settings.php:38
-msgid "Group-Member association"
-msgstr ""
-
-#: templates/settings.php:39
-msgid "Nested Groups"
-msgstr ""
-
-#: templates/settings.php:39
-msgid ""
-"When switched on, groups that contain groups are supported. (Only works if "
-"the group member attribute contains DNs.)"
-msgstr ""
-
-#: templates/settings.php:40
-msgid "Paging chunksize"
-msgstr ""
-
-#: templates/settings.php:40
-msgid ""
-"Chunksize used for paged LDAP searches that may return bulky results like "
-"user or group enumeration. (Setting it 0 disables paged LDAP searches in "
-"those situations.)"
-msgstr ""
-
-#: templates/settings.php:42
-msgid "Special Attributes"
-msgstr ""
-
-#: templates/settings.php:44
-msgid "Quota Field"
-msgstr ""
-
-#: templates/settings.php:45
-msgid "Quota Default"
-msgstr ""
-
-#: templates/settings.php:45
-msgid "in bytes"
-msgstr ""
-
-#: templates/settings.php:46
-msgid "Email Field"
-msgstr ""
-
-#: templates/settings.php:47
-msgid "User Home Folder Naming Rule"
-msgstr ""
-
-#: templates/settings.php:47
-msgid ""
-"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute."
-msgstr ""
-
-#: templates/settings.php:53
-msgid "Internal Username"
-msgstr ""
-
-#: templates/settings.php:54
-msgid ""
-"By default the internal username will be created from the UUID attribute. It "
-"makes sure that the username is unique and characters do not need to be "
-"converted. The internal username has the restriction that only these "
-"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced "
-"with their ASCII correspondence or simply omitted. On collisions a number "
-"will be added/increased. The internal username is used to identify a user "
-"internally. It is also the default name for the user home folder. It is also "
-"a part of remote URLs, for instance for all *DAV services. With this "
-"setting, the default behavior can be overridden. To achieve a similar "
-"behavior as before ownCloud 5 enter the user display name attribute in the "
-"following field. Leave it empty for default behavior. Changes will have "
-"effect only on newly mapped (added) LDAP users."
-msgstr ""
-
-#: templates/settings.php:55
-msgid "Internal Username Attribute:"
-msgstr ""
-
-#: templates/settings.php:56
-msgid "Override UUID detection"
-msgstr ""
-
-#: templates/settings.php:57
-msgid ""
-"By default, the UUID attribute is automatically detected. The UUID attribute "
-"is used to doubtlessly identify LDAP users and groups. Also, the internal "
-"username will be created based on the UUID, if not specified otherwise "
-"above. You can override the setting and pass an attribute of your choice. "
-"You must make sure that the attribute of your choice can be fetched for both "
-"users and groups and it is unique. Leave it empty for default behavior. "
-"Changes will have effect only on newly mapped (added) LDAP users and groups."
-msgstr ""
-
-#: templates/settings.php:58
-msgid "UUID Attribute for Users:"
-msgstr ""
-
-#: templates/settings.php:59
-msgid "UUID Attribute for Groups:"
-msgstr ""
-
-#: templates/settings.php:60
-msgid "Username-LDAP User Mapping"
-msgstr ""
-
-#: templates/settings.php:61
-msgid ""
-"Usernames are used to store and assign (meta) data. In order to precisely "
-"identify and recognize users, each LDAP user will have a internal username. "
-"This requires a mapping from username to LDAP user. The created username is "
-"mapped to the UUID of the LDAP user. Additionally the DN is cached as well "
-"to reduce LDAP interaction, but it is not used for identification. If the DN "
-"changes, the changes will be found. The internal username is used all over. "
-"Clearing the mappings will have leftovers everywhere. Clearing the mappings "
-"is not configuration sensitive, it affects all LDAP configurations! Never "
-"clear the mappings in a production environment, only in a testing or "
-"experimental stage."
-msgstr ""
-
-#: templates/settings.php:62
-msgid "Clear Username-LDAP User Mapping"
-msgstr ""
-
-#: templates/settings.php:62
-msgid "Clear Groupname-LDAP Group Mapping"
-msgstr ""
diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot
deleted file mode 100644
index eb7edb19459..00000000000
--- a/l10n/templates/user_webdavauth.pot
+++ /dev/null
@@ -1,37 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: ownCloud Core 6.0.0\n"
-"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-08 01:54-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: templates/settings.php:2
-msgid "WebDAV Authentication"
-msgstr ""
-
-#: templates/settings.php:3
-msgid "Address:"
-msgstr ""
-
-#: templates/settings.php:5
-msgid "Save"
-msgstr ""
-
-#: templates/settings.php:6
-msgid ""
-"The user credentials will be sent to this address. This plugin checks the "
-"response and will interpret the HTTP statuscodes 401 and 403 as invalid "
-"credentials, and all other responses as valid credentials."
-msgstr ""
diff --git a/lib/autoloader.php b/lib/autoloader.php
index 54f01d9be94..f5927128820 100644
--- a/lib/autoloader.php
+++ b/lib/autoloader.php
@@ -21,26 +21,6 @@ class Autoloader {
*/
protected $memoryCache;
- /**
- * Add a custom prefix to the autoloader
- *
- * @param string $prefix
- * @param string $path
- */
- public function registerPrefix($prefix, $path) {
- $this->prefixPaths[$prefix] = $path;
- }
-
- /**
- * Add a custom classpath to the autoloader
- *
- * @param string $class
- * @param string $path
- */
- public function registerClass($class, $path) {
- $this->classPaths[$class] = $path;
- }
-
/**
* disable the usage of the global classpath \OC::$CLASSPATH
*/
@@ -99,14 +79,6 @@ class Autoloader {
$paths[] = 'tests/lib/' . strtolower(str_replace('_', '/', substr($class, 5)) . '.php');
} elseif (strpos($class, 'Test\\') === 0) {
$paths[] = 'tests/lib/' . strtolower(str_replace('\\', '/', substr($class, 5)) . '.php');
- } else {
- foreach ($this->prefixPaths as $prefix => $dir) {
- if (0 === strpos($class, $prefix)) {
- $path = str_replace('\\', '/', $class) . '.php';
- $path = str_replace('_', '/', $path);
- $paths[] = $dir . '/' . $path;
- }
- }
}
return $paths;
}
diff --git a/lib/base.php b/lib/base.php
index 0086531e523..74b668551ab 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -66,16 +66,10 @@ class OC {
public static $REQUESTEDAPP = '';
/**
- * check if owncloud runs in cli mode
+ * check if ownCloud runs in cli mode
*/
public static $CLI = false;
- /**
- * @deprecated use \OC::$server->getSession() instead
- * @var \OC\Session\Session
- */
- public static $session = null;
-
/**
* @var \OC\Autoloader $loader
*/
@@ -194,9 +188,9 @@ class OC {
public static function checkConfig() {
$l = \OC::$server->getL10N('lib');
- if (file_exists(self::$configDir . "/config.php")
- and !is_writable(self::$configDir . "/config.php")
- ) {
+ $configFileWritable = file_exists(self::$configDir . "/config.php") && is_writable(self::$configDir . "/config.php");
+ if (!$configFileWritable && !OC_Helper::isReadOnlyConfigEnabled()
+ || !$configFileWritable && \OCP\Util::needUpgrade()) {
if (self::$CLI) {
echo $l->t('Cannot write into "config" directory!')."\n";
echo $l->t('This can usually be fixed by giving the webserver write access to the config directory')."\n";
@@ -216,7 +210,7 @@ class OC {
public static function checkInstalled() {
// Redirect to installer if not installed
- if (!OC_Config::getValue('installed', false) && OC::$SUBURI != '/index.php') {
+ if (!\OC::$server->getConfig()->getSystemValue('installed', false) && OC::$SUBURI != '/index.php') {
if (OC::$CLI) {
throw new Exception('Not installed');
} else {
@@ -229,11 +223,18 @@ class OC {
public static function checkSSL() {
// redirect to https site if configured
- if (OC_Config::getValue("forcessl", false)) {
- header('Strict-Transport-Security: max-age=31536000');
- ini_set("session.cookie_secure", "on");
+ if (\OC::$server->getConfig()->getSystemValue('forcessl', false)) {
+ // Default HSTS policy
+ $header = 'Strict-Transport-Security: max-age=31536000';
+
+ // If SSL for subdomains is enabled add "; includeSubDomains" to the header
+ if(\OC::$server->getConfig()->getSystemValue('forceSSLforSubdomains', false)) {
+ $header .= '; includeSubDomains';
+ }
+ header($header);
+ ini_set('session.cookie_secure', 'on');
if (OC_Request::serverProtocol() <> 'https' and !OC::$CLI) {
- $url = "https://" . OC_Request::serverHost() . OC_Request::requestUri();
+ $url = 'https://' . OC_Request::serverHost() . OC_Request::requestUri();
header("Location: $url");
exit();
}
@@ -247,7 +248,7 @@ class OC {
public static function checkMaintenanceMode() {
// Allow ajax update script to execute without being stopped
- if (OC_Config::getValue('maintenance', false) && OC::$SUBURI != '/core/ajax/update.php') {
+ if (\OC::$server->getConfig()->getSystemValue('maintenance', false) && OC::$SUBURI != '/core/ajax/update.php') {
// send http status 503
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
@@ -264,7 +265,7 @@ class OC {
public static function checkSingleUserMode() {
$user = OC_User::getUserSession()->getUser();
$group = OC_Group::getManager()->get('admin');
- if ($user && OC_Config::getValue('singleuser', false) && !$group->inGroup($user)) {
+ if ($user && \OC::$server->getConfig()->getSystemValue('singleuser', false) && !$group->inGroup($user)) {
// send http status 503
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
@@ -294,10 +295,11 @@ class OC {
*/
public static function checkUpgrade($showTemplate = true) {
if (\OCP\Util::needUpgrade()) {
- if ($showTemplate && !OC_Config::getValue('maintenance', false)) {
+ $config = \OC::$server->getConfig();
+ if ($showTemplate && !$config->getSystemValue('maintenance', false)) {
$version = OC_Util::getVersion();
- $oldTheme = OC_Config::getValue('theme');
- OC_Config::setValue('theme', '');
+ $oldTheme = $config->getSystemValue('theme');
+ $config->setSystemValue('theme', '');
OC_Util::addScript('config'); // needed for web root
OC_Util::addScript('update');
$tmpl = new OC_Template('', 'update.admin', 'guest');
@@ -327,17 +329,19 @@ class OC {
public static function initTemplateEngine() {
// Add the stuff we need always
// TODO: read from core/js/core.json
- OC_Util::addScript("jquery-1.10.0.min");
- OC_Util::addScript("jquery-migrate-1.2.1.min");
+ OC_Util::addVendorScript('jquery/jquery.min');
+ OC_Util::addVendorScript('jquery/jquery-migrate.min');
OC_Util::addScript("jquery-ui-1.10.0.custom");
OC_Util::addScript("jquery-showpassword");
OC_Util::addScript("placeholders");
OC_Util::addScript("jquery-tipsy");
OC_Util::addScript("compatibility");
- OC_Util::addScript("underscore");
+ OC_Util::addVendorScript("underscore/underscore");
OC_Util::addScript("jquery.ocdialog");
OC_Util::addScript("oc-dialogs");
OC_Util::addScript("js");
+ OC_Util::addScript("l10n");
+ OC_Util::addTranslations("core");
OC_Util::addScript("octemplate");
OC_Util::addScript("eventsource");
OC_Util::addScript("config");
@@ -345,13 +349,13 @@ class OC {
OC_Util::addScript('search', 'result');
OC_Util::addScript("oc-requesttoken");
OC_Util::addScript("apps");
- OC_Util::addScript("snap");
- OC_Util::addScript("moment");
+ OC_Util::addVendorScript('snapjs/dist/latest/snap');
+ OC_Util::addVendorScript('moment/min/moment-with-locales');
// avatars
- if (\OC_Config::getValue('enable_avatars', true) === true) {
+ if (\OC::$server->getConfig()->getSystemValue('enable_avatars', true) === true) {
\OC_Util::addScript('placeholder');
- \OC_Util::addScript('3rdparty', 'md5/md5.min');
+ \OC_Util::addVendorScript('blueimp-md5/js/md5');
\OC_Util::addScript('jquery.avatar');
\OC_Util::addScript('avatar');
}
@@ -429,7 +433,7 @@ class OC {
* @return string
*/
private static function getSessionLifeTime() {
- return OC_Config::getValue('session_lifetime', 60 * 60 * 24);
+ return \OC::$server->getConfig()->getSystemValue('session_lifetime', 60 * 60 * 24);
}
public static function loadAppClassPaths() {
@@ -444,15 +448,27 @@ class OC {
public static function init() {
// register autoloader
+ $loaderStart = microtime(true);
require_once __DIR__ . '/autoloader.php';
self::$loader = new \OC\Autoloader();
- self::$loader->registerPrefix('Doctrine\\Common', 'doctrine/common/lib');
- self::$loader->registerPrefix('Doctrine\\DBAL', 'doctrine/dbal/lib');
- self::$loader->registerPrefix('Symfony\\Component\\Routing', 'symfony/routing');
- self::$loader->registerPrefix('Symfony\\Component\\Console', 'symfony/console');
- self::$loader->registerPrefix('Patchwork', '3rdparty');
- self::$loader->registerPrefix('Pimple', '3rdparty/Pimple');
spl_autoload_register(array(self::$loader, 'load'));
+ $loaderEnd = microtime(true);
+
+ self::initPaths();
+
+ // setup 3rdparty autoloader
+ $vendorAutoLoad = OC::$THIRDPARTYROOT . '/3rdparty/autoload.php';
+ if (file_exists($vendorAutoLoad)) {
+ require_once $vendorAutoLoad;
+ } else {
+ OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
+ OC_Template::printErrorPage('Composer autoloader not found, unable to continue.');
+ }
+
+ // setup the basic server
+ self::$server = new \OC\Server(\OC::$WEBROOT);
+ \OC::$server->getEventLogger()->log('autoloader', 'Autoloader', $loaderStart, $loaderEnd);
+ \OC::$server->getEventLogger()->start('boot', 'Initialize');
// set some stuff
//ob_start();
@@ -469,7 +485,6 @@ class OC {
if (get_magic_quotes_gpc() == 1) {
ini_set('magic_quotes_runtime', 0);
}
-
//try to configure php to enable big file uploads.
//this doesn´t work always depending on the webserver and php configuration.
//Let´s try to overwrite some defaults anyways
@@ -485,19 +500,11 @@ class OC {
@ini_set('file_uploads', '50');
self::handleAuthHeaders();
- self::initPaths();
self::registerAutoloaderCache();
- OC_Util::isSetLocaleWorking();
-
- // setup 3rdparty autoloader
- $vendorAutoLoad = OC::$THIRDPARTYROOT . '/3rdparty/autoload.php';
- if (file_exists($vendorAutoLoad)) {
- require_once $vendorAutoLoad;
- }
-
// initialize intl fallback is necessary
\Patchwork\Utf8\Bootup::initIntl();
+ OC_Util::isSetLocaleWorking();
if (!defined('PHPUNIT_RUN')) {
OC\Log\ErrorHandler::setLogger(OC_Log::$object);
@@ -516,16 +523,13 @@ class OC {
stream_wrapper_register('quota', 'OC\Files\Stream\Quota');
stream_wrapper_register('oc', 'OC\Files\Stream\OC');
- // setup the basic server
- self::$server = new \OC\Server();
-
- self::initTemplateEngine();
+ \OC::$server->getEventLogger()->start('init_session', 'Initialize session');
OC_App::loadApps(array('session'));
- if (self::$CLI) {
- self::$session = new \OC\Session\Memory('');
- } else {
+ if (!self::$CLI) {
self::initSession();
}
+ \OC::$server->getEventLogger()->end('init_session');
+ self::initTemplateEngine();
self::checkConfig();
self::checkInstalled();
self::checkSSL();
@@ -549,8 +553,10 @@ class OC {
$sessionLifeTime = self::getSessionLifeTime();
@ini_set('gc_maxlifetime', (string)$sessionLifeTime);
+ $config = \OC::$server->getConfig();
+
// User and Groups
- if (!OC_Config::getValue("installed", false)) {
+ if (!$config->getSystemValue("installed", false)) {
self::$server->getSession()->set('user_id', '');
}
@@ -570,16 +576,17 @@ class OC {
self::registerLocalAddressBook();
//make sure temporary files are cleaned up
- register_shutdown_function(array('OC_Helper', 'cleanTmp'));
+ $tmpManager = \OC::$server->getTempManager();
+ register_shutdown_function(array($tmpManager, 'clean'));
- if (OC_Config::getValue('installed', false) && !self::checkUpgrade(false)) {
- if (OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax') == 'ajax') {
+ if ($config->getSystemValue('installed', false) && !self::checkUpgrade(false)) {
+ if (\OC::$server->getAppConfig()->getValue('core', 'backgroundjobs_mode', 'ajax') == 'ajax') {
OC_Util::addScript('backgroundjobs');
}
}
// Check whether the sample configuration has been copied
- if(OC_Config::getValue('copied_sample_config', false)) {
+ if($config->getSystemValue('copied_sample_config', false)) {
$l = \OC::$server->getL10N('lib');
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
@@ -600,18 +607,13 @@ class OC {
header('HTTP/1.1 400 Bad Request');
header('Status: 400 Bad Request');
- $domain = $_SERVER['SERVER_NAME'];
- // Append port to domain in case it is not
- if($_SERVER['SERVER_PORT'] !== '80' && $_SERVER['SERVER_PORT'] !== '443') {
- $domain .= ':'.$_SERVER['SERVER_PORT'];
- }
-
$tmpl = new OCP\Template('core', 'untrustedDomain', 'guest');
- $tmpl->assign('domain', $domain);
+ $tmpl->assign('domain', $_SERVER['SERVER_NAME']);
$tmpl->printPage();
exit();
}
+ \OC::$server->getEventLogger()->end('boot');
}
private static function registerLocalAddressBook() {
@@ -626,7 +628,7 @@ class OC {
* register hooks for the cache
*/
public static function registerCacheHooks() {
- if (OC_Config::getValue('installed', false) && !\OCP\Util::needUpgrade()) { //don't try to do this before we are properly setup
+ if (\OC::$server->getConfig()->getSystemValue('installed', false) && !\OCP\Util::needUpgrade()) { //don't try to do this before we are properly setup
\OCP\BackgroundJob::registerJob('OC\Cache\FileGlobalGC');
// NOTE: This will be replaced to use OCP
@@ -639,10 +641,11 @@ class OC {
* register hooks for the cache
*/
public static function registerLogRotate() {
- if (OC_Config::getValue('installed', false) && OC_Config::getValue('log_rotate_size', false) && !\OCP\Util::needUpgrade()) {
+ $config = \OC::$server->getConfig();
+ if ($config->getSystemValue('installed', false) && $config->getSystemValue('log_rotate_size', false) && !\OCP\Util::needUpgrade()) {
//don't try to do this before we are properly setup
//use custom logfile path if defined, otherwise use default of owncloud.log in data directory
- \OCP\BackgroundJob::registerJob('OC\Log\Rotate', OC_Config::getValue('logfile', OC_Config::getValue("datadirectory", OC::$SERVERROOT . '/data') . '/owncloud.log'));
+ \OCP\BackgroundJob::registerJob('OC\Log\Rotate', $config->getSystemValue('logfile', $config->getSystemValue('datadirectory', OC::$SERVERROOT . '/data') . '/owncloud.log'));
}
}
@@ -672,7 +675,7 @@ class OC {
* register hooks for sharing
*/
public static function registerShareHooks() {
- if (\OC_Config::getValue('installed')) {
+ if (\OC::$server->getConfig()->getSystemValue('installed')) {
OC_Hook::connect('OC_User', 'post_deleteUser', 'OC\Share\Hooks', 'post_deleteUser');
OC_Hook::connect('OC_User', 'post_addToGroup', 'OC\Share\Hooks', 'post_addToGroup');
OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OC\Share\Hooks', 'post_removeFromGroup');
@@ -687,7 +690,7 @@ class OC {
// generate an instanceid via \OC_Util::getInstanceId() because the
// config file may not be writable. As such, we only register a class
// loader cache if instanceid is available without trying to create one.
- $instanceId = OC_Config::getValue('instanceid', null);
+ $instanceId = \OC::$server->getConfig()->getSystemValue('instanceid', null);
if ($instanceId) {
try {
$memcacheFactory = new \OC\Memcache\Factory($instanceId);
@@ -701,13 +704,16 @@ class OC {
* Handle the request
*/
public static function handleRequest() {
+ \OC::$server->getEventLogger()->start('handle_request', 'Handle request');
+ $config = \OC::$server->getConfig();
// load all the classpaths from the enabled apps so they are available
// in the routing files of each app
OC::loadAppClassPaths();
// Check if ownCloud is installed or in maintenance (update) mode
- if (!OC_Config::getValue('installed', false)) {
- $controller = new OC\Core\Setup\Controller();
+ if (!$config->getSystemValue('installed', false)) {
+ \OC::$server->getSession()->clear();
+ $controller = new OC\Core\Setup\Controller(\OC::$server->getConfig());
$controller->run($_POST);
exit();
}
@@ -720,7 +726,7 @@ class OC {
if (!self::$CLI and (!isset($_GET["logout"]) or ($_GET["logout"] !== 'true'))) {
try {
- if (!OC_Config::getValue('maintenance', false) && !\OCP\Util::needUpgrade()) {
+ if (!$config->getSystemValue('maintenance', false) && !\OCP\Util::needUpgrade()) {
OC_App::loadApps(array('authentication'));
OC_App::loadApps(array('filesystem', 'logging'));
OC_App::loadApps();
@@ -786,7 +792,7 @@ class OC {
if (isset($_GET["logout"]) and ($_GET["logout"])) {
OC_JSON::callCheck();
if (isset($_COOKIE['oc_token'])) {
- OC_Preferences::deleteKey(OC_User::getUser(), 'login_token', $_COOKIE['oc_token']);
+ $config->deleteUserValue(OC_User::getUser(), 'login_token', $_COOKIE['oc_token']);
}
OC_User::logout();
// redirect to webroot and add slash if webroot is empty
@@ -845,12 +851,13 @@ class OC {
* @param string $user
*/
protected static function cleanupLoginTokens($user) {
- $cutoff = time() - OC_Config::getValue('remember_login_cookie_lifetime', 60 * 60 * 24 * 15);
- $tokens = OC_Preferences::getKeys($user, 'login_token');
+ $config = \OC::$server->getConfig();
+ $cutoff = time() - $config->getSystemValue('remember_login_cookie_lifetime', 60 * 60 * 24 * 15);
+ $tokens = $config->getUserKeys($user, 'login_token');
foreach ($tokens as $token) {
- $time = OC_Preferences::getValue($user, 'login_token', $token);
+ $time = $config->getUserValue($user, 'login_token', $token);
if ($time < $cutoff) {
- OC_Preferences::deleteKey($user, 'login_token', $token);
+ $config->deleteUserValue($user, 'login_token', $token);
}
}
}
diff --git a/lib/l10n/ach.js b/lib/l10n/ach.js
new file mode 100644
index 00000000000..9ac3e05d6c6
--- /dev/null
+++ b/lib/l10n/ach.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/ach.json b/lib/l10n/ach.json
new file mode 100644
index 00000000000..82a8a99d300
--- /dev/null
+++ b/lib/l10n/ach.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ach.php b/lib/l10n/ach.php
deleted file mode 100644
index 406ff5f5a26..00000000000
--- a/lib/l10n/ach.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/lib/l10n/ady.js b/lib/l10n/ady.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/ady.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ady.json b/lib/l10n/ady.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/ady.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ady.php b/lib/l10n/ady.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/ady.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/af_ZA.js b/lib/l10n/af_ZA.js
new file mode 100644
index 00000000000..af812fe1e97
--- /dev/null
+++ b/lib/l10n/af_ZA.js
@@ -0,0 +1,19 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Hulp",
+ "Personal" : "Persoonlik",
+ "Settings" : "Instellings",
+ "Users" : "Gebruikers",
+ "Admin" : "Admin",
+ "Unknown filetype" : "Onbekende leertipe",
+ "Invalid image" : "Ongeldige prent",
+ "web services under your control" : "webdienste onder jou beheer",
+ "seconds ago" : "sekondes gelede",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n ure gelede"],
+ "today" : "vandag",
+ "_%n day go_::_%n days ago_" : ["","%n dae gelede"],
+ "_%n month ago_::_%n months ago_" : ["","%n maande gelede"]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/af_ZA.json b/lib/l10n/af_ZA.json
new file mode 100644
index 00000000000..b3dedd54188
--- /dev/null
+++ b/lib/l10n/af_ZA.json
@@ -0,0 +1,17 @@
+{ "translations": {
+ "Help" : "Hulp",
+ "Personal" : "Persoonlik",
+ "Settings" : "Instellings",
+ "Users" : "Gebruikers",
+ "Admin" : "Admin",
+ "Unknown filetype" : "Onbekende leertipe",
+ "Invalid image" : "Ongeldige prent",
+ "web services under your control" : "webdienste onder jou beheer",
+ "seconds ago" : "sekondes gelede",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["","%n ure gelede"],
+ "today" : "vandag",
+ "_%n day go_::_%n days ago_" : ["","%n dae gelede"],
+ "_%n month ago_::_%n months ago_" : ["","%n maande gelede"]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/af_ZA.php b/lib/l10n/af_ZA.php
deleted file mode 100644
index 459493a61f0..00000000000
--- a/lib/l10n/af_ZA.php
+++ /dev/null
@@ -1,16 +0,0 @@
- "Hulp",
-"Personal" => "Persoonlik",
-"Settings" => "Instellings",
-"Users" => "Gebruikers",
-"Admin" => "Admin",
-"Unknown filetype" => "Onbekende leertipe",
-"Invalid image" => "Ongeldige prent",
-"web services under your control" => "webdienste onder jou beheer",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("","%n ure gelede"),
-"_%n day go_::_%n days ago_" => array("","%n dae gelede"),
-"_%n month ago_::_%n months ago_" => array("","%n maande gelede")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ak.js b/lib/l10n/ak.js
new file mode 100644
index 00000000000..27ded1c7f3b
--- /dev/null
+++ b/lib/l10n/ak.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=n > 1;");
diff --git a/lib/l10n/ak.json b/lib/l10n/ak.json
new file mode 100644
index 00000000000..a488fce3cc6
--- /dev/null
+++ b/lib/l10n/ak.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=n > 1;"
+}
\ No newline at end of file
diff --git a/lib/l10n/ak.php b/lib/l10n/ak.php
deleted file mode 100644
index 4124ad0d880..00000000000
--- a/lib/l10n/ak.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=n > 1;";
diff --git a/lib/l10n/am_ET.js b/lib/l10n/am_ET.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/am_ET.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/am_ET.json b/lib/l10n/am_ET.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/am_ET.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/am_ET.php b/lib/l10n/am_ET.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/am_ET.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ar.js b/lib/l10n/ar.js
new file mode 100644
index 00000000000..5fec5a1a818
--- /dev/null
+++ b/lib/l10n/ar.js
@@ -0,0 +1,53 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "المساعدة",
+ "Personal" : "شخصي",
+ "Settings" : "إعدادات",
+ "Users" : "المستخدمين",
+ "Admin" : "المدير",
+ "No app name specified" : "لا يوجد برنامج بهذا الاسم",
+ "Unknown filetype" : "نوع الملف غير معروف",
+ "Invalid image" : "الصورة غير صالحة",
+ "web services under your control" : "خدمات الشبكة تحت سيطرتك",
+ "App directory already exists" : "مجلد التطبيق موجود مسبقا",
+ "Can't create app folder. Please fix permissions. %s" : "لا يمكن إنشاء مجلد التطبيق. يرجى تعديل الصلاحيات. %s",
+ "No source specified when installing app" : "لم يتم تحديد المصدر عن تثبيت البرنامج",
+ "Archives of type %s are not supported" : "الأرشيفات من نوع %s غير مدعومة",
+ "App does not provide an info.xml file" : "التطبيق لا يتوفر على ملف info.xml",
+ "Application is not enabled" : "التطبيق غير مفعّل",
+ "Authentication error" : "لم يتم التأكد من الشخصية بنجاح",
+ "Token expired. Please reload page." : "انتهت صلاحية الكلمة , يرجى اعادة تحميل الصفحة",
+ "Unknown user" : "المستخدم غير معروف",
+ "%s enter the database username." : "%s ادخل اسم المستخدم الخاص بقاعدة البيانات.",
+ "%s enter the database name." : "%s ادخل اسم فاعدة البيانات",
+ "%s you may not use dots in the database name" : "%s لا يسمح لك باستخدام نقطه (.) في اسم قاعدة البيانات",
+ "MS SQL username and/or password not valid: %s" : "اسم المستخدم و/أو كلمة المرور لنظام MS SQL غير صحيح : %s",
+ "You need to enter either an existing account or the administrator." : "انت بحاجة لكتابة اسم مستخدم موجود أو حساب المدير.",
+ "MySQL/MariaDB username and/or password not valid" : "اسم مستخدم أو كلمة مرور MySQL/MariaDB غير صحيحين",
+ "DB Error: \"%s\"" : "خطأ في قواعد البيانات : \"%s\"",
+ "Offending command was: \"%s\"" : "الأمر المخالف كان : \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "مستخدم MySQL/MariaDB '%s'@'localhost' موجود مسبقا",
+ "Drop this user from MySQL/MariaDB." : "حذف هذا المستخدم من MySQL/MariaDB",
+ "Oracle connection could not be established" : "لم تنجح محاولة اتصال Oracle",
+ "Oracle username and/or password not valid" : "اسم المستخدم و/أو كلمة المرور لنظام Oracle غير صحيح",
+ "Offending command was: \"%s\", name: %s, password: %s" : "الأمر المخالف كان : \"%s\", اسم المستخدم : %s, كلمة المرور: %s",
+ "PostgreSQL username and/or password not valid" : "اسم المستخدم / أو كلمة المرور الخاصة بـPostgreSQL غير صحيحة",
+ "Set an admin username." : "اعداد اسم مستخدم للمدير",
+ "Set an admin password." : "اعداد كلمة مرور للمدير",
+ "%s shared »%s« with you" : "%s شارك »%s« معك",
+ "Could not find category \"%s\"" : "تعذر العثور على المجلد \"%s\"",
+ "seconds ago" : "منذ ثواني",
+ "_%n minute ago_::_%n minutes ago_" : ["","","","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","","","",""],
+ "today" : "اليوم",
+ "yesterday" : "يوم أمس",
+ "_%n day go_::_%n days ago_" : ["","","","","",""],
+ "last month" : "الشهر الماضي",
+ "_%n month ago_::_%n months ago_" : ["","","","","",""],
+ "last year" : "السنةالماضية",
+ "years ago" : "سنة مضت",
+ "A valid username must be provided" : "يجب ادخال اسم مستخدم صحيح",
+ "A valid password must be provided" : "يجب ادخال كلمة مرور صحيحة"
+},
+"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/lib/l10n/ar.json b/lib/l10n/ar.json
new file mode 100644
index 00000000000..64af68df990
--- /dev/null
+++ b/lib/l10n/ar.json
@@ -0,0 +1,51 @@
+{ "translations": {
+ "Help" : "المساعدة",
+ "Personal" : "شخصي",
+ "Settings" : "إعدادات",
+ "Users" : "المستخدمين",
+ "Admin" : "المدير",
+ "No app name specified" : "لا يوجد برنامج بهذا الاسم",
+ "Unknown filetype" : "نوع الملف غير معروف",
+ "Invalid image" : "الصورة غير صالحة",
+ "web services under your control" : "خدمات الشبكة تحت سيطرتك",
+ "App directory already exists" : "مجلد التطبيق موجود مسبقا",
+ "Can't create app folder. Please fix permissions. %s" : "لا يمكن إنشاء مجلد التطبيق. يرجى تعديل الصلاحيات. %s",
+ "No source specified when installing app" : "لم يتم تحديد المصدر عن تثبيت البرنامج",
+ "Archives of type %s are not supported" : "الأرشيفات من نوع %s غير مدعومة",
+ "App does not provide an info.xml file" : "التطبيق لا يتوفر على ملف info.xml",
+ "Application is not enabled" : "التطبيق غير مفعّل",
+ "Authentication error" : "لم يتم التأكد من الشخصية بنجاح",
+ "Token expired. Please reload page." : "انتهت صلاحية الكلمة , يرجى اعادة تحميل الصفحة",
+ "Unknown user" : "المستخدم غير معروف",
+ "%s enter the database username." : "%s ادخل اسم المستخدم الخاص بقاعدة البيانات.",
+ "%s enter the database name." : "%s ادخل اسم فاعدة البيانات",
+ "%s you may not use dots in the database name" : "%s لا يسمح لك باستخدام نقطه (.) في اسم قاعدة البيانات",
+ "MS SQL username and/or password not valid: %s" : "اسم المستخدم و/أو كلمة المرور لنظام MS SQL غير صحيح : %s",
+ "You need to enter either an existing account or the administrator." : "انت بحاجة لكتابة اسم مستخدم موجود أو حساب المدير.",
+ "MySQL/MariaDB username and/or password not valid" : "اسم مستخدم أو كلمة مرور MySQL/MariaDB غير صحيحين",
+ "DB Error: \"%s\"" : "خطأ في قواعد البيانات : \"%s\"",
+ "Offending command was: \"%s\"" : "الأمر المخالف كان : \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "مستخدم MySQL/MariaDB '%s'@'localhost' موجود مسبقا",
+ "Drop this user from MySQL/MariaDB." : "حذف هذا المستخدم من MySQL/MariaDB",
+ "Oracle connection could not be established" : "لم تنجح محاولة اتصال Oracle",
+ "Oracle username and/or password not valid" : "اسم المستخدم و/أو كلمة المرور لنظام Oracle غير صحيح",
+ "Offending command was: \"%s\", name: %s, password: %s" : "الأمر المخالف كان : \"%s\", اسم المستخدم : %s, كلمة المرور: %s",
+ "PostgreSQL username and/or password not valid" : "اسم المستخدم / أو كلمة المرور الخاصة بـPostgreSQL غير صحيحة",
+ "Set an admin username." : "اعداد اسم مستخدم للمدير",
+ "Set an admin password." : "اعداد كلمة مرور للمدير",
+ "%s shared »%s« with you" : "%s شارك »%s« معك",
+ "Could not find category \"%s\"" : "تعذر العثور على المجلد \"%s\"",
+ "seconds ago" : "منذ ثواني",
+ "_%n minute ago_::_%n minutes ago_" : ["","","","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","","","",""],
+ "today" : "اليوم",
+ "yesterday" : "يوم أمس",
+ "_%n day go_::_%n days ago_" : ["","","","","",""],
+ "last month" : "الشهر الماضي",
+ "_%n month ago_::_%n months ago_" : ["","","","","",""],
+ "last year" : "السنةالماضية",
+ "years ago" : "سنة مضت",
+ "A valid username must be provided" : "يجب ادخال اسم مستخدم صحيح",
+ "A valid password must be provided" : "يجب ادخال كلمة مرور صحيحة"
+},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
+}
\ No newline at end of file
diff --git a/lib/l10n/ar.php b/lib/l10n/ar.php
deleted file mode 100644
index d4bf458383e..00000000000
--- a/lib/l10n/ar.php
+++ /dev/null
@@ -1,52 +0,0 @@
- "المساعدة",
-"Personal" => "شخصي",
-"Settings" => "إعدادات",
-"Users" => "المستخدمين",
-"Admin" => "المدير",
-"No app name specified" => "لا يوجد برنامج بهذا الاسم",
-"Unknown filetype" => "نوع الملف غير معروف",
-"Invalid image" => "الصورة غير صالحة",
-"web services under your control" => "خدمات الشبكة تحت سيطرتك",
-"App directory already exists" => "مجلد التطبيق موجود مسبقا",
-"Can't create app folder. Please fix permissions. %s" => "لا يمكن إنشاء مجلد التطبيق. يرجى تعديل الصلاحيات. %s",
-"No source specified when installing app" => "لم يتم تحديد المصدر عن تثبيت البرنامج",
-"Archives of type %s are not supported" => "الأرشيفات من نوع %s غير مدعومة",
-"App does not provide an info.xml file" => "التطبيق لا يتوفر على ملف info.xml",
-"Application is not enabled" => "التطبيق غير مفعّل",
-"Authentication error" => "لم يتم التأكد من الشخصية بنجاح",
-"Token expired. Please reload page." => "انتهت صلاحية الكلمة , يرجى اعادة تحميل الصفحة",
-"Unknown user" => "المستخدم غير معروف",
-"%s enter the database username." => "%s ادخل اسم المستخدم الخاص بقاعدة البيانات.",
-"%s enter the database name." => "%s ادخل اسم فاعدة البيانات",
-"%s you may not use dots in the database name" => "%s لا يسمح لك باستخدام نقطه (.) في اسم قاعدة البيانات",
-"MS SQL username and/or password not valid: %s" => "اسم المستخدم و/أو كلمة المرور لنظام MS SQL غير صحيح : %s",
-"You need to enter either an existing account or the administrator." => "انت بحاجة لكتابة اسم مستخدم موجود أو حساب المدير.",
-"MySQL/MariaDB username and/or password not valid" => "اسم مستخدم أو كلمة مرور MySQL/MariaDB غير صحيحين",
-"DB Error: \"%s\"" => "خطأ في قواعد البيانات : \"%s\"",
-"Offending command was: \"%s\"" => "الأمر المخالف كان : \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "مستخدم MySQL/MariaDB '%s'@'localhost' موجود مسبقا",
-"Drop this user from MySQL/MariaDB." => "حذف هذا المستخدم من MySQL/MariaDB",
-"Oracle connection could not be established" => "لم تنجح محاولة اتصال Oracle",
-"Oracle username and/or password not valid" => "اسم المستخدم و/أو كلمة المرور لنظام Oracle غير صحيح",
-"Offending command was: \"%s\", name: %s, password: %s" => "الأمر المخالف كان : \"%s\", اسم المستخدم : %s, كلمة المرور: %s",
-"PostgreSQL username and/or password not valid" => "اسم المستخدم / أو كلمة المرور الخاصة بـPostgreSQL غير صحيحة",
-"Set an admin username." => "اعداد اسم مستخدم للمدير",
-"Set an admin password." => "اعداد كلمة مرور للمدير",
-"%s shared »%s« with you" => "%s شارك »%s« معك",
-"Could not find category \"%s\"" => "تعذر العثور على المجلد \"%s\"",
-"seconds ago" => "منذ ثواني",
-"_%n minute ago_::_%n minutes ago_" => array("","","","","",""),
-"_%n hour ago_::_%n hours ago_" => array("","","","","",""),
-"today" => "اليوم",
-"yesterday" => "يوم أمس",
-"_%n day go_::_%n days ago_" => array("","","","","",""),
-"last month" => "الشهر الماضي",
-"_%n month ago_::_%n months ago_" => array("","","","","",""),
-"last year" => "السنةالماضية",
-"years ago" => "سنة مضت",
-"A valid username must be provided" => "يجب ادخال اسم مستخدم صحيح",
-"A valid password must be provided" => "يجب ادخال كلمة مرور صحيحة"
-);
-$PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;";
diff --git a/lib/l10n/ast.js b/lib/l10n/ast.js
new file mode 100644
index 00000000000..7c1dd6ed304
--- /dev/null
+++ b/lib/l10n/ast.js
@@ -0,0 +1,124 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "¡Nun pue escribise nel direutoriu \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Davezu esto pue iguase dándo-y al sirvidor web accesu d'escritura al direutoriu de configuración",
+ "See %s" : "Mira %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Davezu esto pue iguase %sdándo-y al sirvidor web accesu d'escritura al direutoriu de configuración%s.",
+ "Sample configuration detected" : "Configuración d'amuesa detectada",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Detectose que la configuración d'amuesa copiose. Esto pue encaboxar la instalación y dexala ensín soporte. Llee la documentación enantes de facer cambéos en config.php",
+ "Help" : "Ayuda",
+ "Personal" : "Personal",
+ "Settings" : "Axustes",
+ "Users" : "Usuarios",
+ "Admin" : "Almin",
+ "Recommended" : "Recomendáu",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "L'aplicación \\\"%s\\\" nun pue instalase porque nun ye compatible con esta versión d'ownCloud",
+ "No app name specified" : "Nun s'especificó nome de l'aplicación",
+ "Unknown filetype" : "Triba de ficheru desconocida",
+ "Invalid image" : "Imaxe inválida",
+ "web services under your control" : "servicios web baxo'l to control",
+ "App directory already exists" : "El direutoriu de l'aplicación yá esiste",
+ "Can't create app folder. Please fix permissions. %s" : "Nun pue crease la carpeta de l'aplicación. Por favor, igua los permisos. %s",
+ "No source specified when installing app" : "Nun s'especificó nenguna fonte al instalar app",
+ "No href specified when installing app from http" : "Nun s'especificó href al instalar la app dende http",
+ "No path specified when installing app from local file" : "Nun s'especificó camín dende un ficheru llocal al instalar l'aplicación",
+ "Archives of type %s are not supported" : "Los ficheros de triba %s nun tán sofitaos",
+ "Failed to open archive when installing app" : "Falló al abrir el ficheru al instalar l'aplicación",
+ "App does not provide an info.xml file" : "L'aplicación nun apurre un ficheru info.xml",
+ "App can't be installed because of not allowed code in the App" : "Nun pue instalase l'aplicación por causa d'un códigu non permitíu na App",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Nun pue instalase l'aplicación porque nun ye compatible con esta versión d'ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "L'aplicación nun pue instalase porque contién la etiqueta true que nun ta permitida p'aplicaciones non distribuyíes",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Nun pue instalase l'aplicación porque'l númberu de versión en info.xml/version nun ye'l mesmu que la versión qu'apaez na app store",
+ "Application is not enabled" : "L'aplicación nun ta habilitada",
+ "Authentication error" : "Fallu d'autenticación",
+ "Token expired. Please reload page." : "Token caducáu. Recarga la páxina.",
+ "Unknown user" : "Usuariu desconocíu",
+ "%s enter the database username." : "%s introducir l'usuariu de la base de datos.",
+ "%s enter the database name." : "%s introducir nome de la base de datos.",
+ "%s you may not use dots in the database name" : "%s nun pues usar puntos nel nome de la base de datos",
+ "MS SQL username and/or password not valid: %s" : "Nome d'usuariu o contraseña MS SQL non válidos: %s",
+ "You need to enter either an existing account or the administrator." : "Tienes d'inxertar una cuenta esistente o la del alministrador.",
+ "MySQL/MariaDB username and/or password not valid" : "Nome d'usuariu o contraseña MySQL/MariaDB non válidos",
+ "DB Error: \"%s\"" : "Fallu BD: \"%s\"",
+ "Offending command was: \"%s\"" : "Comandu infractor: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "usuariu MySQL/MariaDB '%s'@'localhost' yá esiste.",
+ "Drop this user from MySQL/MariaDB" : "Desaniciar esti usuariu de MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Yá esiste l'usuariu de MySQL/MariaDB '%s'@'%%'",
+ "Drop this user from MySQL/MariaDB." : "Desaniciar esti usuariu de MySQL/MariaDB",
+ "Oracle connection could not be established" : "Nun pudo afitase la conexón d'Oracle",
+ "Oracle username and/or password not valid" : "Nome d'usuariu o contraseña d'Oracle non válidos",
+ "Offending command was: \"%s\", name: %s, password: %s" : "El comandu infractor foi: \"%s\", nome: %s, contraseña: %s",
+ "PostgreSQL username and/or password not valid" : "Nome d'usuariu o contraseña PostgreSQL non válidos",
+ "Set an admin username." : "Afitar nome d'usuariu p'almin",
+ "Set an admin password." : "Afitar contraseña p'almin",
+ "Can't create or write into the data directory %s" : "Nun pue crease o escribir dientro los datos del direutoriu %s",
+ "%s shared »%s« with you" : "%s compartió »%s« contigo",
+ "Sharing %s failed, because the file does not exist" : "Compartir %s falló, porque'l ficheru nun esiste",
+ "You are not allowed to share %s" : "Nun tienes permisu pa compartir %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Compartir %s falló, yá que l'usuariu %s ye'l dueñu del elementu",
+ "Sharing %s failed, because the user %s does not exist" : "Compartir %s falló, yá que l'usuariu %s nun esiste",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Compartir %s falló, yá que l'usuariu %s nun ye miembru de nengún de los grupos de los que ye miembru %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Compartir %s falló, porque esti elementu yá ta compartiéndose con %s",
+ "Sharing %s failed, because the group %s does not exist" : "Compartir %s falló, porque'l grupu %s nun esiste",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Compartir %s falló, porque %s nun ye miembru del grupu %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Necesites apurrir una contraseña pa crear un enllaz públicu, namái tan permitíos los enllaces protexíos",
+ "Sharing %s failed, because sharing with links is not allowed" : "Compartir %s falló, porque nun se permite compartir con enllaces",
+ "Share type %s is not valid for %s" : "La triba de compartición %s nun ye válida pa %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Falló dar permisos a %s, porque los permisos son mayores que los otorgaos a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Falló dar permisos a %s, porque l'elementu nun s'atopó",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nun pue afitase la data de caducidá. Ficheros compartíos nun puen caducar dempués de %s de compartise",
+ "Cannot set expiration date. Expiration date is in the past" : "Nun pue afitase la data d'espiración. La data d'espiración ta nel pasáu",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El motor compartíu %s tien d'implementar la interfaz OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Nun s'alcontró'l botón de compartición %s",
+ "Sharing backend for %s not found" : "Nun s'alcontró'l botón de partición pa %s",
+ "Sharing %s failed, because the user %s is the original sharer" : "Compartir %s falló, yá que l'usuariu %s ye'l compartidor orixinal",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Compartir %s falló, porque los permisos perpasen los otorgaos a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Compartir %s falló, porque nun se permite la re-compartición",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartir %s falló porque'l motor compartíu pa %s podría nun atopar el so orixe",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Compartir %s falló, yá que'l ficheru nun pudo atopase na caché de ficheru",
+ "Could not find category \"%s\"" : "Nun pudo alcontrase la estaya \"%s.\"",
+ "seconds ago" : "hai segundos",
+ "_%n minute ago_::_%n minutes ago_" : ["hai %n minutu","hai %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n hores"],
+ "today" : "güei",
+ "yesterday" : "ayeri",
+ "_%n day go_::_%n days ago_" : ["hai %n día","hai %n díes"],
+ "last month" : "mes caberu",
+ "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
+ "last year" : "añu caberu",
+ "years ago" : "hai años",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Namái tan permitíos los siguientes caráuteres nun nome d'usuariu: \"a-z\", \"A-Z\", \"0-9\", y \"_.@-\"",
+ "A valid username must be provided" : "Tien d'apurrise un nome d'usuariu válidu",
+ "A valid password must be provided" : "Tien d'apurrise una contraseña válida",
+ "The username is already being used" : "El nome d'usuariu yá ta usándose",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nun hai controladores de bases de datos (sqlite, mysql, o postgresql)",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Davezu los permisos puen iguase %sdándo-y al sirvidor web accesu d'escritura al direutoriu raigañu%s.",
+ "Cannot write into \"config\" directory" : "Nun pue escribise nel direutoriu \"config\"",
+ "Cannot write into \"apps\" directory" : "Nun pue escribise nel direutoriu \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto pue iguase %sdando permisos d'escritura al sirvidor Web nel direutoriu%s d'apps o deshabilitando la tienda d'apps nel ficheru de configuración.",
+ "Cannot create \"data\" directory (%s)" : "Nun pue crease'l direutoriu \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Esto pue iguase davezu dándo-y accesu d'escritura al direutoriu raigañu .",
+ "Setting locale to %s failed" : "Falló l'activación del idioma %s",
+ "Please install one of these locales on your system and restart your webserver." : "Instala ún d'estos locales nel to sistema y reanicia'l sirvidor web",
+ "Please ask your server administrator to install the module." : "Por favor, entrúga-y al to alministrador del sirvidor pa instalar el módulu.",
+ "PHP module %s not installed." : "Nun ta instaláu'l módulu PHP %s",
+ "PHP %s or higher is required." : "Necesítase PHP %s o superior",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, entrúga-y al to alministrador del sirvidor p'anovar PHP a la cabera versión. La to versión PHP nun ta sofitada por ownCloud y la comunidá PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Ta habilitáu'l mou seguru de PHP. ownCloud requier que tea deshabilitáu pa furrular afayadízamente",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Mou seguru de PHP ye un entornu en desusu que tien de desactivase. Contauta col alministrador del sirvidor pa desactivalu en php.ini o na configuración del sirvidor web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Tán habilitaes les Magic Quotes. ownCloud requier que les deshabilites pa funcionar afayadizamente.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ye un entornu en desusu y tien de desactivase. Consulta col alministrador del sirvidor pa desactivalu en php.ini o na configuración del sirvidor web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Instaláronse los módulos PHP, ¿pero tán entá llistaos como faltantes?",
+ "Please ask your server administrator to restart the web server." : "Por favor, entruga al to alministrador pa reaniciar el sirvidor web.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 requeríu",
+ "Please upgrade your database version" : "Por favor, anueva la versión de la to base de datos",
+ "Error occurred while checking PostgreSQL version" : "Asocedió un fallu mientres se comprobaba la versión de PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, asegúrate que tienes PostgreSQL >= 9 o comprueba los rexistros pa más información tocante al fallu",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor, camuda los permisos a 0770 pa que'l direutoriu nun pueda llistase por otros usuarios.",
+ "Data directory (%s) is readable by other users" : "El direutoriu de datos (%s) ye llexible por otros usuarios",
+ "Data directory (%s) is invalid" : "Ye inválidu'l direutoriu de datos (%s)",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifica que'l direutoriu de datos contién un ficheru \".ocdata\" nel direutoriu raigañu.",
+ "Could not obtain lock type %d on \"%s\"." : "Nun pudo facese'l bloquéu %d en \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ast.json b/lib/l10n/ast.json
new file mode 100644
index 00000000000..8585975ac12
--- /dev/null
+++ b/lib/l10n/ast.json
@@ -0,0 +1,122 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "¡Nun pue escribise nel direutoriu \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Davezu esto pue iguase dándo-y al sirvidor web accesu d'escritura al direutoriu de configuración",
+ "See %s" : "Mira %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Davezu esto pue iguase %sdándo-y al sirvidor web accesu d'escritura al direutoriu de configuración%s.",
+ "Sample configuration detected" : "Configuración d'amuesa detectada",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Detectose que la configuración d'amuesa copiose. Esto pue encaboxar la instalación y dexala ensín soporte. Llee la documentación enantes de facer cambéos en config.php",
+ "Help" : "Ayuda",
+ "Personal" : "Personal",
+ "Settings" : "Axustes",
+ "Users" : "Usuarios",
+ "Admin" : "Almin",
+ "Recommended" : "Recomendáu",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "L'aplicación \\\"%s\\\" nun pue instalase porque nun ye compatible con esta versión d'ownCloud",
+ "No app name specified" : "Nun s'especificó nome de l'aplicación",
+ "Unknown filetype" : "Triba de ficheru desconocida",
+ "Invalid image" : "Imaxe inválida",
+ "web services under your control" : "servicios web baxo'l to control",
+ "App directory already exists" : "El direutoriu de l'aplicación yá esiste",
+ "Can't create app folder. Please fix permissions. %s" : "Nun pue crease la carpeta de l'aplicación. Por favor, igua los permisos. %s",
+ "No source specified when installing app" : "Nun s'especificó nenguna fonte al instalar app",
+ "No href specified when installing app from http" : "Nun s'especificó href al instalar la app dende http",
+ "No path specified when installing app from local file" : "Nun s'especificó camín dende un ficheru llocal al instalar l'aplicación",
+ "Archives of type %s are not supported" : "Los ficheros de triba %s nun tán sofitaos",
+ "Failed to open archive when installing app" : "Falló al abrir el ficheru al instalar l'aplicación",
+ "App does not provide an info.xml file" : "L'aplicación nun apurre un ficheru info.xml",
+ "App can't be installed because of not allowed code in the App" : "Nun pue instalase l'aplicación por causa d'un códigu non permitíu na App",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Nun pue instalase l'aplicación porque nun ye compatible con esta versión d'ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "L'aplicación nun pue instalase porque contién la etiqueta true que nun ta permitida p'aplicaciones non distribuyíes",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Nun pue instalase l'aplicación porque'l númberu de versión en info.xml/version nun ye'l mesmu que la versión qu'apaez na app store",
+ "Application is not enabled" : "L'aplicación nun ta habilitada",
+ "Authentication error" : "Fallu d'autenticación",
+ "Token expired. Please reload page." : "Token caducáu. Recarga la páxina.",
+ "Unknown user" : "Usuariu desconocíu",
+ "%s enter the database username." : "%s introducir l'usuariu de la base de datos.",
+ "%s enter the database name." : "%s introducir nome de la base de datos.",
+ "%s you may not use dots in the database name" : "%s nun pues usar puntos nel nome de la base de datos",
+ "MS SQL username and/or password not valid: %s" : "Nome d'usuariu o contraseña MS SQL non válidos: %s",
+ "You need to enter either an existing account or the administrator." : "Tienes d'inxertar una cuenta esistente o la del alministrador.",
+ "MySQL/MariaDB username and/or password not valid" : "Nome d'usuariu o contraseña MySQL/MariaDB non válidos",
+ "DB Error: \"%s\"" : "Fallu BD: \"%s\"",
+ "Offending command was: \"%s\"" : "Comandu infractor: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "usuariu MySQL/MariaDB '%s'@'localhost' yá esiste.",
+ "Drop this user from MySQL/MariaDB" : "Desaniciar esti usuariu de MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Yá esiste l'usuariu de MySQL/MariaDB '%s'@'%%'",
+ "Drop this user from MySQL/MariaDB." : "Desaniciar esti usuariu de MySQL/MariaDB",
+ "Oracle connection could not be established" : "Nun pudo afitase la conexón d'Oracle",
+ "Oracle username and/or password not valid" : "Nome d'usuariu o contraseña d'Oracle non válidos",
+ "Offending command was: \"%s\", name: %s, password: %s" : "El comandu infractor foi: \"%s\", nome: %s, contraseña: %s",
+ "PostgreSQL username and/or password not valid" : "Nome d'usuariu o contraseña PostgreSQL non válidos",
+ "Set an admin username." : "Afitar nome d'usuariu p'almin",
+ "Set an admin password." : "Afitar contraseña p'almin",
+ "Can't create or write into the data directory %s" : "Nun pue crease o escribir dientro los datos del direutoriu %s",
+ "%s shared »%s« with you" : "%s compartió »%s« contigo",
+ "Sharing %s failed, because the file does not exist" : "Compartir %s falló, porque'l ficheru nun esiste",
+ "You are not allowed to share %s" : "Nun tienes permisu pa compartir %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Compartir %s falló, yá que l'usuariu %s ye'l dueñu del elementu",
+ "Sharing %s failed, because the user %s does not exist" : "Compartir %s falló, yá que l'usuariu %s nun esiste",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Compartir %s falló, yá que l'usuariu %s nun ye miembru de nengún de los grupos de los que ye miembru %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Compartir %s falló, porque esti elementu yá ta compartiéndose con %s",
+ "Sharing %s failed, because the group %s does not exist" : "Compartir %s falló, porque'l grupu %s nun esiste",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Compartir %s falló, porque %s nun ye miembru del grupu %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Necesites apurrir una contraseña pa crear un enllaz públicu, namái tan permitíos los enllaces protexíos",
+ "Sharing %s failed, because sharing with links is not allowed" : "Compartir %s falló, porque nun se permite compartir con enllaces",
+ "Share type %s is not valid for %s" : "La triba de compartición %s nun ye válida pa %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Falló dar permisos a %s, porque los permisos son mayores que los otorgaos a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Falló dar permisos a %s, porque l'elementu nun s'atopó",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nun pue afitase la data de caducidá. Ficheros compartíos nun puen caducar dempués de %s de compartise",
+ "Cannot set expiration date. Expiration date is in the past" : "Nun pue afitase la data d'espiración. La data d'espiración ta nel pasáu",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El motor compartíu %s tien d'implementar la interfaz OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Nun s'alcontró'l botón de compartición %s",
+ "Sharing backend for %s not found" : "Nun s'alcontró'l botón de partición pa %s",
+ "Sharing %s failed, because the user %s is the original sharer" : "Compartir %s falló, yá que l'usuariu %s ye'l compartidor orixinal",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Compartir %s falló, porque los permisos perpasen los otorgaos a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Compartir %s falló, porque nun se permite la re-compartición",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartir %s falló porque'l motor compartíu pa %s podría nun atopar el so orixe",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Compartir %s falló, yá que'l ficheru nun pudo atopase na caché de ficheru",
+ "Could not find category \"%s\"" : "Nun pudo alcontrase la estaya \"%s.\"",
+ "seconds ago" : "hai segundos",
+ "_%n minute ago_::_%n minutes ago_" : ["hai %n minutu","hai %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n hores"],
+ "today" : "güei",
+ "yesterday" : "ayeri",
+ "_%n day go_::_%n days ago_" : ["hai %n día","hai %n díes"],
+ "last month" : "mes caberu",
+ "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
+ "last year" : "añu caberu",
+ "years ago" : "hai años",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Namái tan permitíos los siguientes caráuteres nun nome d'usuariu: \"a-z\", \"A-Z\", \"0-9\", y \"_.@-\"",
+ "A valid username must be provided" : "Tien d'apurrise un nome d'usuariu válidu",
+ "A valid password must be provided" : "Tien d'apurrise una contraseña válida",
+ "The username is already being used" : "El nome d'usuariu yá ta usándose",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nun hai controladores de bases de datos (sqlite, mysql, o postgresql)",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Davezu los permisos puen iguase %sdándo-y al sirvidor web accesu d'escritura al direutoriu raigañu%s.",
+ "Cannot write into \"config\" directory" : "Nun pue escribise nel direutoriu \"config\"",
+ "Cannot write into \"apps\" directory" : "Nun pue escribise nel direutoriu \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto pue iguase %sdando permisos d'escritura al sirvidor Web nel direutoriu%s d'apps o deshabilitando la tienda d'apps nel ficheru de configuración.",
+ "Cannot create \"data\" directory (%s)" : "Nun pue crease'l direutoriu \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Esto pue iguase davezu dándo-y accesu d'escritura al direutoriu raigañu .",
+ "Setting locale to %s failed" : "Falló l'activación del idioma %s",
+ "Please install one of these locales on your system and restart your webserver." : "Instala ún d'estos locales nel to sistema y reanicia'l sirvidor web",
+ "Please ask your server administrator to install the module." : "Por favor, entrúga-y al to alministrador del sirvidor pa instalar el módulu.",
+ "PHP module %s not installed." : "Nun ta instaláu'l módulu PHP %s",
+ "PHP %s or higher is required." : "Necesítase PHP %s o superior",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, entrúga-y al to alministrador del sirvidor p'anovar PHP a la cabera versión. La to versión PHP nun ta sofitada por ownCloud y la comunidá PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Ta habilitáu'l mou seguru de PHP. ownCloud requier que tea deshabilitáu pa furrular afayadízamente",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Mou seguru de PHP ye un entornu en desusu que tien de desactivase. Contauta col alministrador del sirvidor pa desactivalu en php.ini o na configuración del sirvidor web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Tán habilitaes les Magic Quotes. ownCloud requier que les deshabilites pa funcionar afayadizamente.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ye un entornu en desusu y tien de desactivase. Consulta col alministrador del sirvidor pa desactivalu en php.ini o na configuración del sirvidor web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Instaláronse los módulos PHP, ¿pero tán entá llistaos como faltantes?",
+ "Please ask your server administrator to restart the web server." : "Por favor, entruga al to alministrador pa reaniciar el sirvidor web.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 requeríu",
+ "Please upgrade your database version" : "Por favor, anueva la versión de la to base de datos",
+ "Error occurred while checking PostgreSQL version" : "Asocedió un fallu mientres se comprobaba la versión de PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, asegúrate que tienes PostgreSQL >= 9 o comprueba los rexistros pa más información tocante al fallu",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor, camuda los permisos a 0770 pa que'l direutoriu nun pueda llistase por otros usuarios.",
+ "Data directory (%s) is readable by other users" : "El direutoriu de datos (%s) ye llexible por otros usuarios",
+ "Data directory (%s) is invalid" : "Ye inválidu'l direutoriu de datos (%s)",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifica que'l direutoriu de datos contién un ficheru \".ocdata\" nel direutoriu raigañu.",
+ "Could not obtain lock type %d on \"%s\"." : "Nun pudo facese'l bloquéu %d en \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ast.php b/lib/l10n/ast.php
deleted file mode 100644
index 5209495a970..00000000000
--- a/lib/l10n/ast.php
+++ /dev/null
@@ -1,118 +0,0 @@
- "¡Nun pue escribise nel direutoriu \"config\"!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Davezu esto pue iguase dándo-y al sirvidor web accesu d'escritura al direutoriu de configuración",
-"See %s" => "Mira %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Davezu esto pue iguase %sdándo-y al sirvidor web accesu d'escritura al direutoriu de configuración%s.",
-"Help" => "Ayuda",
-"Personal" => "Personal",
-"Settings" => "Axustes",
-"Users" => "Usuarios",
-"Admin" => "Almin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "L'aplicación \\\"%s\\\" nun pue instalase porque nun ye compatible con esta versión d'ownCloud",
-"No app name specified" => "Nun s'especificó nome de l'aplicación",
-"Unknown filetype" => "Triba de ficheru desconocida",
-"Invalid image" => "Imaxe inválida",
-"web services under your control" => "servicios web baxo'l to control",
-"App directory already exists" => "El direutoriu de l'aplicación yá esiste",
-"Can't create app folder. Please fix permissions. %s" => "Nun pue crease la carpeta de l'aplicación. Por favor, igua los permisos. %s",
-"No source specified when installing app" => "Nun s'especificó nenguna fonte al instalar app",
-"No href specified when installing app from http" => "Nun s'especificó href al instalar la app dende http",
-"No path specified when installing app from local file" => "Nun s'especificó camín dende un ficheru llocal al instalar l'aplicación",
-"Archives of type %s are not supported" => "Los ficheros de triba %s nun tán sofitaos",
-"Failed to open archive when installing app" => "Falló al abrir el ficheru al instalar l'aplicación",
-"App does not provide an info.xml file" => "L'aplicación nun apurre un ficheru info.xml",
-"App can't be installed because of not allowed code in the App" => "Nun pue instalase l'aplicación por causa d'un códigu non permitíu na App",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Nun pue instalase l'aplicación porque nun ye compatible con esta versión d'ownCloud.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "L'aplicación nun pue instalase porque contién la etiqueta true que nun ta permitida p'aplicaciones non distribuyíes",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Nun pue instalase l'aplicación porque'l númberu de versión en info.xml/version nun ye'l mesmu que la versión qu'apaez na app store",
-"Application is not enabled" => "L'aplicación nun ta habilitada",
-"Authentication error" => "Fallu d'autenticación",
-"Token expired. Please reload page." => "Token caducáu. Recarga la páxina.",
-"Unknown user" => "Usuariu desconocíu",
-"%s enter the database username." => "%s introducir l'usuariu de la base de datos.",
-"%s enter the database name." => "%s introducir nome de la base de datos.",
-"%s you may not use dots in the database name" => "%s nun pues usar puntos nel nome de la base de datos",
-"MS SQL username and/or password not valid: %s" => "Nome d'usuariu o contraseña MS SQL non válidos: %s",
-"You need to enter either an existing account or the administrator." => "Tienes d'inxertar una cuenta esistente o la del alministrador.",
-"MySQL/MariaDB username and/or password not valid" => "Nome d'usuariu o contraseña MySQL/MariaDB non válidos",
-"DB Error: \"%s\"" => "Fallu BD: \"%s\"",
-"Offending command was: \"%s\"" => "Comandu infractor: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "usuariu MySQL/MariaDB '%s'@'localhost' yá esiste.",
-"Drop this user from MySQL/MariaDB" => "Desaniciar esti usuariu de MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "Yá esiste l'usuariu de MySQL/MariaDB '%s'@'%%'",
-"Drop this user from MySQL/MariaDB." => "Desaniciar esti usuariu de MySQL/MariaDB",
-"Oracle connection could not be established" => "Nun pudo afitase la conexón d'Oracle",
-"Oracle username and/or password not valid" => "Nome d'usuariu o contraseña d'Oracle non válidos",
-"Offending command was: \"%s\", name: %s, password: %s" => "El comandu infractor foi: \"%s\", nome: %s, contraseña: %s",
-"PostgreSQL username and/or password not valid" => "Nome d'usuariu o contraseña PostgreSQL non válidos",
-"Set an admin username." => "Afitar nome d'usuariu p'almin",
-"Set an admin password." => "Afitar contraseña p'almin",
-"%s shared »%s« with you" => "%s compartió »%s« contigo",
-"Sharing %s failed, because the file does not exist" => "Compartir %s falló, porque'l ficheru nun esiste",
-"You are not allowed to share %s" => "Nun tienes permisu pa compartir %s",
-"Sharing %s failed, because the user %s is the item owner" => "Compartir %s falló, yá que l'usuariu %s ye'l dueñu del elementu",
-"Sharing %s failed, because the user %s does not exist" => "Compartir %s falló, yá que l'usuariu %s nun esiste",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Compartir %s falló, yá que l'usuariu %s nun ye miembru de nengún de los grupos de los que ye miembru %s",
-"Sharing %s failed, because this item is already shared with %s" => "Compartir %s falló, porque esti elementu yá ta compartiéndose con %s",
-"Sharing %s failed, because the group %s does not exist" => "Compartir %s falló, porque'l grupu %s nun esiste",
-"Sharing %s failed, because %s is not a member of the group %s" => "Compartir %s falló, porque %s nun ye miembru del grupu %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Necesites apurrir una contraseña pa crear un enllaz públicu, namái tan permitíos los enllaces protexíos",
-"Sharing %s failed, because sharing with links is not allowed" => "Compartir %s falló, porque nun se permite compartir con enllaces",
-"Share type %s is not valid for %s" => "La triba de compartición %s nun ye válida pa %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Falló dar permisos a %s, porque los permisos son mayores que los otorgaos a %s",
-"Setting permissions for %s failed, because the item was not found" => "Falló dar permisos a %s, porque l'elementu nun s'atopó",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Nun pue afitase la data de caducidá. Ficheros compartíos nun puen caducar dempués de %s de compartise",
-"Cannot set expiration date. Expiration date is in the past" => "Nun pue afitase la data d'espiración. La data d'espiración ta nel pasáu",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "El motor compartíu %s tien d'implementar la interfaz OCP\\Share_Backend",
-"Sharing backend %s not found" => "Nun s'alcontró'l botón de compartición %s",
-"Sharing backend for %s not found" => "Nun s'alcontró'l botón de partición pa %s",
-"Sharing %s failed, because the user %s is the original sharer" => "Compartir %s falló, yá que l'usuariu %s ye'l compartidor orixinal",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Compartir %s falló, porque los permisos perpasen los otorgaos a %s",
-"Sharing %s failed, because resharing is not allowed" => "Compartir %s falló, porque nun se permite la re-compartición",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Compartir %s falló porque'l motor compartíu pa %s podría nun atopar el so orixe",
-"Sharing %s failed, because the file could not be found in the file cache" => "Compartir %s falló, yá que'l ficheru nun pudo atopase na caché de ficheru",
-"Could not find category \"%s\"" => "Nun pudo alcontrase la estaya \"%s.\"",
-"seconds ago" => "hai segundos",
-"_%n minute ago_::_%n minutes ago_" => array("hai %n minutu","hai %n minutos"),
-"_%n hour ago_::_%n hours ago_" => array("hai %n hora","hai %n hores"),
-"today" => "güei",
-"yesterday" => "ayeri",
-"_%n day go_::_%n days ago_" => array("hai %n día","hai %n díes"),
-"last month" => "mes caberu",
-"_%n month ago_::_%n months ago_" => array("hai %n mes","hai %n meses"),
-"last year" => "añu caberu",
-"years ago" => "hai años",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Namái tan permitíos los siguientes caráuteres nun nome d'usuariu: \"a-z\", \"A-Z\", \"0-9\", y \"_.@-\"",
-"A valid username must be provided" => "Tien d'apurrise un nome d'usuariu válidu",
-"A valid password must be provided" => "Tien d'apurrise una contraseña válida",
-"The username is already being used" => "El nome d'usuariu yá ta usándose",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Nun hai controladores de bases de datos (sqlite, mysql, o postgresql)",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Davezu los permisos puen iguase %sdándo-y al sirvidor web accesu d'escritura al direutoriu raigañu%s.",
-"Cannot write into \"config\" directory" => "Nun pue escribise nel direutoriu \"config\"",
-"Cannot write into \"apps\" directory" => "Nun pue escribise nel direutoriu \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Esto pue iguase %sdando permisos d'escritura al sirvidor Web nel direutoriu%s d'apps o deshabilitando la tienda d'apps nel ficheru de configuración.",
-"Cannot create \"data\" directory (%s)" => "Nun pue crease'l direutoriu \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Esto pue iguase davezu dándo-y accesu d'escritura al direutoriu raigañu .",
-"Setting locale to %s failed" => "Falló l'activación del idioma %s",
-"Please ask your server administrator to install the module." => "Por favor, entrúga-y al to alministrador del sirvidor pa instalar el módulu.",
-"PHP module %s not installed." => "Nun ta instaláu'l módulu PHP %s",
-"PHP %s or higher is required." => "Necesítase PHP %s o superior",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Por favor, entrúga-y al to alministrador del sirvidor p'anovar PHP a la cabera versión. La to versión PHP nun ta sofitada por ownCloud y la comunidá PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "Ta habilitáu'l mou seguru de PHP. ownCloud requier que tea deshabilitáu pa furrular afayadízamente",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Mou seguru de PHP ye un entornu en desusu que tien de desactivase. Contauta col alministrador del sirvidor pa desactivalu en php.ini o na configuración del sirvidor web.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Tán habilitaes les Magic Quotes. ownCloud requier que les deshabilites pa funcionar afayadizamente.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes ye un entornu en desusu y tien de desactivase. Consulta col alministrador del sirvidor pa desactivalu en php.ini o na configuración del sirvidor web.",
-"PHP modules have been installed, but they are still listed as missing?" => "Instaláronse los módulos PHP, ¿pero tán entá llistaos como faltantes?",
-"Please ask your server administrator to restart the web server." => "Por favor, entruga al to alministrador pa reaniciar el sirvidor web.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 requeríu",
-"Please upgrade your database version" => "Por favor, anueva la versión de la to base de datos",
-"Error occurred while checking PostgreSQL version" => "Asocedió un fallu mientres se comprobaba la versión de PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Por favor, asegúrate que tienes PostgreSQL >= 9 o comprueba los rexistros pa más información tocante al fallu",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Por favor, camuda los permisos a 0770 pa que'l direutoriu nun pueda llistase por otros usuarios.",
-"Data directory (%s) is readable by other users" => "El direutoriu de datos (%s) ye llexible por otros usuarios",
-"Data directory (%s) is invalid" => "Ye inválidu'l direutoriu de datos (%s)",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Verifica que'l direutoriu de datos contién un ficheru \".ocdata\" nel direutoriu raigañu.",
-"Could not obtain lock type %d on \"%s\"." => "Nun pudo facese'l bloquéu %d en \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/az.js b/lib/l10n/az.js
new file mode 100644
index 00000000000..700c3353556
--- /dev/null
+++ b/lib/l10n/az.js
@@ -0,0 +1,45 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "\"configurasiya\" direktoriyasının daxilində yazmaq mümkün deyil",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Adətən tez həll etmək üçün WEB serverdə yazma yetkisi verilir",
+ "See %s" : "Bax %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Bu adətən %s config qovluğuna web server üçün yazma yetkisi verdikdə, %s tərəfindən fix edilə bilir. ",
+ "Sample configuration detected" : "Konfiqurasiya nüsxəsi təyin edildi",
+ "Help" : "Kömək",
+ "Personal" : "Şəxsi",
+ "Settings" : "Quraşdırmalar",
+ "Users" : "İstifadəçilər",
+ "Admin" : "İnzibatçı",
+ "No app name specified" : "Proqram adı təyin edilməyib",
+ "Unknown filetype" : "Fayl tipi bəlli deyil.",
+ "Invalid image" : "Yalnış şəkil",
+ "App directory already exists" : "Proqram təminatı qovluğu artıq mövcuddur.",
+ "Can't create app folder. Please fix permissions. %s" : "Proqram təminatı qovluğunu yaratmaq mümkün olmadı. Xahiş edilir yetkiləri düzgün təyin edəsiniz. %s",
+ "Application is not enabled" : "Proqram təminatı aktiv edilməyib",
+ "Authentication error" : "Təyinat metodikası",
+ "Token expired. Please reload page." : "Token vaxtı bitib. Xahiş olunur səhifəni yenidən yükləyəsiniz.",
+ "Unknown user" : "Istifadəçi tanınmır ",
+ "%s enter the database username." : "Verilənlər bazası istifadəçi adını %s daxil et.",
+ "%s enter the database name." : "Verilənlər bazası adını %s daxil et.",
+ "MS SQL username and/or password not valid: %s" : "MS SQL istifadəçi adı və/ya şifrəsi düzgün deyil : %s",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB istifadəçi adı və/ya şifrəsi düzgün deyil :",
+ "DB Error: \"%s\"" : "DB səhvi: \"%s\"",
+ "Drop this user from MySQL/MariaDB" : "Bu istifadəçini MySQL/MariaDB-dən sil",
+ "Drop this user from MySQL/MariaDB." : "Bu istifadəçini MySQL/MariaDB-dən sil.",
+ "Oracle connection could not be established" : "Oracle qoşulması alınmır",
+ "Oracle username and/or password not valid" : "Oracle istifadəçi adı və/ya şifrəsi düzgün deyil",
+ "Set an admin username." : "İnzibatçı istifadəçi adını təyin et.",
+ "Set an admin password." : "İnzibatçı şifrəsini təyin et.",
+ "%s shared »%s« with you" : "%s yayımlandı »%s« sizinlə",
+ "Sharing %s failed, because the file does not exist" : "%s yayımlanmasında səhv baş verdi ona görə ki, fayl mövcud deyil.",
+ "You are not allowed to share %s" : "%s-in yayimlanmasına sizə izin verilmir",
+ "Share type %s is not valid for %s" : "Yayımlanma tipi %s etibarlı deyil %s üçün",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "A valid username must be provided" : "Düzgün istifadəçi adı daxil edilməlidir",
+ "A valid password must be provided" : "Düzgün şifrə daxil edilməlidir"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/az.json b/lib/l10n/az.json
new file mode 100644
index 00000000000..b0348a52ef3
--- /dev/null
+++ b/lib/l10n/az.json
@@ -0,0 +1,43 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "\"configurasiya\" direktoriyasının daxilində yazmaq mümkün deyil",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Adətən tez həll etmək üçün WEB serverdə yazma yetkisi verilir",
+ "See %s" : "Bax %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Bu adətən %s config qovluğuna web server üçün yazma yetkisi verdikdə, %s tərəfindən fix edilə bilir. ",
+ "Sample configuration detected" : "Konfiqurasiya nüsxəsi təyin edildi",
+ "Help" : "Kömək",
+ "Personal" : "Şəxsi",
+ "Settings" : "Quraşdırmalar",
+ "Users" : "İstifadəçilər",
+ "Admin" : "İnzibatçı",
+ "No app name specified" : "Proqram adı təyin edilməyib",
+ "Unknown filetype" : "Fayl tipi bəlli deyil.",
+ "Invalid image" : "Yalnış şəkil",
+ "App directory already exists" : "Proqram təminatı qovluğu artıq mövcuddur.",
+ "Can't create app folder. Please fix permissions. %s" : "Proqram təminatı qovluğunu yaratmaq mümkün olmadı. Xahiş edilir yetkiləri düzgün təyin edəsiniz. %s",
+ "Application is not enabled" : "Proqram təminatı aktiv edilməyib",
+ "Authentication error" : "Təyinat metodikası",
+ "Token expired. Please reload page." : "Token vaxtı bitib. Xahiş olunur səhifəni yenidən yükləyəsiniz.",
+ "Unknown user" : "Istifadəçi tanınmır ",
+ "%s enter the database username." : "Verilənlər bazası istifadəçi adını %s daxil et.",
+ "%s enter the database name." : "Verilənlər bazası adını %s daxil et.",
+ "MS SQL username and/or password not valid: %s" : "MS SQL istifadəçi adı və/ya şifrəsi düzgün deyil : %s",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB istifadəçi adı və/ya şifrəsi düzgün deyil :",
+ "DB Error: \"%s\"" : "DB səhvi: \"%s\"",
+ "Drop this user from MySQL/MariaDB" : "Bu istifadəçini MySQL/MariaDB-dən sil",
+ "Drop this user from MySQL/MariaDB." : "Bu istifadəçini MySQL/MariaDB-dən sil.",
+ "Oracle connection could not be established" : "Oracle qoşulması alınmır",
+ "Oracle username and/or password not valid" : "Oracle istifadəçi adı və/ya şifrəsi düzgün deyil",
+ "Set an admin username." : "İnzibatçı istifadəçi adını təyin et.",
+ "Set an admin password." : "İnzibatçı şifrəsini təyin et.",
+ "%s shared »%s« with you" : "%s yayımlandı »%s« sizinlə",
+ "Sharing %s failed, because the file does not exist" : "%s yayımlanmasında səhv baş verdi ona görə ki, fayl mövcud deyil.",
+ "You are not allowed to share %s" : "%s-in yayimlanmasına sizə izin verilmir",
+ "Share type %s is not valid for %s" : "Yayımlanma tipi %s etibarlı deyil %s üçün",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "A valid username must be provided" : "Düzgün istifadəçi adı daxil edilməlidir",
+ "A valid password must be provided" : "Düzgün şifrə daxil edilməlidir"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/az.php b/lib/l10n/az.php
deleted file mode 100644
index a527b8edf5d..00000000000
--- a/lib/l10n/az.php
+++ /dev/null
@@ -1,44 +0,0 @@
- "\"configurasiya\" direktoriyasının daxilində yazmaq mümkün deyil",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Adətən tez həll etmək üçün WEB serverdə yazma yetkisi verilir",
-"See %s" => "Bax %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Bu adətən %s config qovluğuna web server üçün yazma yetkisi verdikdə, %s tərəfindən fix edilə bilir. ",
-"Sample configuration detected" => "Konfiqurasiya nüsxəsi təyin edildi",
-"Help" => "Kömək",
-"Personal" => "Şəxsi",
-"Settings" => "Quraşdırmalar",
-"Users" => "İstifadəçilər",
-"Admin" => "İnzibatçı",
-"No app name specified" => "Proqram adı təyin edilməyib",
-"Unknown filetype" => "Fayl tipi bəlli deyil.",
-"Invalid image" => "Yalnış şəkil",
-"App directory already exists" => "Proqram təminatı qovluğu artıq mövcuddur.",
-"Can't create app folder. Please fix permissions. %s" => "Proqram təminatı qovluğunu yaratmaq mümkün olmadı. Xahiş edilir yetkiləri düzgün təyin edəsiniz. %s",
-"Application is not enabled" => "Proqram təminatı aktiv edilməyib",
-"Authentication error" => "Təyinat metodikası",
-"Token expired. Please reload page." => "Token vaxtı bitib. Xahiş olunur səhifəni yenidən yükləyəsiniz.",
-"Unknown user" => "Istifadəçi tanınmır ",
-"%s enter the database username." => "Verilənlər bazası istifadəçi adını %s daxil et.",
-"%s enter the database name." => "Verilənlər bazası adını %s daxil et.",
-"MS SQL username and/or password not valid: %s" => "MS SQL istifadəçi adı və/ya şifrəsi düzgün deyil : %s",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB istifadəçi adı və/ya şifrəsi düzgün deyil :",
-"DB Error: \"%s\"" => "DB səhvi: \"%s\"",
-"Drop this user from MySQL/MariaDB" => "Bu istifadəçini MySQL/MariaDB-dən sil",
-"Drop this user from MySQL/MariaDB." => "Bu istifadəçini MySQL/MariaDB-dən sil.",
-"Oracle connection could not be established" => "Oracle qoşulması alınmır",
-"Oracle username and/or password not valid" => "Oracle istifadəçi adı və/ya şifrəsi düzgün deyil",
-"Set an admin username." => "İnzibatçı istifadəçi adını təyin et.",
-"Set an admin password." => "İnzibatçı şifrəsini təyin et.",
-"%s shared »%s« with you" => "%s yayımlandı »%s« sizinlə",
-"Sharing %s failed, because the file does not exist" => "%s yayımlanmasında səhv baş verdi ona görə ki, fayl mövcud deyil.",
-"You are not allowed to share %s" => "%s-in yayimlanmasına sizə izin verilmir",
-"Share type %s is not valid for %s" => "Yayımlanma tipi %s etibarlı deyil %s üçün",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("",""),
-"A valid username must be provided" => "Düzgün istifadəçi adı daxil edilməlidir",
-"A valid password must be provided" => "Düzgün şifrə daxil edilməlidir"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/be.js b/lib/l10n/be.js
new file mode 100644
index 00000000000..b75e4fa2e67
--- /dev/null
+++ b/lib/l10n/be.js
@@ -0,0 +1,16 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Settings" : "Налады",
+ "seconds ago" : "Секунд таму",
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","",""],
+ "today" : "Сёння",
+ "yesterday" : "Ўчора",
+ "_%n day go_::_%n days ago_" : ["","","",""],
+ "last month" : "У мінулым месяцы",
+ "_%n month ago_::_%n months ago_" : ["","","",""],
+ "last year" : "У мінулым годзе",
+ "years ago" : "Гадоў таму"
+},
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/lib/l10n/be.json b/lib/l10n/be.json
new file mode 100644
index 00000000000..891b64361dc
--- /dev/null
+++ b/lib/l10n/be.json
@@ -0,0 +1,14 @@
+{ "translations": {
+ "Settings" : "Налады",
+ "seconds ago" : "Секунд таму",
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","",""],
+ "today" : "Сёння",
+ "yesterday" : "Ўчора",
+ "_%n day go_::_%n days ago_" : ["","","",""],
+ "last month" : "У мінулым месяцы",
+ "_%n month ago_::_%n months ago_" : ["","","",""],
+ "last year" : "У мінулым годзе",
+ "years ago" : "Гадоў таму"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+}
\ No newline at end of file
diff --git a/lib/l10n/be.php b/lib/l10n/be.php
deleted file mode 100644
index b1cf270aba2..00000000000
--- a/lib/l10n/be.php
+++ /dev/null
@@ -1,15 +0,0 @@
- "Налады",
-"seconds ago" => "Секунд таму",
-"_%n minute ago_::_%n minutes ago_" => array("","","",""),
-"_%n hour ago_::_%n hours ago_" => array("","","",""),
-"today" => "Сёння",
-"yesterday" => "Ўчора",
-"_%n day go_::_%n days ago_" => array("","","",""),
-"last month" => "У мінулым месяцы",
-"_%n month ago_::_%n months ago_" => array("","","",""),
-"last year" => "У мінулым годзе",
-"years ago" => "Гадоў таму"
-);
-$PLURAL_FORMS = "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/lib/l10n/bg_BG.js b/lib/l10n/bg_BG.js
new file mode 100644
index 00000000000..a0c0dc3b8e7
--- /dev/null
+++ b/lib/l10n/bg_BG.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Неуспешен опит за запис в \"config\" папката!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Това може да бъде решено единствено като разрешиш на уеб сървъра да пише в config папката.",
+ "See %s" : "Виж %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Това обикновено може да бъде оправено като %s даде разрешение на уеб сървъра да записва в config папката %s.",
+ "Sample configuration detected" : "Открита е примерна конфигурация",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Усетено беше че примерната конфигурация е копирана. Това може да развли инсталацията ти и не се поддържа. Моля, прочети документацията преди да правиш промени на config.php",
+ "Help" : "Помощ",
+ "Personal" : "Лични",
+ "Settings" : "Настройки",
+ "Users" : "Потребители",
+ "Admin" : "Админ",
+ "Recommended" : "Препоръчано",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Приложението \\\"%s\\\" не може да бъде инсталирано, защото не е съвместимо с тази версия на ownCloud.",
+ "No app name specified" : "Не е зададено име на преложението",
+ "Unknown filetype" : "Непознат тип файл.",
+ "Invalid image" : "Невалидно изображение.",
+ "Database Error" : "Грешка в базата данни",
+ "Please contact your system administrator." : "Моля, свържи се с админстратора.",
+ "web services under your control" : "уеб услуги под твой контрол",
+ "App directory already exists" : "Папката на приложението вече съществува.",
+ "Can't create app folder. Please fix permissions. %s" : "Неуспешно създаване на папката за приложението. Моля, оправете разрешенията. %s",
+ "No source specified when installing app" : "Не е зададен източник при инсталацията на приложението.",
+ "No href specified when installing app from http" : "Липсва съдържанието на връзката за инсталиране на приложението",
+ "No path specified when installing app from local file" : "Не е зададен пътя до локалния файл за инсталиране на приложението.",
+ "Archives of type %s are not supported" : "Архиви от тип %s не се подържат",
+ "Failed to open archive when installing app" : "Неуспешно отваряне на архив по времен на инсталацията на приложението.",
+ "App does not provide an info.xml file" : "Приложенението не добавило info.xml",
+ "App can't be installed because of not allowed code in the App" : "Приложението няма да бъде инсталирано, защото използва неразрешен код.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Приложението няма да бъде инсталирано, защото не е съвместимо с текущата версия на ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Приложението няма да бъде инсталирано, защото съдържа true , който таг не е разрешен за не ship-нати приложения.",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Приложението няма да бъде инсталирано, защото версията в info.xml/version не съвпада с версията публикувана в магазина за приложения.",
+ "Application is not enabled" : "Приложението не е включено",
+ "Authentication error" : "Проблем с идентификацията",
+ "Token expired. Please reload page." : "Изтекла сесия. Моля, презареди страницата.",
+ "Unknown user" : "Непознат потребител",
+ "%s enter the database username." : "%s въведи потребителско име за базата данни.",
+ "%s enter the database name." : "%s въведи име на базата данни.",
+ "%s you may not use dots in the database name" : "%s, не може да ползваш точки в името на базата данни.",
+ "MS SQL username and/or password not valid: %s" : "Невалидно MS SQL потребителско име и/или парола: %s.",
+ "You need to enter either an existing account or the administrator." : "Необходимо е да въведеш съществуващ профил или като администратор.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB потребителското име и/или паролата са невалидни.",
+ "DB Error: \"%s\"" : "Грешка в базата данни: \"%s\".",
+ "Offending command was: \"%s\"" : "Проблемната команда беше: \"%s\".",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB потребител '%s'@'localhost' вече съществува.",
+ "Drop this user from MySQL/MariaDB" : "Премахни този потребител от MySQL/MariaDB.",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB потребител '%s'@'%%' вече съществува.",
+ "Drop this user from MySQL/MariaDB." : "Премахни този потребител от MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Oracle връзка не можа да се осъществи.",
+ "Oracle username and/or password not valid" : "Невалидно Oracle потребителско име и/или парола.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Проблемната команда беше: \"%s\", име: %s, парола: %s.",
+ "PostgreSQL username and/or password not valid" : "Невалидно PostgreSQL потребителско име и/или парола.",
+ "Set an admin username." : "Задай потребителско име за администратор.",
+ "Set an admin password." : "Задай парола за администратор.",
+ "Can't create or write into the data directory %s" : "Неуспешно създаване или записване в \"data\" папката %s",
+ "%s shared »%s« with you" : "%s сподели »%s« с теб",
+ "Sharing %s failed, because the file does not exist" : "Неуспешно споделяне на %s, защото файлът не съществува.",
+ "You are not allowed to share %s" : "Не ти е разрешено да споделяш %s.",
+ "Sharing %s failed, because the user %s is the item owner" : "Споделяне на %s е неуспешно, защото потребител %s е оригиналния собственик.",
+ "Sharing %s failed, because the user %s does not exist" : "Неуспешно споделяне на %s, защото потребител %s не съществува.",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Неуспешно споделяне на %s, защото %s не е член никоя от групите, в които %s членува.",
+ "Sharing %s failed, because this item is already shared with %s" : "Неуспешно споделяне на %s, защото това съдържание е вече споделено с %s.",
+ "Sharing %s failed, because the group %s does not exist" : "Неупешно споделяне на %s, защото групата %s не съществува.",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Неуспешно споделяне на %s, защото %s не е член на групата %s.",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Трябва да зададеш парола, за да създадеш общодостъпен линк за споделяне, само защитени с пароли линкове са разрешени.",
+ "Sharing %s failed, because sharing with links is not allowed" : "Неуспешно споделяне на %s, защото споделянето посредством връзки не е разрешено.",
+ "Share type %s is not valid for %s" : "Споделянето на тип %s не валидно за %s.",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Неуспешна промяна на правата за достъп за %s, защото промените надвишават правата на достъп дадени на %s.",
+ "Setting permissions for %s failed, because the item was not found" : "Неуспешна промяна на правата за достъп за %s, защото съдържанието не е открито.",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Неуспешно задаване на дата на изтичане. Споделни папки или файлове не могат да изтичат по-късно от %s след като са били споделени",
+ "Cannot set expiration date. Expiration date is in the past" : "Неуспешно задаване на дата на изтичане. Датата на изтичане е в миналото",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Споделянето на сървърния %s трябва да поддържа OCP\\Share_Backend интерфейс.",
+ "Sharing backend %s not found" : "Споделянето на сървърния %s не е открито.",
+ "Sharing backend for %s not found" : "Споделянето на сървъра за %s не е открито.",
+ "Sharing %s failed, because the user %s is the original sharer" : "Споделяне на %s е неуспешно, защото потребител %s е оригиналния собственик.",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Неуспешно споделяне на %s, защото промените надвишават правата на достъп дадени на %s.",
+ "Sharing %s failed, because resharing is not allowed" : "Неуспешно споделяне на %s, защото повторно споделяне не е разрешено.",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Неуспешно споделяне на %s, защото не е открит първоизточникът на %s, за да бъде споделяне по сървъра.",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Неуспешно споделяне на %s, защото файлът не може да бъде намерен в кеша.",
+ "Could not find category \"%s\"" : "Невъзможно откриване на категорията \"%s\".",
+ "seconds ago" : "преди секунди",
+ "_%n minute ago_::_%n minutes ago_" : ["","преди %n минути"],
+ "_%n hour ago_::_%n hours ago_" : ["","преди %n часа"],
+ "today" : "днес",
+ "yesterday" : "вчера",
+ "_%n day go_::_%n days ago_" : ["","преди %n дена"],
+ "last month" : "миналия месец",
+ "_%n month ago_::_%n months ago_" : ["","преди %n месеца"],
+ "last year" : "миналата година",
+ "years ago" : "преди години",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Само следните символи са разрешени в потребителското име: \"a-z\", \"A-Z\", \"0-9\", и \"_.@-\".",
+ "A valid username must be provided" : "Валидно потребителско име трябва да бъде зададено.",
+ "A valid password must be provided" : "Валидна парола трябва да бъде зададена.",
+ "The username is already being used" : "Това потребителско име е вече заето.",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Липсват инсталирани драйвери за бази данни(sqlite, mysql или postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Правата за достъп обикновено могат да бъдат оправени като %s даде разрешение на уеб сървъра да пише в root папката %s.",
+ "Cannot write into \"config\" directory" : "Неуспешен опит за запис в \"config\" папката.",
+ "Cannot write into \"apps\" directory" : "Неуспешен опит за запис в \"apps\" папката.",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Това обикновено може да бъде оправено като %s даде разрешение на уеб сървъра да записва в app папката %s или като изключи магазина за приложения в config файла.",
+ "Cannot create \"data\" directory (%s)" : "Неуспешен опит за създаване на \"data\" папката (%s).",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Това обикновено може да бъде оправено като дадеш разрешение на уеб сървъра да записва в root папката .",
+ "Setting locale to %s failed" : "Неуспешно задаване на %s като настройка език-държава.",
+ "Please install one of these locales on your system and restart your webserver." : "Моля, инсталирай едно от следните език-държава на сървъра и рестартирай уеб сървъра.",
+ "Please ask your server administrator to install the module." : "Моля, поискай твоят администратор да инсталира модула.",
+ "PHP module %s not installed." : "PHP модулът %s не е инсталиран.",
+ "PHP %s or higher is required." : "Изисква се PHP %s или по-нова.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Моля, поискай твоят администратор да обнови PHP до най-новата верския. Твоята PHP версия вече не се поддържа от ownCloud и PHP общността.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode е включен. ownCloud изисква този режим да бъде изключен, за да функионира нормално.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode е непропръчителна и общо взето безсмислена настройка и трябва да бъде изключена. Моля, поискай твоя администратор да я изключи ви php.ini или в конфигурацията на уве сървъра.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes е включен. ownCloud изисква да е изключен, за да функнионира нормално.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes е непропръчителна и общо взето безсмислена настройка и трябва да бъде изключена. Моля, поискай твоя администратор да я изключи ви php.ini или в конфигурацията на уве сървъра.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP модулите са инсталирани, но все още се обявяват като липсващи?",
+ "Please ask your server administrator to restart the web server." : "Моля, поискай от своя администратор да рестартира уеб сървъра.",
+ "PostgreSQL >= 9 required" : "Изисква се PostgreSQL >= 9",
+ "Please upgrade your database version" : "Моля, обнови базата данни.",
+ "Error occurred while checking PostgreSQL version" : "Настъпи грешка при проверката на версията на PostgreSQL.",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Моля, увери се, че PostgreSQL >= 9 или провери докладите за повече информация относно грешката.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Моля, промени правата за достъп на 0770, за да не може директорията да бъде видяна от други потребители.",
+ "Data directory (%s) is readable by other users" : "Data папката (%s) може да бъде разгледана от други потребители",
+ "Data directory (%s) is invalid" : "Data папката (%s) e невалидна",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Моля, увери се, че data папката съдържа файл \".ocdata\" в себе си.",
+ "Could not obtain lock type %d on \"%s\"." : "Неуспешен опит за ексклузивен достъп от типa %d върху \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/bg_BG.json b/lib/l10n/bg_BG.json
new file mode 100644
index 00000000000..aedb28be19e
--- /dev/null
+++ b/lib/l10n/bg_BG.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Неуспешен опит за запис в \"config\" папката!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Това може да бъде решено единствено като разрешиш на уеб сървъра да пише в config папката.",
+ "See %s" : "Виж %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Това обикновено може да бъде оправено като %s даде разрешение на уеб сървъра да записва в config папката %s.",
+ "Sample configuration detected" : "Открита е примерна конфигурация",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Усетено беше че примерната конфигурация е копирана. Това може да развли инсталацията ти и не се поддържа. Моля, прочети документацията преди да правиш промени на config.php",
+ "Help" : "Помощ",
+ "Personal" : "Лични",
+ "Settings" : "Настройки",
+ "Users" : "Потребители",
+ "Admin" : "Админ",
+ "Recommended" : "Препоръчано",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Приложението \\\"%s\\\" не може да бъде инсталирано, защото не е съвместимо с тази версия на ownCloud.",
+ "No app name specified" : "Не е зададено име на преложението",
+ "Unknown filetype" : "Непознат тип файл.",
+ "Invalid image" : "Невалидно изображение.",
+ "Database Error" : "Грешка в базата данни",
+ "Please contact your system administrator." : "Моля, свържи се с админстратора.",
+ "web services under your control" : "уеб услуги под твой контрол",
+ "App directory already exists" : "Папката на приложението вече съществува.",
+ "Can't create app folder. Please fix permissions. %s" : "Неуспешно създаване на папката за приложението. Моля, оправете разрешенията. %s",
+ "No source specified when installing app" : "Не е зададен източник при инсталацията на приложението.",
+ "No href specified when installing app from http" : "Липсва съдържанието на връзката за инсталиране на приложението",
+ "No path specified when installing app from local file" : "Не е зададен пътя до локалния файл за инсталиране на приложението.",
+ "Archives of type %s are not supported" : "Архиви от тип %s не се подържат",
+ "Failed to open archive when installing app" : "Неуспешно отваряне на архив по времен на инсталацията на приложението.",
+ "App does not provide an info.xml file" : "Приложенението не добавило info.xml",
+ "App can't be installed because of not allowed code in the App" : "Приложението няма да бъде инсталирано, защото използва неразрешен код.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Приложението няма да бъде инсталирано, защото не е съвместимо с текущата версия на ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Приложението няма да бъде инсталирано, защото съдържа true , който таг не е разрешен за не ship-нати приложения.",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Приложението няма да бъде инсталирано, защото версията в info.xml/version не съвпада с версията публикувана в магазина за приложения.",
+ "Application is not enabled" : "Приложението не е включено",
+ "Authentication error" : "Проблем с идентификацията",
+ "Token expired. Please reload page." : "Изтекла сесия. Моля, презареди страницата.",
+ "Unknown user" : "Непознат потребител",
+ "%s enter the database username." : "%s въведи потребителско име за базата данни.",
+ "%s enter the database name." : "%s въведи име на базата данни.",
+ "%s you may not use dots in the database name" : "%s, не може да ползваш точки в името на базата данни.",
+ "MS SQL username and/or password not valid: %s" : "Невалидно MS SQL потребителско име и/или парола: %s.",
+ "You need to enter either an existing account or the administrator." : "Необходимо е да въведеш съществуващ профил или като администратор.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB потребителското име и/или паролата са невалидни.",
+ "DB Error: \"%s\"" : "Грешка в базата данни: \"%s\".",
+ "Offending command was: \"%s\"" : "Проблемната команда беше: \"%s\".",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB потребител '%s'@'localhost' вече съществува.",
+ "Drop this user from MySQL/MariaDB" : "Премахни този потребител от MySQL/MariaDB.",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB потребител '%s'@'%%' вече съществува.",
+ "Drop this user from MySQL/MariaDB." : "Премахни този потребител от MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Oracle връзка не можа да се осъществи.",
+ "Oracle username and/or password not valid" : "Невалидно Oracle потребителско име и/или парола.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Проблемната команда беше: \"%s\", име: %s, парола: %s.",
+ "PostgreSQL username and/or password not valid" : "Невалидно PostgreSQL потребителско име и/или парола.",
+ "Set an admin username." : "Задай потребителско име за администратор.",
+ "Set an admin password." : "Задай парола за администратор.",
+ "Can't create or write into the data directory %s" : "Неуспешно създаване или записване в \"data\" папката %s",
+ "%s shared »%s« with you" : "%s сподели »%s« с теб",
+ "Sharing %s failed, because the file does not exist" : "Неуспешно споделяне на %s, защото файлът не съществува.",
+ "You are not allowed to share %s" : "Не ти е разрешено да споделяш %s.",
+ "Sharing %s failed, because the user %s is the item owner" : "Споделяне на %s е неуспешно, защото потребител %s е оригиналния собственик.",
+ "Sharing %s failed, because the user %s does not exist" : "Неуспешно споделяне на %s, защото потребител %s не съществува.",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Неуспешно споделяне на %s, защото %s не е член никоя от групите, в които %s членува.",
+ "Sharing %s failed, because this item is already shared with %s" : "Неуспешно споделяне на %s, защото това съдържание е вече споделено с %s.",
+ "Sharing %s failed, because the group %s does not exist" : "Неупешно споделяне на %s, защото групата %s не съществува.",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Неуспешно споделяне на %s, защото %s не е член на групата %s.",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Трябва да зададеш парола, за да създадеш общодостъпен линк за споделяне, само защитени с пароли линкове са разрешени.",
+ "Sharing %s failed, because sharing with links is not allowed" : "Неуспешно споделяне на %s, защото споделянето посредством връзки не е разрешено.",
+ "Share type %s is not valid for %s" : "Споделянето на тип %s не валидно за %s.",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Неуспешна промяна на правата за достъп за %s, защото промените надвишават правата на достъп дадени на %s.",
+ "Setting permissions for %s failed, because the item was not found" : "Неуспешна промяна на правата за достъп за %s, защото съдържанието не е открито.",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Неуспешно задаване на дата на изтичане. Споделни папки или файлове не могат да изтичат по-късно от %s след като са били споделени",
+ "Cannot set expiration date. Expiration date is in the past" : "Неуспешно задаване на дата на изтичане. Датата на изтичане е в миналото",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Споделянето на сървърния %s трябва да поддържа OCP\\Share_Backend интерфейс.",
+ "Sharing backend %s not found" : "Споделянето на сървърния %s не е открито.",
+ "Sharing backend for %s not found" : "Споделянето на сървъра за %s не е открито.",
+ "Sharing %s failed, because the user %s is the original sharer" : "Споделяне на %s е неуспешно, защото потребител %s е оригиналния собственик.",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Неуспешно споделяне на %s, защото промените надвишават правата на достъп дадени на %s.",
+ "Sharing %s failed, because resharing is not allowed" : "Неуспешно споделяне на %s, защото повторно споделяне не е разрешено.",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Неуспешно споделяне на %s, защото не е открит първоизточникът на %s, за да бъде споделяне по сървъра.",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Неуспешно споделяне на %s, защото файлът не може да бъде намерен в кеша.",
+ "Could not find category \"%s\"" : "Невъзможно откриване на категорията \"%s\".",
+ "seconds ago" : "преди секунди",
+ "_%n minute ago_::_%n minutes ago_" : ["","преди %n минути"],
+ "_%n hour ago_::_%n hours ago_" : ["","преди %n часа"],
+ "today" : "днес",
+ "yesterday" : "вчера",
+ "_%n day go_::_%n days ago_" : ["","преди %n дена"],
+ "last month" : "миналия месец",
+ "_%n month ago_::_%n months ago_" : ["","преди %n месеца"],
+ "last year" : "миналата година",
+ "years ago" : "преди години",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Само следните символи са разрешени в потребителското име: \"a-z\", \"A-Z\", \"0-9\", и \"_.@-\".",
+ "A valid username must be provided" : "Валидно потребителско име трябва да бъде зададено.",
+ "A valid password must be provided" : "Валидна парола трябва да бъде зададена.",
+ "The username is already being used" : "Това потребителско име е вече заето.",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Липсват инсталирани драйвери за бази данни(sqlite, mysql или postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Правата за достъп обикновено могат да бъдат оправени като %s даде разрешение на уеб сървъра да пише в root папката %s.",
+ "Cannot write into \"config\" directory" : "Неуспешен опит за запис в \"config\" папката.",
+ "Cannot write into \"apps\" directory" : "Неуспешен опит за запис в \"apps\" папката.",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Това обикновено може да бъде оправено като %s даде разрешение на уеб сървъра да записва в app папката %s или като изключи магазина за приложения в config файла.",
+ "Cannot create \"data\" directory (%s)" : "Неуспешен опит за създаване на \"data\" папката (%s).",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Това обикновено може да бъде оправено като дадеш разрешение на уеб сървъра да записва в root папката .",
+ "Setting locale to %s failed" : "Неуспешно задаване на %s като настройка език-държава.",
+ "Please install one of these locales on your system and restart your webserver." : "Моля, инсталирай едно от следните език-държава на сървъра и рестартирай уеб сървъра.",
+ "Please ask your server administrator to install the module." : "Моля, поискай твоят администратор да инсталира модула.",
+ "PHP module %s not installed." : "PHP модулът %s не е инсталиран.",
+ "PHP %s or higher is required." : "Изисква се PHP %s или по-нова.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Моля, поискай твоят администратор да обнови PHP до най-новата верския. Твоята PHP версия вече не се поддържа от ownCloud и PHP общността.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode е включен. ownCloud изисква този режим да бъде изключен, за да функионира нормално.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode е непропръчителна и общо взето безсмислена настройка и трябва да бъде изключена. Моля, поискай твоя администратор да я изключи ви php.ini или в конфигурацията на уве сървъра.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes е включен. ownCloud изисква да е изключен, за да функнионира нормално.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes е непропръчителна и общо взето безсмислена настройка и трябва да бъде изключена. Моля, поискай твоя администратор да я изключи ви php.ini или в конфигурацията на уве сървъра.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP модулите са инсталирани, но все още се обявяват като липсващи?",
+ "Please ask your server administrator to restart the web server." : "Моля, поискай от своя администратор да рестартира уеб сървъра.",
+ "PostgreSQL >= 9 required" : "Изисква се PostgreSQL >= 9",
+ "Please upgrade your database version" : "Моля, обнови базата данни.",
+ "Error occurred while checking PostgreSQL version" : "Настъпи грешка при проверката на версията на PostgreSQL.",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Моля, увери се, че PostgreSQL >= 9 или провери докладите за повече информация относно грешката.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Моля, промени правата за достъп на 0770, за да не може директорията да бъде видяна от други потребители.",
+ "Data directory (%s) is readable by other users" : "Data папката (%s) може да бъде разгледана от други потребители",
+ "Data directory (%s) is invalid" : "Data папката (%s) e невалидна",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Моля, увери се, че data папката съдържа файл \".ocdata\" в себе си.",
+ "Could not obtain lock type %d on \"%s\"." : "Неуспешен опит за ексклузивен достъп от типa %d върху \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/bg_BG.php b/lib/l10n/bg_BG.php
deleted file mode 100644
index 3b247952ede..00000000000
--- a/lib/l10n/bg_BG.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Неуспешен опит за запис в \"config\" папката!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Това може да бъде решено единствено като разрешиш на уеб сървъра да пише в config папката.",
-"See %s" => "Виж %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Това обикновено може да бъде оправено като %s даде разрешение на уеб сървъра да записва в config папката %s.",
-"Sample configuration detected" => "Открита е примерна конфигурация",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Усетено беше че примерната конфигурация е копирана. Това може да развли инсталацията ти и не се поддържа. Моля, прочети документацията преди да правиш промени на config.php",
-"Help" => "Помощ",
-"Personal" => "Лични",
-"Settings" => "Настройки",
-"Users" => "Потребители",
-"Admin" => "Админ",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Приложението \\\"%s\\\" не може да бъде инсталирано, защото не е съвместимо с тази версия на ownCloud.",
-"No app name specified" => "Не е зададено име на преложението",
-"Unknown filetype" => "Непознат тип файл.",
-"Invalid image" => "Невалидно изображение.",
-"web services under your control" => "уеб услуги под твой контрол",
-"App directory already exists" => "Папката на приложението вече съществува.",
-"Can't create app folder. Please fix permissions. %s" => "Неуспешно създаване на папката за приложението. Моля, оправете разрешенията. %s",
-"No source specified when installing app" => "Не е зададен източник при инсталацията на приложението.",
-"No href specified when installing app from http" => "Липсва съдържанието на връзката за инсталиране на приложението",
-"No path specified when installing app from local file" => "Не е зададен пътя до локалния файл за инсталиране на приложението.",
-"Archives of type %s are not supported" => "Архиви от тип %s не се подържат",
-"Failed to open archive when installing app" => "Неуспешно отваряне на архив по времен на инсталацията на приложението.",
-"App does not provide an info.xml file" => "Приложенението не добавило info.xml",
-"App can't be installed because of not allowed code in the App" => "Приложението няма да бъде инсталирано, защото използва неразрешен код.",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Приложението няма да бъде инсталирано, защото не е съвместимо с текущата версия на ownCloud.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Приложението няма да бъде инсталирано, защото съдържа true , който таг не е разрешен за не ship-нати приложения.",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Приложението няма да бъде инсталирано, защото версията в info.xml/version не съвпада с версията публикувана в магазина за приложения.",
-"Application is not enabled" => "Приложението не е включено",
-"Authentication error" => "Проблем с идентификацията",
-"Token expired. Please reload page." => "Изтекла сесия. Моля, презареди страницата.",
-"Unknown user" => "Непознат потребител",
-"%s enter the database username." => "%s въведи потребителско име за базата данни.",
-"%s enter the database name." => "%s въведи име на базата данни.",
-"%s you may not use dots in the database name" => "%s, не може да ползваш точки в името на базата данни.",
-"MS SQL username and/or password not valid: %s" => "Невалидно MS SQL потребителско име и/или парола: %s.",
-"You need to enter either an existing account or the administrator." => "Необходимо е да въведеш съществуващ профил или като администратор.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB потребителското име и/или паролата са невалидни.",
-"DB Error: \"%s\"" => "Грешка в базата данни: \"%s\".",
-"Offending command was: \"%s\"" => "Проблемната команда беше: \"%s\".",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB потребител '%s'@'localhost' вече съществува.",
-"Drop this user from MySQL/MariaDB" => "Премахни този потребител от MySQL/MariaDB.",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB потребител '%s'@'%%' вече съществува.",
-"Drop this user from MySQL/MariaDB." => "Премахни този потребител от MySQL/MariaDB.",
-"Oracle connection could not be established" => "Oracle връзка не можа да се осъществи.",
-"Oracle username and/or password not valid" => "Невалидно Oracle потребителско име и/или парола.",
-"Offending command was: \"%s\", name: %s, password: %s" => "Проблемната команда беше: \"%s\", име: %s, парола: %s.",
-"PostgreSQL username and/or password not valid" => "Невалидно PostgreSQL потребителско име и/или парола.",
-"Set an admin username." => "Задай потребителско име за администратор.",
-"Set an admin password." => "Задай парола за администратор.",
-"Can't create or write into the data directory %s" => "Неуспешно създаване или записване в \"data\" папката %s",
-"%s shared »%s« with you" => "%s сподели »%s« с теб",
-"Sharing %s failed, because the file does not exist" => "Неуспешно споделяне на %s, защото файлът не съществува.",
-"You are not allowed to share %s" => "Не ти е разрешено да споделяш %s.",
-"Sharing %s failed, because the user %s is the item owner" => "Споделяне на %s е неуспешно, защото потребител %s е оригиналния собственик.",
-"Sharing %s failed, because the user %s does not exist" => "Неуспешно споделяне на %s, защото потребител %s не съществува.",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Неуспешно споделяне на %s, защото %s не е член никоя от групите, в които %s членува.",
-"Sharing %s failed, because this item is already shared with %s" => "Неуспешно споделяне на %s, защото това съдържание е вече споделено с %s.",
-"Sharing %s failed, because the group %s does not exist" => "Неупешно споделяне на %s, защото групата %s не съществува.",
-"Sharing %s failed, because %s is not a member of the group %s" => "Неуспешно споделяне на %s, защото %s не е член на групата %s.",
-"You need to provide a password to create a public link, only protected links are allowed" => "Трябва да зададеш парола, за да създадеш общодостъпен линк за споделяне, само защитени с пароли линкове са разрешени.",
-"Sharing %s failed, because sharing with links is not allowed" => "Неуспешно споделяне на %s, защото споделянето посредством връзки не е разрешено.",
-"Share type %s is not valid for %s" => "Споделянето на тип %s не валидно за %s.",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Неуспешна промяна на правата за достъп за %s, защото промените надвишават правата на достъп дадени на %s.",
-"Setting permissions for %s failed, because the item was not found" => "Неуспешна промяна на правата за достъп за %s, защото съдържанието не е открито.",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Неуспешно задаване на дата на изтичане. Споделни папки или файлове не могат да изтичат по-късно от %s след като са били споделени",
-"Cannot set expiration date. Expiration date is in the past" => "Неуспешно задаване на дата на изтичане. Датата на изтичане е в миналото",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Споделянето на сървърния %s трябва да поддържа OCP\\Share_Backend интерфейс.",
-"Sharing backend %s not found" => "Споделянето на сървърния %s не е открито.",
-"Sharing backend for %s not found" => "Споделянето на сървъра за %s не е открито.",
-"Sharing %s failed, because the user %s is the original sharer" => "Споделяне на %s е неуспешно, защото потребител %s е оригиналния собственик.",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Неуспешно споделяне на %s, защото промените надвишават правата на достъп дадени на %s.",
-"Sharing %s failed, because resharing is not allowed" => "Неуспешно споделяне на %s, защото повторно споделяне не е разрешено.",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Неуспешно споделяне на %s, защото не е открит първоизточникът на %s, за да бъде споделяне по сървъра.",
-"Sharing %s failed, because the file could not be found in the file cache" => "Неуспешно споделяне на %s, защото файлът не може да бъде намерен в кеша.",
-"Could not find category \"%s\"" => "Невъзможно откриване на категорията \"%s\".",
-"seconds ago" => "преди секунди",
-"_%n minute ago_::_%n minutes ago_" => array("","преди %n минути"),
-"_%n hour ago_::_%n hours ago_" => array("","преди %n часа"),
-"today" => "днес",
-"yesterday" => "вчера",
-"_%n day go_::_%n days ago_" => array("","преди %n дена"),
-"last month" => "миналия месец",
-"_%n month ago_::_%n months ago_" => array("","преди %n месеца"),
-"last year" => "миналата година",
-"years ago" => "преди години",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Само следните символи са разрешени в потребителското име: \"a-z\", \"A-Z\", \"0-9\", и \"_.@-\".",
-"A valid username must be provided" => "Валидно потребителско име трябва да бъде зададено.",
-"A valid password must be provided" => "Валидна парола трябва да бъде зададена.",
-"The username is already being used" => "Това потребителско име е вече заето.",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Липсват инсталирани драйвери за бази данни(sqlite, mysql или postgresql).",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Правата за достъп обикновено могат да бъдат оправени като %s даде разрешение на уеб сървъра да пише в root папката %s.",
-"Cannot write into \"config\" directory" => "Неуспешен опит за запис в \"config\" папката.",
-"Cannot write into \"apps\" directory" => "Неуспешен опит за запис в \"apps\" папката.",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Това обикновено може да бъде оправено като %s даде разрешение на уеб сървъра да записва в app папката %s или като изключи магазина за приложения в config файла.",
-"Cannot create \"data\" directory (%s)" => "Неуспешен опит за създаване на \"data\" папката (%s).",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Това обикновено може да бъде оправено като дадеш разрешение на уеб сървъра да записва в root папката .",
-"Setting locale to %s failed" => "Неуспешно задаване на %s като настройка език-държава.",
-"Please install one of these locales on your system and restart your webserver." => "Моля, инсталирай едно от следните език-държава на сървъра и рестартирай уеб сървъра.",
-"Please ask your server administrator to install the module." => "Моля, поискай твоят администратор да инсталира модула.",
-"PHP module %s not installed." => "PHP модулът %s не е инсталиран.",
-"PHP %s or higher is required." => "Изисква се PHP %s или по-нова.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Моля, поискай твоят администратор да обнови PHP до най-новата верския. Твоята PHP версия вече не се поддържа от ownCloud и PHP общността.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode е включен. ownCloud изисква този режим да бъде изключен, за да функионира нормално.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode е непропръчителна и общо взето безсмислена настройка и трябва да бъде изключена. Моля, поискай твоя администратор да я изключи ви php.ini или в конфигурацията на уве сървъра.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes е включен. ownCloud изисква да е изключен, за да функнионира нормално.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes е непропръчителна и общо взето безсмислена настройка и трябва да бъде изключена. Моля, поискай твоя администратор да я изключи ви php.ini или в конфигурацията на уве сървъра.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP модулите са инсталирани, но все още се обявяват като липсващи?",
-"Please ask your server administrator to restart the web server." => "Моля, поискай от своя администратор да рестартира уеб сървъра.",
-"PostgreSQL >= 9 required" => "Изисква се PostgreSQL >= 9",
-"Please upgrade your database version" => "Моля, обнови базата данни.",
-"Error occurred while checking PostgreSQL version" => "Настъпи грешка при проверката на версията на PostgreSQL.",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Моля, увери се, че PostgreSQL >= 9 или провери докладите за повече информация относно грешката.",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Моля, промени правата за достъп на 0770, за да не може директорията да бъде видяна от други потребители.",
-"Data directory (%s) is readable by other users" => "Data папката (%s) може да бъде разгледана от други потребители",
-"Data directory (%s) is invalid" => "Data папката (%s) e невалидна",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Моля, увери се, че data папката съдържа файл \".ocdata\" в себе си.",
-"Could not obtain lock type %d on \"%s\"." => "Неуспешен опит за ексклузивен достъп от типa %d върху \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/bn_BD.js b/lib/l10n/bn_BD.js
new file mode 100644
index 00000000000..ea94de9912e
--- /dev/null
+++ b/lib/l10n/bn_BD.js
@@ -0,0 +1,45 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "\"config\" ডিরেক্টরিতে লেখা যায়না!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "সাধারণতঃ ওয়বসার্ভারকে কনফিগ ডিরেক্টরিতে লেখার অধিকার দিয়ে এই সমস্যা সমাধান করা যায়",
+ "See %s" : "%s দেখ",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "সাধারণতঃ ওয়বসার্ভারকে কনফিগ ডিরেক্টরি%sতে লেখার অধিকার দিয়ে%s এই সমস্যা সমাধান করা যায়",
+ "Sample configuration detected" : "নমুনা কনফিগারেশন পাওয়া গেছে",
+ "Help" : "সহায়িকা",
+ "Personal" : "ব্যক্তিগত",
+ "Settings" : "নিয়ামকসমূহ",
+ "Users" : "ব্যবহারকারী",
+ "Admin" : "প্রশাসন",
+ "No app name specified" : "কোন অ্যাপ নাম সুনির্দিষ্ট নয়",
+ "Unknown filetype" : "অজানা প্রকৃতির ফাইল",
+ "Invalid image" : "অবৈধ চিত্র",
+ "web services under your control" : "ওয়েব সার্ভিস আপনার হাতের মুঠোয়",
+ "App directory already exists" : "এই অ্যাপ ডিরেক্টরিটি পূর্ব থেকেই বিদ্যমান",
+ "Can't create app folder. Please fix permissions. %s" : "অ্যাপ ফোল্ডার বানানো হেলনা। অনুমতি নির্ধারণ করুন। %s",
+ "No source specified when installing app" : "অ্যাপ ইনস্টল করতে যেয়ে কোন উৎস নির্দিষ্ট করা হয়নি",
+ "Failed to open archive when installing app" : "অ্যাপ ইনস্টল করতে যেয়ে আর্কাইভ উম্মুক্তকরণ ব্যার্থ হলো",
+ "App does not provide an info.xml file" : "অ্যাপের সঙ্গে একটি info.xml ফাইল নেই",
+ "App can't be installed because of not allowed code in the App" : "অ্যাপের সাথে অননুমোদিত কোড থাকায় অ্যাপটি ইনস্টল করা যাবেনা",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "অ্যাপ ইনস্টল করা যাবেনা কারণ এতে ননশিপড অ্যাপ এর জন্য অননুমোদিত true ট্যাগ বিদ্যমান ",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : " info.xml/version এর উল্লেখিত সংষ্করণ এবং অ্যাপ স্টোর হতে প্রদান করা সংষ্করণ একরকম না হওয়াতে অ্যাপটি ইনস্টল করা যাবেনা",
+ "Application is not enabled" : "অ্যাপ্লিকেসনটি সক্রিয় নয়",
+ "Authentication error" : "অনুমোদন ঘটিত সমস্যা",
+ "Token expired. Please reload page." : "টোকেন মেয়াদোত্তীর্ণ। দয়া করে পৃষ্ঠাটি পূনরায় লোড করুন।",
+ "Unknown user" : "অপরিচিত ব্যবহারকারী",
+ "%s shared »%s« with you" : "%s আপনার সাথে »%s« ভাগাভাগি করেছে",
+ "Sharing %s failed, because the file does not exist" : "%s ভাগাভাগি ব্যার্থ, কারণ ফাইলটি নেই",
+ "You are not allowed to share %s" : "আপনি %s ভাগাভাগি করতে পারবেননা",
+ "seconds ago" : "সেকেন্ড পূর্বে",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "আজ",
+ "yesterday" : "গতকাল",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "গত মাস",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "গত বছর",
+ "years ago" : "বছর পূর্বে",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "পিএইচপি সেফ মোড কার্যকর আছে। গউনক্লাউড সঠিকভাবে কাজ করতে হলে এটি অকার্যকর করা প্রয়োজন।"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/bn_BD.json b/lib/l10n/bn_BD.json
new file mode 100644
index 00000000000..bcf7ae8e1b7
--- /dev/null
+++ b/lib/l10n/bn_BD.json
@@ -0,0 +1,43 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "\"config\" ডিরেক্টরিতে লেখা যায়না!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "সাধারণতঃ ওয়বসার্ভারকে কনফিগ ডিরেক্টরিতে লেখার অধিকার দিয়ে এই সমস্যা সমাধান করা যায়",
+ "See %s" : "%s দেখ",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "সাধারণতঃ ওয়বসার্ভারকে কনফিগ ডিরেক্টরি%sতে লেখার অধিকার দিয়ে%s এই সমস্যা সমাধান করা যায়",
+ "Sample configuration detected" : "নমুনা কনফিগারেশন পাওয়া গেছে",
+ "Help" : "সহায়িকা",
+ "Personal" : "ব্যক্তিগত",
+ "Settings" : "নিয়ামকসমূহ",
+ "Users" : "ব্যবহারকারী",
+ "Admin" : "প্রশাসন",
+ "No app name specified" : "কোন অ্যাপ নাম সুনির্দিষ্ট নয়",
+ "Unknown filetype" : "অজানা প্রকৃতির ফাইল",
+ "Invalid image" : "অবৈধ চিত্র",
+ "web services under your control" : "ওয়েব সার্ভিস আপনার হাতের মুঠোয়",
+ "App directory already exists" : "এই অ্যাপ ডিরেক্টরিটি পূর্ব থেকেই বিদ্যমান",
+ "Can't create app folder. Please fix permissions. %s" : "অ্যাপ ফোল্ডার বানানো হেলনা। অনুমতি নির্ধারণ করুন। %s",
+ "No source specified when installing app" : "অ্যাপ ইনস্টল করতে যেয়ে কোন উৎস নির্দিষ্ট করা হয়নি",
+ "Failed to open archive when installing app" : "অ্যাপ ইনস্টল করতে যেয়ে আর্কাইভ উম্মুক্তকরণ ব্যার্থ হলো",
+ "App does not provide an info.xml file" : "অ্যাপের সঙ্গে একটি info.xml ফাইল নেই",
+ "App can't be installed because of not allowed code in the App" : "অ্যাপের সাথে অননুমোদিত কোড থাকায় অ্যাপটি ইনস্টল করা যাবেনা",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "অ্যাপ ইনস্টল করা যাবেনা কারণ এতে ননশিপড অ্যাপ এর জন্য অননুমোদিত true ট্যাগ বিদ্যমান ",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : " info.xml/version এর উল্লেখিত সংষ্করণ এবং অ্যাপ স্টোর হতে প্রদান করা সংষ্করণ একরকম না হওয়াতে অ্যাপটি ইনস্টল করা যাবেনা",
+ "Application is not enabled" : "অ্যাপ্লিকেসনটি সক্রিয় নয়",
+ "Authentication error" : "অনুমোদন ঘটিত সমস্যা",
+ "Token expired. Please reload page." : "টোকেন মেয়াদোত্তীর্ণ। দয়া করে পৃষ্ঠাটি পূনরায় লোড করুন।",
+ "Unknown user" : "অপরিচিত ব্যবহারকারী",
+ "%s shared »%s« with you" : "%s আপনার সাথে »%s« ভাগাভাগি করেছে",
+ "Sharing %s failed, because the file does not exist" : "%s ভাগাভাগি ব্যার্থ, কারণ ফাইলটি নেই",
+ "You are not allowed to share %s" : "আপনি %s ভাগাভাগি করতে পারবেননা",
+ "seconds ago" : "সেকেন্ড পূর্বে",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "আজ",
+ "yesterday" : "গতকাল",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "গত মাস",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "গত বছর",
+ "years ago" : "বছর পূর্বে",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "পিএইচপি সেফ মোড কার্যকর আছে। গউনক্লাউড সঠিকভাবে কাজ করতে হলে এটি অকার্যকর করা প্রয়োজন।"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/bn_BD.php b/lib/l10n/bn_BD.php
deleted file mode 100644
index 5ebc8c431b8..00000000000
--- a/lib/l10n/bn_BD.php
+++ /dev/null
@@ -1,44 +0,0 @@
- "\"config\" ডিরেক্টরিতে লেখা যায়না!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "সাধারণতঃ ওয়বসার্ভারকে কনফিগ ডিরেক্টরিতে লেখার অধিকার দিয়ে এই সমস্যা সমাধান করা যায়",
-"See %s" => "%s দেখ",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "সাধারণতঃ ওয়বসার্ভারকে কনফিগ ডিরেক্টরি%sতে লেখার অধিকার দিয়ে%s এই সমস্যা সমাধান করা যায়",
-"Sample configuration detected" => "নমুনা কনফিগারেশন পাওয়া গেছে",
-"Help" => "সহায়িকা",
-"Personal" => "ব্যক্তিগত",
-"Settings" => "নিয়ামকসমূহ",
-"Users" => "ব্যবহারকারী",
-"Admin" => "প্রশাসন",
-"No app name specified" => "কোন অ্যাপ নাম সুনির্দিষ্ট নয়",
-"Unknown filetype" => "অজানা প্রকৃতির ফাইল",
-"Invalid image" => "অবৈধ চিত্র",
-"web services under your control" => "ওয়েব সার্ভিস আপনার হাতের মুঠোয়",
-"App directory already exists" => "এই অ্যাপ ডিরেক্টরিটি পূর্ব থেকেই বিদ্যমান",
-"Can't create app folder. Please fix permissions. %s" => "অ্যাপ ফোল্ডার বানানো হেলনা। অনুমতি নির্ধারণ করুন। %s",
-"No source specified when installing app" => "অ্যাপ ইনস্টল করতে যেয়ে কোন উৎস নির্দিষ্ট করা হয়নি",
-"Failed to open archive when installing app" => "অ্যাপ ইনস্টল করতে যেয়ে আর্কাইভ উম্মুক্তকরণ ব্যার্থ হলো",
-"App does not provide an info.xml file" => "অ্যাপের সঙ্গে একটি info.xml ফাইল নেই",
-"App can't be installed because of not allowed code in the App" => "অ্যাপের সাথে অননুমোদিত কোড থাকায় অ্যাপটি ইনস্টল করা যাবেনা",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "অ্যাপ ইনস্টল করা যাবেনা কারণ এতে ননশিপড অ্যাপ এর জন্য অননুমোদিত true ট্যাগ বিদ্যমান ",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => " info.xml/version এর উল্লেখিত সংষ্করণ এবং অ্যাপ স্টোর হতে প্রদান করা সংষ্করণ একরকম না হওয়াতে অ্যাপটি ইনস্টল করা যাবেনা",
-"Application is not enabled" => "অ্যাপ্লিকেসনটি সক্রিয় নয়",
-"Authentication error" => "অনুমোদন ঘটিত সমস্যা",
-"Token expired. Please reload page." => "টোকেন মেয়াদোত্তীর্ণ। দয়া করে পৃষ্ঠাটি পূনরায় লোড করুন।",
-"Unknown user" => "অপরিচিত ব্যবহারকারী",
-"%s shared »%s« with you" => "%s আপনার সাথে »%s« ভাগাভাগি করেছে",
-"Sharing %s failed, because the file does not exist" => "%s ভাগাভাগি ব্যার্থ, কারণ ফাইলটি নেই",
-"You are not allowed to share %s" => "আপনি %s ভাগাভাগি করতে পারবেননা",
-"seconds ago" => "সেকেন্ড পূর্বে",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"today" => "আজ",
-"yesterday" => "গতকাল",
-"_%n day go_::_%n days ago_" => array("",""),
-"last month" => "গত মাস",
-"_%n month ago_::_%n months ago_" => array("",""),
-"last year" => "গত বছর",
-"years ago" => "বছর পূর্বে",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "পিএইচপি সেফ মোড কার্যকর আছে। গউনক্লাউড সঠিকভাবে কাজ করতে হলে এটি অকার্যকর করা প্রয়োজন।"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/bn_IN.js b/lib/l10n/bn_IN.js
new file mode 100644
index 00000000000..e8129c3586d
--- /dev/null
+++ b/lib/l10n/bn_IN.js
@@ -0,0 +1,10 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Settings" : "সেটিংস",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/bn_IN.json b/lib/l10n/bn_IN.json
new file mode 100644
index 00000000000..052226c8728
--- /dev/null
+++ b/lib/l10n/bn_IN.json
@@ -0,0 +1,8 @@
+{ "translations": {
+ "Settings" : "সেটিংস",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/bn_IN.php b/lib/l10n/bn_IN.php
deleted file mode 100644
index d247c8f8da4..00000000000
--- a/lib/l10n/bn_IN.php
+++ /dev/null
@@ -1,9 +0,0 @@
- "সেটিংস",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/bs.js b/lib/l10n/bs.js
new file mode 100644
index 00000000000..e977f036b3c
--- /dev/null
+++ b/lib/l10n/bs.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","",""],
+ "_%n day go_::_%n days ago_" : ["","",""],
+ "_%n month ago_::_%n months ago_" : ["","",""]
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/lib/l10n/bs.json b/lib/l10n/bs.json
new file mode 100644
index 00000000000..e6627bb2354
--- /dev/null
+++ b/lib/l10n/bs.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","",""],
+ "_%n day go_::_%n days ago_" : ["","",""],
+ "_%n month ago_::_%n months ago_" : ["","",""]
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+}
\ No newline at end of file
diff --git a/lib/l10n/bs.php b/lib/l10n/bs.php
deleted file mode 100644
index 3cb98906e62..00000000000
--- a/lib/l10n/bs.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("","",""),
-"_%n hour ago_::_%n hours ago_" => array("","",""),
-"_%n day go_::_%n days ago_" => array("","",""),
-"_%n month ago_::_%n months ago_" => array("","","")
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/lib/l10n/ca.js b/lib/l10n/ca.js
new file mode 100644
index 00000000000..3137785d39f
--- /dev/null
+++ b/lib/l10n/ca.js
@@ -0,0 +1,123 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "No es pot escriure a la carpeta \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Això normalment es pot solucionar donant al servidor web permís d'escriptura a la carpeta de configuració",
+ "See %s" : "Comproveu %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s",
+ "Sample configuration detected" : "Configuració d'exemple detectada",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "S'ha detectat que la configuració d'exemple ha estat copiada. Això no està suportat, i podria corrompre la vostra instalació. Siusplau, llegiu la documentació abans de realitzar canvis a config.php",
+ "Help" : "Ajuda",
+ "Personal" : "Personal",
+ "Settings" : "Configuració",
+ "Users" : "Usuaris",
+ "Admin" : "Administració",
+ "Recommended" : "Recomanat",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "L'aplicació \\\"%s\\\" no es pot instal·lar perquè no es compatible amb aquesta versió de ownCloud.",
+ "No app name specified" : "No heu especificat cap nom d'aplicació",
+ "Unknown filetype" : "Tipus de fitxer desconegut",
+ "Invalid image" : "Imatge no vàlida",
+ "web services under your control" : "controleu els vostres serveis web",
+ "App directory already exists" : "La carpeta de l'aplicació ja existeix",
+ "Can't create app folder. Please fix permissions. %s" : "No es pot crear la carpeta de l'aplicació. Arregleu els permisos. %s",
+ "No source specified when installing app" : "No heu especificat la font en instal·lar l'aplicació",
+ "No href specified when installing app from http" : "No heu especificat href en instal·lar l'aplicació des de http",
+ "No path specified when installing app from local file" : "No heu seleccionat el camí en instal·lar una aplicació des d'un fitxer local",
+ "Archives of type %s are not supported" : "Els fitxers del tipus %s no són compatibles",
+ "Failed to open archive when installing app" : "Ha fallat l'obertura del fitxer en instal·lar l'aplicació",
+ "App does not provide an info.xml file" : "L'aplicació no proporciona un fitxer info.xml",
+ "App can't be installed because of not allowed code in the App" : "L'aplicació no es pot instal·lar perquè hi ha codi no autoritzat en l'aplicació",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "L'aplicació no es pot instal·lar perquè no és compatible amb aquesta versió d'ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "L'aplicació no es pot instal·lar perquè conté l'etiqueta vertader que no es permet per aplicacions no enviades",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "L'aplicació no es pot instal·lar perquè la versió a info.xml/version no és la mateixa que la versió indicada des de la botiga d'aplicacions",
+ "Application is not enabled" : "L'aplicació no està habilitada",
+ "Authentication error" : "Error d'autenticació",
+ "Token expired. Please reload page." : "El testimoni ha expirat. Torneu a carregar la pàgina.",
+ "Unknown user" : "Usuari desconegut",
+ "%s enter the database username." : "%s escriviu el nom d'usuari de la base de dades.",
+ "%s enter the database name." : "%s escriviu el nom de la base de dades.",
+ "%s you may not use dots in the database name" : "%s no podeu usar punts en el nom de la base de dades",
+ "MS SQL username and/or password not valid: %s" : "Nom d'usuari i/o contrasenya MS SQL no vàlids: %s",
+ "You need to enter either an existing account or the administrator." : "Heu d'escriure un compte existent o el d'administrador.",
+ "MySQL/MariaDB username and/or password not valid" : "El nom d'usuari i/o la contrasenya de MySQL/MariaDB no són vàlids",
+ "DB Error: \"%s\"" : "Error DB: \"%s\"",
+ "Offending command was: \"%s\"" : "L'ordre en conflicte és: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "L'usuari MySQL/MariaDB '%s'@'localhost' ja existeix.",
+ "Drop this user from MySQL/MariaDB" : "Esborreu aquest usuari de MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "L'usuari MySQL/MariaDB '%s'@'%%' ja existeix",
+ "Drop this user from MySQL/MariaDB." : "Esborreu aquest usuari de MySQL/MariaDB.",
+ "Oracle connection could not be established" : "No s'ha pogut establir la connexió Oracle",
+ "Oracle username and/or password not valid" : "Nom d'usuari i/o contrasenya Oracle no vàlids",
+ "Offending command was: \"%s\", name: %s, password: %s" : "L'ordre en conflicte és: \"%s\", nom: %s, contrasenya: %s",
+ "PostgreSQL username and/or password not valid" : "Nom d'usuari i/o contrasenya PostgreSQL no vàlids",
+ "Set an admin username." : "Establiu un nom d'usuari per l'administrador.",
+ "Set an admin password." : "Establiu una contrasenya per l'administrador.",
+ "%s shared »%s« with you" : "%s ha compartit »%s« amb tu",
+ "Sharing %s failed, because the file does not exist" : "Ha fallat en compartir %s, perquè el fitxer no existeix",
+ "You are not allowed to share %s" : "No se us permet compartir %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Ha fallat en compartir %s, perquè l'usuari %s és el propietari de l'element",
+ "Sharing %s failed, because the user %s does not exist" : "Ha fallat en compartir %s, perquè l'usuari %s no existeix",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Ha fallat en compartir %s, perquè l'usuari %s no és membre de cap grup dels que %s és membre",
+ "Sharing %s failed, because this item is already shared with %s" : "Ha fallat en compartir %s, perquè l'element ja està compartit amb %s",
+ "Sharing %s failed, because the group %s does not exist" : "Ha fallat en compartir %s, perquè el grup %s no existeix",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Ha fallat en compartir %s, perquè %s no és membre del grup %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Heu de proporcionar una contrasenya per crear un enllaç públic. Només es permeten enllaços segurs.",
+ "Sharing %s failed, because sharing with links is not allowed" : "Ha fallat en compartir %s, perquè no es permet compartir amb enllaços",
+ "Share type %s is not valid for %s" : "La compartició tipus %s no és vàlida per %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Ha fallat en establir els permisos per %s perquè aquests excedeixen els permesos per a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Ha fallat en establir els permisos per %s, perquè no s'ha trobat l'element",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No es pot guardar la data d'expiració. Els fitxers o carpetes compartits no poden expirar més tard de %s després d'haver-se compratit.",
+ "Cannot set expiration date. Expiration date is in the past" : "No es pot guardar la data d'expiració. La data d'expiració ja ha passat.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El rerefons de compartició %s ha d'implementar la interfície OCP\\Share_Backend",
+ "Sharing backend %s not found" : "El rerefons de compartició %s no s'ha trobat",
+ "Sharing backend for %s not found" : "El rerefons de compartició per a %s no s'ha trobat",
+ "Sharing %s failed, because the user %s is the original sharer" : "Ha fallat en compartir %s perquè l'usuari %s és qui comparteix inicialment",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Ha fallat en compartir %s perquè els permisos excedeixen els permesos per a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Ha fallat en compartir %s, perquè no es permet compartir de nou",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Ha fallat en compartir %s, perquè el rerefons de compartir per %s no pot trobar la seva font",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Ha fallat en compartir %s, perquè el fitxer no s'ha trobat en el fitxer cau",
+ "Could not find category \"%s\"" : "No s'ha trobat la categoria \"%s\"",
+ "seconds ago" : "segons enrere",
+ "_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"],
+ "_%n hour ago_::_%n hours ago_" : ["fa %n hora","fa %n hores"],
+ "today" : "avui",
+ "yesterday" : "ahir",
+ "_%n day go_::_%n days ago_" : ["fa %n dia","fa %n dies"],
+ "last month" : "el mes passat",
+ "_%n month ago_::_%n months ago_" : ["fa %n mes","fa %n mesos"],
+ "last year" : "l'any passat",
+ "years ago" : "anys enrere",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Només els caràcters següents estan permesos en el nom d'usuari: \"a-z\", \"A-Z\", \"0-9\" i \"_.@-\"",
+ "A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid",
+ "A valid password must be provided" : "Heu de facilitar una contrasenya vàlida",
+ "The username is already being used" : "El nom d'usuari ja està en ús",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "No hi ha instal·lats controladors de bases de dades (sqlite, mysql o postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s",
+ "Cannot write into \"config\" directory" : "No es pot escriure a la carpeta \"config\"",
+ "Cannot write into \"apps\" directory" : "No es pot escriure a la carpeta \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta d'aplicacions %s o inhabilitant la botiga d'aplicacions en el fitxer de configuració.",
+ "Cannot create \"data\" directory (%s)" : "No es pot crear la carpeta \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Aixó normalment es por solucionar donant al servidor web permís d'accés a la carpeta arrel ",
+ "Setting locale to %s failed" : "Ha fallat en establir la llengua a %s",
+ "Please install one of these locales on your system and restart your webserver." : "Siusplau, instal·li un d'aquests arxius de localització en el seu sistema, i reinicii el seu servidor web.",
+ "Please ask your server administrator to install the module." : "Demaneu a l'administrador del sistema que instal·li el mòdul.",
+ "PHP module %s not installed." : "El mòdul PHP %s no està instal·lat.",
+ "PHP %s or higher is required." : "Es requereix PHP %s o superior.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Demaneu a l'administrador que actualitzi PHP a l'última versió. La versió que teniu instal·lada no té suport d'ownCloud ni de la comunitat PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "El mode segur de PHP està activat. OwnCloud requereix que es desactivi per funcionar correctament.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "El mode segur de PHP està desfasat i és principalment inútil i hauria de desactivar-se. Demaneu a l'administrador que el desactivi a php.ini o a la configuració del servidor web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Les Magic Quotes estan activades. OwnCloud requereix que les desactiveu per funcionar correctament.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes està desfassat i és principalment inútil i hauria de desactivar-se. Demaneu a l'administrador que el desactivi a php.ini o a la configuració del servidor web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?",
+ "Please ask your server administrator to restart the web server." : "Demaneu a l'administrador que reinici el servidor web.",
+ "PostgreSQL >= 9 required" : "Es requereix PostgreSQL >= 9",
+ "Please upgrade your database version" : "Actualitzeu la versió de la base de dades",
+ "Error occurred while checking PostgreSQL version" : "Hi ha hagut un error en comprovar la versió de PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Assegureu-vos que teniu PostgreSQL >= 9 o comproveu els registres per més informació quant a l'error",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Canvieu els permisos a 0770 per tal que la carpeta no es pugui llistar per altres usuaris.",
+ "Data directory (%s) is readable by other users" : "La carpeta de dades (%s) és llegible per altres usuaris",
+ "Data directory (%s) is invalid" : "La carpeta de dades (%s) no és vàlida",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Comproveu que la carpeta de dades contingui un fitxer \".ocdata\" a la seva arrel.",
+ "Could not obtain lock type %d on \"%s\"." : "No s'ha pogut obtenir un bloqueig tipus %d a \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ca.json b/lib/l10n/ca.json
new file mode 100644
index 00000000000..5efd4f5dad7
--- /dev/null
+++ b/lib/l10n/ca.json
@@ -0,0 +1,121 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "No es pot escriure a la carpeta \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Això normalment es pot solucionar donant al servidor web permís d'escriptura a la carpeta de configuració",
+ "See %s" : "Comproveu %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s",
+ "Sample configuration detected" : "Configuració d'exemple detectada",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "S'ha detectat que la configuració d'exemple ha estat copiada. Això no està suportat, i podria corrompre la vostra instalació. Siusplau, llegiu la documentació abans de realitzar canvis a config.php",
+ "Help" : "Ajuda",
+ "Personal" : "Personal",
+ "Settings" : "Configuració",
+ "Users" : "Usuaris",
+ "Admin" : "Administració",
+ "Recommended" : "Recomanat",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "L'aplicació \\\"%s\\\" no es pot instal·lar perquè no es compatible amb aquesta versió de ownCloud.",
+ "No app name specified" : "No heu especificat cap nom d'aplicació",
+ "Unknown filetype" : "Tipus de fitxer desconegut",
+ "Invalid image" : "Imatge no vàlida",
+ "web services under your control" : "controleu els vostres serveis web",
+ "App directory already exists" : "La carpeta de l'aplicació ja existeix",
+ "Can't create app folder. Please fix permissions. %s" : "No es pot crear la carpeta de l'aplicació. Arregleu els permisos. %s",
+ "No source specified when installing app" : "No heu especificat la font en instal·lar l'aplicació",
+ "No href specified when installing app from http" : "No heu especificat href en instal·lar l'aplicació des de http",
+ "No path specified when installing app from local file" : "No heu seleccionat el camí en instal·lar una aplicació des d'un fitxer local",
+ "Archives of type %s are not supported" : "Els fitxers del tipus %s no són compatibles",
+ "Failed to open archive when installing app" : "Ha fallat l'obertura del fitxer en instal·lar l'aplicació",
+ "App does not provide an info.xml file" : "L'aplicació no proporciona un fitxer info.xml",
+ "App can't be installed because of not allowed code in the App" : "L'aplicació no es pot instal·lar perquè hi ha codi no autoritzat en l'aplicació",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "L'aplicació no es pot instal·lar perquè no és compatible amb aquesta versió d'ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "L'aplicació no es pot instal·lar perquè conté l'etiqueta vertader que no es permet per aplicacions no enviades",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "L'aplicació no es pot instal·lar perquè la versió a info.xml/version no és la mateixa que la versió indicada des de la botiga d'aplicacions",
+ "Application is not enabled" : "L'aplicació no està habilitada",
+ "Authentication error" : "Error d'autenticació",
+ "Token expired. Please reload page." : "El testimoni ha expirat. Torneu a carregar la pàgina.",
+ "Unknown user" : "Usuari desconegut",
+ "%s enter the database username." : "%s escriviu el nom d'usuari de la base de dades.",
+ "%s enter the database name." : "%s escriviu el nom de la base de dades.",
+ "%s you may not use dots in the database name" : "%s no podeu usar punts en el nom de la base de dades",
+ "MS SQL username and/or password not valid: %s" : "Nom d'usuari i/o contrasenya MS SQL no vàlids: %s",
+ "You need to enter either an existing account or the administrator." : "Heu d'escriure un compte existent o el d'administrador.",
+ "MySQL/MariaDB username and/or password not valid" : "El nom d'usuari i/o la contrasenya de MySQL/MariaDB no són vàlids",
+ "DB Error: \"%s\"" : "Error DB: \"%s\"",
+ "Offending command was: \"%s\"" : "L'ordre en conflicte és: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "L'usuari MySQL/MariaDB '%s'@'localhost' ja existeix.",
+ "Drop this user from MySQL/MariaDB" : "Esborreu aquest usuari de MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "L'usuari MySQL/MariaDB '%s'@'%%' ja existeix",
+ "Drop this user from MySQL/MariaDB." : "Esborreu aquest usuari de MySQL/MariaDB.",
+ "Oracle connection could not be established" : "No s'ha pogut establir la connexió Oracle",
+ "Oracle username and/or password not valid" : "Nom d'usuari i/o contrasenya Oracle no vàlids",
+ "Offending command was: \"%s\", name: %s, password: %s" : "L'ordre en conflicte és: \"%s\", nom: %s, contrasenya: %s",
+ "PostgreSQL username and/or password not valid" : "Nom d'usuari i/o contrasenya PostgreSQL no vàlids",
+ "Set an admin username." : "Establiu un nom d'usuari per l'administrador.",
+ "Set an admin password." : "Establiu una contrasenya per l'administrador.",
+ "%s shared »%s« with you" : "%s ha compartit »%s« amb tu",
+ "Sharing %s failed, because the file does not exist" : "Ha fallat en compartir %s, perquè el fitxer no existeix",
+ "You are not allowed to share %s" : "No se us permet compartir %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Ha fallat en compartir %s, perquè l'usuari %s és el propietari de l'element",
+ "Sharing %s failed, because the user %s does not exist" : "Ha fallat en compartir %s, perquè l'usuari %s no existeix",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Ha fallat en compartir %s, perquè l'usuari %s no és membre de cap grup dels que %s és membre",
+ "Sharing %s failed, because this item is already shared with %s" : "Ha fallat en compartir %s, perquè l'element ja està compartit amb %s",
+ "Sharing %s failed, because the group %s does not exist" : "Ha fallat en compartir %s, perquè el grup %s no existeix",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Ha fallat en compartir %s, perquè %s no és membre del grup %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Heu de proporcionar una contrasenya per crear un enllaç públic. Només es permeten enllaços segurs.",
+ "Sharing %s failed, because sharing with links is not allowed" : "Ha fallat en compartir %s, perquè no es permet compartir amb enllaços",
+ "Share type %s is not valid for %s" : "La compartició tipus %s no és vàlida per %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Ha fallat en establir els permisos per %s perquè aquests excedeixen els permesos per a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Ha fallat en establir els permisos per %s, perquè no s'ha trobat l'element",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No es pot guardar la data d'expiració. Els fitxers o carpetes compartits no poden expirar més tard de %s després d'haver-se compratit.",
+ "Cannot set expiration date. Expiration date is in the past" : "No es pot guardar la data d'expiració. La data d'expiració ja ha passat.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El rerefons de compartició %s ha d'implementar la interfície OCP\\Share_Backend",
+ "Sharing backend %s not found" : "El rerefons de compartició %s no s'ha trobat",
+ "Sharing backend for %s not found" : "El rerefons de compartició per a %s no s'ha trobat",
+ "Sharing %s failed, because the user %s is the original sharer" : "Ha fallat en compartir %s perquè l'usuari %s és qui comparteix inicialment",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Ha fallat en compartir %s perquè els permisos excedeixen els permesos per a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Ha fallat en compartir %s, perquè no es permet compartir de nou",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Ha fallat en compartir %s, perquè el rerefons de compartir per %s no pot trobar la seva font",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Ha fallat en compartir %s, perquè el fitxer no s'ha trobat en el fitxer cau",
+ "Could not find category \"%s\"" : "No s'ha trobat la categoria \"%s\"",
+ "seconds ago" : "segons enrere",
+ "_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"],
+ "_%n hour ago_::_%n hours ago_" : ["fa %n hora","fa %n hores"],
+ "today" : "avui",
+ "yesterday" : "ahir",
+ "_%n day go_::_%n days ago_" : ["fa %n dia","fa %n dies"],
+ "last month" : "el mes passat",
+ "_%n month ago_::_%n months ago_" : ["fa %n mes","fa %n mesos"],
+ "last year" : "l'any passat",
+ "years ago" : "anys enrere",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Només els caràcters següents estan permesos en el nom d'usuari: \"a-z\", \"A-Z\", \"0-9\" i \"_.@-\"",
+ "A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid",
+ "A valid password must be provided" : "Heu de facilitar una contrasenya vàlida",
+ "The username is already being used" : "El nom d'usuari ja està en ús",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "No hi ha instal·lats controladors de bases de dades (sqlite, mysql o postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s",
+ "Cannot write into \"config\" directory" : "No es pot escriure a la carpeta \"config\"",
+ "Cannot write into \"apps\" directory" : "No es pot escriure a la carpeta \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta d'aplicacions %s o inhabilitant la botiga d'aplicacions en el fitxer de configuració.",
+ "Cannot create \"data\" directory (%s)" : "No es pot crear la carpeta \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Aixó normalment es por solucionar donant al servidor web permís d'accés a la carpeta arrel ",
+ "Setting locale to %s failed" : "Ha fallat en establir la llengua a %s",
+ "Please install one of these locales on your system and restart your webserver." : "Siusplau, instal·li un d'aquests arxius de localització en el seu sistema, i reinicii el seu servidor web.",
+ "Please ask your server administrator to install the module." : "Demaneu a l'administrador del sistema que instal·li el mòdul.",
+ "PHP module %s not installed." : "El mòdul PHP %s no està instal·lat.",
+ "PHP %s or higher is required." : "Es requereix PHP %s o superior.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Demaneu a l'administrador que actualitzi PHP a l'última versió. La versió que teniu instal·lada no té suport d'ownCloud ni de la comunitat PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "El mode segur de PHP està activat. OwnCloud requereix que es desactivi per funcionar correctament.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "El mode segur de PHP està desfasat i és principalment inútil i hauria de desactivar-se. Demaneu a l'administrador que el desactivi a php.ini o a la configuració del servidor web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Les Magic Quotes estan activades. OwnCloud requereix que les desactiveu per funcionar correctament.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes està desfassat i és principalment inútil i hauria de desactivar-se. Demaneu a l'administrador que el desactivi a php.ini o a la configuració del servidor web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?",
+ "Please ask your server administrator to restart the web server." : "Demaneu a l'administrador que reinici el servidor web.",
+ "PostgreSQL >= 9 required" : "Es requereix PostgreSQL >= 9",
+ "Please upgrade your database version" : "Actualitzeu la versió de la base de dades",
+ "Error occurred while checking PostgreSQL version" : "Hi ha hagut un error en comprovar la versió de PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Assegureu-vos que teniu PostgreSQL >= 9 o comproveu els registres per més informació quant a l'error",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Canvieu els permisos a 0770 per tal que la carpeta no es pugui llistar per altres usuaris.",
+ "Data directory (%s) is readable by other users" : "La carpeta de dades (%s) és llegible per altres usuaris",
+ "Data directory (%s) is invalid" : "La carpeta de dades (%s) no és vàlida",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Comproveu que la carpeta de dades contingui un fitxer \".ocdata\" a la seva arrel.",
+ "Could not obtain lock type %d on \"%s\"." : "No s'ha pogut obtenir un bloqueig tipus %d a \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ca.php b/lib/l10n/ca.php
deleted file mode 100644
index 456211ad0c1..00000000000
--- a/lib/l10n/ca.php
+++ /dev/null
@@ -1,121 +0,0 @@
- "No es pot escriure a la carpeta \"config\"!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Això normalment es pot solucionar donant al servidor web permís d'escriptura a la carpeta de configuració",
-"See %s" => "Comproveu %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s",
-"Sample configuration detected" => "Configuració d'exemple detectada",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "S'ha detectat que la configuració d'exemple ha estat copiada. Això no està suportat, i podria corrompre la vostra instalació. Siusplau, llegiu la documentació abans de realitzar canvis a config.php",
-"Help" => "Ajuda",
-"Personal" => "Personal",
-"Settings" => "Configuració",
-"Users" => "Usuaris",
-"Admin" => "Administració",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "L'aplicació \\\"%s\\\" no es pot instal·lar perquè no es compatible amb aquesta versió de ownCloud.",
-"No app name specified" => "No heu especificat cap nom d'aplicació",
-"Unknown filetype" => "Tipus de fitxer desconegut",
-"Invalid image" => "Imatge no vàlida",
-"web services under your control" => "controleu els vostres serveis web",
-"App directory already exists" => "La carpeta de l'aplicació ja existeix",
-"Can't create app folder. Please fix permissions. %s" => "No es pot crear la carpeta de l'aplicació. Arregleu els permisos. %s",
-"No source specified when installing app" => "No heu especificat la font en instal·lar l'aplicació",
-"No href specified when installing app from http" => "No heu especificat href en instal·lar l'aplicació des de http",
-"No path specified when installing app from local file" => "No heu seleccionat el camí en instal·lar una aplicació des d'un fitxer local",
-"Archives of type %s are not supported" => "Els fitxers del tipus %s no són compatibles",
-"Failed to open archive when installing app" => "Ha fallat l'obertura del fitxer en instal·lar l'aplicació",
-"App does not provide an info.xml file" => "L'aplicació no proporciona un fitxer info.xml",
-"App can't be installed because of not allowed code in the App" => "L'aplicació no es pot instal·lar perquè hi ha codi no autoritzat en l'aplicació",
-"App can't be installed because it is not compatible with this version of ownCloud" => "L'aplicació no es pot instal·lar perquè no és compatible amb aquesta versió d'ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "L'aplicació no es pot instal·lar perquè conté l'etiqueta vertader que no es permet per aplicacions no enviades",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "L'aplicació no es pot instal·lar perquè la versió a info.xml/version no és la mateixa que la versió indicada des de la botiga d'aplicacions",
-"Application is not enabled" => "L'aplicació no està habilitada",
-"Authentication error" => "Error d'autenticació",
-"Token expired. Please reload page." => "El testimoni ha expirat. Torneu a carregar la pàgina.",
-"Unknown user" => "Usuari desconegut",
-"%s enter the database username." => "%s escriviu el nom d'usuari de la base de dades.",
-"%s enter the database name." => "%s escriviu el nom de la base de dades.",
-"%s you may not use dots in the database name" => "%s no podeu usar punts en el nom de la base de dades",
-"MS SQL username and/or password not valid: %s" => "Nom d'usuari i/o contrasenya MS SQL no vàlids: %s",
-"You need to enter either an existing account or the administrator." => "Heu d'escriure un compte existent o el d'administrador.",
-"MySQL/MariaDB username and/or password not valid" => "El nom d'usuari i/o la contrasenya de MySQL/MariaDB no són vàlids",
-"DB Error: \"%s\"" => "Error DB: \"%s\"",
-"Offending command was: \"%s\"" => "L'ordre en conflicte és: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "L'usuari MySQL/MariaDB '%s'@'localhost' ja existeix.",
-"Drop this user from MySQL/MariaDB" => "Esborreu aquest usuari de MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "L'usuari MySQL/MariaDB '%s'@'%%' ja existeix",
-"Drop this user from MySQL/MariaDB." => "Esborreu aquest usuari de MySQL/MariaDB.",
-"Oracle connection could not be established" => "No s'ha pogut establir la connexió Oracle",
-"Oracle username and/or password not valid" => "Nom d'usuari i/o contrasenya Oracle no vàlids",
-"Offending command was: \"%s\", name: %s, password: %s" => "L'ordre en conflicte és: \"%s\", nom: %s, contrasenya: %s",
-"PostgreSQL username and/or password not valid" => "Nom d'usuari i/o contrasenya PostgreSQL no vàlids",
-"Set an admin username." => "Establiu un nom d'usuari per l'administrador.",
-"Set an admin password." => "Establiu una contrasenya per l'administrador.",
-"%s shared »%s« with you" => "%s ha compartit »%s« amb tu",
-"Sharing %s failed, because the file does not exist" => "Ha fallat en compartir %s, perquè el fitxer no existeix",
-"You are not allowed to share %s" => "No se us permet compartir %s",
-"Sharing %s failed, because the user %s is the item owner" => "Ha fallat en compartir %s, perquè l'usuari %s és el propietari de l'element",
-"Sharing %s failed, because the user %s does not exist" => "Ha fallat en compartir %s, perquè l'usuari %s no existeix",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Ha fallat en compartir %s, perquè l'usuari %s no és membre de cap grup dels que %s és membre",
-"Sharing %s failed, because this item is already shared with %s" => "Ha fallat en compartir %s, perquè l'element ja està compartit amb %s",
-"Sharing %s failed, because the group %s does not exist" => "Ha fallat en compartir %s, perquè el grup %s no existeix",
-"Sharing %s failed, because %s is not a member of the group %s" => "Ha fallat en compartir %s, perquè %s no és membre del grup %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Heu de proporcionar una contrasenya per crear un enllaç públic. Només es permeten enllaços segurs.",
-"Sharing %s failed, because sharing with links is not allowed" => "Ha fallat en compartir %s, perquè no es permet compartir amb enllaços",
-"Share type %s is not valid for %s" => "La compartició tipus %s no és vàlida per %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Ha fallat en establir els permisos per %s perquè aquests excedeixen els permesos per a %s",
-"Setting permissions for %s failed, because the item was not found" => "Ha fallat en establir els permisos per %s, perquè no s'ha trobat l'element",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "No es pot guardar la data d'expiració. Els fitxers o carpetes compartits no poden expirar més tard de %s després d'haver-se compratit.",
-"Cannot set expiration date. Expiration date is in the past" => "No es pot guardar la data d'expiració. La data d'expiració ja ha passat.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "El rerefons de compartició %s ha d'implementar la interfície OCP\\Share_Backend",
-"Sharing backend %s not found" => "El rerefons de compartició %s no s'ha trobat",
-"Sharing backend for %s not found" => "El rerefons de compartició per a %s no s'ha trobat",
-"Sharing %s failed, because the user %s is the original sharer" => "Ha fallat en compartir %s perquè l'usuari %s és qui comparteix inicialment",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Ha fallat en compartir %s perquè els permisos excedeixen els permesos per a %s",
-"Sharing %s failed, because resharing is not allowed" => "Ha fallat en compartir %s, perquè no es permet compartir de nou",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Ha fallat en compartir %s, perquè el rerefons de compartir per %s no pot trobar la seva font",
-"Sharing %s failed, because the file could not be found in the file cache" => "Ha fallat en compartir %s, perquè el fitxer no s'ha trobat en el fitxer cau",
-"Could not find category \"%s\"" => "No s'ha trobat la categoria \"%s\"",
-"seconds ago" => "segons enrere",
-"_%n minute ago_::_%n minutes ago_" => array("fa %n minut","fa %n minuts"),
-"_%n hour ago_::_%n hours ago_" => array("fa %n hora","fa %n hores"),
-"today" => "avui",
-"yesterday" => "ahir",
-"_%n day go_::_%n days ago_" => array("fa %n dia","fa %n dies"),
-"last month" => "el mes passat",
-"_%n month ago_::_%n months ago_" => array("fa %n mes","fa %n mesos"),
-"last year" => "l'any passat",
-"years ago" => "anys enrere",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Només els caràcters següents estan permesos en el nom d'usuari: \"a-z\", \"A-Z\", \"0-9\" i \"_.@-\"",
-"A valid username must be provided" => "Heu de facilitar un nom d'usuari vàlid",
-"A valid password must be provided" => "Heu de facilitar una contrasenya vàlida",
-"The username is already being used" => "El nom d'usuari ja està en ús",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "No hi ha instal·lats controladors de bases de dades (sqlite, mysql o postgresql).",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s",
-"Cannot write into \"config\" directory" => "No es pot escriure a la carpeta \"config\"",
-"Cannot write into \"apps\" directory" => "No es pot escriure a la carpeta \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta d'aplicacions %s o inhabilitant la botiga d'aplicacions en el fitxer de configuració.",
-"Cannot create \"data\" directory (%s)" => "No es pot crear la carpeta \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Aixó normalment es por solucionar donant al servidor web permís d'accés a la carpeta arrel ",
-"Setting locale to %s failed" => "Ha fallat en establir la llengua a %s",
-"Please install one of these locales on your system and restart your webserver." => "Siusplau, instal·li un d'aquests arxius de localització en el seu sistema, i reinicii el seu servidor web.",
-"Please ask your server administrator to install the module." => "Demaneu a l'administrador del sistema que instal·li el mòdul.",
-"PHP module %s not installed." => "El mòdul PHP %s no està instal·lat.",
-"PHP %s or higher is required." => "Es requereix PHP %s o superior.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Demaneu a l'administrador que actualitzi PHP a l'última versió. La versió que teniu instal·lada no té suport d'ownCloud ni de la comunitat PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "El mode segur de PHP està activat. OwnCloud requereix que es desactivi per funcionar correctament.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "El mode segur de PHP està desfasat i és principalment inútil i hauria de desactivar-se. Demaneu a l'administrador que el desactivi a php.ini o a la configuració del servidor web.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Les Magic Quotes estan activades. OwnCloud requereix que les desactiveu per funcionar correctament.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes està desfassat i és principalment inútil i hauria de desactivar-se. Demaneu a l'administrador que el desactivi a php.ini o a la configuració del servidor web.",
-"PHP modules have been installed, but they are still listed as missing?" => "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?",
-"Please ask your server administrator to restart the web server." => "Demaneu a l'administrador que reinici el servidor web.",
-"PostgreSQL >= 9 required" => "Es requereix PostgreSQL >= 9",
-"Please upgrade your database version" => "Actualitzeu la versió de la base de dades",
-"Error occurred while checking PostgreSQL version" => "Hi ha hagut un error en comprovar la versió de PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Assegureu-vos que teniu PostgreSQL >= 9 o comproveu els registres per més informació quant a l'error",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Canvieu els permisos a 0770 per tal que la carpeta no es pugui llistar per altres usuaris.",
-"Data directory (%s) is readable by other users" => "La carpeta de dades (%s) és llegible per altres usuaris",
-"Data directory (%s) is invalid" => "La carpeta de dades (%s) no és vàlida",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Comproveu que la carpeta de dades contingui un fitxer \".ocdata\" a la seva arrel.",
-"Could not obtain lock type %d on \"%s\"." => "No s'ha pogut obtenir un bloqueig tipus %d a \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ca@valencia.js b/lib/l10n/ca@valencia.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/ca@valencia.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ca@valencia.json b/lib/l10n/ca@valencia.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/ca@valencia.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ca@valencia.php b/lib/l10n/ca@valencia.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/ca@valencia.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/cs_CZ.js b/lib/l10n/cs_CZ.js
new file mode 100644
index 00000000000..b4419c8ef99
--- /dev/null
+++ b/lib/l10n/cs_CZ.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Nelze zapisovat do adresáře \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "To lze obvykle vyřešit povolením zápisu webovému serveru do konfiguračního adresáře",
+ "See %s" : "Viz %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "To lze obvykle vyřešit %spovolením zápisu webovému serveru do konfiguračního adresáře%s.",
+ "Sample configuration detected" : "Byla detekována vzorová konfigurace",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Pravděpodobně byla zkopírována konfigurační nastavení ze vzorových souborů. Toto není podporováno a může poškodit vaši instalaci. Nahlédněte prosím do dokumentace před prováděním změn v souboru config.php",
+ "Help" : "Nápověda",
+ "Personal" : "Osobní",
+ "Settings" : "Nastavení",
+ "Users" : "Uživatelé",
+ "Admin" : "Administrace",
+ "Recommended" : "Doporučené",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplikace \\\"%s\\\" nemůže být nainstalována, protože není kompatibilní s touto verzí ownCloud.",
+ "No app name specified" : "Nebyl zadan název aplikace",
+ "Unknown filetype" : "Neznámý typ souboru",
+ "Invalid image" : "Chybný obrázek",
+ "Database Error" : "Chyba databáze",
+ "Please contact your system administrator." : "Kontaktujte prosím svého správce systému.",
+ "web services under your control" : "webové služby pod Vaší kontrolou",
+ "App directory already exists" : "Adresář aplikace již existuje",
+ "Can't create app folder. Please fix permissions. %s" : "Nelze vytvořit složku aplikace. Opravte práva souborů. %s",
+ "No source specified when installing app" : "Nebyl zadán zdroj při instalaci aplikace",
+ "No href specified when installing app from http" : "Nebyl zadán odkaz pro instalaci aplikace z HTTP",
+ "No path specified when installing app from local file" : "Nebyla zadána cesta pro instalaci aplikace z místního souboru",
+ "Archives of type %s are not supported" : "Archivy typu %s nejsou podporovány",
+ "Failed to open archive when installing app" : "Chyba při otevírání archivu během instalace aplikace",
+ "App does not provide an info.xml file" : "Aplikace neposkytuje soubor info.xml",
+ "App can't be installed because of not allowed code in the App" : "Aplikace nemůže být nainstalována, protože obsahuje nepovolený kód",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Aplikace nemůže být nainstalována, protože není kompatibilní s touto verzí ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Aplikace nemůže být nainstalována, protože obsahuje značku\n\n\ntrue\n \n\ncož není povoleno pro nedodávané aplikace",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Aplikace nemůže být nainstalována, protože verze uvedená v info.xml/version nesouhlasí s verzí oznámenou z úložiště aplikací.",
+ "Application is not enabled" : "Aplikace není povolena",
+ "Authentication error" : "Chyba ověření",
+ "Token expired. Please reload page." : "Token vypršel. Obnovte prosím stránku.",
+ "Unknown user" : "Neznámý uživatel",
+ "%s enter the database username." : "Zadejte uživatelské jméno %s databáze.",
+ "%s enter the database name." : "Zadejte název databáze pro %s databáze.",
+ "%s you may not use dots in the database name" : "V názvu databáze %s nesmíte používat tečky.",
+ "MS SQL username and/or password not valid: %s" : "Uživatelské jméno či heslo MSSQL není platné: %s",
+ "You need to enter either an existing account or the administrator." : "Musíte zadat existující účet či správce.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB uživatelské jméno a/nebo heslo je neplatné",
+ "DB Error: \"%s\"" : "Chyba databáze: \"%s\"",
+ "Offending command was: \"%s\"" : "Příslušný příkaz byl: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB uživatel '%s'@'localhost' již existuje.",
+ "Drop this user from MySQL/MariaDB" : "Smazat tohoto uživatele z MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB uživatel '%s'@'%%' již existuje",
+ "Drop this user from MySQL/MariaDB." : "Smazat tohoto uživatele z MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Spojení s Oracle nemohlo být navázáno",
+ "Oracle username and/or password not valid" : "Uživatelské jméno či heslo Oracle není platné",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Příslušný příkaz byl: \"%s\", jméno: %s, heslo: %s",
+ "PostgreSQL username and/or password not valid" : "Uživatelské jméno či heslo PostgreSQL není platné",
+ "Set an admin username." : "Zadejte uživatelské jméno správce.",
+ "Set an admin password." : "Zadejte heslo správce.",
+ "Can't create or write into the data directory %s" : "Nelze vytvořit nebo zapisovat do datového adresáře %s",
+ "%s shared »%s« with you" : "%s s vámi sdílí »%s«",
+ "Sharing %s failed, because the file does not exist" : "Sdílení %s selhalo, protože soubor neexistuje",
+ "You are not allowed to share %s" : "Nemáte povoleno sdílet %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Sdílení položky %s selhalo, protože uživatel %s je jejím vlastníkem",
+ "Sharing %s failed, because the user %s does not exist" : "Sdílení položky %s selhalo, protože uživatel %s neexistuje",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Sdílení položky %s selhalo, protože uživatel %s není členem žádné skupiny společné s uživatelem %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Sdílení položky %s selhalo, protože položka již je s uživatelem %s sdílena",
+ "Sharing %s failed, because the group %s does not exist" : "Sdílení položky %s selhalo, protože skupina %s neexistuje",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Sdílení položky %s selhalo, protože uživatel %s není členem skupiny %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Pro vytvoření veřejného odkazu je nutné zadat heslo, jsou povoleny pouze chráněné odkazy",
+ "Sharing %s failed, because sharing with links is not allowed" : "Sdílení položky %s selhalo, protože sdílení pomocí linků není povoleno",
+ "Share type %s is not valid for %s" : "Sdílení typu %s není korektní pro %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nastavení oprávnění pro %s selhalo, protože jsou k tomu nutná vyšší oprávnění, než jaká byla povolena pro %s",
+ "Setting permissions for %s failed, because the item was not found" : "Nastavení práv pro %s selhalo, protože položka nebyla nalezena",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nelze nastavit datum vypršení platnosti. Sdílení nemůže vypršet později než za %s po zveřejnění",
+ "Cannot set expiration date. Expiration date is in the past" : "Nelze nastavit datum vypršení platnosti. Datum vypršení je v minulosti",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Úložiště pro sdílení %s musí implementovat rozhraní OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Úložiště sdílení %s nenalezeno",
+ "Sharing backend for %s not found" : "Úložiště sdílení pro %s nenalezeno",
+ "Sharing %s failed, because the user %s is the original sharer" : "Sdílení položky %s selhalo, protože byla sdílena uživatelem %s jako první",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Sdílení položky %s selhalo, protože jsou k tomu nutná vyšší oprávnění, než jaká byla %s povolena.",
+ "Sharing %s failed, because resharing is not allowed" : "Sdílení položky %s selhalo, protože znovu-sdílení není povoleno",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Sdílení položky %s selhalo, protože úložiště sdílení %s nenalezla zdroj",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Sdílení položky %s selhalo, protože soubor nebyl nalezen ve vyrovnávací paměti",
+ "Could not find category \"%s\"" : "Nelze nalézt kategorii \"%s\"",
+ "seconds ago" : "před pár sekundami",
+ "_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
+ "_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
+ "today" : "dnes",
+ "yesterday" : "včera",
+ "_%n day go_::_%n days ago_" : ["včera","před %n dny","před %n dny"],
+ "last month" : "minulý měsíc",
+ "_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci"],
+ "last year" : "minulý rok",
+ "years ago" : "před lety",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Pouze následující znaky jsou povoleny v uživatelském jménu: \"a-z\", \"A-Z\", \"0-9\" a \"_.@-\"",
+ "A valid username must be provided" : "Musíte zadat platné uživatelské jméno",
+ "A valid password must be provided" : "Musíte zadat platné heslo",
+ "The username is already being used" : "Uživatelské jméno je již využíváno",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nejsou instalovány ovladače databází (sqlite, mysql nebo postresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Oprávnění lze obvykle napravit %spovolením zápisu webovému serveru do kořenového adresáře%s.",
+ "Cannot write into \"config\" directory" : "Nelze zapisovat do adresáře \"config\"",
+ "Cannot write into \"apps\" directory" : "Nelze zapisovat do adresáře \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "To lze obvykle vyřešit %spovolením zápisu webovému serveru do adresáře apps%s nebo zakázáním appstore v konfiguračním souboru.",
+ "Cannot create \"data\" directory (%s)" : "Nelze vytvořit adresář \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "To lze obvykle vyřešit povolením zápisu webovému serveru do kořenového adresáře .",
+ "Setting locale to %s failed" : "Nastavení jazyka na %s selhalo",
+ "Please install one of these locales on your system and restart your webserver." : "Prosím nainstalujte alespoň jeden z těchto jazyků do svého systému a restartujte webový server.",
+ "Please ask your server administrator to install the module." : "Požádejte svého správce systému o instalaci tohoto modulu.",
+ "PHP module %s not installed." : "PHP modul %s není nainstalován.",
+ "PHP %s or higher is required." : "Je vyžadováno PHP %s nebo vyšší.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Požádejte svého správce systému o aktualizaci PHP na nejnovější verzi. Vaše verze PHP již není podporována komunitami ownCloud a PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Je zapnut PHP Safe Mode. Pro správnou funkčnost ownCloud je třeba toto vypnout.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode je zastaralé a většinou zbytečné nastavení, které je třeba vypnout. Požádejte prosím správce systému o jeho zákaz v php.ini nebo v konfiguraci webového serveru.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Je povoleno nastavení Magic Quotes. Pro správnou funkčnost ownCloud je třeba toto vypnout.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zastaralé a většinou zbytečné nastavení, které je třeba vypnout. Požádejte prosím správce systému o jeho zákaz v php.ini nebo v konfiguraci webového serveru.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?",
+ "Please ask your server administrator to restart the web server." : "Požádejte svého správce systému o restart webového serveru.",
+ "PostgreSQL >= 9 required" : "Je vyžadováno PostgreSQL >= 9",
+ "Please upgrade your database version" : "Aktualizujte prosím verzi své databáze",
+ "Error occurred while checking PostgreSQL version" : "Při zjišťování verze PostgreSQL došlo k chybě",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Ujistěte se, že máte PostgreSQL >= 9, a zkontrolujte logy pro více informací o chybě.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Změňte prosím práva na 0770, aby adresář nemohl být otevřen ostatními uživateli.",
+ "Data directory (%s) is readable by other users" : "Datový adresář (%s) je čitelný i ostatními uživateli",
+ "Data directory (%s) is invalid" : "Datový adresář (%s) je neplatný",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Ověřte prosím, že kořenový adresář s daty obsahuje soubor \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Nelze získat zámek typu %d na \"%s\"."
+},
+"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/lib/l10n/cs_CZ.json b/lib/l10n/cs_CZ.json
new file mode 100644
index 00000000000..a487b849291
--- /dev/null
+++ b/lib/l10n/cs_CZ.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Nelze zapisovat do adresáře \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "To lze obvykle vyřešit povolením zápisu webovému serveru do konfiguračního adresáře",
+ "See %s" : "Viz %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "To lze obvykle vyřešit %spovolením zápisu webovému serveru do konfiguračního adresáře%s.",
+ "Sample configuration detected" : "Byla detekována vzorová konfigurace",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Pravděpodobně byla zkopírována konfigurační nastavení ze vzorových souborů. Toto není podporováno a může poškodit vaši instalaci. Nahlédněte prosím do dokumentace před prováděním změn v souboru config.php",
+ "Help" : "Nápověda",
+ "Personal" : "Osobní",
+ "Settings" : "Nastavení",
+ "Users" : "Uživatelé",
+ "Admin" : "Administrace",
+ "Recommended" : "Doporučené",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplikace \\\"%s\\\" nemůže být nainstalována, protože není kompatibilní s touto verzí ownCloud.",
+ "No app name specified" : "Nebyl zadan název aplikace",
+ "Unknown filetype" : "Neznámý typ souboru",
+ "Invalid image" : "Chybný obrázek",
+ "Database Error" : "Chyba databáze",
+ "Please contact your system administrator." : "Kontaktujte prosím svého správce systému.",
+ "web services under your control" : "webové služby pod Vaší kontrolou",
+ "App directory already exists" : "Adresář aplikace již existuje",
+ "Can't create app folder. Please fix permissions. %s" : "Nelze vytvořit složku aplikace. Opravte práva souborů. %s",
+ "No source specified when installing app" : "Nebyl zadán zdroj při instalaci aplikace",
+ "No href specified when installing app from http" : "Nebyl zadán odkaz pro instalaci aplikace z HTTP",
+ "No path specified when installing app from local file" : "Nebyla zadána cesta pro instalaci aplikace z místního souboru",
+ "Archives of type %s are not supported" : "Archivy typu %s nejsou podporovány",
+ "Failed to open archive when installing app" : "Chyba při otevírání archivu během instalace aplikace",
+ "App does not provide an info.xml file" : "Aplikace neposkytuje soubor info.xml",
+ "App can't be installed because of not allowed code in the App" : "Aplikace nemůže být nainstalována, protože obsahuje nepovolený kód",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Aplikace nemůže být nainstalována, protože není kompatibilní s touto verzí ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Aplikace nemůže být nainstalována, protože obsahuje značku\n\n\ntrue\n \n\ncož není povoleno pro nedodávané aplikace",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Aplikace nemůže být nainstalována, protože verze uvedená v info.xml/version nesouhlasí s verzí oznámenou z úložiště aplikací.",
+ "Application is not enabled" : "Aplikace není povolena",
+ "Authentication error" : "Chyba ověření",
+ "Token expired. Please reload page." : "Token vypršel. Obnovte prosím stránku.",
+ "Unknown user" : "Neznámý uživatel",
+ "%s enter the database username." : "Zadejte uživatelské jméno %s databáze.",
+ "%s enter the database name." : "Zadejte název databáze pro %s databáze.",
+ "%s you may not use dots in the database name" : "V názvu databáze %s nesmíte používat tečky.",
+ "MS SQL username and/or password not valid: %s" : "Uživatelské jméno či heslo MSSQL není platné: %s",
+ "You need to enter either an existing account or the administrator." : "Musíte zadat existující účet či správce.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB uživatelské jméno a/nebo heslo je neplatné",
+ "DB Error: \"%s\"" : "Chyba databáze: \"%s\"",
+ "Offending command was: \"%s\"" : "Příslušný příkaz byl: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB uživatel '%s'@'localhost' již existuje.",
+ "Drop this user from MySQL/MariaDB" : "Smazat tohoto uživatele z MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB uživatel '%s'@'%%' již existuje",
+ "Drop this user from MySQL/MariaDB." : "Smazat tohoto uživatele z MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Spojení s Oracle nemohlo být navázáno",
+ "Oracle username and/or password not valid" : "Uživatelské jméno či heslo Oracle není platné",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Příslušný příkaz byl: \"%s\", jméno: %s, heslo: %s",
+ "PostgreSQL username and/or password not valid" : "Uživatelské jméno či heslo PostgreSQL není platné",
+ "Set an admin username." : "Zadejte uživatelské jméno správce.",
+ "Set an admin password." : "Zadejte heslo správce.",
+ "Can't create or write into the data directory %s" : "Nelze vytvořit nebo zapisovat do datového adresáře %s",
+ "%s shared »%s« with you" : "%s s vámi sdílí »%s«",
+ "Sharing %s failed, because the file does not exist" : "Sdílení %s selhalo, protože soubor neexistuje",
+ "You are not allowed to share %s" : "Nemáte povoleno sdílet %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Sdílení položky %s selhalo, protože uživatel %s je jejím vlastníkem",
+ "Sharing %s failed, because the user %s does not exist" : "Sdílení položky %s selhalo, protože uživatel %s neexistuje",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Sdílení položky %s selhalo, protože uživatel %s není členem žádné skupiny společné s uživatelem %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Sdílení položky %s selhalo, protože položka již je s uživatelem %s sdílena",
+ "Sharing %s failed, because the group %s does not exist" : "Sdílení položky %s selhalo, protože skupina %s neexistuje",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Sdílení položky %s selhalo, protože uživatel %s není členem skupiny %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Pro vytvoření veřejného odkazu je nutné zadat heslo, jsou povoleny pouze chráněné odkazy",
+ "Sharing %s failed, because sharing with links is not allowed" : "Sdílení položky %s selhalo, protože sdílení pomocí linků není povoleno",
+ "Share type %s is not valid for %s" : "Sdílení typu %s není korektní pro %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nastavení oprávnění pro %s selhalo, protože jsou k tomu nutná vyšší oprávnění, než jaká byla povolena pro %s",
+ "Setting permissions for %s failed, because the item was not found" : "Nastavení práv pro %s selhalo, protože položka nebyla nalezena",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nelze nastavit datum vypršení platnosti. Sdílení nemůže vypršet později než za %s po zveřejnění",
+ "Cannot set expiration date. Expiration date is in the past" : "Nelze nastavit datum vypršení platnosti. Datum vypršení je v minulosti",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Úložiště pro sdílení %s musí implementovat rozhraní OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Úložiště sdílení %s nenalezeno",
+ "Sharing backend for %s not found" : "Úložiště sdílení pro %s nenalezeno",
+ "Sharing %s failed, because the user %s is the original sharer" : "Sdílení položky %s selhalo, protože byla sdílena uživatelem %s jako první",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Sdílení položky %s selhalo, protože jsou k tomu nutná vyšší oprávnění, než jaká byla %s povolena.",
+ "Sharing %s failed, because resharing is not allowed" : "Sdílení položky %s selhalo, protože znovu-sdílení není povoleno",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Sdílení položky %s selhalo, protože úložiště sdílení %s nenalezla zdroj",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Sdílení položky %s selhalo, protože soubor nebyl nalezen ve vyrovnávací paměti",
+ "Could not find category \"%s\"" : "Nelze nalézt kategorii \"%s\"",
+ "seconds ago" : "před pár sekundami",
+ "_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
+ "_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
+ "today" : "dnes",
+ "yesterday" : "včera",
+ "_%n day go_::_%n days ago_" : ["včera","před %n dny","před %n dny"],
+ "last month" : "minulý měsíc",
+ "_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci"],
+ "last year" : "minulý rok",
+ "years ago" : "před lety",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Pouze následující znaky jsou povoleny v uživatelském jménu: \"a-z\", \"A-Z\", \"0-9\" a \"_.@-\"",
+ "A valid username must be provided" : "Musíte zadat platné uživatelské jméno",
+ "A valid password must be provided" : "Musíte zadat platné heslo",
+ "The username is already being used" : "Uživatelské jméno je již využíváno",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nejsou instalovány ovladače databází (sqlite, mysql nebo postresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Oprávnění lze obvykle napravit %spovolením zápisu webovému serveru do kořenového adresáře%s.",
+ "Cannot write into \"config\" directory" : "Nelze zapisovat do adresáře \"config\"",
+ "Cannot write into \"apps\" directory" : "Nelze zapisovat do adresáře \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "To lze obvykle vyřešit %spovolením zápisu webovému serveru do adresáře apps%s nebo zakázáním appstore v konfiguračním souboru.",
+ "Cannot create \"data\" directory (%s)" : "Nelze vytvořit adresář \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "To lze obvykle vyřešit povolením zápisu webovému serveru do kořenového adresáře .",
+ "Setting locale to %s failed" : "Nastavení jazyka na %s selhalo",
+ "Please install one of these locales on your system and restart your webserver." : "Prosím nainstalujte alespoň jeden z těchto jazyků do svého systému a restartujte webový server.",
+ "Please ask your server administrator to install the module." : "Požádejte svého správce systému o instalaci tohoto modulu.",
+ "PHP module %s not installed." : "PHP modul %s není nainstalován.",
+ "PHP %s or higher is required." : "Je vyžadováno PHP %s nebo vyšší.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Požádejte svého správce systému o aktualizaci PHP na nejnovější verzi. Vaše verze PHP již není podporována komunitami ownCloud a PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Je zapnut PHP Safe Mode. Pro správnou funkčnost ownCloud je třeba toto vypnout.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode je zastaralé a většinou zbytečné nastavení, které je třeba vypnout. Požádejte prosím správce systému o jeho zákaz v php.ini nebo v konfiguraci webového serveru.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Je povoleno nastavení Magic Quotes. Pro správnou funkčnost ownCloud je třeba toto vypnout.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zastaralé a většinou zbytečné nastavení, které je třeba vypnout. Požádejte prosím správce systému o jeho zákaz v php.ini nebo v konfiguraci webového serveru.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?",
+ "Please ask your server administrator to restart the web server." : "Požádejte svého správce systému o restart webového serveru.",
+ "PostgreSQL >= 9 required" : "Je vyžadováno PostgreSQL >= 9",
+ "Please upgrade your database version" : "Aktualizujte prosím verzi své databáze",
+ "Error occurred while checking PostgreSQL version" : "Při zjišťování verze PostgreSQL došlo k chybě",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Ujistěte se, že máte PostgreSQL >= 9, a zkontrolujte logy pro více informací o chybě.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Změňte prosím práva na 0770, aby adresář nemohl být otevřen ostatními uživateli.",
+ "Data directory (%s) is readable by other users" : "Datový adresář (%s) je čitelný i ostatními uživateli",
+ "Data directory (%s) is invalid" : "Datový adresář (%s) je neplatný",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Ověřte prosím, že kořenový adresář s daty obsahuje soubor \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Nelze získat zámek typu %d na \"%s\"."
+},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+}
\ No newline at end of file
diff --git a/lib/l10n/cs_CZ.php b/lib/l10n/cs_CZ.php
deleted file mode 100644
index 244fc53fbf3..00000000000
--- a/lib/l10n/cs_CZ.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Nelze zapisovat do adresáře \"config\"!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "To lze obvykle vyřešit povolením zápisu webovému serveru do konfiguračního adresáře",
-"See %s" => "Viz %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "To lze obvykle vyřešit %spovolením zápisu webovému serveru do konfiguračního adresáře%s.",
-"Sample configuration detected" => "Byla detekována vzorová konfigurace",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Pravděpodobně byla zkopírována konfigurační nastavení ze vzorových souborů. Toto není podporováno a může poškodit vaši instalaci. Nahlédněte prosím do dokumentace před prováděním změn v souboru config.php",
-"Help" => "Nápověda",
-"Personal" => "Osobní",
-"Settings" => "Nastavení",
-"Users" => "Uživatelé",
-"Admin" => "Administrace",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Aplikace \\\"%s\\\" nemůže být nainstalována, protože není kompatibilní s touto verzí ownCloud.",
-"No app name specified" => "Nebyl zadan název aplikace",
-"Unknown filetype" => "Neznámý typ souboru",
-"Invalid image" => "Chybný obrázek",
-"web services under your control" => "webové služby pod Vaší kontrolou",
-"App directory already exists" => "Adresář aplikace již existuje",
-"Can't create app folder. Please fix permissions. %s" => "Nelze vytvořit složku aplikace. Opravte práva souborů. %s",
-"No source specified when installing app" => "Nebyl zadán zdroj při instalaci aplikace",
-"No href specified when installing app from http" => "Nebyl zadán odkaz pro instalaci aplikace z HTTP",
-"No path specified when installing app from local file" => "Nebyla zadána cesta pro instalaci aplikace z místního souboru",
-"Archives of type %s are not supported" => "Archivy typu %s nejsou podporovány",
-"Failed to open archive when installing app" => "Chyba při otevírání archivu během instalace aplikace",
-"App does not provide an info.xml file" => "Aplikace neposkytuje soubor info.xml",
-"App can't be installed because of not allowed code in the App" => "Aplikace nemůže být nainstalována, protože obsahuje nepovolený kód",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Aplikace nemůže být nainstalována, protože není kompatibilní s touto verzí ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Aplikace nemůže být nainstalována, protože obsahuje značku\n\n\ntrue\n \n\ncož není povoleno pro nedodávané aplikace",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Aplikace nemůže být nainstalována, protože verze uvedená v info.xml/version nesouhlasí s verzí oznámenou z úložiště aplikací.",
-"Application is not enabled" => "Aplikace není povolena",
-"Authentication error" => "Chyba ověření",
-"Token expired. Please reload page." => "Token vypršel. Obnovte prosím stránku.",
-"Unknown user" => "Neznámý uživatel",
-"%s enter the database username." => "Zadejte uživatelské jméno %s databáze.",
-"%s enter the database name." => "Zadejte název databáze pro %s databáze.",
-"%s you may not use dots in the database name" => "V názvu databáze %s nesmíte používat tečky.",
-"MS SQL username and/or password not valid: %s" => "Uživatelské jméno či heslo MSSQL není platné: %s",
-"You need to enter either an existing account or the administrator." => "Musíte zadat existující účet či správce.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB uživatelské jméno a/nebo heslo je neplatné",
-"DB Error: \"%s\"" => "Chyba databáze: \"%s\"",
-"Offending command was: \"%s\"" => "Příslušný příkaz byl: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB uživatel '%s'@'localhost' již existuje.",
-"Drop this user from MySQL/MariaDB" => "Smazat tohoto uživatele z MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB uživatel '%s'@'%%' již existuje",
-"Drop this user from MySQL/MariaDB." => "Smazat tohoto uživatele z MySQL/MariaDB.",
-"Oracle connection could not be established" => "Spojení s Oracle nemohlo být navázáno",
-"Oracle username and/or password not valid" => "Uživatelské jméno či heslo Oracle není platné",
-"Offending command was: \"%s\", name: %s, password: %s" => "Příslušný příkaz byl: \"%s\", jméno: %s, heslo: %s",
-"PostgreSQL username and/or password not valid" => "Uživatelské jméno či heslo PostgreSQL není platné",
-"Set an admin username." => "Zadejte uživatelské jméno správce.",
-"Set an admin password." => "Zadejte heslo správce.",
-"Can't create or write into the data directory %s" => "Nelze vytvořit nebo zapisovat do datového adresáře %s",
-"%s shared »%s« with you" => "%s s vámi sdílí »%s«",
-"Sharing %s failed, because the file does not exist" => "Sdílení %s selhalo, protože soubor neexistuje",
-"You are not allowed to share %s" => "Nemáte povoleno sdílet %s",
-"Sharing %s failed, because the user %s is the item owner" => "Sdílení položky %s selhalo, protože uživatel %s je jejím vlastníkem",
-"Sharing %s failed, because the user %s does not exist" => "Sdílení položky %s selhalo, protože uživatel %s neexistuje",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Sdílení položky %s selhalo, protože uživatel %s není členem žádné skupiny společné s uživatelem %s",
-"Sharing %s failed, because this item is already shared with %s" => "Sdílení položky %s selhalo, protože položka již je s uživatelem %s sdílena",
-"Sharing %s failed, because the group %s does not exist" => "Sdílení položky %s selhalo, protože skupina %s neexistuje",
-"Sharing %s failed, because %s is not a member of the group %s" => "Sdílení položky %s selhalo, protože uživatel %s není členem skupiny %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Pro vytvoření veřejného odkazu je nutné zadat heslo, jsou povoleny pouze chráněné odkazy",
-"Sharing %s failed, because sharing with links is not allowed" => "Sdílení položky %s selhalo, protože sdílení pomocí linků není povoleno",
-"Share type %s is not valid for %s" => "Sdílení typu %s není korektní pro %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Nastavení oprávnění pro %s selhalo, protože jsou k tomu nutná vyšší oprávnění, než jaká byla povolena pro %s",
-"Setting permissions for %s failed, because the item was not found" => "Nastavení práv pro %s selhalo, protože položka nebyla nalezena",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Nelze nastavit datum vypršení platnosti. Sdílení nemůže vypršet později než za %s po zveřejnění",
-"Cannot set expiration date. Expiration date is in the past" => "Nelze nastavit datum vypršení platnosti. Datum vypršení je v minulosti",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Úložiště pro sdílení %s musí implementovat rozhraní OCP\\Share_Backend",
-"Sharing backend %s not found" => "Úložiště sdílení %s nenalezeno",
-"Sharing backend for %s not found" => "Úložiště sdílení pro %s nenalezeno",
-"Sharing %s failed, because the user %s is the original sharer" => "Sdílení položky %s selhalo, protože byla sdílena uživatelem %s jako první",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Sdílení položky %s selhalo, protože jsou k tomu nutná vyšší oprávnění, než jaká byla %s povolena.",
-"Sharing %s failed, because resharing is not allowed" => "Sdílení položky %s selhalo, protože znovu-sdílení není povoleno",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Sdílení položky %s selhalo, protože úložiště sdílení %s nenalezla zdroj",
-"Sharing %s failed, because the file could not be found in the file cache" => "Sdílení položky %s selhalo, protože soubor nebyl nalezen ve vyrovnávací paměti",
-"Could not find category \"%s\"" => "Nelze nalézt kategorii \"%s\"",
-"seconds ago" => "před pár sekundami",
-"_%n minute ago_::_%n minutes ago_" => array("před %n minutou","před %n minutami","před %n minutami"),
-"_%n hour ago_::_%n hours ago_" => array("před %n hodinou","před %n hodinami","před %n hodinami"),
-"today" => "dnes",
-"yesterday" => "včera",
-"_%n day go_::_%n days ago_" => array("před %n dnem","před %n dny","před %n dny"),
-"last month" => "minulý měsíc",
-"_%n month ago_::_%n months ago_" => array("před %n měsícem","před %n měsíci","před %n měsíci"),
-"last year" => "minulý rok",
-"years ago" => "před lety",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Pouze následující znaky jsou povoleny v uživatelském jménu: \"a-z\", \"A-Z\", \"0-9\" a \"_.@-\"",
-"A valid username must be provided" => "Musíte zadat platné uživatelské jméno",
-"A valid password must be provided" => "Musíte zadat platné heslo",
-"The username is already being used" => "Uživatelské jméno je již využíváno",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Nejsou instalovány ovladače databází (sqlite, mysql nebo postresql).",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Oprávnění lze obvykle napravit %spovolením zápisu webovému serveru do kořenového adresáře%s.",
-"Cannot write into \"config\" directory" => "Nelze zapisovat do adresáře \"config\"",
-"Cannot write into \"apps\" directory" => "Nelze zapisovat do adresáře \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "To lze obvykle vyřešit %spovolením zápisu webovému serveru do adresáře apps%s nebo zakázáním appstore v konfiguračním souboru.",
-"Cannot create \"data\" directory (%s)" => "Nelze vytvořit adresář \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "To lze obvykle vyřešit povolením zápisu webovému serveru do kořenového adresáře .",
-"Setting locale to %s failed" => "Nastavení jazyka na %s selhalo",
-"Please install one of these locales on your system and restart your webserver." => "Prosím nainstalujte alespoň jeden z těchto jazyků do svého systému a restartujte webový server.",
-"Please ask your server administrator to install the module." => "Požádejte svého administrátora o instalaci tohoto modulu.",
-"PHP module %s not installed." => "PHP modul %s není nainstalován.",
-"PHP %s or higher is required." => "Je vyžadováno PHP %s nebo vyšší.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Požádejte svého administrátora o aktualizaci PHP na nejnovější verzi. Vaše verze PHP již není podporována komunitami ownCloud a PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "Je zapnut PHP Safe Mode. Pro správnou funkčnost ownCloud je třeba toto vypnout.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode je zastaralé a většinou zbytečné nastavení, které je třeba vypnout. Požádejte prosím svého administrátora o zakázání v php.ini nebo v konfiguraci webového serveru.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Je povoleno nastavení Magic Quotes. Pro správnou funkčnost ownCloud je třeba toto vypnout.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes je zastaralé a většinou zbytečné nastavení, které je třeba vypnout. Požádejte prosím svého administrátora o zakázání v php.ini nebo v konfiguraci webového serveru.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?",
-"Please ask your server administrator to restart the web server." => "Požádejte svého administrátora o restart webového serveru.",
-"PostgreSQL >= 9 required" => "Je vyžadováno PostgreSQL >= 9",
-"Please upgrade your database version" => "Aktualizujte prosím verzi své databáze",
-"Error occurred while checking PostgreSQL version" => "Při zjišťování verze PostgreSQL došlo k chybě",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Ujistěte se, že máte PostgreSQL >= 9, a zkontrolujte logy pro více informací o chybě.",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Změňte prosím práva na 0770, aby adresář nemohl být otevřen ostatními uživateli.",
-"Data directory (%s) is readable by other users" => "Datový adresář (%s) je čitelný i ostatními uživateli",
-"Data directory (%s) is invalid" => "Datový adresář (%s) je neplatný",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Ověřte prosím, že kořenový adresář s daty obsahuje soubor \".ocdata\".",
-"Could not obtain lock type %d on \"%s\"." => "Nelze získat zámek typu %d na \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/lib/l10n/cy_GB.js b/lib/l10n/cy_GB.js
new file mode 100644
index 00000000000..1e9cae3d483
--- /dev/null
+++ b/lib/l10n/cy_GB.js
@@ -0,0 +1,37 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Cymorth",
+ "Personal" : "Personol",
+ "Settings" : "Gosodiadau",
+ "Users" : "Defnyddwyr",
+ "Admin" : "Gweinyddu",
+ "web services under your control" : "gwasanaethau gwe a reolir gennych",
+ "Application is not enabled" : "Nid yw'r pecyn wedi'i alluogi",
+ "Authentication error" : "Gwall dilysu",
+ "Token expired. Please reload page." : "Tocyn wedi dod i ben. Ail-lwythwch y dudalen.",
+ "%s enter the database username." : "%s rhowch enw defnyddiwr y gronfa ddata.",
+ "%s enter the database name." : "%s rhowch enw'r gronfa ddata.",
+ "%s you may not use dots in the database name" : "%s does dim hawl defnyddio dot yn enw'r gronfa ddata",
+ "MS SQL username and/or password not valid: %s" : "Enw a/neu gyfrinair MS SQL annilys: %s",
+ "You need to enter either an existing account or the administrator." : "Rhaid i chi naill ai gyflwyno cyfrif presennol neu'r gweinyddwr.",
+ "DB Error: \"%s\"" : "Gwall DB: \"%s\"",
+ "Offending command was: \"%s\"" : "Y gorchymyn wnaeth beri tramgwydd oedd: \"%s\"",
+ "Oracle username and/or password not valid" : "Enw a/neu gyfrinair Oracle annilys",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Y gorchymyn wnaeth beri tramgwydd oedd: \"%s\", enw: %s, cyfrinair: %s",
+ "PostgreSQL username and/or password not valid" : "Enw a/neu gyfrinair PostgreSQL annilys",
+ "Set an admin username." : "Creu enw defnyddiwr i'r gweinyddwr.",
+ "Set an admin password." : "Gosod cyfrinair y gweinyddwr.",
+ "Could not find category \"%s\"" : "Methu canfod categori \"%s\"",
+ "seconds ago" : "eiliad yn ôl",
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","",""],
+ "today" : "heddiw",
+ "yesterday" : "ddoe",
+ "_%n day go_::_%n days ago_" : ["","","",""],
+ "last month" : "mis diwethaf",
+ "_%n month ago_::_%n months ago_" : ["","","",""],
+ "last year" : "y llynedd",
+ "years ago" : "blwyddyn yn ôl"
+},
+"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/lib/l10n/cy_GB.json b/lib/l10n/cy_GB.json
new file mode 100644
index 00000000000..c60d5ea976b
--- /dev/null
+++ b/lib/l10n/cy_GB.json
@@ -0,0 +1,35 @@
+{ "translations": {
+ "Help" : "Cymorth",
+ "Personal" : "Personol",
+ "Settings" : "Gosodiadau",
+ "Users" : "Defnyddwyr",
+ "Admin" : "Gweinyddu",
+ "web services under your control" : "gwasanaethau gwe a reolir gennych",
+ "Application is not enabled" : "Nid yw'r pecyn wedi'i alluogi",
+ "Authentication error" : "Gwall dilysu",
+ "Token expired. Please reload page." : "Tocyn wedi dod i ben. Ail-lwythwch y dudalen.",
+ "%s enter the database username." : "%s rhowch enw defnyddiwr y gronfa ddata.",
+ "%s enter the database name." : "%s rhowch enw'r gronfa ddata.",
+ "%s you may not use dots in the database name" : "%s does dim hawl defnyddio dot yn enw'r gronfa ddata",
+ "MS SQL username and/or password not valid: %s" : "Enw a/neu gyfrinair MS SQL annilys: %s",
+ "You need to enter either an existing account or the administrator." : "Rhaid i chi naill ai gyflwyno cyfrif presennol neu'r gweinyddwr.",
+ "DB Error: \"%s\"" : "Gwall DB: \"%s\"",
+ "Offending command was: \"%s\"" : "Y gorchymyn wnaeth beri tramgwydd oedd: \"%s\"",
+ "Oracle username and/or password not valid" : "Enw a/neu gyfrinair Oracle annilys",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Y gorchymyn wnaeth beri tramgwydd oedd: \"%s\", enw: %s, cyfrinair: %s",
+ "PostgreSQL username and/or password not valid" : "Enw a/neu gyfrinair PostgreSQL annilys",
+ "Set an admin username." : "Creu enw defnyddiwr i'r gweinyddwr.",
+ "Set an admin password." : "Gosod cyfrinair y gweinyddwr.",
+ "Could not find category \"%s\"" : "Methu canfod categori \"%s\"",
+ "seconds ago" : "eiliad yn ôl",
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","",""],
+ "today" : "heddiw",
+ "yesterday" : "ddoe",
+ "_%n day go_::_%n days ago_" : ["","","",""],
+ "last month" : "mis diwethaf",
+ "_%n month ago_::_%n months ago_" : ["","","",""],
+ "last year" : "y llynedd",
+ "years ago" : "blwyddyn yn ôl"
+},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
+}
\ No newline at end of file
diff --git a/lib/l10n/cy_GB.php b/lib/l10n/cy_GB.php
deleted file mode 100644
index 8e0af7f2cfb..00000000000
--- a/lib/l10n/cy_GB.php
+++ /dev/null
@@ -1,36 +0,0 @@
- "Cymorth",
-"Personal" => "Personol",
-"Settings" => "Gosodiadau",
-"Users" => "Defnyddwyr",
-"Admin" => "Gweinyddu",
-"web services under your control" => "gwasanaethau gwe a reolir gennych",
-"Application is not enabled" => "Nid yw'r pecyn wedi'i alluogi",
-"Authentication error" => "Gwall dilysu",
-"Token expired. Please reload page." => "Tocyn wedi dod i ben. Ail-lwythwch y dudalen.",
-"%s enter the database username." => "%s rhowch enw defnyddiwr y gronfa ddata.",
-"%s enter the database name." => "%s rhowch enw'r gronfa ddata.",
-"%s you may not use dots in the database name" => "%s does dim hawl defnyddio dot yn enw'r gronfa ddata",
-"MS SQL username and/or password not valid: %s" => "Enw a/neu gyfrinair MS SQL annilys: %s",
-"You need to enter either an existing account or the administrator." => "Rhaid i chi naill ai gyflwyno cyfrif presennol neu'r gweinyddwr.",
-"DB Error: \"%s\"" => "Gwall DB: \"%s\"",
-"Offending command was: \"%s\"" => "Y gorchymyn wnaeth beri tramgwydd oedd: \"%s\"",
-"Oracle username and/or password not valid" => "Enw a/neu gyfrinair Oracle annilys",
-"Offending command was: \"%s\", name: %s, password: %s" => "Y gorchymyn wnaeth beri tramgwydd oedd: \"%s\", enw: %s, cyfrinair: %s",
-"PostgreSQL username and/or password not valid" => "Enw a/neu gyfrinair PostgreSQL annilys",
-"Set an admin username." => "Creu enw defnyddiwr i'r gweinyddwr.",
-"Set an admin password." => "Gosod cyfrinair y gweinyddwr.",
-"Could not find category \"%s\"" => "Methu canfod categori \"%s\"",
-"seconds ago" => "eiliad yn ôl",
-"_%n minute ago_::_%n minutes ago_" => array("","","",""),
-"_%n hour ago_::_%n hours ago_" => array("","","",""),
-"today" => "heddiw",
-"yesterday" => "ddoe",
-"_%n day go_::_%n days ago_" => array("","","",""),
-"last month" => "mis diwethaf",
-"_%n month ago_::_%n months ago_" => array("","","",""),
-"last year" => "y llynedd",
-"years ago" => "blwyddyn yn ôl"
-);
-$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;";
diff --git a/lib/l10n/da.js b/lib/l10n/da.js
new file mode 100644
index 00000000000..09422654c6d
--- /dev/null
+++ b/lib/l10n/da.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Kan ikke skrive til mappen \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Dette kan normalvis ordnes ved at give webserveren skrive adgang til config mappen",
+ "See %s" : "Se %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dette kan som regel rettes ved at %sgive webserveren skriveadgang til config-mappen%s.",
+ "Sample configuration detected" : "Eksempel for konfiguration registreret",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Der er registreret at eksempel for konfiguration er blevet kopieret. Dette kan ødelægge din installation og understøttes ikke. Læs venligst dokumentationen før der foretages ændringer i config.php",
+ "Help" : "Hjælp",
+ "Personal" : "Personligt",
+ "Settings" : "Indstillinger",
+ "Users" : "Brugere",
+ "Admin" : "Admin",
+ "Recommended" : "Anbefalet",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "App'en \\\"%s\\\" kan ikke installeres, da den ikke er kompatible med denne version af ownCloud.",
+ "No app name specified" : "Intet app-navn angivet",
+ "Unknown filetype" : "Ukendt filtype",
+ "Invalid image" : "Ugyldigt billede",
+ "Database Error" : "Databasefejl",
+ "Please contact your system administrator." : "Kontakt venligst din systemadministrator.",
+ "web services under your control" : "Webtjenester under din kontrol",
+ "App directory already exists" : "App-mappe findes allerede",
+ "Can't create app folder. Please fix permissions. %s" : "Kan ikke oprette app-mappe. Ret tilladelser. %s",
+ "No source specified when installing app" : "Ingen kilde angivet under installation af app",
+ "No href specified when installing app from http" : "Ingen href angivet under installation af app via http",
+ "No path specified when installing app from local file" : "Ingen sti angivet under installation af app fra lokal fil",
+ "Archives of type %s are not supported" : "Arkiver af type %s understøttes ikke",
+ "Failed to open archive when installing app" : "Kunne ikke åbne arkiv under installation af appen",
+ "App does not provide an info.xml file" : "Der følger ingen info.xml-fil med appen",
+ "App can't be installed because of not allowed code in the App" : "Appen kan ikke installeres, da den indeholder ikke-tilladt kode",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Appen kan ikke installeres, da den ikke er kompatibel med denne version af ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Appen kan ikke installeres, da den indeholder mærket true , hvilket ikke er tilladt for ikke-medfølgende apps",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "App kan ikke installeres, da versionen i info.xml/version ikke er den samme som versionen rapporteret fra app-storen",
+ "Application is not enabled" : "Programmet er ikke aktiveret",
+ "Authentication error" : "Adgangsfejl",
+ "Token expired. Please reload page." : "Adgang er udløbet. Genindlæs siden.",
+ "Unknown user" : "Ukendt bruger",
+ "%s enter the database username." : "%s indtast database brugernavnet.",
+ "%s enter the database name." : "%s indtast database navnet.",
+ "%s you may not use dots in the database name" : "%s du må ikke bruge punktummer i databasenavnet.",
+ "MS SQL username and/or password not valid: %s" : "MS SQL brugernavn og/eller adgangskode ikke er gyldigt: %s",
+ "You need to enter either an existing account or the administrator." : "Du bliver nødt til at indtaste en eksisterende bruger eller en administrator.",
+ "MySQL/MariaDB username and/or password not valid" : "Ugyldigt MySQL/MariaDB brugernavn og/eller kodeord ",
+ "DB Error: \"%s\"" : "Databasefejl: \"%s\"",
+ "Offending command was: \"%s\"" : "Fejlende kommando var: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB bruger '%s'@'localhost' eksistere allerede.",
+ "Drop this user from MySQL/MariaDB" : "Slet denne bruger fra MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB bruger '%s'@'%%' eksistere allerede",
+ "Drop this user from MySQL/MariaDB." : "Drop denne bruger fra MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Oracle forbindelsen kunne ikke etableres",
+ "Oracle username and/or password not valid" : "Oracle brugernavn og/eller kodeord er ikke gyldigt.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Fejlende kommando var: \"%s\", navn: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL brugernavn og/eller kodeord er ikke gyldigt.",
+ "Set an admin username." : "Angiv et admin brugernavn.",
+ "Set an admin password." : "Angiv et admin kodeord.",
+ "Can't create or write into the data directory %s" : "Kan ikke oprette eller skrive ind i datamappen %s",
+ "%s shared »%s« with you" : "%s delte »%s« med sig",
+ "Sharing %s failed, because the file does not exist" : "Deling af %s mislykkedes, fordi filen ikke eksisterer",
+ "You are not allowed to share %s" : "Du har ikke tilladelse til at dele %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Der skete en fejl ved deling af %s, brugeren %s er ejer af objektet",
+ "Sharing %s failed, because the user %s does not exist" : "Der skete en fejl ved deling af %s, brugeren %s eksistere ikke",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Der skete en fejl ved deling af %s, brugeren %s er ikke medlem af nogle grupper som %s er medlem af",
+ "Sharing %s failed, because this item is already shared with %s" : "Der skete en fejl ved deling af %s, objektet er allerede delt med %s",
+ "Sharing %s failed, because the group %s does not exist" : "Der skete en fejl ved deling af %s, gruppen %s eksistere ikke",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Der skete en fejl ved deling af %s, fordi %s ikke er medlem af gruppen %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Du skal angive et kodeord for at oprette et offentligt link - kun beskyttede links er tilladt",
+ "Sharing %s failed, because sharing with links is not allowed" : "Der skete en fejl ved deling af %s, det er ikke tilladt at dele links",
+ "Share type %s is not valid for %s" : "Delingstypen %s er ikke gyldig for %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Angivelse af tilladelser for %s mislykkedes, fordi tilladelserne overskred de som var tildelt %s",
+ "Setting permissions for %s failed, because the item was not found" : "Angivelse af tilladelser for %s mislykkedes, fordi artiklen ikke blev fundet",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Kan ikke angive udløbsdato. Delinger kan ikke udløbe senere end %s efter at de er blevet delt",
+ "Cannot set expiration date. Expiration date is in the past" : "Kan ikke angive udløbsdato. Udløbsdato er allerede passeret",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Delingsbackend'en %s skal implementere grænsefladen OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Delingsbackend'en %s blev ikke fundet",
+ "Sharing backend for %s not found" : "Delingsbackend'en for %s blev ikke fundet",
+ "Sharing %s failed, because the user %s is the original sharer" : "Deling af %s mislykkedes, fordi brugeren %s er den som delte oprindeligt",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Deling af %s mislykkedes, fordi tilladelserne overskred de tillaldelser som %s var tildelt",
+ "Sharing %s failed, because resharing is not allowed" : "Deling af %s mislykkedes, fordi videredeling ikke er tilladt",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling af %s mislykkedes, fordi back-enden ikke kunne finde kilden til %s",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Deling af %s mislykkedes, fordi filen ikke kunne findes i fil-cachen",
+ "Could not find category \"%s\"" : "Kunne ikke finde kategorien \"%s\"",
+ "seconds ago" : "sekunder siden",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minut siden","%n minutter siden"],
+ "_%n hour ago_::_%n hours ago_" : ["%n time siden","%n timer siden"],
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day go_::_%n days ago_" : ["%n dag siden","%n dage siden"],
+ "last month" : "sidste måned",
+ "_%n month ago_::_%n months ago_" : ["%n måned siden","%n måneder siden"],
+ "last year" : "sidste år",
+ "years ago" : "år siden",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Det er kun tilladt at benytte følgene karakterer i et brugernavn \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Et gyldigt brugernavn skal angives",
+ "A valid password must be provided" : "En gyldig adgangskode skal angives",
+ "The username is already being used" : "Brugernavnet er allerede i brug",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ingen database driver (sqlite, mysql eller postgresql) er installeret.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Rettigheder kan som regel rettes ved %sat give webserveren skriveadgang til rodmappen%s.",
+ "Cannot write into \"config\" directory" : "Kan ikke skrive til mappen \"config\"",
+ "Cannot write into \"apps\" directory" : "Kan ikke skrive til mappen \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dette kan som regel rettes ved at %sgive webserveren skriveadgang til apps-mappen%s eller slå appstore fra i config-filen.",
+ "Cannot create \"data\" directory (%s)" : "Kan ikke oprette mappen \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Dette kan som regel rettes ved give webserveren skriveadgang til rodmappen .",
+ "Setting locale to %s failed" : "Angivelse af %s for lokalitet mislykkedes",
+ "Please install one of these locales on your system and restart your webserver." : "Installér venligst én af disse lokaliteter på dit system, og genstart din webserver.",
+ "Please ask your server administrator to install the module." : "Du bedes anmode din serveradministrator om at installere modulet.",
+ "PHP module %s not installed." : "PHP-modulet %s er ikke installeret.",
+ "PHP %s or higher is required." : "Der kræves PHP %s eller nyere.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bed venligst din serveradministrator om at opdatere PHP til seneste version. Din PHP-version understøttes ikke længere af ownCload og PHP-fællesskabet.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode er slået til. ownCload kræver at denne er slået fra, for at fungere ordentligt.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode er udgået og stort set en ubrugelig indstilling, der bør slås fra. Spørg venligst din serveradministrator om at slå den fra i php.ini eller din webeserver-konfiguration.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes er slået til. ownCloud kræver at denne er slået fra, for at fungere ordentligt.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes er udgået og stort set en ubrugelig indstilling, der bør slås fra. Spørg venligst din serveradministrator om at slå den fra i php.ini eller din webeserver-konfiguration.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Der er installeret PHP-moduler, men de fremgår stadig som fraværende?",
+ "Please ask your server administrator to restart the web server." : "Du bedes anmode din serveradministrator om at genstarte webserveren.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 kræves",
+ "Please upgrade your database version" : "Opgradér venligst din databaseversion",
+ "Error occurred while checking PostgreSQL version" : "Der opstod fejl under tjek af PostgreSQL-versionen",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Sørg venligst for at du har PostgreSQL >= 9 eller tjek loggen for flere informationer om fejlen",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Tilpas venligst rettigheder til 0770, så mappen ikke fremvises for andre brugere.",
+ "Data directory (%s) is readable by other users" : "Datamappen (%s) kan læses af andre brugere",
+ "Data directory (%s) is invalid" : "Datamappen (%s) er ugyldig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Tjek venligst at datamappen indeholder en fil, \".ocdata\" i dens rod.",
+ "Could not obtain lock type %d on \"%s\"." : "Kunne ikke opnå en låsetype %d på \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/da.json b/lib/l10n/da.json
new file mode 100644
index 00000000000..19a080fdf4a
--- /dev/null
+++ b/lib/l10n/da.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Kan ikke skrive til mappen \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Dette kan normalvis ordnes ved at give webserveren skrive adgang til config mappen",
+ "See %s" : "Se %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dette kan som regel rettes ved at %sgive webserveren skriveadgang til config-mappen%s.",
+ "Sample configuration detected" : "Eksempel for konfiguration registreret",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Der er registreret at eksempel for konfiguration er blevet kopieret. Dette kan ødelægge din installation og understøttes ikke. Læs venligst dokumentationen før der foretages ændringer i config.php",
+ "Help" : "Hjælp",
+ "Personal" : "Personligt",
+ "Settings" : "Indstillinger",
+ "Users" : "Brugere",
+ "Admin" : "Admin",
+ "Recommended" : "Anbefalet",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "App'en \\\"%s\\\" kan ikke installeres, da den ikke er kompatible med denne version af ownCloud.",
+ "No app name specified" : "Intet app-navn angivet",
+ "Unknown filetype" : "Ukendt filtype",
+ "Invalid image" : "Ugyldigt billede",
+ "Database Error" : "Databasefejl",
+ "Please contact your system administrator." : "Kontakt venligst din systemadministrator.",
+ "web services under your control" : "Webtjenester under din kontrol",
+ "App directory already exists" : "App-mappe findes allerede",
+ "Can't create app folder. Please fix permissions. %s" : "Kan ikke oprette app-mappe. Ret tilladelser. %s",
+ "No source specified when installing app" : "Ingen kilde angivet under installation af app",
+ "No href specified when installing app from http" : "Ingen href angivet under installation af app via http",
+ "No path specified when installing app from local file" : "Ingen sti angivet under installation af app fra lokal fil",
+ "Archives of type %s are not supported" : "Arkiver af type %s understøttes ikke",
+ "Failed to open archive when installing app" : "Kunne ikke åbne arkiv under installation af appen",
+ "App does not provide an info.xml file" : "Der følger ingen info.xml-fil med appen",
+ "App can't be installed because of not allowed code in the App" : "Appen kan ikke installeres, da den indeholder ikke-tilladt kode",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Appen kan ikke installeres, da den ikke er kompatibel med denne version af ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Appen kan ikke installeres, da den indeholder mærket true , hvilket ikke er tilladt for ikke-medfølgende apps",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "App kan ikke installeres, da versionen i info.xml/version ikke er den samme som versionen rapporteret fra app-storen",
+ "Application is not enabled" : "Programmet er ikke aktiveret",
+ "Authentication error" : "Adgangsfejl",
+ "Token expired. Please reload page." : "Adgang er udløbet. Genindlæs siden.",
+ "Unknown user" : "Ukendt bruger",
+ "%s enter the database username." : "%s indtast database brugernavnet.",
+ "%s enter the database name." : "%s indtast database navnet.",
+ "%s you may not use dots in the database name" : "%s du må ikke bruge punktummer i databasenavnet.",
+ "MS SQL username and/or password not valid: %s" : "MS SQL brugernavn og/eller adgangskode ikke er gyldigt: %s",
+ "You need to enter either an existing account or the administrator." : "Du bliver nødt til at indtaste en eksisterende bruger eller en administrator.",
+ "MySQL/MariaDB username and/or password not valid" : "Ugyldigt MySQL/MariaDB brugernavn og/eller kodeord ",
+ "DB Error: \"%s\"" : "Databasefejl: \"%s\"",
+ "Offending command was: \"%s\"" : "Fejlende kommando var: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB bruger '%s'@'localhost' eksistere allerede.",
+ "Drop this user from MySQL/MariaDB" : "Slet denne bruger fra MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB bruger '%s'@'%%' eksistere allerede",
+ "Drop this user from MySQL/MariaDB." : "Drop denne bruger fra MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Oracle forbindelsen kunne ikke etableres",
+ "Oracle username and/or password not valid" : "Oracle brugernavn og/eller kodeord er ikke gyldigt.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Fejlende kommando var: \"%s\", navn: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL brugernavn og/eller kodeord er ikke gyldigt.",
+ "Set an admin username." : "Angiv et admin brugernavn.",
+ "Set an admin password." : "Angiv et admin kodeord.",
+ "Can't create or write into the data directory %s" : "Kan ikke oprette eller skrive ind i datamappen %s",
+ "%s shared »%s« with you" : "%s delte »%s« med sig",
+ "Sharing %s failed, because the file does not exist" : "Deling af %s mislykkedes, fordi filen ikke eksisterer",
+ "You are not allowed to share %s" : "Du har ikke tilladelse til at dele %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Der skete en fejl ved deling af %s, brugeren %s er ejer af objektet",
+ "Sharing %s failed, because the user %s does not exist" : "Der skete en fejl ved deling af %s, brugeren %s eksistere ikke",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Der skete en fejl ved deling af %s, brugeren %s er ikke medlem af nogle grupper som %s er medlem af",
+ "Sharing %s failed, because this item is already shared with %s" : "Der skete en fejl ved deling af %s, objektet er allerede delt med %s",
+ "Sharing %s failed, because the group %s does not exist" : "Der skete en fejl ved deling af %s, gruppen %s eksistere ikke",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Der skete en fejl ved deling af %s, fordi %s ikke er medlem af gruppen %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Du skal angive et kodeord for at oprette et offentligt link - kun beskyttede links er tilladt",
+ "Sharing %s failed, because sharing with links is not allowed" : "Der skete en fejl ved deling af %s, det er ikke tilladt at dele links",
+ "Share type %s is not valid for %s" : "Delingstypen %s er ikke gyldig for %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Angivelse af tilladelser for %s mislykkedes, fordi tilladelserne overskred de som var tildelt %s",
+ "Setting permissions for %s failed, because the item was not found" : "Angivelse af tilladelser for %s mislykkedes, fordi artiklen ikke blev fundet",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Kan ikke angive udløbsdato. Delinger kan ikke udløbe senere end %s efter at de er blevet delt",
+ "Cannot set expiration date. Expiration date is in the past" : "Kan ikke angive udløbsdato. Udløbsdato er allerede passeret",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Delingsbackend'en %s skal implementere grænsefladen OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Delingsbackend'en %s blev ikke fundet",
+ "Sharing backend for %s not found" : "Delingsbackend'en for %s blev ikke fundet",
+ "Sharing %s failed, because the user %s is the original sharer" : "Deling af %s mislykkedes, fordi brugeren %s er den som delte oprindeligt",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Deling af %s mislykkedes, fordi tilladelserne overskred de tillaldelser som %s var tildelt",
+ "Sharing %s failed, because resharing is not allowed" : "Deling af %s mislykkedes, fordi videredeling ikke er tilladt",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling af %s mislykkedes, fordi back-enden ikke kunne finde kilden til %s",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Deling af %s mislykkedes, fordi filen ikke kunne findes i fil-cachen",
+ "Could not find category \"%s\"" : "Kunne ikke finde kategorien \"%s\"",
+ "seconds ago" : "sekunder siden",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minut siden","%n minutter siden"],
+ "_%n hour ago_::_%n hours ago_" : ["%n time siden","%n timer siden"],
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day go_::_%n days ago_" : ["%n dag siden","%n dage siden"],
+ "last month" : "sidste måned",
+ "_%n month ago_::_%n months ago_" : ["%n måned siden","%n måneder siden"],
+ "last year" : "sidste år",
+ "years ago" : "år siden",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Det er kun tilladt at benytte følgene karakterer i et brugernavn \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Et gyldigt brugernavn skal angives",
+ "A valid password must be provided" : "En gyldig adgangskode skal angives",
+ "The username is already being used" : "Brugernavnet er allerede i brug",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ingen database driver (sqlite, mysql eller postgresql) er installeret.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Rettigheder kan som regel rettes ved %sat give webserveren skriveadgang til rodmappen%s.",
+ "Cannot write into \"config\" directory" : "Kan ikke skrive til mappen \"config\"",
+ "Cannot write into \"apps\" directory" : "Kan ikke skrive til mappen \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dette kan som regel rettes ved at %sgive webserveren skriveadgang til apps-mappen%s eller slå appstore fra i config-filen.",
+ "Cannot create \"data\" directory (%s)" : "Kan ikke oprette mappen \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Dette kan som regel rettes ved give webserveren skriveadgang til rodmappen .",
+ "Setting locale to %s failed" : "Angivelse af %s for lokalitet mislykkedes",
+ "Please install one of these locales on your system and restart your webserver." : "Installér venligst én af disse lokaliteter på dit system, og genstart din webserver.",
+ "Please ask your server administrator to install the module." : "Du bedes anmode din serveradministrator om at installere modulet.",
+ "PHP module %s not installed." : "PHP-modulet %s er ikke installeret.",
+ "PHP %s or higher is required." : "Der kræves PHP %s eller nyere.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bed venligst din serveradministrator om at opdatere PHP til seneste version. Din PHP-version understøttes ikke længere af ownCload og PHP-fællesskabet.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode er slået til. ownCload kræver at denne er slået fra, for at fungere ordentligt.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode er udgået og stort set en ubrugelig indstilling, der bør slås fra. Spørg venligst din serveradministrator om at slå den fra i php.ini eller din webeserver-konfiguration.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes er slået til. ownCloud kræver at denne er slået fra, for at fungere ordentligt.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes er udgået og stort set en ubrugelig indstilling, der bør slås fra. Spørg venligst din serveradministrator om at slå den fra i php.ini eller din webeserver-konfiguration.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Der er installeret PHP-moduler, men de fremgår stadig som fraværende?",
+ "Please ask your server administrator to restart the web server." : "Du bedes anmode din serveradministrator om at genstarte webserveren.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 kræves",
+ "Please upgrade your database version" : "Opgradér venligst din databaseversion",
+ "Error occurred while checking PostgreSQL version" : "Der opstod fejl under tjek af PostgreSQL-versionen",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Sørg venligst for at du har PostgreSQL >= 9 eller tjek loggen for flere informationer om fejlen",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Tilpas venligst rettigheder til 0770, så mappen ikke fremvises for andre brugere.",
+ "Data directory (%s) is readable by other users" : "Datamappen (%s) kan læses af andre brugere",
+ "Data directory (%s) is invalid" : "Datamappen (%s) er ugyldig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Tjek venligst at datamappen indeholder en fil, \".ocdata\" i dens rod.",
+ "Could not obtain lock type %d on \"%s\"." : "Kunne ikke opnå en låsetype %d på \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/da.php b/lib/l10n/da.php
deleted file mode 100644
index 1568d72e3a6..00000000000
--- a/lib/l10n/da.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Kan ikke skrive til mappen \"config\"!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Dette kan normalvis ordnes ved at give webserveren skrive adgang til config mappen",
-"See %s" => "Se %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Dette kan som regel rettes ved at %sgive webserveren skriveadgang til config-mappen%s.",
-"Sample configuration detected" => "Eksempel for konfiguration registreret",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Der er registreret at eksempel for konfiguration er blevet kopieret. Dette kan ødelægge din installation og understøttes ikke. Læs venligst dokumentationen før der foretages ændringer i config.php",
-"Help" => "Hjælp",
-"Personal" => "Personligt",
-"Settings" => "Indstillinger",
-"Users" => "Brugere",
-"Admin" => "Admin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "App'en \\\"%s\\\" kan ikke installeres, da den ikke er kompatible med denne version af ownCloud.",
-"No app name specified" => "Intet app-navn angivet",
-"Unknown filetype" => "Ukendt filtype",
-"Invalid image" => "Ugyldigt billede",
-"web services under your control" => "Webtjenester under din kontrol",
-"App directory already exists" => "App-mappe findes allerede",
-"Can't create app folder. Please fix permissions. %s" => "Kan ikke oprette app-mappe. Ret tilladelser. %s",
-"No source specified when installing app" => "Ingen kilde angivet under installation af app",
-"No href specified when installing app from http" => "Ingen href angivet under installation af app via http",
-"No path specified when installing app from local file" => "Ingen sti angivet under installation af app fra lokal fil",
-"Archives of type %s are not supported" => "Arkiver af type %s understøttes ikke",
-"Failed to open archive when installing app" => "Kunne ikke åbne arkiv under installation af appen",
-"App does not provide an info.xml file" => "Der følger ingen info.xml-fil med appen",
-"App can't be installed because of not allowed code in the App" => "Appen kan ikke installeres, da den indeholder ikke-tilladt kode",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Appen kan ikke installeres, da den ikke er kompatibel med denne version af ownCloud.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Appen kan ikke installeres, da den indeholder taget\n\n\ntrue\n \n\nhvilket ikke er tilladt for ikke-medfølgende apps",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "App kan ikke installeres, da versionen i info.xml/version ikke er den samme som versionen rapporteret fra app-storen",
-"Application is not enabled" => "Programmet er ikke aktiveret",
-"Authentication error" => "Adgangsfejl",
-"Token expired. Please reload page." => "Adgang er udløbet. Genindlæs siden.",
-"Unknown user" => "Ukendt bruger",
-"%s enter the database username." => "%s indtast database brugernavnet.",
-"%s enter the database name." => "%s indtast database navnet.",
-"%s you may not use dots in the database name" => "%s du må ikke bruge punktummer i databasenavnet.",
-"MS SQL username and/or password not valid: %s" => "MS SQL brugernavn og/eller adgangskode ikke er gyldigt: %s",
-"You need to enter either an existing account or the administrator." => "Du bliver nødt til at indtaste en eksisterende bruger eller en administrator.",
-"MySQL/MariaDB username and/or password not valid" => "Ugyldigt MySQL/MariaDB brugernavn og/eller kodeord ",
-"DB Error: \"%s\"" => "Databasefejl: \"%s\"",
-"Offending command was: \"%s\"" => "Fejlende kommando var: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB bruger '%s'@'localhost' eksistere allerede.",
-"Drop this user from MySQL/MariaDB" => "Slet denne bruger fra MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB bruger '%s'@'%%' eksistere allerede",
-"Drop this user from MySQL/MariaDB." => "Drop denne bruger fra MySQL/MariaDB.",
-"Oracle connection could not be established" => "Oracle forbindelsen kunne ikke etableres",
-"Oracle username and/or password not valid" => "Oracle brugernavn og/eller kodeord er ikke gyldigt.",
-"Offending command was: \"%s\", name: %s, password: %s" => "Fejlende kommando var: \"%s\", navn: %s, password: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL brugernavn og/eller kodeord er ikke gyldigt.",
-"Set an admin username." => "Angiv et admin brugernavn.",
-"Set an admin password." => "Angiv et admin kodeord.",
-"Can't create or write into the data directory %s" => "Kan ikke oprette eller skrive ind i datamappen %s",
-"%s shared »%s« with you" => "%s delte »%s« med sig",
-"Sharing %s failed, because the file does not exist" => "Deling af %s mislykkedes, fordi filen ikke eksisterer",
-"You are not allowed to share %s" => "Du har ikke tilladelse til at dele %s",
-"Sharing %s failed, because the user %s is the item owner" => "Der skete en fejl ved deling af %s, brugeren %s er ejer af objektet",
-"Sharing %s failed, because the user %s does not exist" => "Der skete en fejl ved deling af %s, brugeren %s eksistere ikke",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Der skete en fejl ved deling af %s, brugeren %s er ikke medlem af nogle grupper som %s er medlem af",
-"Sharing %s failed, because this item is already shared with %s" => "Der skete en fejl ved deling af %s, objektet er allerede delt med %s",
-"Sharing %s failed, because the group %s does not exist" => "Der skete en fejl ved deling af %s, gruppen %s eksistere ikke",
-"Sharing %s failed, because %s is not a member of the group %s" => "Der skete en fejl ved deling af %s, fordi %s ikke er medlem af gruppen %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Du skal angive et kodeord for at oprette et offentligt link - kun beskyttede links er tilladt",
-"Sharing %s failed, because sharing with links is not allowed" => "Der skete en fejl ved deling af %s, det er ikke tilladt at dele links",
-"Share type %s is not valid for %s" => "Delingstypen %s er ikke gyldig for %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Angivelse af tilladelser for %s mislykkedes, fordi tilladelserne overskred de som var tildelt %s",
-"Setting permissions for %s failed, because the item was not found" => "Angivelse af tilladelser for %s mislykkedes, fordi artiklen ikke blev fundet",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Kan ikke angive udløbsdato. Delinger kan ikke udløbe senere end %s efter at de er blevet delt",
-"Cannot set expiration date. Expiration date is in the past" => "Kan ikke angive udløbsdato. Udløbsdato er allerede passeret",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Delingsbackend'en %s skal implementere grænsefladen OCP\\Share_Backend",
-"Sharing backend %s not found" => "Delingsbackend'en %s blev ikke fundet",
-"Sharing backend for %s not found" => "Delingsbackend'en for %s blev ikke fundet",
-"Sharing %s failed, because the user %s is the original sharer" => "Deling af %s mislykkedes, fordi brugeren %s er den som delte oprindeligt",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Deling af %s mislykkedes, fordi tilladelserne overskred de tillaldelser som %s var tildelt",
-"Sharing %s failed, because resharing is not allowed" => "Deling af %s mislykkedes, fordi videredeling ikke er tilladt",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Deling af %s mislykkedes, fordi back-enden ikke kunne finde kilden til %s",
-"Sharing %s failed, because the file could not be found in the file cache" => "Deling af %s mislykkedes, fordi filen ikke kunne findes i fil-cachen",
-"Could not find category \"%s\"" => "Kunne ikke finde kategorien \"%s\"",
-"seconds ago" => "sekunder siden",
-"_%n minute ago_::_%n minutes ago_" => array("%n minut siden","%n minutter siden"),
-"_%n hour ago_::_%n hours ago_" => array("%n time siden","%n timer siden"),
-"today" => "i dag",
-"yesterday" => "i går",
-"_%n day go_::_%n days ago_" => array("%n dag siden","%n dage siden"),
-"last month" => "sidste måned",
-"_%n month ago_::_%n months ago_" => array("%n måned siden","%n måneder siden"),
-"last year" => "sidste år",
-"years ago" => "år siden",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Det er kun tilladt at benytte følgene karakterer i et brugernavn \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
-"A valid username must be provided" => "Et gyldigt brugernavn skal angives",
-"A valid password must be provided" => "En gyldig adgangskode skal angives",
-"The username is already being used" => "Brugernavnet er allerede i brug",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Ingen database driver (sqlite, mysql eller postgresql) er installeret.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Rettigheder kan som regel rettes ved %sat give webserveren skriveadgang til rodmappen%s.",
-"Cannot write into \"config\" directory" => "Kan ikke skrive til mappen \"config\"",
-"Cannot write into \"apps\" directory" => "Kan ikke skrive til mappen \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Dette kan som regel rettes ved at %sgive webserveren skriveadgang til apps-mappen%s eller slå appstore fra i config-filen.",
-"Cannot create \"data\" directory (%s)" => "Kan ikke oprette mappen \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Dette kan som regel rettes ved give webserveren skriveadgang til rodmappen .",
-"Setting locale to %s failed" => "Angivelse af %s for lokalitet mislykkedes",
-"Please install one of these locales on your system and restart your webserver." => "Installér venligst én af disse lokaliteter på dit system, og genstart din webserver.",
-"Please ask your server administrator to install the module." => "Du bedes anmode din serveradministrator om at installere modulet.",
-"PHP module %s not installed." => "PHP-modulet %s er ikke installeret.",
-"PHP %s or higher is required." => "Der kræves PHP %s eller nyere.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Bed venligst din serveradministrator om at opdatere PHP til seneste version. Din PHP-version understøttes ikke længere af ownCload og PHP-fællesskabet.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode er slået til. ownCload kræver at denne er slået fra, for at fungere ordentligt.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode er udgået og stort set en ubrugelig indstilling, der bør slås fra. Spørg venligst din serveradministrator om at slå den fra i php.ini eller din webeserver-konfiguration.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes er slået til. ownCloud kræver at denne er slået fra, for at fungere ordentligt.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes er udgået og stort set en ubrugelig indstilling, der bør slås fra. Spørg venligst din serveradministrator om at slå den fra i php.ini eller din webeserver-konfiguration.",
-"PHP modules have been installed, but they are still listed as missing?" => "Der er installeret PHP-moduler, men de fremgår stadig som fraværende?",
-"Please ask your server administrator to restart the web server." => "Du bedes anmode din serveradministrator om at genstarte webserveren.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 kræves",
-"Please upgrade your database version" => "Opgradér venligst din databaseversion",
-"Error occurred while checking PostgreSQL version" => "Der opstod fejl under tjek af PostgreSQL-versionen",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Sørg venligst for at du har PostgreSQL >= 9 eller tjek loggen for flere informationer om fejlen",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Tilpas venligst rettigheder til 0770, så mappen ikke fremvises for andre brugere.",
-"Data directory (%s) is readable by other users" => "Datamappen (%s) kan læses af andre brugere",
-"Data directory (%s) is invalid" => "Datamappen (%s) er ugyldig",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Tjek venligst at datamappen indeholder en fil, \".ocdata\" i dens rod.",
-"Could not obtain lock type %d on \"%s\"." => "Kunne ikke opnå en låsetype %d på \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/de.js b/lib/l10n/de.js
new file mode 100644
index 00000000000..215052da7f9
--- /dev/null
+++ b/lib/l10n/de.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Das Schreiben in das \"config\"-Verzeichnis nicht möglich!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Dies kann normalerweise repariert werden, indem dem Webserver Schreibzugriff auf das config-Verzeichnis gegeben wird",
+ "See %s" : "Siehe %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das config-Verzeichnis %s gegeben wird.",
+ "Sample configuration detected" : "Beispielkonfiguration gefunden",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lese die Dokumentation vor der Änderung an der config.php.",
+ "Help" : "Hilfe",
+ "Personal" : "Persönlich",
+ "Settings" : "Einstellungen",
+ "Users" : "Benutzer",
+ "Admin" : "Administration",
+ "Recommended" : "Empfohlen",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Applikation \\\"%s\\\" kann nicht installiert werden, da sie mit dieser ownCloud Version nicht kompatibel ist.",
+ "No app name specified" : "Es wurde kein Applikation-Name angegeben",
+ "Unknown filetype" : "Unbekannter Dateityp",
+ "Invalid image" : "Ungültiges Bild",
+ "Database Error" : "Datenbankfehler",
+ "Please contact your system administrator." : "Bitte kontaktiere Deinen Systemadministrator.",
+ "web services under your control" : "Web-Services unter Deiner Kontrolle",
+ "App directory already exists" : "Das Applikationsverzeichnis existiert bereits",
+ "Can't create app folder. Please fix permissions. %s" : "Es kann kein Applikationsordner erstellt werden. Bitte passe die Berechtigungen an. %s",
+ "No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben",
+ "No href specified when installing app from http" : "Für die Installation der Applikation über http wurde keine Quelle (href) angegeben",
+ "No path specified when installing app from local file" : "Bei der Installation der Applikation aus einer lokalen Datei wurde kein Pfad angegeben",
+ "Archives of type %s are not supported" : "Archive vom Typ %s werden nicht unterstützt",
+ "Failed to open archive when installing app" : "Das Archiv konnte bei der Installation der Applikation nicht geöffnet werden",
+ "App does not provide an info.xml file" : "Die Applikation enthält keine info,xml Datei",
+ "App can't be installed because of not allowed code in the App" : "Die Applikation kann auf Grund von unerlaubtem Code nicht installiert werden",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser Version von ownCloud kompatibel ist.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Die Applikation konnte nicht installiert werden, da diese das true Tag beinhaltet und dieses, bei nicht mitausgelieferten Applikationen, nicht erlaubt ist",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Die Applikation konnte nicht installiert werden, da die Version in der info.xml nicht die gleiche Version wie im App-Store ist",
+ "Application is not enabled" : "Die Anwendung ist nicht aktiviert",
+ "Authentication error" : "Fehler bei der Anmeldung",
+ "Token expired. Please reload page." : "Token abgelaufen. Bitte lade die Seite neu.",
+ "Unknown user" : "Unbekannter Benutzer",
+ "%s enter the database username." : "%s gib den Datenbank-Benutzernamen an.",
+ "%s enter the database name." : "%s gib den Datenbank-Namen an.",
+ "%s you may not use dots in the database name" : "%s Der Datenbank-Name darf keine Punkte enthalten",
+ "MS SQL username and/or password not valid: %s" : "MS SQL Benutzername und/oder Password ungültig: %s",
+ "You need to enter either an existing account or the administrator." : "Du musst entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB Benutzername und/oder Passwort sind nicht gültig",
+ "DB Error: \"%s\"" : "DB Fehler: \"%s\"",
+ "Offending command was: \"%s\"" : "Fehlerhafter Befehl war: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB Benutzer '%s'@'localhost' existiert bereits.",
+ "Drop this user from MySQL/MariaDB" : "Lösche diesen Benutzer von MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB Benutzer '%s'@'%%' existiert bereits",
+ "Drop this user from MySQL/MariaDB." : "Lösche diesen Benutzer von MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Es konnte keine Verbindung zur Oracle-Datenbank hergestellt werden",
+ "Oracle username and/or password not valid" : "Oracle Benutzername und/oder Passwort ungültig",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL Benutzername und/oder Passwort ungültig",
+ "Set an admin username." : "Setze Administrator Benutzername.",
+ "Set an admin password." : "Setze Administrator Passwort",
+ "Can't create or write into the data directory %s" : "Das Datenverzeichnis %s kann nicht erstellt oder beschreiben werden",
+ "%s shared »%s« with you" : "%s teilte »%s« mit Dir",
+ "Sharing %s failed, because the file does not exist" : "Freigabe von %s fehlgeschlagen, da die Datei nicht existiert",
+ "You are not allowed to share %s" : "Die Freigabe von %s ist Dir nicht erlaubt",
+ "Sharing %s failed, because the user %s is the item owner" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s Besitzer des Objektes ist",
+ "Sharing %s failed, because the user %s does not exist" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s nicht existiert",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s kein Gruppenmitglied einer der Gruppen von %s ist",
+ "Sharing %s failed, because this item is already shared with %s" : "Freigabe von %s fehlgeschlagen, da dieses Objekt schon mit %s geteilt wird",
+ "Sharing %s failed, because the group %s does not exist" : "Freigabe von %s fehlgeschlagen, da die Gruppe %s nicht existiert",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Freigabe von %s fehlgeschlagen, da %s kein Mitglied der Gruppe %s ist",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Es sind nur geschützte Links zulässig, daher müssen Sie ein Passwort angeben, um einen öffentlichen Link zu generieren",
+ "Sharing %s failed, because sharing with links is not allowed" : "Freigabe von %s fehlgeschlagen, da das Teilen von Verknüpfungen nicht erlaubt ist",
+ "Share type %s is not valid for %s" : "Freigabetyp %s ist nicht gültig für %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da die Berechtigungen, die erteilten Berechtigungen %s überschreiten",
+ "Setting permissions for %s failed, because the item was not found" : "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da das Objekt nicht gefunden wurde",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Ablaufdatum kann nicht gesetzt werden. Freigaben können nach dem Teilen, nicht länger als %s gültig sein.",
+ "Cannot set expiration date. Expiration date is in the past" : "Ablaufdatum kann nicht gesetzt werden. Ablaufdatum liegt in der Vergangenheit.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Freigabe-Backend %s muss in der OCP\\Share_Backend - Schnittstelle implementiert werden",
+ "Sharing backend %s not found" : "Freigabe-Backend %s nicht gefunden",
+ "Sharing backend for %s not found" : "Freigabe-Backend für %s nicht gefunden",
+ "Sharing %s failed, because the user %s is the original sharer" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s der offizielle Freigeber ist",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Freigabe von %s fehlgeschlagen, da die Berechtigungen die erteilten Berechtigungen %s überschreiten",
+ "Sharing %s failed, because resharing is not allowed" : "Freigabe von %s fehlgeschlagen, da das nochmalige Freigeben einer Freigabe nicht erlaubt ist",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Freigabe von %s fehlgeschlagen, da das Freigabe-Backend für %s nicht in dieser Quelle gefunden werden konnte",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Freigabe von %s fehlgeschlagen, da die Datei im Datei-Cache nicht gefunden werden konnte",
+ "Could not find category \"%s\"" : "Die Kategorie \"%s\" konnte nicht gefunden werden.",
+ "seconds ago" : "Gerade eben",
+ "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
+ "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
+ "today" : "Heute",
+ "yesterday" : "Gestern",
+ "_%n day go_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
+ "last month" : "Letzten Monat",
+ "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
+ "last year" : "Letztes Jahr",
+ "years ago" : "Vor Jahren",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Folgende Zeichen sind im Benutzernamen erlaubt: \"a-z\", \"A-Z\", \"0-9\" und \"_.@-\"",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
+ "The username is already being used" : "Dieser Benutzername existiert bereits",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Keine Datenbanktreiber (SQLite, MYSQL, oder PostgreSQL) installiert.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Berechtigungen können normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Wurzelverzeichnis %s gegeben wird.",
+ "Cannot write into \"config\" directory" : "Das Schreiben in das \"config\"-Verzeichnis nicht möglich",
+ "Cannot write into \"apps\" directory" : "Das Schreiben in das \"apps\"-Verzeichnis nicht möglich",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Anwendungsverzeichnis %s gegeben wird oder die Anwendungsauswahl in der Konfigurationsdatei deaktiviert wird.",
+ "Cannot create \"data\" directory (%s)" : "Das Erstellen des \"data\"-Verzeichnisses nicht möglich (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Dies kann normalerweise repariert werden, indem dem Webserver .",
+ "Setting locale to %s failed" : "Das Setzen der Umgebungslokale auf %s fehlgeschlagen",
+ "Please install one of these locales on your system and restart your webserver." : "Bitte installiere eine dieser Sprachen auf Deinem System und starte den Webserver neu.",
+ "Please ask your server administrator to install the module." : "Bitte frage, für die Installation des Moduls, Deinen Server-Administrator.",
+ "PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
+ "PHP %s or higher is required." : "PHP %s oder höher wird benötigt.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte frage zur Aktualisierung von PHP auf die letzte Version Deinen Server-Administrator. Deine PHP-Version wird nicht länger durch ownCloud und der PHP-Gemeinschaft unterstützt.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP-Sicherheitsmodus ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Der PHP-Sicherheitsmodus ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte frage Deinen Server-Administrator zur Deaktivierung in der php.ini oder Deiner Webserver-Konfiguration.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte frage Deinen Server-Administrator zur Deaktivierung in der php.ini oder Deiner Webserver-Konfiguration.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
+ "Please ask your server administrator to restart the web server." : "Bitte frage Deinen Server-Administrator zum Neustart des Webservers.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
+ "Please upgrade your database version" : "Bitte aktualisiere Deine Datenbankversion",
+ "Error occurred while checking PostgreSQL version" : "Es ist ein Fehler beim Prüfen der PostgreSQL-Version aufgetreten",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Stelle bitte sicher, dass Du PostgreSQL >= 9 verwendest oder prüfe die Logs für weitere Informationen über den Fehler",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Bitte ändere die Berechtigungen auf 0770 sodass das Verzeichnis nicht von anderen Nutzer angezeigt werden kann.",
+ "Data directory (%s) is readable by other users" : "Daten-Verzeichnis (%s) ist von anderen Nutzern lesbar",
+ "Data directory (%s) is invalid" : "Daten-Verzeichnis (%s) ist ungültig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Bitte stelle sicher, dass das Daten-Verzeichnis eine Datei namens \".ocdata\" im Wurzelverzeichnis enthält.",
+ "Could not obtain lock type %d on \"%s\"." : "Sperrtyp %d auf \"%s\" konnte nicht ermittelt werden."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/de.json b/lib/l10n/de.json
new file mode 100644
index 00000000000..086fc888986
--- /dev/null
+++ b/lib/l10n/de.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Das Schreiben in das \"config\"-Verzeichnis nicht möglich!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Dies kann normalerweise repariert werden, indem dem Webserver Schreibzugriff auf das config-Verzeichnis gegeben wird",
+ "See %s" : "Siehe %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das config-Verzeichnis %s gegeben wird.",
+ "Sample configuration detected" : "Beispielkonfiguration gefunden",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lese die Dokumentation vor der Änderung an der config.php.",
+ "Help" : "Hilfe",
+ "Personal" : "Persönlich",
+ "Settings" : "Einstellungen",
+ "Users" : "Benutzer",
+ "Admin" : "Administration",
+ "Recommended" : "Empfohlen",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Applikation \\\"%s\\\" kann nicht installiert werden, da sie mit dieser ownCloud Version nicht kompatibel ist.",
+ "No app name specified" : "Es wurde kein Applikation-Name angegeben",
+ "Unknown filetype" : "Unbekannter Dateityp",
+ "Invalid image" : "Ungültiges Bild",
+ "Database Error" : "Datenbankfehler",
+ "Please contact your system administrator." : "Bitte kontaktiere Deinen Systemadministrator.",
+ "web services under your control" : "Web-Services unter Deiner Kontrolle",
+ "App directory already exists" : "Das Applikationsverzeichnis existiert bereits",
+ "Can't create app folder. Please fix permissions. %s" : "Es kann kein Applikationsordner erstellt werden. Bitte passe die Berechtigungen an. %s",
+ "No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben",
+ "No href specified when installing app from http" : "Für die Installation der Applikation über http wurde keine Quelle (href) angegeben",
+ "No path specified when installing app from local file" : "Bei der Installation der Applikation aus einer lokalen Datei wurde kein Pfad angegeben",
+ "Archives of type %s are not supported" : "Archive vom Typ %s werden nicht unterstützt",
+ "Failed to open archive when installing app" : "Das Archiv konnte bei der Installation der Applikation nicht geöffnet werden",
+ "App does not provide an info.xml file" : "Die Applikation enthält keine info,xml Datei",
+ "App can't be installed because of not allowed code in the App" : "Die Applikation kann auf Grund von unerlaubtem Code nicht installiert werden",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser Version von ownCloud kompatibel ist.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Die Applikation konnte nicht installiert werden, da diese das true Tag beinhaltet und dieses, bei nicht mitausgelieferten Applikationen, nicht erlaubt ist",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Die Applikation konnte nicht installiert werden, da die Version in der info.xml nicht die gleiche Version wie im App-Store ist",
+ "Application is not enabled" : "Die Anwendung ist nicht aktiviert",
+ "Authentication error" : "Fehler bei der Anmeldung",
+ "Token expired. Please reload page." : "Token abgelaufen. Bitte lade die Seite neu.",
+ "Unknown user" : "Unbekannter Benutzer",
+ "%s enter the database username." : "%s gib den Datenbank-Benutzernamen an.",
+ "%s enter the database name." : "%s gib den Datenbank-Namen an.",
+ "%s you may not use dots in the database name" : "%s Der Datenbank-Name darf keine Punkte enthalten",
+ "MS SQL username and/or password not valid: %s" : "MS SQL Benutzername und/oder Password ungültig: %s",
+ "You need to enter either an existing account or the administrator." : "Du musst entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB Benutzername und/oder Passwort sind nicht gültig",
+ "DB Error: \"%s\"" : "DB Fehler: \"%s\"",
+ "Offending command was: \"%s\"" : "Fehlerhafter Befehl war: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB Benutzer '%s'@'localhost' existiert bereits.",
+ "Drop this user from MySQL/MariaDB" : "Lösche diesen Benutzer von MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB Benutzer '%s'@'%%' existiert bereits",
+ "Drop this user from MySQL/MariaDB." : "Lösche diesen Benutzer von MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Es konnte keine Verbindung zur Oracle-Datenbank hergestellt werden",
+ "Oracle username and/or password not valid" : "Oracle Benutzername und/oder Passwort ungültig",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL Benutzername und/oder Passwort ungültig",
+ "Set an admin username." : "Setze Administrator Benutzername.",
+ "Set an admin password." : "Setze Administrator Passwort",
+ "Can't create or write into the data directory %s" : "Das Datenverzeichnis %s kann nicht erstellt oder beschreiben werden",
+ "%s shared »%s« with you" : "%s teilte »%s« mit Dir",
+ "Sharing %s failed, because the file does not exist" : "Freigabe von %s fehlgeschlagen, da die Datei nicht existiert",
+ "You are not allowed to share %s" : "Die Freigabe von %s ist Dir nicht erlaubt",
+ "Sharing %s failed, because the user %s is the item owner" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s Besitzer des Objektes ist",
+ "Sharing %s failed, because the user %s does not exist" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s nicht existiert",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s kein Gruppenmitglied einer der Gruppen von %s ist",
+ "Sharing %s failed, because this item is already shared with %s" : "Freigabe von %s fehlgeschlagen, da dieses Objekt schon mit %s geteilt wird",
+ "Sharing %s failed, because the group %s does not exist" : "Freigabe von %s fehlgeschlagen, da die Gruppe %s nicht existiert",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Freigabe von %s fehlgeschlagen, da %s kein Mitglied der Gruppe %s ist",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Es sind nur geschützte Links zulässig, daher müssen Sie ein Passwort angeben, um einen öffentlichen Link zu generieren",
+ "Sharing %s failed, because sharing with links is not allowed" : "Freigabe von %s fehlgeschlagen, da das Teilen von Verknüpfungen nicht erlaubt ist",
+ "Share type %s is not valid for %s" : "Freigabetyp %s ist nicht gültig für %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da die Berechtigungen, die erteilten Berechtigungen %s überschreiten",
+ "Setting permissions for %s failed, because the item was not found" : "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da das Objekt nicht gefunden wurde",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Ablaufdatum kann nicht gesetzt werden. Freigaben können nach dem Teilen, nicht länger als %s gültig sein.",
+ "Cannot set expiration date. Expiration date is in the past" : "Ablaufdatum kann nicht gesetzt werden. Ablaufdatum liegt in der Vergangenheit.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Freigabe-Backend %s muss in der OCP\\Share_Backend - Schnittstelle implementiert werden",
+ "Sharing backend %s not found" : "Freigabe-Backend %s nicht gefunden",
+ "Sharing backend for %s not found" : "Freigabe-Backend für %s nicht gefunden",
+ "Sharing %s failed, because the user %s is the original sharer" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s der offizielle Freigeber ist",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Freigabe von %s fehlgeschlagen, da die Berechtigungen die erteilten Berechtigungen %s überschreiten",
+ "Sharing %s failed, because resharing is not allowed" : "Freigabe von %s fehlgeschlagen, da das nochmalige Freigeben einer Freigabe nicht erlaubt ist",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Freigabe von %s fehlgeschlagen, da das Freigabe-Backend für %s nicht in dieser Quelle gefunden werden konnte",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Freigabe von %s fehlgeschlagen, da die Datei im Datei-Cache nicht gefunden werden konnte",
+ "Could not find category \"%s\"" : "Die Kategorie \"%s\" konnte nicht gefunden werden.",
+ "seconds ago" : "Gerade eben",
+ "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
+ "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
+ "today" : "Heute",
+ "yesterday" : "Gestern",
+ "_%n day go_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
+ "last month" : "Letzten Monat",
+ "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
+ "last year" : "Letztes Jahr",
+ "years ago" : "Vor Jahren",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Folgende Zeichen sind im Benutzernamen erlaubt: \"a-z\", \"A-Z\", \"0-9\" und \"_.@-\"",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
+ "The username is already being used" : "Dieser Benutzername existiert bereits",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Keine Datenbanktreiber (SQLite, MYSQL, oder PostgreSQL) installiert.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Berechtigungen können normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Wurzelverzeichnis %s gegeben wird.",
+ "Cannot write into \"config\" directory" : "Das Schreiben in das \"config\"-Verzeichnis nicht möglich",
+ "Cannot write into \"apps\" directory" : "Das Schreiben in das \"apps\"-Verzeichnis nicht möglich",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Anwendungsverzeichnis %s gegeben wird oder die Anwendungsauswahl in der Konfigurationsdatei deaktiviert wird.",
+ "Cannot create \"data\" directory (%s)" : "Das Erstellen des \"data\"-Verzeichnisses nicht möglich (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Dies kann normalerweise repariert werden, indem dem Webserver .",
+ "Setting locale to %s failed" : "Das Setzen der Umgebungslokale auf %s fehlgeschlagen",
+ "Please install one of these locales on your system and restart your webserver." : "Bitte installiere eine dieser Sprachen auf Deinem System und starte den Webserver neu.",
+ "Please ask your server administrator to install the module." : "Bitte frage, für die Installation des Moduls, Deinen Server-Administrator.",
+ "PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
+ "PHP %s or higher is required." : "PHP %s oder höher wird benötigt.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte frage zur Aktualisierung von PHP auf die letzte Version Deinen Server-Administrator. Deine PHP-Version wird nicht länger durch ownCloud und der PHP-Gemeinschaft unterstützt.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP-Sicherheitsmodus ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Der PHP-Sicherheitsmodus ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte frage Deinen Server-Administrator zur Deaktivierung in der php.ini oder Deiner Webserver-Konfiguration.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte frage Deinen Server-Administrator zur Deaktivierung in der php.ini oder Deiner Webserver-Konfiguration.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
+ "Please ask your server administrator to restart the web server." : "Bitte frage Deinen Server-Administrator zum Neustart des Webservers.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
+ "Please upgrade your database version" : "Bitte aktualisiere Deine Datenbankversion",
+ "Error occurred while checking PostgreSQL version" : "Es ist ein Fehler beim Prüfen der PostgreSQL-Version aufgetreten",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Stelle bitte sicher, dass Du PostgreSQL >= 9 verwendest oder prüfe die Logs für weitere Informationen über den Fehler",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Bitte ändere die Berechtigungen auf 0770 sodass das Verzeichnis nicht von anderen Nutzer angezeigt werden kann.",
+ "Data directory (%s) is readable by other users" : "Daten-Verzeichnis (%s) ist von anderen Nutzern lesbar",
+ "Data directory (%s) is invalid" : "Daten-Verzeichnis (%s) ist ungültig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Bitte stelle sicher, dass das Daten-Verzeichnis eine Datei namens \".ocdata\" im Wurzelverzeichnis enthält.",
+ "Could not obtain lock type %d on \"%s\"." : "Sperrtyp %d auf \"%s\" konnte nicht ermittelt werden."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/de.php b/lib/l10n/de.php
deleted file mode 100644
index e2586d286ed..00000000000
--- a/lib/l10n/de.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Das Schreiben in das \"config\"-Verzeichnis nicht möglich!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Dies kann normalerweise repariert werden, indem dem Webserver Schreibzugriff auf das config-Verzeichnis gegeben wird",
-"See %s" => "Siehe %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das config-Verzeichnis %s gegeben wird.",
-"Sample configuration detected" => "Beispielkonfiguration gefunden",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lese die Dokumentation vor der Änderung an der config.php.",
-"Help" => "Hilfe",
-"Personal" => "Persönlich",
-"Settings" => "Einstellungen",
-"Users" => "Benutzer",
-"Admin" => "Administration",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Applikation \\\"%s\\\" kann nicht installiert werden, da sie mit dieser ownCloud Version nicht kompatibel ist.",
-"No app name specified" => "Es wurde kein Applikation-Name angegeben",
-"Unknown filetype" => "Unbekannter Dateityp",
-"Invalid image" => "Ungültiges Bild",
-"web services under your control" => "Web-Services unter Deiner Kontrolle",
-"App directory already exists" => "Das Applikationsverzeichnis existiert bereits",
-"Can't create app folder. Please fix permissions. %s" => "Es kann kein Applikationsordner erstellt werden. Bitte passe die Berechtigungen an. %s",
-"No source specified when installing app" => "Für die Installation der Applikation wurde keine Quelle angegeben",
-"No href specified when installing app from http" => "Für die Installation der Applikation über http wurde keine Quelle (href) angegeben",
-"No path specified when installing app from local file" => "Bei der Installation der Applikation aus einer lokalen Datei wurde kein Pfad angegeben",
-"Archives of type %s are not supported" => "Archive vom Typ %s werden nicht unterstützt",
-"Failed to open archive when installing app" => "Das Archiv konnte bei der Installation der Applikation nicht geöffnet werden",
-"App does not provide an info.xml file" => "Die Applikation enthält keine info,xml Datei",
-"App can't be installed because of not allowed code in the App" => "Die Applikation kann auf Grund von unerlaubtem Code nicht installiert werden",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser Version von ownCloud kompatibel ist.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Die Applikation konnte nicht installiert werden, da diese das true Tag beinhaltet und dieses, bei nicht mitausgelieferten Applikationen, nicht erlaubt ist",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Die Applikation konnte nicht installiert werden, da die Version in der info.xml nicht die gleiche Version wie im App-Store ist",
-"Application is not enabled" => "Die Anwendung ist nicht aktiviert",
-"Authentication error" => "Fehler bei der Anmeldung",
-"Token expired. Please reload page." => "Token abgelaufen. Bitte lade die Seite neu.",
-"Unknown user" => "Unbekannter Benutzer",
-"%s enter the database username." => "%s gib den Datenbank-Benutzernamen an.",
-"%s enter the database name." => "%s gib den Datenbank-Namen an.",
-"%s you may not use dots in the database name" => "%s Der Datenbank-Name darf keine Punkte enthalten",
-"MS SQL username and/or password not valid: %s" => "MS SQL Benutzername und/oder Password ungültig: %s",
-"You need to enter either an existing account or the administrator." => "Du musst entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB Benutzername und/oder Passwort sind nicht gültig",
-"DB Error: \"%s\"" => "DB Fehler: \"%s\"",
-"Offending command was: \"%s\"" => "Fehlerhafter Befehl war: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB Benutzer '%s'@'localhost' existiert bereits.",
-"Drop this user from MySQL/MariaDB" => "Lösche diesen Benutzer von MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB Benutzer '%s'@'%%' existiert bereits",
-"Drop this user from MySQL/MariaDB." => "Lösche diesen Benutzer von MySQL/MariaDB.",
-"Oracle connection could not be established" => "Es konnte keine Verbindung zur Oracle-Datenbank hergestellt werden",
-"Oracle username and/or password not valid" => "Oracle Benutzername und/oder Passwort ungültig",
-"Offending command was: \"%s\", name: %s, password: %s" => "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL Benutzername und/oder Passwort ungültig",
-"Set an admin username." => "Setze Administrator Benutzername.",
-"Set an admin password." => "Setze Administrator Passwort",
-"Can't create or write into the data directory %s" => "Das Datenverzeichnis %s kann nicht erstellt oder beschreiben werden",
-"%s shared »%s« with you" => "%s teilte »%s« mit Dir",
-"Sharing %s failed, because the file does not exist" => "Freigabe von %s fehlgeschlagen, da die Datei nicht existiert",
-"You are not allowed to share %s" => "Die Freigabe von %s ist Dir nicht erlaubt",
-"Sharing %s failed, because the user %s is the item owner" => "Freigabe von %s fehlgeschlagen, da der Nutzer %s Besitzer des Objektes ist",
-"Sharing %s failed, because the user %s does not exist" => "Freigabe von %s fehlgeschlagen, da der Nutzer %s nicht existiert",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Freigabe von %s fehlgeschlagen, da der Nutzer %s kein Gruppenmitglied einer der Gruppen von %s ist",
-"Sharing %s failed, because this item is already shared with %s" => "Freigabe von %s fehlgeschlagen, da dieses Objekt schon mit %s geteilt wird",
-"Sharing %s failed, because the group %s does not exist" => "Freigabe von %s fehlgeschlagen, da die Gruppe %s nicht existiert",
-"Sharing %s failed, because %s is not a member of the group %s" => "Freigabe von %s fehlgeschlagen, da %s kein Mitglied der Gruppe %s ist",
-"You need to provide a password to create a public link, only protected links are allowed" => "Es sind nur geschützte Links zulässig, daher müssen Sie ein Passwort angeben, um einen öffentlichen Link zu generieren",
-"Sharing %s failed, because sharing with links is not allowed" => "Freigabe von %s fehlgeschlagen, da das Teilen von Verknüpfungen nicht erlaubt ist",
-"Share type %s is not valid for %s" => "Freigabetyp %s ist nicht gültig für %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da die Berechtigungen, die erteilten Berechtigungen %s überschreiten",
-"Setting permissions for %s failed, because the item was not found" => "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da das Objekt nicht gefunden wurde",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Ablaufdatum kann nicht gesetzt werden. Freigaben können nach dem Teilen, nicht länger als %s gültig sein.",
-"Cannot set expiration date. Expiration date is in the past" => "Ablaufdatum kann nicht gesetzt werden. Ablaufdatum liegt in der Vergangenheit.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Freigabe-Backend %s muss in der OCP\\Share_Backend - Schnittstelle implementiert werden",
-"Sharing backend %s not found" => "Freigabe-Backend %s nicht gefunden",
-"Sharing backend for %s not found" => "Freigabe-Backend für %s nicht gefunden",
-"Sharing %s failed, because the user %s is the original sharer" => "Freigabe von %s fehlgeschlagen, da der Nutzer %s der offizielle Freigeber ist",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Freigabe von %s fehlgeschlagen, da die Berechtigungen die erteilten Berechtigungen %s überschreiten",
-"Sharing %s failed, because resharing is not allowed" => "Freigabe von %s fehlgeschlagen, da das nochmalige Freigeben einer Freigabe nicht erlaubt ist",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Freigabe von %s fehlgeschlagen, da das Freigabe-Backend für %s nicht in dieser Quelle gefunden werden konnte",
-"Sharing %s failed, because the file could not be found in the file cache" => "Freigabe von %s fehlgeschlagen, da die Datei im Datei-Cache nicht gefunden werden konnte",
-"Could not find category \"%s\"" => "Die Kategorie \"%s\" konnte nicht gefunden werden.",
-"seconds ago" => "Gerade eben",
-"_%n minute ago_::_%n minutes ago_" => array("Vor %n Minute","Vor %n Minuten"),
-"_%n hour ago_::_%n hours ago_" => array("Vor %n Stunde","Vor %n Stunden"),
-"today" => "Heute",
-"yesterday" => "Gestern",
-"_%n day go_::_%n days ago_" => array("Vor %n Tag","Vor %n Tagen"),
-"last month" => "Letzten Monat",
-"_%n month ago_::_%n months ago_" => array("Vor %n Monat","Vor %n Monaten"),
-"last year" => "Letztes Jahr",
-"years ago" => "Vor Jahren",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Folgende Zeichen sind im Benutzernamen erlaubt: \"a-z\", \"A-Z\", \"0-9\" und \"_.@-\"",
-"A valid username must be provided" => "Es muss ein gültiger Benutzername angegeben werden",
-"A valid password must be provided" => "Es muss ein gültiges Passwort angegeben werden",
-"The username is already being used" => "Dieser Benutzername existiert bereits",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Keine Datenbanktreiber (SQLite, MYSQL, oder PostgreSQL) installiert.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Berechtigungen können normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Wurzelverzeichnis %s gegeben wird.",
-"Cannot write into \"config\" directory" => "Das Schreiben in das \"config\"-Verzeichnis nicht möglich",
-"Cannot write into \"apps\" directory" => "Das Schreiben in das \"apps\"-Verzeichnis nicht möglich",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Anwendungsverzeichnis %s gegeben wird oder die Anwendungsauswahl in der Konfigurationsdatei deaktiviert wird.",
-"Cannot create \"data\" directory (%s)" => "Das Erstellen des \"data\"-Verzeichnisses nicht möglich (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Dies kann normalerweise repariert werden, indem dem Webserver .",
-"Setting locale to %s failed" => "Das Setzen der Umgebungslokale auf %s fehlgeschlagen",
-"Please install one of these locales on your system and restart your webserver." => "Bitte installiere eine dieser Sprachen auf Deinem System und starte den Webserver neu.",
-"Please ask your server administrator to install the module." => "Bitte frage, für die Installation des Moduls, Deinen Server-Administrator.",
-"PHP module %s not installed." => "PHP-Modul %s nicht installiert.",
-"PHP %s or higher is required." => "PHP %s oder höher wird benötigt.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Bitte frage zur Aktualisierung von PHP auf die letzte Version Deinen Server-Administrator. Deine PHP-Version wird nicht länger durch ownCloud und der PHP-Gemeinschaft unterstützt.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP-Sicherheitsmodus ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Der PHP-Sicherheitsmodus ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte frage Deinen Server-Administrator zur Deaktivierung in der php.ini oder Deiner Webserver-Konfiguration.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte frage Deinen Server-Administrator zur Deaktivierung in der php.ini oder Deiner Webserver-Konfiguration.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
-"Please ask your server administrator to restart the web server." => "Bitte frage Deinen Server-Administrator zum Neustart des Webservers.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 benötigt",
-"Please upgrade your database version" => "Bitte aktualisiere Deine Datenbankversion",
-"Error occurred while checking PostgreSQL version" => "Es ist ein Fehler beim Prüfen der PostgreSQL-Version aufgetreten",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Stelle bitte sicher, dass Du PostgreSQL >= 9 verwendest oder prüfe die Logs für weitere Informationen über den Fehler",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Bitte ändere die Berechtigungen auf 0770 sodass das Verzeichnis nicht von anderen Nutzer angezeigt werden kann.",
-"Data directory (%s) is readable by other users" => "Daten-Verzeichnis (%s) ist von anderen Nutzern lesbar",
-"Data directory (%s) is invalid" => "Daten-Verzeichnis (%s) ist ungültig",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Bitte stelle sicher, dass das Daten-Verzeichnis eine Datei namens \".ocdata\" im Wurzelverzeichnis enthält.",
-"Could not obtain lock type %d on \"%s\"." => "Sperrtyp %d auf \"%s\" konnte nicht ermittelt werden."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/de_AT.js b/lib/l10n/de_AT.js
new file mode 100644
index 00000000000..c36f0b9371d
--- /dev/null
+++ b/lib/l10n/de_AT.js
@@ -0,0 +1,12 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Hilfe",
+ "Personal" : "Persönlich",
+ "Settings" : "Einstellungen",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/de_AT.json b/lib/l10n/de_AT.json
new file mode 100644
index 00000000000..da5c7feaad2
--- /dev/null
+++ b/lib/l10n/de_AT.json
@@ -0,0 +1,10 @@
+{ "translations": {
+ "Help" : "Hilfe",
+ "Personal" : "Persönlich",
+ "Settings" : "Einstellungen",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/de_AT.php b/lib/l10n/de_AT.php
deleted file mode 100644
index 58f78490d7f..00000000000
--- a/lib/l10n/de_AT.php
+++ /dev/null
@@ -1,11 +0,0 @@
- "Hilfe",
-"Personal" => "Persönlich",
-"Settings" => "Einstellungen",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/de_CH.js b/lib/l10n/de_CH.js
new file mode 100644
index 00000000000..c8b1181dc9b
--- /dev/null
+++ b/lib/l10n/de_CH.js
@@ -0,0 +1,44 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Hilfe",
+ "Personal" : "Persönlich",
+ "Settings" : "Einstellungen",
+ "Users" : "Benutzer",
+ "Admin" : "Administrator",
+ "No app name specified" : "Kein App-Name spezifiziert",
+ "web services under your control" : "Web-Services unter Ihrer Kontrolle",
+ "App directory already exists" : "Anwendungsverzeichnis existiert bereits",
+ "App can't be installed because of not allowed code in the App" : "Anwendung kann wegen nicht erlaubten Codes nicht installiert werden",
+ "Application is not enabled" : "Die Anwendung ist nicht aktiviert",
+ "Authentication error" : "Authentifizierungs-Fehler",
+ "Token expired. Please reload page." : "Token abgelaufen. Bitte laden Sie die Seite neu.",
+ "%s enter the database username." : "%s geben Sie den Datenbank-Benutzernamen an.",
+ "%s enter the database name." : "%s geben Sie den Datenbank-Namen an.",
+ "%s you may not use dots in the database name" : "%s Der Datenbank-Name darf keine Punkte enthalten",
+ "MS SQL username and/or password not valid: %s" : "MS SQL Benutzername und/oder Passwort ungültig: %s",
+ "You need to enter either an existing account or the administrator." : "Sie müssen entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.",
+ "DB Error: \"%s\"" : "DB Fehler: \"%s\"",
+ "Offending command was: \"%s\"" : "Fehlerhafter Befehl war: \"%s\"",
+ "Oracle connection could not be established" : "Die Oracle-Verbindung konnte nicht aufgebaut werden.",
+ "Oracle username and/or password not valid" : "Oracle Benutzername und/oder Passwort ungültig",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL Benutzername und/oder Passwort ungültig",
+ "Set an admin username." : "Setze Administrator Benutzername.",
+ "Set an admin password." : "Setze Administrator Passwort",
+ "%s shared »%s« with you" : "%s teilt »%s« mit Ihnen",
+ "Could not find category \"%s\"" : "Die Kategorie «%s» konnte nicht gefunden werden.",
+ "seconds ago" : "Gerade eben",
+ "_%n minute ago_::_%n minutes ago_" : ["","Vor %n Minuten"],
+ "_%n hour ago_::_%n hours ago_" : ["","Vor %n Stunden"],
+ "today" : "Heute",
+ "yesterday" : "Gestern",
+ "_%n day go_::_%n days ago_" : ["","Vor %n Tagen"],
+ "last month" : "Letzten Monat",
+ "_%n month ago_::_%n months ago_" : ["","Vor %n Monaten"],
+ "last year" : "Letztes Jahr",
+ "years ago" : "Vor Jahren",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/de_CH.json b/lib/l10n/de_CH.json
new file mode 100644
index 00000000000..468f2a175b9
--- /dev/null
+++ b/lib/l10n/de_CH.json
@@ -0,0 +1,42 @@
+{ "translations": {
+ "Help" : "Hilfe",
+ "Personal" : "Persönlich",
+ "Settings" : "Einstellungen",
+ "Users" : "Benutzer",
+ "Admin" : "Administrator",
+ "No app name specified" : "Kein App-Name spezifiziert",
+ "web services under your control" : "Web-Services unter Ihrer Kontrolle",
+ "App directory already exists" : "Anwendungsverzeichnis existiert bereits",
+ "App can't be installed because of not allowed code in the App" : "Anwendung kann wegen nicht erlaubten Codes nicht installiert werden",
+ "Application is not enabled" : "Die Anwendung ist nicht aktiviert",
+ "Authentication error" : "Authentifizierungs-Fehler",
+ "Token expired. Please reload page." : "Token abgelaufen. Bitte laden Sie die Seite neu.",
+ "%s enter the database username." : "%s geben Sie den Datenbank-Benutzernamen an.",
+ "%s enter the database name." : "%s geben Sie den Datenbank-Namen an.",
+ "%s you may not use dots in the database name" : "%s Der Datenbank-Name darf keine Punkte enthalten",
+ "MS SQL username and/or password not valid: %s" : "MS SQL Benutzername und/oder Passwort ungültig: %s",
+ "You need to enter either an existing account or the administrator." : "Sie müssen entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.",
+ "DB Error: \"%s\"" : "DB Fehler: \"%s\"",
+ "Offending command was: \"%s\"" : "Fehlerhafter Befehl war: \"%s\"",
+ "Oracle connection could not be established" : "Die Oracle-Verbindung konnte nicht aufgebaut werden.",
+ "Oracle username and/or password not valid" : "Oracle Benutzername und/oder Passwort ungültig",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL Benutzername und/oder Passwort ungültig",
+ "Set an admin username." : "Setze Administrator Benutzername.",
+ "Set an admin password." : "Setze Administrator Passwort",
+ "%s shared »%s« with you" : "%s teilt »%s« mit Ihnen",
+ "Could not find category \"%s\"" : "Die Kategorie «%s» konnte nicht gefunden werden.",
+ "seconds ago" : "Gerade eben",
+ "_%n minute ago_::_%n minutes ago_" : ["","Vor %n Minuten"],
+ "_%n hour ago_::_%n hours ago_" : ["","Vor %n Stunden"],
+ "today" : "Heute",
+ "yesterday" : "Gestern",
+ "_%n day go_::_%n days ago_" : ["","Vor %n Tagen"],
+ "last month" : "Letzten Monat",
+ "_%n month ago_::_%n months ago_" : ["","Vor %n Monaten"],
+ "last year" : "Letztes Jahr",
+ "years ago" : "Vor Jahren",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/de_CH.php b/lib/l10n/de_CH.php
deleted file mode 100644
index 7da33218774..00000000000
--- a/lib/l10n/de_CH.php
+++ /dev/null
@@ -1,43 +0,0 @@
- "Hilfe",
-"Personal" => "Persönlich",
-"Settings" => "Einstellungen",
-"Users" => "Benutzer",
-"Admin" => "Administrator",
-"No app name specified" => "Kein App-Name spezifiziert",
-"web services under your control" => "Web-Services unter Ihrer Kontrolle",
-"App directory already exists" => "Anwendungsverzeichnis existiert bereits",
-"App can't be installed because of not allowed code in the App" => "Anwendung kann wegen nicht erlaubten Codes nicht installiert werden",
-"Application is not enabled" => "Die Anwendung ist nicht aktiviert",
-"Authentication error" => "Authentifizierungs-Fehler",
-"Token expired. Please reload page." => "Token abgelaufen. Bitte laden Sie die Seite neu.",
-"%s enter the database username." => "%s geben Sie den Datenbank-Benutzernamen an.",
-"%s enter the database name." => "%s geben Sie den Datenbank-Namen an.",
-"%s you may not use dots in the database name" => "%s Der Datenbank-Name darf keine Punkte enthalten",
-"MS SQL username and/or password not valid: %s" => "MS SQL Benutzername und/oder Passwort ungültig: %s",
-"You need to enter either an existing account or the administrator." => "Sie müssen entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.",
-"DB Error: \"%s\"" => "DB Fehler: \"%s\"",
-"Offending command was: \"%s\"" => "Fehlerhafter Befehl war: \"%s\"",
-"Oracle connection could not be established" => "Die Oracle-Verbindung konnte nicht aufgebaut werden.",
-"Oracle username and/or password not valid" => "Oracle Benutzername und/oder Passwort ungültig",
-"Offending command was: \"%s\", name: %s, password: %s" => "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL Benutzername und/oder Passwort ungültig",
-"Set an admin username." => "Setze Administrator Benutzername.",
-"Set an admin password." => "Setze Administrator Passwort",
-"%s shared »%s« with you" => "%s teilt »%s« mit Ihnen",
-"Could not find category \"%s\"" => "Die Kategorie «%s» konnte nicht gefunden werden.",
-"seconds ago" => "Gerade eben",
-"_%n minute ago_::_%n minutes ago_" => array("","Vor %n Minuten"),
-"_%n hour ago_::_%n hours ago_" => array("","Vor %n Stunden"),
-"today" => "Heute",
-"yesterday" => "Gestern",
-"_%n day go_::_%n days ago_" => array("","Vor %n Tagen"),
-"last month" => "Letzten Monat",
-"_%n month ago_::_%n months ago_" => array("","Vor %n Monaten"),
-"last year" => "Letztes Jahr",
-"years ago" => "Vor Jahren",
-"A valid username must be provided" => "Es muss ein gültiger Benutzername angegeben werden",
-"A valid password must be provided" => "Es muss ein gültiges Passwort angegeben werden"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js
new file mode 100644
index 00000000000..6d99b090604
--- /dev/null
+++ b/lib/l10n/de_DE.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Das Schreiben in das »config«-Verzeichnis nicht möglich!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Dies kann normalerweise repariert werden, indem dem Webserver Schreibzugriff auf das config-Verzeichnis gegeben wird",
+ "See %s" : "Siehe %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das config-Verzeichnis %s gegeben wird.",
+ "Sample configuration detected" : "Beispielkonfiguration gefunden",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lesen Sie die Dokumentation vor der Änderung an der config.php.",
+ "Help" : "Hilfe",
+ "Personal" : "Persönlich",
+ "Settings" : "Einstellungen",
+ "Users" : "Benutzer",
+ "Admin" : "Administrator",
+ "Recommended" : "Empfohlen",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "App »%s« kann nicht installiert werden, da sie mit dieser ownCloud-Version nicht kompatibel ist.",
+ "No app name specified" : "Es wurde kein Applikation-Name angegeben",
+ "Unknown filetype" : "Unbekannter Dateityp",
+ "Invalid image" : "Ungültiges Bild",
+ "Database Error" : "Datenbankfehler",
+ "Please contact your system administrator." : "Bitte kontaktieren Sie Ihren Systemadministrator.",
+ "web services under your control" : "Web-Services unter Ihrer Kontrolle",
+ "App directory already exists" : "Der Ordner für die Anwendung ist bereits vorhanden.",
+ "Can't create app folder. Please fix permissions. %s" : "Der Ordner für die Anwendung konnte nicht angelegt werden. Bitte überprüfen Sie die Ordner- und Dateirechte und passen Sie diese entsprechend an. %s",
+ "No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben",
+ "No href specified when installing app from http" : "Der Link (href) wurde nicht angegeben um die Applikation per http zu installieren",
+ "No path specified when installing app from local file" : "Bei der Installation der Applikation aus einer lokalen Datei wurde kein Pfad angegeben",
+ "Archives of type %s are not supported" : "Archive des Typs %s werden nicht unterstützt.",
+ "Failed to open archive when installing app" : "Das Archiv konnte bei der Installation der Applikation nicht geöffnet werden",
+ "App does not provide an info.xml file" : "Die Applikation enthält keine info.xml Datei",
+ "App can't be installed because of not allowed code in the App" : "Die Applikation kann auf Grund von unerlaubten Code nicht installiert werden",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser Version von ownCloud kompatibel ist.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Die Applikation konnte nicht installiert werden, da diese das true Tag beinhaltet und dieses, bei nicht mitausgelieferten Applikationen, nicht erlaubt ist ist",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Die Applikation konnte nicht installiert werden, da die Version in der info.xml nicht die gleiche Version wie im App-Store ist",
+ "Application is not enabled" : "Die Anwendung ist nicht aktiviert",
+ "Authentication error" : "Authentifizierungs-Fehler",
+ "Token expired. Please reload page." : "Token abgelaufen. Bitte laden Sie die Seite neu.",
+ "Unknown user" : "Unbekannter Benutzer",
+ "%s enter the database username." : "%s geben Sie den Datenbank-Benutzernamen an.",
+ "%s enter the database name." : "%s geben Sie den Datenbank-Namen an.",
+ "%s you may not use dots in the database name" : "%s Der Datenbank-Name darf keine Punkte enthalten",
+ "MS SQL username and/or password not valid: %s" : "MS SQL Benutzername und/oder Passwort ungültig: %s",
+ "You need to enter either an existing account or the administrator." : "Sie müssen entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB Benutzername und/oder Passwort sind nicht gültig",
+ "DB Error: \"%s\"" : "DB Fehler: \"%s\"",
+ "Offending command was: \"%s\"" : "Fehlerhafter Befehl war: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB Benutzer '%s'@'localhost' existiert bereits.",
+ "Drop this user from MySQL/MariaDB" : "Löschen Sie diesen Benutzer von MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB Benutzer '%s'@'%%' existiert bereits",
+ "Drop this user from MySQL/MariaDB." : "Löschen Sie diesen Benutzer von MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Die Oracle-Verbindung konnte nicht aufgebaut werden.",
+ "Oracle username and/or password not valid" : "Oracle Benutzername und/oder Passwort ungültig",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL Benutzername und/oder Passwort ungültig",
+ "Set an admin username." : "Setze Administrator Benutzername.",
+ "Set an admin password." : "Setze Administrator Passwort",
+ "Can't create or write into the data directory %s" : "Das Datenverzeichnis %s kann nicht erstellt oder beschreiben werden",
+ "%s shared »%s« with you" : "%s hat »%s« mit Ihnen geteilt",
+ "Sharing %s failed, because the file does not exist" : "Freigabe von %s fehlgeschlagen, da die Datei nicht existiert",
+ "You are not allowed to share %s" : "Die Freigabe von %s ist Ihnen nicht erlaubt",
+ "Sharing %s failed, because the user %s is the item owner" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s Besitzer des Objektes ist",
+ "Sharing %s failed, because the user %s does not exist" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s nicht existiert",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s kein Gruppenmitglied einer der Gruppen von %s ist",
+ "Sharing %s failed, because this item is already shared with %s" : "Freigabe von %s fehlgeschlagen, da dieses Objekt schon mit %s geteilt wird",
+ "Sharing %s failed, because the group %s does not exist" : "Freigabe von %s fehlgeschlagen, da die Gruppe %s nicht existiert",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Freigabe von %s fehlgeschlagen, da %s kein Mitglied der Gruppe %s ist",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Es sind nur geschützte Links zulässig, daher müssen Sie ein Passwort angeben, um einen öffentlichen Link zu generieren",
+ "Sharing %s failed, because sharing with links is not allowed" : "Freigabe von %s fehlgeschlagen, da das Teilen von Verknüpfungen nicht erlaubt ist",
+ "Share type %s is not valid for %s" : "Freigabetyp %s ist nicht gültig für %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da die Berechtigungen, die erteilten Berechtigungen %s überschreiten",
+ "Setting permissions for %s failed, because the item was not found" : "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da das Objekt nicht gefunden wurde",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Ablaufdatum kann nicht gesetzt werden. Freigaben können nach dem Teilen, nicht länger als %s gültig sein.",
+ "Cannot set expiration date. Expiration date is in the past" : "Ablaufdatum kann nicht gesetzt werden. Ablaufdatum liegt in der Vergangenheit.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Freigabe-Backend %s muss in der OCP\\Share_Backend - Schnittstelle implementiert werden",
+ "Sharing backend %s not found" : "Freigabe-Backend %s nicht gefunden",
+ "Sharing backend for %s not found" : "Freigabe-Backend für %s nicht gefunden",
+ "Sharing %s failed, because the user %s is the original sharer" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s der offizielle Freigeber ist",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Freigabe von %s fehlgeschlagen, da die Berechtigungen die erteilten Berechtigungen %s überschreiten",
+ "Sharing %s failed, because resharing is not allowed" : "Freigabe von %s fehlgeschlagen, da das nochmalige Freigeben einer Freigabe nicht erlaubt ist",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Freigabe von %s fehlgeschlagen, da das Freigabe-Backend für %s nicht in dieser Quelle gefunden werden konnte",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Freigabe von %s fehlgeschlagen, da die Datei im Datei-Cache nicht gefunden werden konnte",
+ "Could not find category \"%s\"" : "Die Kategorie \"%s\" konnte nicht gefunden werden.",
+ "seconds ago" : "Gerade eben",
+ "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
+ "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
+ "today" : "Heute",
+ "yesterday" : "Gestern",
+ "_%n day go_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
+ "last month" : "Letzten Monat",
+ "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
+ "last year" : "Letztes Jahr",
+ "years ago" : "Vor Jahren",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Folgende Zeichen sind im Benutzernamen erlaubt: »a-z«, »A-Z«, »0-9« und »_.@-«",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
+ "The username is already being used" : "Der Benutzername existiert bereits",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Keine Datenbanktreiber (SQLite, MYSQL, oder PostgreSQL) installiert.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Berechtigungen können normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Wurzelverzeichnis %s gegeben wird.",
+ "Cannot write into \"config\" directory" : "Das Schreiben in das »config«-Verzeichnis ist nicht möglich",
+ "Cannot write into \"apps\" directory" : "Das Schreiben in das »apps«-Verzeichnis ist nicht möglich",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Anwendungsverzeichnis %s gegeben wird oder die Anwendungsauswahl in der Konfigurationsdatei deaktiviert wird.",
+ "Cannot create \"data\" directory (%s)" : "Das Erstellen des »data«-Verzeichnisses ist nicht möglich (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Dies kann normalerweise repariert werden, indem dem Webserver .",
+ "Setting locale to %s failed" : "Das Setzen der Umgebungslokale auf %s fehlgeschlagen",
+ "Please install one of these locales on your system and restart your webserver." : "Bitte installieren Sie eine dieser Sprachen auf Ihrem System und starten Sie den Webserver neu.",
+ "Please ask your server administrator to install the module." : "Bitte fragen Sie, für die Installation des Moduls, Ihren Server-Administrator.",
+ "PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
+ "PHP %s or higher is required." : "PHP %s oder höher wird benötigt.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte fragen Sie zur Aktualisierung von PHP auf die letzte Version Ihren Server-Administrator. Ihre PHP-Version wird nicht länger durch ownCloud und der PHP-Gemeinschaft unterstützt.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP-Sicherheitsmodus ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Der PHP-Sicherheitsmodus ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte fragen Sie Ihren Server-Administrator zur Deaktivierung in der php.ini oder Ihrer Webserver-Konfiguration.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte fragen Sie Ihren Server-Administrator zur Deaktivierung in der php.ini oder Ihrer Webserver-Konfiguration.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
+ "Please ask your server administrator to restart the web server." : "Bitte fragen Sie Ihren Server-Administrator zum Neustart des Webservers.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
+ "Please upgrade your database version" : "Bitte aktualisieren Sie Ihre Datenbankversion",
+ "Error occurred while checking PostgreSQL version" : "Es ist ein Fehler beim Prüfen der PostgreSQL-Version aufgetreten",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Stellen Sie sicher, dass Sie PostgreSQL >= 9 verwenden oder prüfen Sie die Logs für weitere Informationen über den Fehler",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Bitte ändern Sie die Berechtigungen auf 0770 sodass das Verzeichnis nicht von anderen Nutzer angezeigt werden kann.",
+ "Data directory (%s) is readable by other users" : "Daten-Verzeichnis (%s) ist von anderen Nutzern lesbar",
+ "Data directory (%s) is invalid" : "Daten-Verzeichnis (%s) ist ungültig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Bitte stellen Sie sicher, dass das Daten-Verzeichnis eine Datei namens \".ocdata\" im Wurzelverzeichnis enthält.",
+ "Could not obtain lock type %d on \"%s\"." : "Sperrtyp %d auf »%s« konnte nicht ermittelt werden."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json
new file mode 100644
index 00000000000..fd16f063b78
--- /dev/null
+++ b/lib/l10n/de_DE.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Das Schreiben in das »config«-Verzeichnis nicht möglich!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Dies kann normalerweise repariert werden, indem dem Webserver Schreibzugriff auf das config-Verzeichnis gegeben wird",
+ "See %s" : "Siehe %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das config-Verzeichnis %s gegeben wird.",
+ "Sample configuration detected" : "Beispielkonfiguration gefunden",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lesen Sie die Dokumentation vor der Änderung an der config.php.",
+ "Help" : "Hilfe",
+ "Personal" : "Persönlich",
+ "Settings" : "Einstellungen",
+ "Users" : "Benutzer",
+ "Admin" : "Administrator",
+ "Recommended" : "Empfohlen",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "App »%s« kann nicht installiert werden, da sie mit dieser ownCloud-Version nicht kompatibel ist.",
+ "No app name specified" : "Es wurde kein Applikation-Name angegeben",
+ "Unknown filetype" : "Unbekannter Dateityp",
+ "Invalid image" : "Ungültiges Bild",
+ "Database Error" : "Datenbankfehler",
+ "Please contact your system administrator." : "Bitte kontaktieren Sie Ihren Systemadministrator.",
+ "web services under your control" : "Web-Services unter Ihrer Kontrolle",
+ "App directory already exists" : "Der Ordner für die Anwendung ist bereits vorhanden.",
+ "Can't create app folder. Please fix permissions. %s" : "Der Ordner für die Anwendung konnte nicht angelegt werden. Bitte überprüfen Sie die Ordner- und Dateirechte und passen Sie diese entsprechend an. %s",
+ "No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben",
+ "No href specified when installing app from http" : "Der Link (href) wurde nicht angegeben um die Applikation per http zu installieren",
+ "No path specified when installing app from local file" : "Bei der Installation der Applikation aus einer lokalen Datei wurde kein Pfad angegeben",
+ "Archives of type %s are not supported" : "Archive des Typs %s werden nicht unterstützt.",
+ "Failed to open archive when installing app" : "Das Archiv konnte bei der Installation der Applikation nicht geöffnet werden",
+ "App does not provide an info.xml file" : "Die Applikation enthält keine info.xml Datei",
+ "App can't be installed because of not allowed code in the App" : "Die Applikation kann auf Grund von unerlaubten Code nicht installiert werden",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser Version von ownCloud kompatibel ist.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Die Applikation konnte nicht installiert werden, da diese das true Tag beinhaltet und dieses, bei nicht mitausgelieferten Applikationen, nicht erlaubt ist ist",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Die Applikation konnte nicht installiert werden, da die Version in der info.xml nicht die gleiche Version wie im App-Store ist",
+ "Application is not enabled" : "Die Anwendung ist nicht aktiviert",
+ "Authentication error" : "Authentifizierungs-Fehler",
+ "Token expired. Please reload page." : "Token abgelaufen. Bitte laden Sie die Seite neu.",
+ "Unknown user" : "Unbekannter Benutzer",
+ "%s enter the database username." : "%s geben Sie den Datenbank-Benutzernamen an.",
+ "%s enter the database name." : "%s geben Sie den Datenbank-Namen an.",
+ "%s you may not use dots in the database name" : "%s Der Datenbank-Name darf keine Punkte enthalten",
+ "MS SQL username and/or password not valid: %s" : "MS SQL Benutzername und/oder Passwort ungültig: %s",
+ "You need to enter either an existing account or the administrator." : "Sie müssen entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB Benutzername und/oder Passwort sind nicht gültig",
+ "DB Error: \"%s\"" : "DB Fehler: \"%s\"",
+ "Offending command was: \"%s\"" : "Fehlerhafter Befehl war: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB Benutzer '%s'@'localhost' existiert bereits.",
+ "Drop this user from MySQL/MariaDB" : "Löschen Sie diesen Benutzer von MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB Benutzer '%s'@'%%' existiert bereits",
+ "Drop this user from MySQL/MariaDB." : "Löschen Sie diesen Benutzer von MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Die Oracle-Verbindung konnte nicht aufgebaut werden.",
+ "Oracle username and/or password not valid" : "Oracle Benutzername und/oder Passwort ungültig",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL Benutzername und/oder Passwort ungültig",
+ "Set an admin username." : "Setze Administrator Benutzername.",
+ "Set an admin password." : "Setze Administrator Passwort",
+ "Can't create or write into the data directory %s" : "Das Datenverzeichnis %s kann nicht erstellt oder beschreiben werden",
+ "%s shared »%s« with you" : "%s hat »%s« mit Ihnen geteilt",
+ "Sharing %s failed, because the file does not exist" : "Freigabe von %s fehlgeschlagen, da die Datei nicht existiert",
+ "You are not allowed to share %s" : "Die Freigabe von %s ist Ihnen nicht erlaubt",
+ "Sharing %s failed, because the user %s is the item owner" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s Besitzer des Objektes ist",
+ "Sharing %s failed, because the user %s does not exist" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s nicht existiert",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s kein Gruppenmitglied einer der Gruppen von %s ist",
+ "Sharing %s failed, because this item is already shared with %s" : "Freigabe von %s fehlgeschlagen, da dieses Objekt schon mit %s geteilt wird",
+ "Sharing %s failed, because the group %s does not exist" : "Freigabe von %s fehlgeschlagen, da die Gruppe %s nicht existiert",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Freigabe von %s fehlgeschlagen, da %s kein Mitglied der Gruppe %s ist",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Es sind nur geschützte Links zulässig, daher müssen Sie ein Passwort angeben, um einen öffentlichen Link zu generieren",
+ "Sharing %s failed, because sharing with links is not allowed" : "Freigabe von %s fehlgeschlagen, da das Teilen von Verknüpfungen nicht erlaubt ist",
+ "Share type %s is not valid for %s" : "Freigabetyp %s ist nicht gültig für %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da die Berechtigungen, die erteilten Berechtigungen %s überschreiten",
+ "Setting permissions for %s failed, because the item was not found" : "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da das Objekt nicht gefunden wurde",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Ablaufdatum kann nicht gesetzt werden. Freigaben können nach dem Teilen, nicht länger als %s gültig sein.",
+ "Cannot set expiration date. Expiration date is in the past" : "Ablaufdatum kann nicht gesetzt werden. Ablaufdatum liegt in der Vergangenheit.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Freigabe-Backend %s muss in der OCP\\Share_Backend - Schnittstelle implementiert werden",
+ "Sharing backend %s not found" : "Freigabe-Backend %s nicht gefunden",
+ "Sharing backend for %s not found" : "Freigabe-Backend für %s nicht gefunden",
+ "Sharing %s failed, because the user %s is the original sharer" : "Freigabe von %s fehlgeschlagen, da der Nutzer %s der offizielle Freigeber ist",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Freigabe von %s fehlgeschlagen, da die Berechtigungen die erteilten Berechtigungen %s überschreiten",
+ "Sharing %s failed, because resharing is not allowed" : "Freigabe von %s fehlgeschlagen, da das nochmalige Freigeben einer Freigabe nicht erlaubt ist",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Freigabe von %s fehlgeschlagen, da das Freigabe-Backend für %s nicht in dieser Quelle gefunden werden konnte",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Freigabe von %s fehlgeschlagen, da die Datei im Datei-Cache nicht gefunden werden konnte",
+ "Could not find category \"%s\"" : "Die Kategorie \"%s\" konnte nicht gefunden werden.",
+ "seconds ago" : "Gerade eben",
+ "_%n minute ago_::_%n minutes ago_" : ["Vor %n Minute","Vor %n Minuten"],
+ "_%n hour ago_::_%n hours ago_" : ["Vor %n Stunde","Vor %n Stunden"],
+ "today" : "Heute",
+ "yesterday" : "Gestern",
+ "_%n day go_::_%n days ago_" : ["Vor %n Tag","Vor %n Tagen"],
+ "last month" : "Letzten Monat",
+ "_%n month ago_::_%n months ago_" : ["Vor %n Monat","Vor %n Monaten"],
+ "last year" : "Letztes Jahr",
+ "years ago" : "Vor Jahren",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Folgende Zeichen sind im Benutzernamen erlaubt: »a-z«, »A-Z«, »0-9« und »_.@-«",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
+ "The username is already being used" : "Der Benutzername existiert bereits",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Keine Datenbanktreiber (SQLite, MYSQL, oder PostgreSQL) installiert.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Berechtigungen können normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Wurzelverzeichnis %s gegeben wird.",
+ "Cannot write into \"config\" directory" : "Das Schreiben in das »config«-Verzeichnis ist nicht möglich",
+ "Cannot write into \"apps\" directory" : "Das Schreiben in das »apps«-Verzeichnis ist nicht möglich",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Anwendungsverzeichnis %s gegeben wird oder die Anwendungsauswahl in der Konfigurationsdatei deaktiviert wird.",
+ "Cannot create \"data\" directory (%s)" : "Das Erstellen des »data«-Verzeichnisses ist nicht möglich (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Dies kann normalerweise repariert werden, indem dem Webserver .",
+ "Setting locale to %s failed" : "Das Setzen der Umgebungslokale auf %s fehlgeschlagen",
+ "Please install one of these locales on your system and restart your webserver." : "Bitte installieren Sie eine dieser Sprachen auf Ihrem System und starten Sie den Webserver neu.",
+ "Please ask your server administrator to install the module." : "Bitte fragen Sie, für die Installation des Moduls, Ihren Server-Administrator.",
+ "PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
+ "PHP %s or higher is required." : "PHP %s oder höher wird benötigt.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte fragen Sie zur Aktualisierung von PHP auf die letzte Version Ihren Server-Administrator. Ihre PHP-Version wird nicht länger durch ownCloud und der PHP-Gemeinschaft unterstützt.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP-Sicherheitsmodus ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Der PHP-Sicherheitsmodus ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte fragen Sie Ihren Server-Administrator zur Deaktivierung in der php.ini oder Ihrer Webserver-Konfiguration.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte fragen Sie Ihren Server-Administrator zur Deaktivierung in der php.ini oder Ihrer Webserver-Konfiguration.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
+ "Please ask your server administrator to restart the web server." : "Bitte fragen Sie Ihren Server-Administrator zum Neustart des Webservers.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 benötigt",
+ "Please upgrade your database version" : "Bitte aktualisieren Sie Ihre Datenbankversion",
+ "Error occurred while checking PostgreSQL version" : "Es ist ein Fehler beim Prüfen der PostgreSQL-Version aufgetreten",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Stellen Sie sicher, dass Sie PostgreSQL >= 9 verwenden oder prüfen Sie die Logs für weitere Informationen über den Fehler",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Bitte ändern Sie die Berechtigungen auf 0770 sodass das Verzeichnis nicht von anderen Nutzer angezeigt werden kann.",
+ "Data directory (%s) is readable by other users" : "Daten-Verzeichnis (%s) ist von anderen Nutzern lesbar",
+ "Data directory (%s) is invalid" : "Daten-Verzeichnis (%s) ist ungültig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Bitte stellen Sie sicher, dass das Daten-Verzeichnis eine Datei namens \".ocdata\" im Wurzelverzeichnis enthält.",
+ "Could not obtain lock type %d on \"%s\"." : "Sperrtyp %d auf »%s« konnte nicht ermittelt werden."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/de_DE.php b/lib/l10n/de_DE.php
deleted file mode 100644
index 98f74eee4d5..00000000000
--- a/lib/l10n/de_DE.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Das Schreiben in das »config«-Verzeichnis nicht möglich!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Dies kann normalerweise repariert werden, indem dem Webserver Schreibzugriff auf das config-Verzeichnis gegeben wird",
-"See %s" => "Siehe %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das config-Verzeichnis %s gegeben wird.",
-"Sample configuration detected" => "Beispielkonfiguration gefunden",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde, Dies wird nicht unterstützt kann zum Abruch Ihrer Installation führen. Bitte lesen Sie die Dokumentation vor der Änderung an der config.php.",
-"Help" => "Hilfe",
-"Personal" => "Persönlich",
-"Settings" => "Einstellungen",
-"Users" => "Benutzer",
-"Admin" => "Administrator",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "App »%s« kann nicht installiert werden, da sie mit dieser ownCloud-Version nicht kompatibel ist.",
-"No app name specified" => "Es wurde kein Applikation-Name angegeben",
-"Unknown filetype" => "Unbekannter Dateityp",
-"Invalid image" => "Ungültiges Bild",
-"web services under your control" => "Web-Services unter Ihrer Kontrolle",
-"App directory already exists" => "Der Ordner für die Anwendung ist bereits vorhanden.",
-"Can't create app folder. Please fix permissions. %s" => "Der Ordner für die Anwendung konnte nicht angelegt werden. Bitte überprüfen Sie die Ordner- und Dateirechte und passen Sie diese entsprechend an. %s",
-"No source specified when installing app" => "Für die Installation der Applikation wurde keine Quelle angegeben",
-"No href specified when installing app from http" => "Der Link (href) wurde nicht angegeben um die Applikation per http zu installieren",
-"No path specified when installing app from local file" => "Bei der Installation der Applikation aus einer lokalen Datei wurde kein Pfad angegeben",
-"Archives of type %s are not supported" => "Archive des Typs %s werden nicht unterstützt.",
-"Failed to open archive when installing app" => "Das Archiv konnte bei der Installation der Applikation nicht geöffnet werden",
-"App does not provide an info.xml file" => "Die Applikation enthält keine info.xml Datei",
-"App can't be installed because of not allowed code in the App" => "Die Applikation kann auf Grund von unerlaubten Code nicht installiert werden",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser Version von ownCloud kompatibel ist.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Die Applikation konnte nicht installiert werden, da diese das true Tag beinhaltet und dieses, bei nicht mitausgelieferten Applikationen, nicht erlaubt ist ist",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Die Applikation konnte nicht installiert werden, da die Version in der info.xml nicht die gleiche Version wie im App-Store ist",
-"Application is not enabled" => "Die Anwendung ist nicht aktiviert",
-"Authentication error" => "Authentifizierungs-Fehler",
-"Token expired. Please reload page." => "Token abgelaufen. Bitte laden Sie die Seite neu.",
-"Unknown user" => "Unbekannter Benutzer",
-"%s enter the database username." => "%s geben Sie den Datenbank-Benutzernamen an.",
-"%s enter the database name." => "%s geben Sie den Datenbank-Namen an.",
-"%s you may not use dots in the database name" => "%s Der Datenbank-Name darf keine Punkte enthalten",
-"MS SQL username and/or password not valid: %s" => "MS SQL Benutzername und/oder Passwort ungültig: %s",
-"You need to enter either an existing account or the administrator." => "Sie müssen entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB Benutzername und/oder Passwort sind nicht gültig",
-"DB Error: \"%s\"" => "DB Fehler: \"%s\"",
-"Offending command was: \"%s\"" => "Fehlerhafter Befehl war: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB Benutzer '%s'@'localhost' existiert bereits.",
-"Drop this user from MySQL/MariaDB" => "Löschen Sie diesen Benutzer von MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB Benutzer '%s'@'%%' existiert bereits",
-"Drop this user from MySQL/MariaDB." => "Löschen Sie diesen Benutzer von MySQL/MariaDB.",
-"Oracle connection could not be established" => "Die Oracle-Verbindung konnte nicht aufgebaut werden.",
-"Oracle username and/or password not valid" => "Oracle Benutzername und/oder Passwort ungültig",
-"Offending command was: \"%s\", name: %s, password: %s" => "Fehlerhafter Befehl war: \"%s\", Name: %s, Passwort: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL Benutzername und/oder Passwort ungültig",
-"Set an admin username." => "Setze Administrator Benutzername.",
-"Set an admin password." => "Setze Administrator Passwort",
-"Can't create or write into the data directory %s" => "Das Datenverzeichnis %s kann nicht erstellt oder beschreiben werden",
-"%s shared »%s« with you" => "%s hat »%s« mit Ihnen geteilt",
-"Sharing %s failed, because the file does not exist" => "Freigabe von %s fehlgeschlagen, da die Datei nicht existiert",
-"You are not allowed to share %s" => "Die Freigabe von %s ist Ihnen nicht erlaubt",
-"Sharing %s failed, because the user %s is the item owner" => "Freigabe von %s fehlgeschlagen, da der Nutzer %s Besitzer des Objektes ist",
-"Sharing %s failed, because the user %s does not exist" => "Freigabe von %s fehlgeschlagen, da der Nutzer %s nicht existiert",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Freigabe von %s fehlgeschlagen, da der Nutzer %s kein Gruppenmitglied einer der Gruppen von %s ist",
-"Sharing %s failed, because this item is already shared with %s" => "Freigabe von %s fehlgeschlagen, da dieses Objekt schon mit %s geteilt wird",
-"Sharing %s failed, because the group %s does not exist" => "Freigabe von %s fehlgeschlagen, da die Gruppe %s nicht existiert",
-"Sharing %s failed, because %s is not a member of the group %s" => "Freigabe von %s fehlgeschlagen, da %s kein Mitglied der Gruppe %s ist",
-"You need to provide a password to create a public link, only protected links are allowed" => "Es sind nur geschützte Links zulässig, daher müssen Sie ein Passwort angeben, um einen öffentlichen Link zu generieren",
-"Sharing %s failed, because sharing with links is not allowed" => "Freigabe von %s fehlgeschlagen, da das Teilen von Verknüpfungen nicht erlaubt ist",
-"Share type %s is not valid for %s" => "Freigabetyp %s ist nicht gültig für %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da die Berechtigungen, die erteilten Berechtigungen %s überschreiten",
-"Setting permissions for %s failed, because the item was not found" => "Das Setzen der Berechtigungen für %s ist fehlgeschlagen, da das Objekt nicht gefunden wurde",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Ablaufdatum kann nicht gesetzt werden. Freigaben können nach dem Teilen, nicht länger als %s gültig sein.",
-"Cannot set expiration date. Expiration date is in the past" => "Ablaufdatum kann nicht gesetzt werden. Ablaufdatum liegt in der Vergangenheit.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Freigabe-Backend %s muss in der OCP\\Share_Backend - Schnittstelle implementiert werden",
-"Sharing backend %s not found" => "Freigabe-Backend %s nicht gefunden",
-"Sharing backend for %s not found" => "Freigabe-Backend für %s nicht gefunden",
-"Sharing %s failed, because the user %s is the original sharer" => "Freigabe von %s fehlgeschlagen, da der Nutzer %s der offizielle Freigeber ist",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Freigabe von %s fehlgeschlagen, da die Berechtigungen die erteilten Berechtigungen %s überschreiten",
-"Sharing %s failed, because resharing is not allowed" => "Freigabe von %s fehlgeschlagen, da das nochmalige Freigeben einer Freigabe nicht erlaubt ist",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Freigabe von %s fehlgeschlagen, da das Freigabe-Backend für %s nicht in dieser Quelle gefunden werden konnte",
-"Sharing %s failed, because the file could not be found in the file cache" => "Freigabe von %s fehlgeschlagen, da die Datei im Datei-Cache nicht gefunden werden konnte",
-"Could not find category \"%s\"" => "Die Kategorie \"%s\" konnte nicht gefunden werden.",
-"seconds ago" => "Gerade eben",
-"_%n minute ago_::_%n minutes ago_" => array("Vor %n Minute","Vor %n Minuten"),
-"_%n hour ago_::_%n hours ago_" => array("Vor %n Stunde","Vor %n Stunden"),
-"today" => "Heute",
-"yesterday" => "Gestern",
-"_%n day go_::_%n days ago_" => array("Vor %n Tag","Vor %n Tagen"),
-"last month" => "Letzten Monat",
-"_%n month ago_::_%n months ago_" => array("Vor %n Monat","Vor %n Monaten"),
-"last year" => "Letztes Jahr",
-"years ago" => "Vor Jahren",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Folgende Zeichen sind im Benutzernamen erlaubt: »a-z«, »A-Z«, »0-9« und »_.@-«",
-"A valid username must be provided" => "Es muss ein gültiger Benutzername angegeben werden",
-"A valid password must be provided" => "Es muss ein gültiges Passwort angegeben werden",
-"The username is already being used" => "Der Benutzername existiert bereits",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Keine Datenbanktreiber (SQLite, MYSQL, oder PostgreSQL) installiert.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Berechtigungen können normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Wurzelverzeichnis %s gegeben wird.",
-"Cannot write into \"config\" directory" => "Das Schreiben in das »config«-Verzeichnis ist nicht möglich",
-"Cannot write into \"apps\" directory" => "Das Schreiben in das »apps«-Verzeichnis ist nicht möglich",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Dies kann normalerweise repariert werden, indem dem Webserver %s Schreibzugriff auf das Anwendungsverzeichnis %s gegeben wird oder die Anwendungsauswahl in der Konfigurationsdatei deaktiviert wird.",
-"Cannot create \"data\" directory (%s)" => "Das Erstellen des »data«-Verzeichnisses ist nicht möglich (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Dies kann normalerweise repariert werden, indem dem Webserver .",
-"Setting locale to %s failed" => "Das Setzen der Umgebungslokale auf %s fehlgeschlagen",
-"Please install one of these locales on your system and restart your webserver." => "Bitte installieren Sie eine dieser Sprachen auf Ihrem System und starten Sie den Webserver neu.",
-"Please ask your server administrator to install the module." => "Bitte fragen Sie, für die Installation des Moduls, Ihren Server-Administrator.",
-"PHP module %s not installed." => "PHP-Modul %s nicht installiert.",
-"PHP %s or higher is required." => "PHP %s oder höher wird benötigt.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Bitte fragen Sie zur Aktualisierung von PHP auf die letzte Version Ihren Server-Administrator. Ihre PHP-Version wird nicht länger durch ownCloud und der PHP-Gemeinschaft unterstützt.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP-Sicherheitsmodus ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Der PHP-Sicherheitsmodus ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte fragen Sie Ihren Server-Administrator zur Deaktivierung in der php.ini oder Ihrer Webserver-Konfiguration.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes ist aktiviert. ownCloud benötigt für eine korrekte Funktion eine Deaktivierung von diesem Modus.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes ist eine veraltete und meist nutzlose Einstellung, die deaktiviert werden sollte. Bitte fragen Sie Ihren Server-Administrator zur Deaktivierung in der php.ini oder Ihrer Webserver-Konfiguration.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
-"Please ask your server administrator to restart the web server." => "Bitte fragen Sie Ihren Server-Administrator zum Neustart des Webservers.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 benötigt",
-"Please upgrade your database version" => "Bitte aktualisieren Sie Ihre Datenbankversion",
-"Error occurred while checking PostgreSQL version" => "Es ist ein Fehler beim Prüfen der PostgreSQL-Version aufgetreten",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Stellen Sie sicher, dass Sie PostgreSQL >= 9 verwenden oder prüfen Sie die Logs für weitere Informationen über den Fehler",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Bitte ändern Sie die Berechtigungen auf 0770 sodass das Verzeichnis nicht von anderen Nutzer angezeigt werden kann.",
-"Data directory (%s) is readable by other users" => "Daten-Verzeichnis (%s) ist von anderen Nutzern lesbar",
-"Data directory (%s) is invalid" => "Daten-Verzeichnis (%s) ist ungültig",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Bitte stellen Sie sicher, dass das Daten-Verzeichnis eine Datei namens \".ocdata\" im Wurzelverzeichnis enthält.",
-"Could not obtain lock type %d on \"%s\"." => "Sperrtyp %d auf »%s« konnte nicht ermittelt werden."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/el.js b/lib/l10n/el.js
new file mode 100644
index 00000000000..5d0048837fb
--- /dev/null
+++ b/lib/l10n/el.js
@@ -0,0 +1,124 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Αδυναμία εγγραφής στον κατάλογο \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Αυτό μπορεί συνήθως να διορθωθεί παρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου",
+ "See %s" : "Δείτε %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Αυτό μπορεί συνήθως να διορθωθεί %sπαρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου%s.",
+ "Sample configuration detected" : "Ανιχνεύθηκε δείγμα εγκατάστασης",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Έχει ανιχνευθεί ότι το δείγμα εγκατάστασης έχει αντιγραφεί. Αυτό μπορεί να σπάσει την εγκατάστασή σας και δεν υποστηρίζεται. Παρακαλώ διαβάστε την τεκμηρίωση πριν εκτελέσετε αλλαγές στο config.php",
+ "Help" : "Βοήθεια",
+ "Personal" : "Προσωπικά",
+ "Settings" : "Ρυθμίσεις",
+ "Users" : "Χρήστες",
+ "Admin" : "Διαχείριση",
+ "Recommended" : "Προτείνεται",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Η εφαρμογή \"%s\" δεν μπορεί να εγκατασταθεί επειδή δεν είναι συμβατή με αυτή την έκδοση του ownCloud.",
+ "No app name specified" : "Δεν προδιορίστηκε όνομα εφαρμογής",
+ "Unknown filetype" : "Άγνωστος τύπος αρχείου",
+ "Invalid image" : "Μη έγκυρη εικόνα",
+ "web services under your control" : "υπηρεσίες δικτύου υπό τον έλεγχό σας",
+ "App directory already exists" : "Ο κατάλογος εφαρμογών υπάρχει ήδη",
+ "Can't create app folder. Please fix permissions. %s" : "Δεν είναι δυνατόν να δημιουργηθεί ο φάκελος εφαρμογής. Παρακαλώ διορθώστε τις άδειες πρόσβασης. %s",
+ "No source specified when installing app" : "Δεν προσδιορίστηκε πηγή κατά την εγκατάσταση της εφαρμογής",
+ "No href specified when installing app from http" : "Δεν προσδιορίστηκε href κατά την εγκατάσταση της εφαρμογής μέσω http ",
+ "No path specified when installing app from local file" : "Δεν προσδιορίστηκε μονοπάτι κατά την εγκατάσταση εφαρμογής από τοπικό αρχείο",
+ "Archives of type %s are not supported" : "Συλλογές αρχείων τύπου %s δεν υποστηρίζονται",
+ "Failed to open archive when installing app" : "Αποτυχία ανοίγματος συλλογής αρχείων κατά την εγκατάσταση εφαρμογής",
+ "App does not provide an info.xml file" : "Η εφαρμογή δεν παρέχει αρχείο info.xml",
+ "App can't be installed because of not allowed code in the App" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί λόγω μη-επιτρεπόμενου κώδικα μέσα στην Εφαρμογή",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή δεν είναι συμβατή με αυτή την έκδοση ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή περιέχει την ετικέτα σωστή που δεν επιτρέπεται για μη-ενσωματωμένες εφαρμογές",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή η έκδοση στο info.xml/version δεν είναι η ίδια με την έκδοση που αναφέρεται στο κατάστημα εφαρμογών",
+ "Application is not enabled" : "Δεν ενεργοποιήθηκε η εφαρμογή",
+ "Authentication error" : "Σφάλμα πιστοποίησης",
+ "Token expired. Please reload page." : "Το αναγνωριστικό έληξε. Παρακαλώ φορτώστε ξανά την σελίδα.",
+ "Unknown user" : "Άγνωστος χρήστης",
+ "%s enter the database username." : "%s εισάγετε το όνομα χρήστη της βάσης δεδομένων.",
+ "%s enter the database name." : "%s εισάγετε το όνομα της βάσης δεδομένων.",
+ "%s you may not use dots in the database name" : "%s μάλλον δεν χρησιμοποιείτε τελείες στο όνομα της βάσης δεδομένων",
+ "MS SQL username and/or password not valid: %s" : "Το όνομα χρήστη και/ή ο κωδικός της MS SQL δεν είναι έγκυρα: %s",
+ "You need to enter either an existing account or the administrator." : "Χρειάζεται να εισάγετε είτε έναν υπάρχον λογαριασμό ή του διαχειριστή.",
+ "MySQL/MariaDB username and/or password not valid" : "Μη έγκυρο όνομα χρήστη ή/και συνθηματικό της MySQL/MariaDB",
+ "DB Error: \"%s\"" : "Σφάλμα Βάσης Δεδομένων: \"%s\"",
+ "Offending command was: \"%s\"" : "Η εντολη παραβατικοτητας ηταν: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Υπάρχει ήδη ο χρήστης '%s'@'localhost' της MySQL/MariaDB",
+ "Drop this user from MySQL/MariaDB" : "Κατάργηση του χρήστη από MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Υπάρχει ήδη ο χρήστης '%s'@'%%' της MySQL/MariaDB",
+ "Drop this user from MySQL/MariaDB." : "Κατάργηση του χρήστη από MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Αδυναμία σύνδεσης Oracle",
+ "Oracle username and/or password not valid" : "Μη έγκυρος χρήστης και/ή συνθηματικό της Oracle",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Η εντολη παραβατικοτητας ηταν: \"%s\", ονομα: %s, κωδικος: %s",
+ "PostgreSQL username and/or password not valid" : "Μη έγκυρος χρήστης και/ή συνθηματικό της PostgreSQL",
+ "Set an admin username." : "Εισάγετε όνομα χρήστη διαχειριστή.",
+ "Set an admin password." : "Εισάγετε συνθηματικό διαχειριστή.",
+ "Can't create or write into the data directory %s" : "Αδύνατη η δημιουργία ή συγγραφή στον κατάλογο δεδομένων %s",
+ "%s shared »%s« with you" : "Ο %s διαμοιράστηκε μαζί σας το »%s«",
+ "Sharing %s failed, because the file does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν υπάρχει",
+ "You are not allowed to share %s" : "Δεν επιτρέπεται να διαμοιράσετε τον πόρο %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s είναι ο ιδιοκτήτης του αντικειμένου",
+ "Sharing %s failed, because the user %s does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν υπάρχει",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν είναι μέλος καμίας ομάδας στην οποία ο χρήστης %s είναι μέλος",
+ "Sharing %s failed, because this item is already shared with %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αντικείμενο είναι διαμοιρασμένο ήδη με τον χρήστη %s",
+ "Sharing %s failed, because the group %s does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί η ομάδα χρηστών %s δεν υπάρχει",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν είναι μέλος της ομάδας %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Πρέπει να εισάγετε έναν κωδικό για να δημιουργήσετε έναν δημόσιο σύνδεσμο. Μόνο προστατευμένοι σύνδεσμοι επιτρέπονται",
+ "Sharing %s failed, because sharing with links is not allowed" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν επιτρέπεται ο διαμοιρασμός με συνδέσμους",
+ "Share type %s is not valid for %s" : "Ο τύπος διαμοιρασμού %s δεν είναι έγκυρος για το %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Ο ορισμός δικαιωμάτων για το %s απέτυχε, γιατί τα δικαιώματα υπερτερούν αυτά που είναι ορισμένα για το %s",
+ "Setting permissions for %s failed, because the item was not found" : "Ο ορισμός δικαιωμάτων για το %s απέτυχε, γιατί το αντικείμενο δεν βρέθηκε",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Δεν μπορεί να οριστεί ημερομηνία λήξης. Οι κοινοποιήσεις δεν μπορεί να λήγουν αργότερα από %s αφού έχουν διαμοιραστεί.",
+ "Cannot set expiration date. Expiration date is in the past" : "Δεν μπορεί να οριστεί ημερομηνία λήξης. Η ημερομηνία λήξης είναι στο παρελθόν",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Το σύστημα διαμοιρασμού %s πρέπει να υλοποιεί την διεπαφή OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Το σύστημα διαμοιρασμού %s δεν βρέθηκε",
+ "Sharing backend for %s not found" : "Το σύστημα διαμοιρασμού για το %s δεν βρέθηκε",
+ "Sharing %s failed, because the user %s is the original sharer" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αντικείμενο είναι διαμοιρασμένο αρχικά από τον χρήστη %s",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί τα δικαιώματα υπερτερούν αυτά που είναι ορισμένα για το %s",
+ "Sharing %s failed, because resharing is not allowed" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν επιτρέπεται ο επαναδιαμοιρασμός",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν ήταν δυνατό να εντοπίσει την πηγή το σύστημα διαμοιρασμού για το %s ",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν βρέθηκε στην προσωρινή αποθήκευση αρχείων",
+ "Could not find category \"%s\"" : "Αδυναμία εύρεσης κατηγορίας \"%s\"",
+ "seconds ago" : "δευτερόλεπτα πριν",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n λεπτά πριν"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n ώρες πριν"],
+ "today" : "σήμερα",
+ "yesterday" : "χτες",
+ "_%n day go_::_%n days ago_" : ["","%n ημέρες πριν"],
+ "last month" : "τελευταίο μήνα",
+ "_%n month ago_::_%n months ago_" : ["","%n μήνες πριν"],
+ "last year" : "τελευταίο χρόνο",
+ "years ago" : "χρόνια πριν",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Μόνο οι παρακάτων χαρακτήρες επιτρέπονται σε ένα όνομα χρήστη: \"a-z\", \"A-Z\", \"0-9\" και \"_.@-\"",
+ "A valid username must be provided" : "Πρέπει να δοθεί έγκυρο όνομα χρήστη",
+ "A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό",
+ "The username is already being used" : "Το όνομα χρήστη είναι κατειλημμένο",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Δεν βρέθηκαν εγκατεστημένοι οδηγοί βάσεων δεδομένων (sqlite, mysql, or postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Τα δικαιώματα πρόσβασης μπορούν συνήθως να διορθωθούν %sδίνοντας δικαιώματα εγγραφής για τον βασικό κατάλογο στο διακομιστή δικτύου%s.",
+ "Cannot write into \"config\" directory" : "Αδυναμία εγγραφής στον κατάλογο \"config\"",
+ "Cannot write into \"apps\" directory" : "Αδυναμία εγγραφής στον κατάλογο \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Αυτό μπορεί συνήθως να διορθωθεί %sδίνοντας διακαιώματα εγγραφής για τον κατάλογο εφαρμογών στο διακομιστή δικτύου%s ή απενεργοποιώντας το κέντρο εφαρμογών στο αρχείο config.",
+ "Cannot create \"data\" directory (%s)" : "Αδυναμία δημιουργίας του καταλόγου \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Αυτό μπορεί συνήθως να διορθωθεί δίνοντας δικαιώματα εγγραφής για το βασικό κατάλογο στο διακομιστή δικτύου .",
+ "Setting locale to %s failed" : "Ρύθμιση τοπικών ρυθμίσεων σε %s απέτυχε",
+ "Please install one of these locales on your system and restart your webserver." : "Παρακαλώ να εγκαταστήσετε μία από αυτές τις τοπικές ρυθμίσεις στο σύστημά σας και να επανεκκινήσετε τον διακομιστή δικτύου σας.",
+ "Please ask your server administrator to install the module." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να εγκαταστήσει τη μονάδα.",
+ "PHP module %s not installed." : "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ",
+ "PHP %s or higher is required." : "PHP %s ή νεώτερη απαιτείται.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να ενημερώσει τον PHP στη νεώτερη έκδοση. Η έκδοση του PHP σας δεν υποστηρίζεται πλεον από το ownCloud και την κοινότητα PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Η Ασφαλής Λειτουργία PHP έχει ενεργοποιηθεί. Το ownCloud απαιτεί να είναι απενεργοποιημένη για να λειτουργεί σωστά.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Η Ασφαλής Λειτουργεία PHP είναι μια ξεπερασμένη και κατά κύριο λόγο άχρηστη ρύθμιση που θα πρέπει να είναι απενεργοποιημένη. Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να την απενεργοποιήσει στο php.ini ή στις ρυθμίσεις του διακομιστή δικτύου σας.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Οι Magic Quotes είναι ενεργοποιημένες. Το ownCloud απαιτεί να είναι απενεργοποιημένες για να λειτουργεί σωστά.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Οι Magic Quotes είναι μια ξεπερασμένη και κατά κύριο λόγο άχρηστη ρύθμιση που θα πρέπει να είναι απενεργοποιημένη. Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να την απενεργοποιήσει στο php.ini ή στις ρυθμίσεις του διακομιστή δικτύου σας.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;",
+ "Please ask your server administrator to restart the web server." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.",
+ "PostgreSQL >= 9 required" : "Απαιτείται PostgreSQL >= 9",
+ "Please upgrade your database version" : "Παρακαλώ αναβαθμίστε την έκδοση της βάσης δεδομένων σας",
+ "Error occurred while checking PostgreSQL version" : "Προέκυψε σφάλμα κατά τον έλεγχο της έκδοσης PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Παρακαλώ ελέγξτε ότι έχετε PostgreSQL >= 9 ή ελέγξτε στα ιστορικό σφαλμάτων για περισσότερες πληροφορίες για το σφάλμα",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Παρακαλώ αλλάξτε τις ρυθμίσεις σε 0770 έτσι ώστε ο κατάλογος να μην μπορεί να προβάλλεται από άλλους χρήστες.",
+ "Data directory (%s) is readable by other users" : "Ο κατάλογος δεδομένων (%s) είναι διαθέσιμος προς ανάγνωση για άλλους χρήστες",
+ "Data directory (%s) is invalid" : "Ο κατάλογος δεδομένων (%s) είναι άκυρος",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Παρακαλώ ελέγξτε ότι ο κατάλογος δεδομένων περιέχει ένα αρχείο \".ocdata\" στη βάση του.",
+ "Could not obtain lock type %d on \"%s\"." : "Αδυναμία ανάκτησης τύπου κλειδιού %d στο \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/el.json b/lib/l10n/el.json
new file mode 100644
index 00000000000..65ff3ab3aa1
--- /dev/null
+++ b/lib/l10n/el.json
@@ -0,0 +1,122 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Αδυναμία εγγραφής στον κατάλογο \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Αυτό μπορεί συνήθως να διορθωθεί παρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου",
+ "See %s" : "Δείτε %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Αυτό μπορεί συνήθως να διορθωθεί %sπαρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου%s.",
+ "Sample configuration detected" : "Ανιχνεύθηκε δείγμα εγκατάστασης",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Έχει ανιχνευθεί ότι το δείγμα εγκατάστασης έχει αντιγραφεί. Αυτό μπορεί να σπάσει την εγκατάστασή σας και δεν υποστηρίζεται. Παρακαλώ διαβάστε την τεκμηρίωση πριν εκτελέσετε αλλαγές στο config.php",
+ "Help" : "Βοήθεια",
+ "Personal" : "Προσωπικά",
+ "Settings" : "Ρυθμίσεις",
+ "Users" : "Χρήστες",
+ "Admin" : "Διαχείριση",
+ "Recommended" : "Προτείνεται",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Η εφαρμογή \"%s\" δεν μπορεί να εγκατασταθεί επειδή δεν είναι συμβατή με αυτή την έκδοση του ownCloud.",
+ "No app name specified" : "Δεν προδιορίστηκε όνομα εφαρμογής",
+ "Unknown filetype" : "Άγνωστος τύπος αρχείου",
+ "Invalid image" : "Μη έγκυρη εικόνα",
+ "web services under your control" : "υπηρεσίες δικτύου υπό τον έλεγχό σας",
+ "App directory already exists" : "Ο κατάλογος εφαρμογών υπάρχει ήδη",
+ "Can't create app folder. Please fix permissions. %s" : "Δεν είναι δυνατόν να δημιουργηθεί ο φάκελος εφαρμογής. Παρακαλώ διορθώστε τις άδειες πρόσβασης. %s",
+ "No source specified when installing app" : "Δεν προσδιορίστηκε πηγή κατά την εγκατάσταση της εφαρμογής",
+ "No href specified when installing app from http" : "Δεν προσδιορίστηκε href κατά την εγκατάσταση της εφαρμογής μέσω http ",
+ "No path specified when installing app from local file" : "Δεν προσδιορίστηκε μονοπάτι κατά την εγκατάσταση εφαρμογής από τοπικό αρχείο",
+ "Archives of type %s are not supported" : "Συλλογές αρχείων τύπου %s δεν υποστηρίζονται",
+ "Failed to open archive when installing app" : "Αποτυχία ανοίγματος συλλογής αρχείων κατά την εγκατάσταση εφαρμογής",
+ "App does not provide an info.xml file" : "Η εφαρμογή δεν παρέχει αρχείο info.xml",
+ "App can't be installed because of not allowed code in the App" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί λόγω μη-επιτρεπόμενου κώδικα μέσα στην Εφαρμογή",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή δεν είναι συμβατή με αυτή την έκδοση ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή περιέχει την ετικέτα σωστή που δεν επιτρέπεται για μη-ενσωματωμένες εφαρμογές",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή η έκδοση στο info.xml/version δεν είναι η ίδια με την έκδοση που αναφέρεται στο κατάστημα εφαρμογών",
+ "Application is not enabled" : "Δεν ενεργοποιήθηκε η εφαρμογή",
+ "Authentication error" : "Σφάλμα πιστοποίησης",
+ "Token expired. Please reload page." : "Το αναγνωριστικό έληξε. Παρακαλώ φορτώστε ξανά την σελίδα.",
+ "Unknown user" : "Άγνωστος χρήστης",
+ "%s enter the database username." : "%s εισάγετε το όνομα χρήστη της βάσης δεδομένων.",
+ "%s enter the database name." : "%s εισάγετε το όνομα της βάσης δεδομένων.",
+ "%s you may not use dots in the database name" : "%s μάλλον δεν χρησιμοποιείτε τελείες στο όνομα της βάσης δεδομένων",
+ "MS SQL username and/or password not valid: %s" : "Το όνομα χρήστη και/ή ο κωδικός της MS SQL δεν είναι έγκυρα: %s",
+ "You need to enter either an existing account or the administrator." : "Χρειάζεται να εισάγετε είτε έναν υπάρχον λογαριασμό ή του διαχειριστή.",
+ "MySQL/MariaDB username and/or password not valid" : "Μη έγκυρο όνομα χρήστη ή/και συνθηματικό της MySQL/MariaDB",
+ "DB Error: \"%s\"" : "Σφάλμα Βάσης Δεδομένων: \"%s\"",
+ "Offending command was: \"%s\"" : "Η εντολη παραβατικοτητας ηταν: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Υπάρχει ήδη ο χρήστης '%s'@'localhost' της MySQL/MariaDB",
+ "Drop this user from MySQL/MariaDB" : "Κατάργηση του χρήστη από MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Υπάρχει ήδη ο χρήστης '%s'@'%%' της MySQL/MariaDB",
+ "Drop this user from MySQL/MariaDB." : "Κατάργηση του χρήστη από MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Αδυναμία σύνδεσης Oracle",
+ "Oracle username and/or password not valid" : "Μη έγκυρος χρήστης και/ή συνθηματικό της Oracle",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Η εντολη παραβατικοτητας ηταν: \"%s\", ονομα: %s, κωδικος: %s",
+ "PostgreSQL username and/or password not valid" : "Μη έγκυρος χρήστης και/ή συνθηματικό της PostgreSQL",
+ "Set an admin username." : "Εισάγετε όνομα χρήστη διαχειριστή.",
+ "Set an admin password." : "Εισάγετε συνθηματικό διαχειριστή.",
+ "Can't create or write into the data directory %s" : "Αδύνατη η δημιουργία ή συγγραφή στον κατάλογο δεδομένων %s",
+ "%s shared »%s« with you" : "Ο %s διαμοιράστηκε μαζί σας το »%s«",
+ "Sharing %s failed, because the file does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν υπάρχει",
+ "You are not allowed to share %s" : "Δεν επιτρέπεται να διαμοιράσετε τον πόρο %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s είναι ο ιδιοκτήτης του αντικειμένου",
+ "Sharing %s failed, because the user %s does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν υπάρχει",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν είναι μέλος καμίας ομάδας στην οποία ο χρήστης %s είναι μέλος",
+ "Sharing %s failed, because this item is already shared with %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αντικείμενο είναι διαμοιρασμένο ήδη με τον χρήστη %s",
+ "Sharing %s failed, because the group %s does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί η ομάδα χρηστών %s δεν υπάρχει",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν είναι μέλος της ομάδας %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Πρέπει να εισάγετε έναν κωδικό για να δημιουργήσετε έναν δημόσιο σύνδεσμο. Μόνο προστατευμένοι σύνδεσμοι επιτρέπονται",
+ "Sharing %s failed, because sharing with links is not allowed" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν επιτρέπεται ο διαμοιρασμός με συνδέσμους",
+ "Share type %s is not valid for %s" : "Ο τύπος διαμοιρασμού %s δεν είναι έγκυρος για το %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Ο ορισμός δικαιωμάτων για το %s απέτυχε, γιατί τα δικαιώματα υπερτερούν αυτά που είναι ορισμένα για το %s",
+ "Setting permissions for %s failed, because the item was not found" : "Ο ορισμός δικαιωμάτων για το %s απέτυχε, γιατί το αντικείμενο δεν βρέθηκε",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Δεν μπορεί να οριστεί ημερομηνία λήξης. Οι κοινοποιήσεις δεν μπορεί να λήγουν αργότερα από %s αφού έχουν διαμοιραστεί.",
+ "Cannot set expiration date. Expiration date is in the past" : "Δεν μπορεί να οριστεί ημερομηνία λήξης. Η ημερομηνία λήξης είναι στο παρελθόν",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Το σύστημα διαμοιρασμού %s πρέπει να υλοποιεί την διεπαφή OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Το σύστημα διαμοιρασμού %s δεν βρέθηκε",
+ "Sharing backend for %s not found" : "Το σύστημα διαμοιρασμού για το %s δεν βρέθηκε",
+ "Sharing %s failed, because the user %s is the original sharer" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αντικείμενο είναι διαμοιρασμένο αρχικά από τον χρήστη %s",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί τα δικαιώματα υπερτερούν αυτά που είναι ορισμένα για το %s",
+ "Sharing %s failed, because resharing is not allowed" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν επιτρέπεται ο επαναδιαμοιρασμός",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν ήταν δυνατό να εντοπίσει την πηγή το σύστημα διαμοιρασμού για το %s ",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν βρέθηκε στην προσωρινή αποθήκευση αρχείων",
+ "Could not find category \"%s\"" : "Αδυναμία εύρεσης κατηγορίας \"%s\"",
+ "seconds ago" : "δευτερόλεπτα πριν",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n λεπτά πριν"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n ώρες πριν"],
+ "today" : "σήμερα",
+ "yesterday" : "χτες",
+ "_%n day go_::_%n days ago_" : ["","%n ημέρες πριν"],
+ "last month" : "τελευταίο μήνα",
+ "_%n month ago_::_%n months ago_" : ["","%n μήνες πριν"],
+ "last year" : "τελευταίο χρόνο",
+ "years ago" : "χρόνια πριν",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Μόνο οι παρακάτων χαρακτήρες επιτρέπονται σε ένα όνομα χρήστη: \"a-z\", \"A-Z\", \"0-9\" και \"_.@-\"",
+ "A valid username must be provided" : "Πρέπει να δοθεί έγκυρο όνομα χρήστη",
+ "A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό",
+ "The username is already being used" : "Το όνομα χρήστη είναι κατειλημμένο",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Δεν βρέθηκαν εγκατεστημένοι οδηγοί βάσεων δεδομένων (sqlite, mysql, or postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Τα δικαιώματα πρόσβασης μπορούν συνήθως να διορθωθούν %sδίνοντας δικαιώματα εγγραφής για τον βασικό κατάλογο στο διακομιστή δικτύου%s.",
+ "Cannot write into \"config\" directory" : "Αδυναμία εγγραφής στον κατάλογο \"config\"",
+ "Cannot write into \"apps\" directory" : "Αδυναμία εγγραφής στον κατάλογο \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Αυτό μπορεί συνήθως να διορθωθεί %sδίνοντας διακαιώματα εγγραφής για τον κατάλογο εφαρμογών στο διακομιστή δικτύου%s ή απενεργοποιώντας το κέντρο εφαρμογών στο αρχείο config.",
+ "Cannot create \"data\" directory (%s)" : "Αδυναμία δημιουργίας του καταλόγου \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Αυτό μπορεί συνήθως να διορθωθεί δίνοντας δικαιώματα εγγραφής για το βασικό κατάλογο στο διακομιστή δικτύου .",
+ "Setting locale to %s failed" : "Ρύθμιση τοπικών ρυθμίσεων σε %s απέτυχε",
+ "Please install one of these locales on your system and restart your webserver." : "Παρακαλώ να εγκαταστήσετε μία από αυτές τις τοπικές ρυθμίσεις στο σύστημά σας και να επανεκκινήσετε τον διακομιστή δικτύου σας.",
+ "Please ask your server administrator to install the module." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να εγκαταστήσει τη μονάδα.",
+ "PHP module %s not installed." : "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ",
+ "PHP %s or higher is required." : "PHP %s ή νεώτερη απαιτείται.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να ενημερώσει τον PHP στη νεώτερη έκδοση. Η έκδοση του PHP σας δεν υποστηρίζεται πλεον από το ownCloud και την κοινότητα PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Η Ασφαλής Λειτουργία PHP έχει ενεργοποιηθεί. Το ownCloud απαιτεί να είναι απενεργοποιημένη για να λειτουργεί σωστά.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Η Ασφαλής Λειτουργεία PHP είναι μια ξεπερασμένη και κατά κύριο λόγο άχρηστη ρύθμιση που θα πρέπει να είναι απενεργοποιημένη. Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να την απενεργοποιήσει στο php.ini ή στις ρυθμίσεις του διακομιστή δικτύου σας.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Οι Magic Quotes είναι ενεργοποιημένες. Το ownCloud απαιτεί να είναι απενεργοποιημένες για να λειτουργεί σωστά.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Οι Magic Quotes είναι μια ξεπερασμένη και κατά κύριο λόγο άχρηστη ρύθμιση που θα πρέπει να είναι απενεργοποιημένη. Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να την απενεργοποιήσει στο php.ini ή στις ρυθμίσεις του διακομιστή δικτύου σας.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;",
+ "Please ask your server administrator to restart the web server." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.",
+ "PostgreSQL >= 9 required" : "Απαιτείται PostgreSQL >= 9",
+ "Please upgrade your database version" : "Παρακαλώ αναβαθμίστε την έκδοση της βάσης δεδομένων σας",
+ "Error occurred while checking PostgreSQL version" : "Προέκυψε σφάλμα κατά τον έλεγχο της έκδοσης PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Παρακαλώ ελέγξτε ότι έχετε PostgreSQL >= 9 ή ελέγξτε στα ιστορικό σφαλμάτων για περισσότερες πληροφορίες για το σφάλμα",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Παρακαλώ αλλάξτε τις ρυθμίσεις σε 0770 έτσι ώστε ο κατάλογος να μην μπορεί να προβάλλεται από άλλους χρήστες.",
+ "Data directory (%s) is readable by other users" : "Ο κατάλογος δεδομένων (%s) είναι διαθέσιμος προς ανάγνωση για άλλους χρήστες",
+ "Data directory (%s) is invalid" : "Ο κατάλογος δεδομένων (%s) είναι άκυρος",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Παρακαλώ ελέγξτε ότι ο κατάλογος δεδομένων περιέχει ένα αρχείο \".ocdata\" στη βάση του.",
+ "Could not obtain lock type %d on \"%s\"." : "Αδυναμία ανάκτησης τύπου κλειδιού %d στο \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/el.php b/lib/l10n/el.php
deleted file mode 100644
index 83ad773a23b..00000000000
--- a/lib/l10n/el.php
+++ /dev/null
@@ -1,121 +0,0 @@
- "Αδυναμία εγγραφής στον κατάλογο \"config\"!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Αυτό μπορεί συνήθως να διορθωθεί παρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου",
-"See %s" => "Δείτε %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Αυτό μπορεί συνήθως να διορθωθεί %sπαρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου%s.",
-"Sample configuration detected" => "Ανιχνεύθηκε δείγμα εγκατάστασης",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Έχει ανιχνευθεί ότι το δείγμα εγκατάστασης έχει αντιγραφεί. Αυτό μπορεί να σπάσει την εγκατάστασή σας και δεν υποστηρίζεται. Παρακαλώ διαβάστε την τεκμηρίωση πριν εκτελέσετε αλλαγές στο config.php",
-"Help" => "Βοήθεια",
-"Personal" => "Προσωπικά",
-"Settings" => "Ρυθμίσεις",
-"Users" => "Χρήστες",
-"Admin" => "Διαχείριση",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Η εφαρμογή \"%s\" δεν μπορεί να εγκατασταθεί επειδή δεν είναι συμβατή με αυτή την έκδοση του ownCloud.",
-"No app name specified" => "Δεν προδιορίστηκε όνομα εφαρμογής",
-"Unknown filetype" => "Άγνωστος τύπος αρχείου",
-"Invalid image" => "Μη έγκυρη εικόνα",
-"web services under your control" => "υπηρεσίες δικτύου υπό τον έλεγχό σας",
-"App directory already exists" => "Ο κατάλογος εφαρμογών υπάρχει ήδη",
-"Can't create app folder. Please fix permissions. %s" => "Δεν είναι δυνατόν να δημιουργηθεί ο φάκελος εφαρμογής. Παρακαλώ διορθώστε τις άδειες πρόσβασης. %s",
-"No source specified when installing app" => "Δεν προσδιορίστηκε πηγή κατά την εγκατάσταση της εφαρμογής",
-"No href specified when installing app from http" => "Δεν προσδιορίστηκε href κατά την εγκατάσταση της εφαρμογής μέσω http ",
-"No path specified when installing app from local file" => "Δεν προσδιορίστηκε μονοπάτι κατά την εγκατάσταση εφαρμογής από τοπικό αρχείο",
-"Archives of type %s are not supported" => "Συλλογές αρχείων τύπου %s δεν υποστηρίζονται",
-"Failed to open archive when installing app" => "Αποτυχία ανοίγματος συλλογής αρχείων κατά την εγκατάσταση εφαρμογής",
-"App does not provide an info.xml file" => "Η εφαρμογή δεν παρέχει αρχείο info.xml",
-"App can't be installed because of not allowed code in the App" => "Η εφαρμογή δεν μπορεί να εγκατασταθεί λόγω μη-επιτρεπόμενου κώδικα μέσα στην Εφαρμογή",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή δεν είναι συμβατή με αυτή την έκδοση ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή περιέχει την ετικέτα σωστή που δεν επιτρέπεται για μη-ενσωματωμένες εφαρμογές",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή η έκδοση στο info.xml/version δεν είναι η ίδια με την έκδοση που αναφέρεται στο κατάστημα εφαρμογών",
-"Application is not enabled" => "Δεν ενεργοποιήθηκε η εφαρμογή",
-"Authentication error" => "Σφάλμα πιστοποίησης",
-"Token expired. Please reload page." => "Το αναγνωριστικό έληξε. Παρακαλώ φορτώστε ξανά την σελίδα.",
-"Unknown user" => "Άγνωστος χρήστης",
-"%s enter the database username." => "%s εισάγετε το όνομα χρήστη της βάσης δεδομένων.",
-"%s enter the database name." => "%s εισάγετε το όνομα της βάσης δεδομένων.",
-"%s you may not use dots in the database name" => "%s μάλλον δεν χρησιμοποιείτε τελείες στο όνομα της βάσης δεδομένων",
-"MS SQL username and/or password not valid: %s" => "Το όνομα χρήστη και/ή ο κωδικός της MS SQL δεν είναι έγκυρα: %s",
-"You need to enter either an existing account or the administrator." => "Χρειάζεται να εισάγετε είτε έναν υπάρχον λογαριασμό ή του διαχειριστή.",
-"MySQL/MariaDB username and/or password not valid" => "Μη έγκυρο όνομα χρήστη ή/και συνθηματικό της MySQL/MariaDB",
-"DB Error: \"%s\"" => "Σφάλμα Βάσης Δεδομένων: \"%s\"",
-"Offending command was: \"%s\"" => "Η εντολη παραβατικοτητας ηταν: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "Υπάρχει ήδη ο χρήστης '%s'@'localhost' της MySQL/MariaDB",
-"Drop this user from MySQL/MariaDB" => "Κατάργηση του χρήστη από MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "Υπάρχει ήδη ο χρήστης '%s'@'%%' της MySQL/MariaDB",
-"Drop this user from MySQL/MariaDB." => "Κατάργηση του χρήστη από MySQL/MariaDB.",
-"Oracle connection could not be established" => "Αδυναμία σύνδεσης Oracle",
-"Oracle username and/or password not valid" => "Μη έγκυρος χρήστης και/ή συνθηματικό της Oracle",
-"Offending command was: \"%s\", name: %s, password: %s" => "Η εντολη παραβατικοτητας ηταν: \"%s\", ονομα: %s, κωδικος: %s",
-"PostgreSQL username and/or password not valid" => "Μη έγκυρος χρήστης και/ή συνθηματικό της PostgreSQL",
-"Set an admin username." => "Εισάγετε όνομα χρήστη διαχειριστή.",
-"Set an admin password." => "Εισάγετε συνθηματικό διαχειριστή.",
-"%s shared »%s« with you" => "Ο %s διαμοιράστηκε μαζί σας το »%s«",
-"Sharing %s failed, because the file does not exist" => "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν υπάρχει",
-"You are not allowed to share %s" => "Δεν επιτρέπεται να διαμοιράσετε τον πόρο %s",
-"Sharing %s failed, because the user %s is the item owner" => "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s είναι ο ιδιοκτήτης του αντικειμένου",
-"Sharing %s failed, because the user %s does not exist" => "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν υπάρχει",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν είναι μέλος καμίας ομάδας στην οποία ο χρήστης %s είναι μέλος",
-"Sharing %s failed, because this item is already shared with %s" => "Ο διαμοιρασμός του %s απέτυχε, γιατί το αντικείμενο είναι διαμοιρασμένο ήδη με τον χρήστη %s",
-"Sharing %s failed, because the group %s does not exist" => "Ο διαμοιρασμός του %s απέτυχε, γιατί η ομάδα χρηστών %s δεν υπάρχει",
-"Sharing %s failed, because %s is not a member of the group %s" => "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν είναι μέλος της ομάδας %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Πρέπει να εισάγετε έναν κωδικό για να δημιουργήσετε έναν δημόσιο σύνδεσμο. Μόνο προστατευμένοι σύνδεσμοι επιτρέπονται",
-"Sharing %s failed, because sharing with links is not allowed" => "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν επιτρέπεται ο διαμοιρασμός με συνδέσμους",
-"Share type %s is not valid for %s" => "Ο τύπος διαμοιρασμού %s δεν είναι έγκυρος για το %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Ο ορισμός δικαιωμάτων για το %s απέτυχε, γιατί τα δικαιώματα υπερτερούν αυτά που είναι ορισμένα για το %s",
-"Setting permissions for %s failed, because the item was not found" => "Ο ορισμός δικαιωμάτων για το %s απέτυχε, γιατί το αντικείμενο δεν βρέθηκε",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Δεν μπορεί να οριστεί ημερομηνία λήξης. Οι κοινοποιήσεις δεν μπορεί να λήγουν αργότερα από %s αφού έχουν διαμοιραστεί.",
-"Cannot set expiration date. Expiration date is in the past" => "Δεν μπορεί να οριστεί ημερομηνία λήξης. Η ημερομηνία λήξης είναι στο παρελθόν",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Το σύστημα διαμοιρασμού %s πρέπει να υλοποιεί την διεπαφή OCP\\Share_Backend",
-"Sharing backend %s not found" => "Το σύστημα διαμοιρασμού %s δεν βρέθηκε",
-"Sharing backend for %s not found" => "Το σύστημα διαμοιρασμού για το %s δεν βρέθηκε",
-"Sharing %s failed, because the user %s is the original sharer" => "Ο διαμοιρασμός του %s απέτυχε, γιατί το αντικείμενο είναι διαμοιρασμένο αρχικά από τον χρήστη %s",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Ο διαμοιρασμός του %s απέτυχε, γιατί τα δικαιώματα υπερτερούν αυτά που είναι ορισμένα για το %s",
-"Sharing %s failed, because resharing is not allowed" => "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν επιτρέπεται ο επαναδιαμοιρασμός",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν ήταν δυνατό να εντοπίσει την πηγή το σύστημα διαμοιρασμού για το %s ",
-"Sharing %s failed, because the file could not be found in the file cache" => "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν βρέθηκε στην προσωρινή αποθήκευση αρχείων",
-"Could not find category \"%s\"" => "Αδυναμία εύρεσης κατηγορίας \"%s\"",
-"seconds ago" => "δευτερόλεπτα πριν",
-"_%n minute ago_::_%n minutes ago_" => array("","%n λεπτά πριν"),
-"_%n hour ago_::_%n hours ago_" => array("","%n ώρες πριν"),
-"today" => "σήμερα",
-"yesterday" => "χτες",
-"_%n day go_::_%n days ago_" => array("","%n ημέρες πριν"),
-"last month" => "τελευταίο μήνα",
-"_%n month ago_::_%n months ago_" => array("","%n μήνες πριν"),
-"last year" => "τελευταίο χρόνο",
-"years ago" => "χρόνια πριν",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Μόνο οι παρακάτων χαρακτήρες επιτρέπονται σε ένα όνομα χρήστη: \"a-z\", \"A-Z\", \"0-9\" και \"_.@-\"",
-"A valid username must be provided" => "Πρέπει να δοθεί έγκυρο όνομα χρήστη",
-"A valid password must be provided" => "Πρέπει να δοθεί έγκυρο συνθηματικό",
-"The username is already being used" => "Το όνομα χρήστη είναι κατειλημμένο",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Δεν βρέθηκαν εγκατεστημένοι οδηγοί βάσεων δεδομένων (sqlite, mysql, or postgresql).",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Τα δικαιώματα πρόσβασης μπορούν συνήθως να διορθωθούν %sδίνοντας δικαιώματα εγγραφής για τον βασικό κατάλογο στο διακομιστή δικτύου%s.",
-"Cannot write into \"config\" directory" => "Αδυναμία εγγραφής στον κατάλογο \"config\"",
-"Cannot write into \"apps\" directory" => "Αδυναμία εγγραφής στον κατάλογο \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Αυτό μπορεί συνήθως να διορθωθεί %sδίνοντας διακαιώματα εγγραφής για τον κατάλογο εφαρμογών στο διακομιστή δικτύου%s ή απενεργοποιώντας το κέντρο εφαρμογών στο αρχείο config.",
-"Cannot create \"data\" directory (%s)" => "Αδυναμία δημιουργίας του καταλόγου \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Αυτό μπορεί συνήθως να διορθωθεί δίνοντας δικαιώματα εγγραφής για το βασικό κατάλογο στο διακομιστή δικτύου .",
-"Setting locale to %s failed" => "Ρύθμιση τοπικών ρυθμίσεων σε %s απέτυχε",
-"Please install one of these locales on your system and restart your webserver." => "Παρακαλώ να εγκαταστήσετε μία από αυτές τις τοπικές ρυθμίσεις στο σύστημά σας και να επανεκκινήσετε τον διακομιστή δικτύου σας.",
-"Please ask your server administrator to install the module." => "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να εγκαταστήσει τη μονάδα.",
-"PHP module %s not installed." => "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ",
-"PHP %s or higher is required." => "PHP %s ή νεώτερη απαιτείται.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να ενημερώσει τον PHP στη νεώτερη έκδοση. Η έκδοση του PHP σας δεν υποστηρίζεται πλεον από το ownCloud και την κοινότητα PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "Η Ασφαλής Λειτουργία PHP έχει ενεργοποιηθεί. Το ownCloud απαιτεί να είναι απενεργοποιημένη για να λειτουργεί σωστά.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Η Ασφαλής Λειτουργεία PHP είναι μια ξεπερασμένη και κατά κύριο λόγο άχρηστη ρύθμιση που θα πρέπει να είναι απενεργοποιημένη. Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να την απενεργοποιήσει στο php.ini ή στις ρυθμίσεις του διακομιστή δικτύου σας.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Οι Magic Quotes είναι ενεργοποιημένες. Το ownCloud απαιτεί να είναι απενεργοποιημένες για να λειτουργεί σωστά.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Οι Magic Quotes είναι μια ξεπερασμένη και κατά κύριο λόγο άχρηστη ρύθμιση που θα πρέπει να είναι απενεργοποιημένη. Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να την απενεργοποιήσει στο php.ini ή στις ρυθμίσεις του διακομιστή δικτύου σας.",
-"PHP modules have been installed, but they are still listed as missing?" => "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;",
-"Please ask your server administrator to restart the web server." => "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.",
-"PostgreSQL >= 9 required" => "Απαιτείται PostgreSQL >= 9",
-"Please upgrade your database version" => "Παρακαλώ αναβαθμίστε την έκδοση της βάσης δεδομένων σας",
-"Error occurred while checking PostgreSQL version" => "Προέκυψε σφάλμα κατά τον έλεγχο της έκδοσης PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Παρακαλώ ελέγξτε ότι έχετε PostgreSQL >= 9 ή ελέγξτε στα ιστορικό σφαλμάτων για περισσότερες πληροφορίες για το σφάλμα",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Παρακαλώ αλλάξτε τις ρυθμίσεις σε 0770 έτσι ώστε ο κατάλογος να μην μπορεί να προβάλλεται από άλλους χρήστες.",
-"Data directory (%s) is readable by other users" => "Ο κατάλογος δεδομένων (%s) είναι διαθέσιμος προς ανάγνωση για άλλους χρήστες",
-"Data directory (%s) is invalid" => "Ο κατάλογος δεδομένων (%s) είναι άκυρος",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Παρακαλώ ελέγξτε ότι ο κατάλογος δεδομένων περιέχει ένα αρχείο \".ocdata\" στη βάση του.",
-"Could not obtain lock type %d on \"%s\"." => "Αδυναμία ανάκτησης τύπου κλειδιού %d στο \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/en@pirate.js b/lib/l10n/en@pirate.js
new file mode 100644
index 00000000000..ad57745199e
--- /dev/null
+++ b/lib/l10n/en@pirate.js
@@ -0,0 +1,10 @@
+OC.L10N.register(
+ "lib",
+ {
+ "web services under your control" : "web services under your control",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/en@pirate.json b/lib/l10n/en@pirate.json
new file mode 100644
index 00000000000..c2cd03ea8f3
--- /dev/null
+++ b/lib/l10n/en@pirate.json
@@ -0,0 +1,8 @@
+{ "translations": {
+ "web services under your control" : "web services under your control",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/en@pirate.php b/lib/l10n/en@pirate.php
deleted file mode 100644
index a8175b1400f..00000000000
--- a/lib/l10n/en@pirate.php
+++ /dev/null
@@ -1,9 +0,0 @@
- "web services under your control",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js
new file mode 100644
index 00000000000..9e5400deb2d
--- /dev/null
+++ b/lib/l10n/en_GB.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Cannot write into \"config\" directory!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "This can usually be fixed by giving the webserver write access to the config directory",
+ "See %s" : "See %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "This can usually be fixed by %sgiving the webserver write access to the config directory%s.",
+ "Sample configuration detected" : "Sample configuration detected",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php",
+ "Help" : "Help",
+ "Personal" : "Personal",
+ "Settings" : "Settings",
+ "Users" : "Users",
+ "Admin" : "Admin",
+ "Recommended" : "Recommended",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud.",
+ "No app name specified" : "No app name specified",
+ "Unknown filetype" : "Unknown filetype",
+ "Invalid image" : "Invalid image",
+ "Database Error" : "Database Error",
+ "Please contact your system administrator." : "Please contact your system administrator.",
+ "web services under your control" : "web services under your control",
+ "App directory already exists" : "App directory already exists",
+ "Can't create app folder. Please fix permissions. %s" : "Can't create app folder. Please fix permissions. %s",
+ "No source specified when installing app" : "No source specified when installing app",
+ "No href specified when installing app from http" : "No href specified when installing app from http",
+ "No path specified when installing app from local file" : "No path specified when installing app from local file",
+ "Archives of type %s are not supported" : "Archives of type %s are not supported",
+ "Failed to open archive when installing app" : "Failed to open archive when installing app",
+ "App does not provide an info.xml file" : "App does not provide an info.xml file",
+ "App can't be installed because of not allowed code in the App" : "App can't be installed because of unallowed code in the App",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "App can't be installed because it is not compatible with this version of ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "App can't be installed because it contains the true tag which is not allowed for non shipped apps",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store",
+ "Application is not enabled" : "Application is not enabled",
+ "Authentication error" : "Authentication error",
+ "Token expired. Please reload page." : "Token expired. Please reload page.",
+ "Unknown user" : "Unknown user",
+ "%s enter the database username." : "%s enter the database username.",
+ "%s enter the database name." : "%s enter the database name.",
+ "%s you may not use dots in the database name" : "%s you may not use dots in the database name",
+ "MS SQL username and/or password not valid: %s" : "MS SQL username and/or password not valid: %s",
+ "You need to enter either an existing account or the administrator." : "You need to enter either an existing account or the administrator.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB username and/or password not valid",
+ "DB Error: \"%s\"" : "DB Error: \"%s\"",
+ "Offending command was: \"%s\"" : "Offending command was: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB user '%s'@'localhost' exists already.",
+ "Drop this user from MySQL/MariaDB" : "Drop this user from MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB user '%s'@'%%' already exists",
+ "Drop this user from MySQL/MariaDB." : "Drop this user from MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Oracle connection could not be established",
+ "Oracle username and/or password not valid" : "Oracle username and/or password not valid",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Offending command was: \"%s\", name: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL username and/or password not valid",
+ "Set an admin username." : "Set an admin username.",
+ "Set an admin password." : "Set an admin password.",
+ "Can't create or write into the data directory %s" : "Can't create or write into the data directory %s",
+ "%s shared »%s« with you" : "%s shared \"%s\" with you",
+ "Sharing %s failed, because the file does not exist" : "Sharing %s failed, because the file does not exist",
+ "You are not allowed to share %s" : "You are not allowed to share %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Sharing %s failed, because the user %s is the item owner",
+ "Sharing %s failed, because the user %s does not exist" : "Sharing %s failed, because the user %s does not exist",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of",
+ "Sharing %s failed, because this item is already shared with %s" : "Sharing %s failed, because this item is already shared with %s",
+ "Sharing %s failed, because the group %s does not exist" : "Sharing %s failed, because the group %s does not exist",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Sharing %s failed, because %s is not a member of the group %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "You need to provide a password to create a public link, only protected links are allowed",
+ "Sharing %s failed, because sharing with links is not allowed" : "Sharing %s failed, because sharing with links is not allowed",
+ "Share type %s is not valid for %s" : "Share type %s is not valid for %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Setting permissions for %s failed, because the permissions exceed permissions granted to %s",
+ "Setting permissions for %s failed, because the item was not found" : "Setting permissions for %s failed, because the item was not found",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Cannot set expiry date. Shares cannot expire later than %s after they have been shared",
+ "Cannot set expiration date. Expiration date is in the past" : "Cannot set expiry date. Expiry date is in the past",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Sharing backend %s must implement the interface OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Sharing backend %s not found",
+ "Sharing backend for %s not found" : "Sharing backend for %s not found",
+ "Sharing %s failed, because the user %s is the original sharer" : "Sharing %s failed, because the user %s is the original sharer",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Sharing %s failed, because the permissions exceed permissions granted to %s",
+ "Sharing %s failed, because resharing is not allowed" : "Sharing %s failed, because resharing is not allowed",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Sharing %s failed, because the sharing backend for %s could not find its source",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Sharing %s failed, because the file could not be found in the file cache",
+ "Could not find category \"%s\"" : "Could not find category \"%s\"",
+ "seconds ago" : "seconds ago",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"],
+ "_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"],
+ "today" : "today",
+ "yesterday" : "yesterday",
+ "_%n day go_::_%n days ago_" : ["%n day go","%n days ago"],
+ "last month" : "last month",
+ "_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"],
+ "last year" : "last year",
+ "years ago" : "years ago",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "A valid username must be provided",
+ "A valid password must be provided" : "A valid password must be provided",
+ "The username is already being used" : "The username is already being used",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "No database drivers (sqlite, mysql, or postgresql) installed.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s.",
+ "Cannot write into \"config\" directory" : "Cannot write into \"config\" directory",
+ "Cannot write into \"apps\" directory" : "Cannot write into \"apps\" directory",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file.",
+ "Cannot create \"data\" directory (%s)" : "Cannot create \"data\" directory (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "This can usually be fixed by giving the webserver write access to the root directory .",
+ "Setting locale to %s failed" : "Setting locale to %s failed",
+ "Please install one of these locales on your system and restart your webserver." : "Please install one of these locales on your system and restart your webserver.",
+ "Please ask your server administrator to install the module." : "Please ask your server administrator to install the module.",
+ "PHP module %s not installed." : "PHP module %s not installed.",
+ "PHP %s or higher is required." : "PHP %s or higher is required.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP modules have been installed, but they are still listed as missing?",
+ "Please ask your server administrator to restart the web server." : "Please ask your server administrator to restart the web server.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 required",
+ "Please upgrade your database version" : "Please upgrade your database version",
+ "Error occurred while checking PostgreSQL version" : "Error occurred while checking PostgreSQL version",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Please change the permissions to 0770 so that the directory cannot be listed by other users.",
+ "Data directory (%s) is readable by other users" : "Data directory (%s) is readable by other users",
+ "Data directory (%s) is invalid" : "Data directory (%s) is invalid",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Please check that the data directory contains a file \".ocdata\" in its root.",
+ "Could not obtain lock type %d on \"%s\"." : "Could not obtain lock type %d on \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json
new file mode 100644
index 00000000000..e3a44ec8e9b
--- /dev/null
+++ b/lib/l10n/en_GB.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Cannot write into \"config\" directory!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "This can usually be fixed by giving the webserver write access to the config directory",
+ "See %s" : "See %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "This can usually be fixed by %sgiving the webserver write access to the config directory%s.",
+ "Sample configuration detected" : "Sample configuration detected",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php",
+ "Help" : "Help",
+ "Personal" : "Personal",
+ "Settings" : "Settings",
+ "Users" : "Users",
+ "Admin" : "Admin",
+ "Recommended" : "Recommended",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud.",
+ "No app name specified" : "No app name specified",
+ "Unknown filetype" : "Unknown filetype",
+ "Invalid image" : "Invalid image",
+ "Database Error" : "Database Error",
+ "Please contact your system administrator." : "Please contact your system administrator.",
+ "web services under your control" : "web services under your control",
+ "App directory already exists" : "App directory already exists",
+ "Can't create app folder. Please fix permissions. %s" : "Can't create app folder. Please fix permissions. %s",
+ "No source specified when installing app" : "No source specified when installing app",
+ "No href specified when installing app from http" : "No href specified when installing app from http",
+ "No path specified when installing app from local file" : "No path specified when installing app from local file",
+ "Archives of type %s are not supported" : "Archives of type %s are not supported",
+ "Failed to open archive when installing app" : "Failed to open archive when installing app",
+ "App does not provide an info.xml file" : "App does not provide an info.xml file",
+ "App can't be installed because of not allowed code in the App" : "App can't be installed because of unallowed code in the App",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "App can't be installed because it is not compatible with this version of ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "App can't be installed because it contains the true tag which is not allowed for non shipped apps",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store",
+ "Application is not enabled" : "Application is not enabled",
+ "Authentication error" : "Authentication error",
+ "Token expired. Please reload page." : "Token expired. Please reload page.",
+ "Unknown user" : "Unknown user",
+ "%s enter the database username." : "%s enter the database username.",
+ "%s enter the database name." : "%s enter the database name.",
+ "%s you may not use dots in the database name" : "%s you may not use dots in the database name",
+ "MS SQL username and/or password not valid: %s" : "MS SQL username and/or password not valid: %s",
+ "You need to enter either an existing account or the administrator." : "You need to enter either an existing account or the administrator.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB username and/or password not valid",
+ "DB Error: \"%s\"" : "DB Error: \"%s\"",
+ "Offending command was: \"%s\"" : "Offending command was: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB user '%s'@'localhost' exists already.",
+ "Drop this user from MySQL/MariaDB" : "Drop this user from MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB user '%s'@'%%' already exists",
+ "Drop this user from MySQL/MariaDB." : "Drop this user from MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Oracle connection could not be established",
+ "Oracle username and/or password not valid" : "Oracle username and/or password not valid",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Offending command was: \"%s\", name: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL username and/or password not valid",
+ "Set an admin username." : "Set an admin username.",
+ "Set an admin password." : "Set an admin password.",
+ "Can't create or write into the data directory %s" : "Can't create or write into the data directory %s",
+ "%s shared »%s« with you" : "%s shared \"%s\" with you",
+ "Sharing %s failed, because the file does not exist" : "Sharing %s failed, because the file does not exist",
+ "You are not allowed to share %s" : "You are not allowed to share %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Sharing %s failed, because the user %s is the item owner",
+ "Sharing %s failed, because the user %s does not exist" : "Sharing %s failed, because the user %s does not exist",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of",
+ "Sharing %s failed, because this item is already shared with %s" : "Sharing %s failed, because this item is already shared with %s",
+ "Sharing %s failed, because the group %s does not exist" : "Sharing %s failed, because the group %s does not exist",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Sharing %s failed, because %s is not a member of the group %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "You need to provide a password to create a public link, only protected links are allowed",
+ "Sharing %s failed, because sharing with links is not allowed" : "Sharing %s failed, because sharing with links is not allowed",
+ "Share type %s is not valid for %s" : "Share type %s is not valid for %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Setting permissions for %s failed, because the permissions exceed permissions granted to %s",
+ "Setting permissions for %s failed, because the item was not found" : "Setting permissions for %s failed, because the item was not found",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Cannot set expiry date. Shares cannot expire later than %s after they have been shared",
+ "Cannot set expiration date. Expiration date is in the past" : "Cannot set expiry date. Expiry date is in the past",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Sharing backend %s must implement the interface OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Sharing backend %s not found",
+ "Sharing backend for %s not found" : "Sharing backend for %s not found",
+ "Sharing %s failed, because the user %s is the original sharer" : "Sharing %s failed, because the user %s is the original sharer",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Sharing %s failed, because the permissions exceed permissions granted to %s",
+ "Sharing %s failed, because resharing is not allowed" : "Sharing %s failed, because resharing is not allowed",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Sharing %s failed, because the sharing backend for %s could not find its source",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Sharing %s failed, because the file could not be found in the file cache",
+ "Could not find category \"%s\"" : "Could not find category \"%s\"",
+ "seconds ago" : "seconds ago",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"],
+ "_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"],
+ "today" : "today",
+ "yesterday" : "yesterday",
+ "_%n day go_::_%n days ago_" : ["%n day go","%n days ago"],
+ "last month" : "last month",
+ "_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"],
+ "last year" : "last year",
+ "years ago" : "years ago",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "A valid username must be provided",
+ "A valid password must be provided" : "A valid password must be provided",
+ "The username is already being used" : "The username is already being used",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "No database drivers (sqlite, mysql, or postgresql) installed.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s.",
+ "Cannot write into \"config\" directory" : "Cannot write into \"config\" directory",
+ "Cannot write into \"apps\" directory" : "Cannot write into \"apps\" directory",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file.",
+ "Cannot create \"data\" directory (%s)" : "Cannot create \"data\" directory (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "This can usually be fixed by giving the webserver write access to the root directory .",
+ "Setting locale to %s failed" : "Setting locale to %s failed",
+ "Please install one of these locales on your system and restart your webserver." : "Please install one of these locales on your system and restart your webserver.",
+ "Please ask your server administrator to install the module." : "Please ask your server administrator to install the module.",
+ "PHP module %s not installed." : "PHP module %s not installed.",
+ "PHP %s or higher is required." : "PHP %s or higher is required.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP modules have been installed, but they are still listed as missing?",
+ "Please ask your server administrator to restart the web server." : "Please ask your server administrator to restart the web server.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 required",
+ "Please upgrade your database version" : "Please upgrade your database version",
+ "Error occurred while checking PostgreSQL version" : "Error occurred while checking PostgreSQL version",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Please change the permissions to 0770 so that the directory cannot be listed by other users.",
+ "Data directory (%s) is readable by other users" : "Data directory (%s) is readable by other users",
+ "Data directory (%s) is invalid" : "Data directory (%s) is invalid",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Please check that the data directory contains a file \".ocdata\" in its root.",
+ "Could not obtain lock type %d on \"%s\"." : "Could not obtain lock type %d on \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/en_GB.php b/lib/l10n/en_GB.php
deleted file mode 100644
index da3cacfce98..00000000000
--- a/lib/l10n/en_GB.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Cannot write into \"config\" directory!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "This can usually be fixed by giving the webserver write access to the config directory",
-"See %s" => "See %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "This can usually be fixed by %sgiving the webserver write access to the config directory%s.",
-"Sample configuration detected" => "Sample configuration detected",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php",
-"Help" => "Help",
-"Personal" => "Personal",
-"Settings" => "Settings",
-"Users" => "Users",
-"Admin" => "Admin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud.",
-"No app name specified" => "No app name specified",
-"Unknown filetype" => "Unknown filetype",
-"Invalid image" => "Invalid image",
-"web services under your control" => "web services under your control",
-"App directory already exists" => "App directory already exists",
-"Can't create app folder. Please fix permissions. %s" => "Can't create app folder. Please fix permissions. %s",
-"No source specified when installing app" => "No source specified when installing app",
-"No href specified when installing app from http" => "No href specified when installing app from http",
-"No path specified when installing app from local file" => "No path specified when installing app from local file",
-"Archives of type %s are not supported" => "Archives of type %s are not supported",
-"Failed to open archive when installing app" => "Failed to open archive when installing app",
-"App does not provide an info.xml file" => "App does not provide an info.xml file",
-"App can't be installed because of not allowed code in the App" => "App can't be installed because of unallowed code in the App",
-"App can't be installed because it is not compatible with this version of ownCloud" => "App can't be installed because it is not compatible with this version of ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "App can't be installed because it contains the true tag which is not allowed for non shipped apps",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store",
-"Application is not enabled" => "Application is not enabled",
-"Authentication error" => "Authentication error",
-"Token expired. Please reload page." => "Token expired. Please reload page.",
-"Unknown user" => "Unknown user",
-"%s enter the database username." => "%s enter the database username.",
-"%s enter the database name." => "%s enter the database name.",
-"%s you may not use dots in the database name" => "%s you may not use dots in the database name",
-"MS SQL username and/or password not valid: %s" => "MS SQL username and/or password not valid: %s",
-"You need to enter either an existing account or the administrator." => "You need to enter either an existing account or the administrator.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB username and/or password not valid",
-"DB Error: \"%s\"" => "DB Error: \"%s\"",
-"Offending command was: \"%s\"" => "Offending command was: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB user '%s'@'localhost' exists already.",
-"Drop this user from MySQL/MariaDB" => "Drop this user from MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB user '%s'@'%%' already exists",
-"Drop this user from MySQL/MariaDB." => "Drop this user from MySQL/MariaDB.",
-"Oracle connection could not be established" => "Oracle connection could not be established",
-"Oracle username and/or password not valid" => "Oracle username and/or password not valid",
-"Offending command was: \"%s\", name: %s, password: %s" => "Offending command was: \"%s\", name: %s, password: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL username and/or password not valid",
-"Set an admin username." => "Set an admin username.",
-"Set an admin password." => "Set an admin password.",
-"Can't create or write into the data directory %s" => "Can't create or write into the data directory %s",
-"%s shared »%s« with you" => "%s shared \"%s\" with you",
-"Sharing %s failed, because the file does not exist" => "Sharing %s failed, because the file does not exist",
-"You are not allowed to share %s" => "You are not allowed to share %s",
-"Sharing %s failed, because the user %s is the item owner" => "Sharing %s failed, because the user %s is the item owner",
-"Sharing %s failed, because the user %s does not exist" => "Sharing %s failed, because the user %s does not exist",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of",
-"Sharing %s failed, because this item is already shared with %s" => "Sharing %s failed, because this item is already shared with %s",
-"Sharing %s failed, because the group %s does not exist" => "Sharing %s failed, because the group %s does not exist",
-"Sharing %s failed, because %s is not a member of the group %s" => "Sharing %s failed, because %s is not a member of the group %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "You need to provide a password to create a public link, only protected links are allowed",
-"Sharing %s failed, because sharing with links is not allowed" => "Sharing %s failed, because sharing with links is not allowed",
-"Share type %s is not valid for %s" => "Share type %s is not valid for %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Setting permissions for %s failed, because the permissions exceed permissions granted to %s",
-"Setting permissions for %s failed, because the item was not found" => "Setting permissions for %s failed, because the item was not found",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Cannot set expiry date. Shares cannot expire later than %s after they have been shared",
-"Cannot set expiration date. Expiration date is in the past" => "Cannot set expiry date. Expiry date is in the past",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Sharing backend %s must implement the interface OCP\\Share_Backend",
-"Sharing backend %s not found" => "Sharing backend %s not found",
-"Sharing backend for %s not found" => "Sharing backend for %s not found",
-"Sharing %s failed, because the user %s is the original sharer" => "Sharing %s failed, because the user %s is the original sharer",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Sharing %s failed, because the permissions exceed permissions granted to %s",
-"Sharing %s failed, because resharing is not allowed" => "Sharing %s failed, because resharing is not allowed",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Sharing %s failed, because the sharing backend for %s could not find its source",
-"Sharing %s failed, because the file could not be found in the file cache" => "Sharing %s failed, because the file could not be found in the file cache",
-"Could not find category \"%s\"" => "Could not find category \"%s\"",
-"seconds ago" => "seconds ago",
-"_%n minute ago_::_%n minutes ago_" => array("%n minute ago","%n minutes ago"),
-"_%n hour ago_::_%n hours ago_" => array("%n hour ago","%n hours ago"),
-"today" => "today",
-"yesterday" => "yesterday",
-"_%n day go_::_%n days ago_" => array("%n day go","%n days ago"),
-"last month" => "last month",
-"_%n month ago_::_%n months ago_" => array("%n month ago","%n months ago"),
-"last year" => "last year",
-"years ago" => "years ago",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
-"A valid username must be provided" => "A valid username must be provided",
-"A valid password must be provided" => "A valid password must be provided",
-"The username is already being used" => "The username is already being used",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "No database drivers (sqlite, mysql, or postgresql) installed.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s.",
-"Cannot write into \"config\" directory" => "Cannot write into \"config\" directory",
-"Cannot write into \"apps\" directory" => "Cannot write into \"apps\" directory",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file.",
-"Cannot create \"data\" directory (%s)" => "Cannot create \"data\" directory (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "This can usually be fixed by giving the webserver write access to the root directory .",
-"Setting locale to %s failed" => "Setting locale to %s failed",
-"Please install one of these locales on your system and restart your webserver." => "Please install one of these locales on your system and restart your webserver.",
-"Please ask your server administrator to install the module." => "Please ask your server administrator to install the module.",
-"PHP module %s not installed." => "PHP module %s not installed.",
-"PHP %s or higher is required." => "PHP %s or higher is required.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP modules have been installed, but they are still listed as missing?",
-"Please ask your server administrator to restart the web server." => "Please ask your server administrator to restart the web server.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 required",
-"Please upgrade your database version" => "Please upgrade your database version",
-"Error occurred while checking PostgreSQL version" => "Error occurred while checking PostgreSQL version",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Please change the permissions to 0770 so that the directory cannot be listed by other users.",
-"Data directory (%s) is readable by other users" => "Data directory (%s) is readable by other users",
-"Data directory (%s) is invalid" => "Data directory (%s) is invalid",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Please check that the data directory contains a file \".ocdata\" in its root.",
-"Could not obtain lock type %d on \"%s\"." => "Could not obtain lock type %d on \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/en_NZ.js b/lib/l10n/en_NZ.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/en_NZ.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/en_NZ.json b/lib/l10n/en_NZ.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/en_NZ.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/en_NZ.php b/lib/l10n/en_NZ.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/en_NZ.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/eo.js b/lib/l10n/eo.js
new file mode 100644
index 00000000000..ea912c1cca0
--- /dev/null
+++ b/lib/l10n/eo.js
@@ -0,0 +1,56 @@
+OC.L10N.register(
+ "lib",
+ {
+ "See %s" : "Vidi %s",
+ "Help" : "Helpo",
+ "Personal" : "Persona",
+ "Settings" : "Agordo",
+ "Users" : "Uzantoj",
+ "Admin" : "Administranto",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "La aplikaĵo “%s” ne povas instaliĝi ĉar ĝi ne kongruas kun ĉi tiu eldono de ownCloud.",
+ "Unknown filetype" : "Ne konatas dosiertipo",
+ "Invalid image" : "Ne validas bildo",
+ "web services under your control" : "TTT-servoj regataj de vi",
+ "App directory already exists" : "La dosierujo de la aplikaĵo jam ekzistas",
+ "App does not provide an info.xml file" : "La aplikaĵo ne provizas dosieron info.xml",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "La aplikaĵo ne povas instaliĝi ĉar ĝi ne kongruas kun ĉi tiu eldono de ownCloud",
+ "Application is not enabled" : "La aplikaĵo ne estas kapabligita",
+ "Authentication error" : "Aŭtentiga eraro",
+ "Token expired. Please reload page." : "Ĵetono eksvalidiĝis. Bonvolu reŝargi la paĝon.",
+ "Unknown user" : "Nekonata uzanto",
+ "%s enter the database username." : "%s enigu la uzantonomon de la datumbazo.",
+ "%s enter the database name." : "%s enigu la nomon de la datumbazo.",
+ "%s you may not use dots in the database name" : "%s vi ne povas uzi punktojn en la nomo de la datumbazo",
+ "MS SQL username and/or password not valid: %s" : "La uzantonomo de MS SQL aŭ la pasvorto ne validas: %s",
+ "MySQL/MariaDB username and/or password not valid" : "La MySQL/MariaDB-uzantonomo kajaŭ pasvorto ne validas.",
+ "DB Error: \"%s\"" : "Datumbaza eraro: “%s”",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "La MySQL/MariaDB-uzanto '%s'@'localhost' jam ekzistas.",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "La MySQL/MariaDB-uzanto '%s'@'%%' jam ekzistas",
+ "Oracle connection could not be established" : "Konekto al Oracle ne povas stariĝi",
+ "Oracle username and/or password not valid" : "La uzantonomo de Oracle aŭ la pasvorto ne validas",
+ "PostgreSQL username and/or password not valid" : "La uzantonomo de PostgreSQL aŭ la pasvorto ne validas",
+ "Set an admin username." : "Starigi administran uzantonomon.",
+ "Set an admin password." : "Starigi administran pasvorton.",
+ "%s shared »%s« with you" : "%s kunhavigis “%s” kun vi",
+ "You are not allowed to share %s" : "Vi ne permesatas kunhavigi %s",
+ "Could not find category \"%s\"" : "Ne troviĝis kategorio “%s”",
+ "seconds ago" : "sekundoj antaŭe",
+ "_%n minute ago_::_%n minutes ago_" : ["","antaŭ %n minutoj"],
+ "_%n hour ago_::_%n hours ago_" : ["","antaŭ %n horoj"],
+ "today" : "hodiaŭ",
+ "yesterday" : "hieraŭ",
+ "_%n day go_::_%n days ago_" : ["","antaŭ %n tagoj"],
+ "last month" : "lastamonate",
+ "_%n month ago_::_%n months ago_" : ["","antaŭ %n monatoj"],
+ "last year" : "lastajare",
+ "years ago" : "jaroj antaŭe",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Nur la jenaj signoj permesatas en uzantonomo: «a-z», «A-Z», «0-9» kaj «_.@-»",
+ "A valid username must be provided" : "Valida uzantonomo devas proviziĝi",
+ "A valid password must be provided" : "Valida pasvorto devas proviziĝi",
+ "The username is already being used" : "La uzantonomo jam uzatas",
+ "Please ask your server administrator to install the module." : "Bonvolu peti vian sistemadministranton, ke ĝi instalu la modulon.",
+ "PHP module %s not installed." : "La PHP-modulo %s ne instalitas.",
+ "PHP %s or higher is required." : "PHP %s aŭ pli alta necesas.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 necesas"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/eo.json b/lib/l10n/eo.json
new file mode 100644
index 00000000000..7e1ed7bb813
--- /dev/null
+++ b/lib/l10n/eo.json
@@ -0,0 +1,54 @@
+{ "translations": {
+ "See %s" : "Vidi %s",
+ "Help" : "Helpo",
+ "Personal" : "Persona",
+ "Settings" : "Agordo",
+ "Users" : "Uzantoj",
+ "Admin" : "Administranto",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "La aplikaĵo “%s” ne povas instaliĝi ĉar ĝi ne kongruas kun ĉi tiu eldono de ownCloud.",
+ "Unknown filetype" : "Ne konatas dosiertipo",
+ "Invalid image" : "Ne validas bildo",
+ "web services under your control" : "TTT-servoj regataj de vi",
+ "App directory already exists" : "La dosierujo de la aplikaĵo jam ekzistas",
+ "App does not provide an info.xml file" : "La aplikaĵo ne provizas dosieron info.xml",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "La aplikaĵo ne povas instaliĝi ĉar ĝi ne kongruas kun ĉi tiu eldono de ownCloud",
+ "Application is not enabled" : "La aplikaĵo ne estas kapabligita",
+ "Authentication error" : "Aŭtentiga eraro",
+ "Token expired. Please reload page." : "Ĵetono eksvalidiĝis. Bonvolu reŝargi la paĝon.",
+ "Unknown user" : "Nekonata uzanto",
+ "%s enter the database username." : "%s enigu la uzantonomon de la datumbazo.",
+ "%s enter the database name." : "%s enigu la nomon de la datumbazo.",
+ "%s you may not use dots in the database name" : "%s vi ne povas uzi punktojn en la nomo de la datumbazo",
+ "MS SQL username and/or password not valid: %s" : "La uzantonomo de MS SQL aŭ la pasvorto ne validas: %s",
+ "MySQL/MariaDB username and/or password not valid" : "La MySQL/MariaDB-uzantonomo kajaŭ pasvorto ne validas.",
+ "DB Error: \"%s\"" : "Datumbaza eraro: “%s”",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "La MySQL/MariaDB-uzanto '%s'@'localhost' jam ekzistas.",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "La MySQL/MariaDB-uzanto '%s'@'%%' jam ekzistas",
+ "Oracle connection could not be established" : "Konekto al Oracle ne povas stariĝi",
+ "Oracle username and/or password not valid" : "La uzantonomo de Oracle aŭ la pasvorto ne validas",
+ "PostgreSQL username and/or password not valid" : "La uzantonomo de PostgreSQL aŭ la pasvorto ne validas",
+ "Set an admin username." : "Starigi administran uzantonomon.",
+ "Set an admin password." : "Starigi administran pasvorton.",
+ "%s shared »%s« with you" : "%s kunhavigis “%s” kun vi",
+ "You are not allowed to share %s" : "Vi ne permesatas kunhavigi %s",
+ "Could not find category \"%s\"" : "Ne troviĝis kategorio “%s”",
+ "seconds ago" : "sekundoj antaŭe",
+ "_%n minute ago_::_%n minutes ago_" : ["","antaŭ %n minutoj"],
+ "_%n hour ago_::_%n hours ago_" : ["","antaŭ %n horoj"],
+ "today" : "hodiaŭ",
+ "yesterday" : "hieraŭ",
+ "_%n day go_::_%n days ago_" : ["","antaŭ %n tagoj"],
+ "last month" : "lastamonate",
+ "_%n month ago_::_%n months ago_" : ["","antaŭ %n monatoj"],
+ "last year" : "lastajare",
+ "years ago" : "jaroj antaŭe",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Nur la jenaj signoj permesatas en uzantonomo: «a-z», «A-Z», «0-9» kaj «_.@-»",
+ "A valid username must be provided" : "Valida uzantonomo devas proviziĝi",
+ "A valid password must be provided" : "Valida pasvorto devas proviziĝi",
+ "The username is already being used" : "La uzantonomo jam uzatas",
+ "Please ask your server administrator to install the module." : "Bonvolu peti vian sistemadministranton, ke ĝi instalu la modulon.",
+ "PHP module %s not installed." : "La PHP-modulo %s ne instalitas.",
+ "PHP %s or higher is required." : "PHP %s aŭ pli alta necesas.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 necesas"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/eo.php b/lib/l10n/eo.php
deleted file mode 100644
index cea288bfe06..00000000000
--- a/lib/l10n/eo.php
+++ /dev/null
@@ -1,55 +0,0 @@
- "Vidi %s",
-"Help" => "Helpo",
-"Personal" => "Persona",
-"Settings" => "Agordo",
-"Users" => "Uzantoj",
-"Admin" => "Administranto",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "La aplikaĵo “%s” ne povas instaliĝi ĉar ĝi ne kongruas kun ĉi tiu eldono de ownCloud.",
-"Unknown filetype" => "Ne konatas dosiertipo",
-"Invalid image" => "Ne validas bildo",
-"web services under your control" => "TTT-servoj regataj de vi",
-"App directory already exists" => "La dosierujo de la aplikaĵo jam ekzistas",
-"App does not provide an info.xml file" => "La aplikaĵo ne provizas dosieron info.xml",
-"App can't be installed because it is not compatible with this version of ownCloud" => "La aplikaĵo ne povas instaliĝi ĉar ĝi ne kongruas kun ĉi tiu eldono de ownCloud",
-"Application is not enabled" => "La aplikaĵo ne estas kapabligita",
-"Authentication error" => "Aŭtentiga eraro",
-"Token expired. Please reload page." => "Ĵetono eksvalidiĝis. Bonvolu reŝargi la paĝon.",
-"Unknown user" => "Nekonata uzanto",
-"%s enter the database username." => "%s enigu la uzantonomon de la datumbazo.",
-"%s enter the database name." => "%s enigu la nomon de la datumbazo.",
-"%s you may not use dots in the database name" => "%s vi ne povas uzi punktojn en la nomo de la datumbazo",
-"MS SQL username and/or password not valid: %s" => "La uzantonomo de MS SQL aŭ la pasvorto ne validas: %s",
-"MySQL/MariaDB username and/or password not valid" => "La MySQL/MariaDB-uzantonomo kajaŭ pasvorto ne validas.",
-"DB Error: \"%s\"" => "Datumbaza eraro: “%s”",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "La MySQL/MariaDB-uzanto '%s'@'localhost' jam ekzistas.",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "La MySQL/MariaDB-uzanto '%s'@'%%' jam ekzistas",
-"Oracle connection could not be established" => "Konekto al Oracle ne povas stariĝi",
-"Oracle username and/or password not valid" => "La uzantonomo de Oracle aŭ la pasvorto ne validas",
-"PostgreSQL username and/or password not valid" => "La uzantonomo de PostgreSQL aŭ la pasvorto ne validas",
-"Set an admin username." => "Starigi administran uzantonomon.",
-"Set an admin password." => "Starigi administran pasvorton.",
-"%s shared »%s« with you" => "%s kunhavigis “%s” kun vi",
-"You are not allowed to share %s" => "Vi ne permesatas kunhavigi %s",
-"Could not find category \"%s\"" => "Ne troviĝis kategorio “%s”",
-"seconds ago" => "sekundoj antaŭe",
-"_%n minute ago_::_%n minutes ago_" => array("","antaŭ %n minutoj"),
-"_%n hour ago_::_%n hours ago_" => array("","antaŭ %n horoj"),
-"today" => "hodiaŭ",
-"yesterday" => "hieraŭ",
-"_%n day go_::_%n days ago_" => array("","antaŭ %n tagoj"),
-"last month" => "lastamonate",
-"_%n month ago_::_%n months ago_" => array("","antaŭ %n monatoj"),
-"last year" => "lastajare",
-"years ago" => "jaroj antaŭe",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Nur la jenaj signoj permesatas en uzantonomo: «a-z», «A-Z», «0-9» kaj «_.@-»",
-"A valid username must be provided" => "Valida uzantonomo devas proviziĝi",
-"A valid password must be provided" => "Valida pasvorto devas proviziĝi",
-"The username is already being used" => "La uzantonomo jam uzatas",
-"Please ask your server administrator to install the module." => "Bonvolu peti vian sistemadministranton, ke ĝi instalu la modulon.",
-"PHP module %s not installed." => "La PHP-modulo %s ne instalitas.",
-"PHP %s or higher is required." => "PHP %s aŭ pli alta necesas.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 necesas"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es.js b/lib/l10n/es.js
new file mode 100644
index 00000000000..9cdd328e974
--- /dev/null
+++ b/lib/l10n/es.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio de Configuración!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Esto puede ser facilmente solucionado, dando permisos de escritura al directorio de configuración en el servidor Web",
+ "See %s" : "Mirar %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto puede ser facilmente solucionado, %sdando permisos de escritura al directorio de configuración en el servidor Web%s.",
+ "Sample configuration detected" : "Ejemplo de configuración detectado",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que el ejemplo de configuración ha sido copiado. Esto puede arruinar su instalación y es un caso para el que no se brinda soporte. Lea la documentación antes de hacer cambios en config.php",
+ "Help" : "Ayuda",
+ "Personal" : "Personal",
+ "Settings" : "Ajustes",
+ "Users" : "Usuarios",
+ "Admin" : "Administración",
+ "Recommended" : "Recomendado",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "La aplicación \\\"%s\\\" no se puede instalar porque no es compatible con esta versión de ownCloud.",
+ "No app name specified" : "No se ha especificado nombre de la aplicación",
+ "Unknown filetype" : "Tipo de archivo desconocido",
+ "Invalid image" : "Imagen inválida",
+ "Database Error" : "Error en la base de datos",
+ "Please contact your system administrator." : "Por favor contacte al administrador del sistema.",
+ "web services under your control" : "Servicios web bajo su control",
+ "App directory already exists" : "El directorio de la aplicación ya existe",
+ "Can't create app folder. Please fix permissions. %s" : "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s",
+ "No source specified when installing app" : "No se ha especificado origen cuando se ha instalado la aplicación",
+ "No href specified when installing app from http" : "No href especificado cuando se ha instalado la aplicación",
+ "No path specified when installing app from local file" : "Sin path especificado cuando se ha instalado la aplicación desde el fichero local",
+ "Archives of type %s are not supported" : "Ficheros de tipo %s no son soportados",
+ "Failed to open archive when installing app" : "Fallo de apertura de fichero mientras se instala la aplicación",
+ "App does not provide an info.xml file" : "La aplicación no suministra un fichero info.xml",
+ "App can't be installed because of not allowed code in the App" : "La aplicación no puede ser instalada por tener código no autorizado en la aplicación",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "La aplicación no se puede instalar porque no es compatible con esta versión de ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "La aplicación no se puede instalar porque contiene la etiqueta\n\ntrue\n \nque no está permitida para aplicaciones no distribuidas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "La aplicación no puede ser instalada por que la versión en info.xml/version no es la misma que la establecida en la app store",
+ "Application is not enabled" : "La aplicación no está habilitada",
+ "Authentication error" : "Error de autenticación",
+ "Token expired. Please reload page." : "Token expirado. Por favor, recarga la página.",
+ "Unknown user" : "Usuario desconocido",
+ "%s enter the database username." : "%s ingresar el usuario de la base de datos.",
+ "%s enter the database name." : "%s ingresar el nombre de la base de datos",
+ "%s you may not use dots in the database name" : "%s puede utilizar puntos en el nombre de la base de datos",
+ "MS SQL username and/or password not valid: %s" : "Usuario y/o contraseña de MS SQL no válidos: %s",
+ "You need to enter either an existing account or the administrator." : "Tiene que ingresar una cuenta existente o la del administrador.",
+ "MySQL/MariaDB username and/or password not valid" : "Nombre de usuario y/o contraseña de MySQL/MariaDB inválidos",
+ "DB Error: \"%s\"" : "Error BD: \"%s\"",
+ "Offending command was: \"%s\"" : "Comando infractor: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "El usuario de MySQL/MariaDB '%s'@'localhost' ya existe.",
+ "Drop this user from MySQL/MariaDB" : "Eliminar este usuario de MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "El usuario de MySQL/MariaDB '%s'@'%%' ya existe",
+ "Drop this user from MySQL/MariaDB." : "Eliminar este usuario de MySQL/MariaDB.",
+ "Oracle connection could not be established" : "No se pudo establecer la conexión a Oracle",
+ "Oracle username and/or password not valid" : "Usuario y/o contraseña de Oracle no válidos",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Comando infractor: \"%s\", nombre: %s, contraseña: %s",
+ "PostgreSQL username and/or password not valid" : "Usuario y/o contraseña de PostgreSQL no válidos",
+ "Set an admin username." : "Configurar un nombre de usuario del administrador",
+ "Set an admin password." : "Configurar la contraseña del administrador.",
+ "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s",
+ "%s shared »%s« with you" : "%s ha compartido »%s« contigo",
+ "Sharing %s failed, because the file does not exist" : "No se pudo compartir %s porque el archivo no existe",
+ "You are not allowed to share %s" : "Usted no está autorizado para compartir %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Compartiendo %s ha fallado, ya que el usuario %s es el dueño del elemento",
+ "Sharing %s failed, because the user %s does not exist" : "Compartiendo %s ha fallado, ya que el usuario %s no existe",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Compartiendo %s ha fallado, ya que el usuario %s no es miembro de algún grupo que %s es miembro",
+ "Sharing %s failed, because this item is already shared with %s" : "Compartiendo %s ha fallado, ya que este elemento ya está compartido con %s",
+ "Sharing %s failed, because the group %s does not exist" : "Compartiendo %s ha fallado, ya que el grupo %s no existe",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Compartiendo %s ha fallado, ya que %s no es miembro del grupo %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Es necesario definir una contraseña para crear un enlace publico. Solo los enlaces protegidos están permitidos",
+ "Sharing %s failed, because sharing with links is not allowed" : "Compartiendo %s ha fallado, ya que compartir con enlaces no está permitido",
+ "Share type %s is not valid for %s" : "Compartir tipo %s no es válido para %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Configuración de permisos para %s ha fallado, ya que los permisos superan los permisos dados a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Configuración de permisos para %s ha fallado, ya que el elemento no fue encontrado",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No se puede fijar fecha de caducidad. Archivos compartidos no pueden caducar luego de %s de ser compartidos",
+ "Cannot set expiration date. Expiration date is in the past" : "No se puede fijar la fecha de caducidad. La fecha de caducidad está en el pasado.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El motor compartido %s debe implementar la interfaz OCP\\Share_Backend",
+ "Sharing backend %s not found" : "El motor compartido %s no se ha encontrado",
+ "Sharing backend for %s not found" : "Motor compartido para %s no encontrado",
+ "Sharing %s failed, because the user %s is the original sharer" : "Compartiendo %s ha fallado, ya que el usuario %s es el compartidor original",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Compartiendo %s ha fallado, ya que los permisos superan los permisos otorgados a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Compartiendo %s ha fallado, ya que volver a compartir no está permitido",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartir %s falló porque el motor compartido para %s podría no encontrar su origen",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Compartiendo %s ha fallado, ya que el archivo no pudo ser encontrado en el cache de archivo",
+ "Could not find category \"%s\"" : "No puede encontrar la categoria \"%s\"",
+ "seconds ago" : "hace segundos",
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
+ "last month" : "mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "año pasado",
+ "years ago" : "hace años",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Solo los siguientes caracteres están permitidos en un nombre de usuario: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
+ "A valid password must be provided" : "Se debe proporcionar una contraseña válida",
+ "The username is already being used" : "El nombre de usuario ya está en uso",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "No están instalados los drivers de BBDD (sqlite, mysql, o postgresql)",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos usualmente pueden ser solucionados, %sdando permisos de escritura al directorio de configuración en el servidor Web%s.",
+ "Cannot write into \"config\" directory" : "No se puede escribir el el directorio de configuración",
+ "Cannot write into \"apps\" directory" : "No se puede escribir en el directorio de \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto puede ser facilmente solucionado, %sdando permisos de escritura al servidor Web en el directorio%s de apps o deshabilitando la tienda de apps en el archivo de configuración.",
+ "Cannot create \"data\" directory (%s)" : "No puedo crear del directorio \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Esto puede ser solucionado dando al servidor web permisos de escritura en el directorio raíz .",
+ "Setting locale to %s failed" : "Falló la activación del idioma %s ",
+ "Please install one of these locales on your system and restart your webserver." : "Instale uno de estos idiomas en su sistema y reinicie su servidor web.",
+ "Please ask your server administrator to install the module." : "Consulte al administrador de su servidor para instalar el módulo.",
+ "PHP module %s not installed." : "El ódulo PHP %s no está instalado.",
+ "PHP %s or higher is required." : "Se requiere PHP %s o superior.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Consulte a su administrador del servidor para actualizar PHP a la versión más reciente. Su versión de PHP ya no es apoyado por ownCloud y la comunidad PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe mode está habilitado. ownCloud requiere que se desactive para que funcione correctamente.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Modo Seguro de PHP es un entorno en desuso y en su mayoría inútil que debe ser desactivada. Contacte al administrador del servidor para desactivarlo en php.ini o en la configuración del servidor web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes está habilitado. ownCloud requiere que se desactive para que funcione correctamente.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes es un entorno en desuso y en su mayoría inútil que debe ser desactivada. Consulte a su administrador del servidor para desactivarlo en php.ini o en la configuración del servidor web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Los módulos PHP se han instalado, pero aparecen listados como si faltaran",
+ "Please ask your server administrator to restart the web server." : "Consulte al administrador de su servidor para reiniciar el servidor web.",
+ "PostgreSQL >= 9 required" : "PostgreSQL 9 o superior requerido.",
+ "Please upgrade your database version" : "Actualice su versión de base de datos.",
+ "Error occurred while checking PostgreSQL version" : "Error ocurrido mientras se chequeaba la versión de PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, asegúrese de que tiene PostgreSQL 9 o superior, o revise los registros para obtener más información acerca del error.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambie los permisos a 0770 para que el directorio no se pueda mostrar para otros usuarios.",
+ "Data directory (%s) is readable by other users" : "Directorio de datos (%s) se puede leer por otros usuarios.",
+ "Data directory (%s) is invalid" : "Directorio de datos (%s) no es válida",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifique que el directorio de datos contiene un archivo \".ocdata\" en su directorio raíz.",
+ "Could not obtain lock type %d on \"%s\"." : "No se pudo realizar el bloqueo %d en \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es.json b/lib/l10n/es.json
new file mode 100644
index 00000000000..c14b03c15df
--- /dev/null
+++ b/lib/l10n/es.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio de Configuración!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Esto puede ser facilmente solucionado, dando permisos de escritura al directorio de configuración en el servidor Web",
+ "See %s" : "Mirar %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto puede ser facilmente solucionado, %sdando permisos de escritura al directorio de configuración en el servidor Web%s.",
+ "Sample configuration detected" : "Ejemplo de configuración detectado",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que el ejemplo de configuración ha sido copiado. Esto puede arruinar su instalación y es un caso para el que no se brinda soporte. Lea la documentación antes de hacer cambios en config.php",
+ "Help" : "Ayuda",
+ "Personal" : "Personal",
+ "Settings" : "Ajustes",
+ "Users" : "Usuarios",
+ "Admin" : "Administración",
+ "Recommended" : "Recomendado",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "La aplicación \\\"%s\\\" no se puede instalar porque no es compatible con esta versión de ownCloud.",
+ "No app name specified" : "No se ha especificado nombre de la aplicación",
+ "Unknown filetype" : "Tipo de archivo desconocido",
+ "Invalid image" : "Imagen inválida",
+ "Database Error" : "Error en la base de datos",
+ "Please contact your system administrator." : "Por favor contacte al administrador del sistema.",
+ "web services under your control" : "Servicios web bajo su control",
+ "App directory already exists" : "El directorio de la aplicación ya existe",
+ "Can't create app folder. Please fix permissions. %s" : "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s",
+ "No source specified when installing app" : "No se ha especificado origen cuando se ha instalado la aplicación",
+ "No href specified when installing app from http" : "No href especificado cuando se ha instalado la aplicación",
+ "No path specified when installing app from local file" : "Sin path especificado cuando se ha instalado la aplicación desde el fichero local",
+ "Archives of type %s are not supported" : "Ficheros de tipo %s no son soportados",
+ "Failed to open archive when installing app" : "Fallo de apertura de fichero mientras se instala la aplicación",
+ "App does not provide an info.xml file" : "La aplicación no suministra un fichero info.xml",
+ "App can't be installed because of not allowed code in the App" : "La aplicación no puede ser instalada por tener código no autorizado en la aplicación",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "La aplicación no se puede instalar porque no es compatible con esta versión de ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "La aplicación no se puede instalar porque contiene la etiqueta\n\ntrue\n \nque no está permitida para aplicaciones no distribuidas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "La aplicación no puede ser instalada por que la versión en info.xml/version no es la misma que la establecida en la app store",
+ "Application is not enabled" : "La aplicación no está habilitada",
+ "Authentication error" : "Error de autenticación",
+ "Token expired. Please reload page." : "Token expirado. Por favor, recarga la página.",
+ "Unknown user" : "Usuario desconocido",
+ "%s enter the database username." : "%s ingresar el usuario de la base de datos.",
+ "%s enter the database name." : "%s ingresar el nombre de la base de datos",
+ "%s you may not use dots in the database name" : "%s puede utilizar puntos en el nombre de la base de datos",
+ "MS SQL username and/or password not valid: %s" : "Usuario y/o contraseña de MS SQL no válidos: %s",
+ "You need to enter either an existing account or the administrator." : "Tiene que ingresar una cuenta existente o la del administrador.",
+ "MySQL/MariaDB username and/or password not valid" : "Nombre de usuario y/o contraseña de MySQL/MariaDB inválidos",
+ "DB Error: \"%s\"" : "Error BD: \"%s\"",
+ "Offending command was: \"%s\"" : "Comando infractor: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "El usuario de MySQL/MariaDB '%s'@'localhost' ya existe.",
+ "Drop this user from MySQL/MariaDB" : "Eliminar este usuario de MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "El usuario de MySQL/MariaDB '%s'@'%%' ya existe",
+ "Drop this user from MySQL/MariaDB." : "Eliminar este usuario de MySQL/MariaDB.",
+ "Oracle connection could not be established" : "No se pudo establecer la conexión a Oracle",
+ "Oracle username and/or password not valid" : "Usuario y/o contraseña de Oracle no válidos",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Comando infractor: \"%s\", nombre: %s, contraseña: %s",
+ "PostgreSQL username and/or password not valid" : "Usuario y/o contraseña de PostgreSQL no válidos",
+ "Set an admin username." : "Configurar un nombre de usuario del administrador",
+ "Set an admin password." : "Configurar la contraseña del administrador.",
+ "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s",
+ "%s shared »%s« with you" : "%s ha compartido »%s« contigo",
+ "Sharing %s failed, because the file does not exist" : "No se pudo compartir %s porque el archivo no existe",
+ "You are not allowed to share %s" : "Usted no está autorizado para compartir %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Compartiendo %s ha fallado, ya que el usuario %s es el dueño del elemento",
+ "Sharing %s failed, because the user %s does not exist" : "Compartiendo %s ha fallado, ya que el usuario %s no existe",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Compartiendo %s ha fallado, ya que el usuario %s no es miembro de algún grupo que %s es miembro",
+ "Sharing %s failed, because this item is already shared with %s" : "Compartiendo %s ha fallado, ya que este elemento ya está compartido con %s",
+ "Sharing %s failed, because the group %s does not exist" : "Compartiendo %s ha fallado, ya que el grupo %s no existe",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Compartiendo %s ha fallado, ya que %s no es miembro del grupo %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Es necesario definir una contraseña para crear un enlace publico. Solo los enlaces protegidos están permitidos",
+ "Sharing %s failed, because sharing with links is not allowed" : "Compartiendo %s ha fallado, ya que compartir con enlaces no está permitido",
+ "Share type %s is not valid for %s" : "Compartir tipo %s no es válido para %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Configuración de permisos para %s ha fallado, ya que los permisos superan los permisos dados a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Configuración de permisos para %s ha fallado, ya que el elemento no fue encontrado",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No se puede fijar fecha de caducidad. Archivos compartidos no pueden caducar luego de %s de ser compartidos",
+ "Cannot set expiration date. Expiration date is in the past" : "No se puede fijar la fecha de caducidad. La fecha de caducidad está en el pasado.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El motor compartido %s debe implementar la interfaz OCP\\Share_Backend",
+ "Sharing backend %s not found" : "El motor compartido %s no se ha encontrado",
+ "Sharing backend for %s not found" : "Motor compartido para %s no encontrado",
+ "Sharing %s failed, because the user %s is the original sharer" : "Compartiendo %s ha fallado, ya que el usuario %s es el compartidor original",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Compartiendo %s ha fallado, ya que los permisos superan los permisos otorgados a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Compartiendo %s ha fallado, ya que volver a compartir no está permitido",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartir %s falló porque el motor compartido para %s podría no encontrar su origen",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Compartiendo %s ha fallado, ya que el archivo no pudo ser encontrado en el cache de archivo",
+ "Could not find category \"%s\"" : "No puede encontrar la categoria \"%s\"",
+ "seconds ago" : "hace segundos",
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
+ "last month" : "mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "año pasado",
+ "years ago" : "hace años",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Solo los siguientes caracteres están permitidos en un nombre de usuario: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
+ "A valid password must be provided" : "Se debe proporcionar una contraseña válida",
+ "The username is already being used" : "El nombre de usuario ya está en uso",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "No están instalados los drivers de BBDD (sqlite, mysql, o postgresql)",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos usualmente pueden ser solucionados, %sdando permisos de escritura al directorio de configuración en el servidor Web%s.",
+ "Cannot write into \"config\" directory" : "No se puede escribir el el directorio de configuración",
+ "Cannot write into \"apps\" directory" : "No se puede escribir en el directorio de \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto puede ser facilmente solucionado, %sdando permisos de escritura al servidor Web en el directorio%s de apps o deshabilitando la tienda de apps en el archivo de configuración.",
+ "Cannot create \"data\" directory (%s)" : "No puedo crear del directorio \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Esto puede ser solucionado dando al servidor web permisos de escritura en el directorio raíz .",
+ "Setting locale to %s failed" : "Falló la activación del idioma %s ",
+ "Please install one of these locales on your system and restart your webserver." : "Instale uno de estos idiomas en su sistema y reinicie su servidor web.",
+ "Please ask your server administrator to install the module." : "Consulte al administrador de su servidor para instalar el módulo.",
+ "PHP module %s not installed." : "El ódulo PHP %s no está instalado.",
+ "PHP %s or higher is required." : "Se requiere PHP %s o superior.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Consulte a su administrador del servidor para actualizar PHP a la versión más reciente. Su versión de PHP ya no es apoyado por ownCloud y la comunidad PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe mode está habilitado. ownCloud requiere que se desactive para que funcione correctamente.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Modo Seguro de PHP es un entorno en desuso y en su mayoría inútil que debe ser desactivada. Contacte al administrador del servidor para desactivarlo en php.ini o en la configuración del servidor web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes está habilitado. ownCloud requiere que se desactive para que funcione correctamente.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes es un entorno en desuso y en su mayoría inútil que debe ser desactivada. Consulte a su administrador del servidor para desactivarlo en php.ini o en la configuración del servidor web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Los módulos PHP se han instalado, pero aparecen listados como si faltaran",
+ "Please ask your server administrator to restart the web server." : "Consulte al administrador de su servidor para reiniciar el servidor web.",
+ "PostgreSQL >= 9 required" : "PostgreSQL 9 o superior requerido.",
+ "Please upgrade your database version" : "Actualice su versión de base de datos.",
+ "Error occurred while checking PostgreSQL version" : "Error ocurrido mientras se chequeaba la versión de PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, asegúrese de que tiene PostgreSQL 9 o superior, o revise los registros para obtener más información acerca del error.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambie los permisos a 0770 para que el directorio no se pueda mostrar para otros usuarios.",
+ "Data directory (%s) is readable by other users" : "Directorio de datos (%s) se puede leer por otros usuarios.",
+ "Data directory (%s) is invalid" : "Directorio de datos (%s) no es válida",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifique que el directorio de datos contiene un archivo \".ocdata\" en su directorio raíz.",
+ "Could not obtain lock type %d on \"%s\"." : "No se pudo realizar el bloqueo %d en \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es.php b/lib/l10n/es.php
deleted file mode 100644
index 04253fc7b0c..00000000000
--- a/lib/l10n/es.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "¡No se puede escribir en el directorio de Configuración!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Esto puede ser facilmente solucionado, dando permisos de escritura al directorio de configuración en el servidor Web",
-"See %s" => "Mirar %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Esto puede ser facilmente solucionado, %sdando permisos de escritura al directorio de configuración en el servidor Web%s.",
-"Sample configuration detected" => "Ejemplo de configuración detectado",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Se ha detectado que el ejemplo de configuración ha sido copiado. Esto puede arruinar su instalación y es un caso para el que no se brinda soporte. Lea la documentación antes de hacer cambios en config.php",
-"Help" => "Ayuda",
-"Personal" => "Personal",
-"Settings" => "Ajustes",
-"Users" => "Usuarios",
-"Admin" => "Administración",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "La aplicación \\\"%s\\\" no se puede instalar porque no es compatible con esta versión de ownCloud.",
-"No app name specified" => "No se ha especificado nombre de la aplicación",
-"Unknown filetype" => "Tipo de archivo desconocido",
-"Invalid image" => "Imagen inválida",
-"web services under your control" => "Servicios web bajo su control",
-"App directory already exists" => "El directorio de la aplicación ya existe",
-"Can't create app folder. Please fix permissions. %s" => "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s",
-"No source specified when installing app" => "No se ha especificado origen cuando se ha instalado la aplicación",
-"No href specified when installing app from http" => "No href especificado cuando se ha instalado la aplicación",
-"No path specified when installing app from local file" => "Sin path especificado cuando se ha instalado la aplicación desde el fichero local",
-"Archives of type %s are not supported" => "Ficheros de tipo %s no son soportados",
-"Failed to open archive when installing app" => "Fallo de apertura de fichero mientras se instala la aplicación",
-"App does not provide an info.xml file" => "La aplicación no suministra un fichero info.xml",
-"App can't be installed because of not allowed code in the App" => "La aplicación no puede ser instalada por tener código no autorizado en la aplicación",
-"App can't be installed because it is not compatible with this version of ownCloud" => "La aplicación no se puede instalar porque no es compatible con esta versión de ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "La aplicación no se puede instalar porque contiene la etiqueta\n\ntrue\n \nque no está permitida para aplicaciones no distribuidas",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "La aplicación no puede ser instalada por que la versión en info.xml/version no es la misma que la establecida en la app store",
-"Application is not enabled" => "La aplicación no está habilitada",
-"Authentication error" => "Error de autenticación",
-"Token expired. Please reload page." => "Token expirado. Por favor, recarga la página.",
-"Unknown user" => "Usuario desconocido",
-"%s enter the database username." => "%s ingresar el usuario de la base de datos.",
-"%s enter the database name." => "%s ingresar el nombre de la base de datos",
-"%s you may not use dots in the database name" => "%s puede utilizar puntos en el nombre de la base de datos",
-"MS SQL username and/or password not valid: %s" => "Usuario y/o contraseña de MS SQL no válidos: %s",
-"You need to enter either an existing account or the administrator." => "Tiene que ingresar una cuenta existente o la del administrador.",
-"MySQL/MariaDB username and/or password not valid" => "Nombre de usuario y/o contraseña de MySQL/MariaDB inválidos",
-"DB Error: \"%s\"" => "Error BD: \"%s\"",
-"Offending command was: \"%s\"" => "Comando infractor: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "El usuario de MySQL/MariaDB '%s'@'localhost' ya existe.",
-"Drop this user from MySQL/MariaDB" => "Eliminar este usuario de MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "El usuario de MySQL/MariaDB '%s'@'%%' ya existe",
-"Drop this user from MySQL/MariaDB." => "Eliminar este usuario de MySQL/MariaDB.",
-"Oracle connection could not be established" => "No se pudo establecer la conexión a Oracle",
-"Oracle username and/or password not valid" => "Usuario y/o contraseña de Oracle no válidos",
-"Offending command was: \"%s\", name: %s, password: %s" => "Comando infractor: \"%s\", nombre: %s, contraseña: %s",
-"PostgreSQL username and/or password not valid" => "Usuario y/o contraseña de PostgreSQL no válidos",
-"Set an admin username." => "Configurar un nombre de usuario del administrador",
-"Set an admin password." => "Configurar la contraseña del administrador.",
-"Can't create or write into the data directory %s" => "No es posible crear o escribir en el directorio de datos %s",
-"%s shared »%s« with you" => "%s ha compartido »%s« contigo",
-"Sharing %s failed, because the file does not exist" => "No se pudo compartir %s porque el archivo no existe",
-"You are not allowed to share %s" => "Usted no está autorizado para compartir %s",
-"Sharing %s failed, because the user %s is the item owner" => "Compartiendo %s ha fallado, ya que el usuario %s es el dueño del elemento",
-"Sharing %s failed, because the user %s does not exist" => "Compartiendo %s ha fallado, ya que el usuario %s no existe",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Compartiendo %s ha fallado, ya que el usuario %s no es miembro de algún grupo que %s es miembro",
-"Sharing %s failed, because this item is already shared with %s" => "Compartiendo %s ha fallado, ya que este elemento ya está compartido con %s",
-"Sharing %s failed, because the group %s does not exist" => "Compartiendo %s ha fallado, ya que el grupo %s no existe",
-"Sharing %s failed, because %s is not a member of the group %s" => "Compartiendo %s ha fallado, ya que %s no es miembro del grupo %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Es necesario definir una contraseña para crear un enlace publico. Solo los enlaces protegidos están permitidos",
-"Sharing %s failed, because sharing with links is not allowed" => "Compartiendo %s ha fallado, ya que compartir con enlaces no está permitido",
-"Share type %s is not valid for %s" => "Compartir tipo %s no es válido para %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Configuración de permisos para %s ha fallado, ya que los permisos superan los permisos dados a %s",
-"Setting permissions for %s failed, because the item was not found" => "Configuración de permisos para %s ha fallado, ya que el elemento no fue encontrado",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "No se puede fijar fecha de caducidad. Archivos compartidos no pueden caducar luego de %s de ser compartidos",
-"Cannot set expiration date. Expiration date is in the past" => "No se puede fijar la fecha de caducidad. La fecha de caducidad está en el pasado.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "El motor compartido %s debe implementar la interfaz OCP\\Share_Backend",
-"Sharing backend %s not found" => "El motor compartido %s no se ha encontrado",
-"Sharing backend for %s not found" => "Motor compartido para %s no encontrado",
-"Sharing %s failed, because the user %s is the original sharer" => "Compartiendo %s ha fallado, ya que el usuario %s es el compartidor original",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Compartiendo %s ha fallado, ya que los permisos superan los permisos otorgados a %s",
-"Sharing %s failed, because resharing is not allowed" => "Compartiendo %s ha fallado, ya que volver a compartir no está permitido",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Compartir %s falló porque el motor compartido para %s podría no encontrar su origen",
-"Sharing %s failed, because the file could not be found in the file cache" => "Compartiendo %s ha fallado, ya que el archivo no pudo ser encontrado en el cache de archivo",
-"Could not find category \"%s\"" => "No puede encontrar la categoria \"%s\"",
-"seconds ago" => "hace segundos",
-"_%n minute ago_::_%n minutes ago_" => array("Hace %n minuto","Hace %n minutos"),
-"_%n hour ago_::_%n hours ago_" => array("Hace %n hora","Hace %n horas"),
-"today" => "hoy",
-"yesterday" => "ayer",
-"_%n day go_::_%n days ago_" => array("Hace %n día","Hace %n días"),
-"last month" => "mes pasado",
-"_%n month ago_::_%n months ago_" => array("Hace %n mes","Hace %n meses"),
-"last year" => "año pasado",
-"years ago" => "hace años",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Solo los siguientes caracteres están permitidos en un nombre de usuario: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
-"A valid username must be provided" => "Se debe proporcionar un nombre de usuario válido",
-"A valid password must be provided" => "Se debe proporcionar una contraseña válida",
-"The username is already being used" => "El nombre de usuario ya está en uso",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "No están instalados los drivers de BBDD (sqlite, mysql, o postgresql)",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Los permisos usualmente pueden ser solucionados, %sdando permisos de escritura al directorio de configuración en el servidor Web%s.",
-"Cannot write into \"config\" directory" => "No se puede escribir el el directorio de configuración",
-"Cannot write into \"apps\" directory" => "No se puede escribir en el directorio de \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Esto puede ser facilmente solucionado, %sdando permisos de escritura al servidor Web en el directorio%s de apps o deshabilitando la tienda de apps en el archivo de configuración.",
-"Cannot create \"data\" directory (%s)" => "No puedo crear del directorio \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Esto puede ser solucionado dando al servidor web permisos de escritura en el directorio raíz .",
-"Setting locale to %s failed" => "Falló la activación del idioma %s ",
-"Please install one of these locales on your system and restart your webserver." => "Instale uno de estos idiomas en su sistema y reinicie su servidor web.",
-"Please ask your server administrator to install the module." => "Consulte al administrador de su servidor para instalar el módulo.",
-"PHP module %s not installed." => "El ódulo PHP %s no está instalado.",
-"PHP %s or higher is required." => "Se requiere PHP %s o superior.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Consulte a su administrador del servidor para actualizar PHP a la versión más reciente. Su versión de PHP ya no es apoyado por ownCloud y la comunidad PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe mode está habilitado. ownCloud requiere que se desactive para que funcione correctamente.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Modo Seguro de PHP es un entorno en desuso y en su mayoría inútil que debe ser desactivada. Contacte al administrador del servidor para desactivarlo en php.ini o en la configuración del servidor web.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes está habilitado. ownCloud requiere que se desactive para que funcione correctamente.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes es un entorno en desuso y en su mayoría inútil que debe ser desactivada. Consulte a su administrador del servidor para desactivarlo en php.ini o en la configuración del servidor web.",
-"PHP modules have been installed, but they are still listed as missing?" => "Los módulos PHP se han instalado, pero aparecen listados como si faltaran",
-"Please ask your server administrator to restart the web server." => "Consulte al administrador de su servidor para reiniciar el servidor web.",
-"PostgreSQL >= 9 required" => "PostgreSQL 9 o superior requerido.",
-"Please upgrade your database version" => "Actualice su versión de base de datos.",
-"Error occurred while checking PostgreSQL version" => "Error ocurrido mientras se chequeaba la versión de PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Por favor, asegúrese de que tiene PostgreSQL 9 o superior, o revise los registros para obtener más información acerca del error.",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Por favor cambie los permisos a 0770 para que el directorio no se pueda mostrar para otros usuarios.",
-"Data directory (%s) is readable by other users" => "Directorio de datos (%s) se puede leer por otros usuarios.",
-"Data directory (%s) is invalid" => "Directorio de datos (%s) no es válida",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Verifique que el directorio de datos contiene un archivo \".ocdata\" en su directorio raíz.",
-"Could not obtain lock type %d on \"%s\"." => "No se pudo realizar el bloqueo %d en \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_AR.js b/lib/l10n/es_AR.js
new file mode 100644
index 00000000000..eb60e6eacbe
--- /dev/null
+++ b/lib/l10n/es_AR.js
@@ -0,0 +1,56 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Ayuda",
+ "Personal" : "Personal",
+ "Settings" : "Configuración",
+ "Users" : "Usuarios",
+ "Admin" : "Administración",
+ "No app name specified" : "No fue especificado el nombre de la app",
+ "Unknown filetype" : "Tipo de archivo desconocido",
+ "Invalid image" : "Imagen inválida",
+ "web services under your control" : "servicios web sobre los que tenés control",
+ "App directory already exists" : "El directorio de la app ya existe",
+ "Can't create app folder. Please fix permissions. %s" : "No se puede crear el directorio para la app. Corregí los permisos. %s",
+ "No source specified when installing app" : "No se especificó el origen al instalar la app",
+ "No href specified when installing app from http" : "No se especificó href al instalar la app",
+ "No path specified when installing app from local file" : "No se especificó PATH al instalar la app desde el archivo local",
+ "Archives of type %s are not supported" : "No hay soporte para archivos de tipo %s",
+ "Failed to open archive when installing app" : "Error al abrir archivo mientras se instalaba la app",
+ "App does not provide an info.xml file" : "La app no suministra un archivo info.xml",
+ "App can't be installed because of not allowed code in the App" : "No puede ser instalada la app por tener código no autorizado",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "No se puede instalar la app porque no es compatible con esta versión de ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "La app no se puede instalar porque contiene la etiqueta true que no está permitida para apps no distribuidas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "La app no puede ser instalada porque la versión en info.xml/version no es la misma que la establecida en el app store",
+ "Application is not enabled" : "La aplicación no está habilitada",
+ "Authentication error" : "Error al autenticar",
+ "Token expired. Please reload page." : "Token expirado. Por favor, recargá la página.",
+ "%s enter the database username." : "%s Entrá el usuario de la base de datos",
+ "%s enter the database name." : "%s Entrá el nombre de la base de datos.",
+ "%s you may not use dots in the database name" : "%s no podés usar puntos en el nombre de la base de datos",
+ "MS SQL username and/or password not valid: %s" : "Nombre de usuario y contraseña de MS SQL no son válidas: %s",
+ "You need to enter either an existing account or the administrator." : "Tenés que ingresar una cuenta existente o el administrador.",
+ "DB Error: \"%s\"" : "Error DB: \"%s\"",
+ "Offending command was: \"%s\"" : "El comando no comprendido es: \"%s\"",
+ "Oracle connection could not be established" : "No fue posible establecer la conexión a Oracle",
+ "Oracle username and/or password not valid" : "El nombre de usuario y/o contraseña no son válidos",
+ "Offending command was: \"%s\", name: %s, password: %s" : "El comando no comprendido es: \"%s\", nombre: \"%s\", contraseña: \"%s\"",
+ "PostgreSQL username and/or password not valid" : "Nombre de usuario o contraseña PostgradeSQL inválido.",
+ "Set an admin username." : "Configurar un nombre de administrador.",
+ "Set an admin password." : "Configurar una contraseña de administrador.",
+ "%s shared »%s« with you" : "%s compartió \"%s\" con vos",
+ "Could not find category \"%s\"" : "No fue posible encontrar la categoría \"%s\"",
+ "seconds ago" : "segundos atrás",
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
+ "last month" : "el mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "el año pasado",
+ "years ago" : "años atrás",
+ "A valid username must be provided" : "Debe ingresar un nombre de usuario válido",
+ "A valid password must be provided" : "Debe ingresar una contraseña válida"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_AR.json b/lib/l10n/es_AR.json
new file mode 100644
index 00000000000..237819d2837
--- /dev/null
+++ b/lib/l10n/es_AR.json
@@ -0,0 +1,54 @@
+{ "translations": {
+ "Help" : "Ayuda",
+ "Personal" : "Personal",
+ "Settings" : "Configuración",
+ "Users" : "Usuarios",
+ "Admin" : "Administración",
+ "No app name specified" : "No fue especificado el nombre de la app",
+ "Unknown filetype" : "Tipo de archivo desconocido",
+ "Invalid image" : "Imagen inválida",
+ "web services under your control" : "servicios web sobre los que tenés control",
+ "App directory already exists" : "El directorio de la app ya existe",
+ "Can't create app folder. Please fix permissions. %s" : "No se puede crear el directorio para la app. Corregí los permisos. %s",
+ "No source specified when installing app" : "No se especificó el origen al instalar la app",
+ "No href specified when installing app from http" : "No se especificó href al instalar la app",
+ "No path specified when installing app from local file" : "No se especificó PATH al instalar la app desde el archivo local",
+ "Archives of type %s are not supported" : "No hay soporte para archivos de tipo %s",
+ "Failed to open archive when installing app" : "Error al abrir archivo mientras se instalaba la app",
+ "App does not provide an info.xml file" : "La app no suministra un archivo info.xml",
+ "App can't be installed because of not allowed code in the App" : "No puede ser instalada la app por tener código no autorizado",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "No se puede instalar la app porque no es compatible con esta versión de ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "La app no se puede instalar porque contiene la etiqueta true que no está permitida para apps no distribuidas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "La app no puede ser instalada porque la versión en info.xml/version no es la misma que la establecida en el app store",
+ "Application is not enabled" : "La aplicación no está habilitada",
+ "Authentication error" : "Error al autenticar",
+ "Token expired. Please reload page." : "Token expirado. Por favor, recargá la página.",
+ "%s enter the database username." : "%s Entrá el usuario de la base de datos",
+ "%s enter the database name." : "%s Entrá el nombre de la base de datos.",
+ "%s you may not use dots in the database name" : "%s no podés usar puntos en el nombre de la base de datos",
+ "MS SQL username and/or password not valid: %s" : "Nombre de usuario y contraseña de MS SQL no son válidas: %s",
+ "You need to enter either an existing account or the administrator." : "Tenés que ingresar una cuenta existente o el administrador.",
+ "DB Error: \"%s\"" : "Error DB: \"%s\"",
+ "Offending command was: \"%s\"" : "El comando no comprendido es: \"%s\"",
+ "Oracle connection could not be established" : "No fue posible establecer la conexión a Oracle",
+ "Oracle username and/or password not valid" : "El nombre de usuario y/o contraseña no son válidos",
+ "Offending command was: \"%s\", name: %s, password: %s" : "El comando no comprendido es: \"%s\", nombre: \"%s\", contraseña: \"%s\"",
+ "PostgreSQL username and/or password not valid" : "Nombre de usuario o contraseña PostgradeSQL inválido.",
+ "Set an admin username." : "Configurar un nombre de administrador.",
+ "Set an admin password." : "Configurar una contraseña de administrador.",
+ "%s shared »%s« with you" : "%s compartió \"%s\" con vos",
+ "Could not find category \"%s\"" : "No fue posible encontrar la categoría \"%s\"",
+ "seconds ago" : "segundos atrás",
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
+ "last month" : "el mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "el año pasado",
+ "years ago" : "años atrás",
+ "A valid username must be provided" : "Debe ingresar un nombre de usuario válido",
+ "A valid password must be provided" : "Debe ingresar una contraseña válida"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_AR.php b/lib/l10n/es_AR.php
deleted file mode 100644
index 85531b4ce7a..00000000000
--- a/lib/l10n/es_AR.php
+++ /dev/null
@@ -1,55 +0,0 @@
- "Ayuda",
-"Personal" => "Personal",
-"Settings" => "Configuración",
-"Users" => "Usuarios",
-"Admin" => "Administración",
-"No app name specified" => "No fue especificado el nombre de la app",
-"Unknown filetype" => "Tipo de archivo desconocido",
-"Invalid image" => "Imagen inválida",
-"web services under your control" => "servicios web sobre los que tenés control",
-"App directory already exists" => "El directorio de la app ya existe",
-"Can't create app folder. Please fix permissions. %s" => "No se puede crear el directorio para la app. Corregí los permisos. %s",
-"No source specified when installing app" => "No se especificó el origen al instalar la app",
-"No href specified when installing app from http" => "No se especificó href al instalar la app",
-"No path specified when installing app from local file" => "No se especificó PATH al instalar la app desde el archivo local",
-"Archives of type %s are not supported" => "No hay soporte para archivos de tipo %s",
-"Failed to open archive when installing app" => "Error al abrir archivo mientras se instalaba la app",
-"App does not provide an info.xml file" => "La app no suministra un archivo info.xml",
-"App can't be installed because of not allowed code in the App" => "No puede ser instalada la app por tener código no autorizado",
-"App can't be installed because it is not compatible with this version of ownCloud" => "No se puede instalar la app porque no es compatible con esta versión de ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "La app no se puede instalar porque contiene la etiqueta true que no está permitida para apps no distribuidas",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "La app no puede ser instalada porque la versión en info.xml/version no es la misma que la establecida en el app store",
-"Application is not enabled" => "La aplicación no está habilitada",
-"Authentication error" => "Error al autenticar",
-"Token expired. Please reload page." => "Token expirado. Por favor, recargá la página.",
-"%s enter the database username." => "%s Entrá el usuario de la base de datos",
-"%s enter the database name." => "%s Entrá el nombre de la base de datos.",
-"%s you may not use dots in the database name" => "%s no podés usar puntos en el nombre de la base de datos",
-"MS SQL username and/or password not valid: %s" => "Nombre de usuario y contraseña de MS SQL no son válidas: %s",
-"You need to enter either an existing account or the administrator." => "Tenés que ingresar una cuenta existente o el administrador.",
-"DB Error: \"%s\"" => "Error DB: \"%s\"",
-"Offending command was: \"%s\"" => "El comando no comprendido es: \"%s\"",
-"Oracle connection could not be established" => "No fue posible establecer la conexión a Oracle",
-"Oracle username and/or password not valid" => "El nombre de usuario y/o contraseña no son válidos",
-"Offending command was: \"%s\", name: %s, password: %s" => "El comando no comprendido es: \"%s\", nombre: \"%s\", contraseña: \"%s\"",
-"PostgreSQL username and/or password not valid" => "Nombre de usuario o contraseña PostgradeSQL inválido.",
-"Set an admin username." => "Configurar un nombre de administrador.",
-"Set an admin password." => "Configurar una contraseña de administrador.",
-"%s shared »%s« with you" => "%s compartió \"%s\" con vos",
-"Could not find category \"%s\"" => "No fue posible encontrar la categoría \"%s\"",
-"seconds ago" => "segundos atrás",
-"_%n minute ago_::_%n minutes ago_" => array("Hace %n minuto","Hace %n minutos"),
-"_%n hour ago_::_%n hours ago_" => array("Hace %n hora","Hace %n horas"),
-"today" => "hoy",
-"yesterday" => "ayer",
-"_%n day go_::_%n days ago_" => array("Hace %n día","Hace %n días"),
-"last month" => "el mes pasado",
-"_%n month ago_::_%n months ago_" => array("Hace %n mes","Hace %n meses"),
-"last year" => "el año pasado",
-"years ago" => "años atrás",
-"A valid username must be provided" => "Debe ingresar un nombre de usuario válido",
-"A valid password must be provided" => "Debe ingresar una contraseña válida"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_BO.js b/lib/l10n/es_BO.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/es_BO.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_BO.json b/lib/l10n/es_BO.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/es_BO.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_BO.php b/lib/l10n/es_BO.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/es_BO.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_CL.js b/lib/l10n/es_CL.js
new file mode 100644
index 00000000000..12f107f8ddf
--- /dev/null
+++ b/lib/l10n/es_CL.js
@@ -0,0 +1,32 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "No se puede escribir en el directorio \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Generalmente esto se puede resolver otorgando permisos de escritura al servidor web en la carpeta configurada",
+ "See %s" : "Ver %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Generalmente esto se puede resolver %s otorgando permisos de escritura al servidor web en la carpeta configurada %s",
+ "Help" : "Ayuda",
+ "Personal" : "Personal",
+ "Settings" : "Configuración",
+ "Users" : "Usuarios",
+ "Admin" : "Administración",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "La aplicación \\\"%s\\\" no puede ser instalada debido a que no es compatible con esta versión de ownCloud.",
+ "No app name specified" : "No se especificó el nombre de la aplicación",
+ "Unknown filetype" : "Tipo de archivo desconocido",
+ "Invalid image" : "Imagen no válida",
+ "web services under your control" : "Servicios Web bajo su control",
+ "App directory already exists" : "El directorio de la aplicación ya existe",
+ "Can't create app folder. Please fix permissions. %s" : "No se puede crear el directorio de aplicación. Por favor corregir los permisos. %s",
+ "No source specified when installing app" : "No se especificó el origen al instalar la aplicación",
+ "seconds ago" : "segundos antes",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "mes anterior",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "último año",
+ "years ago" : "años anteriores"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_CL.json b/lib/l10n/es_CL.json
new file mode 100644
index 00000000000..4c66ed935ac
--- /dev/null
+++ b/lib/l10n/es_CL.json
@@ -0,0 +1,30 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "No se puede escribir en el directorio \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Generalmente esto se puede resolver otorgando permisos de escritura al servidor web en la carpeta configurada",
+ "See %s" : "Ver %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Generalmente esto se puede resolver %s otorgando permisos de escritura al servidor web en la carpeta configurada %s",
+ "Help" : "Ayuda",
+ "Personal" : "Personal",
+ "Settings" : "Configuración",
+ "Users" : "Usuarios",
+ "Admin" : "Administración",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "La aplicación \\\"%s\\\" no puede ser instalada debido a que no es compatible con esta versión de ownCloud.",
+ "No app name specified" : "No se especificó el nombre de la aplicación",
+ "Unknown filetype" : "Tipo de archivo desconocido",
+ "Invalid image" : "Imagen no válida",
+ "web services under your control" : "Servicios Web bajo su control",
+ "App directory already exists" : "El directorio de la aplicación ya existe",
+ "Can't create app folder. Please fix permissions. %s" : "No se puede crear el directorio de aplicación. Por favor corregir los permisos. %s",
+ "No source specified when installing app" : "No se especificó el origen al instalar la aplicación",
+ "seconds ago" : "segundos antes",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "mes anterior",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "último año",
+ "years ago" : "años anteriores"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_CL.php b/lib/l10n/es_CL.php
deleted file mode 100644
index 7f7c4fe3f68..00000000000
--- a/lib/l10n/es_CL.php
+++ /dev/null
@@ -1,31 +0,0 @@
- "No se puede escribir en el directorio \"config\"!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Generalmente esto se puede resolver otorgando permisos de escritura al servidor web en la carpeta configurada",
-"See %s" => "Ver %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Generalmente esto se puede resolver %s otorgando permisos de escritura al servidor web en la carpeta configurada %s",
-"Help" => "Ayuda",
-"Personal" => "Personal",
-"Settings" => "Configuración",
-"Users" => "Usuarios",
-"Admin" => "Administración",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "La aplicación \\\"%s\\\" no puede ser instalada debido a que no es compatible con esta versión de ownCloud.",
-"No app name specified" => "No se especificó el nombre de la aplicación",
-"Unknown filetype" => "Tipo de archivo desconocido",
-"Invalid image" => "Imagen no válida",
-"web services under your control" => "Servicios Web bajo su control",
-"App directory already exists" => "El directorio de la aplicación ya existe",
-"Can't create app folder. Please fix permissions. %s" => "No se puede crear el directorio de aplicación. Por favor corregir los permisos. %s",
-"No source specified when installing app" => "No se especificó el origen al instalar la aplicación",
-"seconds ago" => "segundos antes",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"today" => "hoy",
-"yesterday" => "ayer",
-"_%n day go_::_%n days ago_" => array("",""),
-"last month" => "mes anterior",
-"_%n month ago_::_%n months ago_" => array("",""),
-"last year" => "último año",
-"years ago" => "años anteriores"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_CO.js b/lib/l10n/es_CO.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/es_CO.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_CO.json b/lib/l10n/es_CO.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/es_CO.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_CO.php b/lib/l10n/es_CO.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/es_CO.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_CR.js b/lib/l10n/es_CR.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/es_CR.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_CR.json b/lib/l10n/es_CR.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/es_CR.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_CR.php b/lib/l10n/es_CR.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/es_CR.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_EC.js b/lib/l10n/es_EC.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/es_EC.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_EC.json b/lib/l10n/es_EC.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/es_EC.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_EC.php b/lib/l10n/es_EC.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/es_EC.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_MX.js b/lib/l10n/es_MX.js
new file mode 100644
index 00000000000..2e2083415e5
--- /dev/null
+++ b/lib/l10n/es_MX.js
@@ -0,0 +1,56 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Ayuda",
+ "Personal" : "Personal",
+ "Settings" : "Ajustes",
+ "Users" : "Usuarios",
+ "Admin" : "Administración",
+ "No app name specified" : "No se ha especificado nombre de la aplicación",
+ "Unknown filetype" : "Tipo de archivo desconocido",
+ "Invalid image" : "Imagen inválida",
+ "web services under your control" : "Servicios web bajo su control",
+ "App directory already exists" : "El directorio de la aplicación ya existe",
+ "Can't create app folder. Please fix permissions. %s" : "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s",
+ "No source specified when installing app" : "No se ha especificado origen cuando se ha instalado la aplicación",
+ "No href specified when installing app from http" : "No href especificado cuando se ha instalado la aplicación",
+ "No path specified when installing app from local file" : "Sin path especificado cuando se ha instalado la aplicación desde el archivo local",
+ "Archives of type %s are not supported" : "Archivos de tipo %s no son soportados",
+ "Failed to open archive when installing app" : "Fallo de abrir archivo mientras se instala la aplicación",
+ "App does not provide an info.xml file" : "La aplicación no suministra un archivo info.xml",
+ "App can't be installed because of not allowed code in the App" : "La aplicación no puede ser instalada por tener código no autorizado en la aplicación",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "La aplicación no se puede instalar porque no es compatible con esta versión de ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "La aplicación no se puede instalar porque contiene la etiqueta\n\ntrue\n \nque no está permitida para aplicaciones no distribuidas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "La aplicación no puede ser instalada por que la versión en info.xml/version no es la misma que la establecida en la app store",
+ "Application is not enabled" : "La aplicación no está habilitada",
+ "Authentication error" : "Error de autenticación",
+ "Token expired. Please reload page." : "Token expirado. Por favor, recarga la página.",
+ "%s enter the database username." : "%s ingresar el usuario de la base de datos.",
+ "%s enter the database name." : "%s ingresar el nombre de la base de datos",
+ "%s you may not use dots in the database name" : "%s puede utilizar puntos en el nombre de la base de datos",
+ "MS SQL username and/or password not valid: %s" : "Usuario y/o contraseña de MS SQL no válidos: %s",
+ "You need to enter either an existing account or the administrator." : "Tiene que ingresar una cuenta existente o la del administrador.",
+ "DB Error: \"%s\"" : "Error BD: \"%s\"",
+ "Offending command was: \"%s\"" : "Comando infractor: \"%s\"",
+ "Oracle connection could not be established" : "No se pudo establecer la conexión a Oracle",
+ "Oracle username and/or password not valid" : "Usuario y/o contraseña de Oracle no válidos",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Comando infractor: \"%s\", nombre: %s, contraseña: %s",
+ "PostgreSQL username and/or password not valid" : "Usuario y/o contraseña de PostgreSQL no válidos",
+ "Set an admin username." : "Configurar un nombre de usuario del administrador",
+ "Set an admin password." : "Configurar la contraseña del administrador.",
+ "%s shared »%s« with you" : "%s ha compartido »%s« contigo",
+ "Could not find category \"%s\"" : "No puede encontrar la categoria \"%s\"",
+ "seconds ago" : "hace segundos",
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
+ "last month" : "mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "año pasado",
+ "years ago" : "hace años",
+ "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
+ "A valid password must be provided" : "Se debe proporcionar una contraseña válida"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_MX.json b/lib/l10n/es_MX.json
new file mode 100644
index 00000000000..b9fe48a6eea
--- /dev/null
+++ b/lib/l10n/es_MX.json
@@ -0,0 +1,54 @@
+{ "translations": {
+ "Help" : "Ayuda",
+ "Personal" : "Personal",
+ "Settings" : "Ajustes",
+ "Users" : "Usuarios",
+ "Admin" : "Administración",
+ "No app name specified" : "No se ha especificado nombre de la aplicación",
+ "Unknown filetype" : "Tipo de archivo desconocido",
+ "Invalid image" : "Imagen inválida",
+ "web services under your control" : "Servicios web bajo su control",
+ "App directory already exists" : "El directorio de la aplicación ya existe",
+ "Can't create app folder. Please fix permissions. %s" : "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s",
+ "No source specified when installing app" : "No se ha especificado origen cuando se ha instalado la aplicación",
+ "No href specified when installing app from http" : "No href especificado cuando se ha instalado la aplicación",
+ "No path specified when installing app from local file" : "Sin path especificado cuando se ha instalado la aplicación desde el archivo local",
+ "Archives of type %s are not supported" : "Archivos de tipo %s no son soportados",
+ "Failed to open archive when installing app" : "Fallo de abrir archivo mientras se instala la aplicación",
+ "App does not provide an info.xml file" : "La aplicación no suministra un archivo info.xml",
+ "App can't be installed because of not allowed code in the App" : "La aplicación no puede ser instalada por tener código no autorizado en la aplicación",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "La aplicación no se puede instalar porque no es compatible con esta versión de ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "La aplicación no se puede instalar porque contiene la etiqueta\n\ntrue\n \nque no está permitida para aplicaciones no distribuidas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "La aplicación no puede ser instalada por que la versión en info.xml/version no es la misma que la establecida en la app store",
+ "Application is not enabled" : "La aplicación no está habilitada",
+ "Authentication error" : "Error de autenticación",
+ "Token expired. Please reload page." : "Token expirado. Por favor, recarga la página.",
+ "%s enter the database username." : "%s ingresar el usuario de la base de datos.",
+ "%s enter the database name." : "%s ingresar el nombre de la base de datos",
+ "%s you may not use dots in the database name" : "%s puede utilizar puntos en el nombre de la base de datos",
+ "MS SQL username and/or password not valid: %s" : "Usuario y/o contraseña de MS SQL no válidos: %s",
+ "You need to enter either an existing account or the administrator." : "Tiene que ingresar una cuenta existente o la del administrador.",
+ "DB Error: \"%s\"" : "Error BD: \"%s\"",
+ "Offending command was: \"%s\"" : "Comando infractor: \"%s\"",
+ "Oracle connection could not be established" : "No se pudo establecer la conexión a Oracle",
+ "Oracle username and/or password not valid" : "Usuario y/o contraseña de Oracle no válidos",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Comando infractor: \"%s\", nombre: %s, contraseña: %s",
+ "PostgreSQL username and/or password not valid" : "Usuario y/o contraseña de PostgreSQL no válidos",
+ "Set an admin username." : "Configurar un nombre de usuario del administrador",
+ "Set an admin password." : "Configurar la contraseña del administrador.",
+ "%s shared »%s« with you" : "%s ha compartido »%s« contigo",
+ "Could not find category \"%s\"" : "No puede encontrar la categoria \"%s\"",
+ "seconds ago" : "hace segundos",
+ "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"],
+ "today" : "hoy",
+ "yesterday" : "ayer",
+ "_%n day go_::_%n days ago_" : ["Hace %n día","Hace %n días"],
+ "last month" : "mes pasado",
+ "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"],
+ "last year" : "año pasado",
+ "years ago" : "hace años",
+ "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
+ "A valid password must be provided" : "Se debe proporcionar una contraseña válida"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_MX.php b/lib/l10n/es_MX.php
deleted file mode 100644
index 4a3ff58cd74..00000000000
--- a/lib/l10n/es_MX.php
+++ /dev/null
@@ -1,55 +0,0 @@
- "Ayuda",
-"Personal" => "Personal",
-"Settings" => "Ajustes",
-"Users" => "Usuarios",
-"Admin" => "Administración",
-"No app name specified" => "No se ha especificado nombre de la aplicación",
-"Unknown filetype" => "Tipo de archivo desconocido",
-"Invalid image" => "Imagen inválida",
-"web services under your control" => "Servicios web bajo su control",
-"App directory already exists" => "El directorio de la aplicación ya existe",
-"Can't create app folder. Please fix permissions. %s" => "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s",
-"No source specified when installing app" => "No se ha especificado origen cuando se ha instalado la aplicación",
-"No href specified when installing app from http" => "No href especificado cuando se ha instalado la aplicación",
-"No path specified when installing app from local file" => "Sin path especificado cuando se ha instalado la aplicación desde el archivo local",
-"Archives of type %s are not supported" => "Archivos de tipo %s no son soportados",
-"Failed to open archive when installing app" => "Fallo de abrir archivo mientras se instala la aplicación",
-"App does not provide an info.xml file" => "La aplicación no suministra un archivo info.xml",
-"App can't be installed because of not allowed code in the App" => "La aplicación no puede ser instalada por tener código no autorizado en la aplicación",
-"App can't be installed because it is not compatible with this version of ownCloud" => "La aplicación no se puede instalar porque no es compatible con esta versión de ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "La aplicación no se puede instalar porque contiene la etiqueta\n\ntrue\n \nque no está permitida para aplicaciones no distribuidas",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "La aplicación no puede ser instalada por que la versión en info.xml/version no es la misma que la establecida en la app store",
-"Application is not enabled" => "La aplicación no está habilitada",
-"Authentication error" => "Error de autenticación",
-"Token expired. Please reload page." => "Token expirado. Por favor, recarga la página.",
-"%s enter the database username." => "%s ingresar el usuario de la base de datos.",
-"%s enter the database name." => "%s ingresar el nombre de la base de datos",
-"%s you may not use dots in the database name" => "%s puede utilizar puntos en el nombre de la base de datos",
-"MS SQL username and/or password not valid: %s" => "Usuario y/o contraseña de MS SQL no válidos: %s",
-"You need to enter either an existing account or the administrator." => "Tiene que ingresar una cuenta existente o la del administrador.",
-"DB Error: \"%s\"" => "Error BD: \"%s\"",
-"Offending command was: \"%s\"" => "Comando infractor: \"%s\"",
-"Oracle connection could not be established" => "No se pudo establecer la conexión a Oracle",
-"Oracle username and/or password not valid" => "Usuario y/o contraseña de Oracle no válidos",
-"Offending command was: \"%s\", name: %s, password: %s" => "Comando infractor: \"%s\", nombre: %s, contraseña: %s",
-"PostgreSQL username and/or password not valid" => "Usuario y/o contraseña de PostgreSQL no válidos",
-"Set an admin username." => "Configurar un nombre de usuario del administrador",
-"Set an admin password." => "Configurar la contraseña del administrador.",
-"%s shared »%s« with you" => "%s ha compartido »%s« contigo",
-"Could not find category \"%s\"" => "No puede encontrar la categoria \"%s\"",
-"seconds ago" => "hace segundos",
-"_%n minute ago_::_%n minutes ago_" => array("Hace %n minuto","Hace %n minutos"),
-"_%n hour ago_::_%n hours ago_" => array("Hace %n hora","Hace %n horas"),
-"today" => "hoy",
-"yesterday" => "ayer",
-"_%n day go_::_%n days ago_" => array("Hace %n día","Hace %n días"),
-"last month" => "mes pasado",
-"_%n month ago_::_%n months ago_" => array("Hace %n mes","Hace %n meses"),
-"last year" => "año pasado",
-"years ago" => "hace años",
-"A valid username must be provided" => "Se debe proporcionar un nombre de usuario válido",
-"A valid password must be provided" => "Se debe proporcionar una contraseña válida"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_PE.js b/lib/l10n/es_PE.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/es_PE.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_PE.json b/lib/l10n/es_PE.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/es_PE.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_PE.php b/lib/l10n/es_PE.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/es_PE.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_PY.js b/lib/l10n/es_PY.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/es_PY.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_PY.json b/lib/l10n/es_PY.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/es_PY.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_PY.php b/lib/l10n/es_PY.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/es_PY.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_US.js b/lib/l10n/es_US.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/es_US.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_US.json b/lib/l10n/es_US.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/es_US.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_US.php b/lib/l10n/es_US.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/es_US.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/es_UY.js b/lib/l10n/es_UY.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/es_UY.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_UY.json b/lib/l10n/es_UY.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/es_UY.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/es_UY.php b/lib/l10n/es_UY.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/es_UY.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js
new file mode 100644
index 00000000000..8fbc25c4403
--- /dev/null
+++ b/lib/l10n/et_EE.js
@@ -0,0 +1,124 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Ei saa kirjutada \"config\" kataloogi!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Tavaliselt saab selle lahendada andes veebiserverile seatete kataloogile \"config\" kirjutusõigused",
+ "See %s" : "Vaata %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tavaliselt saab selle lahendada %s andes veebiserverile seadete kataloogile \"config\" kirjutusõigused %s",
+ "Sample configuration detected" : "Tuvastati näidisseaded",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni",
+ "Help" : "Abiinfo",
+ "Personal" : "Isiklik",
+ "Settings" : "Seaded",
+ "Users" : "Kasutajad",
+ "Admin" : "Admin",
+ "Recommended" : "Soovitatud",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Rakendit \\\"%s\\\" ei saa paigaldada, kuna see pole ühilduv selle ownCloud versiooniga.",
+ "No app name specified" : "Ühegi rakendi nime pole määratletud",
+ "Unknown filetype" : "Tundmatu failitüüp",
+ "Invalid image" : "Vigane pilt",
+ "web services under your control" : "veebitenused sinu kontrolli all",
+ "App directory already exists" : "Rakendi kataloog on juba olemas",
+ "Can't create app folder. Please fix permissions. %s" : "Ei saa luua rakendi kataloogi. Palun korrigeeri õigusi. %s",
+ "No source specified when installing app" : "Ühegi lähteallikat pole rakendi paigalduseks määratletud",
+ "No href specified when installing app from http" : "Ühtegi aadressi pole määratletud rakendi paigalduseks veebist",
+ "No path specified when installing app from local file" : "Ühtegi teed pole määratletud paigaldamaks rakendit kohalikust failist",
+ "Archives of type %s are not supported" : "%s tüüpi arhiivid pole toetatud",
+ "Failed to open archive when installing app" : "Arhiivi avamine ebaõnnestus rakendi paigalduse käigus",
+ "App does not provide an info.xml file" : "Rakend ei paku ühtegi info.xml faili",
+ "App can't be installed because of not allowed code in the App" : "Rakendit ei saa paigaldada, kuna sisaldab lubamatud koodi",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Rakendit ei saa paigaldada, kuna see pole ühilduv selle ownCloud versiooniga.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Rakendit ei saa paigaldada, kuna see sisaldab \n\n\ntrue\n \nmärgendit, mis pole lubatud mitte veetud (non shipped) rakendites",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Rakendit ei saa paigaldada, kuna selle versioon info.xml/version pole sama, mis on märgitud rakendite laos.",
+ "Application is not enabled" : "Rakendus pole sisse lülitatud",
+ "Authentication error" : "Autentimise viga",
+ "Token expired. Please reload page." : "Kontrollkood aegus. Paelun lae leht uuesti.",
+ "Unknown user" : "Tundmatu kasutaja",
+ "%s enter the database username." : "%s sisesta andmebaasi kasutajatunnus.",
+ "%s enter the database name." : "%s sisesta andmebaasi nimi.",
+ "%s you may not use dots in the database name" : "%s punktide kasutamine andmebaasi nimes pole lubatud",
+ "MS SQL username and/or password not valid: %s" : "MS SQL kasutajatunnus ja/või parool pole õiged: %s",
+ "You need to enter either an existing account or the administrator." : "Sisesta kas juba olemasolev konto või administrator.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB kasutajatunnus ja/või parool pole õiged",
+ "DB Error: \"%s\"" : "Andmebaasi viga: \"%s\"",
+ "Offending command was: \"%s\"" : "Tõrkuv käsk oli: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB kasutaja '%s'@'localhost' on juba olemas.",
+ "Drop this user from MySQL/MariaDB" : "Kustuta see MySQL/MariaDB kasutaja",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB user '%s'@'%%' on juba olemas",
+ "Drop this user from MySQL/MariaDB." : "Kustuta see MySQL/MariaDB kasutaja.",
+ "Oracle connection could not be established" : "Ei suuda luua ühendust Oracle baasiga",
+ "Oracle username and/or password not valid" : "Oracle kasutajatunnus ja/või parool pole õiged",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Tõrkuv käsk oli: \"%s\", nimi: %s, parool: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL kasutajatunnus ja/või parool pole õiged",
+ "Set an admin username." : "Määra admin kasutajanimi.",
+ "Set an admin password." : "Määra admini parool.",
+ "Can't create or write into the data directory %s" : "Ei suuda luua või kirjutada andmete kataloogi %s",
+ "%s shared »%s« with you" : "%s jagas sinuga »%s«",
+ "Sharing %s failed, because the file does not exist" : "%s jagamine ebaõnnestus, kuna faili pole olemas",
+ "You are not allowed to share %s" : "Sul pole lubatud %s jagada",
+ "Sharing %s failed, because the user %s is the item owner" : "%s jagamine ebaõnnestus, kuna kuna kasutaja %s on üksuse omanik",
+ "Sharing %s failed, because the user %s does not exist" : "%s jagamine ebaõnnestus, kuna kasutajat %s pole olemas",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s jagamine ebaõnnestus, kuna kasutaja %s pole ühegi grupi liige, millede liige on %s",
+ "Sharing %s failed, because this item is already shared with %s" : "%s jagamine ebaõnnestus, kuna see üksus on juba jagatud %s",
+ "Sharing %s failed, because the group %s does not exist" : "%s jagamine ebaõnnestus, kuna gruppi %s pole olemas",
+ "Sharing %s failed, because %s is not a member of the group %s" : "%s jagamine ebaõnnestus, kuna %s pole grupi %s liige",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Avaliku viite tekitamiseks pead sisestama parooli, ainult kaitstud viited on lubatud",
+ "Sharing %s failed, because sharing with links is not allowed" : "%s jagamine ebaõnnestus, kuna linkidega jagamine pole lubatud",
+ "Share type %s is not valid for %s" : "Jagamise tüüp %s ei ole õige %s jaoks",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Lubade seadistus %s jaoks ebaõnnestus, kuna antud õigused ületavad %s jaoks määratud õigusi",
+ "Setting permissions for %s failed, because the item was not found" : "Lubade seadistus %s jaoks ebaõnnestus, kuna üksust ei leitud",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Aegumise kuupäeva ei saa määrata. Jagamised ei saa aeguda hiljem kui %s peale jagamist.",
+ "Cannot set expiration date. Expiration date is in the past" : "Aegumiskuupäeva ei saa määrata. Aegumise kuupäev on minevikus",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Jagamise tagarakend %s peab kasutusele võtma OCP\\Share_Backend liidese",
+ "Sharing backend %s not found" : "Jagamise tagarakendit %s ei leitud",
+ "Sharing backend for %s not found" : "Jagamise tagarakendit %s jaoks ei leitud",
+ "Sharing %s failed, because the user %s is the original sharer" : "%s jagamine ebaõnnestus, kuna kasutaja %s on algne jagaja",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s jagamine ebaõnnestus, kuna antud õigused ületavad %s jaoks määratud õigusi",
+ "Sharing %s failed, because resharing is not allowed" : "%s jagamine ebaõnnestus, kuna edasijagamine pole lubatud",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s jagamine ebaõnnestus, kuna jagamise tagarakend ei suutnud leida %s jaoks lähteallikat",
+ "Sharing %s failed, because the file could not be found in the file cache" : "%s jagamine ebaõnnestus, kuna faili ei suudetud leida failide puhvrist",
+ "Could not find category \"%s\"" : "Ei leia kategooriat \"%s\"",
+ "seconds ago" : "sekundit tagasi",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutit tagasi"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n tundi tagasi"],
+ "today" : "täna",
+ "yesterday" : "eile",
+ "_%n day go_::_%n days ago_" : ["","%n päeva tagasi"],
+ "last month" : "viimasel kuul",
+ "_%n month ago_::_%n months ago_" : ["","%n kuud tagasi"],
+ "last year" : "viimasel aastal",
+ "years ago" : "aastat tagasi",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Kasutajanimes on lubatud ainult järgnevad tähemärgid: \"a-z\", \"A-Z\", \"0-9\" ja \"_.@-\"",
+ "A valid username must be provided" : "Sisesta nõuetele vastav kasutajatunnus",
+ "A valid password must be provided" : "Sisesta nõuetele vastav parool",
+ "The username is already being used" : "Kasutajanimi on juba kasutuses",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ühtegi andmebaasi (sqlite, mysql või postgresql) draiverit pole paigaldatud.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Õigused saab tavaliselt paika %s andes veebiserverile juurkataloogile kirjutusõigused %s",
+ "Cannot write into \"config\" directory" : "Ei saa kirjutada \"config\" kataloogi",
+ "Cannot write into \"apps\" directory" : "Ei saa kirjutada \"apps\" kataloogi!",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Tavaliselt saab selle lahendada %s andes veebiserverile rakendite kataloogile kirjutusõigused %s või keelates seadetes rakendikogu.",
+ "Cannot create \"data\" directory (%s)" : "Ei suuda luua \"data\" kataloogi (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Tavaliselt saab selle lahendada andes veebiserverile juur-kataloogile kirjutusõigused .",
+ "Setting locale to %s failed" : "Lokaadi %s määramine ebaõnnestus.",
+ "Please install one of these locales on your system and restart your webserver." : "Palun paigalda mõni neist lokaatides oma süsteemi ning taaskäivita veebiserver.",
+ "Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.",
+ "PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.",
+ "PHP %s or higher is required." : "PHP %s või uuem on nõutav.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Palu oma serveri haldajal uuendada PHP viimasele versioonile. Sinu PHP versioon pole enam toetatud ownCloud-i ja PHP kogukonna poolt.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode on lubatud. ownCloud vajab normaalseks toimimiseks, et see oleks keelatud.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode on aegunud ja üldiselt kasutu seadistus, mis tuleks keelata. Palu oma serveri haldajal see keelata php.ini failis või veebiserveri seadetes.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes on lubatud. ownCloud vajab normaalseks toimimiseks, et see oleks keelatud.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes on aegunud ja üldiselt kasutu seadistus, mis tuleks keelata. Palu oma serveri haldajal see keelata php.ini failis või veebiserveri seadetes.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
+ "Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 on nõutav",
+ "Please upgrade your database version" : "Palun uuenda oma andmebaasi versiooni",
+ "Error occurred while checking PostgreSQL version" : "Viga PostgreSQL versiooni kontrollimisel",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Palun veendu, et kasutad PostgreSQL >=9 või vaata logidest vea kohta detailsemat informatsiooni",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Palun muuda kataloogi õigused 0770-ks, et kataloogi sisu poleks teistele kasutajatele nähtav",
+ "Data directory (%s) is readable by other users" : "Andmete kataloog (%s) on teistele kasutajate loetav",
+ "Data directory (%s) is invalid" : "Andmete kataloog (%s) pole korrektne",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Palun veendu, et andmete kataloogis sisaldub fail \".ocdata\" ",
+ "Could not obtain lock type %d on \"%s\"." : "Ei suutnud hankida %d tüüpi lukustust \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json
new file mode 100644
index 00000000000..099000bd74a
--- /dev/null
+++ b/lib/l10n/et_EE.json
@@ -0,0 +1,122 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Ei saa kirjutada \"config\" kataloogi!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Tavaliselt saab selle lahendada andes veebiserverile seatete kataloogile \"config\" kirjutusõigused",
+ "See %s" : "Vaata %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tavaliselt saab selle lahendada %s andes veebiserverile seadete kataloogile \"config\" kirjutusõigused %s",
+ "Sample configuration detected" : "Tuvastati näidisseaded",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni",
+ "Help" : "Abiinfo",
+ "Personal" : "Isiklik",
+ "Settings" : "Seaded",
+ "Users" : "Kasutajad",
+ "Admin" : "Admin",
+ "Recommended" : "Soovitatud",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Rakendit \\\"%s\\\" ei saa paigaldada, kuna see pole ühilduv selle ownCloud versiooniga.",
+ "No app name specified" : "Ühegi rakendi nime pole määratletud",
+ "Unknown filetype" : "Tundmatu failitüüp",
+ "Invalid image" : "Vigane pilt",
+ "web services under your control" : "veebitenused sinu kontrolli all",
+ "App directory already exists" : "Rakendi kataloog on juba olemas",
+ "Can't create app folder. Please fix permissions. %s" : "Ei saa luua rakendi kataloogi. Palun korrigeeri õigusi. %s",
+ "No source specified when installing app" : "Ühegi lähteallikat pole rakendi paigalduseks määratletud",
+ "No href specified when installing app from http" : "Ühtegi aadressi pole määratletud rakendi paigalduseks veebist",
+ "No path specified when installing app from local file" : "Ühtegi teed pole määratletud paigaldamaks rakendit kohalikust failist",
+ "Archives of type %s are not supported" : "%s tüüpi arhiivid pole toetatud",
+ "Failed to open archive when installing app" : "Arhiivi avamine ebaõnnestus rakendi paigalduse käigus",
+ "App does not provide an info.xml file" : "Rakend ei paku ühtegi info.xml faili",
+ "App can't be installed because of not allowed code in the App" : "Rakendit ei saa paigaldada, kuna sisaldab lubamatud koodi",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Rakendit ei saa paigaldada, kuna see pole ühilduv selle ownCloud versiooniga.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Rakendit ei saa paigaldada, kuna see sisaldab \n\n\ntrue\n \nmärgendit, mis pole lubatud mitte veetud (non shipped) rakendites",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Rakendit ei saa paigaldada, kuna selle versioon info.xml/version pole sama, mis on märgitud rakendite laos.",
+ "Application is not enabled" : "Rakendus pole sisse lülitatud",
+ "Authentication error" : "Autentimise viga",
+ "Token expired. Please reload page." : "Kontrollkood aegus. Paelun lae leht uuesti.",
+ "Unknown user" : "Tundmatu kasutaja",
+ "%s enter the database username." : "%s sisesta andmebaasi kasutajatunnus.",
+ "%s enter the database name." : "%s sisesta andmebaasi nimi.",
+ "%s you may not use dots in the database name" : "%s punktide kasutamine andmebaasi nimes pole lubatud",
+ "MS SQL username and/or password not valid: %s" : "MS SQL kasutajatunnus ja/või parool pole õiged: %s",
+ "You need to enter either an existing account or the administrator." : "Sisesta kas juba olemasolev konto või administrator.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB kasutajatunnus ja/või parool pole õiged",
+ "DB Error: \"%s\"" : "Andmebaasi viga: \"%s\"",
+ "Offending command was: \"%s\"" : "Tõrkuv käsk oli: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB kasutaja '%s'@'localhost' on juba olemas.",
+ "Drop this user from MySQL/MariaDB" : "Kustuta see MySQL/MariaDB kasutaja",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB user '%s'@'%%' on juba olemas",
+ "Drop this user from MySQL/MariaDB." : "Kustuta see MySQL/MariaDB kasutaja.",
+ "Oracle connection could not be established" : "Ei suuda luua ühendust Oracle baasiga",
+ "Oracle username and/or password not valid" : "Oracle kasutajatunnus ja/või parool pole õiged",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Tõrkuv käsk oli: \"%s\", nimi: %s, parool: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL kasutajatunnus ja/või parool pole õiged",
+ "Set an admin username." : "Määra admin kasutajanimi.",
+ "Set an admin password." : "Määra admini parool.",
+ "Can't create or write into the data directory %s" : "Ei suuda luua või kirjutada andmete kataloogi %s",
+ "%s shared »%s« with you" : "%s jagas sinuga »%s«",
+ "Sharing %s failed, because the file does not exist" : "%s jagamine ebaõnnestus, kuna faili pole olemas",
+ "You are not allowed to share %s" : "Sul pole lubatud %s jagada",
+ "Sharing %s failed, because the user %s is the item owner" : "%s jagamine ebaõnnestus, kuna kuna kasutaja %s on üksuse omanik",
+ "Sharing %s failed, because the user %s does not exist" : "%s jagamine ebaõnnestus, kuna kasutajat %s pole olemas",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s jagamine ebaõnnestus, kuna kasutaja %s pole ühegi grupi liige, millede liige on %s",
+ "Sharing %s failed, because this item is already shared with %s" : "%s jagamine ebaõnnestus, kuna see üksus on juba jagatud %s",
+ "Sharing %s failed, because the group %s does not exist" : "%s jagamine ebaõnnestus, kuna gruppi %s pole olemas",
+ "Sharing %s failed, because %s is not a member of the group %s" : "%s jagamine ebaõnnestus, kuna %s pole grupi %s liige",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Avaliku viite tekitamiseks pead sisestama parooli, ainult kaitstud viited on lubatud",
+ "Sharing %s failed, because sharing with links is not allowed" : "%s jagamine ebaõnnestus, kuna linkidega jagamine pole lubatud",
+ "Share type %s is not valid for %s" : "Jagamise tüüp %s ei ole õige %s jaoks",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Lubade seadistus %s jaoks ebaõnnestus, kuna antud õigused ületavad %s jaoks määratud õigusi",
+ "Setting permissions for %s failed, because the item was not found" : "Lubade seadistus %s jaoks ebaõnnestus, kuna üksust ei leitud",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Aegumise kuupäeva ei saa määrata. Jagamised ei saa aeguda hiljem kui %s peale jagamist.",
+ "Cannot set expiration date. Expiration date is in the past" : "Aegumiskuupäeva ei saa määrata. Aegumise kuupäev on minevikus",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Jagamise tagarakend %s peab kasutusele võtma OCP\\Share_Backend liidese",
+ "Sharing backend %s not found" : "Jagamise tagarakendit %s ei leitud",
+ "Sharing backend for %s not found" : "Jagamise tagarakendit %s jaoks ei leitud",
+ "Sharing %s failed, because the user %s is the original sharer" : "%s jagamine ebaõnnestus, kuna kasutaja %s on algne jagaja",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s jagamine ebaõnnestus, kuna antud õigused ületavad %s jaoks määratud õigusi",
+ "Sharing %s failed, because resharing is not allowed" : "%s jagamine ebaõnnestus, kuna edasijagamine pole lubatud",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s jagamine ebaõnnestus, kuna jagamise tagarakend ei suutnud leida %s jaoks lähteallikat",
+ "Sharing %s failed, because the file could not be found in the file cache" : "%s jagamine ebaõnnestus, kuna faili ei suudetud leida failide puhvrist",
+ "Could not find category \"%s\"" : "Ei leia kategooriat \"%s\"",
+ "seconds ago" : "sekundit tagasi",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutit tagasi"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n tundi tagasi"],
+ "today" : "täna",
+ "yesterday" : "eile",
+ "_%n day go_::_%n days ago_" : ["","%n päeva tagasi"],
+ "last month" : "viimasel kuul",
+ "_%n month ago_::_%n months ago_" : ["","%n kuud tagasi"],
+ "last year" : "viimasel aastal",
+ "years ago" : "aastat tagasi",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Kasutajanimes on lubatud ainult järgnevad tähemärgid: \"a-z\", \"A-Z\", \"0-9\" ja \"_.@-\"",
+ "A valid username must be provided" : "Sisesta nõuetele vastav kasutajatunnus",
+ "A valid password must be provided" : "Sisesta nõuetele vastav parool",
+ "The username is already being used" : "Kasutajanimi on juba kasutuses",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ühtegi andmebaasi (sqlite, mysql või postgresql) draiverit pole paigaldatud.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Õigused saab tavaliselt paika %s andes veebiserverile juurkataloogile kirjutusõigused %s",
+ "Cannot write into \"config\" directory" : "Ei saa kirjutada \"config\" kataloogi",
+ "Cannot write into \"apps\" directory" : "Ei saa kirjutada \"apps\" kataloogi!",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Tavaliselt saab selle lahendada %s andes veebiserverile rakendite kataloogile kirjutusõigused %s või keelates seadetes rakendikogu.",
+ "Cannot create \"data\" directory (%s)" : "Ei suuda luua \"data\" kataloogi (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Tavaliselt saab selle lahendada andes veebiserverile juur-kataloogile kirjutusõigused .",
+ "Setting locale to %s failed" : "Lokaadi %s määramine ebaõnnestus.",
+ "Please install one of these locales on your system and restart your webserver." : "Palun paigalda mõni neist lokaatides oma süsteemi ning taaskäivita veebiserver.",
+ "Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.",
+ "PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.",
+ "PHP %s or higher is required." : "PHP %s või uuem on nõutav.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Palu oma serveri haldajal uuendada PHP viimasele versioonile. Sinu PHP versioon pole enam toetatud ownCloud-i ja PHP kogukonna poolt.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode on lubatud. ownCloud vajab normaalseks toimimiseks, et see oleks keelatud.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode on aegunud ja üldiselt kasutu seadistus, mis tuleks keelata. Palu oma serveri haldajal see keelata php.ini failis või veebiserveri seadetes.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes on lubatud. ownCloud vajab normaalseks toimimiseks, et see oleks keelatud.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes on aegunud ja üldiselt kasutu seadistus, mis tuleks keelata. Palu oma serveri haldajal see keelata php.ini failis või veebiserveri seadetes.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
+ "Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 on nõutav",
+ "Please upgrade your database version" : "Palun uuenda oma andmebaasi versiooni",
+ "Error occurred while checking PostgreSQL version" : "Viga PostgreSQL versiooni kontrollimisel",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Palun veendu, et kasutad PostgreSQL >=9 või vaata logidest vea kohta detailsemat informatsiooni",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Palun muuda kataloogi õigused 0770-ks, et kataloogi sisu poleks teistele kasutajatele nähtav",
+ "Data directory (%s) is readable by other users" : "Andmete kataloog (%s) on teistele kasutajate loetav",
+ "Data directory (%s) is invalid" : "Andmete kataloog (%s) pole korrektne",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Palun veendu, et andmete kataloogis sisaldub fail \".ocdata\" ",
+ "Could not obtain lock type %d on \"%s\"." : "Ei suutnud hankida %d tüüpi lukustust \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/et_EE.php b/lib/l10n/et_EE.php
deleted file mode 100644
index 8adc51dd118..00000000000
--- a/lib/l10n/et_EE.php
+++ /dev/null
@@ -1,121 +0,0 @@
- "Ei saa kirjutada \"config\" kataloogi!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Tavaliselt saab selle lahendada andes veebiserverile seatete kataloogile \"config\" kirjutusõigused",
-"See %s" => "Vaata %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Tavaliselt saab selle lahendada %s andes veebiserverile seadete kataloogile \"config\" kirjutusõigused %s",
-"Sample configuration detected" => "Tuvastati näidisseaded",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni",
-"Help" => "Abiinfo",
-"Personal" => "Isiklik",
-"Settings" => "Seaded",
-"Users" => "Kasutajad",
-"Admin" => "Admin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Rakendit \\\"%s\\\" ei saa paigaldada, kuna see pole ühilduv selle ownCloud versiooniga.",
-"No app name specified" => "Ühegi rakendi nime pole määratletud",
-"Unknown filetype" => "Tundmatu failitüüp",
-"Invalid image" => "Vigane pilt",
-"web services under your control" => "veebitenused sinu kontrolli all",
-"App directory already exists" => "Rakendi kataloog on juba olemas",
-"Can't create app folder. Please fix permissions. %s" => "Ei saa luua rakendi kataloogi. Palun korrigeeri õigusi. %s",
-"No source specified when installing app" => "Ühegi lähteallikat pole rakendi paigalduseks määratletud",
-"No href specified when installing app from http" => "Ühtegi aadressi pole määratletud rakendi paigalduseks veebist",
-"No path specified when installing app from local file" => "Ühtegi teed pole määratletud paigaldamaks rakendit kohalikust failist",
-"Archives of type %s are not supported" => "%s tüüpi arhiivid pole toetatud",
-"Failed to open archive when installing app" => "Arhiivi avamine ebaõnnestus rakendi paigalduse käigus",
-"App does not provide an info.xml file" => "Rakend ei paku ühtegi info.xml faili",
-"App can't be installed because of not allowed code in the App" => "Rakendit ei saa paigaldada, kuna sisaldab lubamatud koodi",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Rakendit ei saa paigaldada, kuna see pole ühilduv selle ownCloud versiooniga.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Rakendit ei saa paigaldada, kuna see sisaldab \n\n\ntrue\n \nmärgendit, mis pole lubatud mitte veetud (non shipped) rakendites",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Rakendit ei saa paigaldada, kuna selle versioon info.xml/version pole sama, mis on märgitud rakendite laos.",
-"Application is not enabled" => "Rakendus pole sisse lülitatud",
-"Authentication error" => "Autentimise viga",
-"Token expired. Please reload page." => "Kontrollkood aegus. Paelun lae leht uuesti.",
-"Unknown user" => "Tundmatu kasutaja",
-"%s enter the database username." => "%s sisesta andmebaasi kasutajatunnus.",
-"%s enter the database name." => "%s sisesta andmebaasi nimi.",
-"%s you may not use dots in the database name" => "%s punktide kasutamine andmebaasi nimes pole lubatud",
-"MS SQL username and/or password not valid: %s" => "MS SQL kasutajatunnus ja/või parool pole õiged: %s",
-"You need to enter either an existing account or the administrator." => "Sisesta kas juba olemasolev konto või administrator.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB kasutajatunnus ja/või parool pole õiged",
-"DB Error: \"%s\"" => "Andmebaasi viga: \"%s\"",
-"Offending command was: \"%s\"" => "Tõrkuv käsk oli: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB kasutaja '%s'@'localhost' on juba olemas.",
-"Drop this user from MySQL/MariaDB" => "Kustuta see MySQL/MariaDB kasutaja",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB user '%s'@'%%' on juba olemas",
-"Drop this user from MySQL/MariaDB." => "Kustuta see MySQL/MariaDB kasutaja.",
-"Oracle connection could not be established" => "Ei suuda luua ühendust Oracle baasiga",
-"Oracle username and/or password not valid" => "Oracle kasutajatunnus ja/või parool pole õiged",
-"Offending command was: \"%s\", name: %s, password: %s" => "Tõrkuv käsk oli: \"%s\", nimi: %s, parool: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL kasutajatunnus ja/või parool pole õiged",
-"Set an admin username." => "Määra admin kasutajanimi.",
-"Set an admin password." => "Määra admini parool.",
-"%s shared »%s« with you" => "%s jagas sinuga »%s«",
-"Sharing %s failed, because the file does not exist" => "%s jagamine ebaõnnestus, kuna faili pole olemas",
-"You are not allowed to share %s" => "Sul pole lubatud %s jagada",
-"Sharing %s failed, because the user %s is the item owner" => "%s jagamine ebaõnnestus, kuna kuna kasutaja %s on üksuse omanik",
-"Sharing %s failed, because the user %s does not exist" => "%s jagamine ebaõnnestus, kuna kasutajat %s pole olemas",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "%s jagamine ebaõnnestus, kuna kasutaja %s pole ühegi grupi liige, millede liige on %s",
-"Sharing %s failed, because this item is already shared with %s" => "%s jagamine ebaõnnestus, kuna see üksus on juba jagatud %s",
-"Sharing %s failed, because the group %s does not exist" => "%s jagamine ebaõnnestus, kuna gruppi %s pole olemas",
-"Sharing %s failed, because %s is not a member of the group %s" => "%s jagamine ebaõnnestus, kuna %s pole grupi %s liige",
-"You need to provide a password to create a public link, only protected links are allowed" => "Avaliku viite tekitamiseks pead sisestama parooli, ainult kaitstud viited on lubatud",
-"Sharing %s failed, because sharing with links is not allowed" => "%s jagamine ebaõnnestus, kuna linkidega jagamine pole lubatud",
-"Share type %s is not valid for %s" => "Jagamise tüüp %s ei ole õige %s jaoks",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Lubade seadistus %s jaoks ebaõnnestus, kuna antud õigused ületavad %s jaoks määratud õigusi",
-"Setting permissions for %s failed, because the item was not found" => "Lubade seadistus %s jaoks ebaõnnestus, kuna üksust ei leitud",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Aegumise kuupäeva ei saa määrata. Jagamised ei saa aeguda hiljem kui %s peale jagamist.",
-"Cannot set expiration date. Expiration date is in the past" => "Aegumiskuupäeva ei saa määrata. Aegumise kuupäev on minevikus",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Jagamise tagarakend %s peab kasutusele võtma OCP\\Share_Backend liidese",
-"Sharing backend %s not found" => "Jagamise tagarakendit %s ei leitud",
-"Sharing backend for %s not found" => "Jagamise tagarakendit %s jaoks ei leitud",
-"Sharing %s failed, because the user %s is the original sharer" => "%s jagamine ebaõnnestus, kuna kasutaja %s on algne jagaja",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "%s jagamine ebaõnnestus, kuna antud õigused ületavad %s jaoks määratud õigusi",
-"Sharing %s failed, because resharing is not allowed" => "%s jagamine ebaõnnestus, kuna edasijagamine pole lubatud",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "%s jagamine ebaõnnestus, kuna jagamise tagarakend ei suutnud leida %s jaoks lähteallikat",
-"Sharing %s failed, because the file could not be found in the file cache" => "%s jagamine ebaõnnestus, kuna faili ei suudetud leida failide puhvrist",
-"Could not find category \"%s\"" => "Ei leia kategooriat \"%s\"",
-"seconds ago" => "sekundit tagasi",
-"_%n minute ago_::_%n minutes ago_" => array("","%n minutit tagasi"),
-"_%n hour ago_::_%n hours ago_" => array("","%n tundi tagasi"),
-"today" => "täna",
-"yesterday" => "eile",
-"_%n day go_::_%n days ago_" => array("","%n päeva tagasi"),
-"last month" => "viimasel kuul",
-"_%n month ago_::_%n months ago_" => array("","%n kuud tagasi"),
-"last year" => "viimasel aastal",
-"years ago" => "aastat tagasi",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Kasutajanimes on lubatud ainult järgnevad tähemärgid: \"a-z\", \"A-Z\", \"0-9\" ja \"_.@-\"",
-"A valid username must be provided" => "Sisesta nõuetele vastav kasutajatunnus",
-"A valid password must be provided" => "Sisesta nõuetele vastav parool",
-"The username is already being used" => "Kasutajanimi on juba kasutuses",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Ühtegi andmebaasi (sqlite, mysql või postgresql) draiverit pole paigaldatud.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Õigused saab tavaliselt paika %s andes veebiserverile juurkataloogile kirjutusõigused %s",
-"Cannot write into \"config\" directory" => "Ei saa kirjutada \"config\" kataloogi",
-"Cannot write into \"apps\" directory" => "Ei saa kirjutada \"apps\" kataloogi!",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Tavaliselt saab selle lahendada %s andes veebiserverile rakendite kataloogile kirjutusõigused %s või keelates seadetes rakendikogu.",
-"Cannot create \"data\" directory (%s)" => "Ei suuda luua \"data\" kataloogi (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Tavaliselt saab selle lahendada andes veebiserverile juur-kataloogile kirjutusõigused .",
-"Setting locale to %s failed" => "Lokaadi %s määramine ebaõnnestus.",
-"Please install one of these locales on your system and restart your webserver." => "Palun paigalda mõni neist lokaatides oma süsteemi ning taaskäivita veebiserver.",
-"Please ask your server administrator to install the module." => "Palu oma serveri haldajal moodul paigadalda.",
-"PHP module %s not installed." => "PHP moodulit %s pole paigaldatud.",
-"PHP %s or higher is required." => "PHP %s või uuem on nõutav.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Palu oma serveri haldajal uuendada PHP viimasele versioonile. Sinu PHP versioon pole enam toetatud ownCloud-i ja PHP kogukonna poolt.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode on lubatud. ownCloud vajab normaalseks toimimiseks, et see oleks keelatud.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode on aegunud ja üldiselt kasutu seadistus, mis tuleks keelata. Palu oma serveri haldajal see keelata php.ini failis või veebiserveri seadetes.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes on lubatud. ownCloud vajab normaalseks toimimiseks, et see oleks keelatud.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes on aegunud ja üldiselt kasutu seadistus, mis tuleks keelata. Palu oma serveri haldajal see keelata php.ini failis või veebiserveri seadetes.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
-"Please ask your server administrator to restart the web server." => "Palu oma serveri haldajal veebiserver taaskäivitada.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 on nõutav",
-"Please upgrade your database version" => "Palun uuenda oma andmebaasi versiooni",
-"Error occurred while checking PostgreSQL version" => "Viga PostgreSQL versiooni kontrollimisel",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Palun veendu, et kasutad PostgreSQL >=9 või vaata logidest vea kohta detailsemat informatsiooni",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Palun muuda kataloogi õigused 0770-ks, et kataloogi sisu poleks teistele kasutajatele nähtav",
-"Data directory (%s) is readable by other users" => "Andmete kataloog (%s) on teistele kasutajate loetav",
-"Data directory (%s) is invalid" => "Andmete kataloog (%s) pole korrektne",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Palun veendu, et andmete kataloogis sisaldub fail \".ocdata\" ",
-"Could not obtain lock type %d on \"%s\"." => "Ei suutnud hankida %d tüüpi lukustust \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/eu.js b/lib/l10n/eu.js
new file mode 100644
index 00000000000..b5b6b7d364b
--- /dev/null
+++ b/lib/l10n/eu.js
@@ -0,0 +1,124 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Ezin da idatzi \"config\" karpetan!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Hau normalean konpondu daitekesweb zerbitzarira config karpetan idazteko baimenak emanez",
+ "See %s" : "Ikusi %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Hau normalean konpondu daiteke %sweb zerbitzarira config karpetan idazteko baimenak emanez%s.",
+ "Sample configuration detected" : "Adibide-ezarpena detektatua",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Detektatu da adibide-ezarpena kopiatu dela. Honek zure instalazioa apur dezake eta ez da onartzen. Irakurri dokumentazioa config.php fitxategia aldatu aurretik.",
+ "Help" : "Laguntza",
+ "Personal" : "Pertsonala",
+ "Settings" : "Ezarpenak",
+ "Users" : "Erabiltzaileak",
+ "Admin" : "Admin",
+ "Recommended" : "Aholkatuta",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "\\\"%s\\\" Aplikazioa ezin da instalatu ownCloud bertsio honekin bateragarria ez delako.",
+ "No app name specified" : "Ez da aplikazioaren izena zehaztu",
+ "Unknown filetype" : "Fitxategi mota ezezaguna",
+ "Invalid image" : "Baliogabeko irudia",
+ "web services under your control" : "web zerbitzuak zure kontrolpean",
+ "App directory already exists" : "Aplikazioaren karpeta dagoeneko existitzen da",
+ "Can't create app folder. Please fix permissions. %s" : "Ezin izan da aplikazioaren karpeta sortu. Mesdez konpondu baimenak. %s",
+ "No source specified when installing app" : "Ez da jatorririk zehaztu aplikazioa instalatzerakoan",
+ "No href specified when installing app from http" : "Ez da href parametrorik zehaztu http bidez aplikazioa instalatzerakoan",
+ "No path specified when installing app from local file" : "Ez da kokalekurik zehaztu fitxategi lokal moduan aplikazioa instalatzerakoan",
+ "Archives of type %s are not supported" : "%s motako fitxategiak ez dira onartzen",
+ "Failed to open archive when installing app" : "Fitxategia irekitzeak huts egin du aplikazioa instalatzerakoan",
+ "App does not provide an info.xml file" : "Aplikazioak ez du info.xml fitxategia",
+ "App can't be installed because of not allowed code in the App" : "Aplikazioa ezin da instalatu bertan duen baimendu gabeko kodea dela eta",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Aplikazioa ezin da instalatu ownCloud bertsio honekin bateragarria ez delako",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Aplikazioa ezin da instalatu true etiketa duelako eta etiketa hau ez da onartzen banaketan ez datozen aplikazioetan",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Aplikazioa ezin da instalatu info.xml/version bertsioa ez delako \"app store\"an jartzen duenaren berdina",
+ "Application is not enabled" : "Aplikazioa ez dago gaituta",
+ "Authentication error" : "Autentifikazio errorea",
+ "Token expired. Please reload page." : "Tokena iraungitu da. Mesedez birkargatu orria.",
+ "Unknown user" : "Erabiltzaile ezezaguna",
+ "%s enter the database username." : "%s sartu datu basearen erabiltzaile izena.",
+ "%s enter the database name." : "%s sartu datu basearen izena.",
+ "%s you may not use dots in the database name" : "%s ezin duzu punturik erabili datu basearen izenean.",
+ "MS SQL username and/or password not valid: %s" : "MS SQL erabiltzaile izena edota pasahitza ez dira egokiak: %s",
+ "You need to enter either an existing account or the administrator." : "Existitzen den kontu bat edo administradorearena jarri behar duzu.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB erabiltzaile edota pasahitza ez dira egokiak",
+ "DB Error: \"%s\"" : "DB errorea: \"%s\"",
+ "Offending command was: \"%s\"" : "Errorea komando honek sortu du: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB '%s'@'localhost' erabiltzailea dagoeneko existitzen da.",
+ "Drop this user from MySQL/MariaDB" : "Ezabatu erabiltzaile hau MySQL/MariaDBtik",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB '%s'@'%%' erabiltzailea dagoeneko existitzen da",
+ "Drop this user from MySQL/MariaDB." : "Ezabatu erabiltzaile hau MySQL/MariaDBtik.",
+ "Oracle connection could not be established" : "Ezin da Oracle konexioa sortu",
+ "Oracle username and/or password not valid" : "Oracle erabiltzaile edota pasahitza ez dira egokiak.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Errorea komando honek sortu du: \"%s\", izena: %s, pasahitza: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL erabiltzaile edota pasahitza ez dira egokiak.",
+ "Set an admin username." : "Ezarri administraziorako erabiltzaile izena.",
+ "Set an admin password." : "Ezarri administraziorako pasahitza.",
+ "Can't create or write into the data directory %s" : "Ezin da %s datu karpeta sortu edo bertan idatzi ",
+ "%s shared »%s« with you" : "%s-ek »%s« zurekin partekatu du",
+ "Sharing %s failed, because the file does not exist" : "%s elkarbanatzeak huts egin du, fitxategia ez delako existitzen",
+ "You are not allowed to share %s" : "Ez zadue %s elkarbanatzeko baimendua",
+ "Sharing %s failed, because the user %s is the item owner" : "%s elkarbanatzeak huts egin du, %s erabiltzailea jabea delako",
+ "Sharing %s failed, because the user %s does not exist" : "%s elkarbanatzeak huts egin du, %s erabiltzailea existitzen ez delako",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s elkarbanatzeak huts egin du, %s erabiltzailea ez delako %s partaide den talderen bateko partaidea",
+ "Sharing %s failed, because this item is already shared with %s" : "%s elkarbanatzeak huts egin du, dagoeneko %s erabiltzailearekin elkarbanatuta dagoelako",
+ "Sharing %s failed, because the group %s does not exist" : "%s elkarbanatzeak huts egin du, %s taldea ez delako existitzen",
+ "Sharing %s failed, because %s is not a member of the group %s" : "%s elkarbanatzeak huts egin du, %s ez delako %s taldearen partaidea",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Lotura publiko bat sortzeko pasahitza idatzi behar duzu, bakarrik babestutako loturak baimenduta daude",
+ "Sharing %s failed, because sharing with links is not allowed" : "%s elkarbanatzeak huts egin du, lotura bidezko elkarbanatzea baimendua ez dagoelako",
+ "Share type %s is not valid for %s" : "%s elkarbanaketa mota ez da %srentzako egokia",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%srentzako baimenak ezartzea huts egin du, baimenak %sri emandakoak baino gehiago direlako",
+ "Setting permissions for %s failed, because the item was not found" : "%srentzako baimenak ezartzea huts egin du, aurkitu ez delako",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Ezin izan da jarri iraungitze data. Konpartitzea ezin da iraungi konpartitu eta %s ondoren.",
+ "Cannot set expiration date. Expiration date is in the past" : "Ezin da jarri iraungitze data. Iraungitze data iragan da.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "%s elkarbanaketa motorra OCP\\Share_Backend interfazea inplementatu behar du ",
+ "Sharing backend %s not found" : "Ez da %s elkarbanaketa motorra aurkitu",
+ "Sharing backend for %s not found" : "Ez da %srako elkarbanaketa motorrik aurkitu",
+ "Sharing %s failed, because the user %s is the original sharer" : "%s elkarbanatzeak huts egin du, %s erabiltzailea jatorrizko elkarbanatzailea delako",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s elkarbanatzeak huts egin du, baimenak %sri emandakoak baino gehiago direlako",
+ "Sharing %s failed, because resharing is not allowed" : "%s elkarbanatzeak huts egin du, ber-elkarbanatzea baimenduta ez dagoelako",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s elkarbanatzeak huts egin du, %sren elkarbanaketa motorrak bere iturria aurkitu ezin duelako",
+ "Sharing %s failed, because the file could not be found in the file cache" : "%s elkarbanatzeak huts egin du, fitxategia katxean aurkitu ez delako",
+ "Could not find category \"%s\"" : "Ezin da \"%s\" kategoria aurkitu",
+ "seconds ago" : "segundu",
+ "_%n minute ago_::_%n minutes ago_" : ["orain dela minutu %n","orain dela %n minutu"],
+ "_%n hour ago_::_%n hours ago_" : ["orain dela ordu %n","orain dela %n ordu"],
+ "today" : "gaur",
+ "yesterday" : "atzo",
+ "_%n day go_::_%n days ago_" : ["orain dela egun %n","orain dela %n egun"],
+ "last month" : "joan den hilabetean",
+ "_%n month ago_::_%n months ago_" : ["orain dela hilabete %n","orain dela %n hilabete"],
+ "last year" : "joan den urtean",
+ "years ago" : "urte",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Bakarrik hurrengo karaketerak onartzen dira erabiltzaile izenean: \"a-z\", \"A-Z\", \"0-9\", eta \"_.@-\"",
+ "A valid username must be provided" : "Baliozko erabiltzaile izena eman behar da",
+ "A valid password must be provided" : "Baliozko pasahitza eman behar da",
+ "The username is already being used" : "Erabiltzaile izena dagoeneko erabiltzen ari da",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ez dago datubaseen (sqlite, mysql edo postgresql) driverrik instalatuta.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Hau normalean konpondu daiteke %sweb zerbitzarira erro karpetan idazteko baimenak emanez%s.",
+ "Cannot write into \"config\" directory" : "Ezin da idatzi \"config\" karpetan",
+ "Cannot write into \"apps\" directory" : "Ezin da idatzi \"apps\" karpetan",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Hau normalean konpondu daiteke %sweb zerbitzarira apps karpetan idazteko baimenak emanez%s edo konfigurazio fitxategian appstorea ez gaituz.",
+ "Cannot create \"data\" directory (%s)" : "Ezin da \"data\" karpeta sortu (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Hau normalean konpondu daiteke web zerbitzarira erro karpetan idazteko baimenak emanez .",
+ "Setting locale to %s failed" : "Lokala %sra ezartzeak huts egin du",
+ "Please install one of these locales on your system and restart your webserver." : "Instalatu hauetako lokal bat zure sisteman eta berrabiarazi zure web zerbitzaria.",
+ "Please ask your server administrator to install the module." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari modulua instala dezan.",
+ "PHP module %s not installed." : "PHPren %s modulua ez dago instalaturik.",
+ "PHP %s or higher is required." : "PHP %s edo berriagoa behar da.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari PHP azkenengo bertsiora eguneratzea. Zure PHP bertsioa ez dute ez ownCloud eta ez PHP komunitateek mantentzen.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP SafeMode gaitua dago. ownCloudek ongi funtzionatzeko desgaitua behar du.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode ia erabiligabeko ezarpen zahar bat da eta desgaituta egon beharko luke. Mesedez eskatu zerbitzariaren kudeatzaileari php.ini edo zure web zerbitzariaren konfigurazioan desgaitu dezan.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes gaitua dago. ownCloudek ongi funtzionatzeko desgaitua behar du.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ia erabiligabeko ezarpen zahar bat da eta desgaituta egon beharko luke. Mesedez eskatu zerbitzariaren kudeatzaileari php.ini edo zure web zerbitzariaren konfigurazioan desgaitu dezan.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moduluak instalatu dira, baina oraindik faltan bezala markatuta daude?",
+ "Please ask your server administrator to restart the web server." : "Mesedez eskatu zerbitzariaren kudeatzaileari web zerbitzaria berrabiarazteko.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 behar da",
+ "Please upgrade your database version" : "Mesedez eguneratu zure datu basearen bertsioa",
+ "Error occurred while checking PostgreSQL version" : "Errore bat gertatu da PostgreSQLren bertsioa egiaztatzerakoan",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Mesedez ziurtatu PostgreSQL >= 9 duzula edo begiratu logak erroreari buruzko informazio gehiago lortzeko",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Mesedez aldatu baimenak 0770ra beste erabiltzaileek karpetan sartu ezin izateko.",
+ "Data directory (%s) is readable by other users" : "Data karpeta (%s) beste erabiltzaileek irakur dezakete",
+ "Data directory (%s) is invalid" : "Datuen karpeta (%s) ez da baliogarria",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Mesedez egiaztatu data karpeta \".ocdata\" fitxategia duela bere erroan.",
+ "Could not obtain lock type %d on \"%s\"." : "Ezin da lortu sarraia mota %d \"%s\"-an."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/eu.json b/lib/l10n/eu.json
new file mode 100644
index 00000000000..77a7f6f095e
--- /dev/null
+++ b/lib/l10n/eu.json
@@ -0,0 +1,122 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Ezin da idatzi \"config\" karpetan!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Hau normalean konpondu daitekesweb zerbitzarira config karpetan idazteko baimenak emanez",
+ "See %s" : "Ikusi %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Hau normalean konpondu daiteke %sweb zerbitzarira config karpetan idazteko baimenak emanez%s.",
+ "Sample configuration detected" : "Adibide-ezarpena detektatua",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Detektatu da adibide-ezarpena kopiatu dela. Honek zure instalazioa apur dezake eta ez da onartzen. Irakurri dokumentazioa config.php fitxategia aldatu aurretik.",
+ "Help" : "Laguntza",
+ "Personal" : "Pertsonala",
+ "Settings" : "Ezarpenak",
+ "Users" : "Erabiltzaileak",
+ "Admin" : "Admin",
+ "Recommended" : "Aholkatuta",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "\\\"%s\\\" Aplikazioa ezin da instalatu ownCloud bertsio honekin bateragarria ez delako.",
+ "No app name specified" : "Ez da aplikazioaren izena zehaztu",
+ "Unknown filetype" : "Fitxategi mota ezezaguna",
+ "Invalid image" : "Baliogabeko irudia",
+ "web services under your control" : "web zerbitzuak zure kontrolpean",
+ "App directory already exists" : "Aplikazioaren karpeta dagoeneko existitzen da",
+ "Can't create app folder. Please fix permissions. %s" : "Ezin izan da aplikazioaren karpeta sortu. Mesdez konpondu baimenak. %s",
+ "No source specified when installing app" : "Ez da jatorririk zehaztu aplikazioa instalatzerakoan",
+ "No href specified when installing app from http" : "Ez da href parametrorik zehaztu http bidez aplikazioa instalatzerakoan",
+ "No path specified when installing app from local file" : "Ez da kokalekurik zehaztu fitxategi lokal moduan aplikazioa instalatzerakoan",
+ "Archives of type %s are not supported" : "%s motako fitxategiak ez dira onartzen",
+ "Failed to open archive when installing app" : "Fitxategia irekitzeak huts egin du aplikazioa instalatzerakoan",
+ "App does not provide an info.xml file" : "Aplikazioak ez du info.xml fitxategia",
+ "App can't be installed because of not allowed code in the App" : "Aplikazioa ezin da instalatu bertan duen baimendu gabeko kodea dela eta",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Aplikazioa ezin da instalatu ownCloud bertsio honekin bateragarria ez delako",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Aplikazioa ezin da instalatu true etiketa duelako eta etiketa hau ez da onartzen banaketan ez datozen aplikazioetan",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Aplikazioa ezin da instalatu info.xml/version bertsioa ez delako \"app store\"an jartzen duenaren berdina",
+ "Application is not enabled" : "Aplikazioa ez dago gaituta",
+ "Authentication error" : "Autentifikazio errorea",
+ "Token expired. Please reload page." : "Tokena iraungitu da. Mesedez birkargatu orria.",
+ "Unknown user" : "Erabiltzaile ezezaguna",
+ "%s enter the database username." : "%s sartu datu basearen erabiltzaile izena.",
+ "%s enter the database name." : "%s sartu datu basearen izena.",
+ "%s you may not use dots in the database name" : "%s ezin duzu punturik erabili datu basearen izenean.",
+ "MS SQL username and/or password not valid: %s" : "MS SQL erabiltzaile izena edota pasahitza ez dira egokiak: %s",
+ "You need to enter either an existing account or the administrator." : "Existitzen den kontu bat edo administradorearena jarri behar duzu.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB erabiltzaile edota pasahitza ez dira egokiak",
+ "DB Error: \"%s\"" : "DB errorea: \"%s\"",
+ "Offending command was: \"%s\"" : "Errorea komando honek sortu du: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB '%s'@'localhost' erabiltzailea dagoeneko existitzen da.",
+ "Drop this user from MySQL/MariaDB" : "Ezabatu erabiltzaile hau MySQL/MariaDBtik",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB '%s'@'%%' erabiltzailea dagoeneko existitzen da",
+ "Drop this user from MySQL/MariaDB." : "Ezabatu erabiltzaile hau MySQL/MariaDBtik.",
+ "Oracle connection could not be established" : "Ezin da Oracle konexioa sortu",
+ "Oracle username and/or password not valid" : "Oracle erabiltzaile edota pasahitza ez dira egokiak.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Errorea komando honek sortu du: \"%s\", izena: %s, pasahitza: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL erabiltzaile edota pasahitza ez dira egokiak.",
+ "Set an admin username." : "Ezarri administraziorako erabiltzaile izena.",
+ "Set an admin password." : "Ezarri administraziorako pasahitza.",
+ "Can't create or write into the data directory %s" : "Ezin da %s datu karpeta sortu edo bertan idatzi ",
+ "%s shared »%s« with you" : "%s-ek »%s« zurekin partekatu du",
+ "Sharing %s failed, because the file does not exist" : "%s elkarbanatzeak huts egin du, fitxategia ez delako existitzen",
+ "You are not allowed to share %s" : "Ez zadue %s elkarbanatzeko baimendua",
+ "Sharing %s failed, because the user %s is the item owner" : "%s elkarbanatzeak huts egin du, %s erabiltzailea jabea delako",
+ "Sharing %s failed, because the user %s does not exist" : "%s elkarbanatzeak huts egin du, %s erabiltzailea existitzen ez delako",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s elkarbanatzeak huts egin du, %s erabiltzailea ez delako %s partaide den talderen bateko partaidea",
+ "Sharing %s failed, because this item is already shared with %s" : "%s elkarbanatzeak huts egin du, dagoeneko %s erabiltzailearekin elkarbanatuta dagoelako",
+ "Sharing %s failed, because the group %s does not exist" : "%s elkarbanatzeak huts egin du, %s taldea ez delako existitzen",
+ "Sharing %s failed, because %s is not a member of the group %s" : "%s elkarbanatzeak huts egin du, %s ez delako %s taldearen partaidea",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Lotura publiko bat sortzeko pasahitza idatzi behar duzu, bakarrik babestutako loturak baimenduta daude",
+ "Sharing %s failed, because sharing with links is not allowed" : "%s elkarbanatzeak huts egin du, lotura bidezko elkarbanatzea baimendua ez dagoelako",
+ "Share type %s is not valid for %s" : "%s elkarbanaketa mota ez da %srentzako egokia",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%srentzako baimenak ezartzea huts egin du, baimenak %sri emandakoak baino gehiago direlako",
+ "Setting permissions for %s failed, because the item was not found" : "%srentzako baimenak ezartzea huts egin du, aurkitu ez delako",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Ezin izan da jarri iraungitze data. Konpartitzea ezin da iraungi konpartitu eta %s ondoren.",
+ "Cannot set expiration date. Expiration date is in the past" : "Ezin da jarri iraungitze data. Iraungitze data iragan da.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "%s elkarbanaketa motorra OCP\\Share_Backend interfazea inplementatu behar du ",
+ "Sharing backend %s not found" : "Ez da %s elkarbanaketa motorra aurkitu",
+ "Sharing backend for %s not found" : "Ez da %srako elkarbanaketa motorrik aurkitu",
+ "Sharing %s failed, because the user %s is the original sharer" : "%s elkarbanatzeak huts egin du, %s erabiltzailea jatorrizko elkarbanatzailea delako",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s elkarbanatzeak huts egin du, baimenak %sri emandakoak baino gehiago direlako",
+ "Sharing %s failed, because resharing is not allowed" : "%s elkarbanatzeak huts egin du, ber-elkarbanatzea baimenduta ez dagoelako",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s elkarbanatzeak huts egin du, %sren elkarbanaketa motorrak bere iturria aurkitu ezin duelako",
+ "Sharing %s failed, because the file could not be found in the file cache" : "%s elkarbanatzeak huts egin du, fitxategia katxean aurkitu ez delako",
+ "Could not find category \"%s\"" : "Ezin da \"%s\" kategoria aurkitu",
+ "seconds ago" : "segundu",
+ "_%n minute ago_::_%n minutes ago_" : ["orain dela minutu %n","orain dela %n minutu"],
+ "_%n hour ago_::_%n hours ago_" : ["orain dela ordu %n","orain dela %n ordu"],
+ "today" : "gaur",
+ "yesterday" : "atzo",
+ "_%n day go_::_%n days ago_" : ["orain dela egun %n","orain dela %n egun"],
+ "last month" : "joan den hilabetean",
+ "_%n month ago_::_%n months ago_" : ["orain dela hilabete %n","orain dela %n hilabete"],
+ "last year" : "joan den urtean",
+ "years ago" : "urte",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Bakarrik hurrengo karaketerak onartzen dira erabiltzaile izenean: \"a-z\", \"A-Z\", \"0-9\", eta \"_.@-\"",
+ "A valid username must be provided" : "Baliozko erabiltzaile izena eman behar da",
+ "A valid password must be provided" : "Baliozko pasahitza eman behar da",
+ "The username is already being used" : "Erabiltzaile izena dagoeneko erabiltzen ari da",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ez dago datubaseen (sqlite, mysql edo postgresql) driverrik instalatuta.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Hau normalean konpondu daiteke %sweb zerbitzarira erro karpetan idazteko baimenak emanez%s.",
+ "Cannot write into \"config\" directory" : "Ezin da idatzi \"config\" karpetan",
+ "Cannot write into \"apps\" directory" : "Ezin da idatzi \"apps\" karpetan",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Hau normalean konpondu daiteke %sweb zerbitzarira apps karpetan idazteko baimenak emanez%s edo konfigurazio fitxategian appstorea ez gaituz.",
+ "Cannot create \"data\" directory (%s)" : "Ezin da \"data\" karpeta sortu (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Hau normalean konpondu daiteke web zerbitzarira erro karpetan idazteko baimenak emanez .",
+ "Setting locale to %s failed" : "Lokala %sra ezartzeak huts egin du",
+ "Please install one of these locales on your system and restart your webserver." : "Instalatu hauetako lokal bat zure sisteman eta berrabiarazi zure web zerbitzaria.",
+ "Please ask your server administrator to install the module." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari modulua instala dezan.",
+ "PHP module %s not installed." : "PHPren %s modulua ez dago instalaturik.",
+ "PHP %s or higher is required." : "PHP %s edo berriagoa behar da.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari PHP azkenengo bertsiora eguneratzea. Zure PHP bertsioa ez dute ez ownCloud eta ez PHP komunitateek mantentzen.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP SafeMode gaitua dago. ownCloudek ongi funtzionatzeko desgaitua behar du.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode ia erabiligabeko ezarpen zahar bat da eta desgaituta egon beharko luke. Mesedez eskatu zerbitzariaren kudeatzaileari php.ini edo zure web zerbitzariaren konfigurazioan desgaitu dezan.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes gaitua dago. ownCloudek ongi funtzionatzeko desgaitua behar du.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes ia erabiligabeko ezarpen zahar bat da eta desgaituta egon beharko luke. Mesedez eskatu zerbitzariaren kudeatzaileari php.ini edo zure web zerbitzariaren konfigurazioan desgaitu dezan.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moduluak instalatu dira, baina oraindik faltan bezala markatuta daude?",
+ "Please ask your server administrator to restart the web server." : "Mesedez eskatu zerbitzariaren kudeatzaileari web zerbitzaria berrabiarazteko.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 behar da",
+ "Please upgrade your database version" : "Mesedez eguneratu zure datu basearen bertsioa",
+ "Error occurred while checking PostgreSQL version" : "Errore bat gertatu da PostgreSQLren bertsioa egiaztatzerakoan",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Mesedez ziurtatu PostgreSQL >= 9 duzula edo begiratu logak erroreari buruzko informazio gehiago lortzeko",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Mesedez aldatu baimenak 0770ra beste erabiltzaileek karpetan sartu ezin izateko.",
+ "Data directory (%s) is readable by other users" : "Data karpeta (%s) beste erabiltzaileek irakur dezakete",
+ "Data directory (%s) is invalid" : "Datuen karpeta (%s) ez da baliogarria",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Mesedez egiaztatu data karpeta \".ocdata\" fitxategia duela bere erroan.",
+ "Could not obtain lock type %d on \"%s\"." : "Ezin da lortu sarraia mota %d \"%s\"-an."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/eu.php b/lib/l10n/eu.php
deleted file mode 100644
index ce3512d1532..00000000000
--- a/lib/l10n/eu.php
+++ /dev/null
@@ -1,121 +0,0 @@
- "Ezin da idatzi \"config\" karpetan!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Hau normalean konpondu daitekesweb zerbitzarira config karpetan idazteko baimenak emanez",
-"See %s" => "Ikusi %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Hau normalean konpondu daiteke %sweb zerbitzarira config karpetan idazteko baimenak emanez%s.",
-"Sample configuration detected" => "Adibide-ezarpena detektatua",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Detektatu da adibide-ezarpena kopiatu dela. Honek zure instalazioa apur dezake eta ez da onartzen. Irakurri dokumentazioa config.php fitxategia aldatu aurretik.",
-"Help" => "Laguntza",
-"Personal" => "Pertsonala",
-"Settings" => "Ezarpenak",
-"Users" => "Erabiltzaileak",
-"Admin" => "Admin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "\\\"%s\\\" Aplikazioa ezin da instalatu ownCloud bertsio honekin bateragarria ez delako.",
-"No app name specified" => "Ez da aplikazioaren izena zehaztu",
-"Unknown filetype" => "Fitxategi mota ezezaguna",
-"Invalid image" => "Baliogabeko irudia",
-"web services under your control" => "web zerbitzuak zure kontrolpean",
-"App directory already exists" => "Aplikazioaren karpeta dagoeneko existitzen da",
-"Can't create app folder. Please fix permissions. %s" => "Ezin izan da aplikazioaren karpeta sortu. Mesdez konpondu baimenak. %s",
-"No source specified when installing app" => "Ez da jatorririk zehaztu aplikazioa instalatzerakoan",
-"No href specified when installing app from http" => "Ez da href parametrorik zehaztu http bidez aplikazioa instalatzerakoan",
-"No path specified when installing app from local file" => "Ez da kokalekurik zehaztu fitxategi lokal moduan aplikazioa instalatzerakoan",
-"Archives of type %s are not supported" => "%s motako fitxategiak ez dira onartzen",
-"Failed to open archive when installing app" => "Fitxategia irekitzeak huts egin du aplikazioa instalatzerakoan",
-"App does not provide an info.xml file" => "Aplikazioak ez du info.xml fitxategia",
-"App can't be installed because of not allowed code in the App" => "Aplikazioa ezin da instalatu bertan duen baimendu gabeko kodea dela eta",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Aplikazioa ezin da instalatu ownCloud bertsio honekin bateragarria ez delako",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Aplikazioa ezin da instalatu true etiketa duelako eta etiketa hau ez da onartzen banaketan ez datozen aplikazioetan",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Aplikazioa ezin da instalatu info.xml/version bertsioa ez delako \"app store\"an jartzen duenaren berdina",
-"Application is not enabled" => "Aplikazioa ez dago gaituta",
-"Authentication error" => "Autentifikazio errorea",
-"Token expired. Please reload page." => "Tokena iraungitu da. Mesedez birkargatu orria.",
-"Unknown user" => "Erabiltzaile ezezaguna",
-"%s enter the database username." => "%s sartu datu basearen erabiltzaile izena.",
-"%s enter the database name." => "%s sartu datu basearen izena.",
-"%s you may not use dots in the database name" => "%s ezin duzu punturik erabili datu basearen izenean.",
-"MS SQL username and/or password not valid: %s" => "MS SQL erabiltzaile izena edota pasahitza ez dira egokiak: %s",
-"You need to enter either an existing account or the administrator." => "Existitzen den kontu bat edo administradorearena jarri behar duzu.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB erabiltzaile edota pasahitza ez dira egokiak",
-"DB Error: \"%s\"" => "DB errorea: \"%s\"",
-"Offending command was: \"%s\"" => "Errorea komando honek sortu du: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB '%s'@'localhost' erabiltzailea dagoeneko existitzen da.",
-"Drop this user from MySQL/MariaDB" => "Ezabatu erabiltzaile hau MySQL/MariaDBtik",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB '%s'@'%%' erabiltzailea dagoeneko existitzen da",
-"Drop this user from MySQL/MariaDB." => "Ezabatu erabiltzaile hau MySQL/MariaDBtik.",
-"Oracle connection could not be established" => "Ezin da Oracle konexioa sortu",
-"Oracle username and/or password not valid" => "Oracle erabiltzaile edota pasahitza ez dira egokiak.",
-"Offending command was: \"%s\", name: %s, password: %s" => "Errorea komando honek sortu du: \"%s\", izena: %s, pasahitza: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL erabiltzaile edota pasahitza ez dira egokiak.",
-"Set an admin username." => "Ezarri administraziorako erabiltzaile izena.",
-"Set an admin password." => "Ezarri administraziorako pasahitza.",
-"%s shared »%s« with you" => "%s-ek »%s« zurekin partekatu du",
-"Sharing %s failed, because the file does not exist" => "%s elkarbanatzeak huts egin du, fitxategia ez delako existitzen",
-"You are not allowed to share %s" => "Ez zadue %s elkarbanatzeko baimendua",
-"Sharing %s failed, because the user %s is the item owner" => "%s elkarbanatzeak huts egin du, %s erabiltzailea jabea delako",
-"Sharing %s failed, because the user %s does not exist" => "%s elkarbanatzeak huts egin du, %s erabiltzailea existitzen ez delako",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "%s elkarbanatzeak huts egin du, %s erabiltzailea ez delako %s partaide den talderen bateko partaidea",
-"Sharing %s failed, because this item is already shared with %s" => "%s elkarbanatzeak huts egin du, dagoeneko %s erabiltzailearekin elkarbanatuta dagoelako",
-"Sharing %s failed, because the group %s does not exist" => "%s elkarbanatzeak huts egin du, %s taldea ez delako existitzen",
-"Sharing %s failed, because %s is not a member of the group %s" => "%s elkarbanatzeak huts egin du, %s ez delako %s taldearen partaidea",
-"You need to provide a password to create a public link, only protected links are allowed" => "Lotura publiko bat sortzeko pasahitza idatzi behar duzu, bakarrik babestutako loturak baimenduta daude",
-"Sharing %s failed, because sharing with links is not allowed" => "%s elkarbanatzeak huts egin du, lotura bidezko elkarbanatzea baimendua ez dagoelako",
-"Share type %s is not valid for %s" => "%s elkarbanaketa mota ez da %srentzako egokia",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "%srentzako baimenak ezartzea huts egin du, baimenak %sri emandakoak baino gehiago direlako",
-"Setting permissions for %s failed, because the item was not found" => "%srentzako baimenak ezartzea huts egin du, aurkitu ez delako",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Ezin izan da jarri iraungitze data. Konpartitzea ezin da iraungi konpartitu eta %s ondoren.",
-"Cannot set expiration date. Expiration date is in the past" => "Ezin da jarri iraungitze data. Iraungitze data iragan da.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "%s elkarbanaketa motorra OCP\\Share_Backend interfazea inplementatu behar du ",
-"Sharing backend %s not found" => "Ez da %s elkarbanaketa motorra aurkitu",
-"Sharing backend for %s not found" => "Ez da %srako elkarbanaketa motorrik aurkitu",
-"Sharing %s failed, because the user %s is the original sharer" => "%s elkarbanatzeak huts egin du, %s erabiltzailea jatorrizko elkarbanatzailea delako",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "%s elkarbanatzeak huts egin du, baimenak %sri emandakoak baino gehiago direlako",
-"Sharing %s failed, because resharing is not allowed" => "%s elkarbanatzeak huts egin du, ber-elkarbanatzea baimenduta ez dagoelako",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "%s elkarbanatzeak huts egin du, %sren elkarbanaketa motorrak bere iturria aurkitu ezin duelako",
-"Sharing %s failed, because the file could not be found in the file cache" => "%s elkarbanatzeak huts egin du, fitxategia katxean aurkitu ez delako",
-"Could not find category \"%s\"" => "Ezin da \"%s\" kategoria aurkitu",
-"seconds ago" => "segundu",
-"_%n minute ago_::_%n minutes ago_" => array("orain dela minutu %n","orain dela %n minutu"),
-"_%n hour ago_::_%n hours ago_" => array("orain dela ordu %n","orain dela %n ordu"),
-"today" => "gaur",
-"yesterday" => "atzo",
-"_%n day go_::_%n days ago_" => array("orain dela egun %n","orain dela %n egun"),
-"last month" => "joan den hilabetean",
-"_%n month ago_::_%n months ago_" => array("orain dela hilabete %n","orain dela %n hilabete"),
-"last year" => "joan den urtean",
-"years ago" => "urte",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Bakarrik hurrengo karaketerak onartzen dira erabiltzaile izenean: \"a-z\", \"A-Z\", \"0-9\", eta \"_.@-\"",
-"A valid username must be provided" => "Baliozko erabiltzaile izena eman behar da",
-"A valid password must be provided" => "Baliozko pasahitza eman behar da",
-"The username is already being used" => "Erabiltzaile izena dagoeneko erabiltzen ari da",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Ez dago datubaseen (sqlite, mysql edo postgresql) driverrik instalatuta.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Hau normalean konpondu daiteke %sweb zerbitzarira erro karpetan idazteko baimenak emanez%s.",
-"Cannot write into \"config\" directory" => "Ezin da idatzi \"config\" karpetan",
-"Cannot write into \"apps\" directory" => "Ezin da idatzi \"apps\" karpetan",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Hau normalean konpondu daiteke %sweb zerbitzarira apps karpetan idazteko baimenak emanez%s edo konfigurazio fitxategian appstorea ez gaituz.",
-"Cannot create \"data\" directory (%s)" => "Ezin da \"data\" karpeta sortu (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Hau normalean konpondu daiteke web zerbitzarira erro karpetan idazteko baimenak emanez .",
-"Setting locale to %s failed" => "Lokala %sra ezartzeak huts egin du",
-"Please install one of these locales on your system and restart your webserver." => "Instalatu hauetako lokal bat zure sisteman eta berrabiarazi zure web zerbitzaria.",
-"Please ask your server administrator to install the module." => "Mesedez eskatu zure zerbitzariaren kudeatzaileari modulua instala dezan.",
-"PHP module %s not installed." => "PHPren %s modulua ez dago instalaturik.",
-"PHP %s or higher is required." => "PHP %s edo berriagoa behar da.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Mesedez eskatu zure zerbitzariaren kudeatzaileari PHP azkenengo bertsiora eguneratzea. Zure PHP bertsioa ez dute ez ownCloud eta ez PHP komunitateek mantentzen.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP SafeMode gaitua dago. ownCloudek ongi funtzionatzeko desgaitua behar du.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode ia erabiligabeko ezarpen zahar bat da eta desgaituta egon beharko luke. Mesedez eskatu zerbitzariaren kudeatzaileari php.ini edo zure web zerbitzariaren konfigurazioan desgaitu dezan.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes gaitua dago. ownCloudek ongi funtzionatzeko desgaitua behar du.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes ia erabiligabeko ezarpen zahar bat da eta desgaituta egon beharko luke. Mesedez eskatu zerbitzariaren kudeatzaileari php.ini edo zure web zerbitzariaren konfigurazioan desgaitu dezan.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP moduluak instalatu dira, baina oraindik faltan bezala markatuta daude?",
-"Please ask your server administrator to restart the web server." => "Mesedez eskatu zerbitzariaren kudeatzaileari web zerbitzaria berrabiarazteko.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 behar da",
-"Please upgrade your database version" => "Mesedez eguneratu zure datu basearen bertsioa",
-"Error occurred while checking PostgreSQL version" => "Errore bat gertatu da PostgreSQLren bertsioa egiaztatzerakoan",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Mesedez ziurtatu PostgreSQL >= 9 duzula edo begiratu logak erroreari buruzko informazio gehiago lortzeko",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Mesedez aldatu baimenak 0770ra beste erabiltzaileek karpetan sartu ezin izateko.",
-"Data directory (%s) is readable by other users" => "Data karpeta (%s) beste erabiltzaileek irakur dezakete",
-"Data directory (%s) is invalid" => "Datuen karpeta (%s) ez da baliogarria",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Mesedez egiaztatu data karpeta \".ocdata\" fitxategia duela bere erroan.",
-"Could not obtain lock type %d on \"%s\"." => "Ezin da lortu sarraia mota %d \"%s\"-an."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/eu_ES.js b/lib/l10n/eu_ES.js
new file mode 100644
index 00000000000..a9f41884d58
--- /dev/null
+++ b/lib/l10n/eu_ES.js
@@ -0,0 +1,10 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Personal" : "Pertsonala",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/eu_ES.json b/lib/l10n/eu_ES.json
new file mode 100644
index 00000000000..9ac9f22cb92
--- /dev/null
+++ b/lib/l10n/eu_ES.json
@@ -0,0 +1,8 @@
+{ "translations": {
+ "Personal" : "Pertsonala",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/eu_ES.php b/lib/l10n/eu_ES.php
deleted file mode 100644
index 35192433a2a..00000000000
--- a/lib/l10n/eu_ES.php
+++ /dev/null
@@ -1,9 +0,0 @@
- "Pertsonala",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/fa.js b/lib/l10n/fa.js
new file mode 100644
index 00000000000..451274e4767
--- /dev/null
+++ b/lib/l10n/fa.js
@@ -0,0 +1,43 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "راهنما",
+ "Personal" : "شخصی",
+ "Settings" : "تنظیمات",
+ "Users" : "کاربران",
+ "Admin" : "مدیر",
+ "Unknown filetype" : "نوع فایل ناشناخته",
+ "Invalid image" : "عکس نامعتبر",
+ "web services under your control" : "سرویس های تحت وب در کنترل شما",
+ "Application is not enabled" : "برنامه فعال نشده است",
+ "Authentication error" : "خطا در اعتبار سنجی",
+ "Token expired. Please reload page." : "رمز منقضی شده است. لطفا دوباره صفحه را بارگذاری نمایید.",
+ "%s enter the database username." : "%s نام کاربری پایگاه داده را وارد نمایید.",
+ "%s enter the database name." : "%s نام پایگاه داده را وارد نمایید.",
+ "%s you may not use dots in the database name" : "%s شما نباید از نقطه در نام پایگاه داده استفاده نمایید.",
+ "MS SQL username and/or password not valid: %s" : "نام کاربری و / یا رمزعبور MS SQL معتبر نیست: %s",
+ "You need to enter either an existing account or the administrator." : "شما نیاز به وارد کردن یک حساب کاربری موجود یا حساب مدیریتی دارید.",
+ "DB Error: \"%s\"" : "خطای پایگاه داده: \"%s\"",
+ "Offending command was: \"%s\"" : "دستور متخلف عبارت است از: \"%s\"",
+ "Oracle connection could not be established" : "ارتباط اراکل نمیتواند برقرار باشد.",
+ "Oracle username and/or password not valid" : "نام کاربری و / یا رمزعبور اراکل معتبر نیست.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "دستور متخلف عبارت است از: \"%s\"، نام: \"%s\"، رمزعبور:\"%s\"",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL نام کاربری و / یا رمزعبور معتبر نیست.",
+ "Set an admin username." : "یک نام کاربری برای مدیر تنظیم نمایید.",
+ "Set an admin password." : "یک رمزعبور برای مدیر تنظیم نمایید.",
+ "%s shared »%s« with you" : "%s به اشتراک گذاشته شده است »%s« توسط شما",
+ "Could not find category \"%s\"" : "دسته بندی %s یافت نشد",
+ "seconds ago" : "ثانیهها پیش",
+ "_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل"],
+ "_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل"],
+ "today" : "امروز",
+ "yesterday" : "دیروز",
+ "_%n day go_::_%n days ago_" : ["%n روز قبل"],
+ "last month" : "ماه قبل",
+ "_%n month ago_::_%n months ago_" : ["%n ماه قبل"],
+ "last year" : "سال قبل",
+ "years ago" : "سالهای قبل",
+ "A valid username must be provided" : "نام کاربری صحیح باید وارد شود",
+ "A valid password must be provided" : "رمز عبور صحیح باید وارد شود"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/fa.json b/lib/l10n/fa.json
new file mode 100644
index 00000000000..9dfeaa59954
--- /dev/null
+++ b/lib/l10n/fa.json
@@ -0,0 +1,41 @@
+{ "translations": {
+ "Help" : "راهنما",
+ "Personal" : "شخصی",
+ "Settings" : "تنظیمات",
+ "Users" : "کاربران",
+ "Admin" : "مدیر",
+ "Unknown filetype" : "نوع فایل ناشناخته",
+ "Invalid image" : "عکس نامعتبر",
+ "web services under your control" : "سرویس های تحت وب در کنترل شما",
+ "Application is not enabled" : "برنامه فعال نشده است",
+ "Authentication error" : "خطا در اعتبار سنجی",
+ "Token expired. Please reload page." : "رمز منقضی شده است. لطفا دوباره صفحه را بارگذاری نمایید.",
+ "%s enter the database username." : "%s نام کاربری پایگاه داده را وارد نمایید.",
+ "%s enter the database name." : "%s نام پایگاه داده را وارد نمایید.",
+ "%s you may not use dots in the database name" : "%s شما نباید از نقطه در نام پایگاه داده استفاده نمایید.",
+ "MS SQL username and/or password not valid: %s" : "نام کاربری و / یا رمزعبور MS SQL معتبر نیست: %s",
+ "You need to enter either an existing account or the administrator." : "شما نیاز به وارد کردن یک حساب کاربری موجود یا حساب مدیریتی دارید.",
+ "DB Error: \"%s\"" : "خطای پایگاه داده: \"%s\"",
+ "Offending command was: \"%s\"" : "دستور متخلف عبارت است از: \"%s\"",
+ "Oracle connection could not be established" : "ارتباط اراکل نمیتواند برقرار باشد.",
+ "Oracle username and/or password not valid" : "نام کاربری و / یا رمزعبور اراکل معتبر نیست.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "دستور متخلف عبارت است از: \"%s\"، نام: \"%s\"، رمزعبور:\"%s\"",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL نام کاربری و / یا رمزعبور معتبر نیست.",
+ "Set an admin username." : "یک نام کاربری برای مدیر تنظیم نمایید.",
+ "Set an admin password." : "یک رمزعبور برای مدیر تنظیم نمایید.",
+ "%s shared »%s« with you" : "%s به اشتراک گذاشته شده است »%s« توسط شما",
+ "Could not find category \"%s\"" : "دسته بندی %s یافت نشد",
+ "seconds ago" : "ثانیهها پیش",
+ "_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل"],
+ "_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل"],
+ "today" : "امروز",
+ "yesterday" : "دیروز",
+ "_%n day go_::_%n days ago_" : ["%n روز قبل"],
+ "last month" : "ماه قبل",
+ "_%n month ago_::_%n months ago_" : ["%n ماه قبل"],
+ "last year" : "سال قبل",
+ "years ago" : "سالهای قبل",
+ "A valid username must be provided" : "نام کاربری صحیح باید وارد شود",
+ "A valid password must be provided" : "رمز عبور صحیح باید وارد شود"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/fa.php b/lib/l10n/fa.php
deleted file mode 100644
index 0081c2e27e6..00000000000
--- a/lib/l10n/fa.php
+++ /dev/null
@@ -1,42 +0,0 @@
- "راهنما",
-"Personal" => "شخصی",
-"Settings" => "تنظیمات",
-"Users" => "کاربران",
-"Admin" => "مدیر",
-"Unknown filetype" => "نوع فایل ناشناخته",
-"Invalid image" => "عکس نامعتبر",
-"web services under your control" => "سرویس های تحت وب در کنترل شما",
-"Application is not enabled" => "برنامه فعال نشده است",
-"Authentication error" => "خطا در اعتبار سنجی",
-"Token expired. Please reload page." => "رمز منقضی شده است. لطفا دوباره صفحه را بارگذاری نمایید.",
-"%s enter the database username." => "%s نام کاربری پایگاه داده را وارد نمایید.",
-"%s enter the database name." => "%s نام پایگاه داده را وارد نمایید.",
-"%s you may not use dots in the database name" => "%s شما نباید از نقطه در نام پایگاه داده استفاده نمایید.",
-"MS SQL username and/or password not valid: %s" => "نام کاربری و / یا رمزعبور MS SQL معتبر نیست: %s",
-"You need to enter either an existing account or the administrator." => "شما نیاز به وارد کردن یک حساب کاربری موجود یا حساب مدیریتی دارید.",
-"DB Error: \"%s\"" => "خطای پایگاه داده: \"%s\"",
-"Offending command was: \"%s\"" => "دستور متخلف عبارت است از: \"%s\"",
-"Oracle connection could not be established" => "ارتباط اراکل نمیتواند برقرار باشد.",
-"Oracle username and/or password not valid" => "نام کاربری و / یا رمزعبور اراکل معتبر نیست.",
-"Offending command was: \"%s\", name: %s, password: %s" => "دستور متخلف عبارت است از: \"%s\"، نام: \"%s\"، رمزعبور:\"%s\"",
-"PostgreSQL username and/or password not valid" => "PostgreSQL نام کاربری و / یا رمزعبور معتبر نیست.",
-"Set an admin username." => "یک نام کاربری برای مدیر تنظیم نمایید.",
-"Set an admin password." => "یک رمزعبور برای مدیر تنظیم نمایید.",
-"%s shared »%s« with you" => "%s به اشتراک گذاشته شده است »%s« توسط شما",
-"Could not find category \"%s\"" => "دسته بندی %s یافت نشد",
-"seconds ago" => "ثانیهها پیش",
-"_%n minute ago_::_%n minutes ago_" => array("%n دقیقه قبل"),
-"_%n hour ago_::_%n hours ago_" => array("%n ساعت قبل"),
-"today" => "امروز",
-"yesterday" => "دیروز",
-"_%n day go_::_%n days ago_" => array("%n روز قبل"),
-"last month" => "ماه قبل",
-"_%n month ago_::_%n months ago_" => array("%n ماه قبل"),
-"last year" => "سال قبل",
-"years ago" => "سالهای قبل",
-"A valid username must be provided" => "نام کاربری صحیح باید وارد شود",
-"A valid password must be provided" => "رمز عبور صحیح باید وارد شود"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/fi_FI.js b/lib/l10n/fi_FI.js
new file mode 100644
index 00000000000..1097dd20850
--- /dev/null
+++ b/lib/l10n/fi_FI.js
@@ -0,0 +1,112 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Hakemistoon \"config\" kirjoittaminen ei onnistu!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Tämän voi yleensä korjata antamalla http-palvelimelle kirjoitusoikeuden asetushakemistoon",
+ "See %s" : "Katso %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tämän voi yleensä korjata antamalla %shttp-palvelimelle kirjoitusoikeuden asetushakemistoon%s.",
+ "Sample configuration detected" : "Esimerkkimääritykset havaittu",
+ "Help" : "Ohje",
+ "Personal" : "Henkilökohtainen",
+ "Settings" : "Asetukset",
+ "Users" : "Käyttäjät",
+ "Admin" : "Ylläpito",
+ "Recommended" : "Suositeltu",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Sovellusta \\\"%s\\\" ei voi asentaa, koska se ei ole yhteensopiva tämän ownCloud-version kanssa.",
+ "No app name specified" : "Sovelluksen nimeä ei määritelty",
+ "Unknown filetype" : "Tuntematon tiedostotyyppi",
+ "Invalid image" : "Virheellinen kuva",
+ "Database Error" : "Tietokantavirhe",
+ "Please contact your system administrator." : "Ole yhteydessä järjestelmän ylläpitäjään.",
+ "web services under your control" : "verkkopalvelut hallinnassasi",
+ "App directory already exists" : "Sovelluskansio on jo olemassa",
+ "Can't create app folder. Please fix permissions. %s" : "Sovelluskansion luominen ei onnistu. Korjaa käyttöoikeudet. %s",
+ "No source specified when installing app" : "Lähdettä ei määritelty sovellusta asennettaessa",
+ "No href specified when installing app from http" : "Href-määritettä ei asetettu asennettaessa sovellusta http:n yli",
+ "No path specified when installing app from local file" : "Polkua ei määritelty sovellusta asennettaessa paikallisesta tiedostosta",
+ "Archives of type %s are not supported" : "Tyypin %s arkistot eivät ole tuettuja",
+ "Failed to open archive when installing app" : "Pakettitiedoston avaaminen epäonnistui sovellusta asennettaessa",
+ "App does not provide an info.xml file" : "Sovellus ei sisällä info.xml-tiedostoa",
+ "App can't be installed because of not allowed code in the App" : "Sovellusta ei voi asentaa, koska sovellus sisältää kiellettyä koodia",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Sovellusta ei voi asentaa, koska se ei ole yhteensopiva käytössä olevan ownCloud-version kanssa",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Sovellusta ei voi asentaa, koska info.xml/version ilmoittaa versioksi eri arvon kuin sovelluskauppa",
+ "Application is not enabled" : "Sovellusta ei ole otettu käyttöön",
+ "Authentication error" : "Tunnistautumisvirhe",
+ "Token expired. Please reload page." : "Valtuutus vanheni. Lataa sivu uudelleen.",
+ "Unknown user" : "Tuntematon käyttäjä",
+ "%s enter the database username." : "%s anna tietokannan käyttäjätunnus.",
+ "%s enter the database name." : "%s anna tietokannan nimi.",
+ "%s you may not use dots in the database name" : "%s et voi käyttää pisteitä tietokannan nimessä",
+ "MS SQL username and/or password not valid: %s" : "MS SQL -käyttäjätunnus ja/tai -salasana on väärin: %s",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB-käyttäjätunnus ja/tai salasana on virheellinen",
+ "DB Error: \"%s\"" : "Tietokantavirhe: \"%s\"",
+ "Offending command was: \"%s\"" : "Loukkaava komento oli: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB-käyttäjä '%s'@'localhost' on jo olemassa.",
+ "Drop this user from MySQL/MariaDB" : "Pudota tämä käyttäjä MySQL/MariaDB:stä",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB-käyttäjä '%s'@'%%' on jo olemassa",
+ "Drop this user from MySQL/MariaDB." : "Pudota tämä käyttäjä MySQL/MariaDB:stä.",
+ "Oracle connection could not be established" : "Oracle-yhteyttä ei voitu muodostaa",
+ "Oracle username and/or password not valid" : "Oraclen käyttäjätunnus ja/tai salasana on väärin",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Loukkaava komento oli: \"%s\", nimi: %s, salasana: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL:n käyttäjätunnus ja/tai salasana on väärin",
+ "Set an admin username." : "Aseta ylläpitäjän käyttäjätunnus.",
+ "Set an admin password." : "Aseta ylläpitäjän salasana.",
+ "%s shared »%s« with you" : "%s jakoi kohteen »%s« kanssasi",
+ "Sharing %s failed, because the file does not exist" : "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei ole olemassa",
+ "You are not allowed to share %s" : "Oikeutesi eivät riitä kohteen %s jakamiseen.",
+ "Sharing %s failed, because the user %s is the item owner" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s on kohteen omistaja",
+ "Sharing %s failed, because the user %s does not exist" : "Kohteen %s jakaminen epäonnistui, koska käyttäjää %s ei ole olemassa",
+ "Sharing %s failed, because this item is already shared with %s" : "Kohteen %s jakaminen epäonnistui, koska kohde on jo jaettu käyttäjän %s kanssa",
+ "Sharing %s failed, because the group %s does not exist" : "Kohteen %s jakaminen epäonnistui, koska ryhmää %s ei ole olemassa",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s ei ole ryhmän %s jäsen",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Anna salasana luodaksesi julkisen linkin. Vain suojatut linkit ovat sallittuja",
+ "Sharing %s failed, because sharing with links is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen linkkejä käyttäen ei ole sallittu",
+ "Setting permissions for %s failed, because the item was not found" : "Kohteen %s oikeuksien asettaminen epäonnistui, koska kohdetta ei löytynyt",
+ "Cannot set expiration date. Expiration date is in the past" : "Vanhentumispäivää ei voi asettaa. Vanhentumispäivä on jo mennyt",
+ "Sharing backend %s not found" : "Jakamisen taustaosaa %s ei löytynyt",
+ "Sharing backend for %s not found" : "Jakamisen taustaosaa kohteelle %s ei löytynyt",
+ "Sharing %s failed, because the user %s is the original sharer" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s on alkuperäinen jakaja",
+ "Sharing %s failed, because resharing is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen uudelleen ei ole sallittu",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei löytynyt tiedostovälimuistista",
+ "Could not find category \"%s\"" : "Luokkaa \"%s\" ei löytynyt",
+ "seconds ago" : "sekuntia sitten",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuutti sitten","%n minuuttia sitten"],
+ "_%n hour ago_::_%n hours ago_" : ["%n tunti sitten","%n tuntia sitten"],
+ "today" : "tänään",
+ "yesterday" : "eilen",
+ "_%n day go_::_%n days ago_" : ["%n päivä sitten","%n päivää sitten"],
+ "last month" : "viime kuussa",
+ "_%n month ago_::_%n months ago_" : ["%n kuukausi sitten","%n kuukautta sitten"],
+ "last year" : "viime vuonna",
+ "years ago" : "vuotta sitten",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Vain seuraavat merkit ovat sallittuja käyttäjätunnuksessa: \"a-z\", \"A-Z\", \"0-9\" ja \"_.@-\"",
+ "A valid username must be provided" : "Anna kelvollinen käyttäjätunnus",
+ "A valid password must be provided" : "Anna kelvollinen salasana",
+ "The username is already being used" : "Käyttäjätunnus on jo käytössä",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Tietokanta-ajureita (sqlite, mysql tai postgresql) ei ole asennettu.",
+ "Cannot write into \"config\" directory" : "Hakemistoon \"config\" kirjoittaminen ei onnistu",
+ "Cannot write into \"apps\" directory" : "Hakemistoon \"apps\" kirjoittaminen ei onnistu",
+ "Cannot create \"data\" directory (%s)" : "Kansion \"data\" luominen ei onnistu (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Tämä on yleensä korjattavissa antamalla http-palvelimelle kirjoitusoikeuden juurihakemistoon .",
+ "Setting locale to %s failed" : "Maa-asetuksen %s asettaminen epäonnistui",
+ "Please install one of these locales on your system and restart your webserver." : "Asenna ainakin yksi kyseisistä maa-asetuksista järjestelmään ja käynnistä http-palvelin uudelleen.",
+ "Please ask your server administrator to install the module." : "Pyydä palvelimen ylläpitäjää asentamaan moduulin.",
+ "PHP module %s not installed." : "PHP-moduulia %s ei ole asennettu.",
+ "PHP %s or higher is required." : "PHP %s tai sitä uudempi vaaditaan.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pyydä palvelimen ylläpitäjää päivittämään PHP uusimpaan versioon. Käyttämäsi PHP-versio ei ole enää tuettu ownCloud- ja PHP-yhteisön toimesta.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP:n \"Safe Mode\" on käytössä. ownCloud vaatii toimiakseen \"Safe Moden\" poistamisen käytöstä.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP:n Safe Mode on vanhennettu ja muutenkin lähes hyödytön asetus, joka tulee poistaa käytöstä. Pyydä järjestelmän ylläpitäjää poistamaan ominaisuus käytöstä php.ini-tiedoston kautta tai http-palvelimen asetuksista.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes -asetus on käytössä. ownCloud vaatii toimiakseen kyseisen asetuksen poistamisen käytöstä.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes -asetus on vanhennettu ja pääosin hyödytön, joten se tulisi poistaa käytöstä. Pyydä palvelimen ylläpitäjää poistamaan asetus käytöstä php.ini-tiedoston avulla tai http-palvelimen asetuksista.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduulit on asennettu, mutta ovatko ne vieläkin listattu puuttuviksi?",
+ "Please ask your server administrator to restart the web server." : "Pyydä palvelimen ylläpitäjää käynnistämään web-palvelin uudelleen.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 vaaditaan",
+ "Please upgrade your database version" : "Päivitä tietokantasi versio",
+ "Error occurred while checking PostgreSQL version" : "Virhe PostgreSQL:n versiota tarkistaessa",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Varmista, että käytössäsi on PostgreSQL >= 9 tai tarkista lokit saadaksesi lisätietoja virheestä",
+ "Data directory (%s) is readable by other users" : "Datakansio (%s) on muiden käyttäjien luettavissa",
+ "Data directory (%s) is invalid" : "Datakansio (%s) on virheellinen",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Varmista, että datakansion juuressa on tiedosto \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Lukitustapaa %d ei saatu kohteelle \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/fi_FI.json b/lib/l10n/fi_FI.json
new file mode 100644
index 00000000000..2bd73df0379
--- /dev/null
+++ b/lib/l10n/fi_FI.json
@@ -0,0 +1,110 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Hakemistoon \"config\" kirjoittaminen ei onnistu!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Tämän voi yleensä korjata antamalla http-palvelimelle kirjoitusoikeuden asetushakemistoon",
+ "See %s" : "Katso %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tämän voi yleensä korjata antamalla %shttp-palvelimelle kirjoitusoikeuden asetushakemistoon%s.",
+ "Sample configuration detected" : "Esimerkkimääritykset havaittu",
+ "Help" : "Ohje",
+ "Personal" : "Henkilökohtainen",
+ "Settings" : "Asetukset",
+ "Users" : "Käyttäjät",
+ "Admin" : "Ylläpito",
+ "Recommended" : "Suositeltu",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Sovellusta \\\"%s\\\" ei voi asentaa, koska se ei ole yhteensopiva tämän ownCloud-version kanssa.",
+ "No app name specified" : "Sovelluksen nimeä ei määritelty",
+ "Unknown filetype" : "Tuntematon tiedostotyyppi",
+ "Invalid image" : "Virheellinen kuva",
+ "Database Error" : "Tietokantavirhe",
+ "Please contact your system administrator." : "Ole yhteydessä järjestelmän ylläpitäjään.",
+ "web services under your control" : "verkkopalvelut hallinnassasi",
+ "App directory already exists" : "Sovelluskansio on jo olemassa",
+ "Can't create app folder. Please fix permissions. %s" : "Sovelluskansion luominen ei onnistu. Korjaa käyttöoikeudet. %s",
+ "No source specified when installing app" : "Lähdettä ei määritelty sovellusta asennettaessa",
+ "No href specified when installing app from http" : "Href-määritettä ei asetettu asennettaessa sovellusta http:n yli",
+ "No path specified when installing app from local file" : "Polkua ei määritelty sovellusta asennettaessa paikallisesta tiedostosta",
+ "Archives of type %s are not supported" : "Tyypin %s arkistot eivät ole tuettuja",
+ "Failed to open archive when installing app" : "Pakettitiedoston avaaminen epäonnistui sovellusta asennettaessa",
+ "App does not provide an info.xml file" : "Sovellus ei sisällä info.xml-tiedostoa",
+ "App can't be installed because of not allowed code in the App" : "Sovellusta ei voi asentaa, koska sovellus sisältää kiellettyä koodia",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Sovellusta ei voi asentaa, koska se ei ole yhteensopiva käytössä olevan ownCloud-version kanssa",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Sovellusta ei voi asentaa, koska info.xml/version ilmoittaa versioksi eri arvon kuin sovelluskauppa",
+ "Application is not enabled" : "Sovellusta ei ole otettu käyttöön",
+ "Authentication error" : "Tunnistautumisvirhe",
+ "Token expired. Please reload page." : "Valtuutus vanheni. Lataa sivu uudelleen.",
+ "Unknown user" : "Tuntematon käyttäjä",
+ "%s enter the database username." : "%s anna tietokannan käyttäjätunnus.",
+ "%s enter the database name." : "%s anna tietokannan nimi.",
+ "%s you may not use dots in the database name" : "%s et voi käyttää pisteitä tietokannan nimessä",
+ "MS SQL username and/or password not valid: %s" : "MS SQL -käyttäjätunnus ja/tai -salasana on väärin: %s",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB-käyttäjätunnus ja/tai salasana on virheellinen",
+ "DB Error: \"%s\"" : "Tietokantavirhe: \"%s\"",
+ "Offending command was: \"%s\"" : "Loukkaava komento oli: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB-käyttäjä '%s'@'localhost' on jo olemassa.",
+ "Drop this user from MySQL/MariaDB" : "Pudota tämä käyttäjä MySQL/MariaDB:stä",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB-käyttäjä '%s'@'%%' on jo olemassa",
+ "Drop this user from MySQL/MariaDB." : "Pudota tämä käyttäjä MySQL/MariaDB:stä.",
+ "Oracle connection could not be established" : "Oracle-yhteyttä ei voitu muodostaa",
+ "Oracle username and/or password not valid" : "Oraclen käyttäjätunnus ja/tai salasana on väärin",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Loukkaava komento oli: \"%s\", nimi: %s, salasana: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL:n käyttäjätunnus ja/tai salasana on väärin",
+ "Set an admin username." : "Aseta ylläpitäjän käyttäjätunnus.",
+ "Set an admin password." : "Aseta ylläpitäjän salasana.",
+ "%s shared »%s« with you" : "%s jakoi kohteen »%s« kanssasi",
+ "Sharing %s failed, because the file does not exist" : "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei ole olemassa",
+ "You are not allowed to share %s" : "Oikeutesi eivät riitä kohteen %s jakamiseen.",
+ "Sharing %s failed, because the user %s is the item owner" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s on kohteen omistaja",
+ "Sharing %s failed, because the user %s does not exist" : "Kohteen %s jakaminen epäonnistui, koska käyttäjää %s ei ole olemassa",
+ "Sharing %s failed, because this item is already shared with %s" : "Kohteen %s jakaminen epäonnistui, koska kohde on jo jaettu käyttäjän %s kanssa",
+ "Sharing %s failed, because the group %s does not exist" : "Kohteen %s jakaminen epäonnistui, koska ryhmää %s ei ole olemassa",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s ei ole ryhmän %s jäsen",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Anna salasana luodaksesi julkisen linkin. Vain suojatut linkit ovat sallittuja",
+ "Sharing %s failed, because sharing with links is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen linkkejä käyttäen ei ole sallittu",
+ "Setting permissions for %s failed, because the item was not found" : "Kohteen %s oikeuksien asettaminen epäonnistui, koska kohdetta ei löytynyt",
+ "Cannot set expiration date. Expiration date is in the past" : "Vanhentumispäivää ei voi asettaa. Vanhentumispäivä on jo mennyt",
+ "Sharing backend %s not found" : "Jakamisen taustaosaa %s ei löytynyt",
+ "Sharing backend for %s not found" : "Jakamisen taustaosaa kohteelle %s ei löytynyt",
+ "Sharing %s failed, because the user %s is the original sharer" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s on alkuperäinen jakaja",
+ "Sharing %s failed, because resharing is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen uudelleen ei ole sallittu",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei löytynyt tiedostovälimuistista",
+ "Could not find category \"%s\"" : "Luokkaa \"%s\" ei löytynyt",
+ "seconds ago" : "sekuntia sitten",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuutti sitten","%n minuuttia sitten"],
+ "_%n hour ago_::_%n hours ago_" : ["%n tunti sitten","%n tuntia sitten"],
+ "today" : "tänään",
+ "yesterday" : "eilen",
+ "_%n day go_::_%n days ago_" : ["%n päivä sitten","%n päivää sitten"],
+ "last month" : "viime kuussa",
+ "_%n month ago_::_%n months ago_" : ["%n kuukausi sitten","%n kuukautta sitten"],
+ "last year" : "viime vuonna",
+ "years ago" : "vuotta sitten",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Vain seuraavat merkit ovat sallittuja käyttäjätunnuksessa: \"a-z\", \"A-Z\", \"0-9\" ja \"_.@-\"",
+ "A valid username must be provided" : "Anna kelvollinen käyttäjätunnus",
+ "A valid password must be provided" : "Anna kelvollinen salasana",
+ "The username is already being used" : "Käyttäjätunnus on jo käytössä",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Tietokanta-ajureita (sqlite, mysql tai postgresql) ei ole asennettu.",
+ "Cannot write into \"config\" directory" : "Hakemistoon \"config\" kirjoittaminen ei onnistu",
+ "Cannot write into \"apps\" directory" : "Hakemistoon \"apps\" kirjoittaminen ei onnistu",
+ "Cannot create \"data\" directory (%s)" : "Kansion \"data\" luominen ei onnistu (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Tämä on yleensä korjattavissa antamalla http-palvelimelle kirjoitusoikeuden juurihakemistoon .",
+ "Setting locale to %s failed" : "Maa-asetuksen %s asettaminen epäonnistui",
+ "Please install one of these locales on your system and restart your webserver." : "Asenna ainakin yksi kyseisistä maa-asetuksista järjestelmään ja käynnistä http-palvelin uudelleen.",
+ "Please ask your server administrator to install the module." : "Pyydä palvelimen ylläpitäjää asentamaan moduulin.",
+ "PHP module %s not installed." : "PHP-moduulia %s ei ole asennettu.",
+ "PHP %s or higher is required." : "PHP %s tai sitä uudempi vaaditaan.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pyydä palvelimen ylläpitäjää päivittämään PHP uusimpaan versioon. Käyttämäsi PHP-versio ei ole enää tuettu ownCloud- ja PHP-yhteisön toimesta.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP:n \"Safe Mode\" on käytössä. ownCloud vaatii toimiakseen \"Safe Moden\" poistamisen käytöstä.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP:n Safe Mode on vanhennettu ja muutenkin lähes hyödytön asetus, joka tulee poistaa käytöstä. Pyydä järjestelmän ylläpitäjää poistamaan ominaisuus käytöstä php.ini-tiedoston kautta tai http-palvelimen asetuksista.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes -asetus on käytössä. ownCloud vaatii toimiakseen kyseisen asetuksen poistamisen käytöstä.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes -asetus on vanhennettu ja pääosin hyödytön, joten se tulisi poistaa käytöstä. Pyydä palvelimen ylläpitäjää poistamaan asetus käytöstä php.ini-tiedoston avulla tai http-palvelimen asetuksista.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduulit on asennettu, mutta ovatko ne vieläkin listattu puuttuviksi?",
+ "Please ask your server administrator to restart the web server." : "Pyydä palvelimen ylläpitäjää käynnistämään web-palvelin uudelleen.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 vaaditaan",
+ "Please upgrade your database version" : "Päivitä tietokantasi versio",
+ "Error occurred while checking PostgreSQL version" : "Virhe PostgreSQL:n versiota tarkistaessa",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Varmista, että käytössäsi on PostgreSQL >= 9 tai tarkista lokit saadaksesi lisätietoja virheestä",
+ "Data directory (%s) is readable by other users" : "Datakansio (%s) on muiden käyttäjien luettavissa",
+ "Data directory (%s) is invalid" : "Datakansio (%s) on virheellinen",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Varmista, että datakansion juuressa on tiedosto \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Lukitustapaa %d ei saatu kohteelle \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/fi_FI.php b/lib/l10n/fi_FI.php
deleted file mode 100644
index b002ab02495..00000000000
--- a/lib/l10n/fi_FI.php
+++ /dev/null
@@ -1,108 +0,0 @@
- "Hakemistoon \"config\" kirjoittaminen ei onnistu!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Tämän voi yleensä korjata antamalla http-palvelimelle kirjoitusoikeuden asetushakemistoon",
-"See %s" => "Katso %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Tämän voi yleensä korjata antamalla %shttp-palvelimelle kirjoitusoikeuden asetushakemistoon%s.",
-"Sample configuration detected" => "Esimerkkimääritykset havaittu",
-"Help" => "Ohje",
-"Personal" => "Henkilökohtainen",
-"Settings" => "Asetukset",
-"Users" => "Käyttäjät",
-"Admin" => "Ylläpito",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Sovellusta \\\"%s\\\" ei voi asentaa, koska se ei ole yhteensopiva tämän ownCloud-version kanssa.",
-"No app name specified" => "Sovelluksen nimeä ei määritelty",
-"Unknown filetype" => "Tuntematon tiedostotyyppi",
-"Invalid image" => "Virheellinen kuva",
-"web services under your control" => "verkkopalvelut hallinnassasi",
-"App directory already exists" => "Sovelluskansio on jo olemassa",
-"Can't create app folder. Please fix permissions. %s" => "Sovelluskansion luominen ei onnistu. Korjaa käyttöoikeudet. %s",
-"No source specified when installing app" => "Lähdettä ei määritelty sovellusta asennettaessa",
-"No href specified when installing app from http" => "Href-määritettä ei asetettu asennettaessa sovellusta http:n yli",
-"No path specified when installing app from local file" => "Polkua ei määritelty sovellusta asennettaessa paikallisesta tiedostosta",
-"Archives of type %s are not supported" => "Tyypin %s arkistot eivät ole tuettuja",
-"Failed to open archive when installing app" => "Pakettitiedoston avaaminen epäonnistui sovellusta asennettaessa",
-"App does not provide an info.xml file" => "Sovellus ei sisällä info.xml-tiedostoa",
-"App can't be installed because of not allowed code in the App" => "Sovellusta ei voi asentaa, koska sovellus sisältää kiellettyä koodia",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Sovellusta ei voi asentaa, koska se ei ole yhteensopiva käytössä olevan ownCloud-version kanssa",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Sovellusta ei voi asentaa, koska info.xml/version ilmoittaa versioksi eri arvon kuin sovelluskauppa",
-"Application is not enabled" => "Sovellusta ei ole otettu käyttöön",
-"Authentication error" => "Tunnistautumisvirhe",
-"Token expired. Please reload page." => "Valtuutus vanheni. Lataa sivu uudelleen.",
-"Unknown user" => "Tuntematon käyttäjä",
-"%s enter the database username." => "%s anna tietokannan käyttäjätunnus.",
-"%s enter the database name." => "%s anna tietokannan nimi.",
-"%s you may not use dots in the database name" => "%s et voi käyttää pisteitä tietokannan nimessä",
-"MS SQL username and/or password not valid: %s" => "MS SQL -käyttäjätunnus ja/tai -salasana on väärin: %s",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB-käyttäjätunnus ja/tai salasana on virheellinen",
-"DB Error: \"%s\"" => "Tietokantavirhe: \"%s\"",
-"Offending command was: \"%s\"" => "Loukkaava komento oli: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB-käyttäjä '%s'@'localhost' on jo olemassa.",
-"Drop this user from MySQL/MariaDB" => "Pudota tämä käyttäjä MySQL/MariaDB:stä",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB-käyttäjä '%s'@'%%' on jo olemassa",
-"Drop this user from MySQL/MariaDB." => "Pudota tämä käyttäjä MySQL/MariaDB:stä.",
-"Oracle connection could not be established" => "Oracle-yhteyttä ei voitu muodostaa",
-"Oracle username and/or password not valid" => "Oraclen käyttäjätunnus ja/tai salasana on väärin",
-"Offending command was: \"%s\", name: %s, password: %s" => "Loukkaava komento oli: \"%s\", nimi: %s, salasana: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL:n käyttäjätunnus ja/tai salasana on väärin",
-"Set an admin username." => "Aseta ylläpitäjän käyttäjätunnus.",
-"Set an admin password." => "Aseta ylläpitäjän salasana.",
-"%s shared »%s« with you" => "%s jakoi kohteen »%s« kanssasi",
-"Sharing %s failed, because the file does not exist" => "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei ole olemassa",
-"You are not allowed to share %s" => "Oikeutesi eivät riitä kohteen %s jakamiseen.",
-"Sharing %s failed, because the user %s is the item owner" => "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s on kohteen omistaja",
-"Sharing %s failed, because the user %s does not exist" => "Kohteen %s jakaminen epäonnistui, koska käyttäjää %s ei ole olemassa",
-"Sharing %s failed, because this item is already shared with %s" => "Kohteen %s jakaminen epäonnistui, koska kohde on jo jaettu käyttäjän %s kanssa",
-"Sharing %s failed, because the group %s does not exist" => "Kohteen %s jakaminen epäonnistui, koska ryhmää %s ei ole olemassa",
-"Sharing %s failed, because %s is not a member of the group %s" => "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s ei ole ryhmän %s jäsen",
-"You need to provide a password to create a public link, only protected links are allowed" => "Anna salasana luodaksesi julkisen linkin. Vain suojatut linkit ovat sallittuja",
-"Sharing %s failed, because sharing with links is not allowed" => "Kohteen %s jakaminen epäonnistui, koska jakaminen linkkejä käyttäen ei ole sallittu",
-"Setting permissions for %s failed, because the item was not found" => "Kohteen %s oikeuksien asettaminen epäonnistui, koska kohdetta ei löytynyt",
-"Cannot set expiration date. Expiration date is in the past" => "Vanhentumispäivää ei voi asettaa. Vanhentumispäivä on jo mennyt",
-"Sharing backend %s not found" => "Jakamisen taustaosaa %s ei löytynyt",
-"Sharing backend for %s not found" => "Jakamisen taustaosaa kohteelle %s ei löytynyt",
-"Sharing %s failed, because the user %s is the original sharer" => "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s on alkuperäinen jakaja",
-"Sharing %s failed, because resharing is not allowed" => "Kohteen %s jakaminen epäonnistui, koska jakaminen uudelleen ei ole sallittu",
-"Sharing %s failed, because the file could not be found in the file cache" => "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei löytynyt tiedostovälimuistista",
-"Could not find category \"%s\"" => "Luokkaa \"%s\" ei löytynyt",
-"seconds ago" => "sekuntia sitten",
-"_%n minute ago_::_%n minutes ago_" => array("%n minuutti sitten","%n minuuttia sitten"),
-"_%n hour ago_::_%n hours ago_" => array("%n tunti sitten","%n tuntia sitten"),
-"today" => "tänään",
-"yesterday" => "eilen",
-"_%n day go_::_%n days ago_" => array("%n päivä sitten","%n päivää sitten"),
-"last month" => "viime kuussa",
-"_%n month ago_::_%n months ago_" => array("%n kuukausi sitten","%n kuukautta sitten"),
-"last year" => "viime vuonna",
-"years ago" => "vuotta sitten",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Vain seuraavat merkit ovat sallittuja käyttäjätunnuksessa: \"a-z\", \"A-Z\", \"0-9\" ja \"_.@-\"",
-"A valid username must be provided" => "Anna kelvollinen käyttäjätunnus",
-"A valid password must be provided" => "Anna kelvollinen salasana",
-"The username is already being used" => "Käyttäjätunnus on jo käytössä",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Tietokanta-ajureita (sqlite, mysql tai postgresql) ei ole asennettu.",
-"Cannot write into \"config\" directory" => "Hakemistoon \"config\" kirjoittaminen ei onnistu",
-"Cannot write into \"apps\" directory" => "Hakemistoon \"apps\" kirjoittaminen ei onnistu",
-"Cannot create \"data\" directory (%s)" => "Kansion \"data\" luominen ei onnistu (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Tämä on yleensä korjattavissa antamalla http-palvelimelle kirjoitusoikeuden juurihakemistoon .",
-"Setting locale to %s failed" => "Maa-asetuksen %s asettaminen epäonnistui",
-"Please install one of these locales on your system and restart your webserver." => "Asenna ainakin yksi kyseisistä maa-asetuksista järjestelmään ja käynnistä http-palvelin uudelleen.",
-"Please ask your server administrator to install the module." => "Pyydä palvelimen ylläpitäjää asentamaan moduulin.",
-"PHP module %s not installed." => "PHP-moduulia %s ei ole asennettu.",
-"PHP %s or higher is required." => "PHP %s tai sitä uudempi vaaditaan.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Pyydä palvelimen ylläpitäjää päivittämään PHP uusimpaan versioon. Käyttämäsi PHP-versio ei ole enää tuettu ownCloud- ja PHP-yhteisön toimesta.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP:n \"Safe Mode\" on käytössä. ownCloud vaatii toimiakseen \"Safe Moden\" poistamisen käytöstä.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP:n Safe Mode on vanhennettu ja muutenkin lähes hyödytön asetus, joka tulee poistaa käytöstä. Pyydä järjestelmän ylläpitäjää poistamaan ominaisuus käytöstä php.ini-tiedoston kautta tai http-palvelimen asetuksista.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes -asetus on käytössä. ownCloud vaatii toimiakseen kyseisen asetuksen poistamisen käytöstä.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes -asetus on vanhennettu ja pääosin hyödytön, joten se tulisi poistaa käytöstä. Pyydä palvelimen ylläpitäjää poistamaan asetus käytöstä php.ini-tiedoston avulla tai http-palvelimen asetuksista.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP-moduulit on asennettu, mutta ovatko ne vieläkin listattu puuttuviksi?",
-"Please ask your server administrator to restart the web server." => "Pyydä palvelimen ylläpitäjää käynnistämään web-palvelin uudelleen.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 vaaditaan",
-"Please upgrade your database version" => "Päivitä tietokantasi versio",
-"Error occurred while checking PostgreSQL version" => "Virhe PostgreSQL:n versiota tarkistaessa",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Varmista, että käytössäsi on PostgreSQL >= 9 tai tarkista lokit saadaksesi lisätietoja virheestä",
-"Data directory (%s) is readable by other users" => "Datakansio (%s) on muiden käyttäjien luettavissa",
-"Data directory (%s) is invalid" => "Datakansio (%s) on virheellinen",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Varmista, että datakansion juuressa on tiedosto \".ocdata\".",
-"Could not obtain lock type %d on \"%s\"." => "Lukitustapaa %d ei saatu kohteelle \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/fil.js b/lib/l10n/fil.js
new file mode 100644
index 00000000000..9ac3e05d6c6
--- /dev/null
+++ b/lib/l10n/fil.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/fil.json b/lib/l10n/fil.json
new file mode 100644
index 00000000000..82a8a99d300
--- /dev/null
+++ b/lib/l10n/fil.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/fil.php b/lib/l10n/fil.php
deleted file mode 100644
index 406ff5f5a26..00000000000
--- a/lib/l10n/fil.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js
new file mode 100644
index 00000000000..18a20a37148
--- /dev/null
+++ b/lib/l10n/fr.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Impossible d’écrire dans le répertoire « config » !",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Ce problème est généralement résolu en donnant au serveur web un accès en écriture à ce répertoire",
+ "See %s" : "Voir %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ce problème est généralement résolu %sen donnant au serveur web un accès en écriture au répertoire de configuration%s.",
+ "Sample configuration detected" : "Configuration d'exemple détectée",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Il a été détecté que la configuration donnée à titre d'exemple a été copiée. Cela peut rendre votre installation inopérante et n'est pas pris en charge. Veuillez lire la documentation avant d'effectuer des modifications dans config.php",
+ "Help" : "Aide",
+ "Personal" : "Personnel",
+ "Settings" : "Paramètres",
+ "Users" : "Utilisateurs",
+ "Admin" : "Administration",
+ "Recommended" : "Recommandée",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "L'application \\\"%s\\\" ne peut pas être installée car elle n'est pas compatible avec cette version de ownCloud.",
+ "No app name specified" : "Aucun nom d'application spécifié",
+ "Unknown filetype" : "Type de fichier inconnu",
+ "Invalid image" : "Image non valable",
+ "Database Error" : "Erreur dans la base de données",
+ "Please contact your system administrator." : "Veuillez contacter votre administrateur système.",
+ "web services under your control" : "services web sous votre contrôle",
+ "App directory already exists" : "Le dossier de l'application existe déjà",
+ "Can't create app folder. Please fix permissions. %s" : "Impossible de créer le dossier de l'application. Corrigez les droits d'accès. %s",
+ "No source specified when installing app" : "Aucune source spécifiée pour installer l'application",
+ "No href specified when installing app from http" : "Aucun href spécifié pour installer l'application par http",
+ "No path specified when installing app from local file" : "Aucun chemin spécifié pour installer l'application depuis un fichier local",
+ "Archives of type %s are not supported" : "Les archives de type %s ne sont pas prises en charge",
+ "Failed to open archive when installing app" : "Échec de l'ouverture de l'archive lors de l'installation de l'application",
+ "App does not provide an info.xml file" : "L'application ne fournit pas de fichier info.xml",
+ "App can't be installed because of not allowed code in the App" : "L'application ne peut être installée car elle contient du code non-autorisé",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "L'application ne peut être installée car elle n'est pas compatible avec cette version de ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "L'application ne peut être installée car elle contient la balise true qui n'est pas autorisée pour les applications non-diffusées",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "L'application ne peut être installée car la version de info.xml/version n'est identique à celle indiquée sur l'app store",
+ "Application is not enabled" : "L'application n'est pas activée",
+ "Authentication error" : "Erreur d'authentification",
+ "Token expired. Please reload page." : "La session a expiré. Veuillez recharger la page.",
+ "Unknown user" : "Utilisateur inconnu",
+ "%s enter the database username." : "%s entrez le nom d'utilisateur de la base de données.",
+ "%s enter the database name." : "%s entrez le nom de la base de données.",
+ "%s you may not use dots in the database name" : "%s vous nez pouvez pas utiliser de points dans le nom de la base de données",
+ "MS SQL username and/or password not valid: %s" : "Le nom d'utilisateur et/ou le mot de passe de la base MS SQL est invalide : %s",
+ "You need to enter either an existing account or the administrator." : "Vous devez spécifier soit le nom d'un compte existant, soit celui de l'administrateur.",
+ "MySQL/MariaDB username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe MySQL/MariaDB invalide",
+ "DB Error: \"%s\"" : "Erreur de la base de données : \"%s\"",
+ "Offending command was: \"%s\"" : "La requête en cause est : \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "L'utilisateur MySQL/MariaDB '%s'@'localhost' existe déjà.",
+ "Drop this user from MySQL/MariaDB" : "Retirer cet utilisateur de la base MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "L'utilisateur MySQL/MariaDB '%s'@'%%' existe déjà",
+ "Drop this user from MySQL/MariaDB." : "Retirer cet utilisateur de la base MySQL/MariaDB.",
+ "Oracle connection could not be established" : "La connexion Oracle ne peut pas être établie",
+ "Oracle username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base Oracle invalide",
+ "Offending command was: \"%s\", name: %s, password: %s" : "La requête en cause est : \"%s\", nom : %s, mot de passe : %s",
+ "PostgreSQL username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base PostgreSQL invalide",
+ "Set an admin username." : "Spécifiez un nom d'utilisateur pour l'administrateur.",
+ "Set an admin password." : "Spécifiez un mot de passe administrateur.",
+ "Can't create or write into the data directory %s" : "Impossible de créer ou d'écrire dans le répertoire des données %s",
+ "%s shared »%s« with you" : "%s partagé »%s« avec vous",
+ "Sharing %s failed, because the file does not exist" : "Le partage de %s a échoué car le fichier n'existe pas",
+ "You are not allowed to share %s" : "Vous n'êtes pas autorisé à partager %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Le partage de %s a échoué car l'utilisateur %s est le propriétaire de l'objet",
+ "Sharing %s failed, because the user %s does not exist" : "Le partage de %s a échoué car l'utilisateur %s n'existe pas",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Le partage de %s a échoué car l'utilisateur %s n'est membre d'aucun groupe auquel %s appartient",
+ "Sharing %s failed, because this item is already shared with %s" : "Le partage de %s a échoué car cet objet est déjà partagé avec %s",
+ "Sharing %s failed, because the group %s does not exist" : "Le partage de %s a échoué car le groupe %s n'existe pas",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Le partage de %s a échoué car %s n'est pas membre du groupe %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Vous devez fournir un mot de passe pour créer un lien public, seul les liens protégés sont autorisées.",
+ "Sharing %s failed, because sharing with links is not allowed" : "Le partage de %s a échoué car le partage par lien n'est pas permis",
+ "Share type %s is not valid for %s" : "Le type de partage %s n'est pas valide pour %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Le réglage des permissions pour %s a échoué car les permissions dépassent celles accordées à %s",
+ "Setting permissions for %s failed, because the item was not found" : "Le réglage des permissions pour %s a échoué car l'objet n'a pas été trouvé",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Impossible de configurer la date d'expiration. Un partage ne peut expirer plus de %s après sa création",
+ "Cannot set expiration date. Expiration date is in the past" : "Impossible de configurer la date d'expiration. La date d'expiration est dans le passé.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "L'emplacement du partage %s doit implémenter l'interface OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Emplacement de partage %s introuvable",
+ "Sharing backend for %s not found" : "L'emplacement du partage %s est introuvable",
+ "Sharing %s failed, because the user %s is the original sharer" : "Le partage de %s a échoué car l'utilisateur %s est l'utilisateur à l'origine du partage.",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Le partage de %s a échoué car les permissions dépassent les permissions accordées à %s",
+ "Sharing %s failed, because resharing is not allowed" : "Le partage de %s a échoué car le repartage n'est pas autorisé",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Le partage %s a échoué parce que la source n'a été trouvée pour le partage %s.",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Le partage de %s a échoué car le fichier n'a pas été trouvé dans les fichiers mis en cache.",
+ "Could not find category \"%s\"" : "Impossible de trouver la catégorie \"%s\"",
+ "seconds ago" : "il y a quelques secondes",
+ "_%n minute ago_::_%n minutes ago_" : ["","il y a %n minutes"],
+ "_%n hour ago_::_%n hours ago_" : ["","Il y a %n heures"],
+ "today" : "aujourd'hui",
+ "yesterday" : "hier",
+ "_%n day go_::_%n days ago_" : ["","il y a %n jours"],
+ "last month" : "le mois dernier",
+ "_%n month ago_::_%n months ago_" : ["","Il y a %n mois"],
+ "last year" : "l'année dernière",
+ "years ago" : "il y a plusieurs années",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Seuls les caractères suivants sont autorisés dans un nom d'utilisateur : \"a-z\", \"A-Z\", \"0-9\", et \"_.@-\"",
+ "A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi",
+ "A valid password must be provided" : "Un mot de passe valide doit être saisi",
+ "The username is already being used" : "Ce nom d'utilisateur est déjà utilisé",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Aucun pilote de base de données (sqlite, mysql, ou postgresql) n’est installé.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Les permissions peuvent, généralement, être résolues %sen donnant au serveur web un accès en écriture au répertoire racine%s",
+ "Cannot write into \"config\" directory" : "Impossible d’écrire dans le répertoire \"config\"",
+ "Cannot write into \"apps\" directory" : "Impossible d’écrire dans le répertoire \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ce problème est généralement résolu %sen donnant au serveur web un accès en écriture au répertoire apps%s ou en désactivant l'appstore dans le fichier de configuration.",
+ "Cannot create \"data\" directory (%s)" : "Impossible de créer le répertoire \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Ce problème est généralement résolu en donnant au serveur web un accès en écriture au répertoire racine .",
+ "Setting locale to %s failed" : "Le choix de la langue pour %s a échoué",
+ "Please install one of these locales on your system and restart your webserver." : "Veuillez installer l'un de ces paramètres régionaux sur votre système et redémarrer votre serveur web.",
+ "Please ask your server administrator to install the module." : "Veuillez demander à votre administrateur d’installer le module.",
+ "PHP module %s not installed." : "Le module PHP %s n’est pas installé.",
+ "PHP %s or higher is required." : "PHP %s ou supérieur est requis.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Veuillez demander à votre administrateur de mettre à jour PHP vers sa dernière version disponible. La vôtre n’est plus prise en charge par ownCloud ni par la communauté PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode est activé. ownCloud requiert sa désactivation afin de fonctionner correctement.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode est déprécié, inutile la plupart du temps, et doit être désactivé. Veuillez demander à votre administrateur serveur de le désactiver dans le fichier php.ini ou dans votre configuration du serveur web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes est activé. ownCloud requiert sa désactivation afin de fonctionner correctement.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes est déprécié, inutile la plupart du temps, et doit être désactivé. Veuillez demander à votre administrateur serveur de le désactiver dans le fichier php.ini ou dans votre configuration du serveur web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Les modules PHP ont été installés mais sont toujours indiqués comme manquants ?",
+ "Please ask your server administrator to restart the web server." : "Veuillez demander à votre administrateur serveur de redémarrer le serveur web.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 requis",
+ "Please upgrade your database version" : "Veuillez mettre à jour votre base de données",
+ "Error occurred while checking PostgreSQL version" : "Une erreur s’est produite pendant la récupération du numéro de version de PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Veuillez vérifier que vous utilisez PostgreSQL >= 9 , ou regardez dans le journal d’erreur pour plus d’informations sur ce problème",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Veuillez changer les permissions du répertoire en mode 0770 afin que son contenu puisse être listé par les autres utilisateurs.",
+ "Data directory (%s) is readable by other users" : "Le répertoire (%s) est lisible par les autres utilisateurs",
+ "Data directory (%s) is invalid" : "Le répertoire (%s) est invalide",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Veuillez vérifier que le répertoire de données contient un fichier \".ocdata\" à sa racine.",
+ "Could not obtain lock type %d on \"%s\"." : "Impossible d'obtenir le verrouillage de type %d sur \"%s\"."
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json
new file mode 100644
index 00000000000..b8cecae6c5d
--- /dev/null
+++ b/lib/l10n/fr.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Impossible d’écrire dans le répertoire « config » !",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Ce problème est généralement résolu en donnant au serveur web un accès en écriture à ce répertoire",
+ "See %s" : "Voir %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ce problème est généralement résolu %sen donnant au serveur web un accès en écriture au répertoire de configuration%s.",
+ "Sample configuration detected" : "Configuration d'exemple détectée",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Il a été détecté que la configuration donnée à titre d'exemple a été copiée. Cela peut rendre votre installation inopérante et n'est pas pris en charge. Veuillez lire la documentation avant d'effectuer des modifications dans config.php",
+ "Help" : "Aide",
+ "Personal" : "Personnel",
+ "Settings" : "Paramètres",
+ "Users" : "Utilisateurs",
+ "Admin" : "Administration",
+ "Recommended" : "Recommandée",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "L'application \\\"%s\\\" ne peut pas être installée car elle n'est pas compatible avec cette version de ownCloud.",
+ "No app name specified" : "Aucun nom d'application spécifié",
+ "Unknown filetype" : "Type de fichier inconnu",
+ "Invalid image" : "Image non valable",
+ "Database Error" : "Erreur dans la base de données",
+ "Please contact your system administrator." : "Veuillez contacter votre administrateur système.",
+ "web services under your control" : "services web sous votre contrôle",
+ "App directory already exists" : "Le dossier de l'application existe déjà",
+ "Can't create app folder. Please fix permissions. %s" : "Impossible de créer le dossier de l'application. Corrigez les droits d'accès. %s",
+ "No source specified when installing app" : "Aucune source spécifiée pour installer l'application",
+ "No href specified when installing app from http" : "Aucun href spécifié pour installer l'application par http",
+ "No path specified when installing app from local file" : "Aucun chemin spécifié pour installer l'application depuis un fichier local",
+ "Archives of type %s are not supported" : "Les archives de type %s ne sont pas prises en charge",
+ "Failed to open archive when installing app" : "Échec de l'ouverture de l'archive lors de l'installation de l'application",
+ "App does not provide an info.xml file" : "L'application ne fournit pas de fichier info.xml",
+ "App can't be installed because of not allowed code in the App" : "L'application ne peut être installée car elle contient du code non-autorisé",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "L'application ne peut être installée car elle n'est pas compatible avec cette version de ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "L'application ne peut être installée car elle contient la balise true qui n'est pas autorisée pour les applications non-diffusées",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "L'application ne peut être installée car la version de info.xml/version n'est identique à celle indiquée sur l'app store",
+ "Application is not enabled" : "L'application n'est pas activée",
+ "Authentication error" : "Erreur d'authentification",
+ "Token expired. Please reload page." : "La session a expiré. Veuillez recharger la page.",
+ "Unknown user" : "Utilisateur inconnu",
+ "%s enter the database username." : "%s entrez le nom d'utilisateur de la base de données.",
+ "%s enter the database name." : "%s entrez le nom de la base de données.",
+ "%s you may not use dots in the database name" : "%s vous nez pouvez pas utiliser de points dans le nom de la base de données",
+ "MS SQL username and/or password not valid: %s" : "Le nom d'utilisateur et/ou le mot de passe de la base MS SQL est invalide : %s",
+ "You need to enter either an existing account or the administrator." : "Vous devez spécifier soit le nom d'un compte existant, soit celui de l'administrateur.",
+ "MySQL/MariaDB username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe MySQL/MariaDB invalide",
+ "DB Error: \"%s\"" : "Erreur de la base de données : \"%s\"",
+ "Offending command was: \"%s\"" : "La requête en cause est : \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "L'utilisateur MySQL/MariaDB '%s'@'localhost' existe déjà.",
+ "Drop this user from MySQL/MariaDB" : "Retirer cet utilisateur de la base MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "L'utilisateur MySQL/MariaDB '%s'@'%%' existe déjà",
+ "Drop this user from MySQL/MariaDB." : "Retirer cet utilisateur de la base MySQL/MariaDB.",
+ "Oracle connection could not be established" : "La connexion Oracle ne peut pas être établie",
+ "Oracle username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base Oracle invalide",
+ "Offending command was: \"%s\", name: %s, password: %s" : "La requête en cause est : \"%s\", nom : %s, mot de passe : %s",
+ "PostgreSQL username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base PostgreSQL invalide",
+ "Set an admin username." : "Spécifiez un nom d'utilisateur pour l'administrateur.",
+ "Set an admin password." : "Spécifiez un mot de passe administrateur.",
+ "Can't create or write into the data directory %s" : "Impossible de créer ou d'écrire dans le répertoire des données %s",
+ "%s shared »%s« with you" : "%s partagé »%s« avec vous",
+ "Sharing %s failed, because the file does not exist" : "Le partage de %s a échoué car le fichier n'existe pas",
+ "You are not allowed to share %s" : "Vous n'êtes pas autorisé à partager %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Le partage de %s a échoué car l'utilisateur %s est le propriétaire de l'objet",
+ "Sharing %s failed, because the user %s does not exist" : "Le partage de %s a échoué car l'utilisateur %s n'existe pas",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Le partage de %s a échoué car l'utilisateur %s n'est membre d'aucun groupe auquel %s appartient",
+ "Sharing %s failed, because this item is already shared with %s" : "Le partage de %s a échoué car cet objet est déjà partagé avec %s",
+ "Sharing %s failed, because the group %s does not exist" : "Le partage de %s a échoué car le groupe %s n'existe pas",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Le partage de %s a échoué car %s n'est pas membre du groupe %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Vous devez fournir un mot de passe pour créer un lien public, seul les liens protégés sont autorisées.",
+ "Sharing %s failed, because sharing with links is not allowed" : "Le partage de %s a échoué car le partage par lien n'est pas permis",
+ "Share type %s is not valid for %s" : "Le type de partage %s n'est pas valide pour %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Le réglage des permissions pour %s a échoué car les permissions dépassent celles accordées à %s",
+ "Setting permissions for %s failed, because the item was not found" : "Le réglage des permissions pour %s a échoué car l'objet n'a pas été trouvé",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Impossible de configurer la date d'expiration. Un partage ne peut expirer plus de %s après sa création",
+ "Cannot set expiration date. Expiration date is in the past" : "Impossible de configurer la date d'expiration. La date d'expiration est dans le passé.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "L'emplacement du partage %s doit implémenter l'interface OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Emplacement de partage %s introuvable",
+ "Sharing backend for %s not found" : "L'emplacement du partage %s est introuvable",
+ "Sharing %s failed, because the user %s is the original sharer" : "Le partage de %s a échoué car l'utilisateur %s est l'utilisateur à l'origine du partage.",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Le partage de %s a échoué car les permissions dépassent les permissions accordées à %s",
+ "Sharing %s failed, because resharing is not allowed" : "Le partage de %s a échoué car le repartage n'est pas autorisé",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Le partage %s a échoué parce que la source n'a été trouvée pour le partage %s.",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Le partage de %s a échoué car le fichier n'a pas été trouvé dans les fichiers mis en cache.",
+ "Could not find category \"%s\"" : "Impossible de trouver la catégorie \"%s\"",
+ "seconds ago" : "il y a quelques secondes",
+ "_%n minute ago_::_%n minutes ago_" : ["","il y a %n minutes"],
+ "_%n hour ago_::_%n hours ago_" : ["","Il y a %n heures"],
+ "today" : "aujourd'hui",
+ "yesterday" : "hier",
+ "_%n day go_::_%n days ago_" : ["","il y a %n jours"],
+ "last month" : "le mois dernier",
+ "_%n month ago_::_%n months ago_" : ["","Il y a %n mois"],
+ "last year" : "l'année dernière",
+ "years ago" : "il y a plusieurs années",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Seuls les caractères suivants sont autorisés dans un nom d'utilisateur : \"a-z\", \"A-Z\", \"0-9\", et \"_.@-\"",
+ "A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi",
+ "A valid password must be provided" : "Un mot de passe valide doit être saisi",
+ "The username is already being used" : "Ce nom d'utilisateur est déjà utilisé",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Aucun pilote de base de données (sqlite, mysql, ou postgresql) n’est installé.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Les permissions peuvent, généralement, être résolues %sen donnant au serveur web un accès en écriture au répertoire racine%s",
+ "Cannot write into \"config\" directory" : "Impossible d’écrire dans le répertoire \"config\"",
+ "Cannot write into \"apps\" directory" : "Impossible d’écrire dans le répertoire \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ce problème est généralement résolu %sen donnant au serveur web un accès en écriture au répertoire apps%s ou en désactivant l'appstore dans le fichier de configuration.",
+ "Cannot create \"data\" directory (%s)" : "Impossible de créer le répertoire \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Ce problème est généralement résolu en donnant au serveur web un accès en écriture au répertoire racine .",
+ "Setting locale to %s failed" : "Le choix de la langue pour %s a échoué",
+ "Please install one of these locales on your system and restart your webserver." : "Veuillez installer l'un de ces paramètres régionaux sur votre système et redémarrer votre serveur web.",
+ "Please ask your server administrator to install the module." : "Veuillez demander à votre administrateur d’installer le module.",
+ "PHP module %s not installed." : "Le module PHP %s n’est pas installé.",
+ "PHP %s or higher is required." : "PHP %s ou supérieur est requis.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Veuillez demander à votre administrateur de mettre à jour PHP vers sa dernière version disponible. La vôtre n’est plus prise en charge par ownCloud ni par la communauté PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode est activé. ownCloud requiert sa désactivation afin de fonctionner correctement.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode est déprécié, inutile la plupart du temps, et doit être désactivé. Veuillez demander à votre administrateur serveur de le désactiver dans le fichier php.ini ou dans votre configuration du serveur web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes est activé. ownCloud requiert sa désactivation afin de fonctionner correctement.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes est déprécié, inutile la plupart du temps, et doit être désactivé. Veuillez demander à votre administrateur serveur de le désactiver dans le fichier php.ini ou dans votre configuration du serveur web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Les modules PHP ont été installés mais sont toujours indiqués comme manquants ?",
+ "Please ask your server administrator to restart the web server." : "Veuillez demander à votre administrateur serveur de redémarrer le serveur web.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 requis",
+ "Please upgrade your database version" : "Veuillez mettre à jour votre base de données",
+ "Error occurred while checking PostgreSQL version" : "Une erreur s’est produite pendant la récupération du numéro de version de PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Veuillez vérifier que vous utilisez PostgreSQL >= 9 , ou regardez dans le journal d’erreur pour plus d’informations sur ce problème",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Veuillez changer les permissions du répertoire en mode 0770 afin que son contenu puisse être listé par les autres utilisateurs.",
+ "Data directory (%s) is readable by other users" : "Le répertoire (%s) est lisible par les autres utilisateurs",
+ "Data directory (%s) is invalid" : "Le répertoire (%s) est invalide",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Veuillez vérifier que le répertoire de données contient un fichier \".ocdata\" à sa racine.",
+ "Could not obtain lock type %d on \"%s\"." : "Impossible d'obtenir le verrouillage de type %d sur \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/fr.php b/lib/l10n/fr.php
deleted file mode 100644
index 744d8ba8617..00000000000
--- a/lib/l10n/fr.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Impossible d’écrire dans le répertoire « config » !",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Ce problème est généralement résolu en donnant au serveur web un accès en écriture à ce répertoire",
-"See %s" => "Voir %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Ce problème est généralement résolu %sen donnant au serveur web un accès en écriture au répertoire de configuration%s.",
-"Sample configuration detected" => "Configuration d'exemple détectée",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Il a été détecté que le configuration donnée à titre d'exemple a été copiée. Cela peut rendre votre installation inopérante et n'est pas supporté. Veuillez lire la documentation avant d'effectuer des modifications dans config.php",
-"Help" => "Aide",
-"Personal" => "Personnel",
-"Settings" => "Paramètres",
-"Users" => "Utilisateurs",
-"Admin" => "Administration",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "L'application \\\"%s\\\" ne peut pas être installée car elle n'est pas compatible avec cette version de ownCloud.",
-"No app name specified" => "Aucun nom d'application spécifié",
-"Unknown filetype" => "Type de fichier inconnu",
-"Invalid image" => "Image non valable",
-"web services under your control" => "services web sous votre contrôle",
-"App directory already exists" => "Le dossier de l'application existe déjà",
-"Can't create app folder. Please fix permissions. %s" => "Impossible de créer le dossier de l'application. Corrigez les droits d'accès. %s",
-"No source specified when installing app" => "Aucune source spécifiée pour installer l'application",
-"No href specified when installing app from http" => "Aucun href spécifié pour installer l'application par http",
-"No path specified when installing app from local file" => "Aucun chemin spécifié pour installer l'application depuis un fichier local",
-"Archives of type %s are not supported" => "Les archives de type %s ne sont pas supportées",
-"Failed to open archive when installing app" => "Échec de l'ouverture de l'archive lors de l'installation de l'application",
-"App does not provide an info.xml file" => "L'application ne fournit pas de fichier info.xml",
-"App can't be installed because of not allowed code in the App" => "L'application ne peut être installée car elle contient du code non-autorisé",
-"App can't be installed because it is not compatible with this version of ownCloud" => "L'application ne peut être installée car elle n'est pas compatible avec cette version de ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "L'application ne peut être installée car elle contient la balise true qui n'est pas autorisée pour les applications non-diffusées",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "L'application ne peut être installée car la version de info.xml/version n'est identique à celle indiquée sur l'app store",
-"Application is not enabled" => "L'application n'est pas activée",
-"Authentication error" => "Erreur d'authentification",
-"Token expired. Please reload page." => "La session a expiré. Veuillez recharger la page.",
-"Unknown user" => "Utilisateur inconnu",
-"%s enter the database username." => "%s entrez le nom d'utilisateur de la base de données.",
-"%s enter the database name." => "%s entrez le nom de la base de données.",
-"%s you may not use dots in the database name" => "%s vous nez pouvez pas utiliser de points dans le nom de la base de données",
-"MS SQL username and/or password not valid: %s" => "Le nom d'utilisateur et/ou le mot de passe de la base MS SQL est invalide : %s",
-"You need to enter either an existing account or the administrator." => "Vous devez spécifier soit le nom d'un compte existant, soit celui de l'administrateur.",
-"MySQL/MariaDB username and/or password not valid" => "Nom d'utilisateur et/ou mot de passe MySQL/MariaDB invalide",
-"DB Error: \"%s\"" => "Erreur de la base de données : \"%s\"",
-"Offending command was: \"%s\"" => "La requête en cause est : \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "L'utilisateur MySQL/MariaDB '%s'@'localhost' existe déjà.",
-"Drop this user from MySQL/MariaDB" => "Retirer cet utilisateur de la base MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "L'utilisateur MySQL/MariaDB '%s'@'%%' existe déjà",
-"Drop this user from MySQL/MariaDB." => "Retirer cet utilisateur de la base MySQL/MariaDB.",
-"Oracle connection could not be established" => "La connexion Oracle ne peut pas être établie",
-"Oracle username and/or password not valid" => "Nom d'utilisateur et/ou mot de passe de la base Oracle invalide",
-"Offending command was: \"%s\", name: %s, password: %s" => "La requête en cause est : \"%s\", nom : %s, mot de passe : %s",
-"PostgreSQL username and/or password not valid" => "Nom d'utilisateur et/ou mot de passe de la base PostgreSQL invalide",
-"Set an admin username." => "Spécifiez un nom d'utilisateur pour l'administrateur.",
-"Set an admin password." => "Spécifiez un mot de passe administrateur.",
-"Can't create or write into the data directory %s" => "Impossible de créer ou d'écrire dans le répertoire des données %s",
-"%s shared »%s« with you" => "%s partagé »%s« avec vous",
-"Sharing %s failed, because the file does not exist" => "Le partage de %s a échoué car le fichier n'existe pas",
-"You are not allowed to share %s" => "Vous n'êtes pas autorisé à partager %s",
-"Sharing %s failed, because the user %s is the item owner" => "Le partage de %s a échoué car l'utilisateur %s est le propriétaire de l'objet",
-"Sharing %s failed, because the user %s does not exist" => "Le partage de %s a échoué car l'utilisateur %s n'existe pas",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Le partage de %s a échoué car l'utilisateur %s n'est membre d'aucun groupe auquel %s appartient",
-"Sharing %s failed, because this item is already shared with %s" => "Le partage de %s a échoué car cet objet est déjà partagé avec %s",
-"Sharing %s failed, because the group %s does not exist" => "Le partage de %s a échoué car le groupe %s n'existe pas",
-"Sharing %s failed, because %s is not a member of the group %s" => "Le partage de %s a échoué car %s n'est pas membre du groupe %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Vous devez fournir un mot de passe pour créer un lien public, seul les liens protégés sont autorisées.",
-"Sharing %s failed, because sharing with links is not allowed" => "Le partage de %s a échoué car un partage de lien n'est pas permis",
-"Share type %s is not valid for %s" => "Le type de partage %s n'est pas valide pour %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Le réglage des permissions pour %s a échoué car les permissions dépassent celle accordée à %s",
-"Setting permissions for %s failed, because the item was not found" => "Le réglage des permissions pour %s a échoué car l'objet n'a pas été trouvé",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Impossible de configurer la date d'expiration. Un partage ne peut expirer plus de %s après sa date de début.",
-"Cannot set expiration date. Expiration date is in the past" => "Impossible de configurer la date d'expiration. La date d'expiration est dans le passé.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "L'emplacement du partage %s doit implémenter l'interface OCP\\Share_Backend",
-"Sharing backend %s not found" => "Emplacement de partage %s introuvable",
-"Sharing backend for %s not found" => "L'emplacement du partage %s est introuvable",
-"Sharing %s failed, because the user %s is the original sharer" => "Le partage de %s a échoué car l'utilisateur %s est déjà l'utilisateur à l'origine du partage.",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Le partage de %s a échoué car les permissions dépassent les permissions accordées à %s",
-"Sharing %s failed, because resharing is not allowed" => "Le partage de %s a échoué car le repartage n'est pas autorisé",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Le partage %s a échoué parce que la source n'a été trouvée pour le partage %s.",
-"Sharing %s failed, because the file could not be found in the file cache" => "Le partage de %s a échoué car le fichier n'a pas été trouvé dans les fichiers mis en cache.",
-"Could not find category \"%s\"" => "Impossible de trouver la catégorie \"%s\"",
-"seconds ago" => "il y a quelques secondes",
-"_%n minute ago_::_%n minutes ago_" => array("","il y a %n minutes"),
-"_%n hour ago_::_%n hours ago_" => array("","Il y a %n heures"),
-"today" => "aujourd'hui",
-"yesterday" => "hier",
-"_%n day go_::_%n days ago_" => array("","il y a %n jours"),
-"last month" => "le mois dernier",
-"_%n month ago_::_%n months ago_" => array("","Il y a %n mois"),
-"last year" => "l'année dernière",
-"years ago" => "il y a plusieurs années",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Seuls les caractères suivants sont autorisés dans un nom d'utilisateur : \"a-z\", \"A-Z\", \"0-9\", et \"_.@-\"",
-"A valid username must be provided" => "Un nom d'utilisateur valide doit être saisi",
-"A valid password must be provided" => "Un mot de passe valide doit être saisi",
-"The username is already being used" => "Ce nom d'utilisateur est déjà utilisé",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Aucun pilote de base de données (sqlite, mysql, ou postgresql) n’est installé.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Les permissions peuvent, généralement, être résolues %sen donnant au serveur web un accès en écriture au répertoire racine%s",
-"Cannot write into \"config\" directory" => "Impossible d’écrire dans le répertoire \"config\"",
-"Cannot write into \"apps\" directory" => "Impossible d’écrire dans le répertoire \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Ce problème est généralement résolu %sen donnant au serveur web un accès en écriture au répertoire apps%s ou en désactivant l'appstore dans le fichier de configuration.",
-"Cannot create \"data\" directory (%s)" => "Impossible de créer le répertoire \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Ce problème est généralement résolu en donnant au serveur web un accès en écriture au répertoire racine .",
-"Setting locale to %s failed" => "Le choix de la langue pour %s a échoué",
-"Please install one of these locales on your system and restart your webserver." => "Veuillez installer l'une de ces langues sur votre système et redémarrer votre serveur web.",
-"Please ask your server administrator to install the module." => "Veuillez demander à votre administrateur d’installer le module.",
-"PHP module %s not installed." => "Le module PHP %s n’est pas installé.",
-"PHP %s or higher is required." => "PHP %s ou supérieur est requis.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Veuillez demander à votre administrateur de mettre à jour PHP vers sa dernière version disponible. La vôtre n’est plus supportée par ownCloud, de même que par la communauté PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode est activé. ownCloud requiert sa désactivation afin de fonctionner correctement.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode est déprécié, inutile la plupart du temps, et doit être désactivé. Veuillez demander à votre administrateur serveur de le désactiver dans le fichier php.ini ou dans votre configuration du serveur web.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes est activé. ownCloud requiert sa désactivation afin de fonctionner correctement.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes est déprécié, inutile la plupart du temps, et doit être désactivé. Veuillez demander à votre administrateur serveur de le désactiver dans le fichier php.ini ou dans votre configuration du serveur web.",
-"PHP modules have been installed, but they are still listed as missing?" => "Les modules PHP ont été installés mais sont toujours indiqués comme manquants ?",
-"Please ask your server administrator to restart the web server." => "Veuillez demander à votre administrateur serveur de redémarrer le serveur web.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 requis",
-"Please upgrade your database version" => "Veuillez mettre à jour votre base de données",
-"Error occurred while checking PostgreSQL version" => "Une erreur s’est produite pendant la récupération du numéro de version de PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Veuillez vérifier que vous utilisez PostgreSQL >= 9 , ou regardez dans le journal d’erreur pour plus d’informations sur ce problème",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Veuillez changer les permissions du répertoire en mode 0770 afin que son contenu puisse être listé par les autres utilisateurs.",
-"Data directory (%s) is readable by other users" => "Le répertoire (%s) est lisible par les autres utilisateurs",
-"Data directory (%s) is invalid" => "Le répertoire (%s) est invalide",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Veuillez vérifier que le répertoire de données contient un fichier \".ocdata\" à sa racine.",
-"Could not obtain lock type %d on \"%s\"." => "Impossible d'obtenir le verrouillage de type %d sur \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/lib/l10n/fr_CA.js b/lib/l10n/fr_CA.js
new file mode 100644
index 00000000000..9ac3e05d6c6
--- /dev/null
+++ b/lib/l10n/fr_CA.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/fr_CA.json b/lib/l10n/fr_CA.json
new file mode 100644
index 00000000000..82a8a99d300
--- /dev/null
+++ b/lib/l10n/fr_CA.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/fr_CA.php b/lib/l10n/fr_CA.php
deleted file mode 100644
index 406ff5f5a26..00000000000
--- a/lib/l10n/fr_CA.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/lib/l10n/fy_NL.js b/lib/l10n/fy_NL.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/fy_NL.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/fy_NL.json b/lib/l10n/fy_NL.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/fy_NL.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/fy_NL.php b/lib/l10n/fy_NL.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/fy_NL.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js
new file mode 100644
index 00000000000..596b302009c
--- /dev/null
+++ b/lib/l10n/gl.js
@@ -0,0 +1,121 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Non é posíbel escribir no directorio «config»!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Polo xeral, isto pode ser fixado para permitirlle ao servidor web acceso de escritura ao directorio «config»",
+ "See %s" : "Vexa %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «config»%s.",
+ "Help" : "Axuda",
+ "Personal" : "Persoal",
+ "Settings" : "Axustes",
+ "Users" : "Usuarios",
+ "Admin" : "Administración",
+ "Recommended" : "Recomendado",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Non é posíbel instalar a aplicación «%s» por non seren compatíbel con esta versión do ownCloud.",
+ "No app name specified" : "Non se especificou o nome da aplicación",
+ "Unknown filetype" : "Tipo de ficheiro descoñecido",
+ "Invalid image" : "Imaxe incorrecta",
+ "web services under your control" : "servizos web baixo o seu control",
+ "App directory already exists" : "Xa existe o directorio da aplicación",
+ "Can't create app folder. Please fix permissions. %s" : "Non é posíbel crear o cartafol de aplicacións. Corrixa os permisos. %s",
+ "No source specified when installing app" : "Non foi especificada ningunha orixe ao instalar aplicacións",
+ "No href specified when installing app from http" : "Non foi especificada ningunha href ao instalar aplicacións",
+ "No path specified when installing app from local file" : "Non foi especificada ningunha ruta ao instalar aplicacións desde un ficheiro local",
+ "Archives of type %s are not supported" : "Os arquivos do tipo %s non están admitidos",
+ "Failed to open archive when installing app" : "Non foi posíbel abrir o arquivo ao instalar aplicacións",
+ "App does not provide an info.xml file" : "A aplicación non fornece un ficheiro info.xml",
+ "App can't be installed because of not allowed code in the App" : "Non é posíbel instalar a aplicación por mor de conter código non permitido",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Non é posíbel instalar a aplicación por non seren compatíbel con esta versión do ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Non é posíbel instalar a aplicación por conter a etiqueta true que non está permitida para as aplicacións non enviadas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Non é posíbel instalar a aplicación xa que a versión en info.xml/version non é a mesma que a versión informada desde a App Store",
+ "Application is not enabled" : "A aplicación non está activada",
+ "Authentication error" : "Produciuse un erro de autenticación",
+ "Token expired. Please reload page." : "Testemuña caducada. Recargue a páxina.",
+ "Unknown user" : "Usuario descoñecido",
+ "%s enter the database username." : "%s introduza o nome de usuario da base de datos",
+ "%s enter the database name." : "%s introduza o nome da base de datos",
+ "%s you may not use dots in the database name" : "%s non se poden empregar puntos na base de datos",
+ "MS SQL username and/or password not valid: %s" : "Nome de usuario e/ou contrasinal de MS SQL incorrecto: %s",
+ "You need to enter either an existing account or the administrator." : "Deberá introducir unha conta existente ou o administrador.",
+ "MySQL/MariaDB username and/or password not valid" : "O nome e/ou o contrasinal do usuario de MySQL/MariaDB non é correcto",
+ "DB Error: \"%s\"" : "Produciuse un erro na base de datos: «%s»",
+ "Offending command was: \"%s\"" : "A orde infractora foi: «%s»",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Xa existe o usuario «%s»@«localhost» no MySQL/MariaDB.",
+ "Drop this user from MySQL/MariaDB" : "Eliminar este usuario do MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Xa existe o usuario «%s»@«%%» no MySQL/MariaDB",
+ "Drop this user from MySQL/MariaDB." : "Eliminar este usuario do MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Non foi posíbel estabelecer a conexión con Oracle",
+ "Oracle username and/or password not valid" : "Nome de usuario e/ou contrasinal de Oracle incorrecto",
+ "Offending command was: \"%s\", name: %s, password: %s" : "A orde infractora foi: «%s», nome: %s, contrasinal: %s",
+ "PostgreSQL username and/or password not valid" : "Nome de usuario e/ou contrasinal de PostgreSQL incorrecto",
+ "Set an admin username." : "Estabeleza un nome de usuario administrador",
+ "Set an admin password." : "Estabeleza un contrasinal de administrador",
+ "%s shared »%s« with you" : "%s compartiu «%s» con vostede",
+ "Sharing %s failed, because the file does not exist" : "Fallou a compartición de %s, o ficheiro non existe",
+ "You are not allowed to share %s" : "Non ten permiso para compartir %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Fallou a compartición de %s, o propietario do elemento é o usuario %s",
+ "Sharing %s failed, because the user %s does not exist" : "Fallou a compartición de %s, o usuario %s non existe",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Fallou a compartición de %s, o usuario %s non é membro de ningún grupo que sexa membro de %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Fallou a compartición de %s, este elemento xa está compartido con %s",
+ "Sharing %s failed, because the group %s does not exist" : "Fallou a compartición de %s, o grupo %s non existe",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Fallou a compartición de %s, %s non é membro do grupo %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Ten que fornecer un contrasinal para a ligazón pública, só se permiten ligazóns protexidas",
+ "Sharing %s failed, because sharing with links is not allowed" : "Fallou a compartición de %s, non está permitido compartir con ligazóns",
+ "Share type %s is not valid for %s" : "Non se admite a compartición do tipo %s para %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Non é posíbel estabelecer permisos para %s, os permisos superan os permisos concedidos a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Non é posíbel estabelecer permisos para %s, non se atopa o elemento",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Non é posíbel estabelecer a data de caducidade. As comparticións non poden caducar máis aló de %s após de seren compartidas",
+ "Cannot set expiration date. Expiration date is in the past" : "Non é posíbel estabelecer a data de caducidade. A data de caducidade está no pasado.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "A infraestrutura de compartición %s ten que implementar a interface OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Non se atopou a infraestrutura de compartición %s",
+ "Sharing backend for %s not found" : "Non se atopou a infraestrutura de compartición para %s",
+ "Sharing %s failed, because the user %s is the original sharer" : "Fallou a compartición de %s, a compartición orixinal é do usuario %s",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Fallou a compartición de %s, os permisos superan os permisos concedidos a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Fallou a compartición de %s, non está permitido repetir a compartción",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Fallou a compartición de %s, a infraestrutura de compartición para %s non foi quen de atopar a orixe",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Fallou a compartición de %s, non foi posíbel atopar o ficheiro na caché de ficheiros",
+ "Could not find category \"%s\"" : "Non foi posíbel atopar a categoría «%s»",
+ "seconds ago" : "segundos atrás",
+ "_%n minute ago_::_%n minutes ago_" : ["hai %n minuto","hai %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n horas"],
+ "today" : "hoxe",
+ "yesterday" : "onte",
+ "_%n day go_::_%n days ago_" : ["hai %n día","vai %n días"],
+ "last month" : "último mes",
+ "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
+ "last year" : "último ano",
+ "years ago" : "anos atrás",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Só se permiten os seguintes caracteres no nome de usuario: «a-z», «A-Z», «0-9», e «_.@-»",
+ "A valid username must be provided" : "Debe fornecer un nome de usuario",
+ "A valid password must be provided" : "Debe fornecer un contrasinal",
+ "The username is already being used" : "Este nome de usuario xa está a ser usado",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Non hay controladores de base de datos (sqlite, mysql, ou postgresql) instalados.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «root»%s.",
+ "Cannot write into \"config\" directory" : "Non é posíbel escribir no directorio «config»",
+ "Cannot write into \"apps\" directory" : "Non é posíbel escribir no directorio «apps»",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «apps»%s ou a desactivación da «appstore» no ficheiro de configuración.",
+ "Cannot create \"data\" directory (%s)" : "Non é posíbel crear o directorio «data» (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Polo xeral, isto pode ser fixado para permitirlle ao servidor web acceso de escritura ao directorio «root» .",
+ "Setting locale to %s failed" : "Fallou o axuste da configuración local a %s",
+ "Please install one of these locales on your system and restart your webserver." : "Instale unha destas configuracións locais no seu sistema e reinicie o servidor web.",
+ "Please ask your server administrator to install the module." : "Pregúntelle ao administrador do servidor pola instalación do módulo.",
+ "PHP module %s not installed." : "O módulo PHP %s non está instalado.",
+ "PHP %s or higher is required." : "Requirese PHP %s ou superior.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pregúntelle ao administrador do servidor pola actualización de PHP á versión máis recente. A súa versión de PHP xa non é asistida polas comunidades de ownCloud e PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "O modo seguro de PHP está activado. ownCloud precisa que estea desactivado para traballar doadamente.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "O modo seguro de PHP é un entorno en desuso e maiormente inútil que ten que seren desactivado. Pregúntelle ao administrador do servidor pola desactivación en php.ini ou na configuración do servidor web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "«Magic Quotes» está activado. ownCloud precisa que estea desactivado para traballar doadamente.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "«Magic Quotes» é un entorno en desuso e maiormente inútil que ten que seren desactivado. Pregúntelle ao administrador do servidor pola desactivación en php.ini ou na configuración do servidor web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?",
+ "Please ask your server administrator to restart the web server." : "Pregúntelle ao administrador do servidor polo reinicio do servidor web..",
+ "PostgreSQL >= 9 required" : "Requírese PostgreSQL >= 9",
+ "Please upgrade your database version" : "Anove a versión da súa base de datos",
+ "Error occurred while checking PostgreSQL version" : "Produciuse un erro mentres comprobaba a versión de PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Asegúrese de que dispón do PostgreSQL >= 9 ou comprobe os rexistros para obter máis información sobre este erro",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Cambie os permisos a 0770 para que o directorio non poida seren listado por outros usuarios.",
+ "Data directory (%s) is readable by other users" : "O directorio de datos (%s) é lexíbel por outros usuarios",
+ "Data directory (%s) is invalid" : "O directorio de datos (%s) non é correcto",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Comprobe que o directorio de datos conten un ficheiro «.ocdata» na súa raíz.",
+ "Could not obtain lock type %d on \"%s\"." : "Non foi posíbel obter un bloqueo do tipo %d en «%s»."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json
new file mode 100644
index 00000000000..2b65b3a8f89
--- /dev/null
+++ b/lib/l10n/gl.json
@@ -0,0 +1,119 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Non é posíbel escribir no directorio «config»!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Polo xeral, isto pode ser fixado para permitirlle ao servidor web acceso de escritura ao directorio «config»",
+ "See %s" : "Vexa %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «config»%s.",
+ "Help" : "Axuda",
+ "Personal" : "Persoal",
+ "Settings" : "Axustes",
+ "Users" : "Usuarios",
+ "Admin" : "Administración",
+ "Recommended" : "Recomendado",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Non é posíbel instalar a aplicación «%s» por non seren compatíbel con esta versión do ownCloud.",
+ "No app name specified" : "Non se especificou o nome da aplicación",
+ "Unknown filetype" : "Tipo de ficheiro descoñecido",
+ "Invalid image" : "Imaxe incorrecta",
+ "web services under your control" : "servizos web baixo o seu control",
+ "App directory already exists" : "Xa existe o directorio da aplicación",
+ "Can't create app folder. Please fix permissions. %s" : "Non é posíbel crear o cartafol de aplicacións. Corrixa os permisos. %s",
+ "No source specified when installing app" : "Non foi especificada ningunha orixe ao instalar aplicacións",
+ "No href specified when installing app from http" : "Non foi especificada ningunha href ao instalar aplicacións",
+ "No path specified when installing app from local file" : "Non foi especificada ningunha ruta ao instalar aplicacións desde un ficheiro local",
+ "Archives of type %s are not supported" : "Os arquivos do tipo %s non están admitidos",
+ "Failed to open archive when installing app" : "Non foi posíbel abrir o arquivo ao instalar aplicacións",
+ "App does not provide an info.xml file" : "A aplicación non fornece un ficheiro info.xml",
+ "App can't be installed because of not allowed code in the App" : "Non é posíbel instalar a aplicación por mor de conter código non permitido",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Non é posíbel instalar a aplicación por non seren compatíbel con esta versión do ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Non é posíbel instalar a aplicación por conter a etiqueta true que non está permitida para as aplicacións non enviadas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Non é posíbel instalar a aplicación xa que a versión en info.xml/version non é a mesma que a versión informada desde a App Store",
+ "Application is not enabled" : "A aplicación non está activada",
+ "Authentication error" : "Produciuse un erro de autenticación",
+ "Token expired. Please reload page." : "Testemuña caducada. Recargue a páxina.",
+ "Unknown user" : "Usuario descoñecido",
+ "%s enter the database username." : "%s introduza o nome de usuario da base de datos",
+ "%s enter the database name." : "%s introduza o nome da base de datos",
+ "%s you may not use dots in the database name" : "%s non se poden empregar puntos na base de datos",
+ "MS SQL username and/or password not valid: %s" : "Nome de usuario e/ou contrasinal de MS SQL incorrecto: %s",
+ "You need to enter either an existing account or the administrator." : "Deberá introducir unha conta existente ou o administrador.",
+ "MySQL/MariaDB username and/or password not valid" : "O nome e/ou o contrasinal do usuario de MySQL/MariaDB non é correcto",
+ "DB Error: \"%s\"" : "Produciuse un erro na base de datos: «%s»",
+ "Offending command was: \"%s\"" : "A orde infractora foi: «%s»",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Xa existe o usuario «%s»@«localhost» no MySQL/MariaDB.",
+ "Drop this user from MySQL/MariaDB" : "Eliminar este usuario do MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Xa existe o usuario «%s»@«%%» no MySQL/MariaDB",
+ "Drop this user from MySQL/MariaDB." : "Eliminar este usuario do MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Non foi posíbel estabelecer a conexión con Oracle",
+ "Oracle username and/or password not valid" : "Nome de usuario e/ou contrasinal de Oracle incorrecto",
+ "Offending command was: \"%s\", name: %s, password: %s" : "A orde infractora foi: «%s», nome: %s, contrasinal: %s",
+ "PostgreSQL username and/or password not valid" : "Nome de usuario e/ou contrasinal de PostgreSQL incorrecto",
+ "Set an admin username." : "Estabeleza un nome de usuario administrador",
+ "Set an admin password." : "Estabeleza un contrasinal de administrador",
+ "%s shared »%s« with you" : "%s compartiu «%s» con vostede",
+ "Sharing %s failed, because the file does not exist" : "Fallou a compartición de %s, o ficheiro non existe",
+ "You are not allowed to share %s" : "Non ten permiso para compartir %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Fallou a compartición de %s, o propietario do elemento é o usuario %s",
+ "Sharing %s failed, because the user %s does not exist" : "Fallou a compartición de %s, o usuario %s non existe",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Fallou a compartición de %s, o usuario %s non é membro de ningún grupo que sexa membro de %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Fallou a compartición de %s, este elemento xa está compartido con %s",
+ "Sharing %s failed, because the group %s does not exist" : "Fallou a compartición de %s, o grupo %s non existe",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Fallou a compartición de %s, %s non é membro do grupo %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Ten que fornecer un contrasinal para a ligazón pública, só se permiten ligazóns protexidas",
+ "Sharing %s failed, because sharing with links is not allowed" : "Fallou a compartición de %s, non está permitido compartir con ligazóns",
+ "Share type %s is not valid for %s" : "Non se admite a compartición do tipo %s para %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Non é posíbel estabelecer permisos para %s, os permisos superan os permisos concedidos a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Non é posíbel estabelecer permisos para %s, non se atopa o elemento",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Non é posíbel estabelecer a data de caducidade. As comparticións non poden caducar máis aló de %s após de seren compartidas",
+ "Cannot set expiration date. Expiration date is in the past" : "Non é posíbel estabelecer a data de caducidade. A data de caducidade está no pasado.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "A infraestrutura de compartición %s ten que implementar a interface OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Non se atopou a infraestrutura de compartición %s",
+ "Sharing backend for %s not found" : "Non se atopou a infraestrutura de compartición para %s",
+ "Sharing %s failed, because the user %s is the original sharer" : "Fallou a compartición de %s, a compartición orixinal é do usuario %s",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Fallou a compartición de %s, os permisos superan os permisos concedidos a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Fallou a compartición de %s, non está permitido repetir a compartción",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Fallou a compartición de %s, a infraestrutura de compartición para %s non foi quen de atopar a orixe",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Fallou a compartición de %s, non foi posíbel atopar o ficheiro na caché de ficheiros",
+ "Could not find category \"%s\"" : "Non foi posíbel atopar a categoría «%s»",
+ "seconds ago" : "segundos atrás",
+ "_%n minute ago_::_%n minutes ago_" : ["hai %n minuto","hai %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["hai %n hora","hai %n horas"],
+ "today" : "hoxe",
+ "yesterday" : "onte",
+ "_%n day go_::_%n days ago_" : ["hai %n día","vai %n días"],
+ "last month" : "último mes",
+ "_%n month ago_::_%n months ago_" : ["hai %n mes","hai %n meses"],
+ "last year" : "último ano",
+ "years ago" : "anos atrás",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Só se permiten os seguintes caracteres no nome de usuario: «a-z», «A-Z», «0-9», e «_.@-»",
+ "A valid username must be provided" : "Debe fornecer un nome de usuario",
+ "A valid password must be provided" : "Debe fornecer un contrasinal",
+ "The username is already being used" : "Este nome de usuario xa está a ser usado",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Non hay controladores de base de datos (sqlite, mysql, ou postgresql) instalados.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «root»%s.",
+ "Cannot write into \"config\" directory" : "Non é posíbel escribir no directorio «config»",
+ "Cannot write into \"apps\" directory" : "Non é posíbel escribir no directorio «apps»",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «apps»%s ou a desactivación da «appstore» no ficheiro de configuración.",
+ "Cannot create \"data\" directory (%s)" : "Non é posíbel crear o directorio «data» (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Polo xeral, isto pode ser fixado para permitirlle ao servidor web acceso de escritura ao directorio «root» .",
+ "Setting locale to %s failed" : "Fallou o axuste da configuración local a %s",
+ "Please install one of these locales on your system and restart your webserver." : "Instale unha destas configuracións locais no seu sistema e reinicie o servidor web.",
+ "Please ask your server administrator to install the module." : "Pregúntelle ao administrador do servidor pola instalación do módulo.",
+ "PHP module %s not installed." : "O módulo PHP %s non está instalado.",
+ "PHP %s or higher is required." : "Requirese PHP %s ou superior.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pregúntelle ao administrador do servidor pola actualización de PHP á versión máis recente. A súa versión de PHP xa non é asistida polas comunidades de ownCloud e PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "O modo seguro de PHP está activado. ownCloud precisa que estea desactivado para traballar doadamente.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "O modo seguro de PHP é un entorno en desuso e maiormente inútil que ten que seren desactivado. Pregúntelle ao administrador do servidor pola desactivación en php.ini ou na configuración do servidor web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "«Magic Quotes» está activado. ownCloud precisa que estea desactivado para traballar doadamente.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "«Magic Quotes» é un entorno en desuso e maiormente inútil que ten que seren desactivado. Pregúntelle ao administrador do servidor pola desactivación en php.ini ou na configuración do servidor web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?",
+ "Please ask your server administrator to restart the web server." : "Pregúntelle ao administrador do servidor polo reinicio do servidor web..",
+ "PostgreSQL >= 9 required" : "Requírese PostgreSQL >= 9",
+ "Please upgrade your database version" : "Anove a versión da súa base de datos",
+ "Error occurred while checking PostgreSQL version" : "Produciuse un erro mentres comprobaba a versión de PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Asegúrese de que dispón do PostgreSQL >= 9 ou comprobe os rexistros para obter máis información sobre este erro",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Cambie os permisos a 0770 para que o directorio non poida seren listado por outros usuarios.",
+ "Data directory (%s) is readable by other users" : "O directorio de datos (%s) é lexíbel por outros usuarios",
+ "Data directory (%s) is invalid" : "O directorio de datos (%s) non é correcto",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Comprobe que o directorio de datos conten un ficheiro «.ocdata» na súa raíz.",
+ "Could not obtain lock type %d on \"%s\"." : "Non foi posíbel obter un bloqueo do tipo %d en «%s»."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/gl.php b/lib/l10n/gl.php
deleted file mode 100644
index ee55a862a54..00000000000
--- a/lib/l10n/gl.php
+++ /dev/null
@@ -1,119 +0,0 @@
- "Non é posíbel escribir no directorio «config»!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Polo xeral, isto pode ser fixado para permitirlle ao servidor web acceso de escritura ao directorio «config»",
-"See %s" => "Vexa %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «config»%s.",
-"Help" => "Axuda",
-"Personal" => "Persoal",
-"Settings" => "Axustes",
-"Users" => "Usuarios",
-"Admin" => "Administración",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Non é posíbel instalar a aplicación «%s» por non seren compatíbel con esta versión do ownCloud.",
-"No app name specified" => "Non se especificou o nome da aplicación",
-"Unknown filetype" => "Tipo de ficheiro descoñecido",
-"Invalid image" => "Imaxe incorrecta",
-"web services under your control" => "servizos web baixo o seu control",
-"App directory already exists" => "Xa existe o directorio da aplicación",
-"Can't create app folder. Please fix permissions. %s" => "Non é posíbel crear o cartafol de aplicacións. Corrixa os permisos. %s",
-"No source specified when installing app" => "Non foi especificada ningunha orixe ao instalar aplicacións",
-"No href specified when installing app from http" => "Non foi especificada ningunha href ao instalar aplicacións",
-"No path specified when installing app from local file" => "Non foi especificada ningunha ruta ao instalar aplicacións desde un ficheiro local",
-"Archives of type %s are not supported" => "Os arquivos do tipo %s non están admitidos",
-"Failed to open archive when installing app" => "Non foi posíbel abrir o arquivo ao instalar aplicacións",
-"App does not provide an info.xml file" => "A aplicación non fornece un ficheiro info.xml",
-"App can't be installed because of not allowed code in the App" => "Non é posíbel instalar a aplicación por mor de conter código non permitido",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Non é posíbel instalar a aplicación por non seren compatíbel con esta versión do ownCloud.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Non é posíbel instalar a aplicación por conter a etiqueta true que non está permitida para as aplicacións non enviadas",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Non é posíbel instalar a aplicación xa que a versión en info.xml/version non é a mesma que a versión informada desde a App Store",
-"Application is not enabled" => "A aplicación non está activada",
-"Authentication error" => "Produciuse un erro de autenticación",
-"Token expired. Please reload page." => "Testemuña caducada. Recargue a páxina.",
-"Unknown user" => "Usuario descoñecido",
-"%s enter the database username." => "%s introduza o nome de usuario da base de datos",
-"%s enter the database name." => "%s introduza o nome da base de datos",
-"%s you may not use dots in the database name" => "%s non se poden empregar puntos na base de datos",
-"MS SQL username and/or password not valid: %s" => "Nome de usuario e/ou contrasinal de MS SQL incorrecto: %s",
-"You need to enter either an existing account or the administrator." => "Deberá introducir unha conta existente ou o administrador.",
-"MySQL/MariaDB username and/or password not valid" => "O nome e/ou o contrasinal do usuario de MySQL/MariaDB non é correcto",
-"DB Error: \"%s\"" => "Produciuse un erro na base de datos: «%s»",
-"Offending command was: \"%s\"" => "A orde infractora foi: «%s»",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "Xa existe o usuario «%s»@«localhost» no MySQL/MariaDB.",
-"Drop this user from MySQL/MariaDB" => "Eliminar este usuario do MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "Xa existe o usuario «%s»@«%%» no MySQL/MariaDB",
-"Drop this user from MySQL/MariaDB." => "Eliminar este usuario do MySQL/MariaDB.",
-"Oracle connection could not be established" => "Non foi posíbel estabelecer a conexión con Oracle",
-"Oracle username and/or password not valid" => "Nome de usuario e/ou contrasinal de Oracle incorrecto",
-"Offending command was: \"%s\", name: %s, password: %s" => "A orde infractora foi: «%s», nome: %s, contrasinal: %s",
-"PostgreSQL username and/or password not valid" => "Nome de usuario e/ou contrasinal de PostgreSQL incorrecto",
-"Set an admin username." => "Estabeleza un nome de usuario administrador",
-"Set an admin password." => "Estabeleza un contrasinal de administrador",
-"%s shared »%s« with you" => "%s compartiu «%s» con vostede",
-"Sharing %s failed, because the file does not exist" => "Fallou a compartición de %s, o ficheiro non existe",
-"You are not allowed to share %s" => "Non ten permiso para compartir %s",
-"Sharing %s failed, because the user %s is the item owner" => "Fallou a compartición de %s, o propietario do elemento é o usuario %s",
-"Sharing %s failed, because the user %s does not exist" => "Fallou a compartición de %s, o usuario %s non existe",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Fallou a compartición de %s, o usuario %s non é membro de ningún grupo que sexa membro de %s",
-"Sharing %s failed, because this item is already shared with %s" => "Fallou a compartición de %s, este elemento xa está compartido con %s",
-"Sharing %s failed, because the group %s does not exist" => "Fallou a compartición de %s, o grupo %s non existe",
-"Sharing %s failed, because %s is not a member of the group %s" => "Fallou a compartición de %s, %s non é membro do grupo %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Ten que fornecer un contrasinal para a ligazón pública, só se permiten ligazóns protexidas",
-"Sharing %s failed, because sharing with links is not allowed" => "Fallou a compartición de %s, non está permitido compartir con ligazóns",
-"Share type %s is not valid for %s" => "Non se admite a compartición do tipo %s para %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Non é posíbel estabelecer permisos para %s, os permisos superan os permisos concedidos a %s",
-"Setting permissions for %s failed, because the item was not found" => "Non é posíbel estabelecer permisos para %s, non se atopa o elemento",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Non é posíbel estabelecer a data de caducidade. As comparticións non poden caducar máis aló de %s após de seren compartidas",
-"Cannot set expiration date. Expiration date is in the past" => "Non é posíbel estabelecer a data de caducidade. A data de caducidade está no pasado.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "A infraestrutura de compartición %s ten que implementar a interface OCP\\Share_Backend",
-"Sharing backend %s not found" => "Non se atopou a infraestrutura de compartición %s",
-"Sharing backend for %s not found" => "Non se atopou a infraestrutura de compartición para %s",
-"Sharing %s failed, because the user %s is the original sharer" => "Fallou a compartición de %s, a compartición orixinal é do usuario %s",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Fallou a compartición de %s, os permisos superan os permisos concedidos a %s",
-"Sharing %s failed, because resharing is not allowed" => "Fallou a compartición de %s, non está permitido repetir a compartción",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Fallou a compartición de %s, a infraestrutura de compartición para %s non foi quen de atopar a orixe",
-"Sharing %s failed, because the file could not be found in the file cache" => "Fallou a compartición de %s, non foi posíbel atopar o ficheiro na caché de ficheiros",
-"Could not find category \"%s\"" => "Non foi posíbel atopar a categoría «%s»",
-"seconds ago" => "segundos atrás",
-"_%n minute ago_::_%n minutes ago_" => array("hai %n minuto","hai %n minutos"),
-"_%n hour ago_::_%n hours ago_" => array("hai %n hora","hai %n horas"),
-"today" => "hoxe",
-"yesterday" => "onte",
-"_%n day go_::_%n days ago_" => array("hai %n día","vai %n días"),
-"last month" => "último mes",
-"_%n month ago_::_%n months ago_" => array("hai %n mes","hai %n meses"),
-"last year" => "último ano",
-"years ago" => "anos atrás",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Só se permiten os seguintes caracteres no nome de usuario: «a-z», «A-Z», «0-9», e «_.@-»",
-"A valid username must be provided" => "Debe fornecer un nome de usuario",
-"A valid password must be provided" => "Debe fornecer un contrasinal",
-"The username is already being used" => "Este nome de usuario xa está a ser usado",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Non hay controladores de base de datos (sqlite, mysql, ou postgresql) instalados.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «root»%s.",
-"Cannot write into \"config\" directory" => "Non é posíbel escribir no directorio «config»",
-"Cannot write into \"apps\" directory" => "Non é posíbel escribir no directorio «apps»",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «apps»%s ou a desactivación da «appstore» no ficheiro de configuración.",
-"Cannot create \"data\" directory (%s)" => "Non é posíbel crear o directorio «data» (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Polo xeral, isto pode ser fixado para permitirlle ao servidor web acceso de escritura ao directorio «root» .",
-"Setting locale to %s failed" => "Fallou o axuste da configuración local a %s",
-"Please install one of these locales on your system and restart your webserver." => "Instale unha destas configuracións locais no seu sistema e reinicie o servidor web.",
-"Please ask your server administrator to install the module." => "Pregúntelle ao administrador do servidor pola instalación do módulo.",
-"PHP module %s not installed." => "O módulo PHP %s non está instalado.",
-"PHP %s or higher is required." => "Requirese PHP %s ou superior.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Pregúntelle ao administrador do servidor pola actualización de PHP á versión máis recente. A súa versión de PHP xa non é asistida polas comunidades de ownCloud e PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "O modo seguro de PHP está activado. ownCloud precisa que estea desactivado para traballar doadamente.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "O modo seguro de PHP é un entorno en desuso e maiormente inútil que ten que seren desactivado. Pregúntelle ao administrador do servidor pola desactivación en php.ini ou na configuración do servidor web.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "«Magic Quotes» está activado. ownCloud precisa que estea desactivado para traballar doadamente.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "«Magic Quotes» é un entorno en desuso e maiormente inútil que ten que seren desactivado. Pregúntelle ao administrador do servidor pola desactivación en php.ini ou na configuración do servidor web.",
-"PHP modules have been installed, but they are still listed as missing?" => "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?",
-"Please ask your server administrator to restart the web server." => "Pregúntelle ao administrador do servidor polo reinicio do servidor web..",
-"PostgreSQL >= 9 required" => "Requírese PostgreSQL >= 9",
-"Please upgrade your database version" => "Anove a versión da súa base de datos",
-"Error occurred while checking PostgreSQL version" => "Produciuse un erro mentres comprobaba a versión de PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Asegúrese de que dispón do PostgreSQL >= 9 ou comprobe os rexistros para obter máis información sobre este erro",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Cambie os permisos a 0770 para que o directorio non poida seren listado por outros usuarios.",
-"Data directory (%s) is readable by other users" => "O directorio de datos (%s) é lexíbel por outros usuarios",
-"Data directory (%s) is invalid" => "O directorio de datos (%s) non é correcto",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Comprobe que o directorio de datos conten un ficheiro «.ocdata» na súa raíz.",
-"Could not obtain lock type %d on \"%s\"." => "Non foi posíbel obter un bloqueo do tipo %d en «%s»."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/gu.js b/lib/l10n/gu.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/gu.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/gu.json b/lib/l10n/gu.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/gu.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/gu.php b/lib/l10n/gu.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/gu.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/he.js b/lib/l10n/he.js
new file mode 100644
index 00000000000..c34ce27bb01
--- /dev/null
+++ b/lib/l10n/he.js
@@ -0,0 +1,28 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "עזרה",
+ "Personal" : "אישי",
+ "Settings" : "הגדרות",
+ "Users" : "משתמשים",
+ "Admin" : "מנהל",
+ "web services under your control" : "שירותי רשת תחת השליטה שלך",
+ "Application is not enabled" : "יישומים אינם מופעלים",
+ "Authentication error" : "שגיאת הזדהות",
+ "Token expired. Please reload page." : "פג תוקף. נא לטעון שוב את הדף.",
+ "%s shared »%s« with you" : "%s שיתף/שיתפה איתך את »%s«",
+ "Could not find category \"%s\"" : "לא ניתן למצוא את הקטגוריה „%s“",
+ "seconds ago" : "שניות",
+ "_%n minute ago_::_%n minutes ago_" : ["","לפני %n דקות"],
+ "_%n hour ago_::_%n hours ago_" : ["","לפני %n שעות"],
+ "today" : "היום",
+ "yesterday" : "אתמול",
+ "_%n day go_::_%n days ago_" : ["","לפני %n ימים"],
+ "last month" : "חודש שעבר",
+ "_%n month ago_::_%n months ago_" : ["","לפני %n חודשים"],
+ "last year" : "שנה שעברה",
+ "years ago" : "שנים",
+ "A valid username must be provided" : "יש לספק שם משתמש תקני",
+ "A valid password must be provided" : "יש לספק ססמה תקנית"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/he.json b/lib/l10n/he.json
new file mode 100644
index 00000000000..c97d585b901
--- /dev/null
+++ b/lib/l10n/he.json
@@ -0,0 +1,26 @@
+{ "translations": {
+ "Help" : "עזרה",
+ "Personal" : "אישי",
+ "Settings" : "הגדרות",
+ "Users" : "משתמשים",
+ "Admin" : "מנהל",
+ "web services under your control" : "שירותי רשת תחת השליטה שלך",
+ "Application is not enabled" : "יישומים אינם מופעלים",
+ "Authentication error" : "שגיאת הזדהות",
+ "Token expired. Please reload page." : "פג תוקף. נא לטעון שוב את הדף.",
+ "%s shared »%s« with you" : "%s שיתף/שיתפה איתך את »%s«",
+ "Could not find category \"%s\"" : "לא ניתן למצוא את הקטגוריה „%s“",
+ "seconds ago" : "שניות",
+ "_%n minute ago_::_%n minutes ago_" : ["","לפני %n דקות"],
+ "_%n hour ago_::_%n hours ago_" : ["","לפני %n שעות"],
+ "today" : "היום",
+ "yesterday" : "אתמול",
+ "_%n day go_::_%n days ago_" : ["","לפני %n ימים"],
+ "last month" : "חודש שעבר",
+ "_%n month ago_::_%n months ago_" : ["","לפני %n חודשים"],
+ "last year" : "שנה שעברה",
+ "years ago" : "שנים",
+ "A valid username must be provided" : "יש לספק שם משתמש תקני",
+ "A valid password must be provided" : "יש לספק ססמה תקנית"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/he.php b/lib/l10n/he.php
deleted file mode 100644
index abb15388449..00000000000
--- a/lib/l10n/he.php
+++ /dev/null
@@ -1,27 +0,0 @@
- "עזרה",
-"Personal" => "אישי",
-"Settings" => "הגדרות",
-"Users" => "משתמשים",
-"Admin" => "מנהל",
-"web services under your control" => "שירותי רשת תחת השליטה שלך",
-"Application is not enabled" => "יישומים אינם מופעלים",
-"Authentication error" => "שגיאת הזדהות",
-"Token expired. Please reload page." => "פג תוקף. נא לטעון שוב את הדף.",
-"%s shared »%s« with you" => "%s שיתף/שיתפה איתך את »%s«",
-"Could not find category \"%s\"" => "לא ניתן למצוא את הקטגוריה „%s“",
-"seconds ago" => "שניות",
-"_%n minute ago_::_%n minutes ago_" => array("","לפני %n דקות"),
-"_%n hour ago_::_%n hours ago_" => array("","לפני %n שעות"),
-"today" => "היום",
-"yesterday" => "אתמול",
-"_%n day go_::_%n days ago_" => array("","לפני %n ימים"),
-"last month" => "חודש שעבר",
-"_%n month ago_::_%n months ago_" => array("","לפני %n חודשים"),
-"last year" => "שנה שעברה",
-"years ago" => "שנים",
-"A valid username must be provided" => "יש לספק שם משתמש תקני",
-"A valid password must be provided" => "יש לספק ססמה תקנית"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/hi.js b/lib/l10n/hi.js
new file mode 100644
index 00000000000..cc987c48024
--- /dev/null
+++ b/lib/l10n/hi.js
@@ -0,0 +1,13 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "सहयोग",
+ "Personal" : "यक्तिगत",
+ "Settings" : "सेटिंग्स",
+ "Users" : "उपयोगकर्ता",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/hi.json b/lib/l10n/hi.json
new file mode 100644
index 00000000000..bf18b7731ad
--- /dev/null
+++ b/lib/l10n/hi.json
@@ -0,0 +1,11 @@
+{ "translations": {
+ "Help" : "सहयोग",
+ "Personal" : "यक्तिगत",
+ "Settings" : "सेटिंग्स",
+ "Users" : "उपयोगकर्ता",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/hi.php b/lib/l10n/hi.php
deleted file mode 100644
index 039dfa4465d..00000000000
--- a/lib/l10n/hi.php
+++ /dev/null
@@ -1,12 +0,0 @@
- "सहयोग",
-"Personal" => "यक्तिगत",
-"Settings" => "सेटिंग्स",
-"Users" => "उपयोगकर्ता",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/hi_IN.js b/lib/l10n/hi_IN.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/hi_IN.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/hi_IN.json b/lib/l10n/hi_IN.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/hi_IN.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/hi_IN.php b/lib/l10n/hi_IN.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/hi_IN.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/hr.js b/lib/l10n/hr.js
new file mode 100644
index 00000000000..ead1e15d2cf
--- /dev/null
+++ b/lib/l10n/hr.js
@@ -0,0 +1,122 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Pisanje u \"config\" direktoriju nije moguće!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Ovo se obično može popraviti tako da se Web poslužitelju dopusti pristup za pisanje u config direktoriju",
+ "See %s" : "Vidite %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ovo se obično može popraviti %sdavanjem pristupa web poslužitelju za pisanje u config direktoriju%s.",
+ "Sample configuration detected" : "Nađena ogledna konfiguracija",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Otkriveno je da je ogledna konfiguracija kopirana. To može vašu instalaciju prekinuti i nije podržano.Molimo pročitajte dokumentaciju prije nego li izvršite promjene na config.php",
+ "Help" : "Pomoć",
+ "Personal" : "Osobno",
+ "Settings" : "Postavke",
+ "Users" : "Korisnici",
+ "Admin" : "Admin",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplikacija \\\"%s\\\" se ne može instalirati jer nije kompatibilna s ovom verzijom ownClouda.",
+ "No app name specified" : "Nikakav naziv aplikacije nije naveden",
+ "Unknown filetype" : "Vrsta datoteke nepoznata",
+ "Invalid image" : "Neispravna slika",
+ "web services under your control" : "web usluge pod vašom kontrolom",
+ "App directory already exists" : "Direktorij aplikacije već postoji",
+ "Can't create app folder. Please fix permissions. %s" : "Nije moguće kreirati mapu aplikacija. molimo popravite dozvole. %s",
+ "No source specified when installing app" : "Pri instaliranju aplikacija nijedan izvor nije specificiran",
+ "No href specified when installing app from http" : "Pri instaliranju aplikacija iz http nijedan href nije specificiran.",
+ "No path specified when installing app from local file" : "Pri instaliranju aplikacija iz lokalne datoteke nijedan put nije specificiran.",
+ "Archives of type %s are not supported" : "Arhive tipa %s nisu podržane",
+ "Failed to open archive when installing app" : "Otvaranje arhive pri instaliranju aplikacija nije uspjelo.",
+ "App does not provide an info.xml file" : "Aplikacija ne pruža info.xml datoteku",
+ "App can't be installed because of not allowed code in the App" : "Aplikaciju nije moguće instalirati zbog nedopuštenog koda u njoj.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Aplikaciju nije moguće instalirati jer nije kompatibilna s ovom verzijom ownClouda.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Aplikaciju nije moguće instalirati jer sadrži oznaku istinito .",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Aplikaciju nije moguće instalirati jer verzija u info.xml/version nije ista kaoverzija koju je prijavio app store",
+ "Application is not enabled" : "Aplikacija nije aktivirana",
+ "Authentication error" : "Pogrešna autentikacija",
+ "Token expired. Please reload page." : "Token je istekao. Molimo, ponovno učitajte stranicu.",
+ "Unknown user" : "Korisnik nepoznat",
+ "%s enter the database username." : "%s unesite naziva korisnika baze podataka.",
+ "%s enter the database name." : "%s unesite naziv baze podataka",
+ "%s you may not use dots in the database name" : "%s ne smijete koristiti točke u nazivu baze podataka",
+ "MS SQL username and/or password not valid: %s" : "MS SQL korisničko ime i/ili lozinka neispravni: %s",
+ "You need to enter either an existing account or the administrator." : "Trebate unijeti neki postojeći račun ili administratora.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB korisničko ime i/ili lozinka neispravni",
+ "DB Error: \"%s\"" : "DB pogreška: \"%s\"",
+ "Offending command was: \"%s\"" : "Neispravna naredba je bila: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB korisnik '%s'@'localhost' već postoji.",
+ "Drop this user from MySQL/MariaDB" : "Ispustite ovog korisnika iz MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB korisnik '%s'@'%%' već postoji",
+ "Drop this user from MySQL/MariaDB." : "Ispustite ovog korisnika iz MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Vezu Oracle nije moguće uspostaviti",
+ "Oracle username and/or password not valid" : "Korisničko ime i/ili lozinka Oracle neispravni",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Neispravna naredba je bila: \"%s\", ime: %s, lozinka: %s",
+ "PostgreSQL username and/or password not valid" : "Korisničko ime i/ili lozinka PostgreSQL neispravni",
+ "Set an admin username." : "Navedite admin korisničko ime.",
+ "Set an admin password." : "Navedite admin lozinku.",
+ "%s shared »%s« with you" : "%s je s vama podijelio »%s«",
+ "Sharing %s failed, because the file does not exist" : "Dijeljenje %s nije uspjelo jer ta datoteka ne postoji",
+ "You are not allowed to share %s" : "Nije vam dopušteno dijeliti %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Dijeljenje %s nije uspjelo jer je korisnik %s vlasnik te stavke",
+ "Sharing %s failed, because the user %s does not exist" : "Dijeljenje %s nije uspjelo jer korisnik %s ne postoji",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Dijeljenje %s nije uspjelo jer korisnik %s nije član niti jedne grupe u kojoj je %s član",
+ "Sharing %s failed, because this item is already shared with %s" : "Dijeljenje %s nije uspjelo jer je ova stavka već podijeljena s %s",
+ "Sharing %s failed, because the group %s does not exist" : "Dijeljenje %s nije uspjelo jer grupa %s ne postoji",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Dijeljenje %s nije uspjelo jer %s nije član grupe %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Da biste kreirali javnu vezu, morate navesti lozinku, samo zaštićene veze su dopuštene.",
+ "Sharing %s failed, because sharing with links is not allowed" : "Dijeljenje %s nije uspjelo jer dijeljenje s vezama nije dopušteno.",
+ "Share type %s is not valid for %s" : "Tip dijeljenja %s nije dopušteni tip za %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Postavke dozvola za %s nisu uspjele jer dozvole premašuju dozvole za koje %s ima odobrenje",
+ "Setting permissions for %s failed, because the item was not found" : "Postavke dozvola za %s nisu uspjele jer stavka nije nađena.",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nije moguće postaviti datum isteka. Nakon što su podijeljeni, resursi ne mogu isteći kasnije nego %s ",
+ "Cannot set expiration date. Expiration date is in the past" : "Nije moguće postaviti datum isteka. Datum isteka je u prošlosti",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Dijeljenje pozadine %s mora implementirati sučelje OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Dijeljenje pozadine %s nije nađeno",
+ "Sharing backend for %s not found" : "Dijeljenje pozadine za %s nije nađeno",
+ "Sharing %s failed, because the user %s is the original sharer" : "Dijeljenje %s nije uspjelo jer je korisnik %s izvorni djelitelj",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Dijeljenje %s nije uspjelo jer dozvole premašuju dozvole za koje %s ima odobrenje.",
+ "Sharing %s failed, because resharing is not allowed" : "Dijeljenje %s nije uspjelo jer ponovno dijeljenje nije dopušteno.",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Dijeljenje %s nije uspjelo jer pozadina za %s nije mogla pronaći svoj izvor",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Dijeljenje %s nije uspjelo jer u predmemoriji datoteke datoteka nije nađena.",
+ "Could not find category \"%s\"" : "Kategorija \"%s\" nije nađena",
+ "seconds ago" : "prije par sekundi",
+ "_%n minute ago_::_%n minutes ago_" : ["prije %n minute","prije %n minuta","prije %n minuta"],
+ "_%n hour ago_::_%n hours ago_" : ["prije %n sata","prije %n sati","prije %n sati"],
+ "today" : "Danas",
+ "yesterday" : "Jučer",
+ "_%n day go_::_%n days ago_" : ["prije %n dana","prije %n dana","prije %n dana"],
+ "last month" : "Prošli mjesec",
+ "_%n month ago_::_%n months ago_" : ["prije %n mjeseca","prije %n mjeseci","prije %n mjeseci"],
+ "last year" : "Prošle godine",
+ "years ago" : "Prije više godina",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Samo su sljedeći znakovi dopušteni u korisničkom imenu: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Nužno je navesti ispravno korisničko ime",
+ "A valid password must be provided" : "Nužno je navesti ispravnu lozinku",
+ "The username is already being used" : "Korisničko ime se već koristi",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Pogonski programi baze podataka (sqlite, mysql, ili postgresql) nisu instalirani.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Dozvole se obično mogu popraviti %sdavanjem pristupa web poslužitelju za pisanje u korijenskom direktoriju%s",
+ "Cannot write into \"config\" directory" : "Nije moguće zapisivati u \"config\" direktorij",
+ "Cannot write into \"apps\" directory" : "Nije moguće zapisivati u \"apps\" direktorij",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ovo se obično može popraviti %sdavanjem pristupa web poslužitelju za pisanje u apps direktorij%sili isključivanjem appstorea u konfiguracijskoj datoteci.",
+ "Cannot create \"data\" directory (%s)" : "Kreiranje \"data\" direktorija (%s) nije moguće",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Ovo obično može popraviti davanjem pristupa web poslužiteljuza pisanje u korijenskom direktoriju .",
+ "Setting locale to %s failed" : "Postavljanje regionalne sheme u %s nije uspjelo",
+ "Please install one of these locales on your system and restart your webserver." : "Molimo instalirajte jednu od ovih regionalnih shema u svoj sustav i ponovno pokrenite svoj web poslužitelj.",
+ "Please ask your server administrator to install the module." : "Molimo zamolite svog administratora poslužitelja da instalira modul.",
+ "PHP module %s not installed." : "PHP modul %s nije instaliran.",
+ "PHP %s or higher is required." : "PHP verzija treba biti %s ili viša.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Molimo zamolite svog administratora poslužitelja da ažurira PHP na najnoviju verziju.Vašu PHP verziju ownCloud i PHP zajednica više ne podržavaju.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Aktiviran je PHP siguran način rada. Da bi ownCloud radio kako treba, taj mod treba oemogućiti.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP siguran način rada je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. Molimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Postavka Magic Quotes je omogućena. Da bi ownCloud radio kako treba, tu postavku treba onemogućiti.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. MOlimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moduli su instalirani, ali još uvijek su na popisu onih koji nedostaju?",
+ "Please ask your server administrator to restart the web server." : "Molimo zamolite svog administratora poslužitelja da ponovno pokrene web poslužitelj.",
+ "PostgreSQL >= 9 required" : "Potreban je PostgreSQL >= 9",
+ "Please upgrade your database version" : "Molimo, ažurirajte svoju verziju baze podataka",
+ "Error occurred while checking PostgreSQL version" : "Došlo je do pogreške tijekom provjeravanja verzije PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Pobrinite se da imate PostgreSQL >= 9. Za više informacija provjerite zapisnike.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Molimo promijenite dozvole na 0770 tako da se tim direktorijem ne mogu služiti drugi korisnici",
+ "Data directory (%s) is readable by other users" : "Podatkovni direktorij (%s) čitljiv je za druge korisnike",
+ "Data directory (%s) is invalid" : "Podatkovni direktorij (%s) nije ispravan",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Molimo provjerite sadrži li podatkovni direktorij u svom korijenu datoteku \".ocdata\"",
+ "Could not obtain lock type %d on \"%s\"." : "Nije moguće dobiti lock tip %d na \"%s\"."
+},
+"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/lib/l10n/hr.json b/lib/l10n/hr.json
new file mode 100644
index 00000000000..01bd54eccfc
--- /dev/null
+++ b/lib/l10n/hr.json
@@ -0,0 +1,120 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Pisanje u \"config\" direktoriju nije moguće!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Ovo se obično može popraviti tako da se Web poslužitelju dopusti pristup za pisanje u config direktoriju",
+ "See %s" : "Vidite %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ovo se obično može popraviti %sdavanjem pristupa web poslužitelju za pisanje u config direktoriju%s.",
+ "Sample configuration detected" : "Nađena ogledna konfiguracija",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Otkriveno je da je ogledna konfiguracija kopirana. To može vašu instalaciju prekinuti i nije podržano.Molimo pročitajte dokumentaciju prije nego li izvršite promjene na config.php",
+ "Help" : "Pomoć",
+ "Personal" : "Osobno",
+ "Settings" : "Postavke",
+ "Users" : "Korisnici",
+ "Admin" : "Admin",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplikacija \\\"%s\\\" se ne može instalirati jer nije kompatibilna s ovom verzijom ownClouda.",
+ "No app name specified" : "Nikakav naziv aplikacije nije naveden",
+ "Unknown filetype" : "Vrsta datoteke nepoznata",
+ "Invalid image" : "Neispravna slika",
+ "web services under your control" : "web usluge pod vašom kontrolom",
+ "App directory already exists" : "Direktorij aplikacije već postoji",
+ "Can't create app folder. Please fix permissions. %s" : "Nije moguće kreirati mapu aplikacija. molimo popravite dozvole. %s",
+ "No source specified when installing app" : "Pri instaliranju aplikacija nijedan izvor nije specificiran",
+ "No href specified when installing app from http" : "Pri instaliranju aplikacija iz http nijedan href nije specificiran.",
+ "No path specified when installing app from local file" : "Pri instaliranju aplikacija iz lokalne datoteke nijedan put nije specificiran.",
+ "Archives of type %s are not supported" : "Arhive tipa %s nisu podržane",
+ "Failed to open archive when installing app" : "Otvaranje arhive pri instaliranju aplikacija nije uspjelo.",
+ "App does not provide an info.xml file" : "Aplikacija ne pruža info.xml datoteku",
+ "App can't be installed because of not allowed code in the App" : "Aplikaciju nije moguće instalirati zbog nedopuštenog koda u njoj.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Aplikaciju nije moguće instalirati jer nije kompatibilna s ovom verzijom ownClouda.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Aplikaciju nije moguće instalirati jer sadrži oznaku istinito .",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Aplikaciju nije moguće instalirati jer verzija u info.xml/version nije ista kaoverzija koju je prijavio app store",
+ "Application is not enabled" : "Aplikacija nije aktivirana",
+ "Authentication error" : "Pogrešna autentikacija",
+ "Token expired. Please reload page." : "Token je istekao. Molimo, ponovno učitajte stranicu.",
+ "Unknown user" : "Korisnik nepoznat",
+ "%s enter the database username." : "%s unesite naziva korisnika baze podataka.",
+ "%s enter the database name." : "%s unesite naziv baze podataka",
+ "%s you may not use dots in the database name" : "%s ne smijete koristiti točke u nazivu baze podataka",
+ "MS SQL username and/or password not valid: %s" : "MS SQL korisničko ime i/ili lozinka neispravni: %s",
+ "You need to enter either an existing account or the administrator." : "Trebate unijeti neki postojeći račun ili administratora.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB korisničko ime i/ili lozinka neispravni",
+ "DB Error: \"%s\"" : "DB pogreška: \"%s\"",
+ "Offending command was: \"%s\"" : "Neispravna naredba je bila: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB korisnik '%s'@'localhost' već postoji.",
+ "Drop this user from MySQL/MariaDB" : "Ispustite ovog korisnika iz MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB korisnik '%s'@'%%' već postoji",
+ "Drop this user from MySQL/MariaDB." : "Ispustite ovog korisnika iz MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Vezu Oracle nije moguće uspostaviti",
+ "Oracle username and/or password not valid" : "Korisničko ime i/ili lozinka Oracle neispravni",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Neispravna naredba je bila: \"%s\", ime: %s, lozinka: %s",
+ "PostgreSQL username and/or password not valid" : "Korisničko ime i/ili lozinka PostgreSQL neispravni",
+ "Set an admin username." : "Navedite admin korisničko ime.",
+ "Set an admin password." : "Navedite admin lozinku.",
+ "%s shared »%s« with you" : "%s je s vama podijelio »%s«",
+ "Sharing %s failed, because the file does not exist" : "Dijeljenje %s nije uspjelo jer ta datoteka ne postoji",
+ "You are not allowed to share %s" : "Nije vam dopušteno dijeliti %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Dijeljenje %s nije uspjelo jer je korisnik %s vlasnik te stavke",
+ "Sharing %s failed, because the user %s does not exist" : "Dijeljenje %s nije uspjelo jer korisnik %s ne postoji",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Dijeljenje %s nije uspjelo jer korisnik %s nije član niti jedne grupe u kojoj je %s član",
+ "Sharing %s failed, because this item is already shared with %s" : "Dijeljenje %s nije uspjelo jer je ova stavka već podijeljena s %s",
+ "Sharing %s failed, because the group %s does not exist" : "Dijeljenje %s nije uspjelo jer grupa %s ne postoji",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Dijeljenje %s nije uspjelo jer %s nije član grupe %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Da biste kreirali javnu vezu, morate navesti lozinku, samo zaštićene veze su dopuštene.",
+ "Sharing %s failed, because sharing with links is not allowed" : "Dijeljenje %s nije uspjelo jer dijeljenje s vezama nije dopušteno.",
+ "Share type %s is not valid for %s" : "Tip dijeljenja %s nije dopušteni tip za %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Postavke dozvola za %s nisu uspjele jer dozvole premašuju dozvole za koje %s ima odobrenje",
+ "Setting permissions for %s failed, because the item was not found" : "Postavke dozvola za %s nisu uspjele jer stavka nije nađena.",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nije moguće postaviti datum isteka. Nakon što su podijeljeni, resursi ne mogu isteći kasnije nego %s ",
+ "Cannot set expiration date. Expiration date is in the past" : "Nije moguće postaviti datum isteka. Datum isteka je u prošlosti",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Dijeljenje pozadine %s mora implementirati sučelje OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Dijeljenje pozadine %s nije nađeno",
+ "Sharing backend for %s not found" : "Dijeljenje pozadine za %s nije nađeno",
+ "Sharing %s failed, because the user %s is the original sharer" : "Dijeljenje %s nije uspjelo jer je korisnik %s izvorni djelitelj",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Dijeljenje %s nije uspjelo jer dozvole premašuju dozvole za koje %s ima odobrenje.",
+ "Sharing %s failed, because resharing is not allowed" : "Dijeljenje %s nije uspjelo jer ponovno dijeljenje nije dopušteno.",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Dijeljenje %s nije uspjelo jer pozadina za %s nije mogla pronaći svoj izvor",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Dijeljenje %s nije uspjelo jer u predmemoriji datoteke datoteka nije nađena.",
+ "Could not find category \"%s\"" : "Kategorija \"%s\" nije nađena",
+ "seconds ago" : "prije par sekundi",
+ "_%n minute ago_::_%n minutes ago_" : ["prije %n minute","prije %n minuta","prije %n minuta"],
+ "_%n hour ago_::_%n hours ago_" : ["prije %n sata","prije %n sati","prije %n sati"],
+ "today" : "Danas",
+ "yesterday" : "Jučer",
+ "_%n day go_::_%n days ago_" : ["prije %n dana","prije %n dana","prije %n dana"],
+ "last month" : "Prošli mjesec",
+ "_%n month ago_::_%n months ago_" : ["prije %n mjeseca","prije %n mjeseci","prije %n mjeseci"],
+ "last year" : "Prošle godine",
+ "years ago" : "Prije više godina",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Samo su sljedeći znakovi dopušteni u korisničkom imenu: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Nužno je navesti ispravno korisničko ime",
+ "A valid password must be provided" : "Nužno je navesti ispravnu lozinku",
+ "The username is already being used" : "Korisničko ime se već koristi",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Pogonski programi baze podataka (sqlite, mysql, ili postgresql) nisu instalirani.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Dozvole se obično mogu popraviti %sdavanjem pristupa web poslužitelju za pisanje u korijenskom direktoriju%s",
+ "Cannot write into \"config\" directory" : "Nije moguće zapisivati u \"config\" direktorij",
+ "Cannot write into \"apps\" directory" : "Nije moguće zapisivati u \"apps\" direktorij",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ovo se obično može popraviti %sdavanjem pristupa web poslužitelju za pisanje u apps direktorij%sili isključivanjem appstorea u konfiguracijskoj datoteci.",
+ "Cannot create \"data\" directory (%s)" : "Kreiranje \"data\" direktorija (%s) nije moguće",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Ovo obično može popraviti davanjem pristupa web poslužiteljuza pisanje u korijenskom direktoriju .",
+ "Setting locale to %s failed" : "Postavljanje regionalne sheme u %s nije uspjelo",
+ "Please install one of these locales on your system and restart your webserver." : "Molimo instalirajte jednu od ovih regionalnih shema u svoj sustav i ponovno pokrenite svoj web poslužitelj.",
+ "Please ask your server administrator to install the module." : "Molimo zamolite svog administratora poslužitelja da instalira modul.",
+ "PHP module %s not installed." : "PHP modul %s nije instaliran.",
+ "PHP %s or higher is required." : "PHP verzija treba biti %s ili viša.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Molimo zamolite svog administratora poslužitelja da ažurira PHP na najnoviju verziju.Vašu PHP verziju ownCloud i PHP zajednica više ne podržavaju.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Aktiviran je PHP siguran način rada. Da bi ownCloud radio kako treba, taj mod treba oemogućiti.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP siguran način rada je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. Molimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Postavka Magic Quotes je omogućena. Da bi ownCloud radio kako treba, tu postavku treba onemogućiti.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. MOlimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moduli su instalirani, ali još uvijek su na popisu onih koji nedostaju?",
+ "Please ask your server administrator to restart the web server." : "Molimo zamolite svog administratora poslužitelja da ponovno pokrene web poslužitelj.",
+ "PostgreSQL >= 9 required" : "Potreban je PostgreSQL >= 9",
+ "Please upgrade your database version" : "Molimo, ažurirajte svoju verziju baze podataka",
+ "Error occurred while checking PostgreSQL version" : "Došlo je do pogreške tijekom provjeravanja verzije PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Pobrinite se da imate PostgreSQL >= 9. Za više informacija provjerite zapisnike.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Molimo promijenite dozvole na 0770 tako da se tim direktorijem ne mogu služiti drugi korisnici",
+ "Data directory (%s) is readable by other users" : "Podatkovni direktorij (%s) čitljiv je za druge korisnike",
+ "Data directory (%s) is invalid" : "Podatkovni direktorij (%s) nije ispravan",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Molimo provjerite sadrži li podatkovni direktorij u svom korijenu datoteku \".ocdata\"",
+ "Could not obtain lock type %d on \"%s\"." : "Nije moguće dobiti lock tip %d na \"%s\"."
+},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
+}
\ No newline at end of file
diff --git a/lib/l10n/hr.php b/lib/l10n/hr.php
deleted file mode 100644
index 6831ce38d0f..00000000000
--- a/lib/l10n/hr.php
+++ /dev/null
@@ -1,121 +0,0 @@
- "Pisanje u \"config\" direktoriju nije moguće!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Ovo se obično može popraviti tako da se Web poslužitelju dopusti pristup za pisanje u config direktoriju",
-"See %s" => "Vidite %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Ovo se obično može popraviti %sdavanjem pristupa web poslužitelju za pisanje u config direktoriju%s.",
-"Sample configuration detected" => "Nađena ogledna konfiguracija",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Otkriveno je da je ogledna konfiguracija kopirana. To može vašu instalaciju prekinuti i nije podržano.Molimo pročitajte dokumentaciju prije nego li izvršite promjene na config.php",
-"Help" => "Pomoć",
-"Personal" => "Osobno",
-"Settings" => "Postavke",
-"Users" => "Korisnici",
-"Admin" => "Admin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Aplikacija \\\"%s\\\" se ne može instalirati jer nije kompatibilna s ovom verzijom ownClouda.",
-"No app name specified" => "Nikakav naziv aplikacije nije naveden",
-"Unknown filetype" => "Vrsta datoteke nepoznata",
-"Invalid image" => "Neispravna slika",
-"web services under your control" => "web usluge pod vašom kontrolom",
-"App directory already exists" => "Direktorij aplikacije već postoji",
-"Can't create app folder. Please fix permissions. %s" => "Nije moguće kreirati mapu aplikacija. molimo popravite dozvole. %s",
-"No source specified when installing app" => "Pri instaliranju aplikacija nijedan izvor nije specificiran",
-"No href specified when installing app from http" => "Pri instaliranju aplikacija iz http nijedan href nije specificiran.",
-"No path specified when installing app from local file" => "Pri instaliranju aplikacija iz lokalne datoteke nijedan put nije specificiran.",
-"Archives of type %s are not supported" => "Arhive tipa %s nisu podržane",
-"Failed to open archive when installing app" => "Otvaranje arhive pri instaliranju aplikacija nije uspjelo.",
-"App does not provide an info.xml file" => "Aplikacija ne pruža info.xml datoteku",
-"App can't be installed because of not allowed code in the App" => "Aplikaciju nije moguće instalirati zbog nedopuštenog koda u njoj.",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Aplikaciju nije moguće instalirati jer nije kompatibilna s ovom verzijom ownClouda.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Aplikaciju nije moguće instalirati jer sadrži oznaku istinito .",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Aplikaciju nije moguće instalirati jer verzija u info.xml/version nije ista kaoverzija koju je prijavio app store",
-"Application is not enabled" => "Aplikacija nije aktivirana",
-"Authentication error" => "Pogrešna autentikacija",
-"Token expired. Please reload page." => "Token je istekao. Molimo, ponovno učitajte stranicu.",
-"Unknown user" => "Korisnik nepoznat",
-"%s enter the database username." => "%s unesite naziva korisnika baze podataka.",
-"%s enter the database name." => "%s unesite naziv baze podataka",
-"%s you may not use dots in the database name" => "%s ne smijete koristiti točke u nazivu baze podataka",
-"MS SQL username and/or password not valid: %s" => "MS SQL korisničko ime i/ili lozinka neispravni: %s",
-"You need to enter either an existing account or the administrator." => "Trebate unijeti neki postojeći račun ili administratora.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB korisničko ime i/ili lozinka neispravni",
-"DB Error: \"%s\"" => "DB pogreška: \"%s\"",
-"Offending command was: \"%s\"" => "Neispravna naredba je bila: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB korisnik '%s'@'localhost' već postoji.",
-"Drop this user from MySQL/MariaDB" => "Ispustite ovog korisnika iz MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB korisnik '%s'@'%%' već postoji",
-"Drop this user from MySQL/MariaDB." => "Ispustite ovog korisnika iz MySQL/MariaDB.",
-"Oracle connection could not be established" => "Vezu Oracle nije moguće uspostaviti",
-"Oracle username and/or password not valid" => "Korisničko ime i/ili lozinka Oracle neispravni",
-"Offending command was: \"%s\", name: %s, password: %s" => "Neispravna naredba je bila: \"%s\", ime: %s, lozinka: %s",
-"PostgreSQL username and/or password not valid" => "Korisničko ime i/ili lozinka PostgreSQL neispravni",
-"Set an admin username." => "Navedite admin korisničko ime.",
-"Set an admin password." => "Navedite admin lozinku.",
-"%s shared »%s« with you" => "%s je s vama podijelio »%s«",
-"Sharing %s failed, because the file does not exist" => "Dijeljenje %s nije uspjelo jer ta datoteka ne postoji",
-"You are not allowed to share %s" => "Nije vam dopušteno dijeliti %s",
-"Sharing %s failed, because the user %s is the item owner" => "Dijeljenje %s nije uspjelo jer je korisnik %s vlasnik te stavke",
-"Sharing %s failed, because the user %s does not exist" => "Dijeljenje %s nije uspjelo jer korisnik %s ne postoji",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Dijeljenje %s nije uspjelo jer korisnik %s nije član niti jedne grupe u kojoj je %s član",
-"Sharing %s failed, because this item is already shared with %s" => "Dijeljenje %s nije uspjelo jer je ova stavka već podijeljena s %s",
-"Sharing %s failed, because the group %s does not exist" => "Dijeljenje %s nije uspjelo jer grupa %s ne postoji",
-"Sharing %s failed, because %s is not a member of the group %s" => "Dijeljenje %s nije uspjelo jer %s nije član grupe %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Da biste kreirali javnu vezu, morate navesti lozinku, samo zaštićene veze su dopuštene.",
-"Sharing %s failed, because sharing with links is not allowed" => "Dijeljenje %s nije uspjelo jer dijeljenje s vezama nije dopušteno.",
-"Share type %s is not valid for %s" => "Tip dijeljenja %s nije dopušteni tip za %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Postavke dozvola za %s nisu uspjele jer dozvole premašuju dozvole za koje %s ima odobrenje",
-"Setting permissions for %s failed, because the item was not found" => "Postavke dozvola za %s nisu uspjele jer stavka nije nađena.",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Nije moguće postaviti datum isteka. Nakon što su podijeljeni, resursi ne mogu isteći kasnije nego %s ",
-"Cannot set expiration date. Expiration date is in the past" => "Nije moguće postaviti datum isteka. Datum isteka je u prošlosti",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Dijeljenje pozadine %s mora implementirati sučelje OCP\\Share_Backend",
-"Sharing backend %s not found" => "Dijeljenje pozadine %s nije nađeno",
-"Sharing backend for %s not found" => "Dijeljenje pozadine za %s nije nađeno",
-"Sharing %s failed, because the user %s is the original sharer" => "Dijeljenje %s nije uspjelo jer je korisnik %s izvorni djelitelj",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Dijeljenje %s nije uspjelo jer dozvole premašuju dozvole za koje %s ima odobrenje.",
-"Sharing %s failed, because resharing is not allowed" => "Dijeljenje %s nije uspjelo jer ponovno dijeljenje nije dopušteno.",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Dijeljenje %s nije uspjelo jer pozadina za %s nije mogla pronaći svoj izvor",
-"Sharing %s failed, because the file could not be found in the file cache" => "Dijeljenje %s nije uspjelo jer u predmemoriji datoteke datoteka nije nađena.",
-"Could not find category \"%s\"" => "Kategorija \"%s\" nije nađena",
-"seconds ago" => "prije par sekundi",
-"_%n minute ago_::_%n minutes ago_" => array("prije %n minute","prije %n minuta","prije %n minuta"),
-"_%n hour ago_::_%n hours ago_" => array("prije %n sata","prije %n sati","prije %n sati"),
-"today" => "Danas",
-"yesterday" => "Jučer",
-"_%n day go_::_%n days ago_" => array("prije %n dana","prije %n dana","prije %n dana"),
-"last month" => "Prošli mjesec",
-"_%n month ago_::_%n months ago_" => array("prije %n mjeseca","prije %n mjeseci","prije %n mjeseci"),
-"last year" => "Prošle godine",
-"years ago" => "Prije više godina",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Samo su sljedeći znakovi dopušteni u korisničkom imenu: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
-"A valid username must be provided" => "Nužno je navesti ispravno korisničko ime",
-"A valid password must be provided" => "Nužno je navesti ispravnu lozinku",
-"The username is already being used" => "Korisničko ime se već koristi",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Pogonski programi baze podataka (sqlite, mysql, ili postgresql) nisu instalirani.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Dozvole se obično mogu popraviti %sdavanjem pristupa web poslužitelju za pisanje u korijenskom direktoriju%s",
-"Cannot write into \"config\" directory" => "Nije moguće zapisivati u \"config\" direktorij",
-"Cannot write into \"apps\" directory" => "Nije moguće zapisivati u \"apps\" direktorij",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Ovo se obično može popraviti %sdavanjem pristupa web poslužitelju za pisanje u apps direktorij%sili isključivanjem appstorea u konfiguracijskoj datoteci.",
-"Cannot create \"data\" directory (%s)" => "Kreiranje \"data\" direktorija (%s) nije moguće",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Ovo obično može popraviti davanjem pristupa web poslužiteljuza pisanje u korijenskom direktoriju .",
-"Setting locale to %s failed" => "Postavljanje regionalne sheme u %s nije uspjelo",
-"Please install one of these locales on your system and restart your webserver." => "Molimo instalirajte jednu od ovih regionalnih shema u svoj sustav i ponovno pokrenite svoj web poslužitelj.",
-"Please ask your server administrator to install the module." => "Molimo zamolite svog administratora poslužitelja da instalira modul.",
-"PHP module %s not installed." => "PHP modul %s nije instaliran.",
-"PHP %s or higher is required." => "PHP verzija treba biti %s ili viša.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Molimo zamolite svog administratora poslužitelja da ažurira PHP na najnoviju verziju.Vašu PHP verziju ownCloud i PHP zajednica više ne podržavaju.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "Aktiviran je PHP siguran način rada. Da bi ownCloud radio kako treba, taj mod treba oemogućiti.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP siguran način rada je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. Molimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Postavka Magic Quotes je omogućena. Da bi ownCloud radio kako treba, tu postavku treba onemogućiti.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes je zastarjela i uglavnom beskorisna postavka koju treba onemogućiti. MOlimo zamolite svogadministratora poslužitelja da je onemogući, bilo u php.ini ili u vašoj konfiguraciji web poslužitelja.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP moduli su instalirani, ali još uvijek su na popisu onih koji nedostaju?",
-"Please ask your server administrator to restart the web server." => "Molimo zamolite svog administratora poslužitelja da ponovno pokrene web poslužitelj.",
-"PostgreSQL >= 9 required" => "Potreban je PostgreSQL >= 9",
-"Please upgrade your database version" => "Molimo, ažurirajte svoju verziju baze podataka",
-"Error occurred while checking PostgreSQL version" => "Došlo je do pogreške tijekom provjeravanja verzije PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Pobrinite se da imate PostgreSQL >= 9. Za više informacija provjerite zapisnike.",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Molimo promijenite dozvole na 0770 tako da se tim direktorijem ne mogu služiti drugi korisnici",
-"Data directory (%s) is readable by other users" => "Podatkovni direktorij (%s) čitljiv je za druge korisnike",
-"Data directory (%s) is invalid" => "Podatkovni direktorij (%s) nije ispravan",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Molimo provjerite sadrži li podatkovni direktorij u svom korijenu datoteku \".ocdata\"",
-"Could not obtain lock type %d on \"%s\"." => "Nije moguće dobiti lock tip %d na \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;";
diff --git a/lib/l10n/hu_HU.js b/lib/l10n/hu_HU.js
new file mode 100644
index 00000000000..be14e2d1f66
--- /dev/null
+++ b/lib/l10n/hu_HU.js
@@ -0,0 +1,124 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Nem írható a \"config\" könyvtár!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Ez rendszerint úgy oldható meg, hogy írási jogot adunk a webszervernek a config könyvtárra.",
+ "See %s" : "Lásd %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ez rendszerint úgy oldható meg, hogy %sírási jogot adunk a webszervernek a config könyvtárra%s.",
+ "Sample configuration detected" : "A példabeállítások vannak beállítva",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Úgy tűnik a példakonfigurációt próbálja ténylegesen használni. Ez nem támogatott, és működésképtelenné teheti a telepítést. Kérjük olvassa el a dokumentációt és azt követően változtasson a config.php-n!",
+ "Help" : "Súgó",
+ "Personal" : "Személyes",
+ "Settings" : "Beállítások",
+ "Users" : "Felhasználók",
+ "Admin" : "Adminsztráció",
+ "Recommended" : "Ajánlott",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : " \\\"%s\\\" alkalmazás nem telepíthető, mert nem kompatibilis az ownCloud jelen változatával.",
+ "No app name specified" : "Nincs az alkalmazás név megadva.",
+ "Unknown filetype" : "Ismeretlen file tipús",
+ "Invalid image" : "Hibás kép",
+ "web services under your control" : "webszolgáltatások saját kézben",
+ "App directory already exists" : "Az alkalmazás mappája már létezik",
+ "Can't create app folder. Please fix permissions. %s" : "Nem lehetett létrehozni az alkalmazás mappáját. Kérem ellenőrizze a jogosultságokat. %s",
+ "No source specified when installing app" : "Az alkalmazás telepítéséhez nincs forrás megadva",
+ "No href specified when installing app from http" : "Az alkalmazás http-n keresztül történő telepítéséhez nincs href hivetkozás megadva",
+ "No path specified when installing app from local file" : "Az alkalmazás helyi telepítéséhez nincs útvonal (mappa) megadva",
+ "Archives of type %s are not supported" : "A(z) %s típusú tömörített állomány nem támogatott",
+ "Failed to open archive when installing app" : "Nem sikerült megnyitni a tömörített állományt a telepítés során",
+ "App does not provide an info.xml file" : "Az alkalmazás nem szolgáltatott info.xml file-t",
+ "App can't be installed because of not allowed code in the App" : "Az alkalmazást nem lehet telepíteni, mert abban nem engedélyezett programkód szerepel",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Az alkalmazás nem telepíthető, mert nem kompatibilis az ownCloud jelen verziójával.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Az alkalmazást nem lehet telepíteni, mert tartalmazza a \n\ntrue\n \ncímkét, ami a nem szállított alkalmazások esetén nem engedélyezett",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Az alkalmazást nem lehet telepíteni, mert az info.xml/version-ben megadott verzió nem egyezik az alkalmazás-kiszolgálón feltüntetett verzióval.",
+ "Application is not enabled" : "Az alkalmazás nincs engedélyezve",
+ "Authentication error" : "Azonosítási hiba",
+ "Token expired. Please reload page." : "A token lejárt. Frissítse az oldalt.",
+ "Unknown user" : "Ismeretlen felhasználó",
+ "%s enter the database username." : "%s adja meg az adatbázist elérő felhasználó login nevét.",
+ "%s enter the database name." : "%s adja meg az adatbázis nevét.",
+ "%s you may not use dots in the database name" : "%s az adatbázis neve nem tartalmazhat pontot",
+ "MS SQL username and/or password not valid: %s" : "Az MS SQL felhasználónév és/vagy jelszó érvénytelen: %s",
+ "You need to enter either an existing account or the administrator." : "Vagy egy létező felhasználó vagy az adminisztrátor bejelentkezési nevét kell megadnia",
+ "MySQL/MariaDB username and/or password not valid" : "A MySQL/MariaDB felhasználónév és/vagy jelszó nem megfelelő",
+ "DB Error: \"%s\"" : "Adatbázis hiba: \"%s\"",
+ "Offending command was: \"%s\"" : "A hibát ez a parancs okozta: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "A MySQL/MariaDB felhasználó '%s'@'localhost' már létezik.",
+ "Drop this user from MySQL/MariaDB" : "Töröljük ez a felhasználót a MySQL/MariaDB-rendszerből",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "A MySQL/MariaDB felhasználó '%s'@'%%' már létezik.",
+ "Drop this user from MySQL/MariaDB." : "Töröljük ez a felhasználót a MySQL/MariaDB-rendszerből.",
+ "Oracle connection could not be established" : "Az Oracle kapcsolat nem hozható létre",
+ "Oracle username and/or password not valid" : "Az Oracle felhasználói név és/vagy jelszó érvénytelen",
+ "Offending command was: \"%s\", name: %s, password: %s" : "A hibát okozó parancs ez volt: \"%s\", login név: %s, jelszó: %s",
+ "PostgreSQL username and/or password not valid" : "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen",
+ "Set an admin username." : "Állítson be egy felhasználói nevet az adminisztrációhoz.",
+ "Set an admin password." : "Állítson be egy jelszót az adminisztrációhoz.",
+ "Can't create or write into the data directory %s" : "Nem sikerült létrehozni vagy irni a \"data\" könyvtárba %s",
+ "%s shared »%s« with you" : "%s megosztotta Önnel ezt: »%s«",
+ "Sharing %s failed, because the file does not exist" : "%s megosztása sikertelen, mert a fájl nem létezik",
+ "You are not allowed to share %s" : "Önnek nincs jogosultsága %s megosztására",
+ "Sharing %s failed, because the user %s is the item owner" : "%s megosztása nem sikerült, mert %s felhasználó az állomány tulajdonosa",
+ "Sharing %s failed, because the user %s does not exist" : "%s megosztása nem sikerült, mert %s felhasználó nem létezik",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s megosztása nem sikerült, mert %s felhasználó nem tagja egyik olyan csoportnak sem, aminek %s tagja",
+ "Sharing %s failed, because this item is already shared with %s" : "%s megosztása nem sikerült, mert ez már meg van osztva %s-vel",
+ "Sharing %s failed, because the group %s does not exist" : "%s megosztása nem sikerült, mert %s csoport nem létezik",
+ "Sharing %s failed, because %s is not a member of the group %s" : "%s megosztása nem sikerült, mert %s felhasználó nem tagja a %s csoportnak",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Meg kell adnia egy jelszót is, mert a nyilvános linkek csak jelszóval védetten használhatók",
+ "Sharing %s failed, because sharing with links is not allowed" : "%s megosztása nem sikerült, mert a linkekkel történő megosztás nincs engedélyezve",
+ "Share type %s is not valid for %s" : "A %s megosztási típus nem érvényes %s-re",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nem sikerült %s-re beállítani az elérési jogosultságokat, mert a megadottak túllépik a %s-re érvényes jogosultságokat",
+ "Setting permissions for %s failed, because the item was not found" : "Nem sikerült %s-re beállítani az elérési jogosultságokat, mert a kérdéses állomány nem található",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nem lehet beállítani a lejárati időt. A megosztások legfeljebb ennyi idővel járhatnak le a létrehozásukat követően: %s",
+ "Cannot set expiration date. Expiration date is in the past" : "Nem lehet beállítani a lejárati időt, mivel a megadott lejárati időpont már elmúlt.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Az %s megosztási alrendszernek támogatnia kell az OCP\\Share_Backend interface-t",
+ "Sharing backend %s not found" : "A %s megosztási alrendszer nem található",
+ "Sharing backend for %s not found" : "%s megosztási alrendszere nem található",
+ "Sharing %s failed, because the user %s is the original sharer" : "%s megosztása nem sikerült, mert %s felhasználó az eredeti megosztó",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s megosztása nem sikerült, mert a jogosultságok túllépik azt, ami %s rendelkezésére áll",
+ "Sharing %s failed, because resharing is not allowed" : "%s megosztása nem sikerült, mert a megosztás továbbadása nincs engedélyezve",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s megosztása nem sikerült, mert %s megosztási alrendszere nem találja",
+ "Sharing %s failed, because the file could not be found in the file cache" : "%s megosztása nem sikerült, mert a fájl nem található a gyorsítótárban",
+ "Could not find category \"%s\"" : "Ez a kategória nem található: \"%s\"",
+ "seconds ago" : "pár másodperce",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n perccel ezelőtt"],
+ "_%n hour ago_::_%n hours ago_" : ["%n órával ezelőtt","%n órával ezelőtt"],
+ "today" : "ma",
+ "yesterday" : "tegnap",
+ "_%n day go_::_%n days ago_" : ["%n nappal ezelőtt","%n nappal ezelőtt"],
+ "last month" : "múlt hónapban",
+ "_%n month ago_::_%n months ago_" : ["%n hónappal ezelőtt","%n hónappal ezelőtt"],
+ "last year" : "tavaly",
+ "years ago" : "több éve",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "A felhasználónévben csak a következő karakterek fordulhatnak elő: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-\"",
+ "A valid username must be provided" : "Érvényes felhasználónevet kell megadnia",
+ "A valid password must be provided" : "Érvényes jelszót kell megadnia",
+ "The username is already being used" : "Ez a bejelentkezési név már foglalt",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nincs telepítve adatbázis-meghajtóprogram (sqlite, mysql vagy postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Az elérési problémák rendszerint megoldhatók azzal, ha a %swebszervernek írásjogot adunk a gyökérkönyvtárra%s.",
+ "Cannot write into \"config\" directory" : "Nem írható a \"config\" könyvtár",
+ "Cannot write into \"apps\" directory" : "Nem írható az \"apps\" könyvtár",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ez rendszerint úgy oldható meg, hogy %sírási jogot adunk a webszervernek az app könyvtárra%s, vagy letiltjuk a config fájlban az appstore használatát.",
+ "Cannot create \"data\" directory (%s)" : "Nem sikerült létrehozni a \"data\" könyvtárt (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Ez rendszerint úgy oldható meg, hogy írásjogot adunk a webszervernek a gyökérkönyvtárra .",
+ "Setting locale to %s failed" : "A lokalizáció %s-re való állítása nem sikerült",
+ "Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!",
+ "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!",
+ "PHP module %s not installed." : "A %s PHP modul nincs telepítve.",
+ "PHP %s or higher is required." : "PHP %s vagy ennél újabb szükséges.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Kérje meg a rendszergazdát, hogy frissítse a PHP-t újabb változatra! Ezt a PHP változatot már nem támogatja az ownCloud és a PHP fejlesztői közösség.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Be van állítva a PHP Safe Mode. Az ownCloud megfelelő működéséhez szükséges, hogy ez ki legyen kapcsolva.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "A PHP Safe Mode egy régi, már nem támogatott és haszontalan üzemmód, amit érdemes letiltani. Kérje meg a rendszergazdát, hogy tiltsa le vagy a php.ini-ben, vagy a webszerver beállításokban!",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Be van álltva a Magic Quotes. Az ownCloud megfelelő működéséhez szükséges, hogy ez le legyen tiltva.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "A Magic Quotes egy régi, már nem támogatott és haszontalan üzemmód, amit érdemes letiltani. Kérje meg a rendszergazdát, hogy tiltsa le vagy a php.ini-ben, vagy a webszerver beállításokban!",
+ "PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?",
+ "Please ask your server administrator to restart the web server." : "Kérje meg a rendszergazdát, hogy indítsa újra a webszervert!",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 szükséges",
+ "Please upgrade your database version" : "Kérem frissítse az adatbázis-szoftvert!",
+ "Error occurred while checking PostgreSQL version" : "Hiba történt a PostgreSQL verziójának ellenőrzése közben",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Kérjük gondoskodjon róla, hogy a PostgreSQL legalább 9-es verziójú legyen, vagy ellenőrizze a naplófájlokat, hogy mi okozta a hibát!",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Kérjük módosítsa a könyvtár elérhetőségi engedélybeállítását 0770-re, hogy a tartalmát más felhasználó ne listázhassa!",
+ "Data directory (%s) is readable by other users" : "Az adatkönyvtár (%s) más felhasználók számára is olvasható ",
+ "Data directory (%s) is invalid" : "Érvénytelen a megadott adatkönyvtár (%s) ",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Kérjük ellenőrizze, hogy az adatkönyvtár tartalmaz a gyökerében egy \".ocdata\" nevű állományt!",
+ "Could not obtain lock type %d on \"%s\"." : "Nem sikerült %d típusú zárolást elérni itt: \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/hu_HU.json b/lib/l10n/hu_HU.json
new file mode 100644
index 00000000000..434b2bbde9b
--- /dev/null
+++ b/lib/l10n/hu_HU.json
@@ -0,0 +1,122 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Nem írható a \"config\" könyvtár!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Ez rendszerint úgy oldható meg, hogy írási jogot adunk a webszervernek a config könyvtárra.",
+ "See %s" : "Lásd %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ez rendszerint úgy oldható meg, hogy %sírási jogot adunk a webszervernek a config könyvtárra%s.",
+ "Sample configuration detected" : "A példabeállítások vannak beállítva",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Úgy tűnik a példakonfigurációt próbálja ténylegesen használni. Ez nem támogatott, és működésképtelenné teheti a telepítést. Kérjük olvassa el a dokumentációt és azt követően változtasson a config.php-n!",
+ "Help" : "Súgó",
+ "Personal" : "Személyes",
+ "Settings" : "Beállítások",
+ "Users" : "Felhasználók",
+ "Admin" : "Adminsztráció",
+ "Recommended" : "Ajánlott",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : " \\\"%s\\\" alkalmazás nem telepíthető, mert nem kompatibilis az ownCloud jelen változatával.",
+ "No app name specified" : "Nincs az alkalmazás név megadva.",
+ "Unknown filetype" : "Ismeretlen file tipús",
+ "Invalid image" : "Hibás kép",
+ "web services under your control" : "webszolgáltatások saját kézben",
+ "App directory already exists" : "Az alkalmazás mappája már létezik",
+ "Can't create app folder. Please fix permissions. %s" : "Nem lehetett létrehozni az alkalmazás mappáját. Kérem ellenőrizze a jogosultságokat. %s",
+ "No source specified when installing app" : "Az alkalmazás telepítéséhez nincs forrás megadva",
+ "No href specified when installing app from http" : "Az alkalmazás http-n keresztül történő telepítéséhez nincs href hivetkozás megadva",
+ "No path specified when installing app from local file" : "Az alkalmazás helyi telepítéséhez nincs útvonal (mappa) megadva",
+ "Archives of type %s are not supported" : "A(z) %s típusú tömörített állomány nem támogatott",
+ "Failed to open archive when installing app" : "Nem sikerült megnyitni a tömörített állományt a telepítés során",
+ "App does not provide an info.xml file" : "Az alkalmazás nem szolgáltatott info.xml file-t",
+ "App can't be installed because of not allowed code in the App" : "Az alkalmazást nem lehet telepíteni, mert abban nem engedélyezett programkód szerepel",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Az alkalmazás nem telepíthető, mert nem kompatibilis az ownCloud jelen verziójával.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Az alkalmazást nem lehet telepíteni, mert tartalmazza a \n\ntrue\n \ncímkét, ami a nem szállított alkalmazások esetén nem engedélyezett",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Az alkalmazást nem lehet telepíteni, mert az info.xml/version-ben megadott verzió nem egyezik az alkalmazás-kiszolgálón feltüntetett verzióval.",
+ "Application is not enabled" : "Az alkalmazás nincs engedélyezve",
+ "Authentication error" : "Azonosítási hiba",
+ "Token expired. Please reload page." : "A token lejárt. Frissítse az oldalt.",
+ "Unknown user" : "Ismeretlen felhasználó",
+ "%s enter the database username." : "%s adja meg az adatbázist elérő felhasználó login nevét.",
+ "%s enter the database name." : "%s adja meg az adatbázis nevét.",
+ "%s you may not use dots in the database name" : "%s az adatbázis neve nem tartalmazhat pontot",
+ "MS SQL username and/or password not valid: %s" : "Az MS SQL felhasználónév és/vagy jelszó érvénytelen: %s",
+ "You need to enter either an existing account or the administrator." : "Vagy egy létező felhasználó vagy az adminisztrátor bejelentkezési nevét kell megadnia",
+ "MySQL/MariaDB username and/or password not valid" : "A MySQL/MariaDB felhasználónév és/vagy jelszó nem megfelelő",
+ "DB Error: \"%s\"" : "Adatbázis hiba: \"%s\"",
+ "Offending command was: \"%s\"" : "A hibát ez a parancs okozta: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "A MySQL/MariaDB felhasználó '%s'@'localhost' már létezik.",
+ "Drop this user from MySQL/MariaDB" : "Töröljük ez a felhasználót a MySQL/MariaDB-rendszerből",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "A MySQL/MariaDB felhasználó '%s'@'%%' már létezik.",
+ "Drop this user from MySQL/MariaDB." : "Töröljük ez a felhasználót a MySQL/MariaDB-rendszerből.",
+ "Oracle connection could not be established" : "Az Oracle kapcsolat nem hozható létre",
+ "Oracle username and/or password not valid" : "Az Oracle felhasználói név és/vagy jelszó érvénytelen",
+ "Offending command was: \"%s\", name: %s, password: %s" : "A hibát okozó parancs ez volt: \"%s\", login név: %s, jelszó: %s",
+ "PostgreSQL username and/or password not valid" : "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen",
+ "Set an admin username." : "Állítson be egy felhasználói nevet az adminisztrációhoz.",
+ "Set an admin password." : "Állítson be egy jelszót az adminisztrációhoz.",
+ "Can't create or write into the data directory %s" : "Nem sikerült létrehozni vagy irni a \"data\" könyvtárba %s",
+ "%s shared »%s« with you" : "%s megosztotta Önnel ezt: »%s«",
+ "Sharing %s failed, because the file does not exist" : "%s megosztása sikertelen, mert a fájl nem létezik",
+ "You are not allowed to share %s" : "Önnek nincs jogosultsága %s megosztására",
+ "Sharing %s failed, because the user %s is the item owner" : "%s megosztása nem sikerült, mert %s felhasználó az állomány tulajdonosa",
+ "Sharing %s failed, because the user %s does not exist" : "%s megosztása nem sikerült, mert %s felhasználó nem létezik",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s megosztása nem sikerült, mert %s felhasználó nem tagja egyik olyan csoportnak sem, aminek %s tagja",
+ "Sharing %s failed, because this item is already shared with %s" : "%s megosztása nem sikerült, mert ez már meg van osztva %s-vel",
+ "Sharing %s failed, because the group %s does not exist" : "%s megosztása nem sikerült, mert %s csoport nem létezik",
+ "Sharing %s failed, because %s is not a member of the group %s" : "%s megosztása nem sikerült, mert %s felhasználó nem tagja a %s csoportnak",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Meg kell adnia egy jelszót is, mert a nyilvános linkek csak jelszóval védetten használhatók",
+ "Sharing %s failed, because sharing with links is not allowed" : "%s megosztása nem sikerült, mert a linkekkel történő megosztás nincs engedélyezve",
+ "Share type %s is not valid for %s" : "A %s megosztási típus nem érvényes %s-re",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nem sikerült %s-re beállítani az elérési jogosultságokat, mert a megadottak túllépik a %s-re érvényes jogosultságokat",
+ "Setting permissions for %s failed, because the item was not found" : "Nem sikerült %s-re beállítani az elérési jogosultságokat, mert a kérdéses állomány nem található",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nem lehet beállítani a lejárati időt. A megosztások legfeljebb ennyi idővel járhatnak le a létrehozásukat követően: %s",
+ "Cannot set expiration date. Expiration date is in the past" : "Nem lehet beállítani a lejárati időt, mivel a megadott lejárati időpont már elmúlt.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Az %s megosztási alrendszernek támogatnia kell az OCP\\Share_Backend interface-t",
+ "Sharing backend %s not found" : "A %s megosztási alrendszer nem található",
+ "Sharing backend for %s not found" : "%s megosztási alrendszere nem található",
+ "Sharing %s failed, because the user %s is the original sharer" : "%s megosztása nem sikerült, mert %s felhasználó az eredeti megosztó",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s megosztása nem sikerült, mert a jogosultságok túllépik azt, ami %s rendelkezésére áll",
+ "Sharing %s failed, because resharing is not allowed" : "%s megosztása nem sikerült, mert a megosztás továbbadása nincs engedélyezve",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s megosztása nem sikerült, mert %s megosztási alrendszere nem találja",
+ "Sharing %s failed, because the file could not be found in the file cache" : "%s megosztása nem sikerült, mert a fájl nem található a gyorsítótárban",
+ "Could not find category \"%s\"" : "Ez a kategória nem található: \"%s\"",
+ "seconds ago" : "pár másodperce",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n perccel ezelőtt"],
+ "_%n hour ago_::_%n hours ago_" : ["%n órával ezelőtt","%n órával ezelőtt"],
+ "today" : "ma",
+ "yesterday" : "tegnap",
+ "_%n day go_::_%n days ago_" : ["%n nappal ezelőtt","%n nappal ezelőtt"],
+ "last month" : "múlt hónapban",
+ "_%n month ago_::_%n months ago_" : ["%n hónappal ezelőtt","%n hónappal ezelőtt"],
+ "last year" : "tavaly",
+ "years ago" : "több éve",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "A felhasználónévben csak a következő karakterek fordulhatnak elő: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-\"",
+ "A valid username must be provided" : "Érvényes felhasználónevet kell megadnia",
+ "A valid password must be provided" : "Érvényes jelszót kell megadnia",
+ "The username is already being used" : "Ez a bejelentkezési név már foglalt",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nincs telepítve adatbázis-meghajtóprogram (sqlite, mysql vagy postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Az elérési problémák rendszerint megoldhatók azzal, ha a %swebszervernek írásjogot adunk a gyökérkönyvtárra%s.",
+ "Cannot write into \"config\" directory" : "Nem írható a \"config\" könyvtár",
+ "Cannot write into \"apps\" directory" : "Nem írható az \"apps\" könyvtár",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ez rendszerint úgy oldható meg, hogy %sírási jogot adunk a webszervernek az app könyvtárra%s, vagy letiltjuk a config fájlban az appstore használatát.",
+ "Cannot create \"data\" directory (%s)" : "Nem sikerült létrehozni a \"data\" könyvtárt (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Ez rendszerint úgy oldható meg, hogy írásjogot adunk a webszervernek a gyökérkönyvtárra .",
+ "Setting locale to %s failed" : "A lokalizáció %s-re való állítása nem sikerült",
+ "Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!",
+ "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!",
+ "PHP module %s not installed." : "A %s PHP modul nincs telepítve.",
+ "PHP %s or higher is required." : "PHP %s vagy ennél újabb szükséges.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Kérje meg a rendszergazdát, hogy frissítse a PHP-t újabb változatra! Ezt a PHP változatot már nem támogatja az ownCloud és a PHP fejlesztői közösség.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Be van állítva a PHP Safe Mode. Az ownCloud megfelelő működéséhez szükséges, hogy ez ki legyen kapcsolva.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "A PHP Safe Mode egy régi, már nem támogatott és haszontalan üzemmód, amit érdemes letiltani. Kérje meg a rendszergazdát, hogy tiltsa le vagy a php.ini-ben, vagy a webszerver beállításokban!",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Be van álltva a Magic Quotes. Az ownCloud megfelelő működéséhez szükséges, hogy ez le legyen tiltva.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "A Magic Quotes egy régi, már nem támogatott és haszontalan üzemmód, amit érdemes letiltani. Kérje meg a rendszergazdát, hogy tiltsa le vagy a php.ini-ben, vagy a webszerver beállításokban!",
+ "PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?",
+ "Please ask your server administrator to restart the web server." : "Kérje meg a rendszergazdát, hogy indítsa újra a webszervert!",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 szükséges",
+ "Please upgrade your database version" : "Kérem frissítse az adatbázis-szoftvert!",
+ "Error occurred while checking PostgreSQL version" : "Hiba történt a PostgreSQL verziójának ellenőrzése közben",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Kérjük gondoskodjon róla, hogy a PostgreSQL legalább 9-es verziójú legyen, vagy ellenőrizze a naplófájlokat, hogy mi okozta a hibát!",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Kérjük módosítsa a könyvtár elérhetőségi engedélybeállítását 0770-re, hogy a tartalmát más felhasználó ne listázhassa!",
+ "Data directory (%s) is readable by other users" : "Az adatkönyvtár (%s) más felhasználók számára is olvasható ",
+ "Data directory (%s) is invalid" : "Érvénytelen a megadott adatkönyvtár (%s) ",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Kérjük ellenőrizze, hogy az adatkönyvtár tartalmaz a gyökerében egy \".ocdata\" nevű állományt!",
+ "Could not obtain lock type %d on \"%s\"." : "Nem sikerült %d típusú zárolást elérni itt: \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/hu_HU.php b/lib/l10n/hu_HU.php
deleted file mode 100644
index 146f3a2bc5d..00000000000
--- a/lib/l10n/hu_HU.php
+++ /dev/null
@@ -1,121 +0,0 @@
- "Nem írható a \"config\" könyvtár!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Ez rendszerint úgy oldható meg, hogy írási jogot adunk a webszervernek a config könyvtárra.",
-"See %s" => "Lásd %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Ez rendszerint úgy oldható meg, hogy %sírási jogot adunk a webszervernek a config könyvtárra%s.",
-"Sample configuration detected" => "A példabeállítások vannak beállítva",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Úgy tűnik a példakonfigurációt próbálja ténylegesen használni. Ez nem támogatott, és működésképtelenné teheti a telepítést. Kérjük olvassa el a dokumentációt és azt követően változtasson a config.php-n!",
-"Help" => "Súgó",
-"Personal" => "Személyes",
-"Settings" => "Beállítások",
-"Users" => "Felhasználók",
-"Admin" => "Adminsztráció",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => " \\\"%s\\\" alkalmazás nem telepíthető, mert nem kompatibilis az ownCloud jelen változatával.",
-"No app name specified" => "Nincs az alkalmazás név megadva.",
-"Unknown filetype" => "Ismeretlen file tipús",
-"Invalid image" => "Hibás kép",
-"web services under your control" => "webszolgáltatások saját kézben",
-"App directory already exists" => "Az alkalmazás mappája már létezik",
-"Can't create app folder. Please fix permissions. %s" => "Nem lehetett létrehozni az alkalmazás mappáját. Kérem ellenőrizze a jogosultságokat. %s",
-"No source specified when installing app" => "Az alkalmazás telepítéséhez nincs forrás megadva",
-"No href specified when installing app from http" => "Az alkalmazás http-n keresztül történő telepítéséhez nincs href hivetkozás megadva",
-"No path specified when installing app from local file" => "Az alkalmazás helyi telepítéséhez nincs útvonal (mappa) megadva",
-"Archives of type %s are not supported" => "A(z) %s típusú tömörített állomány nem támogatott",
-"Failed to open archive when installing app" => "Nem sikerült megnyitni a tömörített állományt a telepítés során",
-"App does not provide an info.xml file" => "Az alkalmazás nem szolgáltatott info.xml file-t",
-"App can't be installed because of not allowed code in the App" => "Az alkalmazást nem lehet telepíteni, mert abban nem engedélyezett programkód szerepel",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Az alkalmazás nem telepíthető, mert nem kompatibilis az ownCloud jelen verziójával.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Az alkalmazást nem lehet telepíteni, mert tartalmazza a \n\ntrue\n \ncímkét, ami a nem szállított alkalmazások esetén nem engedélyezett",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Az alkalmazást nem lehet telepíteni, mert az info.xml/version-ben megadott verzió nem egyezik az alkalmazás-kiszolgálón feltüntetett verzióval.",
-"Application is not enabled" => "Az alkalmazás nincs engedélyezve",
-"Authentication error" => "Azonosítási hiba",
-"Token expired. Please reload page." => "A token lejárt. Frissítse az oldalt.",
-"Unknown user" => "Ismeretlen felhasználó",
-"%s enter the database username." => "%s adja meg az adatbázist elérő felhasználó login nevét.",
-"%s enter the database name." => "%s adja meg az adatbázis nevét.",
-"%s you may not use dots in the database name" => "%s az adatbázis neve nem tartalmazhat pontot",
-"MS SQL username and/or password not valid: %s" => "Az MS SQL felhasználónév és/vagy jelszó érvénytelen: %s",
-"You need to enter either an existing account or the administrator." => "Vagy egy létező felhasználó vagy az adminisztrátor bejelentkezési nevét kell megadnia",
-"MySQL/MariaDB username and/or password not valid" => "A MySQL/MariaDB felhasználónév és/vagy jelszó nem megfelelő",
-"DB Error: \"%s\"" => "Adatbázis hiba: \"%s\"",
-"Offending command was: \"%s\"" => "A hibát ez a parancs okozta: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "A MySQL/MariaDB felhasználó '%s'@'localhost' már létezik.",
-"Drop this user from MySQL/MariaDB" => "Töröljük ez a felhasználót a MySQL/MariaDB-rendszerből",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "A MySQL/MariaDB felhasználó '%s'@'%%' már létezik.",
-"Drop this user from MySQL/MariaDB." => "Töröljük ez a felhasználót a MySQL/MariaDB-rendszerből.",
-"Oracle connection could not be established" => "Az Oracle kapcsolat nem hozható létre",
-"Oracle username and/or password not valid" => "Az Oracle felhasználói név és/vagy jelszó érvénytelen",
-"Offending command was: \"%s\", name: %s, password: %s" => "A hibát okozó parancs ez volt: \"%s\", login név: %s, jelszó: %s",
-"PostgreSQL username and/or password not valid" => "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen",
-"Set an admin username." => "Állítson be egy felhasználói nevet az adminisztrációhoz.",
-"Set an admin password." => "Állítson be egy jelszót az adminisztrációhoz.",
-"%s shared »%s« with you" => "%s megosztotta Önnel ezt: »%s«",
-"Sharing %s failed, because the file does not exist" => "%s megosztása sikertelen, mert a fájl nem létezik",
-"You are not allowed to share %s" => "Önnek nincs jogosultsága %s megosztására",
-"Sharing %s failed, because the user %s is the item owner" => "%s megosztása nem sikerült, mert %s felhasználó az állomány tulajdonosa",
-"Sharing %s failed, because the user %s does not exist" => "%s megosztása nem sikerült, mert %s felhasználó nem létezik",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "%s megosztása nem sikerült, mert %s felhasználó nem tagja egyik olyan csoportnak sem, aminek %s tagja",
-"Sharing %s failed, because this item is already shared with %s" => "%s megosztása nem sikerült, mert ez már meg van osztva %s-vel",
-"Sharing %s failed, because the group %s does not exist" => "%s megosztása nem sikerült, mert %s csoport nem létezik",
-"Sharing %s failed, because %s is not a member of the group %s" => "%s megosztása nem sikerült, mert %s felhasználó nem tagja a %s csoportnak",
-"You need to provide a password to create a public link, only protected links are allowed" => "Meg kell adnia egy jelszót is, mert a nyilvános linkek csak jelszóval védetten használhatók",
-"Sharing %s failed, because sharing with links is not allowed" => "%s megosztása nem sikerült, mert a linkekkel történő megosztás nincs engedélyezve",
-"Share type %s is not valid for %s" => "A %s megosztási típus nem érvényes %s-re",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Nem sikerült %s-re beállítani az elérési jogosultságokat, mert a megadottak túllépik a %s-re érvényes jogosultságokat",
-"Setting permissions for %s failed, because the item was not found" => "Nem sikerült %s-re beállítani az elérési jogosultságokat, mert a kérdéses állomány nem található",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Nem lehet beállítani a lejárati időt. A megosztások legfeljebb ennyi idővel járhatnak le a létrehozásukat követően: %s",
-"Cannot set expiration date. Expiration date is in the past" => "Nem lehet beállítani a lejárati időt, mivel a megadott lejárati időpont már elmúlt.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Az %s megosztási alrendszernek támogatnia kell az OCP\\Share_Backend interface-t",
-"Sharing backend %s not found" => "A %s megosztási alrendszer nem található",
-"Sharing backend for %s not found" => "%s megosztási alrendszere nem található",
-"Sharing %s failed, because the user %s is the original sharer" => "%s megosztása nem sikerült, mert %s felhasználó az eredeti megosztó",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "%s megosztása nem sikerült, mert a jogosultságok túllépik azt, ami %s rendelkezésére áll",
-"Sharing %s failed, because resharing is not allowed" => "%s megosztása nem sikerült, mert a megosztás továbbadása nincs engedélyezve",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "%s megosztása nem sikerült, mert %s megosztási alrendszere nem találja",
-"Sharing %s failed, because the file could not be found in the file cache" => "%s megosztása nem sikerült, mert a fájl nem található a gyorsítótárban",
-"Could not find category \"%s\"" => "Ez a kategória nem található: \"%s\"",
-"seconds ago" => "pár másodperce",
-"_%n minute ago_::_%n minutes ago_" => array("","%n perccel ezelőtt"),
-"_%n hour ago_::_%n hours ago_" => array("%n órával ezelőtt","%n órával ezelőtt"),
-"today" => "ma",
-"yesterday" => "tegnap",
-"_%n day go_::_%n days ago_" => array("%n nappal ezelőtt","%n nappal ezelőtt"),
-"last month" => "múlt hónapban",
-"_%n month ago_::_%n months ago_" => array("%n hónappal ezelőtt","%n hónappal ezelőtt"),
-"last year" => "tavaly",
-"years ago" => "több éve",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "A felhasználónévben csak a következő karakterek fordulhatnak elő: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-\"",
-"A valid username must be provided" => "Érvényes felhasználónevet kell megadnia",
-"A valid password must be provided" => "Érvényes jelszót kell megadnia",
-"The username is already being used" => "Ez a bejelentkezési név már foglalt",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Nincs telepítve adatbázis-meghajtóprogram (sqlite, mysql vagy postgresql).",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Az elérési problémák rendszerint megoldhatók azzal, ha a %swebszervernek írásjogot adunk a gyökérkönyvtárra%s.",
-"Cannot write into \"config\" directory" => "Nem írható a \"config\" könyvtár",
-"Cannot write into \"apps\" directory" => "Nem írható az \"apps\" könyvtár",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Ez rendszerint úgy oldható meg, hogy %sírási jogot adunk a webszervernek az app könyvtárra%s, vagy letiltjuk a config fájlban az appstore használatát.",
-"Cannot create \"data\" directory (%s)" => "Nem sikerült létrehozni a \"data\" könyvtárt (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Ez rendszerint úgy oldható meg, hogy írásjogot adunk a webszervernek a gyökérkönyvtárra .",
-"Setting locale to %s failed" => "A lokalizáció %s-re való állítása nem sikerült",
-"Please install one of these locales on your system and restart your webserver." => "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!",
-"Please ask your server administrator to install the module." => "Kérje meg a rendszergazdát, hogy telepítse a modult!",
-"PHP module %s not installed." => "A %s PHP modul nincs telepítve.",
-"PHP %s or higher is required." => "PHP %s vagy ennél újabb szükséges.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Kérje meg a rendszergazdát, hogy frissítse a PHP-t újabb változatra! Ezt a PHP változatot már nem támogatja az ownCloud és a PHP fejlesztői közösség.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "Be van állítva a PHP Safe Mode. Az ownCloud megfelelő működéséhez szükséges, hogy ez ki legyen kapcsolva.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "A PHP Safe Mode egy régi, már nem támogatott és haszontalan üzemmód, amit érdemes letiltani. Kérje meg a rendszergazdát, hogy tiltsa le vagy a php.ini-ben, vagy a webszerver beállításokban!",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Be van álltva a Magic Quotes. Az ownCloud megfelelő működéséhez szükséges, hogy ez le legyen tiltva.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "A Magic Quotes egy régi, már nem támogatott és haszontalan üzemmód, amit érdemes letiltani. Kérje meg a rendszergazdát, hogy tiltsa le vagy a php.ini-ben, vagy a webszerver beállításokban!",
-"PHP modules have been installed, but they are still listed as missing?" => "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?",
-"Please ask your server administrator to restart the web server." => "Kérje meg a rendszergazdát, hogy indítsa újra a webszervert!",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 szükséges",
-"Please upgrade your database version" => "Kérem frissítse az adatbázis-szoftvert!",
-"Error occurred while checking PostgreSQL version" => "Hiba történt a PostgreSQL verziójának ellenőrzése közben",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Kérjük gondoskodjon róla, hogy a PostgreSQL legalább 9-es verziójú legyen, vagy ellenőrizze a naplófájlokat, hogy mi okozta a hibát!",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Kérjük módosítsa a könyvtár elérhetőségi engedélybeállítását 0770-re, hogy a tartalmát más felhasználó ne listázhassa!",
-"Data directory (%s) is readable by other users" => "Az adatkönyvtár (%s) más felhasználók számára is olvasható ",
-"Data directory (%s) is invalid" => "Érvénytelen a megadott adatkönyvtár (%s) ",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Kérjük ellenőrizze, hogy az adatkönyvtár tartalmaz a gyökerében egy \".ocdata\" nevű állományt!",
-"Could not obtain lock type %d on \"%s\"." => "Nem sikerült %d típusú zárolást elérni itt: \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/hy.js b/lib/l10n/hy.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/hy.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/hy.json b/lib/l10n/hy.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/hy.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/hy.php b/lib/l10n/hy.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/hy.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ia.js b/lib/l10n/ia.js
new file mode 100644
index 00000000000..938d9c4a680
--- /dev/null
+++ b/lib/l10n/ia.js
@@ -0,0 +1,23 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Adjuta",
+ "Personal" : "Personal",
+ "Settings" : "Configurationes",
+ "Users" : "Usatores",
+ "Admin" : "Administration",
+ "Unknown filetype" : "Typo de file incognite",
+ "Invalid image" : "Imagine invalide",
+ "web services under your control" : "servicios web sub tu controlo",
+ "seconds ago" : "secundas passate",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutas passate"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n horas passate"],
+ "today" : "hodie",
+ "yesterday" : "heri",
+ "_%n day go_::_%n days ago_" : ["","%n dies ante"],
+ "last month" : "ultime mense",
+ "_%n month ago_::_%n months ago_" : ["","%n menses ante"],
+ "last year" : "ultime anno",
+ "years ago" : "annos passate"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ia.json b/lib/l10n/ia.json
new file mode 100644
index 00000000000..21c437af71a
--- /dev/null
+++ b/lib/l10n/ia.json
@@ -0,0 +1,21 @@
+{ "translations": {
+ "Help" : "Adjuta",
+ "Personal" : "Personal",
+ "Settings" : "Configurationes",
+ "Users" : "Usatores",
+ "Admin" : "Administration",
+ "Unknown filetype" : "Typo de file incognite",
+ "Invalid image" : "Imagine invalide",
+ "web services under your control" : "servicios web sub tu controlo",
+ "seconds ago" : "secundas passate",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutas passate"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n horas passate"],
+ "today" : "hodie",
+ "yesterday" : "heri",
+ "_%n day go_::_%n days ago_" : ["","%n dies ante"],
+ "last month" : "ultime mense",
+ "_%n month ago_::_%n months ago_" : ["","%n menses ante"],
+ "last year" : "ultime anno",
+ "years ago" : "annos passate"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ia.php b/lib/l10n/ia.php
deleted file mode 100644
index 03fbad47682..00000000000
--- a/lib/l10n/ia.php
+++ /dev/null
@@ -1,22 +0,0 @@
- "Adjuta",
-"Personal" => "Personal",
-"Settings" => "Configurationes",
-"Users" => "Usatores",
-"Admin" => "Administration",
-"Unknown filetype" => "Typo de file incognite",
-"Invalid image" => "Imagine invalide",
-"web services under your control" => "servicios web sub tu controlo",
-"seconds ago" => "secundas passate",
-"_%n minute ago_::_%n minutes ago_" => array("","%n minutas passate"),
-"_%n hour ago_::_%n hours ago_" => array("","%n horas passate"),
-"today" => "hodie",
-"yesterday" => "heri",
-"_%n day go_::_%n days ago_" => array("","%n dies ante"),
-"last month" => "ultime mense",
-"_%n month ago_::_%n months ago_" => array("","%n menses ante"),
-"last year" => "ultime anno",
-"years ago" => "annos passate"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/id.js b/lib/l10n/id.js
new file mode 100644
index 00000000000..368cb6b7921
--- /dev/null
+++ b/lib/l10n/id.js
@@ -0,0 +1,117 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Tidak dapat menulis kedalam direktori \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Hal ini biasanya dapat diperbaiki dengan memberikan akses tulis bagi situs web ke direktori config",
+ "See %s" : "Lihat %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Hal ini biasanya dapat diperbaiki dengan %s memberikan akses tulis bagi situs web ke %s direktori config.",
+ "Sample configuration detected" : "Konfigurasi sampel ditemukan",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Ditemukan bahwa konfigurasi sampel telah disalin. Hal ini dapat merusak instalasi Anda dan tidak didukung. Silahkan baca dokumentasi sebelum melakukan perubahan pada config.php",
+ "Help" : "Bantuan",
+ "Personal" : "Pribadi",
+ "Settings" : "Pengaturan",
+ "Users" : "Pengguna",
+ "Admin" : "Admin",
+ "Recommended" : "Direkomendasikan",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplikasi \\\"%s\\\" tidak dapat diinstal karena tidak kompatibel denga versi ownCloud ini.",
+ "No app name specified" : "Tidak ada nama apl yang ditentukan",
+ "Unknown filetype" : "Tipe berkas tak dikenal",
+ "Invalid image" : "Gambar tidak sah",
+ "web services under your control" : "layanan web dalam kendali anda",
+ "App directory already exists" : "Direktori Apl sudah ada",
+ "Can't create app folder. Please fix permissions. %s" : "Tidak dapat membuat folder apl. Silakan perbaiki perizinan. %s",
+ "No source specified when installing app" : "Tidak ada sumber yang ditentukan saat menginstal apl",
+ "No href specified when installing app from http" : "Href tidak ditentukan saat menginstal apl dari http",
+ "No path specified when installing app from local file" : "Lokasi tidak ditentukan saat menginstal apl dari berkas lokal",
+ "Archives of type %s are not supported" : "Arsip dengan tipe %s tidak didukung",
+ "Failed to open archive when installing app" : "Gagal membuka arsip saat menginstal apl",
+ "App does not provide an info.xml file" : "Apl tidak menyediakan berkas info.xml",
+ "App can't be installed because of not allowed code in the App" : "Apl tidak dapat diinstal karena terdapat kode yang tidak diizinkan didalam Apl",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Apl tidak dapat diinstal karena tidak kompatibel dengan versi ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Apl tidak dapat diinstal karena mengandung tag true yang tidak diizinkan untuk apl yang bukan bawaan.",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Apl tidak dapat diinstal karena versi di info.xml/versi tidak sama dengan versi yang dilansir dari toko apl",
+ "Application is not enabled" : "Aplikasi tidak diaktifkan",
+ "Authentication error" : "Galat saat otentikasi",
+ "Token expired. Please reload page." : "Token sudah kedaluwarsa. Silakan muat ulang halaman.",
+ "Unknown user" : "Pengguna tidak dikenal",
+ "%s enter the database username." : "%s masukkan nama pengguna basis data.",
+ "%s enter the database name." : "%s masukkan nama basis data.",
+ "%s you may not use dots in the database name" : "%s anda tidak boleh menggunakan karakter titik pada nama basis data",
+ "MS SQL username and/or password not valid: %s" : "Nama pengguna dan/atau sandi MySQL tidak sah: %s",
+ "You need to enter either an existing account or the administrator." : "Anda harus memasukkan akun yang sudah ada atau administrator.",
+ "MySQL/MariaDB username and/or password not valid" : "Nama pengguna dan/atau sandi MySQL/MariaDB tidak sah",
+ "DB Error: \"%s\"" : "Kesalahan Basis Data: \"%s\"",
+ "Offending command was: \"%s\"" : "Perintah yang bermasalah: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "'%s'@'localhost' pengguna MySQL/MariaDB sudah ada.",
+ "Drop this user from MySQL/MariaDB" : "Drop pengguna ini dari MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "'%s'@'%%' pengguna MySQL/MariaDB sudah ada.",
+ "Drop this user from MySQL/MariaDB." : "Drop pengguna ini dari MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Koneksi Oracle tidak dapat dibuat",
+ "Oracle username and/or password not valid" : "Nama pengguna dan/atau sandi Oracle tidak sah",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Perintah yang bermasalah: \"%s\", nama pengguna: %s, sandi: %s",
+ "PostgreSQL username and/or password not valid" : "Nama pengguna dan/atau sandi PostgreSQL tidak valid",
+ "Set an admin username." : "Tetapkan nama pengguna admin.",
+ "Set an admin password." : "Tetapkan sandi admin.",
+ "Can't create or write into the data directory %s" : "Tidak dapat membuat atau menulis kedalam direktori data %s",
+ "%s shared »%s« with you" : "%s membagikan »%s« dengan anda",
+ "Sharing %s failed, because the file does not exist" : "Gagal membagikan %s, karena berkas tidak ada",
+ "You are not allowed to share %s" : "Anda tidak diizinkan untuk membagikan %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Gagal membagikan %s, karena pengguna %s adalah pemilik item",
+ "Sharing %s failed, because the user %s does not exist" : "Gagal membagikan %s, karena pengguna %s tidak ada",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Gagal membagikan %s, karena pengguna %s bukan merupakan anggota dari grup yang %s ikuti",
+ "Sharing %s failed, because this item is already shared with %s" : "Gagal membagkan %s, karena item ini sudah dibagikan dengan %s",
+ "Sharing %s failed, because the group %s does not exist" : "Gagal membagikan %s, karena grup %s tidak ada",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Gagal membagikan %s, karena %s bukan anggota dari grup %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Anda perlu memberikan sandi untuk membuat tautan publik, hanya tautan yang terlindungi yang diizinkan",
+ "Sharing %s failed, because sharing with links is not allowed" : "Gagal membagikan %s, karena berbag dengan tautan tidak diizinkan",
+ "Share type %s is not valid for %s" : "Barbagi tipe %s tidak sah untuk %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Pengaturan perizinan untuk %s gagal, karena karena izin melebihi izin yang diberikan untuk %s",
+ "Setting permissions for %s failed, because the item was not found" : "Pengaturan perizinan untuk %s gagal, karena item tidak ditemukan",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Tidak dapat menyetel tanggal kadaluarsa. Pembagian tidak dapat kadaluarsa lebih lambat dari %s setelah mereka dibagikan.",
+ "Cannot set expiration date. Expiration date is in the past" : "Tidak dapat menyetel tanggal kadaluarsa. Tanggal kadaluarsa dimasa lalu",
+ "Sharing %s failed, because the user %s is the original sharer" : "Gagal berbagi %s. karena pengguna %s adalah yang membagikan pertama",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Gagal membagikan %s, karena izin melebihi izin yang diberikan untuk %s",
+ "Sharing %s failed, because resharing is not allowed" : "Gagal berbagi %s, karena membagikan ulang tidak diizinkan",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Gagal berbagi %s, karena berkas tidak ditemukan di berkas cache",
+ "Could not find category \"%s\"" : "Tidak menemukan kategori \"%s\"",
+ "seconds ago" : "beberapa detik yang lalu",
+ "_%n minute ago_::_%n minutes ago_" : ["%n menit yang lalu"],
+ "_%n hour ago_::_%n hours ago_" : ["%n jam yang lalu"],
+ "today" : "hari ini",
+ "yesterday" : "kemarin",
+ "_%n day go_::_%n days ago_" : ["%n hari yang lalu"],
+ "last month" : "bulan kemarin",
+ "_%n month ago_::_%n months ago_" : ["%n bulan yang lalu"],
+ "last year" : "tahun kemarin",
+ "years ago" : "beberapa tahun lalu",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Hanya karakter berikut yang diizinkan dalam nama pengguna: \"a-z\", \"A-Z\", \"0-9\", dan \"_.@-\"",
+ "A valid username must be provided" : "Tuliskan nama pengguna yang valid",
+ "A valid password must be provided" : "Tuliskan sandi yang valid",
+ "The username is already being used" : "Nama pengguna ini telah digunakan",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Tidak ada driver (sqlite, mysql, or postgresql) yang terinstal.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Perizinan biasanya dapat diperbaiki dengan %s memberikan akses tulis bagi situs web ke %s direktori root.",
+ "Cannot write into \"config\" directory" : "Tidak dapat menulis kedalam direktori \"config\"",
+ "Cannot write into \"apps\" directory" : "Tidak dapat menulis kedalam direktori \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Hal ini biasanya dapat diperbaiki dengan %s memberikan akses tulis bagi situs web ke %s direktori apps atau menonaktifkan toko aplikasi didalam berkas config.",
+ "Cannot create \"data\" directory (%s)" : "Tidak dapat membuat direktori (%s) \"data\"",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Hal ini biasanya dapat diperbaiki dengan memberikan akses tulis bagi situs web ke direktori root .",
+ "Setting locale to %s failed" : "Pengaturan lokal ke %s gagal",
+ "Please install one of these locales on your system and restart your webserver." : "Mohon instal paling tidak satu lokal pada sistem Anda dan jalankan ulang server web.",
+ "Please ask your server administrator to install the module." : "Mohon tanyakan administrator Anda untuk menginstal module.",
+ "PHP module %s not installed." : "Module PHP %s tidak terinstal.",
+ "PHP %s or higher is required." : "Diperlukan PHP %s atau yang lebih tinggi.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Mohon tanyakan administrator Anda untuk memperbarui PHP ke versi terkini. Versi PHP Anda tidak lagi didukung oleh ownCloud dan komunitas PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode diaktifkan. ownCloud memerlukan ini untuk dinonaktifkan untuk dapat bekerja dengan banar.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Modul PHP telah terinstal, tetapi mereka terlihat tidak ada?",
+ "Please ask your server administrator to restart the web server." : "Mohon minta administrator Anda untuk menjalankan ulang server web.",
+ "PostgreSQL >= 9 required" : "Diperlukan PostgreSQL >= 9",
+ "Please upgrade your database version" : "Mohon perbarui versi basis data Anda",
+ "Error occurred while checking PostgreSQL version" : "Terjadi kesalahan saat memeriksa versi PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Pastikan bahwa Anda memiliki PostgreSQL >= 9 atau periksa log untuk informasi lebih lanjut tentang kesalahan",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Mohon ubah perizinan menjadi 0770 sehingga direktori tersebut tidak dapat dilihat oleh pengguna lain.",
+ "Data directory (%s) is readable by other users" : "Direktori data (%s) dapat dibaca oleh pengguna lain",
+ "Data directory (%s) is invalid" : "Direktori data (%s) tidak sah",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Mohon periksa apakah direktori data berisi sebuah berkas \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Tidak bisa memperoleh jenis kunci %d pada \"%s\"."
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/id.json b/lib/l10n/id.json
new file mode 100644
index 00000000000..e2b1712e1c5
--- /dev/null
+++ b/lib/l10n/id.json
@@ -0,0 +1,115 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Tidak dapat menulis kedalam direktori \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Hal ini biasanya dapat diperbaiki dengan memberikan akses tulis bagi situs web ke direktori config",
+ "See %s" : "Lihat %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Hal ini biasanya dapat diperbaiki dengan %s memberikan akses tulis bagi situs web ke %s direktori config.",
+ "Sample configuration detected" : "Konfigurasi sampel ditemukan",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Ditemukan bahwa konfigurasi sampel telah disalin. Hal ini dapat merusak instalasi Anda dan tidak didukung. Silahkan baca dokumentasi sebelum melakukan perubahan pada config.php",
+ "Help" : "Bantuan",
+ "Personal" : "Pribadi",
+ "Settings" : "Pengaturan",
+ "Users" : "Pengguna",
+ "Admin" : "Admin",
+ "Recommended" : "Direkomendasikan",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplikasi \\\"%s\\\" tidak dapat diinstal karena tidak kompatibel denga versi ownCloud ini.",
+ "No app name specified" : "Tidak ada nama apl yang ditentukan",
+ "Unknown filetype" : "Tipe berkas tak dikenal",
+ "Invalid image" : "Gambar tidak sah",
+ "web services under your control" : "layanan web dalam kendali anda",
+ "App directory already exists" : "Direktori Apl sudah ada",
+ "Can't create app folder. Please fix permissions. %s" : "Tidak dapat membuat folder apl. Silakan perbaiki perizinan. %s",
+ "No source specified when installing app" : "Tidak ada sumber yang ditentukan saat menginstal apl",
+ "No href specified when installing app from http" : "Href tidak ditentukan saat menginstal apl dari http",
+ "No path specified when installing app from local file" : "Lokasi tidak ditentukan saat menginstal apl dari berkas lokal",
+ "Archives of type %s are not supported" : "Arsip dengan tipe %s tidak didukung",
+ "Failed to open archive when installing app" : "Gagal membuka arsip saat menginstal apl",
+ "App does not provide an info.xml file" : "Apl tidak menyediakan berkas info.xml",
+ "App can't be installed because of not allowed code in the App" : "Apl tidak dapat diinstal karena terdapat kode yang tidak diizinkan didalam Apl",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Apl tidak dapat diinstal karena tidak kompatibel dengan versi ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Apl tidak dapat diinstal karena mengandung tag true yang tidak diizinkan untuk apl yang bukan bawaan.",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Apl tidak dapat diinstal karena versi di info.xml/versi tidak sama dengan versi yang dilansir dari toko apl",
+ "Application is not enabled" : "Aplikasi tidak diaktifkan",
+ "Authentication error" : "Galat saat otentikasi",
+ "Token expired. Please reload page." : "Token sudah kedaluwarsa. Silakan muat ulang halaman.",
+ "Unknown user" : "Pengguna tidak dikenal",
+ "%s enter the database username." : "%s masukkan nama pengguna basis data.",
+ "%s enter the database name." : "%s masukkan nama basis data.",
+ "%s you may not use dots in the database name" : "%s anda tidak boleh menggunakan karakter titik pada nama basis data",
+ "MS SQL username and/or password not valid: %s" : "Nama pengguna dan/atau sandi MySQL tidak sah: %s",
+ "You need to enter either an existing account or the administrator." : "Anda harus memasukkan akun yang sudah ada atau administrator.",
+ "MySQL/MariaDB username and/or password not valid" : "Nama pengguna dan/atau sandi MySQL/MariaDB tidak sah",
+ "DB Error: \"%s\"" : "Kesalahan Basis Data: \"%s\"",
+ "Offending command was: \"%s\"" : "Perintah yang bermasalah: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "'%s'@'localhost' pengguna MySQL/MariaDB sudah ada.",
+ "Drop this user from MySQL/MariaDB" : "Drop pengguna ini dari MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "'%s'@'%%' pengguna MySQL/MariaDB sudah ada.",
+ "Drop this user from MySQL/MariaDB." : "Drop pengguna ini dari MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Koneksi Oracle tidak dapat dibuat",
+ "Oracle username and/or password not valid" : "Nama pengguna dan/atau sandi Oracle tidak sah",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Perintah yang bermasalah: \"%s\", nama pengguna: %s, sandi: %s",
+ "PostgreSQL username and/or password not valid" : "Nama pengguna dan/atau sandi PostgreSQL tidak valid",
+ "Set an admin username." : "Tetapkan nama pengguna admin.",
+ "Set an admin password." : "Tetapkan sandi admin.",
+ "Can't create or write into the data directory %s" : "Tidak dapat membuat atau menulis kedalam direktori data %s",
+ "%s shared »%s« with you" : "%s membagikan »%s« dengan anda",
+ "Sharing %s failed, because the file does not exist" : "Gagal membagikan %s, karena berkas tidak ada",
+ "You are not allowed to share %s" : "Anda tidak diizinkan untuk membagikan %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Gagal membagikan %s, karena pengguna %s adalah pemilik item",
+ "Sharing %s failed, because the user %s does not exist" : "Gagal membagikan %s, karena pengguna %s tidak ada",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Gagal membagikan %s, karena pengguna %s bukan merupakan anggota dari grup yang %s ikuti",
+ "Sharing %s failed, because this item is already shared with %s" : "Gagal membagkan %s, karena item ini sudah dibagikan dengan %s",
+ "Sharing %s failed, because the group %s does not exist" : "Gagal membagikan %s, karena grup %s tidak ada",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Gagal membagikan %s, karena %s bukan anggota dari grup %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Anda perlu memberikan sandi untuk membuat tautan publik, hanya tautan yang terlindungi yang diizinkan",
+ "Sharing %s failed, because sharing with links is not allowed" : "Gagal membagikan %s, karena berbag dengan tautan tidak diizinkan",
+ "Share type %s is not valid for %s" : "Barbagi tipe %s tidak sah untuk %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Pengaturan perizinan untuk %s gagal, karena karena izin melebihi izin yang diberikan untuk %s",
+ "Setting permissions for %s failed, because the item was not found" : "Pengaturan perizinan untuk %s gagal, karena item tidak ditemukan",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Tidak dapat menyetel tanggal kadaluarsa. Pembagian tidak dapat kadaluarsa lebih lambat dari %s setelah mereka dibagikan.",
+ "Cannot set expiration date. Expiration date is in the past" : "Tidak dapat menyetel tanggal kadaluarsa. Tanggal kadaluarsa dimasa lalu",
+ "Sharing %s failed, because the user %s is the original sharer" : "Gagal berbagi %s. karena pengguna %s adalah yang membagikan pertama",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Gagal membagikan %s, karena izin melebihi izin yang diberikan untuk %s",
+ "Sharing %s failed, because resharing is not allowed" : "Gagal berbagi %s, karena membagikan ulang tidak diizinkan",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Gagal berbagi %s, karena berkas tidak ditemukan di berkas cache",
+ "Could not find category \"%s\"" : "Tidak menemukan kategori \"%s\"",
+ "seconds ago" : "beberapa detik yang lalu",
+ "_%n minute ago_::_%n minutes ago_" : ["%n menit yang lalu"],
+ "_%n hour ago_::_%n hours ago_" : ["%n jam yang lalu"],
+ "today" : "hari ini",
+ "yesterday" : "kemarin",
+ "_%n day go_::_%n days ago_" : ["%n hari yang lalu"],
+ "last month" : "bulan kemarin",
+ "_%n month ago_::_%n months ago_" : ["%n bulan yang lalu"],
+ "last year" : "tahun kemarin",
+ "years ago" : "beberapa tahun lalu",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Hanya karakter berikut yang diizinkan dalam nama pengguna: \"a-z\", \"A-Z\", \"0-9\", dan \"_.@-\"",
+ "A valid username must be provided" : "Tuliskan nama pengguna yang valid",
+ "A valid password must be provided" : "Tuliskan sandi yang valid",
+ "The username is already being used" : "Nama pengguna ini telah digunakan",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Tidak ada driver (sqlite, mysql, or postgresql) yang terinstal.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Perizinan biasanya dapat diperbaiki dengan %s memberikan akses tulis bagi situs web ke %s direktori root.",
+ "Cannot write into \"config\" directory" : "Tidak dapat menulis kedalam direktori \"config\"",
+ "Cannot write into \"apps\" directory" : "Tidak dapat menulis kedalam direktori \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Hal ini biasanya dapat diperbaiki dengan %s memberikan akses tulis bagi situs web ke %s direktori apps atau menonaktifkan toko aplikasi didalam berkas config.",
+ "Cannot create \"data\" directory (%s)" : "Tidak dapat membuat direktori (%s) \"data\"",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Hal ini biasanya dapat diperbaiki dengan memberikan akses tulis bagi situs web ke direktori root .",
+ "Setting locale to %s failed" : "Pengaturan lokal ke %s gagal",
+ "Please install one of these locales on your system and restart your webserver." : "Mohon instal paling tidak satu lokal pada sistem Anda dan jalankan ulang server web.",
+ "Please ask your server administrator to install the module." : "Mohon tanyakan administrator Anda untuk menginstal module.",
+ "PHP module %s not installed." : "Module PHP %s tidak terinstal.",
+ "PHP %s or higher is required." : "Diperlukan PHP %s atau yang lebih tinggi.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Mohon tanyakan administrator Anda untuk memperbarui PHP ke versi terkini. Versi PHP Anda tidak lagi didukung oleh ownCloud dan komunitas PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode diaktifkan. ownCloud memerlukan ini untuk dinonaktifkan untuk dapat bekerja dengan banar.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Modul PHP telah terinstal, tetapi mereka terlihat tidak ada?",
+ "Please ask your server administrator to restart the web server." : "Mohon minta administrator Anda untuk menjalankan ulang server web.",
+ "PostgreSQL >= 9 required" : "Diperlukan PostgreSQL >= 9",
+ "Please upgrade your database version" : "Mohon perbarui versi basis data Anda",
+ "Error occurred while checking PostgreSQL version" : "Terjadi kesalahan saat memeriksa versi PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Pastikan bahwa Anda memiliki PostgreSQL >= 9 atau periksa log untuk informasi lebih lanjut tentang kesalahan",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Mohon ubah perizinan menjadi 0770 sehingga direktori tersebut tidak dapat dilihat oleh pengguna lain.",
+ "Data directory (%s) is readable by other users" : "Direktori data (%s) dapat dibaca oleh pengguna lain",
+ "Data directory (%s) is invalid" : "Direktori data (%s) tidak sah",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Mohon periksa apakah direktori data berisi sebuah berkas \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Tidak bisa memperoleh jenis kunci %d pada \"%s\"."
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/id.php b/lib/l10n/id.php
deleted file mode 100644
index 796772d410f..00000000000
--- a/lib/l10n/id.php
+++ /dev/null
@@ -1,55 +0,0 @@
- "Bantuan",
-"Personal" => "Pribadi",
-"Settings" => "Pengaturan",
-"Users" => "Pengguna",
-"Admin" => "Admin",
-"No app name specified" => "Tidak ada nama apl yang ditentukan",
-"Unknown filetype" => "Tipe berkas tak dikenal",
-"Invalid image" => "Gambar tidak sah",
-"web services under your control" => "layanan web dalam kendali anda",
-"App directory already exists" => "Direktori Apl sudah ada",
-"Can't create app folder. Please fix permissions. %s" => "Tidak dapat membuat folder apl. Silakan perbaiki perizinan. %s",
-"No source specified when installing app" => "Tidak ada sumber yang ditentukan saat menginstal apl",
-"No href specified when installing app from http" => "Href tidak ditentukan saat menginstal apl dari http",
-"No path specified when installing app from local file" => "Lokasi tidak ditentukan saat menginstal apl dari berkas lokal",
-"Archives of type %s are not supported" => "Arsip dengan tipe %s tidak didukung",
-"Failed to open archive when installing app" => "Gagal membuka arsip saat menginstal apl",
-"App does not provide an info.xml file" => "Apl tidak menyediakan berkas info.xml",
-"App can't be installed because of not allowed code in the App" => "Apl tidak dapat diinstal karena terdapat kode yang tidak diizinkan didalam Apl",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Apl tidak dapat diinstal karena tidak kompatibel dengan versi ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Apl tidak dapat diinstal karena mengandung tag true yang tidak diizinkan untuk apl yang bukan bawaan.",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Apl tidak dapat diinstal karena versi di info.xml/versi tidak sama dengan versi yang dilansir dari toko apl",
-"Application is not enabled" => "Aplikasi tidak diaktifkan",
-"Authentication error" => "Galat saat otentikasi",
-"Token expired. Please reload page." => "Token sudah kedaluwarsa. Silakan muat ulang halaman.",
-"%s enter the database username." => "%s masukkan nama pengguna basis data.",
-"%s enter the database name." => "%s masukkan nama basis data.",
-"%s you may not use dots in the database name" => "%s anda tidak boleh menggunakan karakter titik pada nama basis data",
-"MS SQL username and/or password not valid: %s" => "Nama pengguna dan/atau sandi MySQL tidak sah: %s",
-"You need to enter either an existing account or the administrator." => "Anda harus memasukkan akun yang sudah ada atau administrator.",
-"DB Error: \"%s\"" => "Galat Basis Data: \"%s\"",
-"Offending command was: \"%s\"" => "Perintah yang bermasalah: \"%s\"",
-"Oracle connection could not be established" => "Koneksi Oracle tidak dapat dibuat",
-"Oracle username and/or password not valid" => "Nama pengguna dan/atau sandi Oracle tidak sah",
-"Offending command was: \"%s\", name: %s, password: %s" => "Perintah yang bermasalah: \"%s\", nama pengguna: %s, sandi: %s",
-"PostgreSQL username and/or password not valid" => "Nama pengguna dan/atau sandi PostgreSQL tidak valid",
-"Set an admin username." => "Atur nama pengguna admin.",
-"Set an admin password." => "Atur sandi admin.",
-"%s shared »%s« with you" => "%s membagikan »%s« dengan anda",
-"Could not find category \"%s\"" => "Tidak menemukan kategori \"%s\"",
-"seconds ago" => "beberapa detik yang lalu",
-"_%n minute ago_::_%n minutes ago_" => array("%n menit yang lalu"),
-"_%n hour ago_::_%n hours ago_" => array("%n jam yang lalu"),
-"today" => "hari ini",
-"yesterday" => "kemarin",
-"_%n day go_::_%n days ago_" => array("%n hari yang lalu"),
-"last month" => "bulan kemarin",
-"_%n month ago_::_%n months ago_" => array("%n bulan yang lalu"),
-"last year" => "tahun kemarin",
-"years ago" => "beberapa tahun lalu",
-"A valid username must be provided" => "Tuliskan nama pengguna yang valid",
-"A valid password must be provided" => "Tuliskan sandi yang valid"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/io.js b/lib/l10n/io.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/io.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/io.json b/lib/l10n/io.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/io.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/io.php b/lib/l10n/io.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/io.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/is.js b/lib/l10n/is.js
new file mode 100644
index 00000000000..8a9b95c6120
--- /dev/null
+++ b/lib/l10n/is.js
@@ -0,0 +1,25 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Hjálp",
+ "Personal" : "Um mig",
+ "Settings" : "Stillingar",
+ "Users" : "Notendur",
+ "Admin" : "Stjórnun",
+ "web services under your control" : "vefþjónusta undir þinni stjórn",
+ "Application is not enabled" : "Forrit ekki virkt",
+ "Authentication error" : "Villa við auðkenningu",
+ "Token expired. Please reload page." : "Auðkenning útrunnin. Vinsamlegast skráðu þig aftur inn.",
+ "Could not find category \"%s\"" : "Fann ekki flokkinn \"%s\"",
+ "seconds ago" : "sek.",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "í dag",
+ "yesterday" : "í gær",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "síðasta mánuði",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "síðasta ári",
+ "years ago" : "einhverjum árum"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/is.json b/lib/l10n/is.json
new file mode 100644
index 00000000000..9d168fc2aca
--- /dev/null
+++ b/lib/l10n/is.json
@@ -0,0 +1,23 @@
+{ "translations": {
+ "Help" : "Hjálp",
+ "Personal" : "Um mig",
+ "Settings" : "Stillingar",
+ "Users" : "Notendur",
+ "Admin" : "Stjórnun",
+ "web services under your control" : "vefþjónusta undir þinni stjórn",
+ "Application is not enabled" : "Forrit ekki virkt",
+ "Authentication error" : "Villa við auðkenningu",
+ "Token expired. Please reload page." : "Auðkenning útrunnin. Vinsamlegast skráðu þig aftur inn.",
+ "Could not find category \"%s\"" : "Fann ekki flokkinn \"%s\"",
+ "seconds ago" : "sek.",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "í dag",
+ "yesterday" : "í gær",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "síðasta mánuði",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "síðasta ári",
+ "years ago" : "einhverjum árum"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/is.php b/lib/l10n/is.php
deleted file mode 100644
index 36459b68259..00000000000
--- a/lib/l10n/is.php
+++ /dev/null
@@ -1,24 +0,0 @@
- "Hjálp",
-"Personal" => "Um mig",
-"Settings" => "Stillingar",
-"Users" => "Notendur",
-"Admin" => "Stjórnun",
-"web services under your control" => "vefþjónusta undir þinni stjórn",
-"Application is not enabled" => "Forrit ekki virkt",
-"Authentication error" => "Villa við auðkenningu",
-"Token expired. Please reload page." => "Auðkenning útrunnin. Vinsamlegast skráðu þig aftur inn.",
-"Could not find category \"%s\"" => "Fann ekki flokkinn \"%s\"",
-"seconds ago" => "sek.",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"today" => "í dag",
-"yesterday" => "í gær",
-"_%n day go_::_%n days ago_" => array("",""),
-"last month" => "síðasta mánuði",
-"_%n month ago_::_%n months ago_" => array("",""),
-"last year" => "síðasta ári",
-"years ago" => "einhverjum árum"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/it.js b/lib/l10n/it.js
new file mode 100644
index 00000000000..eb25f2fc086
--- /dev/null
+++ b/lib/l10n/it.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Impossibile scrivere nella cartella \"config\".",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Ciò può essere normalmente corretto fornendo al server web accesso in scrittura alla cartella \"config\"",
+ "See %s" : "Vedere %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ciò può essere normalmente corretto %sfornendo al server web accesso in scrittura alla cartella \"config\"%s",
+ "Sample configuration detected" : "Configurazione di esempio rilevata",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "È stato rilevato che la configurazione di esempio è stata copiata. Ciò può compromettere la tua installazione e non è supportato. Leggi la documentazione prima di modificare il file config.php",
+ "Help" : "Aiuto",
+ "Personal" : "Personale",
+ "Settings" : "Impostazioni",
+ "Users" : "Utenti",
+ "Admin" : "Admin",
+ "Recommended" : "Consigliata",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "L'applicazione \\\"%s\\\" non può essere installata poiché non è compatibile con questa versione di ownCloud.",
+ "No app name specified" : "Il nome dell'applicazione non è specificato",
+ "Unknown filetype" : "Tipo di file sconosciuto",
+ "Invalid image" : "Immagine non valida",
+ "Database Error" : "Errore del database",
+ "Please contact your system administrator." : "Contatta il tuo amministratore di sistema.",
+ "web services under your control" : "servizi web nelle tue mani",
+ "App directory already exists" : "La cartella dell'applicazione esiste già",
+ "Can't create app folder. Please fix permissions. %s" : "Impossibile creare la cartella dell'applicazione. Correggi i permessi. %s",
+ "No source specified when installing app" : "Nessuna fonte specificata durante l'installazione dell'applicazione",
+ "No href specified when installing app from http" : "Nessun href specificato durante l'installazione dell'applicazione da http",
+ "No path specified when installing app from local file" : "Nessun percorso specificato durante l'installazione dell'applicazione da file locale",
+ "Archives of type %s are not supported" : "Gli archivi di tipo %s non sono supportati",
+ "Failed to open archive when installing app" : "Apertura archivio non riuscita durante l'installazione dell'applicazione",
+ "App does not provide an info.xml file" : "L'applicazione non fornisce un file info.xml",
+ "App can't be installed because of not allowed code in the App" : "L'applicazione non può essere installata a causa di codice non consentito al suo interno",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "L'applicazione non può essere installata poiché non è compatibile con questa versione di ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "L'applicazione non può essere installata poiché contiene il tag true che è consentito per le applicazioni native",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "L'applicazione non può essere installata poiché la versione in info.xml/version non è la stessa riportata dall'app store",
+ "Application is not enabled" : "L'applicazione non è abilitata",
+ "Authentication error" : "Errore di autenticazione",
+ "Token expired. Please reload page." : "Token scaduto. Ricarica la pagina.",
+ "Unknown user" : "Utente sconosciuto",
+ "%s enter the database username." : "%s digita il nome utente del database.",
+ "%s enter the database name." : "%s digita il nome del database.",
+ "%s you may not use dots in the database name" : "%s non dovresti utilizzare punti nel nome del database",
+ "MS SQL username and/or password not valid: %s" : "Nome utente e/o password MS SQL non validi: %s",
+ "You need to enter either an existing account or the administrator." : "È necessario inserire un account esistente o l'amministratore.",
+ "MySQL/MariaDB username and/or password not valid" : "Nome utente e/o password di MySQL/MariaDB non validi",
+ "DB Error: \"%s\"" : "Errore DB: \"%s\"",
+ "Offending command was: \"%s\"" : "Il comando non consentito era: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "L'utente MySQL/MariaDB '%s'@'localhost' esiste già.",
+ "Drop this user from MySQL/MariaDB" : "Elimina questo utente da MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "L'utente MySQL/MariaDB '%s'@'%%' esiste già",
+ "Drop this user from MySQL/MariaDB." : "Elimina questo utente da MySQL/MariaDB.",
+ "Oracle connection could not be established" : "La connessione a Oracle non può essere stabilita",
+ "Oracle username and/or password not valid" : "Nome utente e/o password di Oracle non validi",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Il comando non consentito era: \"%s\", nome: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "Nome utente e/o password di PostgreSQL non validi",
+ "Set an admin username." : "Imposta un nome utente di amministrazione.",
+ "Set an admin password." : "Imposta una password di amministrazione.",
+ "Can't create or write into the data directory %s" : "Impossibile creare o scrivere nella cartella dei dati %s",
+ "%s shared »%s« with you" : "%s ha condiviso «%s» con te",
+ "Sharing %s failed, because the file does not exist" : "Condivisione di %s non riuscita, poiché il file non esiste",
+ "You are not allowed to share %s" : "Non ti è consentito condividere %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Condivisione di %s non riuscita, poiché l'utente %s è il proprietario dell'oggetto",
+ "Sharing %s failed, because the user %s does not exist" : "Condivisione di %s non riuscita, poiché l'utente %s non esiste",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Condivisione di %s non riuscita, poiché l'utente %s non appartiene ad alcun gruppo di cui %s è membro",
+ "Sharing %s failed, because this item is already shared with %s" : "Condivisione di %s non riuscita, poiché l'oggetto è già condiviso con %s",
+ "Sharing %s failed, because the group %s does not exist" : "Condivisione di %s non riuscita, poiché il gruppo %s non esiste",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Condivisione di %s non riuscita, poiché %s non appartiene al gruppo %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Devi fornire una password per creare un collegamento pubblico, sono consentiti solo i collegamenti protetti",
+ "Sharing %s failed, because sharing with links is not allowed" : "Condivisione di %s non riuscita, poiché i collegamenti non sono consentiti",
+ "Share type %s is not valid for %s" : "Il tipo di condivisione %s non è valido per %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Impostazione permessi per %s non riuscita, poiché i permessi superano i permessi accordati a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Impostazione permessi per %s non riuscita, poiché l'elemento non è stato trovato",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Impossibile impostare la data di scadenza. Le condivisioni non possono scadere più tardi di %s dalla loro attivazione",
+ "Cannot set expiration date. Expiration date is in the past" : "Impossibile impostare la data di scadenza. La data di scadenza è nel passato.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Il motore di condivisione %s deve implementare l'interfaccia OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Motore di condivisione %s non trovato",
+ "Sharing backend for %s not found" : "Motore di condivisione di %s non trovato",
+ "Sharing %s failed, because the user %s is the original sharer" : "Condivisione di %s non riuscita, poiché l'utente %s l'ha condiviso precedentemente",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Condivisione di %s non riuscita, poiché i permessi superano quelli accordati a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Condivisione di %s non riuscita, poiché la ri-condivisione non è consentita",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Condivisione di %s non riuscita, poiché il motore di condivisione per %s non riesce a trovare la sua fonte",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Condivisione di %s non riuscita, poiché il file non è stato trovato nella cache",
+ "Could not find category \"%s\"" : "Impossibile trovare la categoria \"%s\"",
+ "seconds ago" : "secondi fa",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuto fa","%n minuti fa"],
+ "_%n hour ago_::_%n hours ago_" : ["%n ora fa","%n ore fa"],
+ "today" : "oggi",
+ "yesterday" : "ieri",
+ "_%n day go_::_%n days ago_" : ["%n giorno fa","%n giorni fa"],
+ "last month" : "mese scorso",
+ "_%n month ago_::_%n months ago_" : ["%n mese fa","%n mesi fa"],
+ "last year" : "anno scorso",
+ "years ago" : "anni fa",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Solo i seguenti caratteri sono ammessi in un nome utente: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
+ "A valid username must be provided" : "Deve essere fornito un nome utente valido",
+ "A valid password must be provided" : "Deve essere fornita una password valida",
+ "The username is already being used" : "Il nome utente è già utilizzato",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nessun driver di database (sqlite, mysql o postgresql) installato",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "I permessi possono essere normalmente corretti %sfornendo al server web accesso in scrittura alla cartella radice%s.",
+ "Cannot write into \"config\" directory" : "Impossibile scrivere nella cartella \"config\"",
+ "Cannot write into \"apps\" directory" : "Impossibile scrivere nella cartella \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ciò può essere normalmente corretto %sfornendo al server web accesso in scrittura alla cartella \"apps\"%s o disabilitando il negozio di applicazioni nel file di configurazione.",
+ "Cannot create \"data\" directory (%s)" : "Impossibile creare la cartella \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Ciò può essere normalmente corretto fornendo al server web accesso in scrittura alla cartella radice .",
+ "Setting locale to %s failed" : "L'impostazione della localizzazione a %s non è riuscita",
+ "Please install one of these locales on your system and restart your webserver." : "Installa una delle seguenti localizzazioni sul tuo sistema e riavvia il server web.",
+ "Please ask your server administrator to install the module." : "Chiedi all'amministratore del tuo server di installare il modulo.",
+ "PHP module %s not installed." : "Il modulo PHP %s non è installato.",
+ "PHP %s or higher is required." : "Richiesto PHP %s o superiore",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Chiedi al tuo amministratore di aggiornare PHP all'ultima versione. La tua versione di PHP non è più supportata da ownCloud e dalla comunità di PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode è abilitato. ownCloud richiede che sia disabilitato per funzionare correttamente.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode è un'impostazione sconsigliata e solitamente inutile che dovrebbe essere disabilitata. Chiedi al tuo amministratore di disabilitarlo nel file php.ini o nella configurazione del server web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes è abilitato. ownCloud richiede che sia disabilitato per funzionare correttamente.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes è un'impostazione sconsigliata e solitamente inutile che dovrebbe essere disabilitata. Chiedi al tuo amministratore di disabilitarlo nel file php.ini o nella configurazione del server web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Sono stati installati moduli PHP, ma sono elencati ancora come mancanti?",
+ "Please ask your server administrator to restart the web server." : "Chiedi all'amministratore di riavviare il server web.",
+ "PostgreSQL >= 9 required" : "Richiesto PostgreSQL >= 9",
+ "Please upgrade your database version" : "Aggiorna la versione del tuo database",
+ "Error occurred while checking PostgreSQL version" : "Si è verificato un errore durante il controllo della versione di PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Assicurati di avere PostgreSQL >= 9 o controlla i log per ulteriori informazioni sull'errore",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Modifica i permessi in 0770 in modo tale che la cartella non sia leggibile dagli altri utenti.",
+ "Data directory (%s) is readable by other users" : "La cartella dei dati (%s) è leggibile dagli altri utenti",
+ "Data directory (%s) is invalid" : "La cartella dei dati (%s) non è valida",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifica che la cartella dei dati contenga un file \".ocdata\" nella sua radice.",
+ "Could not obtain lock type %d on \"%s\"." : "Impossibile ottenere il blocco di tipo %d su \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/it.json b/lib/l10n/it.json
new file mode 100644
index 00000000000..ef4ae9ab370
--- /dev/null
+++ b/lib/l10n/it.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Impossibile scrivere nella cartella \"config\".",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Ciò può essere normalmente corretto fornendo al server web accesso in scrittura alla cartella \"config\"",
+ "See %s" : "Vedere %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ciò può essere normalmente corretto %sfornendo al server web accesso in scrittura alla cartella \"config\"%s",
+ "Sample configuration detected" : "Configurazione di esempio rilevata",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "È stato rilevato che la configurazione di esempio è stata copiata. Ciò può compromettere la tua installazione e non è supportato. Leggi la documentazione prima di modificare il file config.php",
+ "Help" : "Aiuto",
+ "Personal" : "Personale",
+ "Settings" : "Impostazioni",
+ "Users" : "Utenti",
+ "Admin" : "Admin",
+ "Recommended" : "Consigliata",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "L'applicazione \\\"%s\\\" non può essere installata poiché non è compatibile con questa versione di ownCloud.",
+ "No app name specified" : "Il nome dell'applicazione non è specificato",
+ "Unknown filetype" : "Tipo di file sconosciuto",
+ "Invalid image" : "Immagine non valida",
+ "Database Error" : "Errore del database",
+ "Please contact your system administrator." : "Contatta il tuo amministratore di sistema.",
+ "web services under your control" : "servizi web nelle tue mani",
+ "App directory already exists" : "La cartella dell'applicazione esiste già",
+ "Can't create app folder. Please fix permissions. %s" : "Impossibile creare la cartella dell'applicazione. Correggi i permessi. %s",
+ "No source specified when installing app" : "Nessuna fonte specificata durante l'installazione dell'applicazione",
+ "No href specified when installing app from http" : "Nessun href specificato durante l'installazione dell'applicazione da http",
+ "No path specified when installing app from local file" : "Nessun percorso specificato durante l'installazione dell'applicazione da file locale",
+ "Archives of type %s are not supported" : "Gli archivi di tipo %s non sono supportati",
+ "Failed to open archive when installing app" : "Apertura archivio non riuscita durante l'installazione dell'applicazione",
+ "App does not provide an info.xml file" : "L'applicazione non fornisce un file info.xml",
+ "App can't be installed because of not allowed code in the App" : "L'applicazione non può essere installata a causa di codice non consentito al suo interno",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "L'applicazione non può essere installata poiché non è compatibile con questa versione di ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "L'applicazione non può essere installata poiché contiene il tag true che è consentito per le applicazioni native",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "L'applicazione non può essere installata poiché la versione in info.xml/version non è la stessa riportata dall'app store",
+ "Application is not enabled" : "L'applicazione non è abilitata",
+ "Authentication error" : "Errore di autenticazione",
+ "Token expired. Please reload page." : "Token scaduto. Ricarica la pagina.",
+ "Unknown user" : "Utente sconosciuto",
+ "%s enter the database username." : "%s digita il nome utente del database.",
+ "%s enter the database name." : "%s digita il nome del database.",
+ "%s you may not use dots in the database name" : "%s non dovresti utilizzare punti nel nome del database",
+ "MS SQL username and/or password not valid: %s" : "Nome utente e/o password MS SQL non validi: %s",
+ "You need to enter either an existing account or the administrator." : "È necessario inserire un account esistente o l'amministratore.",
+ "MySQL/MariaDB username and/or password not valid" : "Nome utente e/o password di MySQL/MariaDB non validi",
+ "DB Error: \"%s\"" : "Errore DB: \"%s\"",
+ "Offending command was: \"%s\"" : "Il comando non consentito era: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "L'utente MySQL/MariaDB '%s'@'localhost' esiste già.",
+ "Drop this user from MySQL/MariaDB" : "Elimina questo utente da MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "L'utente MySQL/MariaDB '%s'@'%%' esiste già",
+ "Drop this user from MySQL/MariaDB." : "Elimina questo utente da MySQL/MariaDB.",
+ "Oracle connection could not be established" : "La connessione a Oracle non può essere stabilita",
+ "Oracle username and/or password not valid" : "Nome utente e/o password di Oracle non validi",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Il comando non consentito era: \"%s\", nome: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "Nome utente e/o password di PostgreSQL non validi",
+ "Set an admin username." : "Imposta un nome utente di amministrazione.",
+ "Set an admin password." : "Imposta una password di amministrazione.",
+ "Can't create or write into the data directory %s" : "Impossibile creare o scrivere nella cartella dei dati %s",
+ "%s shared »%s« with you" : "%s ha condiviso «%s» con te",
+ "Sharing %s failed, because the file does not exist" : "Condivisione di %s non riuscita, poiché il file non esiste",
+ "You are not allowed to share %s" : "Non ti è consentito condividere %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Condivisione di %s non riuscita, poiché l'utente %s è il proprietario dell'oggetto",
+ "Sharing %s failed, because the user %s does not exist" : "Condivisione di %s non riuscita, poiché l'utente %s non esiste",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Condivisione di %s non riuscita, poiché l'utente %s non appartiene ad alcun gruppo di cui %s è membro",
+ "Sharing %s failed, because this item is already shared with %s" : "Condivisione di %s non riuscita, poiché l'oggetto è già condiviso con %s",
+ "Sharing %s failed, because the group %s does not exist" : "Condivisione di %s non riuscita, poiché il gruppo %s non esiste",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Condivisione di %s non riuscita, poiché %s non appartiene al gruppo %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Devi fornire una password per creare un collegamento pubblico, sono consentiti solo i collegamenti protetti",
+ "Sharing %s failed, because sharing with links is not allowed" : "Condivisione di %s non riuscita, poiché i collegamenti non sono consentiti",
+ "Share type %s is not valid for %s" : "Il tipo di condivisione %s non è valido per %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Impostazione permessi per %s non riuscita, poiché i permessi superano i permessi accordati a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Impostazione permessi per %s non riuscita, poiché l'elemento non è stato trovato",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Impossibile impostare la data di scadenza. Le condivisioni non possono scadere più tardi di %s dalla loro attivazione",
+ "Cannot set expiration date. Expiration date is in the past" : "Impossibile impostare la data di scadenza. La data di scadenza è nel passato.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Il motore di condivisione %s deve implementare l'interfaccia OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Motore di condivisione %s non trovato",
+ "Sharing backend for %s not found" : "Motore di condivisione di %s non trovato",
+ "Sharing %s failed, because the user %s is the original sharer" : "Condivisione di %s non riuscita, poiché l'utente %s l'ha condiviso precedentemente",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Condivisione di %s non riuscita, poiché i permessi superano quelli accordati a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Condivisione di %s non riuscita, poiché la ri-condivisione non è consentita",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Condivisione di %s non riuscita, poiché il motore di condivisione per %s non riesce a trovare la sua fonte",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Condivisione di %s non riuscita, poiché il file non è stato trovato nella cache",
+ "Could not find category \"%s\"" : "Impossibile trovare la categoria \"%s\"",
+ "seconds ago" : "secondi fa",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuto fa","%n minuti fa"],
+ "_%n hour ago_::_%n hours ago_" : ["%n ora fa","%n ore fa"],
+ "today" : "oggi",
+ "yesterday" : "ieri",
+ "_%n day go_::_%n days ago_" : ["%n giorno fa","%n giorni fa"],
+ "last month" : "mese scorso",
+ "_%n month ago_::_%n months ago_" : ["%n mese fa","%n mesi fa"],
+ "last year" : "anno scorso",
+ "years ago" : "anni fa",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Solo i seguenti caratteri sono ammessi in un nome utente: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
+ "A valid username must be provided" : "Deve essere fornito un nome utente valido",
+ "A valid password must be provided" : "Deve essere fornita una password valida",
+ "The username is already being used" : "Il nome utente è già utilizzato",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nessun driver di database (sqlite, mysql o postgresql) installato",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "I permessi possono essere normalmente corretti %sfornendo al server web accesso in scrittura alla cartella radice%s.",
+ "Cannot write into \"config\" directory" : "Impossibile scrivere nella cartella \"config\"",
+ "Cannot write into \"apps\" directory" : "Impossibile scrivere nella cartella \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ciò può essere normalmente corretto %sfornendo al server web accesso in scrittura alla cartella \"apps\"%s o disabilitando il negozio di applicazioni nel file di configurazione.",
+ "Cannot create \"data\" directory (%s)" : "Impossibile creare la cartella \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Ciò può essere normalmente corretto fornendo al server web accesso in scrittura alla cartella radice .",
+ "Setting locale to %s failed" : "L'impostazione della localizzazione a %s non è riuscita",
+ "Please install one of these locales on your system and restart your webserver." : "Installa una delle seguenti localizzazioni sul tuo sistema e riavvia il server web.",
+ "Please ask your server administrator to install the module." : "Chiedi all'amministratore del tuo server di installare il modulo.",
+ "PHP module %s not installed." : "Il modulo PHP %s non è installato.",
+ "PHP %s or higher is required." : "Richiesto PHP %s o superiore",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Chiedi al tuo amministratore di aggiornare PHP all'ultima versione. La tua versione di PHP non è più supportata da ownCloud e dalla comunità di PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode è abilitato. ownCloud richiede che sia disabilitato per funzionare correttamente.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode è un'impostazione sconsigliata e solitamente inutile che dovrebbe essere disabilitata. Chiedi al tuo amministratore di disabilitarlo nel file php.ini o nella configurazione del server web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes è abilitato. ownCloud richiede che sia disabilitato per funzionare correttamente.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes è un'impostazione sconsigliata e solitamente inutile che dovrebbe essere disabilitata. Chiedi al tuo amministratore di disabilitarlo nel file php.ini o nella configurazione del server web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Sono stati installati moduli PHP, ma sono elencati ancora come mancanti?",
+ "Please ask your server administrator to restart the web server." : "Chiedi all'amministratore di riavviare il server web.",
+ "PostgreSQL >= 9 required" : "Richiesto PostgreSQL >= 9",
+ "Please upgrade your database version" : "Aggiorna la versione del tuo database",
+ "Error occurred while checking PostgreSQL version" : "Si è verificato un errore durante il controllo della versione di PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Assicurati di avere PostgreSQL >= 9 o controlla i log per ulteriori informazioni sull'errore",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Modifica i permessi in 0770 in modo tale che la cartella non sia leggibile dagli altri utenti.",
+ "Data directory (%s) is readable by other users" : "La cartella dei dati (%s) è leggibile dagli altri utenti",
+ "Data directory (%s) is invalid" : "La cartella dei dati (%s) non è valida",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifica che la cartella dei dati contenga un file \".ocdata\" nella sua radice.",
+ "Could not obtain lock type %d on \"%s\"." : "Impossibile ottenere il blocco di tipo %d su \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/it.php b/lib/l10n/it.php
deleted file mode 100644
index 1d71816d32c..00000000000
--- a/lib/l10n/it.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Impossibile scrivere nella cartella \"config\".",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Ciò può essere normalmente corretto fornendo al server web accesso in scrittura alla cartella \"config\"",
-"See %s" => "Vedere %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Ciò può essere normalmente corretto %sfornendo al server web accesso in scrittura alla cartella \"config\"%s",
-"Sample configuration detected" => "Configurazione di esempio rilevata",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "È stato rilevato che la configurazione di esempio è stata copiata. Ciò può compromettere la tua installazione e non è supportato. Leggi la documentazione prima di modificare il file config.php",
-"Help" => "Aiuto",
-"Personal" => "Personale",
-"Settings" => "Impostazioni",
-"Users" => "Utenti",
-"Admin" => "Admin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "L'applicazione \\\"%s\\\" non può essere installata poiché non è compatibile con questa versione di ownCloud.",
-"No app name specified" => "Il nome dell'applicazione non è specificato",
-"Unknown filetype" => "Tipo di file sconosciuto",
-"Invalid image" => "Immagine non valida",
-"web services under your control" => "servizi web nelle tue mani",
-"App directory already exists" => "La cartella dell'applicazione esiste già",
-"Can't create app folder. Please fix permissions. %s" => "Impossibile creare la cartella dell'applicazione. Correggi i permessi. %s",
-"No source specified when installing app" => "Nessuna fonte specificata durante l'installazione dell'applicazione",
-"No href specified when installing app from http" => "Nessun href specificato durante l'installazione dell'applicazione da http",
-"No path specified when installing app from local file" => "Nessun percorso specificato durante l'installazione dell'applicazione da file locale",
-"Archives of type %s are not supported" => "Gli archivi di tipo %s non sono supportati",
-"Failed to open archive when installing app" => "Apertura archivio non riuscita durante l'installazione dell'applicazione",
-"App does not provide an info.xml file" => "L'applicazione non fornisce un file info.xml",
-"App can't be installed because of not allowed code in the App" => "L'applicazione non può essere installata a causa di codice non consentito al suo interno",
-"App can't be installed because it is not compatible with this version of ownCloud" => "L'applicazione non può essere installata poiché non è compatibile con questa versione di ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "L'applicazione non può essere installata poiché contiene il tag true che è consentito per le applicazioni native",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "L'applicazione non può essere installata poiché la versione in info.xml/version non è la stessa riportata dall'app store",
-"Application is not enabled" => "L'applicazione non è abilitata",
-"Authentication error" => "Errore di autenticazione",
-"Token expired. Please reload page." => "Token scaduto. Ricarica la pagina.",
-"Unknown user" => "Utente sconosciuto",
-"%s enter the database username." => "%s digita il nome utente del database.",
-"%s enter the database name." => "%s digita il nome del database.",
-"%s you may not use dots in the database name" => "%s non dovresti utilizzare punti nel nome del database",
-"MS SQL username and/or password not valid: %s" => "Nome utente e/o password MS SQL non validi: %s",
-"You need to enter either an existing account or the administrator." => "È necessario inserire un account esistente o l'amministratore.",
-"MySQL/MariaDB username and/or password not valid" => "Nome utente e/o password di MySQL/MariaDB non validi",
-"DB Error: \"%s\"" => "Errore DB: \"%s\"",
-"Offending command was: \"%s\"" => "Il comando non consentito era: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "L'utente MySQL/MariaDB '%s'@'localhost' esiste già.",
-"Drop this user from MySQL/MariaDB" => "Elimina questo utente da MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "L'utente MySQL/MariaDB '%s'@'%%' esiste già",
-"Drop this user from MySQL/MariaDB." => "Elimina questo utente da MySQL/MariaDB.",
-"Oracle connection could not be established" => "La connessione a Oracle non può essere stabilita",
-"Oracle username and/or password not valid" => "Nome utente e/o password di Oracle non validi",
-"Offending command was: \"%s\", name: %s, password: %s" => "Il comando non consentito era: \"%s\", nome: %s, password: %s",
-"PostgreSQL username and/or password not valid" => "Nome utente e/o password di PostgreSQL non validi",
-"Set an admin username." => "Imposta un nome utente di amministrazione.",
-"Set an admin password." => "Imposta una password di amministrazione.",
-"Can't create or write into the data directory %s" => "Impossibile creare o scrivere nella cartella dei dati %s",
-"%s shared »%s« with you" => "%s ha condiviso «%s» con te",
-"Sharing %s failed, because the file does not exist" => "Condivisione di %s non riuscita, poiché il file non esiste",
-"You are not allowed to share %s" => "Non ti è consentito condividere %s",
-"Sharing %s failed, because the user %s is the item owner" => "Condivisione di %s non riuscita, poiché l'utente %s è il proprietario dell'oggetto",
-"Sharing %s failed, because the user %s does not exist" => "Condivisione di %s non riuscita, poiché l'utente %s non esiste",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Condivisione di %s non riuscita, poiché l'utente %s non appartiene ad alcun gruppo di cui %s è membro",
-"Sharing %s failed, because this item is already shared with %s" => "Condivisione di %s non riuscita, poiché l'oggetto è già condiviso con %s",
-"Sharing %s failed, because the group %s does not exist" => "Condivisione di %s non riuscita, poiché il gruppo %s non esiste",
-"Sharing %s failed, because %s is not a member of the group %s" => "Condivisione di %s non riuscita, poiché %s non appartiene al gruppo %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Devi fornire una password per creare un collegamento pubblico, sono consentiti solo i collegamenti protetti",
-"Sharing %s failed, because sharing with links is not allowed" => "Condivisione di %s non riuscita, poiché i collegamenti non sono consentiti",
-"Share type %s is not valid for %s" => "Il tipo di condivisione %s non è valido per %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Impostazione permessi per %s non riuscita, poiché i permessi superano i permessi accordati a %s",
-"Setting permissions for %s failed, because the item was not found" => "Impostazione permessi per %s non riuscita, poiché l'elemento non è stato trovato",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Impossibile impostare la data di scadenza. Le condivisioni non possono scadere più tardi di %s dalla loro attivazione",
-"Cannot set expiration date. Expiration date is in the past" => "Impossibile impostare la data di scadenza. La data di scadenza è nel passato.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Il motore di condivisione %s deve implementare l'interfaccia OCP\\Share_Backend",
-"Sharing backend %s not found" => "Motore di condivisione %s non trovato",
-"Sharing backend for %s not found" => "Motore di condivisione di %s non trovato",
-"Sharing %s failed, because the user %s is the original sharer" => "Condivisione di %s non riuscita, poiché l'utente %s l'ha condiviso precedentemente",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Condivisione di %s non riuscita, poiché i permessi superano quelli accordati a %s",
-"Sharing %s failed, because resharing is not allowed" => "Condivisione di %s non riuscita, poiché la ri-condivisione non è consentita",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Condivisione di %s non riuscita, poiché il motore di condivisione per %s non riesce a trovare la sua fonte",
-"Sharing %s failed, because the file could not be found in the file cache" => "Condivisione di %s non riuscita, poiché il file non è stato trovato nella cache",
-"Could not find category \"%s\"" => "Impossibile trovare la categoria \"%s\"",
-"seconds ago" => "secondi fa",
-"_%n minute ago_::_%n minutes ago_" => array("%n minuto fa","%n minuti fa"),
-"_%n hour ago_::_%n hours ago_" => array("%n ora fa","%n ore fa"),
-"today" => "oggi",
-"yesterday" => "ieri",
-"_%n day go_::_%n days ago_" => array("%n giorno fa","%n giorni fa"),
-"last month" => "mese scorso",
-"_%n month ago_::_%n months ago_" => array("%n mese fa","%n mesi fa"),
-"last year" => "anno scorso",
-"years ago" => "anni fa",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Solo i seguenti caratteri sono ammessi in un nome utente: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
-"A valid username must be provided" => "Deve essere fornito un nome utente valido",
-"A valid password must be provided" => "Deve essere fornita una password valida",
-"The username is already being used" => "Il nome utente è già utilizzato",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Nessun driver di database (sqlite, mysql o postgresql) installato",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "I permessi possono essere normalmente corretti %sfornendo al server web accesso in scrittura alla cartella radice%s.",
-"Cannot write into \"config\" directory" => "Impossibile scrivere nella cartella \"config\"",
-"Cannot write into \"apps\" directory" => "Impossibile scrivere nella cartella \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Ciò può essere normalmente corretto %sfornendo al server web accesso in scrittura alla cartella \"apps\"%s o disabilitando il negozio di applicazioni nel file di configurazione.",
-"Cannot create \"data\" directory (%s)" => "Impossibile creare la cartella \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Ciò può essere normalmente corretto fornendo al server web accesso in scrittura alla cartella radice .",
-"Setting locale to %s failed" => "L'impostazione della localizzazione a %s non è riuscita",
-"Please install one of these locales on your system and restart your webserver." => "Installa una delle seguenti localizzazioni sul tuo sistema e riavvia il server web.",
-"Please ask your server administrator to install the module." => "Chiedi all'amministratore del tuo server di installare il modulo.",
-"PHP module %s not installed." => "Il modulo PHP %s non è installato.",
-"PHP %s or higher is required." => "Richiesto PHP %s o superiore",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Chiedi al tuo amministratore di aggiornare PHP all'ultima versione. La tua versione di PHP non è più supportata da ownCloud e dalla comunità di PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode è abilitato. ownCloud richiede che sia disabilitato per funzionare correttamente.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode è un'impostazione sconsigliata e solitamente inutile che dovrebbe essere disabilitata. Chiedi al tuo amministratore di disabilitarlo nel file php.ini o nella configurazione del server web.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes è abilitato. ownCloud richiede che sia disabilitato per funzionare correttamente.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes è un'impostazione sconsigliata e solitamente inutile che dovrebbe essere disabilitata. Chiedi al tuo amministratore di disabilitarlo nel file php.ini o nella configurazione del server web.",
-"PHP modules have been installed, but they are still listed as missing?" => "Sono stati installati moduli PHP, ma sono elencati ancora come mancanti?",
-"Please ask your server administrator to restart the web server." => "Chiedi all'amministratore di riavviare il server web.",
-"PostgreSQL >= 9 required" => "Richiesto PostgreSQL >= 9",
-"Please upgrade your database version" => "Aggiorna la versione del tuo database",
-"Error occurred while checking PostgreSQL version" => "Si è verificato un errore durante il controllo della versione di PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Assicurati di avere PostgreSQL >= 9 o controlla i log per ulteriori informazioni sull'errore",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Modifica i permessi in 0770 in modo tale che la cartella non sia leggibile dagli altri utenti.",
-"Data directory (%s) is readable by other users" => "La cartella dei dati (%s) è leggibile dagli altri utenti",
-"Data directory (%s) is invalid" => "La cartella dei dati (%s) non è valida",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Verifica che la cartella dei dati contenga un file \".ocdata\" nella sua radice.",
-"Could not obtain lock type %d on \"%s\"." => "Impossibile ottenere il blocco di tipo %d su \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js
new file mode 100644
index 00000000000..e6b0b3240f1
--- /dev/null
+++ b/lib/l10n/ja.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "\"config\"ディレクトリに書き込めません!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "多くの場合、これはWebサーバーにconfigディレクトリへの書き込み権限を与えることで解決できます。",
+ "See %s" : "%s を閲覧",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "多くの場合、これは %s Webサーバーにconfigディレクトリ %s への書き込み権限を与えることで解決できます。",
+ "Sample configuration detected" : "サンプル設定が見つかりました。",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "サンプル設定がコピーされてそのままです。このままではインストールが失敗し、サポート対象外になります。config.phpを変更する前にドキュメントを確認してください。",
+ "Help" : "ヘルプ",
+ "Personal" : "個人",
+ "Settings" : "設定",
+ "Users" : "ユーザー",
+ "Admin" : "管理",
+ "Recommended" : "推奨",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "アプリ \\\"%s\\\" をインストールできません。現在のownCloudのバージョンと互換性がありません。",
+ "No app name specified" : "アプリ名が未指定",
+ "Unknown filetype" : "不明なファイルタイプ",
+ "Invalid image" : "無効な画像",
+ "Database Error" : "データベースエラー",
+ "Please contact your system administrator." : "システム管理者に問い合わせてください。",
+ "web services under your control" : "あなたの管理下のウェブサービス",
+ "App directory already exists" : "アプリディレクトリはすでに存在します",
+ "Can't create app folder. Please fix permissions. %s" : "アプリフォルダーを作成できませんでした。%s のパーミッションを修正してください。",
+ "No source specified when installing app" : "アプリインストール時のソースが未指定",
+ "No href specified when installing app from http" : "アプリインストール時のhttpの URL が未指定",
+ "No path specified when installing app from local file" : "アプリインストール時のローカルファイルのパスが未指定",
+ "Archives of type %s are not supported" : "\"%s\"タイプのアーカイブ形式は未サポート",
+ "Failed to open archive when installing app" : "アプリをインストール中にアーカイブファイルを開けませんでした。",
+ "App does not provide an info.xml file" : "アプリにinfo.xmlファイルが入っていません",
+ "App can't be installed because of not allowed code in the App" : "アプリで許可されないコードが入っているのが原因でアプリがインストールできません",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "アプリは、このバージョンのownCloudと互換性がないためインストールできません。",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "非shippedアプリには許可されないtrue タグが含まれているためにアプリをインストールできません。",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "info.xml/versionのバージョンがアプリストアのバージョンと合っていないため、アプリはインストールされません",
+ "Application is not enabled" : "アプリケーションは無効です",
+ "Authentication error" : "認証エラー",
+ "Token expired. Please reload page." : "トークンが無効になりました。ページを再読込してください。",
+ "Unknown user" : "不明なユーザー",
+ "%s enter the database username." : "%s のデータベースのユーザー名を入力してください。",
+ "%s enter the database name." : "%s のデータベース名を入力してください。",
+ "%s you may not use dots in the database name" : "%s ではデータベース名にドットを利用できないかもしれません。",
+ "MS SQL username and/or password not valid: %s" : "MS SQL Serverのユーザー名/パスワードが正しくありません: %s",
+ "You need to enter either an existing account or the administrator." : "既存のアカウントもしくは管理者のどちらかを入力する必要があります。",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB のユーザー名及び/またはパスワードが無効",
+ "DB Error: \"%s\"" : "DBエラー: \"%s\"",
+ "Offending command was: \"%s\"" : "違反コマンド: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB のユーザー '%s'@'localhost' はすでに存在します。",
+ "Drop this user from MySQL/MariaDB" : "MySQL/MariaDB からこのユーザーを削除",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB のユーザー '%s'@'%%' はすでに存在します",
+ "Drop this user from MySQL/MariaDB." : "MySQL/MariaDB からこのユーザーを削除。",
+ "Oracle connection could not be established" : "Oracleへの接続が確立できませんでした。",
+ "Oracle username and/or password not valid" : "Oracleのユーザー名もしくはパスワードは有効ではありません",
+ "Offending command was: \"%s\", name: %s, password: %s" : "違反コマンド: \"%s\"、名前: %s、パスワード: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQLのユーザー名もしくはパスワードは有効ではありません",
+ "Set an admin username." : "管理者のユーザー名を設定",
+ "Set an admin password." : "管理者のパスワードを設定。",
+ "Can't create or write into the data directory %s" : "%s データディレクトリに作成、書き込みができません",
+ "%s shared »%s« with you" : "%sが あなたと »%s«を共有しました",
+ "Sharing %s failed, because the file does not exist" : "%s の共有に失敗しました。そのようなファイルは存在しないからです。",
+ "You are not allowed to share %s" : "%s を共有することを許可されていません。",
+ "Sharing %s failed, because the user %s is the item owner" : "%s の共有に失敗しました。ユーザー %s がアイテム所有者です。",
+ "Sharing %s failed, because the user %s does not exist" : "%s の共有に失敗しました。ユーザー %s が存在しません。",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s の共有に失敗しました。ユーザー %s はどのグループにも属していません。%s は、??のメンバーです。",
+ "Sharing %s failed, because this item is already shared with %s" : "%s の共有に失敗しました。このアイテムは既に %s で共有されています。",
+ "Sharing %s failed, because the group %s does not exist" : "%s の共有に失敗しました。グループ %s は存在しません。",
+ "Sharing %s failed, because %s is not a member of the group %s" : "%s の共有に失敗しました。%s は、グループ %s のメンバーではありません。",
+ "You need to provide a password to create a public link, only protected links are allowed" : "公開用リンクの作成にはパスワードの設定が必要です",
+ "Sharing %s failed, because sharing with links is not allowed" : "%s の共有に失敗しました。リンクでの共有は許可されていません。",
+ "Share type %s is not valid for %s" : "%s の共有方法は、%s には適用できません。",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%s の権限設定に失敗しました。%s に許可されている権限を越えています。",
+ "Setting permissions for %s failed, because the item was not found" : "%s の権限設定に失敗しました。アイテムが存在しません。",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "有効期限を設定できません。共有開始から %s 以降に有効期限を設定することはできません。",
+ "Cannot set expiration date. Expiration date is in the past" : "有効期限を設定できません。有効期限が過去を示しています。",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "%s のバックエンドの共有には、OCP\\Share_Backend インターフェースを実装しなければなりません。",
+ "Sharing backend %s not found" : "共有バックエンド %s が見つかりません",
+ "Sharing backend for %s not found" : "%s のための共有バックエンドが見つかりません",
+ "Sharing %s failed, because the user %s is the original sharer" : "%s の共有に失敗しました。ユーザー %s が元々の共有者であるからです。",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s の共有に失敗しました。%s に付与されている許可を超えているからです。",
+ "Sharing %s failed, because resharing is not allowed" : "%s の共有に失敗しました。再共有が許されていないからです。",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s の共有に失敗しました。%s のバックエンド共有に必要なソースが見つかりませんでした。",
+ "Sharing %s failed, because the file could not be found in the file cache" : "%s の共有に失敗しました。ファイルキャッシュにファイルがありませんでした。",
+ "Could not find category \"%s\"" : "カテゴリ \"%s\" が見つかりませんでした",
+ "seconds ago" : "数秒前",
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
+ "today" : "今日",
+ "yesterday" : "1日前",
+ "_%n day go_::_%n days ago_" : ["%n日前"],
+ "last month" : "1ヶ月前",
+ "_%n month ago_::_%n months ago_" : ["%nヶ月前"],
+ "last year" : "1年前",
+ "years ago" : "年前",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "ユーザー名で利用できる文字列は、次のものです: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "有効なユーザー名を指定する必要があります",
+ "A valid password must be provided" : "有効なパスワードを指定する必要があります",
+ "The username is already being used" : "ユーザー名はすでに使われています",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "データベースドライバー (sqlite, mysql, postgresql) がインストールされていません。",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "多くの場合、パーミッションは %s Webサーバーにルートディレクトリ %s への書き込み権限を与えることで解決できます。",
+ "Cannot write into \"config\" directory" : "\"config\" ディレクトリに書き込みができません",
+ "Cannot write into \"apps\" directory" : "\"apps\" ディレクトリに書き込みができません",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "多くの場合、これは %s Webサーバーにappsディレクトリ %s への書き込み権限を与えるか、設定ファイルでアプリストアを無効化することで解決できます。",
+ "Cannot create \"data\" directory (%s)" : "\"data\" ディレクトリ (%s) を作成できません",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "多くの場合、これはWebサーバーにルートディレクトリへの書き込み権限を与える ことで解決できます。",
+ "Setting locale to %s failed" : "ロケールを %s に設定できませんでした",
+ "Please install one of these locales on your system and restart your webserver." : "これらのロケールのうちいずれかをシステムにインストールし、Webサーバーを再起動してください。",
+ "Please ask your server administrator to install the module." : "サーバー管理者にモジュールのインストールを依頼してください。",
+ "PHP module %s not installed." : "PHP のモジュール %s がインストールされていません。",
+ "PHP %s or higher is required." : "PHP %s 以上が必要です。",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "PHPを最新バージョンに更新するようサーバー管理者に依頼してください。現在のPHPのバージョンは、ownCloudおよびPHPコミュニティでサポートされていません。",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHPセーフモードは有効です。ownCloudを適切に動作させるには無効化する必要があります。",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHPセーフモードは推奨されておらず、ほとんど役に立たない設定のため、無効化すべきです。サーバー管理者に、php.iniもしくはWebサーバー設定で無効化するよう依頼してください。",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "マジッククォートは有効です。ownCloudを適切に動作させるには無効にする必要があります。",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "マジッククォートは推奨されておらず、ほとんど役に立たない設定のため、無効化すべきです。サーバー管理者に、php.iniもしくはWebサーバー設定で無効化するよう依頼してください。",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP モジュールはインストールされていますが、まだ一覧に表示されていますか?",
+ "Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 が必要です",
+ "Please upgrade your database version" : "新しいバージョンのデータベースにアップグレードしてください",
+ "Error occurred while checking PostgreSQL version" : "PostgreSQL のバージョンチェック中にエラーが発生しました",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL >= 9 がインストールされているかどうか確認してください。もしくは、ログからエラーに関する詳細な情報を確認してください。",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "ディレクトリが他のユーザーから見えないように、パーミッションを 0770 に変更してください。",
+ "Data directory (%s) is readable by other users" : "データディレクトリ (%s) は他のユーザーも閲覧することができます",
+ "Data directory (%s) is invalid" : "データディレクトリ (%s) は無効です",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "データディレクトリに \".ocdata\" ファイルが含まれていることを確認してください。",
+ "Could not obtain lock type %d on \"%s\"." : "\"%s\" で %d タイプのロックを取得できませんでした。"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json
new file mode 100644
index 00000000000..722f5235c6f
--- /dev/null
+++ b/lib/l10n/ja.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "\"config\"ディレクトリに書き込めません!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "多くの場合、これはWebサーバーにconfigディレクトリへの書き込み権限を与えることで解決できます。",
+ "See %s" : "%s を閲覧",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "多くの場合、これは %s Webサーバーにconfigディレクトリ %s への書き込み権限を与えることで解決できます。",
+ "Sample configuration detected" : "サンプル設定が見つかりました。",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "サンプル設定がコピーされてそのままです。このままではインストールが失敗し、サポート対象外になります。config.phpを変更する前にドキュメントを確認してください。",
+ "Help" : "ヘルプ",
+ "Personal" : "個人",
+ "Settings" : "設定",
+ "Users" : "ユーザー",
+ "Admin" : "管理",
+ "Recommended" : "推奨",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "アプリ \\\"%s\\\" をインストールできません。現在のownCloudのバージョンと互換性がありません。",
+ "No app name specified" : "アプリ名が未指定",
+ "Unknown filetype" : "不明なファイルタイプ",
+ "Invalid image" : "無効な画像",
+ "Database Error" : "データベースエラー",
+ "Please contact your system administrator." : "システム管理者に問い合わせてください。",
+ "web services under your control" : "あなたの管理下のウェブサービス",
+ "App directory already exists" : "アプリディレクトリはすでに存在します",
+ "Can't create app folder. Please fix permissions. %s" : "アプリフォルダーを作成できませんでした。%s のパーミッションを修正してください。",
+ "No source specified when installing app" : "アプリインストール時のソースが未指定",
+ "No href specified when installing app from http" : "アプリインストール時のhttpの URL が未指定",
+ "No path specified when installing app from local file" : "アプリインストール時のローカルファイルのパスが未指定",
+ "Archives of type %s are not supported" : "\"%s\"タイプのアーカイブ形式は未サポート",
+ "Failed to open archive when installing app" : "アプリをインストール中にアーカイブファイルを開けませんでした。",
+ "App does not provide an info.xml file" : "アプリにinfo.xmlファイルが入っていません",
+ "App can't be installed because of not allowed code in the App" : "アプリで許可されないコードが入っているのが原因でアプリがインストールできません",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "アプリは、このバージョンのownCloudと互換性がないためインストールできません。",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "非shippedアプリには許可されないtrue タグが含まれているためにアプリをインストールできません。",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "info.xml/versionのバージョンがアプリストアのバージョンと合っていないため、アプリはインストールされません",
+ "Application is not enabled" : "アプリケーションは無効です",
+ "Authentication error" : "認証エラー",
+ "Token expired. Please reload page." : "トークンが無効になりました。ページを再読込してください。",
+ "Unknown user" : "不明なユーザー",
+ "%s enter the database username." : "%s のデータベースのユーザー名を入力してください。",
+ "%s enter the database name." : "%s のデータベース名を入力してください。",
+ "%s you may not use dots in the database name" : "%s ではデータベース名にドットを利用できないかもしれません。",
+ "MS SQL username and/or password not valid: %s" : "MS SQL Serverのユーザー名/パスワードが正しくありません: %s",
+ "You need to enter either an existing account or the administrator." : "既存のアカウントもしくは管理者のどちらかを入力する必要があります。",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB のユーザー名及び/またはパスワードが無効",
+ "DB Error: \"%s\"" : "DBエラー: \"%s\"",
+ "Offending command was: \"%s\"" : "違反コマンド: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB のユーザー '%s'@'localhost' はすでに存在します。",
+ "Drop this user from MySQL/MariaDB" : "MySQL/MariaDB からこのユーザーを削除",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB のユーザー '%s'@'%%' はすでに存在します",
+ "Drop this user from MySQL/MariaDB." : "MySQL/MariaDB からこのユーザーを削除。",
+ "Oracle connection could not be established" : "Oracleへの接続が確立できませんでした。",
+ "Oracle username and/or password not valid" : "Oracleのユーザー名もしくはパスワードは有効ではありません",
+ "Offending command was: \"%s\", name: %s, password: %s" : "違反コマンド: \"%s\"、名前: %s、パスワード: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQLのユーザー名もしくはパスワードは有効ではありません",
+ "Set an admin username." : "管理者のユーザー名を設定",
+ "Set an admin password." : "管理者のパスワードを設定。",
+ "Can't create or write into the data directory %s" : "%s データディレクトリに作成、書き込みができません",
+ "%s shared »%s« with you" : "%sが あなたと »%s«を共有しました",
+ "Sharing %s failed, because the file does not exist" : "%s の共有に失敗しました。そのようなファイルは存在しないからです。",
+ "You are not allowed to share %s" : "%s を共有することを許可されていません。",
+ "Sharing %s failed, because the user %s is the item owner" : "%s の共有に失敗しました。ユーザー %s がアイテム所有者です。",
+ "Sharing %s failed, because the user %s does not exist" : "%s の共有に失敗しました。ユーザー %s が存在しません。",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s の共有に失敗しました。ユーザー %s はどのグループにも属していません。%s は、??のメンバーです。",
+ "Sharing %s failed, because this item is already shared with %s" : "%s の共有に失敗しました。このアイテムは既に %s で共有されています。",
+ "Sharing %s failed, because the group %s does not exist" : "%s の共有に失敗しました。グループ %s は存在しません。",
+ "Sharing %s failed, because %s is not a member of the group %s" : "%s の共有に失敗しました。%s は、グループ %s のメンバーではありません。",
+ "You need to provide a password to create a public link, only protected links are allowed" : "公開用リンクの作成にはパスワードの設定が必要です",
+ "Sharing %s failed, because sharing with links is not allowed" : "%s の共有に失敗しました。リンクでの共有は許可されていません。",
+ "Share type %s is not valid for %s" : "%s の共有方法は、%s には適用できません。",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%s の権限設定に失敗しました。%s に許可されている権限を越えています。",
+ "Setting permissions for %s failed, because the item was not found" : "%s の権限設定に失敗しました。アイテムが存在しません。",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "有効期限を設定できません。共有開始から %s 以降に有効期限を設定することはできません。",
+ "Cannot set expiration date. Expiration date is in the past" : "有効期限を設定できません。有効期限が過去を示しています。",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "%s のバックエンドの共有には、OCP\\Share_Backend インターフェースを実装しなければなりません。",
+ "Sharing backend %s not found" : "共有バックエンド %s が見つかりません",
+ "Sharing backend for %s not found" : "%s のための共有バックエンドが見つかりません",
+ "Sharing %s failed, because the user %s is the original sharer" : "%s の共有に失敗しました。ユーザー %s が元々の共有者であるからです。",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s の共有に失敗しました。%s に付与されている許可を超えているからです。",
+ "Sharing %s failed, because resharing is not allowed" : "%s の共有に失敗しました。再共有が許されていないからです。",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s の共有に失敗しました。%s のバックエンド共有に必要なソースが見つかりませんでした。",
+ "Sharing %s failed, because the file could not be found in the file cache" : "%s の共有に失敗しました。ファイルキャッシュにファイルがありませんでした。",
+ "Could not find category \"%s\"" : "カテゴリ \"%s\" が見つかりませんでした",
+ "seconds ago" : "数秒前",
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
+ "today" : "今日",
+ "yesterday" : "1日前",
+ "_%n day go_::_%n days ago_" : ["%n日前"],
+ "last month" : "1ヶ月前",
+ "_%n month ago_::_%n months ago_" : ["%nヶ月前"],
+ "last year" : "1年前",
+ "years ago" : "年前",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "ユーザー名で利用できる文字列は、次のものです: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "有効なユーザー名を指定する必要があります",
+ "A valid password must be provided" : "有効なパスワードを指定する必要があります",
+ "The username is already being used" : "ユーザー名はすでに使われています",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "データベースドライバー (sqlite, mysql, postgresql) がインストールされていません。",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "多くの場合、パーミッションは %s Webサーバーにルートディレクトリ %s への書き込み権限を与えることで解決できます。",
+ "Cannot write into \"config\" directory" : "\"config\" ディレクトリに書き込みができません",
+ "Cannot write into \"apps\" directory" : "\"apps\" ディレクトリに書き込みができません",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "多くの場合、これは %s Webサーバーにappsディレクトリ %s への書き込み権限を与えるか、設定ファイルでアプリストアを無効化することで解決できます。",
+ "Cannot create \"data\" directory (%s)" : "\"data\" ディレクトリ (%s) を作成できません",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "多くの場合、これはWebサーバーにルートディレクトリへの書き込み権限を与える ことで解決できます。",
+ "Setting locale to %s failed" : "ロケールを %s に設定できませんでした",
+ "Please install one of these locales on your system and restart your webserver." : "これらのロケールのうちいずれかをシステムにインストールし、Webサーバーを再起動してください。",
+ "Please ask your server administrator to install the module." : "サーバー管理者にモジュールのインストールを依頼してください。",
+ "PHP module %s not installed." : "PHP のモジュール %s がインストールされていません。",
+ "PHP %s or higher is required." : "PHP %s 以上が必要です。",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "PHPを最新バージョンに更新するようサーバー管理者に依頼してください。現在のPHPのバージョンは、ownCloudおよびPHPコミュニティでサポートされていません。",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHPセーフモードは有効です。ownCloudを適切に動作させるには無効化する必要があります。",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHPセーフモードは推奨されておらず、ほとんど役に立たない設定のため、無効化すべきです。サーバー管理者に、php.iniもしくはWebサーバー設定で無効化するよう依頼してください。",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "マジッククォートは有効です。ownCloudを適切に動作させるには無効にする必要があります。",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "マジッククォートは推奨されておらず、ほとんど役に立たない設定のため、無効化すべきです。サーバー管理者に、php.iniもしくはWebサーバー設定で無効化するよう依頼してください。",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP モジュールはインストールされていますが、まだ一覧に表示されていますか?",
+ "Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 が必要です",
+ "Please upgrade your database version" : "新しいバージョンのデータベースにアップグレードしてください",
+ "Error occurred while checking PostgreSQL version" : "PostgreSQL のバージョンチェック中にエラーが発生しました",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL >= 9 がインストールされているかどうか確認してください。もしくは、ログからエラーに関する詳細な情報を確認してください。",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "ディレクトリが他のユーザーから見えないように、パーミッションを 0770 に変更してください。",
+ "Data directory (%s) is readable by other users" : "データディレクトリ (%s) は他のユーザーも閲覧することができます",
+ "Data directory (%s) is invalid" : "データディレクトリ (%s) は無効です",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "データディレクトリに \".ocdata\" ファイルが含まれていることを確認してください。",
+ "Could not obtain lock type %d on \"%s\"." : "\"%s\" で %d タイプのロックを取得できませんでした。"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/ja.php b/lib/l10n/ja.php
deleted file mode 100644
index 445702069f1..00000000000
--- a/lib/l10n/ja.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "\"config\"ディレクトリに書き込めません!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "多くの場合、これはWebサーバーにconfigディレクトリへの書き込み権限を与えることで解決できます。",
-"See %s" => "%s を閲覧",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "多くの場合、これは %s Webサーバーにconfigディレクトリ %s への書き込み権限を与えることで解決できます。",
-"Sample configuration detected" => "サンプル設定が見つかりました。",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "サンプル設定がコピーされてそのままです。このままではインストールが失敗し、サポート対象外になります。config.phpを変更する前にドキュメントを確認してください。",
-"Help" => "ヘルプ",
-"Personal" => "個人",
-"Settings" => "設定",
-"Users" => "ユーザー",
-"Admin" => "管理",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "アプリ \\\"%s\\\" をインストールできません。現在のownCloudのバージョンと互換性がありません。",
-"No app name specified" => "アプリ名が未指定",
-"Unknown filetype" => "不明なファイルタイプ",
-"Invalid image" => "無効な画像",
-"web services under your control" => "あなたの管理下のウェブサービス",
-"App directory already exists" => "アプリディレクトリはすでに存在します",
-"Can't create app folder. Please fix permissions. %s" => "アプリフォルダーを作成できませんでした。%s のパーミッションを修正してください。",
-"No source specified when installing app" => "アプリインストール時のソースが未指定",
-"No href specified when installing app from http" => "アプリインストール時のhttpの URL が未指定",
-"No path specified when installing app from local file" => "アプリインストール時のローカルファイルのパスが未指定",
-"Archives of type %s are not supported" => "\"%s\"タイプのアーカイブ形式は未サポート",
-"Failed to open archive when installing app" => "アプリをインストール中にアーカイブファイルを開けませんでした。",
-"App does not provide an info.xml file" => "アプリにinfo.xmlファイルが入っていません",
-"App can't be installed because of not allowed code in the App" => "アプリで許可されないコードが入っているのが原因でアプリがインストールできません",
-"App can't be installed because it is not compatible with this version of ownCloud" => "アプリは、このバージョンのownCloudと互換性がないためインストールできません。",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "非shippedアプリには許可されないtrue タグが含まれているためにアプリをインストールできません。",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "info.xml/versionのバージョンがアプリストアのバージョンと合っていないため、アプリはインストールされません",
-"Application is not enabled" => "アプリケーションは無効です",
-"Authentication error" => "認証エラー",
-"Token expired. Please reload page." => "トークンが無効になりました。ページを再読込してください。",
-"Unknown user" => "不明なユーザー",
-"%s enter the database username." => "%s のデータベースのユーザー名を入力してください。",
-"%s enter the database name." => "%s のデータベース名を入力してください。",
-"%s you may not use dots in the database name" => "%s ではデータベース名にドットを利用できないかもしれません。",
-"MS SQL username and/or password not valid: %s" => "MS SQL Serverのユーザー名/パスワードが正しくありません: %s",
-"You need to enter either an existing account or the administrator." => "既存のアカウントもしくは管理者のどちらかを入力する必要があります。",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB のユーザー名及び/またはパスワードが無効",
-"DB Error: \"%s\"" => "DBエラー: \"%s\"",
-"Offending command was: \"%s\"" => "違反コマンド: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB のユーザー '%s'@'localhost' はすでに存在します。",
-"Drop this user from MySQL/MariaDB" => "MySQL/MariaDB からこのユーザーを削除",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB のユーザー '%s'@'%%' はすでに存在します",
-"Drop this user from MySQL/MariaDB." => "MySQL/MariaDB からこのユーザーを削除。",
-"Oracle connection could not be established" => "Oracleへの接続が確立できませんでした。",
-"Oracle username and/or password not valid" => "Oracleのユーザー名もしくはパスワードは有効ではありません",
-"Offending command was: \"%s\", name: %s, password: %s" => "違反コマンド: \"%s\"、名前: %s、パスワード: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQLのユーザー名もしくはパスワードは有効ではありません",
-"Set an admin username." => "管理者のユーザー名を設定",
-"Set an admin password." => "管理者のパスワードを設定。",
-"Can't create or write into the data directory %s" => "%s データディレクトリに作成、書き込みができません",
-"%s shared »%s« with you" => "%sが あなたと »%s«を共有しました",
-"Sharing %s failed, because the file does not exist" => "%s の共有に失敗しました。そのようなファイルは存在しないからです。",
-"You are not allowed to share %s" => "%s を共有することを許可されていません。",
-"Sharing %s failed, because the user %s is the item owner" => "%s の共有に失敗しました。ユーザー %s がアイテム所有者です。",
-"Sharing %s failed, because the user %s does not exist" => "%s の共有に失敗しました。ユーザー %s が存在しません。",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "%s の共有に失敗しました。ユーザー %s はどのグループにも属していません。%s は、??のメンバーです。",
-"Sharing %s failed, because this item is already shared with %s" => "%s の共有に失敗しました。このアイテムは既に %s で共有されています。",
-"Sharing %s failed, because the group %s does not exist" => "%s の共有に失敗しました。グループ %s は存在しません。",
-"Sharing %s failed, because %s is not a member of the group %s" => "%s の共有に失敗しました。%s は、グループ %s のメンバーではありません。",
-"You need to provide a password to create a public link, only protected links are allowed" => "公開用リンクの作成にはパスワードの設定が必要です",
-"Sharing %s failed, because sharing with links is not allowed" => "%s の共有に失敗しました。リンクでの共有は許可されていません。",
-"Share type %s is not valid for %s" => "%s の共有方法は、%s には適用できません。",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "%s の権限設定に失敗しました。%s に許可されている権限を越えています。",
-"Setting permissions for %s failed, because the item was not found" => "%s の権限設定に失敗しました。アイテムが存在しません。",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "有効期限を設定できません。共有開始から %s 以降に有効期限を設定することはできません。",
-"Cannot set expiration date. Expiration date is in the past" => "有効期限を設定できません。有効期限が過去を示しています。",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "%s のバックエンドの共有には、OCP\\Share_Backend インターフェースを実装しなければなりません。",
-"Sharing backend %s not found" => "共有バックエンド %s が見つかりません",
-"Sharing backend for %s not found" => "%s のための共有バックエンドが見つかりません",
-"Sharing %s failed, because the user %s is the original sharer" => "%s の共有に失敗しました。ユーザー %s が元々の共有者であるからです。",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "%s の共有に失敗しました。%s に付与されている許可を超えているからです。",
-"Sharing %s failed, because resharing is not allowed" => "%s の共有に失敗しました。再共有が許されていないからです。",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "%s の共有に失敗しました。%s のバックエンド共有に必要なソースが見つかりませんでした。",
-"Sharing %s failed, because the file could not be found in the file cache" => "%s の共有に失敗しました。ファイルキャッシュにファイルがありませんでした。",
-"Could not find category \"%s\"" => "カテゴリ \"%s\" が見つかりませんでした",
-"seconds ago" => "数秒前",
-"_%n minute ago_::_%n minutes ago_" => array("%n 分前"),
-"_%n hour ago_::_%n hours ago_" => array("%n 時間前"),
-"today" => "今日",
-"yesterday" => "1日前",
-"_%n day go_::_%n days ago_" => array("%n日前"),
-"last month" => "1ヶ月前",
-"_%n month ago_::_%n months ago_" => array("%nヶ月前"),
-"last year" => "1年前",
-"years ago" => "年前",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "ユーザー名で利用できる文字列は、次のものです: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
-"A valid username must be provided" => "有効なユーザー名を指定する必要があります",
-"A valid password must be provided" => "有効なパスワードを指定する必要があります",
-"The username is already being used" => "ユーザー名はすでに使われています",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "データベースドライバー (sqlite, mysql, postgresql) がインストールされていません。",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "多くの場合、パーミッションは %s Webサーバーにルートディレクトリ %s への書き込み権限を与えることで解決できます。",
-"Cannot write into \"config\" directory" => "\"config\" ディレクトリに書き込みができません",
-"Cannot write into \"apps\" directory" => "\"apps\" ディレクトリに書き込みができません",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "多くの場合、これは %s Webサーバーにappsディレクトリ %s への書き込み権限を与えるか、設定ファイルでアプリストアを無効化することで解決できます。",
-"Cannot create \"data\" directory (%s)" => "\"data\" ディレクトリ (%s) を作成できません",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "多くの場合、これはWebサーバーにルートディレクトリへの書き込み権限を与える ことで解決できます。",
-"Setting locale to %s failed" => "ロケールを %s に設定できませんでした",
-"Please install one of these locales on your system and restart your webserver." => "これらのロケールのうちいずれかをシステムにインストールし、Webサーバーを再起動してください。",
-"Please ask your server administrator to install the module." => "サーバー管理者にモジュールのインストールを依頼してください。",
-"PHP module %s not installed." => "PHP のモジュール %s がインストールされていません。",
-"PHP %s or higher is required." => "PHP %s 以上が必要です。",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "PHPを最新バージョンに更新するようサーバー管理者に依頼してください。現在のPHPのバージョンは、ownCloudおよびPHPコミュニティでサポートされていません。",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHPセーフモードは有効です。ownCloudを適切に動作させるには無効化する必要があります。",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHPセーフモードは推奨されておらず、ほとんど役に立たない設定のため、無効化すべきです。サーバー管理者に、php.iniもしくはWebサーバー設定で無効化するよう依頼してください。",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "マジッククォートは有効です。ownCloudを適切に動作させるには無効にする必要があります。",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "マジッククォートは推奨されておらず、ほとんど役に立たない設定のため、無効化すべきです。サーバー管理者に、php.iniもしくはWebサーバー設定で無効化するよう依頼してください。",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP モジュールはインストールされていますが、まだ一覧に表示されていますか?",
-"Please ask your server administrator to restart the web server." => "サーバー管理者にWEBサーバーを再起動するよう依頼してください。",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 が必要です",
-"Please upgrade your database version" => "新しいバージョンのデータベースにアップグレードしてください",
-"Error occurred while checking PostgreSQL version" => "PostgreSQL のバージョンチェック中にエラーが発生しました",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "PostgreSQL >= 9 がインストールされているかどうか確認してください。もしくは、ログからエラーに関する詳細な情報を確認してください。",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "ディレクトリが他のユーザーから見えないように、パーミッションを 0770 に変更してください。",
-"Data directory (%s) is readable by other users" => "データディレクトリ (%s) は他のユーザーも閲覧することができます",
-"Data directory (%s) is invalid" => "データディレクトリ (%s) は無効です",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "データディレクトリに \".ocdata\" ファイルが含まれていることを確認してください。",
-"Could not obtain lock type %d on \"%s\"." => "\"%s\" で %d タイプのロックを取得できませんでした。"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/jv.js b/lib/l10n/jv.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/jv.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/jv.json b/lib/l10n/jv.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/jv.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/jv.php b/lib/l10n/jv.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/jv.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ka_GE.js b/lib/l10n/ka_GE.js
new file mode 100644
index 00000000000..756f13f67b9
--- /dev/null
+++ b/lib/l10n/ka_GE.js
@@ -0,0 +1,39 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "დახმარება",
+ "Personal" : "პირადი",
+ "Settings" : "პარამეტრები",
+ "Users" : "მომხმარებელი",
+ "Admin" : "ადმინისტრატორი",
+ "web services under your control" : "web services under your control",
+ "Application is not enabled" : "აპლიკაცია არ არის აქტიური",
+ "Authentication error" : "ავთენტიფიკაციის შეცდომა",
+ "Token expired. Please reload page." : "Token–ს ვადა გაუვიდა. გთხოვთ განაახლოთ გვერდი.",
+ "%s enter the database username." : "%s შეიყვანეთ ბაზის იუზერნეიმი.",
+ "%s enter the database name." : "%s შეიყვანეთ ბაზის სახელი.",
+ "%s you may not use dots in the database name" : "%s არ მიუთითოთ წერტილი ბაზის სახელში",
+ "MS SQL username and/or password not valid: %s" : "MS SQL მომხმარებელი და/ან პაროლი არ არის მართებული: %s",
+ "You need to enter either an existing account or the administrator." : "თქვენ უნდა შეიყვანოთ არსებული მომხმარებელის სახელი ან ადმინისტრატორი.",
+ "DB Error: \"%s\"" : "DB შეცდომა: \"%s\"",
+ "Offending command was: \"%s\"" : "Offending ბრძანება იყო: \"%s\"",
+ "Oracle username and/or password not valid" : "Oracle იუზერნეიმი და/ან პაროლი არ არის სწორი",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Offending ბრძანება იყო: \"%s\", სახელი: %s, პაროლი: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL იუზერნეიმი და/ან პაროლი არ არის სწორი",
+ "Set an admin username." : "დააყენეთ ადმინისტრატორის სახელი.",
+ "Set an admin password." : "დააყენეთ ადმინისტრატორის პაროლი.",
+ "Could not find category \"%s\"" : "\"%s\" კატეგორიის მოძებნა ვერ მოხერხდა",
+ "seconds ago" : "წამის წინ",
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "today" : "დღეს",
+ "yesterday" : "გუშინ",
+ "_%n day go_::_%n days ago_" : [""],
+ "last month" : "გასულ თვეში",
+ "_%n month ago_::_%n months ago_" : [""],
+ "last year" : "ბოლო წელს",
+ "years ago" : "წლის წინ",
+ "A valid username must be provided" : "უნდა მიუთითოთ არსებული მომხმარებლის სახელი",
+ "A valid password must be provided" : "უნდა მიუთითოთ არსებული პაროლი"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/ka_GE.json b/lib/l10n/ka_GE.json
new file mode 100644
index 00000000000..a9e86ecb1ab
--- /dev/null
+++ b/lib/l10n/ka_GE.json
@@ -0,0 +1,37 @@
+{ "translations": {
+ "Help" : "დახმარება",
+ "Personal" : "პირადი",
+ "Settings" : "პარამეტრები",
+ "Users" : "მომხმარებელი",
+ "Admin" : "ადმინისტრატორი",
+ "web services under your control" : "web services under your control",
+ "Application is not enabled" : "აპლიკაცია არ არის აქტიური",
+ "Authentication error" : "ავთენტიფიკაციის შეცდომა",
+ "Token expired. Please reload page." : "Token–ს ვადა გაუვიდა. გთხოვთ განაახლოთ გვერდი.",
+ "%s enter the database username." : "%s შეიყვანეთ ბაზის იუზერნეიმი.",
+ "%s enter the database name." : "%s შეიყვანეთ ბაზის სახელი.",
+ "%s you may not use dots in the database name" : "%s არ მიუთითოთ წერტილი ბაზის სახელში",
+ "MS SQL username and/or password not valid: %s" : "MS SQL მომხმარებელი და/ან პაროლი არ არის მართებული: %s",
+ "You need to enter either an existing account or the administrator." : "თქვენ უნდა შეიყვანოთ არსებული მომხმარებელის სახელი ან ადმინისტრატორი.",
+ "DB Error: \"%s\"" : "DB შეცდომა: \"%s\"",
+ "Offending command was: \"%s\"" : "Offending ბრძანება იყო: \"%s\"",
+ "Oracle username and/or password not valid" : "Oracle იუზერნეიმი და/ან პაროლი არ არის სწორი",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Offending ბრძანება იყო: \"%s\", სახელი: %s, პაროლი: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL იუზერნეიმი და/ან პაროლი არ არის სწორი",
+ "Set an admin username." : "დააყენეთ ადმინისტრატორის სახელი.",
+ "Set an admin password." : "დააყენეთ ადმინისტრატორის პაროლი.",
+ "Could not find category \"%s\"" : "\"%s\" კატეგორიის მოძებნა ვერ მოხერხდა",
+ "seconds ago" : "წამის წინ",
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "today" : "დღეს",
+ "yesterday" : "გუშინ",
+ "_%n day go_::_%n days ago_" : [""],
+ "last month" : "გასულ თვეში",
+ "_%n month ago_::_%n months ago_" : [""],
+ "last year" : "ბოლო წელს",
+ "years ago" : "წლის წინ",
+ "A valid username must be provided" : "უნდა მიუთითოთ არსებული მომხმარებლის სახელი",
+ "A valid password must be provided" : "უნდა მიუთითოთ არსებული პაროლი"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/ka_GE.php b/lib/l10n/ka_GE.php
deleted file mode 100644
index c5f71357219..00000000000
--- a/lib/l10n/ka_GE.php
+++ /dev/null
@@ -1,38 +0,0 @@
- "დახმარება",
-"Personal" => "პირადი",
-"Settings" => "პარამეტრები",
-"Users" => "მომხმარებელი",
-"Admin" => "ადმინისტრატორი",
-"web services under your control" => "web services under your control",
-"Application is not enabled" => "აპლიკაცია არ არის აქტიური",
-"Authentication error" => "ავთენტიფიკაციის შეცდომა",
-"Token expired. Please reload page." => "Token–ს ვადა გაუვიდა. გთხოვთ განაახლოთ გვერდი.",
-"%s enter the database username." => "%s შეიყვანეთ ბაზის იუზერნეიმი.",
-"%s enter the database name." => "%s შეიყვანეთ ბაზის სახელი.",
-"%s you may not use dots in the database name" => "%s არ მიუთითოთ წერტილი ბაზის სახელში",
-"MS SQL username and/or password not valid: %s" => "MS SQL მომხმარებელი და/ან პაროლი არ არის მართებული: %s",
-"You need to enter either an existing account or the administrator." => "თქვენ უნდა შეიყვანოთ არსებული მომხმარებელის სახელი ან ადმინისტრატორი.",
-"DB Error: \"%s\"" => "DB შეცდომა: \"%s\"",
-"Offending command was: \"%s\"" => "Offending ბრძანება იყო: \"%s\"",
-"Oracle username and/or password not valid" => "Oracle იუზერნეიმი და/ან პაროლი არ არის სწორი",
-"Offending command was: \"%s\", name: %s, password: %s" => "Offending ბრძანება იყო: \"%s\", სახელი: %s, პაროლი: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL იუზერნეიმი და/ან პაროლი არ არის სწორი",
-"Set an admin username." => "დააყენეთ ადმინისტრატორის სახელი.",
-"Set an admin password." => "დააყენეთ ადმინისტრატორის პაროლი.",
-"Could not find category \"%s\"" => "\"%s\" კატეგორიის მოძებნა ვერ მოხერხდა",
-"seconds ago" => "წამის წინ",
-"_%n minute ago_::_%n minutes ago_" => array(""),
-"_%n hour ago_::_%n hours ago_" => array(""),
-"today" => "დღეს",
-"yesterday" => "გუშინ",
-"_%n day go_::_%n days ago_" => array(""),
-"last month" => "გასულ თვეში",
-"_%n month ago_::_%n months ago_" => array(""),
-"last year" => "ბოლო წელს",
-"years ago" => "წლის წინ",
-"A valid username must be provided" => "უნდა მიუთითოთ არსებული მომხმარებლის სახელი",
-"A valid password must be provided" => "უნდა მიუთითოთ არსებული პაროლი"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/km.js b/lib/l10n/km.js
new file mode 100644
index 00000000000..cfa1ea89ebb
--- /dev/null
+++ b/lib/l10n/km.js
@@ -0,0 +1,40 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "ជំនួយ",
+ "Personal" : "ផ្ទាល់ខ្លួន",
+ "Settings" : "ការកំណត់",
+ "Users" : "អ្នកប្រើ",
+ "Admin" : "អ្នកគ្រប់គ្រង",
+ "No app name specified" : "មិនបានបញ្ជាក់ឈ្មោះកម្មវិធី",
+ "Unknown filetype" : "មិនស្គាល់ប្រភេទឯកសារ",
+ "Invalid image" : "រូបភាពមិនត្រឹមត្រូវ",
+ "web services under your control" : "សេវាកម្មវេបក្រោមការការបញ្ជារបស់អ្នក",
+ "App directory already exists" : "មានទីតាំងផ្ទុកកម្មវិធីរួចហើយ",
+ "Can't create app folder. Please fix permissions. %s" : "មិនអាចបង្កើតថតកម្មវិធី។ សូមកែសម្រួលសិទ្ធិ។ %s",
+ "Application is not enabled" : "មិនបានបើកកម្មវិធី",
+ "Authentication error" : "កំហុសការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ",
+ "Unknown user" : "មិនស្គាល់អ្នកប្រើប្រាស់",
+ "%s enter the database username." : "%s វាយបញ្ចូលឈ្មោះអ្នកប្រើមូលដ្ឋានទិន្នន័យ។",
+ "%s enter the database name." : "%s វាយបញ្ចូលឈ្មោះមូលដ្ឋានទិន្នន័យ។",
+ "%s you may not use dots in the database name" : "%s អ្នកអាចមិនប្រើសញ្ញាចុចនៅក្នុងឈ្មោះមូលដ្ឋានទិន្នន័យ",
+ "DB Error: \"%s\"" : "កំហុស DB៖ \"%s\"",
+ "Oracle connection could not be established" : "មិនអាចបង្កើតការតភ្ជាប់ Oracle",
+ "PostgreSQL username and/or password not valid" : "ឈ្មោះអ្នកប្រើ និង/ឬ ពាក្យសម្ងាត់ PostgreSQL គឺមិនត្រូវទេ",
+ "Set an admin username." : "កំណត់ឈ្មោះអ្នកគ្រប់គ្រង។",
+ "Set an admin password." : "កំណត់ពាក្យសម្ងាត់អ្នកគ្រប់គ្រង។",
+ "Could not find category \"%s\"" : "រកមិនឃើញចំណាត់ក្រុម \"%s\"",
+ "seconds ago" : "វិនាទីមុន",
+ "_%n minute ago_::_%n minutes ago_" : ["%n នាទីមុន"],
+ "_%n hour ago_::_%n hours ago_" : ["%n ម៉ោងមុន"],
+ "today" : "ថ្ងៃនេះ",
+ "yesterday" : "ម្សិលមិញ",
+ "_%n day go_::_%n days ago_" : ["%n ថ្ងៃមុន"],
+ "last month" : "ខែមុន",
+ "_%n month ago_::_%n months ago_" : ["%n ខែមុន"],
+ "last year" : "ឆ្នាំមុន",
+ "years ago" : "ឆ្នាំមុន",
+ "A valid username must be provided" : "ត្រូវផ្ដល់ឈ្មោះអ្នកប្រើឲ្យបានត្រឹមត្រូវ",
+ "A valid password must be provided" : "ត្រូវផ្ដល់ពាក្យសម្ងាត់ឲ្យបានត្រឹមត្រូវ"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/km.json b/lib/l10n/km.json
new file mode 100644
index 00000000000..32b6173ba0d
--- /dev/null
+++ b/lib/l10n/km.json
@@ -0,0 +1,38 @@
+{ "translations": {
+ "Help" : "ជំនួយ",
+ "Personal" : "ផ្ទាល់ខ្លួន",
+ "Settings" : "ការកំណត់",
+ "Users" : "អ្នកប្រើ",
+ "Admin" : "អ្នកគ្រប់គ្រង",
+ "No app name specified" : "មិនបានបញ្ជាក់ឈ្មោះកម្មវិធី",
+ "Unknown filetype" : "មិនស្គាល់ប្រភេទឯកសារ",
+ "Invalid image" : "រូបភាពមិនត្រឹមត្រូវ",
+ "web services under your control" : "សេវាកម្មវេបក្រោមការការបញ្ជារបស់អ្នក",
+ "App directory already exists" : "មានទីតាំងផ្ទុកកម្មវិធីរួចហើយ",
+ "Can't create app folder. Please fix permissions. %s" : "មិនអាចបង្កើតថតកម្មវិធី។ សូមកែសម្រួលសិទ្ធិ។ %s",
+ "Application is not enabled" : "មិនបានបើកកម្មវិធី",
+ "Authentication error" : "កំហុសការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ",
+ "Unknown user" : "មិនស្គាល់អ្នកប្រើប្រាស់",
+ "%s enter the database username." : "%s វាយបញ្ចូលឈ្មោះអ្នកប្រើមូលដ្ឋានទិន្នន័យ។",
+ "%s enter the database name." : "%s វាយបញ្ចូលឈ្មោះមូលដ្ឋានទិន្នន័យ។",
+ "%s you may not use dots in the database name" : "%s អ្នកអាចមិនប្រើសញ្ញាចុចនៅក្នុងឈ្មោះមូលដ្ឋានទិន្នន័យ",
+ "DB Error: \"%s\"" : "កំហុស DB៖ \"%s\"",
+ "Oracle connection could not be established" : "មិនអាចបង្កើតការតភ្ជាប់ Oracle",
+ "PostgreSQL username and/or password not valid" : "ឈ្មោះអ្នកប្រើ និង/ឬ ពាក្យសម្ងាត់ PostgreSQL គឺមិនត្រូវទេ",
+ "Set an admin username." : "កំណត់ឈ្មោះអ្នកគ្រប់គ្រង។",
+ "Set an admin password." : "កំណត់ពាក្យសម្ងាត់អ្នកគ្រប់គ្រង។",
+ "Could not find category \"%s\"" : "រកមិនឃើញចំណាត់ក្រុម \"%s\"",
+ "seconds ago" : "វិនាទីមុន",
+ "_%n minute ago_::_%n minutes ago_" : ["%n នាទីមុន"],
+ "_%n hour ago_::_%n hours ago_" : ["%n ម៉ោងមុន"],
+ "today" : "ថ្ងៃនេះ",
+ "yesterday" : "ម្សិលមិញ",
+ "_%n day go_::_%n days ago_" : ["%n ថ្ងៃមុន"],
+ "last month" : "ខែមុន",
+ "_%n month ago_::_%n months ago_" : ["%n ខែមុន"],
+ "last year" : "ឆ្នាំមុន",
+ "years ago" : "ឆ្នាំមុន",
+ "A valid username must be provided" : "ត្រូវផ្ដល់ឈ្មោះអ្នកប្រើឲ្យបានត្រឹមត្រូវ",
+ "A valid password must be provided" : "ត្រូវផ្ដល់ពាក្យសម្ងាត់ឲ្យបានត្រឹមត្រូវ"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/km.php b/lib/l10n/km.php
deleted file mode 100644
index 2170b0c9313..00000000000
--- a/lib/l10n/km.php
+++ /dev/null
@@ -1,39 +0,0 @@
- "ជំនួយ",
-"Personal" => "ផ្ទាល់ខ្លួន",
-"Settings" => "ការកំណត់",
-"Users" => "អ្នកប្រើ",
-"Admin" => "អ្នកគ្រប់គ្រង",
-"No app name specified" => "មិនបានបញ្ជាក់ឈ្មោះកម្មវិធី",
-"Unknown filetype" => "មិនស្គាល់ប្រភេទឯកសារ",
-"Invalid image" => "រូបភាពមិនត្រឹមត្រូវ",
-"web services under your control" => "សេវាកម្មវេបក្រោមការការបញ្ជារបស់អ្នក",
-"App directory already exists" => "មានទីតាំងផ្ទុកកម្មវិធីរួចហើយ",
-"Can't create app folder. Please fix permissions. %s" => "មិនអាចបង្កើតថតកម្មវិធី។ សូមកែសម្រួលសិទ្ធិ។ %s",
-"Application is not enabled" => "មិនបានបើកកម្មវិធី",
-"Authentication error" => "កំហុសការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ",
-"Unknown user" => "មិនស្គាល់អ្នកប្រើប្រាស់",
-"%s enter the database username." => "%s វាយបញ្ចូលឈ្មោះអ្នកប្រើមូលដ្ឋានទិន្នន័យ។",
-"%s enter the database name." => "%s វាយបញ្ចូលឈ្មោះមូលដ្ឋានទិន្នន័យ។",
-"%s you may not use dots in the database name" => "%s អ្នកអាចមិនប្រើសញ្ញាចុចនៅក្នុងឈ្មោះមូលដ្ឋានទិន្នន័យ",
-"DB Error: \"%s\"" => "កំហុស DB៖ \"%s\"",
-"Oracle connection could not be established" => "មិនអាចបង្កើតការតភ្ជាប់ Oracle",
-"PostgreSQL username and/or password not valid" => "ឈ្មោះអ្នកប្រើ និង/ឬ ពាក្យសម្ងាត់ PostgreSQL គឺមិនត្រូវទេ",
-"Set an admin username." => "កំណត់ឈ្មោះអ្នកគ្រប់គ្រង។",
-"Set an admin password." => "កំណត់ពាក្យសម្ងាត់អ្នកគ្រប់គ្រង។",
-"Could not find category \"%s\"" => "រកមិនឃើញចំណាត់ក្រុម \"%s\"",
-"seconds ago" => "វិនាទីមុន",
-"_%n minute ago_::_%n minutes ago_" => array("%n នាទីមុន"),
-"_%n hour ago_::_%n hours ago_" => array("%n ម៉ោងមុន"),
-"today" => "ថ្ងៃនេះ",
-"yesterday" => "ម្សិលមិញ",
-"_%n day go_::_%n days ago_" => array("%n ថ្ងៃមុន"),
-"last month" => "ខែមុន",
-"_%n month ago_::_%n months ago_" => array("%n ខែមុន"),
-"last year" => "ឆ្នាំមុន",
-"years ago" => "ឆ្នាំមុន",
-"A valid username must be provided" => "ត្រូវផ្ដល់ឈ្មោះអ្នកប្រើឲ្យបានត្រឹមត្រូវ",
-"A valid password must be provided" => "ត្រូវផ្ដល់ពាក្យសម្ងាត់ឲ្យបានត្រឹមត្រូវ"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/kn.js b/lib/l10n/kn.js
new file mode 100644
index 00000000000..0f4a002019e
--- /dev/null
+++ b/lib/l10n/kn.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""]
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/kn.json b/lib/l10n/kn.json
new file mode 100644
index 00000000000..4a03cf5047e
--- /dev/null
+++ b/lib/l10n/kn.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""]
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/kn.php b/lib/l10n/kn.php
deleted file mode 100644
index e7b09649a24..00000000000
--- a/lib/l10n/kn.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array(""),
-"_%n hour ago_::_%n hours ago_" => array(""),
-"_%n day go_::_%n days ago_" => array(""),
-"_%n month ago_::_%n months ago_" => array("")
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/ko.js b/lib/l10n/ko.js
new file mode 100644
index 00000000000..22f8cb191ae
--- /dev/null
+++ b/lib/l10n/ko.js
@@ -0,0 +1,69 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "도움말",
+ "Personal" : "개인",
+ "Settings" : "설정",
+ "Users" : "사용자",
+ "Admin" : "관리자",
+ "No app name specified" : "앱 이름이 지정되지 않았습니다.",
+ "Unknown filetype" : "알 수 없는 파일 형식",
+ "Invalid image" : "잘못된 그림",
+ "web services under your control" : "내가 관리하는 웹 서비스",
+ "App directory already exists" : "앱 디렉터리가 이미 존재합니다.",
+ "Can't create app folder. Please fix permissions. %s" : "앱 폴더를 만들 수 없습니다. 권한을 수정하십시오. %s",
+ "No source specified when installing app" : "앱을 설치할 때 소스가 지정되지 않았습니다.",
+ "No href specified when installing app from http" : "http에서 앱을 설치할 때 href가 지정되지 않았습니다.",
+ "No path specified when installing app from local file" : "로컬 파일에서 앱을 설치할 때 경로가 지정되지 않았습니다.",
+ "Archives of type %s are not supported" : "%s 타입 아카이브는 지원되지 않습니다.",
+ "Failed to open archive when installing app" : "앱을 설치할 때 아카이브를 열지 못했습니다.",
+ "App does not provide an info.xml file" : "앱에서 info.xml 파일이 제공되지 않았습니다.",
+ "App can't be installed because of not allowed code in the App" : "앱에 허용되지 않는 코드가 있어서 앱을 설치할 수 없습니다.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "현재 ownCloud 버전과 호환되지 않기 때문에 앱을 설치할 수 없습니다.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "출시되지 않은 앱에 허용되지 않는 true 태그를 포함하고 있기 때문에 앱을 설치할 수 없습니다.",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "info.xml/version에 포함된 버전과 앱 스토어에 보고된 버전이 같지 않아서 앱을 설치할 수 없습니다.",
+ "Application is not enabled" : "앱이 활성화되지 않았습니다",
+ "Authentication error" : "인증 오류",
+ "Token expired. Please reload page." : "토큰이 만료되었습니다. 페이지를 새로 고치십시오.",
+ "Unknown user" : "알려지지 않은 사용자",
+ "%s enter the database username." : "%s 데이터베이스 사용자 이름을 입력해 주십시오.",
+ "%s enter the database name." : "%s 데이터베이스 이름을 입력하십시오.",
+ "%s you may not use dots in the database name" : "%s 데이터베이스 이름에는 마침표를 사용할 수 없습니다",
+ "MS SQL username and/or password not valid: %s" : "MS SQL 사용자 이름이나 암호가 잘못되었습니다: %s",
+ "You need to enter either an existing account or the administrator." : "기존 계정이나 administrator(관리자)를 입력해야 합니다.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB 사용자 명 혹은 비밀번호가 일치하지 않습니다",
+ "DB Error: \"%s\"" : "DB 오류: \"%s\"",
+ "Offending command was: \"%s\"" : "잘못된 명령: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB '%s'@'localhost' 사용자가 이미 존재합니다",
+ "Drop this user from MySQL/MariaDB" : "MySQL/MariaDB에서 이 사용자 제거하기",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB '%s'@'%%' 사용자가 이미 존재합니다",
+ "Drop this user from MySQL/MariaDB." : "MySQL/MariaDB에서 이 사용자 제거하기",
+ "Oracle connection could not be established" : "Oracle 연결을 수립할 수 없습니다.",
+ "Oracle username and/or password not valid" : "Oracle 사용자 이름이나 암호가 잘못되었습니다.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "잘못된 명령: \"%s\", 이름: %s, 암호: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL의 사용자 이름 또는 암호가 잘못되었습니다",
+ "Set an admin username." : "관리자의 사용자 이름을 설정합니다.",
+ "Set an admin password." : "관리자의 암호를 설정합니다.",
+ "%s shared »%s« with you" : "%s 님이 %s을(를) 공유하였습니다",
+ "Could not find category \"%s\"" : "분류 \"%s\"을(를) 찾을 수 없습니다.",
+ "seconds ago" : "초 전",
+ "_%n minute ago_::_%n minutes ago_" : ["%n분 전 "],
+ "_%n hour ago_::_%n hours ago_" : ["%n시간 전 "],
+ "today" : "오늘",
+ "yesterday" : "어제",
+ "_%n day go_::_%n days ago_" : ["%n일 전 "],
+ "last month" : "지난 달",
+ "_%n month ago_::_%n months ago_" : ["%n달 전 "],
+ "last year" : "작년",
+ "years ago" : "년 전",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "사용자 명에는 다음과 같은 문자만 사용이 가능합니다: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "올바른 사용자 이름을 입력해야 함",
+ "A valid password must be provided" : "올바른 암호를 입력해야 함",
+ "The username is already being used" : "이 사용자명은 현재 사용중입니다",
+ "PHP module %s not installed." : "%s PHP 모듈이 설치되지 않았습니다.",
+ "PHP %s or higher is required." : "%s 버전의 PHP 혹은 높은 버전을 필요로 합니다.",
+ "PostgreSQL >= 9 required" : "PostgreSQL 9 혹은 이상 버전을 필요로합니다",
+ "Please upgrade your database version" : "데이터베이스 버전을 업그레이드 하십시오",
+ "Error occurred while checking PostgreSQL version" : "PostgreSQL 버전을 확인하던중 오류가 발생하였습니다"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/ko.json b/lib/l10n/ko.json
new file mode 100644
index 00000000000..4743476540c
--- /dev/null
+++ b/lib/l10n/ko.json
@@ -0,0 +1,67 @@
+{ "translations": {
+ "Help" : "도움말",
+ "Personal" : "개인",
+ "Settings" : "설정",
+ "Users" : "사용자",
+ "Admin" : "관리자",
+ "No app name specified" : "앱 이름이 지정되지 않았습니다.",
+ "Unknown filetype" : "알 수 없는 파일 형식",
+ "Invalid image" : "잘못된 그림",
+ "web services under your control" : "내가 관리하는 웹 서비스",
+ "App directory already exists" : "앱 디렉터리가 이미 존재합니다.",
+ "Can't create app folder. Please fix permissions. %s" : "앱 폴더를 만들 수 없습니다. 권한을 수정하십시오. %s",
+ "No source specified when installing app" : "앱을 설치할 때 소스가 지정되지 않았습니다.",
+ "No href specified when installing app from http" : "http에서 앱을 설치할 때 href가 지정되지 않았습니다.",
+ "No path specified when installing app from local file" : "로컬 파일에서 앱을 설치할 때 경로가 지정되지 않았습니다.",
+ "Archives of type %s are not supported" : "%s 타입 아카이브는 지원되지 않습니다.",
+ "Failed to open archive when installing app" : "앱을 설치할 때 아카이브를 열지 못했습니다.",
+ "App does not provide an info.xml file" : "앱에서 info.xml 파일이 제공되지 않았습니다.",
+ "App can't be installed because of not allowed code in the App" : "앱에 허용되지 않는 코드가 있어서 앱을 설치할 수 없습니다.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "현재 ownCloud 버전과 호환되지 않기 때문에 앱을 설치할 수 없습니다.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "출시되지 않은 앱에 허용되지 않는 true 태그를 포함하고 있기 때문에 앱을 설치할 수 없습니다.",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "info.xml/version에 포함된 버전과 앱 스토어에 보고된 버전이 같지 않아서 앱을 설치할 수 없습니다.",
+ "Application is not enabled" : "앱이 활성화되지 않았습니다",
+ "Authentication error" : "인증 오류",
+ "Token expired. Please reload page." : "토큰이 만료되었습니다. 페이지를 새로 고치십시오.",
+ "Unknown user" : "알려지지 않은 사용자",
+ "%s enter the database username." : "%s 데이터베이스 사용자 이름을 입력해 주십시오.",
+ "%s enter the database name." : "%s 데이터베이스 이름을 입력하십시오.",
+ "%s you may not use dots in the database name" : "%s 데이터베이스 이름에는 마침표를 사용할 수 없습니다",
+ "MS SQL username and/or password not valid: %s" : "MS SQL 사용자 이름이나 암호가 잘못되었습니다: %s",
+ "You need to enter either an existing account or the administrator." : "기존 계정이나 administrator(관리자)를 입력해야 합니다.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB 사용자 명 혹은 비밀번호가 일치하지 않습니다",
+ "DB Error: \"%s\"" : "DB 오류: \"%s\"",
+ "Offending command was: \"%s\"" : "잘못된 명령: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB '%s'@'localhost' 사용자가 이미 존재합니다",
+ "Drop this user from MySQL/MariaDB" : "MySQL/MariaDB에서 이 사용자 제거하기",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB '%s'@'%%' 사용자가 이미 존재합니다",
+ "Drop this user from MySQL/MariaDB." : "MySQL/MariaDB에서 이 사용자 제거하기",
+ "Oracle connection could not be established" : "Oracle 연결을 수립할 수 없습니다.",
+ "Oracle username and/or password not valid" : "Oracle 사용자 이름이나 암호가 잘못되었습니다.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "잘못된 명령: \"%s\", 이름: %s, 암호: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL의 사용자 이름 또는 암호가 잘못되었습니다",
+ "Set an admin username." : "관리자의 사용자 이름을 설정합니다.",
+ "Set an admin password." : "관리자의 암호를 설정합니다.",
+ "%s shared »%s« with you" : "%s 님이 %s을(를) 공유하였습니다",
+ "Could not find category \"%s\"" : "분류 \"%s\"을(를) 찾을 수 없습니다.",
+ "seconds ago" : "초 전",
+ "_%n minute ago_::_%n minutes ago_" : ["%n분 전 "],
+ "_%n hour ago_::_%n hours ago_" : ["%n시간 전 "],
+ "today" : "오늘",
+ "yesterday" : "어제",
+ "_%n day go_::_%n days ago_" : ["%n일 전 "],
+ "last month" : "지난 달",
+ "_%n month ago_::_%n months ago_" : ["%n달 전 "],
+ "last year" : "작년",
+ "years ago" : "년 전",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "사용자 명에는 다음과 같은 문자만 사용이 가능합니다: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "올바른 사용자 이름을 입력해야 함",
+ "A valid password must be provided" : "올바른 암호를 입력해야 함",
+ "The username is already being used" : "이 사용자명은 현재 사용중입니다",
+ "PHP module %s not installed." : "%s PHP 모듈이 설치되지 않았습니다.",
+ "PHP %s or higher is required." : "%s 버전의 PHP 혹은 높은 버전을 필요로 합니다.",
+ "PostgreSQL >= 9 required" : "PostgreSQL 9 혹은 이상 버전을 필요로합니다",
+ "Please upgrade your database version" : "데이터베이스 버전을 업그레이드 하십시오",
+ "Error occurred while checking PostgreSQL version" : "PostgreSQL 버전을 확인하던중 오류가 발생하였습니다"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/ko.php b/lib/l10n/ko.php
deleted file mode 100644
index 6c45d136861..00000000000
--- a/lib/l10n/ko.php
+++ /dev/null
@@ -1,68 +0,0 @@
- "도움말",
-"Personal" => "개인",
-"Settings" => "설정",
-"Users" => "사용자",
-"Admin" => "관리자",
-"No app name specified" => "앱 이름이 지정되지 않았습니다.",
-"Unknown filetype" => "알 수 없는 파일 형식",
-"Invalid image" => "잘못된 그림",
-"web services under your control" => "내가 관리하는 웹 서비스",
-"App directory already exists" => "앱 디렉터리가 이미 존재합니다.",
-"Can't create app folder. Please fix permissions. %s" => "앱 폴더를 만들 수 없습니다. 권한을 수정하십시오. %s",
-"No source specified when installing app" => "앱을 설치할 때 소스가 지정되지 않았습니다.",
-"No href specified when installing app from http" => "http에서 앱을 설치할 때 href가 지정되지 않았습니다.",
-"No path specified when installing app from local file" => "로컬 파일에서 앱을 설치할 때 경로가 지정되지 않았습니다.",
-"Archives of type %s are not supported" => "%s 타입 아카이브는 지원되지 않습니다.",
-"Failed to open archive when installing app" => "앱을 설치할 때 아카이브를 열지 못했습니다.",
-"App does not provide an info.xml file" => "앱에서 info.xml 파일이 제공되지 않았습니다.",
-"App can't be installed because of not allowed code in the App" => "앱에 허용되지 않는 코드가 있어서 앱을 설치할 수 없습니다.",
-"App can't be installed because it is not compatible with this version of ownCloud" => "현재 ownCloud 버전과 호환되지 않기 때문에 앱을 설치할 수 없습니다.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "출시되지 않은 앱에 허용되지 않는 true 태그를 포함하고 있기 때문에 앱을 설치할 수 없습니다.",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "info.xml/version에 포함된 버전과 앱 스토어에 보고된 버전이 같지 않아서 앱을 설치할 수 없습니다.",
-"Application is not enabled" => "앱이 활성화되지 않았습니다",
-"Authentication error" => "인증 오류",
-"Token expired. Please reload page." => "토큰이 만료되었습니다. 페이지를 새로 고치십시오.",
-"Unknown user" => "알려지지 않은 사용자",
-"%s enter the database username." => "%s 데이터베이스 사용자 이름을 입력해 주십시오.",
-"%s enter the database name." => "%s 데이터베이스 이름을 입력하십시오.",
-"%s you may not use dots in the database name" => "%s 데이터베이스 이름에는 마침표를 사용할 수 없습니다",
-"MS SQL username and/or password not valid: %s" => "MS SQL 사용자 이름이나 암호가 잘못되었습니다: %s",
-"You need to enter either an existing account or the administrator." => "기존 계정이나 administrator(관리자)를 입력해야 합니다.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB 사용자 명 혹은 비밀번호가 일치하지 않습니다",
-"DB Error: \"%s\"" => "DB 오류: \"%s\"",
-"Offending command was: \"%s\"" => "잘못된 명령: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB '%s'@'localhost' 사용자가 이미 존재합니다",
-"Drop this user from MySQL/MariaDB" => "MySQL/MariaDB에서 이 사용자 제거하기",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB '%s'@'%%' 사용자가 이미 존재합니다",
-"Drop this user from MySQL/MariaDB." => "MySQL/MariaDB에서 이 사용자 제거하기",
-"Oracle connection could not be established" => "Oracle 연결을 수립할 수 없습니다.",
-"Oracle username and/or password not valid" => "Oracle 사용자 이름이나 암호가 잘못되었습니다.",
-"Offending command was: \"%s\", name: %s, password: %s" => "잘못된 명령: \"%s\", 이름: %s, 암호: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL의 사용자 이름 또는 암호가 잘못되었습니다",
-"Set an admin username." => "관리자의 사용자 이름을 설정합니다.",
-"Set an admin password." => "관리자의 암호를 설정합니다.",
-"%s shared »%s« with you" => "%s 님이 %s을(를) 공유하였습니다",
-"Could not find category \"%s\"" => "분류 \"%s\"을(를) 찾을 수 없습니다.",
-"seconds ago" => "초 전",
-"_%n minute ago_::_%n minutes ago_" => array("%n분 전 "),
-"_%n hour ago_::_%n hours ago_" => array("%n시간 전 "),
-"today" => "오늘",
-"yesterday" => "어제",
-"_%n day go_::_%n days ago_" => array("%n일 전 "),
-"last month" => "지난 달",
-"_%n month ago_::_%n months ago_" => array("%n달 전 "),
-"last year" => "작년",
-"years ago" => "년 전",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "사용자 명에는 다음과 같은 문자만 사용이 가능합니다: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
-"A valid username must be provided" => "올바른 사용자 이름을 입력해야 함",
-"A valid password must be provided" => "올바른 암호를 입력해야 함",
-"The username is already being used" => "이 사용자명은 현재 사용중입니다",
-"PHP module %s not installed." => "%s PHP 모듈이 설치되지 않았습니다.",
-"PHP %s or higher is required." => "%s 버전의 PHP 혹은 높은 버전을 필요로 합니다.",
-"PostgreSQL >= 9 required" => "PostgreSQL 9 혹은 이상 버전을 필요로합니다",
-"Please upgrade your database version" => "데이터베이스 버전을 업그레이드 하십시오",
-"Error occurred while checking PostgreSQL version" => "PostgreSQL 버전을 확인하던중 오류가 발생하였습니다"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/ku_IQ.js b/lib/l10n/ku_IQ.js
new file mode 100644
index 00000000000..11313e28323
--- /dev/null
+++ b/lib/l10n/ku_IQ.js
@@ -0,0 +1,14 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "یارمەتی",
+ "Settings" : "دهستكاری",
+ "Users" : "بهكارهێنهر",
+ "Admin" : "بهڕێوهبهری سهرهكی",
+ "web services under your control" : "ڕاژهی وێب لهژێر چاودێریت دایه",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ku_IQ.json b/lib/l10n/ku_IQ.json
new file mode 100644
index 00000000000..6a40446ac9d
--- /dev/null
+++ b/lib/l10n/ku_IQ.json
@@ -0,0 +1,12 @@
+{ "translations": {
+ "Help" : "یارمەتی",
+ "Settings" : "دهستكاری",
+ "Users" : "بهكارهێنهر",
+ "Admin" : "بهڕێوهبهری سهرهكی",
+ "web services under your control" : "ڕاژهی وێب لهژێر چاودێریت دایه",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ku_IQ.php b/lib/l10n/ku_IQ.php
deleted file mode 100644
index c99f9dd2a12..00000000000
--- a/lib/l10n/ku_IQ.php
+++ /dev/null
@@ -1,13 +0,0 @@
- "یارمەتی",
-"Settings" => "دهستكاری",
-"Users" => "بهكارهێنهر",
-"Admin" => "بهڕێوهبهری سهرهكی",
-"web services under your control" => "ڕاژهی وێب لهژێر چاودێریت دایه",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/lb.js b/lib/l10n/lb.js
new file mode 100644
index 00000000000..4a8b8277bbc
--- /dev/null
+++ b/lib/l10n/lb.js
@@ -0,0 +1,25 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Hëllef",
+ "Personal" : "Perséinlech",
+ "Settings" : "Astellungen",
+ "Users" : "Benotzer",
+ "Admin" : "Admin",
+ "Unknown filetype" : "Onbekannten Fichier Typ",
+ "Invalid image" : "Ongülteg d'Bild",
+ "web services under your control" : "Web-Servicer ënnert denger Kontroll",
+ "Authentication error" : "Authentifikatioun's Fehler",
+ "%s shared »%s« with you" : "Den/D' %s huet »%s« mat dir gedeelt",
+ "seconds ago" : "Sekonnen hir",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n Minutten hir"],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "haut",
+ "yesterday" : "gëschter",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "Läschte Mount",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "Läscht Joer",
+ "years ago" : "Joren hier"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/lb.json b/lib/l10n/lb.json
new file mode 100644
index 00000000000..e205f5e2fc3
--- /dev/null
+++ b/lib/l10n/lb.json
@@ -0,0 +1,23 @@
+{ "translations": {
+ "Help" : "Hëllef",
+ "Personal" : "Perséinlech",
+ "Settings" : "Astellungen",
+ "Users" : "Benotzer",
+ "Admin" : "Admin",
+ "Unknown filetype" : "Onbekannten Fichier Typ",
+ "Invalid image" : "Ongülteg d'Bild",
+ "web services under your control" : "Web-Servicer ënnert denger Kontroll",
+ "Authentication error" : "Authentifikatioun's Fehler",
+ "%s shared »%s« with you" : "Den/D' %s huet »%s« mat dir gedeelt",
+ "seconds ago" : "Sekonnen hir",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n Minutten hir"],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "haut",
+ "yesterday" : "gëschter",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "Läschte Mount",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "Läscht Joer",
+ "years ago" : "Joren hier"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/lb.php b/lib/l10n/lb.php
deleted file mode 100644
index 6107d79a0d3..00000000000
--- a/lib/l10n/lb.php
+++ /dev/null
@@ -1,24 +0,0 @@
- "Hëllef",
-"Personal" => "Perséinlech",
-"Settings" => "Astellungen",
-"Users" => "Benotzer",
-"Admin" => "Admin",
-"Unknown filetype" => "Onbekannten Fichier Typ",
-"Invalid image" => "Ongülteg d'Bild",
-"web services under your control" => "Web-Servicer ënnert denger Kontroll",
-"Authentication error" => "Authentifikatioun's Fehler",
-"%s shared »%s« with you" => "Den/D' %s huet »%s« mat dir gedeelt",
-"seconds ago" => "Sekonnen hir",
-"_%n minute ago_::_%n minutes ago_" => array("","%n Minutten hir"),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"today" => "haut",
-"yesterday" => "gëschter",
-"_%n day go_::_%n days ago_" => array("",""),
-"last month" => "Läschte Mount",
-"_%n month ago_::_%n months ago_" => array("",""),
-"last year" => "Läscht Joer",
-"years ago" => "Joren hier"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/lt_LT.js b/lib/l10n/lt_LT.js
new file mode 100644
index 00000000000..999be472453
--- /dev/null
+++ b/lib/l10n/lt_LT.js
@@ -0,0 +1,56 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Pagalba",
+ "Personal" : "Asmeniniai",
+ "Settings" : "Nustatymai",
+ "Users" : "Vartotojai",
+ "Admin" : "Administravimas",
+ "No app name specified" : "Nenurodytas programos pavadinimas",
+ "Unknown filetype" : "Nežinomas failo tipas",
+ "Invalid image" : "Netinkamas paveikslėlis",
+ "web services under your control" : "jūsų valdomos web paslaugos",
+ "App directory already exists" : "Programos aplankas jau egzistuoja",
+ "Can't create app folder. Please fix permissions. %s" : "Nepavyksta sukurti aplanko. Prašome pataisyti leidimus. %s",
+ "No source specified when installing app" : "Nenurodytas šaltinis diegiant programą",
+ "No href specified when installing app from http" : "Nenurodytas href diegiant programą iš http",
+ "No path specified when installing app from local file" : "Nenurodytas kelias diegiant programą iš vietinio failo",
+ "Archives of type %s are not supported" : "%s tipo archyvai nepalaikomi",
+ "Failed to open archive when installing app" : "Nepavyko atverti archyvo diegiant programą",
+ "App does not provide an info.xml file" : "Programa nepateikia info.xml failo",
+ "App can't be installed because of not allowed code in the App" : "Programa negali būti įdiegta, nes turi neleistiną kodą",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Programa negali būti įdiegta, nes yra nesuderinama su šia ownCloud versija",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Programa negali būti įdiegta, nes turi true žymę, kuri yra neleistina ne kartu platinamoms programoms",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Programa negali būti įdiegta, nes versija pateikta info.xml/version nesutampa su versija deklaruota programų saugykloje",
+ "Application is not enabled" : "Programa neįjungta",
+ "Authentication error" : "Autentikacijos klaida",
+ "Token expired. Please reload page." : "Sesija baigėsi. Prašome perkrauti puslapį.",
+ "%s enter the database username." : "%s įrašykite duombazės naudotojo vardą.",
+ "%s enter the database name." : "%s įrašykite duombazės pavadinimą.",
+ "%s you may not use dots in the database name" : "%s negalite naudoti taškų duombazės pavadinime",
+ "MS SQL username and/or password not valid: %s" : "MS SQL naudotojo vardas ir/arba slaptažodis netinka: %s",
+ "You need to enter either an existing account or the administrator." : "Turite prisijungti su egzistuojančia paskyra arba su administratoriumi.",
+ "DB Error: \"%s\"" : "DB klaida: \"%s\"",
+ "Offending command was: \"%s\"" : "Vykdyta komanda buvo: \"%s\"",
+ "Oracle connection could not be established" : "Nepavyko sukurti Oracle ryšio",
+ "Oracle username and/or password not valid" : "Neteisingas Oracle naudotojo vardas ir/arba slaptažodis",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Vykdyta komanda buvo: \"%s\", name: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "Neteisingas PostgreSQL naudotojo vardas ir/arba slaptažodis",
+ "Set an admin username." : "Nustatyti administratoriaus naudotojo vardą.",
+ "Set an admin password." : "Nustatyti administratoriaus slaptažodį.",
+ "%s shared »%s« with you" : "%s pasidalino »%s« su tavimi",
+ "Could not find category \"%s\"" : "Nepavyko rasti kategorijos „%s“",
+ "seconds ago" : "prieš sekundę",
+ "_%n minute ago_::_%n minutes ago_" : ["prieš %n min.","Prieš % minutes","Prieš %n minučių"],
+ "_%n hour ago_::_%n hours ago_" : ["Prieš %n valandą","Prieš %n valandas","Prieš %n valandų"],
+ "today" : "šiandien",
+ "yesterday" : "vakar",
+ "_%n day go_::_%n days ago_" : ["Prieš %n dieną","Prieš %n dienas","Prieš %n dienų"],
+ "last month" : "praeitą mėnesį",
+ "_%n month ago_::_%n months ago_" : ["Prieš %n mėnesį","Prieš %n mėnesius","Prieš %n mėnesių"],
+ "last year" : "praeitais metais",
+ "years ago" : "prieš metus",
+ "A valid username must be provided" : "Vartotojo vardas turi būti tinkamas",
+ "A valid password must be provided" : "Slaptažodis turi būti tinkamas"
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/lib/l10n/lt_LT.json b/lib/l10n/lt_LT.json
new file mode 100644
index 00000000000..fb4908440fb
--- /dev/null
+++ b/lib/l10n/lt_LT.json
@@ -0,0 +1,54 @@
+{ "translations": {
+ "Help" : "Pagalba",
+ "Personal" : "Asmeniniai",
+ "Settings" : "Nustatymai",
+ "Users" : "Vartotojai",
+ "Admin" : "Administravimas",
+ "No app name specified" : "Nenurodytas programos pavadinimas",
+ "Unknown filetype" : "Nežinomas failo tipas",
+ "Invalid image" : "Netinkamas paveikslėlis",
+ "web services under your control" : "jūsų valdomos web paslaugos",
+ "App directory already exists" : "Programos aplankas jau egzistuoja",
+ "Can't create app folder. Please fix permissions. %s" : "Nepavyksta sukurti aplanko. Prašome pataisyti leidimus. %s",
+ "No source specified when installing app" : "Nenurodytas šaltinis diegiant programą",
+ "No href specified when installing app from http" : "Nenurodytas href diegiant programą iš http",
+ "No path specified when installing app from local file" : "Nenurodytas kelias diegiant programą iš vietinio failo",
+ "Archives of type %s are not supported" : "%s tipo archyvai nepalaikomi",
+ "Failed to open archive when installing app" : "Nepavyko atverti archyvo diegiant programą",
+ "App does not provide an info.xml file" : "Programa nepateikia info.xml failo",
+ "App can't be installed because of not allowed code in the App" : "Programa negali būti įdiegta, nes turi neleistiną kodą",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Programa negali būti įdiegta, nes yra nesuderinama su šia ownCloud versija",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Programa negali būti įdiegta, nes turi true žymę, kuri yra neleistina ne kartu platinamoms programoms",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Programa negali būti įdiegta, nes versija pateikta info.xml/version nesutampa su versija deklaruota programų saugykloje",
+ "Application is not enabled" : "Programa neįjungta",
+ "Authentication error" : "Autentikacijos klaida",
+ "Token expired. Please reload page." : "Sesija baigėsi. Prašome perkrauti puslapį.",
+ "%s enter the database username." : "%s įrašykite duombazės naudotojo vardą.",
+ "%s enter the database name." : "%s įrašykite duombazės pavadinimą.",
+ "%s you may not use dots in the database name" : "%s negalite naudoti taškų duombazės pavadinime",
+ "MS SQL username and/or password not valid: %s" : "MS SQL naudotojo vardas ir/arba slaptažodis netinka: %s",
+ "You need to enter either an existing account or the administrator." : "Turite prisijungti su egzistuojančia paskyra arba su administratoriumi.",
+ "DB Error: \"%s\"" : "DB klaida: \"%s\"",
+ "Offending command was: \"%s\"" : "Vykdyta komanda buvo: \"%s\"",
+ "Oracle connection could not be established" : "Nepavyko sukurti Oracle ryšio",
+ "Oracle username and/or password not valid" : "Neteisingas Oracle naudotojo vardas ir/arba slaptažodis",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Vykdyta komanda buvo: \"%s\", name: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "Neteisingas PostgreSQL naudotojo vardas ir/arba slaptažodis",
+ "Set an admin username." : "Nustatyti administratoriaus naudotojo vardą.",
+ "Set an admin password." : "Nustatyti administratoriaus slaptažodį.",
+ "%s shared »%s« with you" : "%s pasidalino »%s« su tavimi",
+ "Could not find category \"%s\"" : "Nepavyko rasti kategorijos „%s“",
+ "seconds ago" : "prieš sekundę",
+ "_%n minute ago_::_%n minutes ago_" : ["prieš %n min.","Prieš % minutes","Prieš %n minučių"],
+ "_%n hour ago_::_%n hours ago_" : ["Prieš %n valandą","Prieš %n valandas","Prieš %n valandų"],
+ "today" : "šiandien",
+ "yesterday" : "vakar",
+ "_%n day go_::_%n days ago_" : ["Prieš %n dieną","Prieš %n dienas","Prieš %n dienų"],
+ "last month" : "praeitą mėnesį",
+ "_%n month ago_::_%n months ago_" : ["Prieš %n mėnesį","Prieš %n mėnesius","Prieš %n mėnesių"],
+ "last year" : "praeitais metais",
+ "years ago" : "prieš metus",
+ "A valid username must be provided" : "Vartotojo vardas turi būti tinkamas",
+ "A valid password must be provided" : "Slaptažodis turi būti tinkamas"
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+}
\ No newline at end of file
diff --git a/lib/l10n/lt_LT.php b/lib/l10n/lt_LT.php
deleted file mode 100644
index 61aed21ec5e..00000000000
--- a/lib/l10n/lt_LT.php
+++ /dev/null
@@ -1,55 +0,0 @@
- "Pagalba",
-"Personal" => "Asmeniniai",
-"Settings" => "Nustatymai",
-"Users" => "Vartotojai",
-"Admin" => "Administravimas",
-"No app name specified" => "Nenurodytas programos pavadinimas",
-"Unknown filetype" => "Nežinomas failo tipas",
-"Invalid image" => "Netinkamas paveikslėlis",
-"web services under your control" => "jūsų valdomos web paslaugos",
-"App directory already exists" => "Programos aplankas jau egzistuoja",
-"Can't create app folder. Please fix permissions. %s" => "Nepavyksta sukurti aplanko. Prašome pataisyti leidimus. %s",
-"No source specified when installing app" => "Nenurodytas šaltinis diegiant programą",
-"No href specified when installing app from http" => "Nenurodytas href diegiant programą iš http",
-"No path specified when installing app from local file" => "Nenurodytas kelias diegiant programą iš vietinio failo",
-"Archives of type %s are not supported" => "%s tipo archyvai nepalaikomi",
-"Failed to open archive when installing app" => "Nepavyko atverti archyvo diegiant programą",
-"App does not provide an info.xml file" => "Programa nepateikia info.xml failo",
-"App can't be installed because of not allowed code in the App" => "Programa negali būti įdiegta, nes turi neleistiną kodą",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Programa negali būti įdiegta, nes yra nesuderinama su šia ownCloud versija",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Programa negali būti įdiegta, nes turi true žymę, kuri yra neleistina ne kartu platinamoms programoms",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Programa negali būti įdiegta, nes versija pateikta info.xml/version nesutampa su versija deklaruota programų saugykloje",
-"Application is not enabled" => "Programa neįjungta",
-"Authentication error" => "Autentikacijos klaida",
-"Token expired. Please reload page." => "Sesija baigėsi. Prašome perkrauti puslapį.",
-"%s enter the database username." => "%s įrašykite duombazės naudotojo vardą.",
-"%s enter the database name." => "%s įrašykite duombazės pavadinimą.",
-"%s you may not use dots in the database name" => "%s negalite naudoti taškų duombazės pavadinime",
-"MS SQL username and/or password not valid: %s" => "MS SQL naudotojo vardas ir/arba slaptažodis netinka: %s",
-"You need to enter either an existing account or the administrator." => "Turite prisijungti su egzistuojančia paskyra arba su administratoriumi.",
-"DB Error: \"%s\"" => "DB klaida: \"%s\"",
-"Offending command was: \"%s\"" => "Vykdyta komanda buvo: \"%s\"",
-"Oracle connection could not be established" => "Nepavyko sukurti Oracle ryšio",
-"Oracle username and/or password not valid" => "Neteisingas Oracle naudotojo vardas ir/arba slaptažodis",
-"Offending command was: \"%s\", name: %s, password: %s" => "Vykdyta komanda buvo: \"%s\", name: %s, password: %s",
-"PostgreSQL username and/or password not valid" => "Neteisingas PostgreSQL naudotojo vardas ir/arba slaptažodis",
-"Set an admin username." => "Nustatyti administratoriaus naudotojo vardą.",
-"Set an admin password." => "Nustatyti administratoriaus slaptažodį.",
-"%s shared »%s« with you" => "%s pasidalino »%s« su tavimi",
-"Could not find category \"%s\"" => "Nepavyko rasti kategorijos „%s“",
-"seconds ago" => "prieš sekundę",
-"_%n minute ago_::_%n minutes ago_" => array("prieš %n min.","Prieš % minutes","Prieš %n minučių"),
-"_%n hour ago_::_%n hours ago_" => array("Prieš %n valandą","Prieš %n valandas","Prieš %n valandų"),
-"today" => "šiandien",
-"yesterday" => "vakar",
-"_%n day go_::_%n days ago_" => array("Prieš %n dieną","Prieš %n dienas","Prieš %n dienų"),
-"last month" => "praeitą mėnesį",
-"_%n month ago_::_%n months ago_" => array("Prieš %n mėnesį","Prieš %n mėnesius","Prieš %n mėnesių"),
-"last year" => "praeitais metais",
-"years ago" => "prieš metus",
-"A valid username must be provided" => "Vartotojo vardas turi būti tinkamas",
-"A valid password must be provided" => "Slaptažodis turi būti tinkamas"
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/lib/l10n/lv.js b/lib/l10n/lv.js
new file mode 100644
index 00000000000..666d2e9d5f6
--- /dev/null
+++ b/lib/l10n/lv.js
@@ -0,0 +1,42 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Palīdzība",
+ "Personal" : "Personīgi",
+ "Settings" : "Iestatījumi",
+ "Users" : "Lietotāji",
+ "Admin" : "Administratori",
+ "web services under your control" : "tīmekļa servisi tavā varā",
+ "Application is not enabled" : "Lietotne nav aktivēta",
+ "Authentication error" : "Autentifikācijas kļūda",
+ "Token expired. Please reload page." : "Pilnvarai ir beidzies termiņš. Lūdzu, pārlādējiet lapu.",
+ "%s enter the database username." : "%s ievadiet datubāzes lietotājvārdu.",
+ "%s enter the database name." : "%s ievadiet datubāzes nosaukumu.",
+ "%s you may not use dots in the database name" : "%s datubāžu nosaukumos nedrīkst izmantot punktus",
+ "MS SQL username and/or password not valid: %s" : "Nav derīga MySQL parole un/vai lietotājvārds — %s",
+ "You need to enter either an existing account or the administrator." : "Jums jāievada vai nu esošs vai administratora konts.",
+ "DB Error: \"%s\"" : "DB kļūda — “%s”",
+ "Offending command was: \"%s\"" : "Vainīgā komanda bija “%s”",
+ "Oracle connection could not be established" : "Nevar izveidot savienojumu ar Oracle",
+ "Oracle username and/or password not valid" : "Nav derīga Oracle parole un/vai lietotājvārds",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Vainīgā komanda bija \"%s\", vārds: %s, parole: %s",
+ "PostgreSQL username and/or password not valid" : "Nav derīga PostgreSQL parole un/vai lietotājvārds",
+ "Set an admin username." : "Iestatiet administratora lietotājvārdu.",
+ "Set an admin password." : "Iestatiet administratora paroli.",
+ "%s shared »%s« with you" : "%s kopīgots »%s« ar jums",
+ "Could not find category \"%s\"" : "Nevarēja atrast kategoriju “%s”",
+ "seconds ago" : "sekundes atpakaļ",
+ "_%n minute ago_::_%n minutes ago_" : ["","","Pirms %n minūtēm"],
+ "_%n hour ago_::_%n hours ago_" : ["","","Pirms %n stundām"],
+ "today" : "šodien",
+ "yesterday" : "vakar",
+ "_%n day go_::_%n days ago_" : ["","","Pirms %n dienām"],
+ "last month" : "pagājušajā mēnesī",
+ "_%n month ago_::_%n months ago_" : ["","","Pirms %n mēnešiem"],
+ "last year" : "gājušajā gadā",
+ "years ago" : "gadus atpakaļ",
+ "A valid username must be provided" : "Jānorāda derīgs lietotājvārds",
+ "A valid password must be provided" : "Jānorāda derīga parole",
+ "The username is already being used" : "Šāds lietotājvārds jau tiek izmantots"
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/lib/l10n/lv.json b/lib/l10n/lv.json
new file mode 100644
index 00000000000..42bcc70e12d
--- /dev/null
+++ b/lib/l10n/lv.json
@@ -0,0 +1,40 @@
+{ "translations": {
+ "Help" : "Palīdzība",
+ "Personal" : "Personīgi",
+ "Settings" : "Iestatījumi",
+ "Users" : "Lietotāji",
+ "Admin" : "Administratori",
+ "web services under your control" : "tīmekļa servisi tavā varā",
+ "Application is not enabled" : "Lietotne nav aktivēta",
+ "Authentication error" : "Autentifikācijas kļūda",
+ "Token expired. Please reload page." : "Pilnvarai ir beidzies termiņš. Lūdzu, pārlādējiet lapu.",
+ "%s enter the database username." : "%s ievadiet datubāzes lietotājvārdu.",
+ "%s enter the database name." : "%s ievadiet datubāzes nosaukumu.",
+ "%s you may not use dots in the database name" : "%s datubāžu nosaukumos nedrīkst izmantot punktus",
+ "MS SQL username and/or password not valid: %s" : "Nav derīga MySQL parole un/vai lietotājvārds — %s",
+ "You need to enter either an existing account or the administrator." : "Jums jāievada vai nu esošs vai administratora konts.",
+ "DB Error: \"%s\"" : "DB kļūda — “%s”",
+ "Offending command was: \"%s\"" : "Vainīgā komanda bija “%s”",
+ "Oracle connection could not be established" : "Nevar izveidot savienojumu ar Oracle",
+ "Oracle username and/or password not valid" : "Nav derīga Oracle parole un/vai lietotājvārds",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Vainīgā komanda bija \"%s\", vārds: %s, parole: %s",
+ "PostgreSQL username and/or password not valid" : "Nav derīga PostgreSQL parole un/vai lietotājvārds",
+ "Set an admin username." : "Iestatiet administratora lietotājvārdu.",
+ "Set an admin password." : "Iestatiet administratora paroli.",
+ "%s shared »%s« with you" : "%s kopīgots »%s« ar jums",
+ "Could not find category \"%s\"" : "Nevarēja atrast kategoriju “%s”",
+ "seconds ago" : "sekundes atpakaļ",
+ "_%n minute ago_::_%n minutes ago_" : ["","","Pirms %n minūtēm"],
+ "_%n hour ago_::_%n hours ago_" : ["","","Pirms %n stundām"],
+ "today" : "šodien",
+ "yesterday" : "vakar",
+ "_%n day go_::_%n days ago_" : ["","","Pirms %n dienām"],
+ "last month" : "pagājušajā mēnesī",
+ "_%n month ago_::_%n months ago_" : ["","","Pirms %n mēnešiem"],
+ "last year" : "gājušajā gadā",
+ "years ago" : "gadus atpakaļ",
+ "A valid username must be provided" : "Jānorāda derīgs lietotājvārds",
+ "A valid password must be provided" : "Jānorāda derīga parole",
+ "The username is already being used" : "Šāds lietotājvārds jau tiek izmantots"
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
+}
\ No newline at end of file
diff --git a/lib/l10n/lv.php b/lib/l10n/lv.php
deleted file mode 100644
index f1d0a7338f9..00000000000
--- a/lib/l10n/lv.php
+++ /dev/null
@@ -1,41 +0,0 @@
- "Palīdzība",
-"Personal" => "Personīgi",
-"Settings" => "Iestatījumi",
-"Users" => "Lietotāji",
-"Admin" => "Administratori",
-"web services under your control" => "tīmekļa servisi tavā varā",
-"Application is not enabled" => "Lietotne nav aktivēta",
-"Authentication error" => "Autentifikācijas kļūda",
-"Token expired. Please reload page." => "Pilnvarai ir beidzies termiņš. Lūdzu, pārlādējiet lapu.",
-"%s enter the database username." => "%s ievadiet datubāzes lietotājvārdu.",
-"%s enter the database name." => "%s ievadiet datubāzes nosaukumu.",
-"%s you may not use dots in the database name" => "%s datubāžu nosaukumos nedrīkst izmantot punktus",
-"MS SQL username and/or password not valid: %s" => "Nav derīga MySQL parole un/vai lietotājvārds — %s",
-"You need to enter either an existing account or the administrator." => "Jums jāievada vai nu esošs vai administratora konts.",
-"DB Error: \"%s\"" => "DB kļūda — “%s”",
-"Offending command was: \"%s\"" => "Vainīgā komanda bija “%s”",
-"Oracle connection could not be established" => "Nevar izveidot savienojumu ar Oracle",
-"Oracle username and/or password not valid" => "Nav derīga Oracle parole un/vai lietotājvārds",
-"Offending command was: \"%s\", name: %s, password: %s" => "Vainīgā komanda bija \"%s\", vārds: %s, parole: %s",
-"PostgreSQL username and/or password not valid" => "Nav derīga PostgreSQL parole un/vai lietotājvārds",
-"Set an admin username." => "Iestatiet administratora lietotājvārdu.",
-"Set an admin password." => "Iestatiet administratora paroli.",
-"%s shared »%s« with you" => "%s kopīgots »%s« ar jums",
-"Could not find category \"%s\"" => "Nevarēja atrast kategoriju “%s”",
-"seconds ago" => "sekundes atpakaļ",
-"_%n minute ago_::_%n minutes ago_" => array("","","Pirms %n minūtēm"),
-"_%n hour ago_::_%n hours ago_" => array("","","Pirms %n stundām"),
-"today" => "šodien",
-"yesterday" => "vakar",
-"_%n day go_::_%n days ago_" => array("","","Pirms %n dienām"),
-"last month" => "pagājušajā mēnesī",
-"_%n month ago_::_%n months ago_" => array("","","Pirms %n mēnešiem"),
-"last year" => "gājušajā gadā",
-"years ago" => "gadus atpakaļ",
-"A valid username must be provided" => "Jānorāda derīgs lietotājvārds",
-"A valid password must be provided" => "Jānorāda derīga parole",
-"The username is already being used" => "Šāds lietotājvārds jau tiek izmantots"
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);";
diff --git a/lib/l10n/mg.js b/lib/l10n/mg.js
new file mode 100644
index 00000000000..9ac3e05d6c6
--- /dev/null
+++ b/lib/l10n/mg.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/mg.json b/lib/l10n/mg.json
new file mode 100644
index 00000000000..82a8a99d300
--- /dev/null
+++ b/lib/l10n/mg.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/mg.php b/lib/l10n/mg.php
deleted file mode 100644
index 406ff5f5a26..00000000000
--- a/lib/l10n/mg.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/lib/l10n/mk.js b/lib/l10n/mk.js
new file mode 100644
index 00000000000..35166454dd2
--- /dev/null
+++ b/lib/l10n/mk.js
@@ -0,0 +1,42 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Помош",
+ "Personal" : "Лично",
+ "Settings" : "Подесувања",
+ "Users" : "Корисници",
+ "Admin" : "Админ",
+ "No app name specified" : "Не е специфицирано име на апликацијата",
+ "Unknown filetype" : "Непознат тип на датотека",
+ "Invalid image" : "Невалидна фотографија",
+ "web services under your control" : "веб сервиси под Ваша контрола",
+ "Application is not enabled" : "Апликацијата не е овозможена",
+ "Authentication error" : "Грешка во автентикација",
+ "Token expired. Please reload page." : "Жетонот е истечен. Ве молам превчитајте ја страницата.",
+ "Unknown user" : "Непознат корисник",
+ "%s enter the database username." : "%s внеси го корисничкото име за базата.",
+ "%s enter the database name." : "%s внеси го името на базата.",
+ "%s you may not use dots in the database name" : "%s не можеш да користиш точки во името на базата",
+ "DB Error: \"%s\"" : "DB грешка: \"%s\"",
+ "Offending command was: \"%s\"" : "Навредувшката команда беше: \"%s\"",
+ "Oracle username and/or password not valid" : "Oracle корисничкото име и/или лозинката не се валидни",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL корисничкото име и/или лозинка не се валидни",
+ "Set an admin username." : "Постави администраторско корисничко име",
+ "Set an admin password." : "Постави администраторска лозинка.",
+ "%s shared »%s« with you" : "%s споделено »%s« со вас",
+ "Could not find category \"%s\"" : "Не можам да најдам категорија „%s“",
+ "seconds ago" : "пред секунди",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "денеска",
+ "yesterday" : "вчера",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "минатиот месец",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "минатата година",
+ "years ago" : "пред години",
+ "A valid username must be provided" : "Мора да се обезбеди валидно корисничко име ",
+ "A valid password must be provided" : "Мора да се обезбеди валидна лозинка",
+ "The username is already being used" : "Корисничкото име е веќе во употреба"
+},
+"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/lib/l10n/mk.json b/lib/l10n/mk.json
new file mode 100644
index 00000000000..89e839919b9
--- /dev/null
+++ b/lib/l10n/mk.json
@@ -0,0 +1,40 @@
+{ "translations": {
+ "Help" : "Помош",
+ "Personal" : "Лично",
+ "Settings" : "Подесувања",
+ "Users" : "Корисници",
+ "Admin" : "Админ",
+ "No app name specified" : "Не е специфицирано име на апликацијата",
+ "Unknown filetype" : "Непознат тип на датотека",
+ "Invalid image" : "Невалидна фотографија",
+ "web services under your control" : "веб сервиси под Ваша контрола",
+ "Application is not enabled" : "Апликацијата не е овозможена",
+ "Authentication error" : "Грешка во автентикација",
+ "Token expired. Please reload page." : "Жетонот е истечен. Ве молам превчитајте ја страницата.",
+ "Unknown user" : "Непознат корисник",
+ "%s enter the database username." : "%s внеси го корисничкото име за базата.",
+ "%s enter the database name." : "%s внеси го името на базата.",
+ "%s you may not use dots in the database name" : "%s не можеш да користиш точки во името на базата",
+ "DB Error: \"%s\"" : "DB грешка: \"%s\"",
+ "Offending command was: \"%s\"" : "Навредувшката команда беше: \"%s\"",
+ "Oracle username and/or password not valid" : "Oracle корисничкото име и/или лозинката не се валидни",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL корисничкото име и/или лозинка не се валидни",
+ "Set an admin username." : "Постави администраторско корисничко име",
+ "Set an admin password." : "Постави администраторска лозинка.",
+ "%s shared »%s« with you" : "%s споделено »%s« со вас",
+ "Could not find category \"%s\"" : "Не можам да најдам категорија „%s“",
+ "seconds ago" : "пред секунди",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "денеска",
+ "yesterday" : "вчера",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "минатиот месец",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "минатата година",
+ "years ago" : "пред години",
+ "A valid username must be provided" : "Мора да се обезбеди валидно корисничко име ",
+ "A valid password must be provided" : "Мора да се обезбеди валидна лозинка",
+ "The username is already being used" : "Корисничкото име е веќе во употреба"
+},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
+}
\ No newline at end of file
diff --git a/lib/l10n/mk.php b/lib/l10n/mk.php
deleted file mode 100644
index 3b7b1fbce0b..00000000000
--- a/lib/l10n/mk.php
+++ /dev/null
@@ -1,41 +0,0 @@
- "Помош",
-"Personal" => "Лично",
-"Settings" => "Подесувања",
-"Users" => "Корисници",
-"Admin" => "Админ",
-"No app name specified" => "Не е специфицирано име на апликацијата",
-"Unknown filetype" => "Непознат тип на датотека",
-"Invalid image" => "Невалидна фотографија",
-"web services under your control" => "веб сервиси под Ваша контрола",
-"Application is not enabled" => "Апликацијата не е овозможена",
-"Authentication error" => "Грешка во автентикација",
-"Token expired. Please reload page." => "Жетонот е истечен. Ве молам превчитајте ја страницата.",
-"Unknown user" => "Непознат корисник",
-"%s enter the database username." => "%s внеси го корисничкото име за базата.",
-"%s enter the database name." => "%s внеси го името на базата.",
-"%s you may not use dots in the database name" => "%s не можеш да користиш точки во името на базата",
-"DB Error: \"%s\"" => "DB грешка: \"%s\"",
-"Offending command was: \"%s\"" => "Навредувшката команда беше: \"%s\"",
-"Oracle username and/or password not valid" => "Oracle корисничкото име и/или лозинката не се валидни",
-"PostgreSQL username and/or password not valid" => "PostgreSQL корисничкото име и/или лозинка не се валидни",
-"Set an admin username." => "Постави администраторско корисничко име",
-"Set an admin password." => "Постави администраторска лозинка.",
-"%s shared »%s« with you" => "%s споделено »%s« со вас",
-"Could not find category \"%s\"" => "Не можам да најдам категорија „%s“",
-"seconds ago" => "пред секунди",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"today" => "денеска",
-"yesterday" => "вчера",
-"_%n day go_::_%n days ago_" => array("",""),
-"last month" => "минатиот месец",
-"_%n month ago_::_%n months ago_" => array("",""),
-"last year" => "минатата година",
-"years ago" => "пред години",
-"A valid username must be provided" => "Мора да се обезбеди валидно корисничко име ",
-"A valid password must be provided" => "Мора да се обезбеди валидна лозинка",
-"The username is already being used" => "Корисничкото име е веќе во употреба"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;";
diff --git a/lib/l10n/ml.js b/lib/l10n/ml.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/ml.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ml.json b/lib/l10n/ml.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/ml.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ml.php b/lib/l10n/ml.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/ml.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ml_IN.js b/lib/l10n/ml_IN.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/ml_IN.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ml_IN.json b/lib/l10n/ml_IN.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/ml_IN.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ml_IN.php b/lib/l10n/ml_IN.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/ml_IN.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/mn.js b/lib/l10n/mn.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/mn.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/mn.json b/lib/l10n/mn.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/mn.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/mn.php b/lib/l10n/mn.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/mn.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ms_MY.js b/lib/l10n/ms_MY.js
new file mode 100644
index 00000000000..2a74f51e2f6
--- /dev/null
+++ b/lib/l10n/ms_MY.js
@@ -0,0 +1,16 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Bantuan",
+ "Personal" : "Peribadi",
+ "Settings" : "Tetapan",
+ "Users" : "Pengguna",
+ "Admin" : "Admin",
+ "web services under your control" : "Perkhidmatan web di bawah kawalan anda",
+ "Authentication error" : "Ralat pengesahan",
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""]
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/ms_MY.json b/lib/l10n/ms_MY.json
new file mode 100644
index 00000000000..5285610e70a
--- /dev/null
+++ b/lib/l10n/ms_MY.json
@@ -0,0 +1,14 @@
+{ "translations": {
+ "Help" : "Bantuan",
+ "Personal" : "Peribadi",
+ "Settings" : "Tetapan",
+ "Users" : "Pengguna",
+ "Admin" : "Admin",
+ "web services under your control" : "Perkhidmatan web di bawah kawalan anda",
+ "Authentication error" : "Ralat pengesahan",
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""]
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/ms_MY.php b/lib/l10n/ms_MY.php
deleted file mode 100644
index 710ac8b79a0..00000000000
--- a/lib/l10n/ms_MY.php
+++ /dev/null
@@ -1,15 +0,0 @@
- "Bantuan",
-"Personal" => "Peribadi",
-"Settings" => "Tetapan",
-"Users" => "Pengguna",
-"Admin" => "Admin",
-"web services under your control" => "Perkhidmatan web di bawah kawalan anda",
-"Authentication error" => "Ralat pengesahan",
-"_%n minute ago_::_%n minutes ago_" => array(""),
-"_%n hour ago_::_%n hours ago_" => array(""),
-"_%n day go_::_%n days ago_" => array(""),
-"_%n month ago_::_%n months ago_" => array("")
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/mt_MT.js b/lib/l10n/mt_MT.js
new file mode 100644
index 00000000000..9112b35ebe4
--- /dev/null
+++ b/lib/l10n/mt_MT.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","",""],
+ "_%n day go_::_%n days ago_" : ["","","",""],
+ "_%n month ago_::_%n months ago_" : ["","","",""]
+},
+"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);");
diff --git a/lib/l10n/mt_MT.json b/lib/l10n/mt_MT.json
new file mode 100644
index 00000000000..6b794297014
--- /dev/null
+++ b/lib/l10n/mt_MT.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["","","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","","",""],
+ "_%n day go_::_%n days ago_" : ["","","",""],
+ "_%n month ago_::_%n months ago_" : ["","","",""]
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);"
+}
\ No newline at end of file
diff --git a/lib/l10n/mt_MT.php b/lib/l10n/mt_MT.php
deleted file mode 100644
index 5a0c40c09fe..00000000000
--- a/lib/l10n/mt_MT.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("","","",""),
-"_%n hour ago_::_%n hours ago_" => array("","","",""),
-"_%n day go_::_%n days ago_" => array("","","",""),
-"_%n month ago_::_%n months ago_" => array("","","","")
-);
-$PLURAL_FORMS = "nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);";
diff --git a/lib/l10n/my_MM.js b/lib/l10n/my_MM.js
new file mode 100644
index 00000000000..c08021fdbd3
--- /dev/null
+++ b/lib/l10n/my_MM.js
@@ -0,0 +1,21 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "အကူအညီ",
+ "Users" : "သုံးစွဲသူ",
+ "Admin" : "အက်ဒမင်",
+ "web services under your control" : "သင်၏ထိန်းချုပ်မှု့အောက်တွင်ရှိသော Web services",
+ "Authentication error" : "ခွင့်ပြုချက်မအောင်မြင်",
+ "Could not find category \"%s\"" : "\"%s\"ခေါင်းစဉ်ကို ရှာမတွေ့ပါ",
+ "seconds ago" : "စက္ကန့်အနည်းငယ်က",
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "today" : "ယနေ့",
+ "yesterday" : "မနေ့က",
+ "_%n day go_::_%n days ago_" : [""],
+ "last month" : "ပြီးခဲ့သောလ",
+ "_%n month ago_::_%n months ago_" : [""],
+ "last year" : "မနှစ်က",
+ "years ago" : "နှစ် အရင်က"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/my_MM.json b/lib/l10n/my_MM.json
new file mode 100644
index 00000000000..3756c65ae0b
--- /dev/null
+++ b/lib/l10n/my_MM.json
@@ -0,0 +1,19 @@
+{ "translations": {
+ "Help" : "အကူအညီ",
+ "Users" : "သုံးစွဲသူ",
+ "Admin" : "အက်ဒမင်",
+ "web services under your control" : "သင်၏ထိန်းချုပ်မှု့အောက်တွင်ရှိသော Web services",
+ "Authentication error" : "ခွင့်ပြုချက်မအောင်မြင်",
+ "Could not find category \"%s\"" : "\"%s\"ခေါင်းစဉ်ကို ရှာမတွေ့ပါ",
+ "seconds ago" : "စက္ကန့်အနည်းငယ်က",
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "today" : "ယနေ့",
+ "yesterday" : "မနေ့က",
+ "_%n day go_::_%n days ago_" : [""],
+ "last month" : "ပြီးခဲ့သောလ",
+ "_%n month ago_::_%n months ago_" : [""],
+ "last year" : "မနှစ်က",
+ "years ago" : "နှစ် အရင်က"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/my_MM.php b/lib/l10n/my_MM.php
deleted file mode 100644
index f8733265376..00000000000
--- a/lib/l10n/my_MM.php
+++ /dev/null
@@ -1,20 +0,0 @@
- "အကူအညီ",
-"Users" => "သုံးစွဲသူ",
-"Admin" => "အက်ဒမင်",
-"web services under your control" => "သင်၏ထိန်းချုပ်မှု့အောက်တွင်ရှိသော Web services",
-"Authentication error" => "ခွင့်ပြုချက်မအောင်မြင်",
-"Could not find category \"%s\"" => "\"%s\"ခေါင်းစဉ်ကို ရှာမတွေ့ပါ",
-"seconds ago" => "စက္ကန့်အနည်းငယ်က",
-"_%n minute ago_::_%n minutes ago_" => array(""),
-"_%n hour ago_::_%n hours ago_" => array(""),
-"today" => "ယနေ့",
-"yesterday" => "မနေ့က",
-"_%n day go_::_%n days ago_" => array(""),
-"last month" => "ပြီးခဲ့သောလ",
-"_%n month ago_::_%n months ago_" => array(""),
-"last year" => "မနှစ်က",
-"years ago" => "နှစ် အရင်က"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/nb_NO.js b/lib/l10n/nb_NO.js
new file mode 100644
index 00000000000..c50537ce67d
--- /dev/null
+++ b/lib/l10n/nb_NO.js
@@ -0,0 +1,123 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Kan ikke skrive i \"config\"-mappen!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Dette kan vanligvis ordnes ved å gi web-serveren skrivetilgang til config-mappen",
+ "See %s" : "Se %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dette kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til config-mappen%s.",
+ "Sample configuration detected" : "Eksempelkonfigurasjon oppdaget",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Det ble oppdaget at eksempelkonfigurasjonen er blitt kopiert. Dette kan ødelegge installasjonen din og støttes ikke. Les dokumentasjonen før du gjør endringer i config.php",
+ "Help" : "Hjelp",
+ "Personal" : "Personlig",
+ "Settings" : "Innstillinger",
+ "Users" : "Brukere",
+ "Admin" : "Admin",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "App \\\"%s\\\" kan ikke installeres fordi den ikke er kompatibel med denne versjoen av ownCloud.",
+ "No app name specified" : "Intet app-navn spesifisert",
+ "Unknown filetype" : "Ukjent filtype",
+ "Invalid image" : "Ugyldig bilde",
+ "web services under your control" : "webtjenester som du kontrollerer",
+ "App directory already exists" : "App-mappe finnes allerede",
+ "Can't create app folder. Please fix permissions. %s" : "Kan ikke opprette app-mappe. Vennligst ordne opp i tillatelser. %s",
+ "No source specified when installing app" : "Ingen kilde spesifisert ved installering av app",
+ "No href specified when installing app from http" : "Ingen href spesifisert ved installering av app fra http",
+ "No path specified when installing app from local file" : "Ingen sti spesifisert ved installering av app fra lokal fil",
+ "Archives of type %s are not supported" : "Arkiver av type %s støttes ikke",
+ "Failed to open archive when installing app" : "Klarte ikke å åpne arkiv ved installering av app",
+ "App does not provide an info.xml file" : "App-en inneholder ikke filen info.xml",
+ "App can't be installed because of not allowed code in the App" : "App kan ikke installeres på grunn av ulovlig kode i appen.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "App kan ikke installeres fordi den ikke er kompatibel med denne versjonen av ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "App kan ikke installeres fordi den inneholder tag true som ikke er tillatt for apper som ikke leveres med systemet",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "App kan ikke installeres fordi versjonen i info.xml/version ikke er den samme som versjonen som rapporteres fra app-butikken",
+ "Application is not enabled" : "Applikasjon er ikke påslått",
+ "Authentication error" : "Autentikasjonsfeil",
+ "Token expired. Please reload page." : "Symbol utløpt. Vennligst last inn siden på nytt.",
+ "Unknown user" : "Ukjent bruker",
+ "%s enter the database username." : "%s legg inn brukernavn for databasen.",
+ "%s enter the database name." : "%s legg inn navnet på databasen.",
+ "%s you may not use dots in the database name" : "%s du kan ikke bruke punktum i databasenavnet",
+ "MS SQL username and/or password not valid: %s" : "MS SQL-brukernavn og/eller passord ikke gyldig: %s",
+ "You need to enter either an existing account or the administrator." : "Du må legge inn enten en eksisterende konto eller administratoren.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB-brukernavn og/eller -passord ikke gyldig",
+ "DB Error: \"%s\"" : "Databasefeil: \"%s\"",
+ "Offending command was: \"%s\"" : "Kommandoen som feilet: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB-bruker '%s'@'localhost' finnes allerede.",
+ "Drop this user from MySQL/MariaDB" : "Fjern denne brukeren fra MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB-bruker '%s'@'%%' finnes allerede",
+ "Drop this user from MySQL/MariaDB." : "Fjern denne brukeren fra MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Klarte ikke å etablere forbindelse til Oracle",
+ "Oracle username and/or password not valid" : "Oracle-brukernavn og/eller passord er ikke gyldig",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Kommando som feilet: \"%s\", navn: %s, passord: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL-brukernavn og/eller passord er ikke gyldig",
+ "Set an admin username." : "Sett et admin-brukernavn.",
+ "Set an admin password." : "Sett et admin-passord.",
+ "Can't create or write into the data directory %s" : "Kan ikke opprette eller skrive i datamappen %s",
+ "%s shared »%s« with you" : "%s delte »%s« med deg",
+ "Sharing %s failed, because the file does not exist" : "Deling av %s feilet, fordi filen ikke eksisterer",
+ "You are not allowed to share %s" : "Du har ikke lov til å dele %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Deling av %s feilet, fordi brukeren %s er eier av elementet",
+ "Sharing %s failed, because the user %s does not exist" : "Deling av %s feilet, fordi brukeren %s ikke finnes",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Deling av %s feilet, fordi brukeren %s ikke er medlem av noen grupper som %s er medlem av",
+ "Sharing %s failed, because this item is already shared with %s" : "Deling av %s feilet, fordi dette elementet allerede er delt med %s",
+ "Sharing %s failed, because the group %s does not exist" : "Deling av %s feilet, fordi gruppen %s ikke finnes",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Deling av %s feilet, fordi %s ikke er medlem av gruppen %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Du må oppgi et passord for å lage en offentlig lenke. Bare beskyttede lenker er tillatt",
+ "Sharing %s failed, because sharing with links is not allowed" : "Deling av %s feilet, fordi deling med lenker ikke er tillatt",
+ "Share type %s is not valid for %s" : "Delingstype %s er ikke gyldig for %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Setting av tillatelser for %s feilet, fordi tillatelsene gikk ut over tillatelsene som er gitt til %s",
+ "Setting permissions for %s failed, because the item was not found" : "Setting av tillatelser for %s feilet, fordi elementet ikke ble funnet",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Kan ikke sette utøpsdato. Delinger kan ikke utløpe senere enn %s etter at de har blitt delt",
+ "Cannot set expiration date. Expiration date is in the past" : "Kan ikke sette utløpsdato. Utløpsdato er tilbake i tid",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Delings-server %s må implementere grensesnittet OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Delings-server %s ikke funnet",
+ "Sharing backend for %s not found" : "Delings-server for %s ikke funnet",
+ "Sharing %s failed, because the user %s is the original sharer" : "Deling av %s feilet, fordi brukeren %s er den opprinnelige eieren",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Deling av %s feilet, fordi tillatelsene går utover tillatelsene som er gitt til %s",
+ "Sharing %s failed, because resharing is not allowed" : "Deling av %s feilet, fordi videre-deling ikke er tillatt",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling av %s feilet, fordi delings-serveren for %s ikke kunne finne kilden",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Deling av %s feilet, fordi filen ikke ble funnet i fil-mellomlageret",
+ "Could not find category \"%s\"" : "Kunne ikke finne kategori \"%s\"",
+ "seconds ago" : "for få sekunder siden",
+ "_%n minute ago_::_%n minutes ago_" : ["for %n minutt siden","for %n minutter siden"],
+ "_%n hour ago_::_%n hours ago_" : ["for %n time siden","for %n timer siden"],
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day go_::_%n days ago_" : ["for %n dag siden","for %n dager siden"],
+ "last month" : "forrige måned",
+ "_%n month ago_::_%n months ago_" : ["for %n måned siden","for %n måneder siden"],
+ "last year" : "forrige år",
+ "years ago" : "årevis siden",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Bare disse tegnene tillates i et brukernavn: \"a-z\", \"A-Z\", \"0-9\" og \"_.@-\"",
+ "A valid username must be provided" : "Oppgi et gyldig brukernavn",
+ "A valid password must be provided" : "Oppgi et gyldig passord",
+ "The username is already being used" : "Brukernavnet er allerede i bruk",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ingen databasedrivere (sqlite, mysql, or postgresql) installert.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Tillatelser kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til rotmappen%s.",
+ "Cannot write into \"config\" directory" : "Kan ikke skrive i \"config\"-mappen",
+ "Cannot write into \"apps\" directory" : "Kan ikke skrive i \"apps\"-mappen",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dette kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til apps-mappen%s eller ved å deaktivere app-butikken i config-filen.",
+ "Cannot create \"data\" directory (%s)" : "Kan ikke opprette \"data\"-mappen (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Dette kan vanligvis ordnes ved gi web-serveren skrivetilgang til rotmappen .",
+ "Setting locale to %s failed" : "Setting av nasjonale innstillinger til %s feilet.",
+ "Please install one of these locales on your system and restart your webserver." : "Vennligst installer en av disse nasjonale innstillingene på systemet ditt og start webserveren på nytt.",
+ "Please ask your server administrator to install the module." : "Be server-administratoren om å installere modulen.",
+ "PHP module %s not installed." : "PHP-modul %s er ikke installert.",
+ "PHP %s or higher is required." : "PHP %s eller nyere kreves.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Be server-administratoren om å oppdatere PHP til nyeste versjon. PHP-versjonen du bruker støttes ikke lenger av ownCloud og PHP-fellesskapet.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode er aktivert. ownCloud krever at det deaktiveres for å fungere korrekt.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode er en avskrevet og stort sett unyttig innstilling som bør deaktiveres. Be server-administratoren om å deaktivere det i php.ini eller i konfigurasjonen for web-serveren.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes er aktivert. ownCloud krever at det deaktiveres for å fungere korrekt.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes er en avskrevet og stort sett unyttig innstilling som bør deaktiveres. Be server-administratoren om å deaktivere det i php.ini eller i konfigurasjonen for web-serveren.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?",
+ "Please ask your server administrator to restart the web server." : "Be server-administratoren om å starte web-serveren på nytt.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 kreves",
+ "Please upgrade your database version" : "Vennligst oppgrader versjonen av databasen din",
+ "Error occurred while checking PostgreSQL version" : "Det oppstod en feil ved sjekking av PostgreSQL-versjon",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Sjekk at du har PostgreSQL >= 9 eller sjekk loggene for mer informasjon om feilen",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Endre tillatelsene til 0770 slik at mappen ikke kan listes av andre brukere.",
+ "Data directory (%s) is readable by other users" : "Data-mappen (%s) kan leses av andre brukere",
+ "Data directory (%s) is invalid" : "Data-mappe (%s) er ugyldig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Sjekk at det ligger en fil \".ocdata\" i roten av data-mappen.",
+ "Could not obtain lock type %d on \"%s\"." : "Klarte ikke å låse med type %d på \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/nb_NO.json b/lib/l10n/nb_NO.json
new file mode 100644
index 00000000000..4fe3148dc19
--- /dev/null
+++ b/lib/l10n/nb_NO.json
@@ -0,0 +1,121 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Kan ikke skrive i \"config\"-mappen!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Dette kan vanligvis ordnes ved å gi web-serveren skrivetilgang til config-mappen",
+ "See %s" : "Se %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dette kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til config-mappen%s.",
+ "Sample configuration detected" : "Eksempelkonfigurasjon oppdaget",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Det ble oppdaget at eksempelkonfigurasjonen er blitt kopiert. Dette kan ødelegge installasjonen din og støttes ikke. Les dokumentasjonen før du gjør endringer i config.php",
+ "Help" : "Hjelp",
+ "Personal" : "Personlig",
+ "Settings" : "Innstillinger",
+ "Users" : "Brukere",
+ "Admin" : "Admin",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "App \\\"%s\\\" kan ikke installeres fordi den ikke er kompatibel med denne versjoen av ownCloud.",
+ "No app name specified" : "Intet app-navn spesifisert",
+ "Unknown filetype" : "Ukjent filtype",
+ "Invalid image" : "Ugyldig bilde",
+ "web services under your control" : "webtjenester som du kontrollerer",
+ "App directory already exists" : "App-mappe finnes allerede",
+ "Can't create app folder. Please fix permissions. %s" : "Kan ikke opprette app-mappe. Vennligst ordne opp i tillatelser. %s",
+ "No source specified when installing app" : "Ingen kilde spesifisert ved installering av app",
+ "No href specified when installing app from http" : "Ingen href spesifisert ved installering av app fra http",
+ "No path specified when installing app from local file" : "Ingen sti spesifisert ved installering av app fra lokal fil",
+ "Archives of type %s are not supported" : "Arkiver av type %s støttes ikke",
+ "Failed to open archive when installing app" : "Klarte ikke å åpne arkiv ved installering av app",
+ "App does not provide an info.xml file" : "App-en inneholder ikke filen info.xml",
+ "App can't be installed because of not allowed code in the App" : "App kan ikke installeres på grunn av ulovlig kode i appen.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "App kan ikke installeres fordi den ikke er kompatibel med denne versjonen av ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "App kan ikke installeres fordi den inneholder tag true som ikke er tillatt for apper som ikke leveres med systemet",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "App kan ikke installeres fordi versjonen i info.xml/version ikke er den samme som versjonen som rapporteres fra app-butikken",
+ "Application is not enabled" : "Applikasjon er ikke påslått",
+ "Authentication error" : "Autentikasjonsfeil",
+ "Token expired. Please reload page." : "Symbol utløpt. Vennligst last inn siden på nytt.",
+ "Unknown user" : "Ukjent bruker",
+ "%s enter the database username." : "%s legg inn brukernavn for databasen.",
+ "%s enter the database name." : "%s legg inn navnet på databasen.",
+ "%s you may not use dots in the database name" : "%s du kan ikke bruke punktum i databasenavnet",
+ "MS SQL username and/or password not valid: %s" : "MS SQL-brukernavn og/eller passord ikke gyldig: %s",
+ "You need to enter either an existing account or the administrator." : "Du må legge inn enten en eksisterende konto eller administratoren.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB-brukernavn og/eller -passord ikke gyldig",
+ "DB Error: \"%s\"" : "Databasefeil: \"%s\"",
+ "Offending command was: \"%s\"" : "Kommandoen som feilet: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB-bruker '%s'@'localhost' finnes allerede.",
+ "Drop this user from MySQL/MariaDB" : "Fjern denne brukeren fra MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB-bruker '%s'@'%%' finnes allerede",
+ "Drop this user from MySQL/MariaDB." : "Fjern denne brukeren fra MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Klarte ikke å etablere forbindelse til Oracle",
+ "Oracle username and/or password not valid" : "Oracle-brukernavn og/eller passord er ikke gyldig",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Kommando som feilet: \"%s\", navn: %s, passord: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL-brukernavn og/eller passord er ikke gyldig",
+ "Set an admin username." : "Sett et admin-brukernavn.",
+ "Set an admin password." : "Sett et admin-passord.",
+ "Can't create or write into the data directory %s" : "Kan ikke opprette eller skrive i datamappen %s",
+ "%s shared »%s« with you" : "%s delte »%s« med deg",
+ "Sharing %s failed, because the file does not exist" : "Deling av %s feilet, fordi filen ikke eksisterer",
+ "You are not allowed to share %s" : "Du har ikke lov til å dele %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Deling av %s feilet, fordi brukeren %s er eier av elementet",
+ "Sharing %s failed, because the user %s does not exist" : "Deling av %s feilet, fordi brukeren %s ikke finnes",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Deling av %s feilet, fordi brukeren %s ikke er medlem av noen grupper som %s er medlem av",
+ "Sharing %s failed, because this item is already shared with %s" : "Deling av %s feilet, fordi dette elementet allerede er delt med %s",
+ "Sharing %s failed, because the group %s does not exist" : "Deling av %s feilet, fordi gruppen %s ikke finnes",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Deling av %s feilet, fordi %s ikke er medlem av gruppen %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Du må oppgi et passord for å lage en offentlig lenke. Bare beskyttede lenker er tillatt",
+ "Sharing %s failed, because sharing with links is not allowed" : "Deling av %s feilet, fordi deling med lenker ikke er tillatt",
+ "Share type %s is not valid for %s" : "Delingstype %s er ikke gyldig for %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Setting av tillatelser for %s feilet, fordi tillatelsene gikk ut over tillatelsene som er gitt til %s",
+ "Setting permissions for %s failed, because the item was not found" : "Setting av tillatelser for %s feilet, fordi elementet ikke ble funnet",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Kan ikke sette utøpsdato. Delinger kan ikke utløpe senere enn %s etter at de har blitt delt",
+ "Cannot set expiration date. Expiration date is in the past" : "Kan ikke sette utløpsdato. Utløpsdato er tilbake i tid",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Delings-server %s må implementere grensesnittet OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Delings-server %s ikke funnet",
+ "Sharing backend for %s not found" : "Delings-server for %s ikke funnet",
+ "Sharing %s failed, because the user %s is the original sharer" : "Deling av %s feilet, fordi brukeren %s er den opprinnelige eieren",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Deling av %s feilet, fordi tillatelsene går utover tillatelsene som er gitt til %s",
+ "Sharing %s failed, because resharing is not allowed" : "Deling av %s feilet, fordi videre-deling ikke er tillatt",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling av %s feilet, fordi delings-serveren for %s ikke kunne finne kilden",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Deling av %s feilet, fordi filen ikke ble funnet i fil-mellomlageret",
+ "Could not find category \"%s\"" : "Kunne ikke finne kategori \"%s\"",
+ "seconds ago" : "for få sekunder siden",
+ "_%n minute ago_::_%n minutes ago_" : ["for %n minutt siden","for %n minutter siden"],
+ "_%n hour ago_::_%n hours ago_" : ["for %n time siden","for %n timer siden"],
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day go_::_%n days ago_" : ["for %n dag siden","for %n dager siden"],
+ "last month" : "forrige måned",
+ "_%n month ago_::_%n months ago_" : ["for %n måned siden","for %n måneder siden"],
+ "last year" : "forrige år",
+ "years ago" : "årevis siden",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Bare disse tegnene tillates i et brukernavn: \"a-z\", \"A-Z\", \"0-9\" og \"_.@-\"",
+ "A valid username must be provided" : "Oppgi et gyldig brukernavn",
+ "A valid password must be provided" : "Oppgi et gyldig passord",
+ "The username is already being used" : "Brukernavnet er allerede i bruk",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ingen databasedrivere (sqlite, mysql, or postgresql) installert.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Tillatelser kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til rotmappen%s.",
+ "Cannot write into \"config\" directory" : "Kan ikke skrive i \"config\"-mappen",
+ "Cannot write into \"apps\" directory" : "Kan ikke skrive i \"apps\"-mappen",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dette kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til apps-mappen%s eller ved å deaktivere app-butikken i config-filen.",
+ "Cannot create \"data\" directory (%s)" : "Kan ikke opprette \"data\"-mappen (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Dette kan vanligvis ordnes ved gi web-serveren skrivetilgang til rotmappen .",
+ "Setting locale to %s failed" : "Setting av nasjonale innstillinger til %s feilet.",
+ "Please install one of these locales on your system and restart your webserver." : "Vennligst installer en av disse nasjonale innstillingene på systemet ditt og start webserveren på nytt.",
+ "Please ask your server administrator to install the module." : "Be server-administratoren om å installere modulen.",
+ "PHP module %s not installed." : "PHP-modul %s er ikke installert.",
+ "PHP %s or higher is required." : "PHP %s eller nyere kreves.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Be server-administratoren om å oppdatere PHP til nyeste versjon. PHP-versjonen du bruker støttes ikke lenger av ownCloud og PHP-fellesskapet.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode er aktivert. ownCloud krever at det deaktiveres for å fungere korrekt.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode er en avskrevet og stort sett unyttig innstilling som bør deaktiveres. Be server-administratoren om å deaktivere det i php.ini eller i konfigurasjonen for web-serveren.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes er aktivert. ownCloud krever at det deaktiveres for å fungere korrekt.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes er en avskrevet og stort sett unyttig innstilling som bør deaktiveres. Be server-administratoren om å deaktivere det i php.ini eller i konfigurasjonen for web-serveren.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?",
+ "Please ask your server administrator to restart the web server." : "Be server-administratoren om å starte web-serveren på nytt.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 kreves",
+ "Please upgrade your database version" : "Vennligst oppgrader versjonen av databasen din",
+ "Error occurred while checking PostgreSQL version" : "Det oppstod en feil ved sjekking av PostgreSQL-versjon",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Sjekk at du har PostgreSQL >= 9 eller sjekk loggene for mer informasjon om feilen",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Endre tillatelsene til 0770 slik at mappen ikke kan listes av andre brukere.",
+ "Data directory (%s) is readable by other users" : "Data-mappen (%s) kan leses av andre brukere",
+ "Data directory (%s) is invalid" : "Data-mappe (%s) er ugyldig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Sjekk at det ligger en fil \".ocdata\" i roten av data-mappen.",
+ "Could not obtain lock type %d on \"%s\"." : "Klarte ikke å låse med type %d på \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/nb_NO.php b/lib/l10n/nb_NO.php
deleted file mode 100644
index b093f4d1800..00000000000
--- a/lib/l10n/nb_NO.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Kan ikke skrive i \"config\"-mappen!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Dette kan vanligvis ordnes ved å gi web-serveren skrivetilgang til config-mappen",
-"See %s" => "Se %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Dette kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til config-mappen%s.",
-"Sample configuration detected" => "Eksempelkonfigurasjon oppdaget",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Det ble oppdaget at eksempelkonfigurasjonen er blitt kopiert. Dette kan ødelegge installasjonen din og støttes ikke. Les dokumentasjonen før du gjør endringer i config.php",
-"Help" => "Hjelp",
-"Personal" => "Personlig",
-"Settings" => "Innstillinger",
-"Users" => "Brukere",
-"Admin" => "Admin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "App \\\"%s\\\" kan ikke installeres fordi den ikke er kompatibel med denne versjoen av ownCloud.",
-"No app name specified" => "Intet app-navn spesifisert",
-"Unknown filetype" => "Ukjent filtype",
-"Invalid image" => "Ugyldig bilde",
-"web services under your control" => "webtjenester som du kontrollerer",
-"App directory already exists" => "App-mappe finnes allerede",
-"Can't create app folder. Please fix permissions. %s" => "Kan ikke opprette app-mappe. Vennligst ordne opp i tillatelser. %s",
-"No source specified when installing app" => "Ingen kilde spesifisert ved installering av app",
-"No href specified when installing app from http" => "Ingen href spesifisert ved installering av app fra http",
-"No path specified when installing app from local file" => "Ingen sti spesifisert ved installering av app fra lokal fil",
-"Archives of type %s are not supported" => "Arkiver av type %s støttes ikke",
-"Failed to open archive when installing app" => "Klarte ikke å åpne arkiv ved installering av app",
-"App does not provide an info.xml file" => "App-en inneholder ikke filen info.xml",
-"App can't be installed because of not allowed code in the App" => "App kan ikke installeres på grunn av ulovlig kode i appen.",
-"App can't be installed because it is not compatible with this version of ownCloud" => "App kan ikke installeres fordi den ikke er kompatibel med denne versjonen av ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "App kan ikke installeres fordi den inneholder tag true som ikke er tillatt for apper som ikke leveres med systemet",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "App kan ikke installeres fordi versjonen i info.xml/version ikke er den samme som versjonen som rapporteres fra app-butikken",
-"Application is not enabled" => "Applikasjon er ikke påslått",
-"Authentication error" => "Autentikasjonsfeil",
-"Token expired. Please reload page." => "Symbol utløpt. Vennligst last inn siden på nytt.",
-"Unknown user" => "Ukjent bruker",
-"%s enter the database username." => "%s legg inn brukernavn for databasen.",
-"%s enter the database name." => "%s legg inn navnet på databasen.",
-"%s you may not use dots in the database name" => "%s du kan ikke bruke punktum i databasenavnet",
-"MS SQL username and/or password not valid: %s" => "MS SQL-brukernavn og/eller passord ikke gyldig: %s",
-"You need to enter either an existing account or the administrator." => "Du må legge inn enten en eksisterende konto eller administratoren.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB-brukernavn og/eller -passord ikke gyldig",
-"DB Error: \"%s\"" => "Databasefeil: \"%s\"",
-"Offending command was: \"%s\"" => "Kommandoen som feilet: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB-bruker '%s'@'localhost' finnes allerede.",
-"Drop this user from MySQL/MariaDB" => "Fjern denne brukeren fra MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB-bruker '%s'@'%%' finnes allerede",
-"Drop this user from MySQL/MariaDB." => "Fjern denne brukeren fra MySQL/MariaDB.",
-"Oracle connection could not be established" => "Klarte ikke å etablere forbindelse til Oracle",
-"Oracle username and/or password not valid" => "Oracle-brukernavn og/eller passord er ikke gyldig",
-"Offending command was: \"%s\", name: %s, password: %s" => "Kommando som feilet: \"%s\", navn: %s, passord: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL-brukernavn og/eller passord er ikke gyldig",
-"Set an admin username." => "Sett et admin-brukernavn.",
-"Set an admin password." => "Sett et admin-passord.",
-"Can't create or write into the data directory %s" => "Kan ikke opprette eller skrive i datamappen %s",
-"%s shared »%s« with you" => "%s delte »%s« med deg",
-"Sharing %s failed, because the file does not exist" => "Deling av %s feilet, fordi filen ikke eksisterer",
-"You are not allowed to share %s" => "Du har ikke lov til å dele %s",
-"Sharing %s failed, because the user %s is the item owner" => "Deling av %s feilet, fordi brukeren %s er eier av elementet",
-"Sharing %s failed, because the user %s does not exist" => "Deling av %s feilet, fordi brukeren %s ikke finnes",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Deling av %s feilet, fordi brukeren %s ikke er medlem av noen grupper som %s er medlem av",
-"Sharing %s failed, because this item is already shared with %s" => "Deling av %s feilet, fordi dette elementet allerede er delt med %s",
-"Sharing %s failed, because the group %s does not exist" => "Deling av %s feilet, fordi gruppen %s ikke finnes",
-"Sharing %s failed, because %s is not a member of the group %s" => "Deling av %s feilet, fordi %s ikke er medlem av gruppen %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Du må oppgi et passord for å lage en offentlig lenke. Bare beskyttede lenker er tillatt",
-"Sharing %s failed, because sharing with links is not allowed" => "Deling av %s feilet, fordi deling med lenker ikke er tillatt",
-"Share type %s is not valid for %s" => "Delingstype %s er ikke gyldig for %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Setting av tillatelser for %s feilet, fordi tillatelsene gikk ut over tillatelsene som er gitt til %s",
-"Setting permissions for %s failed, because the item was not found" => "Setting av tillatelser for %s feilet, fordi elementet ikke ble funnet",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Kan ikke sette utøpsdato. Delinger kan ikke utløpe senere enn %s etter at de har blitt delt",
-"Cannot set expiration date. Expiration date is in the past" => "Kan ikke sette utløpsdato. Utløpsdato er tilbake i tid",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Delings-server %s må implementere grensesnittet OCP\\Share_Backend",
-"Sharing backend %s not found" => "Delings-server %s ikke funnet",
-"Sharing backend for %s not found" => "Delings-server for %s ikke funnet",
-"Sharing %s failed, because the user %s is the original sharer" => "Deling av %s feilet, fordi brukeren %s er den opprinnelige eieren",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Deling av %s feilet, fordi tillatelsene går utover tillatelsene som er gitt til %s",
-"Sharing %s failed, because resharing is not allowed" => "Deling av %s feilet, fordi videre-deling ikke er tillatt",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Deling av %s feilet, fordi delings-serveren for %s ikke kunne finne kilden",
-"Sharing %s failed, because the file could not be found in the file cache" => "Deling av %s feilet, fordi filen ikke ble funnet i fil-mellomlageret",
-"Could not find category \"%s\"" => "Kunne ikke finne kategori \"%s\"",
-"seconds ago" => "for få sekunder siden",
-"_%n minute ago_::_%n minutes ago_" => array("for %n minutt siden","for %n minutter siden"),
-"_%n hour ago_::_%n hours ago_" => array("for %n time siden","for %n timer siden"),
-"today" => "i dag",
-"yesterday" => "i går",
-"_%n day go_::_%n days ago_" => array("for %n dag siden","for %n dager siden"),
-"last month" => "forrige måned",
-"_%n month ago_::_%n months ago_" => array("for %n måned siden","for %n måneder siden"),
-"last year" => "forrige år",
-"years ago" => "årevis siden",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Bare disse tegnene tillates i et brukernavn: \"a-z\", \"A-Z\", \"0-9\" og \"_.@-\"",
-"A valid username must be provided" => "Oppgi et gyldig brukernavn",
-"A valid password must be provided" => "Oppgi et gyldig passord",
-"The username is already being used" => "Brukernavnet er allerede i bruk",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Ingen databasedrivere (sqlite, mysql, or postgresql) installert.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Tillatelser kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til rotmappen%s.",
-"Cannot write into \"config\" directory" => "Kan ikke skrive i \"config\"-mappen",
-"Cannot write into \"apps\" directory" => "Kan ikke skrive i \"apps\"-mappen",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Dette kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til apps-mappen%s eller ved å deaktivere app-butikken i config-filen.",
-"Cannot create \"data\" directory (%s)" => "Kan ikke opprette \"data\"-mappen (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Dette kan vanligvis ordnes ved gi web-serveren skrivetilgang til rotmappen .",
-"Setting locale to %s failed" => "Setting av nasjonale innstillinger til %s feilet.",
-"Please install one of these locales on your system and restart your webserver." => "Vennligst installer en av disse nasjonale innstillingene på systemet ditt og start webserveren på nytt.",
-"Please ask your server administrator to install the module." => "Be server-administratoren om å installere modulen.",
-"PHP module %s not installed." => "PHP-modul %s er ikke installert.",
-"PHP %s or higher is required." => "PHP %s eller nyere kreves.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Be server-administratoren om å oppdatere PHP til nyeste versjon. PHP-versjonen du bruker støttes ikke lenger av ownCloud og PHP-fellesskapet.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode er aktivert. ownCloud krever at det deaktiveres for å fungere korrekt.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode er en avskrevet og stort sett unyttig innstilling som bør deaktiveres. Be server-administratoren om å deaktivere det i php.ini eller i konfigurasjonen for web-serveren.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes er aktivert. ownCloud krever at det deaktiveres for å fungere korrekt.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes er en avskrevet og stort sett unyttig innstilling som bør deaktiveres. Be server-administratoren om å deaktivere det i php.ini eller i konfigurasjonen for web-serveren.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?",
-"Please ask your server administrator to restart the web server." => "Be server-administratoren om å starte web-serveren på nytt.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 kreves",
-"Please upgrade your database version" => "Vennligst oppgrader versjonen av databasen din",
-"Error occurred while checking PostgreSQL version" => "Det oppstod en feil ved sjekking av PostgreSQL-versjon",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Sjekk at du har PostgreSQL >= 9 eller sjekk loggene for mer informasjon om feilen",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Endre tillatelsene til 0770 slik at mappen ikke kan listes av andre brukere.",
-"Data directory (%s) is readable by other users" => "Data-mappen (%s) kan leses av andre brukere",
-"Data directory (%s) is invalid" => "Data-mappe (%s) er ugyldig",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Sjekk at det ligger en fil \".ocdata\" i roten av data-mappen.",
-"Could not obtain lock type %d on \"%s\"." => "Klarte ikke å låse med type %d på \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/nds.js b/lib/l10n/nds.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/nds.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/nds.json b/lib/l10n/nds.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/nds.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/nds.php b/lib/l10n/nds.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/nds.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ne.js b/lib/l10n/ne.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/ne.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ne.json b/lib/l10n/ne.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/ne.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ne.php b/lib/l10n/ne.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/ne.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js
new file mode 100644
index 00000000000..4fdff3c67ef
--- /dev/null
+++ b/lib/l10n/nl.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Kan niet schrijven naar de \"config\" directory!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Dit kan hersteld worden door de webserver schrijfrechten te geven op de de config directory",
+ "See %s" : "Zie %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dit kan hersteld worden door de webserver %sschrijfrechten te geven op de de config directory%s",
+ "Sample configuration detected" : "Voorbeeldconfiguratie gevonden",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Blijkbaar is de voorbeeldconfiguratie gekopieerd. Dit kan uw installatie beschadigen en wordt niet dan ook ondersteund. Lees de documentatie voordat u wijzigingen aan config.php doorvoert",
+ "Help" : "Help",
+ "Personal" : "Persoonlijk",
+ "Settings" : "Instellingen",
+ "Users" : "Gebruikers",
+ "Admin" : "Beheerder",
+ "Recommended" : "Aanbevolen",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "App \\\"%s\\\" kan niet worden geïnstalleerd omdat de app niet compatible is met deze versie van ownCloud.",
+ "No app name specified" : "Geen app naam opgegeven.",
+ "Unknown filetype" : "Onbekend bestandsformaat",
+ "Invalid image" : "Ongeldige afbeelding",
+ "Database Error" : "Database fout",
+ "Please contact your system administrator." : "Neem contact op met uw systeembeheerder.",
+ "web services under your control" : "Webdiensten in eigen beheer",
+ "App directory already exists" : "App directory bestaat al",
+ "Can't create app folder. Please fix permissions. %s" : "Kan de app map niet aanmaken, Herstel de permissies. %s",
+ "No source specified when installing app" : "Geen bron opgegeven bij installatie van de app",
+ "No href specified when installing app from http" : "Geen href opgegeven bij installeren van de app vanaf http",
+ "No path specified when installing app from local file" : "Geen pad opgegeven bij installeren van de app vanaf een lokaal bestand",
+ "Archives of type %s are not supported" : "Archiefbestanden van type %s niet ondersteund",
+ "Failed to open archive when installing app" : "Kon archiefbestand bij installatie van de app niet openen",
+ "App does not provide an info.xml file" : "De app heeft geen info.xml bestand",
+ "App can't be installed because of not allowed code in the App" : "De app kan niet worden geïnstalleerd wegens onjuiste code in de app",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "De app kan niet worden geïnstalleerd omdat die niet compatible is met deze versie van ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "De app kan niet worden geïnstallerd omdat het de true tag bevat die niet is toegestaan voor niet gepubliceerde apps",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "De app kan niet worden geïnstalleerd omdat de versie in info.xml/version niet dezelfde is als de versie zoals die in de app store staat vermeld",
+ "Application is not enabled" : "De applicatie is niet actief",
+ "Authentication error" : "Authenticatie fout",
+ "Token expired. Please reload page." : "Token verlopen. Herlaad de pagina.",
+ "Unknown user" : "Onbekende gebruiker",
+ "%s enter the database username." : "%s opgeven database gebruikersnaam.",
+ "%s enter the database name." : "%s opgeven databasenaam.",
+ "%s you may not use dots in the database name" : "%s er mogen geen puntjes in de databasenaam voorkomen",
+ "MS SQL username and/or password not valid: %s" : "MS SQL gebruikersnaam en/of wachtwoord niet geldig: %s",
+ "You need to enter either an existing account or the administrator." : "Geef of een bestaand account op of het beheerdersaccount.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB gebruikersnaam en/of wachtwoord ongeldig",
+ "DB Error: \"%s\"" : "DB Fout: \"%s\"",
+ "Offending command was: \"%s\"" : "Onjuiste commande was: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB gebruiker '%s'@'localhost' bestaat al.",
+ "Drop this user from MySQL/MariaDB" : "Verwijder deze gebruiker uit MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB gebruiker '%s'@'%%' bestaat al",
+ "Drop this user from MySQL/MariaDB." : "Verwijder deze gebruiker uit MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Er kon geen verbinding met Oracle worden bereikt",
+ "Oracle username and/or password not valid" : "Oracle gebruikersnaam en/of wachtwoord ongeldig",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Onjuiste commando was: \"%s\", naam: %s, wachtwoord: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL gebruikersnaam en/of wachtwoord ongeldig",
+ "Set an admin username." : "Stel de gebruikersnaam van de beheerder in.",
+ "Set an admin password." : "Stel een beheerderswachtwoord in.",
+ "Can't create or write into the data directory %s" : "Kan niets creëren of wegschrijven in datadirectory %s",
+ "%s shared »%s« with you" : "%s deelde »%s« met u",
+ "Sharing %s failed, because the file does not exist" : "Delen van %s is mislukt, omdat het bestand niet bestaat",
+ "You are not allowed to share %s" : "U bent niet bevoegd om %s te delen",
+ "Sharing %s failed, because the user %s is the item owner" : "Delen van %s is mislukt, omdat de gebruiker %s de eigenaar is",
+ "Sharing %s failed, because the user %s does not exist" : "Delen van %s is mislukt, omdat gebruiker %s niet bestaat",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Delen van %s is mislukt, omdat gebruiker %s geen lid is van een groep waar %s lid van is",
+ "Sharing %s failed, because this item is already shared with %s" : "Delen van %s is mislukt, omdat het object al wordt gedeeld met %s",
+ "Sharing %s failed, because the group %s does not exist" : "Delen van %s is mislukt, omdat groep %s niet bestaat",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Delen van %s is mislukt, omdat %s geen lid is van groep %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "U moet een wachtwoord verstrekken om een openbare koppeling te maken, alleen beschermde links zijn toegestaan",
+ "Sharing %s failed, because sharing with links is not allowed" : "Delen van %s is mislukt, omdat het delen met links niet is toegestaan",
+ "Share type %s is not valid for %s" : "Delen van type %s is niet geldig voor %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Instellen van de permissies voor %s is mislukt, omdat de permissies hoger zijn dan de aan %s toegekende permissies",
+ "Setting permissions for %s failed, because the item was not found" : "Instellen van de permissies voor %s is mislukt, omdat het object niet is gevonden",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Kon vervaldatum niet instellen. Shares kunnen niet langer dan %s vervallen na het moment van delen",
+ "Cannot set expiration date. Expiration date is in the past" : "Kon vervaldatum niet instellen. De vervaldatum ligt in het verleden",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Het share-backend %s moet de OCP\\Share_Backend interface implementeren",
+ "Sharing backend %s not found" : "Het share-backend %s is niet gevonden",
+ "Sharing backend for %s not found" : "Het share-backend voor %s is niet gevonden",
+ "Sharing %s failed, because the user %s is the original sharer" : "Delen van %s is mislukt, omdat gebruiker %s de originele deler is",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Delen van %s is mislukt, omdat de rechten de aan %s toegekende autorisaties overschrijden",
+ "Sharing %s failed, because resharing is not allowed" : "Delen van %s is mislukt, omdat her-delen niet is toegestaan",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Delen van %s is mislukt, omdat de share-backend voor %s de bron niet kon vinden",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Delen van %s is mislukt, omdat het bestand niet in de bestandscache kon worden gevonden",
+ "Could not find category \"%s\"" : "Kon categorie \"%s\" niet vinden",
+ "seconds ago" : "seconden geleden",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuut geleden","%n minuten geleden"],
+ "_%n hour ago_::_%n hours ago_" : ["%n uur geleden","%n uur geleden"],
+ "today" : "vandaag",
+ "yesterday" : "gisteren",
+ "_%n day go_::_%n days ago_" : ["%n dag terug","%n dagen geleden"],
+ "last month" : "vorige maand",
+ "_%n month ago_::_%n months ago_" : ["%n maand geleden","%n maanden geleden"],
+ "last year" : "vorig jaar",
+ "years ago" : "jaar geleden",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Alleen de volgende tekens zijn toegestaan in een gebruikersnaam: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Er moet een geldige gebruikersnaam worden opgegeven",
+ "A valid password must be provided" : "Er moet een geldig wachtwoord worden opgegeven",
+ "The username is already being used" : "De gebruikersnaam bestaat al",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Geen database drivers (sqlite, mysql of postgres) geïnstalleerd.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Dit kan hersteld worden door de webserver schrijfrechten te %s geven op de hoofddirectory %s.",
+ "Cannot write into \"config\" directory" : "Kan niet schrijven naar de \"config\" directory",
+ "Cannot write into \"apps\" directory" : "Kan niet schrijven naar de \"apps\" directory",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dit kan hersteld worden door de webserver schrijfrechten te %s geven op de appsdirectory %s of door de appstore te deactiveren in het configbestand.",
+ "Cannot create \"data\" directory (%s)" : "Kan de \"data\" directory (%s) niet aanmaken",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Dit kan worden hersteld door de webserver schrijfrechten te geven tot de hoofddirectory .",
+ "Setting locale to %s failed" : "Instellen taal op %s mislukte",
+ "Please install one of these locales on your system and restart your webserver." : "Installeer één van de talen op uw systeem en herstart uw webserver.",
+ "Please ask your server administrator to install the module." : "Vraag uw beheerder om de module te installeren.",
+ "PHP module %s not installed." : "PHP module %s niet geïnstalleerd.",
+ "PHP %s or higher is required." : "PHP %s of hoger vereist.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vraag uw beheerder om PHP bij te werken tot de laatste versie. Uw PHP versie wordt niet langer ondersteund door ownCloud en de PHP community.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode is ingeschakeld. Voor een goede werking van ownCloud moet die modus zijn uitgeschakeld.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode is niet langer zinvol en zou eigenlijk gedeactiveerd moeten worden. Vraag uw beheerder om Safe Mode in php.ini of in de webserver configuratie te deactiveren.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes is geactiveerd. Voor een goede werking van ownCloud moet dit zijn uitgeschakeld.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes is niet langer zinvol en zou eigenlijk gedeactiveerd moeten worden. Vraag uw beheerder om Safe Mode in php.ini of in de webserver configuratie te deactiveren.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP modules zijn geïnstalleerd, maar worden ze nog steeds als ontbrekend aangegeven?",
+ "Please ask your server administrator to restart the web server." : "Vraag uw beheerder de webserver opnieuw op te starten.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 vereist",
+ "Please upgrade your database version" : "Werk uw database versie bij",
+ "Error occurred while checking PostgreSQL version" : "Een fout trad op bij checken PostgreSQL versie",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Verifieer dat u PostgreSQL >=9 draait of check de logs voor meer informatie over deze fout",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Wijzig de permissies in 0770 zodat de directory niet door anderen bekeken kan worden.",
+ "Data directory (%s) is readable by other users" : "De datadirectory (%s) is leesbaar voor andere gebruikers",
+ "Data directory (%s) is invalid" : "Data directory (%s) is ongeldig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifieer dat de data directory een bestand \".ocdata\" in de hoofdmap heeft.",
+ "Could not obtain lock type %d on \"%s\"." : "Kon geen lock type %d krijgen op \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json
new file mode 100644
index 00000000000..be980d330d6
--- /dev/null
+++ b/lib/l10n/nl.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Kan niet schrijven naar de \"config\" directory!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Dit kan hersteld worden door de webserver schrijfrechten te geven op de de config directory",
+ "See %s" : "Zie %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dit kan hersteld worden door de webserver %sschrijfrechten te geven op de de config directory%s",
+ "Sample configuration detected" : "Voorbeeldconfiguratie gevonden",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Blijkbaar is de voorbeeldconfiguratie gekopieerd. Dit kan uw installatie beschadigen en wordt niet dan ook ondersteund. Lees de documentatie voordat u wijzigingen aan config.php doorvoert",
+ "Help" : "Help",
+ "Personal" : "Persoonlijk",
+ "Settings" : "Instellingen",
+ "Users" : "Gebruikers",
+ "Admin" : "Beheerder",
+ "Recommended" : "Aanbevolen",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "App \\\"%s\\\" kan niet worden geïnstalleerd omdat de app niet compatible is met deze versie van ownCloud.",
+ "No app name specified" : "Geen app naam opgegeven.",
+ "Unknown filetype" : "Onbekend bestandsformaat",
+ "Invalid image" : "Ongeldige afbeelding",
+ "Database Error" : "Database fout",
+ "Please contact your system administrator." : "Neem contact op met uw systeembeheerder.",
+ "web services under your control" : "Webdiensten in eigen beheer",
+ "App directory already exists" : "App directory bestaat al",
+ "Can't create app folder. Please fix permissions. %s" : "Kan de app map niet aanmaken, Herstel de permissies. %s",
+ "No source specified when installing app" : "Geen bron opgegeven bij installatie van de app",
+ "No href specified when installing app from http" : "Geen href opgegeven bij installeren van de app vanaf http",
+ "No path specified when installing app from local file" : "Geen pad opgegeven bij installeren van de app vanaf een lokaal bestand",
+ "Archives of type %s are not supported" : "Archiefbestanden van type %s niet ondersteund",
+ "Failed to open archive when installing app" : "Kon archiefbestand bij installatie van de app niet openen",
+ "App does not provide an info.xml file" : "De app heeft geen info.xml bestand",
+ "App can't be installed because of not allowed code in the App" : "De app kan niet worden geïnstalleerd wegens onjuiste code in de app",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "De app kan niet worden geïnstalleerd omdat die niet compatible is met deze versie van ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "De app kan niet worden geïnstallerd omdat het de true tag bevat die niet is toegestaan voor niet gepubliceerde apps",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "De app kan niet worden geïnstalleerd omdat de versie in info.xml/version niet dezelfde is als de versie zoals die in de app store staat vermeld",
+ "Application is not enabled" : "De applicatie is niet actief",
+ "Authentication error" : "Authenticatie fout",
+ "Token expired. Please reload page." : "Token verlopen. Herlaad de pagina.",
+ "Unknown user" : "Onbekende gebruiker",
+ "%s enter the database username." : "%s opgeven database gebruikersnaam.",
+ "%s enter the database name." : "%s opgeven databasenaam.",
+ "%s you may not use dots in the database name" : "%s er mogen geen puntjes in de databasenaam voorkomen",
+ "MS SQL username and/or password not valid: %s" : "MS SQL gebruikersnaam en/of wachtwoord niet geldig: %s",
+ "You need to enter either an existing account or the administrator." : "Geef of een bestaand account op of het beheerdersaccount.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB gebruikersnaam en/of wachtwoord ongeldig",
+ "DB Error: \"%s\"" : "DB Fout: \"%s\"",
+ "Offending command was: \"%s\"" : "Onjuiste commande was: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB gebruiker '%s'@'localhost' bestaat al.",
+ "Drop this user from MySQL/MariaDB" : "Verwijder deze gebruiker uit MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB gebruiker '%s'@'%%' bestaat al",
+ "Drop this user from MySQL/MariaDB." : "Verwijder deze gebruiker uit MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Er kon geen verbinding met Oracle worden bereikt",
+ "Oracle username and/or password not valid" : "Oracle gebruikersnaam en/of wachtwoord ongeldig",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Onjuiste commando was: \"%s\", naam: %s, wachtwoord: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL gebruikersnaam en/of wachtwoord ongeldig",
+ "Set an admin username." : "Stel de gebruikersnaam van de beheerder in.",
+ "Set an admin password." : "Stel een beheerderswachtwoord in.",
+ "Can't create or write into the data directory %s" : "Kan niets creëren of wegschrijven in datadirectory %s",
+ "%s shared »%s« with you" : "%s deelde »%s« met u",
+ "Sharing %s failed, because the file does not exist" : "Delen van %s is mislukt, omdat het bestand niet bestaat",
+ "You are not allowed to share %s" : "U bent niet bevoegd om %s te delen",
+ "Sharing %s failed, because the user %s is the item owner" : "Delen van %s is mislukt, omdat de gebruiker %s de eigenaar is",
+ "Sharing %s failed, because the user %s does not exist" : "Delen van %s is mislukt, omdat gebruiker %s niet bestaat",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Delen van %s is mislukt, omdat gebruiker %s geen lid is van een groep waar %s lid van is",
+ "Sharing %s failed, because this item is already shared with %s" : "Delen van %s is mislukt, omdat het object al wordt gedeeld met %s",
+ "Sharing %s failed, because the group %s does not exist" : "Delen van %s is mislukt, omdat groep %s niet bestaat",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Delen van %s is mislukt, omdat %s geen lid is van groep %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "U moet een wachtwoord verstrekken om een openbare koppeling te maken, alleen beschermde links zijn toegestaan",
+ "Sharing %s failed, because sharing with links is not allowed" : "Delen van %s is mislukt, omdat het delen met links niet is toegestaan",
+ "Share type %s is not valid for %s" : "Delen van type %s is niet geldig voor %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Instellen van de permissies voor %s is mislukt, omdat de permissies hoger zijn dan de aan %s toegekende permissies",
+ "Setting permissions for %s failed, because the item was not found" : "Instellen van de permissies voor %s is mislukt, omdat het object niet is gevonden",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Kon vervaldatum niet instellen. Shares kunnen niet langer dan %s vervallen na het moment van delen",
+ "Cannot set expiration date. Expiration date is in the past" : "Kon vervaldatum niet instellen. De vervaldatum ligt in het verleden",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Het share-backend %s moet de OCP\\Share_Backend interface implementeren",
+ "Sharing backend %s not found" : "Het share-backend %s is niet gevonden",
+ "Sharing backend for %s not found" : "Het share-backend voor %s is niet gevonden",
+ "Sharing %s failed, because the user %s is the original sharer" : "Delen van %s is mislukt, omdat gebruiker %s de originele deler is",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Delen van %s is mislukt, omdat de rechten de aan %s toegekende autorisaties overschrijden",
+ "Sharing %s failed, because resharing is not allowed" : "Delen van %s is mislukt, omdat her-delen niet is toegestaan",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Delen van %s is mislukt, omdat de share-backend voor %s de bron niet kon vinden",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Delen van %s is mislukt, omdat het bestand niet in de bestandscache kon worden gevonden",
+ "Could not find category \"%s\"" : "Kon categorie \"%s\" niet vinden",
+ "seconds ago" : "seconden geleden",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minuut geleden","%n minuten geleden"],
+ "_%n hour ago_::_%n hours ago_" : ["%n uur geleden","%n uur geleden"],
+ "today" : "vandaag",
+ "yesterday" : "gisteren",
+ "_%n day go_::_%n days ago_" : ["%n dag terug","%n dagen geleden"],
+ "last month" : "vorige maand",
+ "_%n month ago_::_%n months ago_" : ["%n maand geleden","%n maanden geleden"],
+ "last year" : "vorig jaar",
+ "years ago" : "jaar geleden",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Alleen de volgende tekens zijn toegestaan in een gebruikersnaam: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Er moet een geldige gebruikersnaam worden opgegeven",
+ "A valid password must be provided" : "Er moet een geldig wachtwoord worden opgegeven",
+ "The username is already being used" : "De gebruikersnaam bestaat al",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Geen database drivers (sqlite, mysql of postgres) geïnstalleerd.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Dit kan hersteld worden door de webserver schrijfrechten te %s geven op de hoofddirectory %s.",
+ "Cannot write into \"config\" directory" : "Kan niet schrijven naar de \"config\" directory",
+ "Cannot write into \"apps\" directory" : "Kan niet schrijven naar de \"apps\" directory",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dit kan hersteld worden door de webserver schrijfrechten te %s geven op de appsdirectory %s of door de appstore te deactiveren in het configbestand.",
+ "Cannot create \"data\" directory (%s)" : "Kan de \"data\" directory (%s) niet aanmaken",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Dit kan worden hersteld door de webserver schrijfrechten te geven tot de hoofddirectory .",
+ "Setting locale to %s failed" : "Instellen taal op %s mislukte",
+ "Please install one of these locales on your system and restart your webserver." : "Installeer één van de talen op uw systeem en herstart uw webserver.",
+ "Please ask your server administrator to install the module." : "Vraag uw beheerder om de module te installeren.",
+ "PHP module %s not installed." : "PHP module %s niet geïnstalleerd.",
+ "PHP %s or higher is required." : "PHP %s of hoger vereist.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vraag uw beheerder om PHP bij te werken tot de laatste versie. Uw PHP versie wordt niet langer ondersteund door ownCloud en de PHP community.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode is ingeschakeld. Voor een goede werking van ownCloud moet die modus zijn uitgeschakeld.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode is niet langer zinvol en zou eigenlijk gedeactiveerd moeten worden. Vraag uw beheerder om Safe Mode in php.ini of in de webserver configuratie te deactiveren.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes is geactiveerd. Voor een goede werking van ownCloud moet dit zijn uitgeschakeld.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes is niet langer zinvol en zou eigenlijk gedeactiveerd moeten worden. Vraag uw beheerder om Safe Mode in php.ini of in de webserver configuratie te deactiveren.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP modules zijn geïnstalleerd, maar worden ze nog steeds als ontbrekend aangegeven?",
+ "Please ask your server administrator to restart the web server." : "Vraag uw beheerder de webserver opnieuw op te starten.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 vereist",
+ "Please upgrade your database version" : "Werk uw database versie bij",
+ "Error occurred while checking PostgreSQL version" : "Een fout trad op bij checken PostgreSQL versie",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Verifieer dat u PostgreSQL >=9 draait of check de logs voor meer informatie over deze fout",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Wijzig de permissies in 0770 zodat de directory niet door anderen bekeken kan worden.",
+ "Data directory (%s) is readable by other users" : "De datadirectory (%s) is leesbaar voor andere gebruikers",
+ "Data directory (%s) is invalid" : "Data directory (%s) is ongeldig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifieer dat de data directory een bestand \".ocdata\" in de hoofdmap heeft.",
+ "Could not obtain lock type %d on \"%s\"." : "Kon geen lock type %d krijgen op \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/nl.php b/lib/l10n/nl.php
deleted file mode 100644
index f7a91d2785d..00000000000
--- a/lib/l10n/nl.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Kan niet schrijven naar de \"config\" directory!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Dit kan hersteld worden door de webserver schrijfrechten te geven op de de config directory",
-"See %s" => "Zie %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Dit kan hersteld worden door de webserver schrijfrechten te %sgeven op de de config directory%s",
-"Sample configuration detected" => "Voorbeeldconfiguratie gevonden",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Blijkbaar is de voorbeeldconfiguratie gekopieerd. Dit kan uw installatie beschadigen en wordt niet dan ook ondersteund. Lees de documentatie voordat u wijzigingen aan config.php doorvoert",
-"Help" => "Help",
-"Personal" => "Persoonlijk",
-"Settings" => "Instellingen",
-"Users" => "Gebruikers",
-"Admin" => "Beheerder",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "App \\\"%s\\\" kan niet worden geïnstalleerd omdat de app niet compatible is met deze versie van ownCloud.",
-"No app name specified" => "De app naam is niet gespecificeerd.",
-"Unknown filetype" => "Onbekend bestandsformaat",
-"Invalid image" => "Ongeldige afbeelding",
-"web services under your control" => "Webdiensten in eigen beheer",
-"App directory already exists" => "App directory bestaat al",
-"Can't create app folder. Please fix permissions. %s" => "Kan de app map niet aanmaken, Herstel de permissies. %s",
-"No source specified when installing app" => "Geen bron opgegeven bij installatie van de app",
-"No href specified when installing app from http" => "Geen href opgegeven bij installeren van de app vanaf http",
-"No path specified when installing app from local file" => "Geen pad opgegeven bij installeren van de app vanaf een lokaal bestand",
-"Archives of type %s are not supported" => "Archiefbestanden van type %s niet ondersteund",
-"Failed to open archive when installing app" => "Kon archiefbestand bij installatie van de app niet openen",
-"App does not provide an info.xml file" => "De app heeft geen info.xml bestand",
-"App can't be installed because of not allowed code in the App" => "De app kan niet worden geïnstalleerd wegens onjuiste code in de app",
-"App can't be installed because it is not compatible with this version of ownCloud" => "De app kan niet worden geïnstalleerd omdat die niet compatible is met deze versie van ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "De app kan niet worden geïnstallerd omdat het de true tag bevat die niet is toegestaan voor niet gepubliceerde apps",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "De app kan niet worden geïnstalleerd omdat de versie in info.xml/version niet dezelfde is als de versie zoals die in de app store staat vermeld",
-"Application is not enabled" => "De applicatie is niet actief",
-"Authentication error" => "Authenticatie fout",
-"Token expired. Please reload page." => "Token verlopen. Herlaad de pagina.",
-"Unknown user" => "Onbekende gebruiker",
-"%s enter the database username." => "%s opgeven database gebruikersnaam.",
-"%s enter the database name." => "%s opgeven databasenaam.",
-"%s you may not use dots in the database name" => "%s er mogen geen puntjes in de databasenaam voorkomen",
-"MS SQL username and/or password not valid: %s" => "MS SQL gebruikersnaam en/of wachtwoord niet geldig: %s",
-"You need to enter either an existing account or the administrator." => "Geef of een bestaand account op of het beheerdersaccount.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB gebruikersnaam en/of wachtwoord ongeldig",
-"DB Error: \"%s\"" => "DB Fout: \"%s\"",
-"Offending command was: \"%s\"" => "Onjuiste commande was: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB gebruiker '%s'@'localhost' bestaat al.",
-"Drop this user from MySQL/MariaDB" => "Verwijder deze gebruiker uit MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB gebruiker '%s'@'%%' bestaat al",
-"Drop this user from MySQL/MariaDB." => "Verwijder deze gebruiker uit MySQL/MariaDB.",
-"Oracle connection could not be established" => "Er kon geen verbinding met Oracle worden bereikt",
-"Oracle username and/or password not valid" => "Oracle gebruikersnaam en/of wachtwoord ongeldig",
-"Offending command was: \"%s\", name: %s, password: %s" => "Onjuiste commando was: \"%s\", naam: %s, wachtwoord: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL gebruikersnaam en/of wachtwoord ongeldig",
-"Set an admin username." => "Stel de gebruikersnaam van de beheerder in.",
-"Set an admin password." => "Stel een beheerderswachtwoord in.",
-"Can't create or write into the data directory %s" => "Kan niets creëren of wegschrijven in datadirectory %s",
-"%s shared »%s« with you" => "%s deelde »%s« met u",
-"Sharing %s failed, because the file does not exist" => "Delen van %s is mislukt, omdat het bestand niet bestaat",
-"You are not allowed to share %s" => "U bent niet bevoegd om %s te delen",
-"Sharing %s failed, because the user %s is the item owner" => "Delen van %s is mislukt, omdat de gebruiker %s de eigenaar is",
-"Sharing %s failed, because the user %s does not exist" => "Delen van %s is mislukt, omdat gebruiker %s niet bestaat",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Delen van %s is mislukt, omdat gebruiker %s geen lid is van een groep waar %s lid van is",
-"Sharing %s failed, because this item is already shared with %s" => "Delen van %s is mislukt, omdat het object al wordt gedeeld met %s",
-"Sharing %s failed, because the group %s does not exist" => "Delen van %s is mislukt, omdat groep %s niet bestaat",
-"Sharing %s failed, because %s is not a member of the group %s" => "Delen van %s is mislukt, omdat %s geen lid is van groep %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "U moet een wachtwoord verstrekken om een openbare koppeling te maken, alleen beschermde links zijn toegestaan",
-"Sharing %s failed, because sharing with links is not allowed" => "Delen van %s is mislukt, omdat het delen met links niet is toegestaan",
-"Share type %s is not valid for %s" => "Delen van type %s is niet geldig voor %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Instellen van de permissies voor %s is mislukt, omdat de permissies hoger zijn dan de aan %s toegekende permissies",
-"Setting permissions for %s failed, because the item was not found" => "Instellen van de permissies voor %s is mislukt, omdat het object niet is gevonden",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Kon vervaldatum niet instellen. Shares kunnen niet langer dan %s vervallen na het moment van delen",
-"Cannot set expiration date. Expiration date is in the past" => "Kon vervaldatum niet instellen. De vervaldatum ligt in het verleden",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Het share-backend %s moet de OCP\\Share_Backend interface implementeren",
-"Sharing backend %s not found" => "Het share-backend %s is niet gevonden",
-"Sharing backend for %s not found" => "Het share-backend voor %s is niet gevonden",
-"Sharing %s failed, because the user %s is the original sharer" => "Delen van %s is mislukt, omdat gebruiker %s de originele deler is",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Delen van %s is mislukt, omdat de rechten de aan %s toegekende autorisaties overschrijden",
-"Sharing %s failed, because resharing is not allowed" => "Delen van %s is mislukt, omdat her-delen niet is toegestaan",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Delen van %s is mislukt, omdat de share-backend voor %s de bron niet kon vinden",
-"Sharing %s failed, because the file could not be found in the file cache" => "Delen van %s is mislukt, omdat het bestand niet in de bestandscache kon worden gevonden",
-"Could not find category \"%s\"" => "Kon categorie \"%s\" niet vinden",
-"seconds ago" => "seconden geleden",
-"_%n minute ago_::_%n minutes ago_" => array("%n minuut geleden","%n minuten geleden"),
-"_%n hour ago_::_%n hours ago_" => array("%n uur geleden","%n uur geleden"),
-"today" => "vandaag",
-"yesterday" => "gisteren",
-"_%n day go_::_%n days ago_" => array("%n dag terug","%n dagen geleden"),
-"last month" => "vorige maand",
-"_%n month ago_::_%n months ago_" => array("%n maand geleden","%n maanden geleden"),
-"last year" => "vorig jaar",
-"years ago" => "jaar geleden",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Alleen de volgende tekens zijn toegestaan in een gebruikersnaam: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
-"A valid username must be provided" => "Er moet een geldige gebruikersnaam worden opgegeven",
-"A valid password must be provided" => "Er moet een geldig wachtwoord worden opgegeven",
-"The username is already being used" => "De gebruikersnaam bestaat al",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Geen database drivers (sqlite, mysql of postgres) geïnstalleerd.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Dit kan hersteld worden door de webserver schrijfrechten te %s geven op de hoofddirectory %s.",
-"Cannot write into \"config\" directory" => "Kan niet schrijven naar de \"config\" directory",
-"Cannot write into \"apps\" directory" => "Kan niet schrijven naar de \"apps\" directory",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Dit kan hersteld worden door de webserver schrijfrechten te %s geven op de appsdirectory %s of door de appstore te deactiveren in het configbestand.",
-"Cannot create \"data\" directory (%s)" => "Kan de \"data\" directory (%s) niet aanmaken",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Dit kan worden hersteld door de webserver schrijfrechten te geven tot de hoofddirectory .",
-"Setting locale to %s failed" => "Instellen taal op %s mislukte",
-"Please install one of these locales on your system and restart your webserver." => "Installeer één van de talen op uw systeem en herstart uw webserver.",
-"Please ask your server administrator to install the module." => "Vraag uw beheerder om de module te installeren.",
-"PHP module %s not installed." => "PHP module %s niet geïnstalleerd.",
-"PHP %s or higher is required." => "PHP %s of hoger vereist.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Vraag uw beheerder om PHP bij te werken tot de laatste versie. Uw PHP versie wordt niet langer ondersteund door ownCloud en de PHP community.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode is ingeschakeld. Voor een goede werking van ownCloud moet die modus zijn uitgeschakeld.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode is niet langer zinvol en zou eigenlijk gedeactiveerd moeten worden. Vraag uw beheerder om Safe Mode in php.ini of in de webserver configuratie te deactiveren.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes is geactiveerd. Voor een goede werking van ownCloud moet dit zijn uitgeschakeld.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes is niet langer zinvol en zou eigenlijk gedeactiveerd moeten worden. Vraag uw beheerder om Safe Mode in php.ini of in de webserver configuratie te deactiveren.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP modules zijn geïnstalleerd, maar worden ze nog steeds als ontbrekend aangegeven?",
-"Please ask your server administrator to restart the web server." => "Vraag uw beheerder de webserver opnieuw op te starten.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 vereist",
-"Please upgrade your database version" => "Werk uw database versie bij",
-"Error occurred while checking PostgreSQL version" => "Een fout trad op bij checken PostgreSQL versie",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Verifieer dat u PostgreSQL >=9 draait of check de logs voor meer informatie over deze fout",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Wijzig de permissies in 0770 zodat de directory niet door anderen bekeken kan worden.",
-"Data directory (%s) is readable by other users" => "De datadirectory (%s) is leesbaar voor andere gebruikers",
-"Data directory (%s) is invalid" => "Data directory (%s) is ongeldig",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Verifieer dat de data directory een bestand \".ocdata\" in de hoofdmap heeft.",
-"Could not obtain lock type %d on \"%s\"." => "Kon geen lock type %d krijgen op \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/nn_NO.js b/lib/l10n/nn_NO.js
new file mode 100644
index 00000000000..a8424759edd
--- /dev/null
+++ b/lib/l10n/nn_NO.js
@@ -0,0 +1,27 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Hjelp",
+ "Personal" : "Personleg",
+ "Settings" : "Innstillingar",
+ "Users" : "Brukarar",
+ "Admin" : "Administrer",
+ "Unknown filetype" : "Ukjend filtype",
+ "Invalid image" : "Ugyldig bilete",
+ "web services under your control" : "Vev tjenester under din kontroll",
+ "Authentication error" : "Feil i autentisering",
+ "%s shared »%s« with you" : "%s delte «%s» med deg",
+ "seconds ago" : "sekund sidan",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutt sidan"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n timar sidan"],
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day go_::_%n days ago_" : ["","%n dagar sidan"],
+ "last month" : "førre månad",
+ "_%n month ago_::_%n months ago_" : ["","%n månadar sidan"],
+ "last year" : "i fjor",
+ "years ago" : "år sidan",
+ "A valid username must be provided" : "Du må oppgje eit gyldig brukarnamn",
+ "A valid password must be provided" : "Du må oppgje eit gyldig passord"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/nn_NO.json b/lib/l10n/nn_NO.json
new file mode 100644
index 00000000000..582a7289718
--- /dev/null
+++ b/lib/l10n/nn_NO.json
@@ -0,0 +1,25 @@
+{ "translations": {
+ "Help" : "Hjelp",
+ "Personal" : "Personleg",
+ "Settings" : "Innstillingar",
+ "Users" : "Brukarar",
+ "Admin" : "Administrer",
+ "Unknown filetype" : "Ukjend filtype",
+ "Invalid image" : "Ugyldig bilete",
+ "web services under your control" : "Vev tjenester under din kontroll",
+ "Authentication error" : "Feil i autentisering",
+ "%s shared »%s« with you" : "%s delte «%s» med deg",
+ "seconds ago" : "sekund sidan",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutt sidan"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n timar sidan"],
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day go_::_%n days ago_" : ["","%n dagar sidan"],
+ "last month" : "førre månad",
+ "_%n month ago_::_%n months ago_" : ["","%n månadar sidan"],
+ "last year" : "i fjor",
+ "years ago" : "år sidan",
+ "A valid username must be provided" : "Du må oppgje eit gyldig brukarnamn",
+ "A valid password must be provided" : "Du må oppgje eit gyldig passord"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/nn_NO.php b/lib/l10n/nn_NO.php
deleted file mode 100644
index c381e81ff28..00000000000
--- a/lib/l10n/nn_NO.php
+++ /dev/null
@@ -1,26 +0,0 @@
- "Hjelp",
-"Personal" => "Personleg",
-"Settings" => "Innstillingar",
-"Users" => "Brukarar",
-"Admin" => "Administrer",
-"Unknown filetype" => "Ukjend filtype",
-"Invalid image" => "Ugyldig bilete",
-"web services under your control" => "Vev tjenester under din kontroll",
-"Authentication error" => "Feil i autentisering",
-"%s shared »%s« with you" => "%s delte «%s» med deg",
-"seconds ago" => "sekund sidan",
-"_%n minute ago_::_%n minutes ago_" => array("","%n minutt sidan"),
-"_%n hour ago_::_%n hours ago_" => array("","%n timar sidan"),
-"today" => "i dag",
-"yesterday" => "i går",
-"_%n day go_::_%n days ago_" => array("","%n dagar sidan"),
-"last month" => "førre månad",
-"_%n month ago_::_%n months ago_" => array("","%n månadar sidan"),
-"last year" => "i fjor",
-"years ago" => "år sidan",
-"A valid username must be provided" => "Du må oppgje eit gyldig brukarnamn",
-"A valid password must be provided" => "Du må oppgje eit gyldig passord"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/nqo.js b/lib/l10n/nqo.js
new file mode 100644
index 00000000000..0f4a002019e
--- /dev/null
+++ b/lib/l10n/nqo.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""]
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/nqo.json b/lib/l10n/nqo.json
new file mode 100644
index 00000000000..4a03cf5047e
--- /dev/null
+++ b/lib/l10n/nqo.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""]
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/nqo.php b/lib/l10n/nqo.php
deleted file mode 100644
index e7b09649a24..00000000000
--- a/lib/l10n/nqo.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array(""),
-"_%n hour ago_::_%n hours ago_" => array(""),
-"_%n day go_::_%n days ago_" => array(""),
-"_%n month ago_::_%n months ago_" => array("")
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/oc.js b/lib/l10n/oc.js
new file mode 100644
index 00000000000..b6419372101
--- /dev/null
+++ b/lib/l10n/oc.js
@@ -0,0 +1,22 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Ajuda",
+ "Personal" : "Personal",
+ "Settings" : "Configuracion",
+ "Users" : "Usancièrs",
+ "Admin" : "Admin",
+ "web services under your control" : "Services web jos ton contraròtle",
+ "Authentication error" : "Error d'autentificacion",
+ "seconds ago" : "segonda a",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "uèi",
+ "yesterday" : "ièr",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "mes passat",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "an passat",
+ "years ago" : "ans a"
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/oc.json b/lib/l10n/oc.json
new file mode 100644
index 00000000000..df72d194def
--- /dev/null
+++ b/lib/l10n/oc.json
@@ -0,0 +1,20 @@
+{ "translations": {
+ "Help" : "Ajuda",
+ "Personal" : "Personal",
+ "Settings" : "Configuracion",
+ "Users" : "Usancièrs",
+ "Admin" : "Admin",
+ "web services under your control" : "Services web jos ton contraròtle",
+ "Authentication error" : "Error d'autentificacion",
+ "seconds ago" : "segonda a",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "uèi",
+ "yesterday" : "ièr",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "mes passat",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "an passat",
+ "years ago" : "ans a"
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/oc.php b/lib/l10n/oc.php
deleted file mode 100644
index 417b3825bf0..00000000000
--- a/lib/l10n/oc.php
+++ /dev/null
@@ -1,21 +0,0 @@
- "Ajuda",
-"Personal" => "Personal",
-"Settings" => "Configuracion",
-"Users" => "Usancièrs",
-"Admin" => "Admin",
-"web services under your control" => "Services web jos ton contraròtle",
-"Authentication error" => "Error d'autentificacion",
-"seconds ago" => "segonda a",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"today" => "uèi",
-"yesterday" => "ièr",
-"_%n day go_::_%n days ago_" => array("",""),
-"last month" => "mes passat",
-"_%n month ago_::_%n months ago_" => array("",""),
-"last year" => "an passat",
-"years ago" => "ans a"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/lib/l10n/or_IN.js b/lib/l10n/or_IN.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/or_IN.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/or_IN.json b/lib/l10n/or_IN.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/or_IN.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/or_IN.php b/lib/l10n/or_IN.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/or_IN.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/pa.js b/lib/l10n/pa.js
new file mode 100644
index 00000000000..0c3dd4c553e
--- /dev/null
+++ b/lib/l10n/pa.js
@@ -0,0 +1,16 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Settings" : "ਸੈਟਿੰਗ",
+ "seconds ago" : "ਸਕਿੰਟ ਪਹਿਲਾਂ",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "ਅੱਜ",
+ "yesterday" : "ਕੱਲ੍ਹ",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "ਪਿਛਲੇ ਮਹੀਨੇ",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "ਪਿਛਲੇ ਸਾਲ",
+ "years ago" : "ਸਾਲਾਂ ਪਹਿਲਾਂ"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/pa.json b/lib/l10n/pa.json
new file mode 100644
index 00000000000..4fc6757c692
--- /dev/null
+++ b/lib/l10n/pa.json
@@ -0,0 +1,14 @@
+{ "translations": {
+ "Settings" : "ਸੈਟਿੰਗ",
+ "seconds ago" : "ਸਕਿੰਟ ਪਹਿਲਾਂ",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "ਅੱਜ",
+ "yesterday" : "ਕੱਲ੍ਹ",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "ਪਿਛਲੇ ਮਹੀਨੇ",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "ਪਿਛਲੇ ਸਾਲ",
+ "years ago" : "ਸਾਲਾਂ ਪਹਿਲਾਂ"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/pa.php b/lib/l10n/pa.php
deleted file mode 100644
index 07738a90917..00000000000
--- a/lib/l10n/pa.php
+++ /dev/null
@@ -1,15 +0,0 @@
- "ਸੈਟਿੰਗ",
-"seconds ago" => "ਸਕਿੰਟ ਪਹਿਲਾਂ",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"today" => "ਅੱਜ",
-"yesterday" => "ਕੱਲ੍ਹ",
-"_%n day go_::_%n days ago_" => array("",""),
-"last month" => "ਪਿਛਲੇ ਮਹੀਨੇ",
-"_%n month ago_::_%n months ago_" => array("",""),
-"last year" => "ਪਿਛਲੇ ਸਾਲ",
-"years ago" => "ਸਾਲਾਂ ਪਹਿਲਾਂ"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js
new file mode 100644
index 00000000000..a766151eab2
--- /dev/null
+++ b/lib/l10n/pl.js
@@ -0,0 +1,124 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Nie można zapisać do katalogu \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Można to zwykle rozwiązać przez dodanie serwerowi www uprawnień zapisu do katalogu config.",
+ "See %s" : "Zobacz %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Można to zwykle rozwiązać przez %sdodanie serwerowi www uprawnień zapisu do katalogu config%s.",
+ "Sample configuration detected" : "Wykryto przykładową konfigurację",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Wykryto skopiowanie przykładowej konfiguracji. To może popsuć Twoją instalację i nie jest wspierane. Proszę przeczytać dokumentację przed dokonywaniem zmian w config.php",
+ "Help" : "Pomoc",
+ "Personal" : "Osobiste",
+ "Settings" : "Ustawienia",
+ "Users" : "Użytkownicy",
+ "Admin" : "Administrator",
+ "Recommended" : "Polecane",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplikacja \\\"%s\\\" nie może zostać zainstalowana ponieważ nie jest kompatybilna z tą wersją ownCloud.",
+ "No app name specified" : "Nie określono nazwy aplikacji",
+ "Unknown filetype" : "Nieznany typ pliku",
+ "Invalid image" : "Błędne zdjęcie",
+ "web services under your control" : "Kontrolowane serwisy",
+ "App directory already exists" : "Katalog aplikacji już isnieje",
+ "Can't create app folder. Please fix permissions. %s" : "Nie mogę utworzyć katalogu aplikacji. Proszę popraw uprawnienia. %s",
+ "No source specified when installing app" : "Nie określono źródła podczas instalacji aplikacji",
+ "No href specified when installing app from http" : "Nie określono linku skąd aplikacja ma być zainstalowana",
+ "No path specified when installing app from local file" : "Nie określono lokalnego pliku z którego miała być instalowana aplikacja",
+ "Archives of type %s are not supported" : "Typ archiwum %s nie jest obsługiwany",
+ "Failed to open archive when installing app" : "Nie udało się otworzyć archiwum podczas instalacji aplikacji",
+ "App does not provide an info.xml file" : "Aplikacja nie posiada pliku info.xml",
+ "App can't be installed because of not allowed code in the App" : "Aplikacja nie może być zainstalowany ponieważ nie dopuszcza kod w aplikacji",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Aplikacja nie może zostać zainstalowana ponieważ jest niekompatybilna z tą wersja ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Aplikacja nie może być zainstalowana ponieważ true tag nie jest true , co nie jest dozwolone dla aplikacji nie wysłanych",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Nie można zainstalować aplikacji, ponieważ w wersji info.xml/version nie jest taka sama, jak wersja z app store",
+ "Application is not enabled" : "Aplikacja nie jest włączona",
+ "Authentication error" : "Błąd uwierzytelniania",
+ "Token expired. Please reload page." : "Token wygasł. Proszę ponownie załadować stronę.",
+ "Unknown user" : "Nieznany użytkownik",
+ "%s enter the database username." : "%s wpisz nazwę użytkownika do bazy",
+ "%s enter the database name." : "%s wpisz nazwę bazy.",
+ "%s you may not use dots in the database name" : "%s nie można używać kropki w nazwie bazy danych",
+ "MS SQL username and/or password not valid: %s" : "Nazwa i/lub hasło serwera MS SQL jest niepoprawne: %s.",
+ "You need to enter either an existing account or the administrator." : "Należy wprowadzić istniejące konto użytkownika lub administratora.",
+ "MySQL/MariaDB username and/or password not valid" : "Użytkownik i/lub hasło do MySQL/MariaDB są niepoprawne",
+ "DB Error: \"%s\"" : "Błąd DB: \"%s\"",
+ "Offending command was: \"%s\"" : "Niepoprawna komenda: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Użytkownik '%s'@'localhost' MySQL/MariaDB już istnieje.",
+ "Drop this user from MySQL/MariaDB" : "Usuń tego użytkownika z MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Użytkownik '%s'@'%%' MySQL/MariaDB już istnieje.",
+ "Drop this user from MySQL/MariaDB." : "Usuń tego użytkownika z MySQL/MariaDB",
+ "Oracle connection could not be established" : "Nie można ustanowić połączenia z bazą Oracle",
+ "Oracle username and/or password not valid" : "Oracle: Nazwa użytkownika i/lub hasło jest niepoprawne",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Niepoprawne polecania: \"%s\", nazwa: %s, hasło: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL: Nazwa użytkownika i/lub hasło jest niepoprawne",
+ "Set an admin username." : "Ustaw nazwę administratora.",
+ "Set an admin password." : "Ustaw hasło administratora.",
+ "Can't create or write into the data directory %s" : "Nie można tworzyć ani zapisywać w katalogu %s",
+ "%s shared »%s« with you" : "%s Współdzielone »%s« z tobą",
+ "Sharing %s failed, because the file does not exist" : "Wspóldzielenie %s nie powiodło się. ponieważ plik nie istnieje",
+ "You are not allowed to share %s" : "Nie masz uprawnień aby udostępnić %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s jest właścicielem elementu",
+ "Sharing %s failed, because the user %s does not exist" : "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s nie istnieje",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s nie jest członkiem żadnej grupy której członkiem jest %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Współdzielenie %s nie powiodło się, ponieważ element jest już współdzielony z %s",
+ "Sharing %s failed, because the group %s does not exist" : "Współdzielenie %s nie powiodło się, ponieważ grupa %s nie istnieje",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Współdzielenie %s nie powiodło się, ponieważ %s nie jest członkiem grupy %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Musisz zapewnić hasło aby utworzyć link publiczny, dozwolone są tylko linki chronione",
+ "Sharing %s failed, because sharing with links is not allowed" : "Współdzielenie %s nie powiodło się, ponieważ współdzielenie z linkami nie jest dozwolone",
+ "Share type %s is not valid for %s" : "Typ udziału %s nie jest właściwy dla %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Ustawienie uprawnień dla %s nie powiodło się, ponieważ uprawnienia wykraczają poza przydzielone %s",
+ "Setting permissions for %s failed, because the item was not found" : "Ustawienie uprawnień dla %s nie powiodło się, ponieważ element nie został znaleziony",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nie można ustawić daty wygaśnięcia. Udziały nie mogą wygasać później niż %s od momentu udostępnienia",
+ "Cannot set expiration date. Expiration date is in the past" : "Nie można ustawić daty wygaśnięcia. Data wygaśnięcia jest w przeszłości.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Zaplecze do współdzielenia %s musi implementować interfejs OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Zaplecze %s do współdzielenia nie zostało znalezione",
+ "Sharing backend for %s not found" : "Zaplecze do współdzielenia %s nie zostało znalezione",
+ "Sharing %s failed, because the user %s is the original sharer" : "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s jest udostępniającym",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Współdzielenie %s nie powiodło się, ponieważ uprawnienia przekraczają te udzielone %s",
+ "Sharing %s failed, because resharing is not allowed" : "Współdzielenie %s nie powiodło się, ponieważ ponowne współdzielenie nie jest dozwolone",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Współdzielenie %s nie powiodło się, ponieważ zaplecze współdzielenia dla %s nie mogło znaleźć jego źródła",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Współdzielenie %s nie powiodło się, ponieważ plik nie może zostać odnaleziony w buforze plików",
+ "Could not find category \"%s\"" : "Nie można odnaleźć kategorii \"%s\"",
+ "seconds ago" : "sekund temu",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu"],
+ "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu"],
+ "today" : "dziś",
+ "yesterday" : "wczoraj",
+ "_%n day go_::_%n days ago_" : ["%n dzień temu","%n dni temu","%n dni temu"],
+ "last month" : "w zeszłym miesiącu",
+ "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu"],
+ "last year" : "w zeszłym roku",
+ "years ago" : "lat temu",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "W nazwach użytkowników dozwolone są wyłącznie następujące znaki: \"a-z\", \"A-Z\", \"0-9\", oraz \"_.@-\"",
+ "A valid username must be provided" : "Należy podać prawidłową nazwę użytkownika",
+ "A valid password must be provided" : "Należy podać prawidłowe hasło",
+ "The username is already being used" : "Ta nazwa użytkownika jest już używana",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Brak sterowników bazy danych (sqlite, mysql or postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Problemy z uprawnieniami można zwykle naprawić przez %sdodanie serwerowi www uprawnień zapisu do katalogu głównego%s.",
+ "Cannot write into \"config\" directory" : "Nie można zapisać do katalogu \"config\"",
+ "Cannot write into \"apps\" directory" : "Nie można zapisać do katalogu \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Można to zwykle rozwiązać przez %sdodanie serwerowi www uprawnień zapisu do katalogu apps%s lub wyłączenie appstore w pliku konfiguracyjnym.",
+ "Cannot create \"data\" directory (%s)" : "Nie można utworzyć katalogu \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Można to zwykle rozwiązać przez dodanie serwerowi www uprawnień zapisu do katalogu głównego .",
+ "Setting locale to %s failed" : "Nie udało się zmienić języka na %s",
+ "Please install one of these locales on your system and restart your webserver." : "Proszę zainstalować jedno z poniższych locale w Twoim systemie i uruchomić ponownie serwer www.",
+ "Please ask your server administrator to install the module." : "Proszę poproś administratora serwera aby zainstalował ten moduł.",
+ "PHP module %s not installed." : "Moduł PHP %s nie jest zainstalowany.",
+ "PHP %s or higher is required." : "PHP %s lub wyższe jest wymagane.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Proszę poproś administratora serwera aby zaktualizował PHP do najnowszej wersji. Twoja wersja PHP nie jest już dłużej wspierana przez ownCloud i społeczność PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Bezpieczny tryb PHP jest aktywny. ownCloud do poprawnej pracy wymaga aby był on wyłączony.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Bezpieczny tryb PHP jest przestarzały i w większości bezużyteczny i powinien być wyłączony. Proszę poproś administratora serwera aby wyłączył go w php.ini lub w pliku konfiguracyjnym serwera www.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes są włączone. Do poprawnego działania ownCloud wymagane jest ich wyłączenie.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes to przestarzałe i zasadniczo bezużyteczne ustawienie, które powinno być wyłączone. Poproś administratora serwera, by wyłączył je w php.ini albo w konfiguracji serwera www.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Moduły PHP zostały zainstalowane, ale nadal brakuje ich na liście?",
+ "Please ask your server administrator to restart the web server." : "Poproś administratora serwera o restart serwera www.",
+ "PostgreSQL >= 9 required" : "Wymagany PostgreSQL >= 9",
+ "Please upgrade your database version" : "Uaktualnij wersję bazy danych",
+ "Error occurred while checking PostgreSQL version" : "Wystąpił błąd podczas sprawdzania wersji PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Upewnij się, że PostgreSQL jest w wersji co najmniej 9 lub sprawdź log by uzyskać więcej informacji na temat błędu",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Zmień uprawnienia na 0770, żeby ukryć zawartość katalogu przed innymi użytkownikami.",
+ "Data directory (%s) is readable by other users" : "Katalog danych (%s) jest możliwy do odczytania przez innych użytkowników",
+ "Data directory (%s) is invalid" : "Katalog danych (%s) jest nieprawidłowy",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Sprawdź, czy katalog danych zawiera plik \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Nie można uzyskać blokady typu %d na \"%s\"."
+},
+"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json
new file mode 100644
index 00000000000..c546a115f5e
--- /dev/null
+++ b/lib/l10n/pl.json
@@ -0,0 +1,122 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Nie można zapisać do katalogu \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Można to zwykle rozwiązać przez dodanie serwerowi www uprawnień zapisu do katalogu config.",
+ "See %s" : "Zobacz %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Można to zwykle rozwiązać przez %sdodanie serwerowi www uprawnień zapisu do katalogu config%s.",
+ "Sample configuration detected" : "Wykryto przykładową konfigurację",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Wykryto skopiowanie przykładowej konfiguracji. To może popsuć Twoją instalację i nie jest wspierane. Proszę przeczytać dokumentację przed dokonywaniem zmian w config.php",
+ "Help" : "Pomoc",
+ "Personal" : "Osobiste",
+ "Settings" : "Ustawienia",
+ "Users" : "Użytkownicy",
+ "Admin" : "Administrator",
+ "Recommended" : "Polecane",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplikacja \\\"%s\\\" nie może zostać zainstalowana ponieważ nie jest kompatybilna z tą wersją ownCloud.",
+ "No app name specified" : "Nie określono nazwy aplikacji",
+ "Unknown filetype" : "Nieznany typ pliku",
+ "Invalid image" : "Błędne zdjęcie",
+ "web services under your control" : "Kontrolowane serwisy",
+ "App directory already exists" : "Katalog aplikacji już isnieje",
+ "Can't create app folder. Please fix permissions. %s" : "Nie mogę utworzyć katalogu aplikacji. Proszę popraw uprawnienia. %s",
+ "No source specified when installing app" : "Nie określono źródła podczas instalacji aplikacji",
+ "No href specified when installing app from http" : "Nie określono linku skąd aplikacja ma być zainstalowana",
+ "No path specified when installing app from local file" : "Nie określono lokalnego pliku z którego miała być instalowana aplikacja",
+ "Archives of type %s are not supported" : "Typ archiwum %s nie jest obsługiwany",
+ "Failed to open archive when installing app" : "Nie udało się otworzyć archiwum podczas instalacji aplikacji",
+ "App does not provide an info.xml file" : "Aplikacja nie posiada pliku info.xml",
+ "App can't be installed because of not allowed code in the App" : "Aplikacja nie może być zainstalowany ponieważ nie dopuszcza kod w aplikacji",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Aplikacja nie może zostać zainstalowana ponieważ jest niekompatybilna z tą wersja ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Aplikacja nie może być zainstalowana ponieważ true tag nie jest true , co nie jest dozwolone dla aplikacji nie wysłanych",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Nie można zainstalować aplikacji, ponieważ w wersji info.xml/version nie jest taka sama, jak wersja z app store",
+ "Application is not enabled" : "Aplikacja nie jest włączona",
+ "Authentication error" : "Błąd uwierzytelniania",
+ "Token expired. Please reload page." : "Token wygasł. Proszę ponownie załadować stronę.",
+ "Unknown user" : "Nieznany użytkownik",
+ "%s enter the database username." : "%s wpisz nazwę użytkownika do bazy",
+ "%s enter the database name." : "%s wpisz nazwę bazy.",
+ "%s you may not use dots in the database name" : "%s nie można używać kropki w nazwie bazy danych",
+ "MS SQL username and/or password not valid: %s" : "Nazwa i/lub hasło serwera MS SQL jest niepoprawne: %s.",
+ "You need to enter either an existing account or the administrator." : "Należy wprowadzić istniejące konto użytkownika lub administratora.",
+ "MySQL/MariaDB username and/or password not valid" : "Użytkownik i/lub hasło do MySQL/MariaDB są niepoprawne",
+ "DB Error: \"%s\"" : "Błąd DB: \"%s\"",
+ "Offending command was: \"%s\"" : "Niepoprawna komenda: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Użytkownik '%s'@'localhost' MySQL/MariaDB już istnieje.",
+ "Drop this user from MySQL/MariaDB" : "Usuń tego użytkownika z MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Użytkownik '%s'@'%%' MySQL/MariaDB już istnieje.",
+ "Drop this user from MySQL/MariaDB." : "Usuń tego użytkownika z MySQL/MariaDB",
+ "Oracle connection could not be established" : "Nie można ustanowić połączenia z bazą Oracle",
+ "Oracle username and/or password not valid" : "Oracle: Nazwa użytkownika i/lub hasło jest niepoprawne",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Niepoprawne polecania: \"%s\", nazwa: %s, hasło: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL: Nazwa użytkownika i/lub hasło jest niepoprawne",
+ "Set an admin username." : "Ustaw nazwę administratora.",
+ "Set an admin password." : "Ustaw hasło administratora.",
+ "Can't create or write into the data directory %s" : "Nie można tworzyć ani zapisywać w katalogu %s",
+ "%s shared »%s« with you" : "%s Współdzielone »%s« z tobą",
+ "Sharing %s failed, because the file does not exist" : "Wspóldzielenie %s nie powiodło się. ponieważ plik nie istnieje",
+ "You are not allowed to share %s" : "Nie masz uprawnień aby udostępnić %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s jest właścicielem elementu",
+ "Sharing %s failed, because the user %s does not exist" : "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s nie istnieje",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s nie jest członkiem żadnej grupy której członkiem jest %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Współdzielenie %s nie powiodło się, ponieważ element jest już współdzielony z %s",
+ "Sharing %s failed, because the group %s does not exist" : "Współdzielenie %s nie powiodło się, ponieważ grupa %s nie istnieje",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Współdzielenie %s nie powiodło się, ponieważ %s nie jest członkiem grupy %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Musisz zapewnić hasło aby utworzyć link publiczny, dozwolone są tylko linki chronione",
+ "Sharing %s failed, because sharing with links is not allowed" : "Współdzielenie %s nie powiodło się, ponieważ współdzielenie z linkami nie jest dozwolone",
+ "Share type %s is not valid for %s" : "Typ udziału %s nie jest właściwy dla %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Ustawienie uprawnień dla %s nie powiodło się, ponieważ uprawnienia wykraczają poza przydzielone %s",
+ "Setting permissions for %s failed, because the item was not found" : "Ustawienie uprawnień dla %s nie powiodło się, ponieważ element nie został znaleziony",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nie można ustawić daty wygaśnięcia. Udziały nie mogą wygasać później niż %s od momentu udostępnienia",
+ "Cannot set expiration date. Expiration date is in the past" : "Nie można ustawić daty wygaśnięcia. Data wygaśnięcia jest w przeszłości.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Zaplecze do współdzielenia %s musi implementować interfejs OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Zaplecze %s do współdzielenia nie zostało znalezione",
+ "Sharing backend for %s not found" : "Zaplecze do współdzielenia %s nie zostało znalezione",
+ "Sharing %s failed, because the user %s is the original sharer" : "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s jest udostępniającym",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Współdzielenie %s nie powiodło się, ponieważ uprawnienia przekraczają te udzielone %s",
+ "Sharing %s failed, because resharing is not allowed" : "Współdzielenie %s nie powiodło się, ponieważ ponowne współdzielenie nie jest dozwolone",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Współdzielenie %s nie powiodło się, ponieważ zaplecze współdzielenia dla %s nie mogło znaleźć jego źródła",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Współdzielenie %s nie powiodło się, ponieważ plik nie może zostać odnaleziony w buforze plików",
+ "Could not find category \"%s\"" : "Nie można odnaleźć kategorii \"%s\"",
+ "seconds ago" : "sekund temu",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu"],
+ "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu"],
+ "today" : "dziś",
+ "yesterday" : "wczoraj",
+ "_%n day go_::_%n days ago_" : ["%n dzień temu","%n dni temu","%n dni temu"],
+ "last month" : "w zeszłym miesiącu",
+ "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu"],
+ "last year" : "w zeszłym roku",
+ "years ago" : "lat temu",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "W nazwach użytkowników dozwolone są wyłącznie następujące znaki: \"a-z\", \"A-Z\", \"0-9\", oraz \"_.@-\"",
+ "A valid username must be provided" : "Należy podać prawidłową nazwę użytkownika",
+ "A valid password must be provided" : "Należy podać prawidłowe hasło",
+ "The username is already being used" : "Ta nazwa użytkownika jest już używana",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Brak sterowników bazy danych (sqlite, mysql or postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Problemy z uprawnieniami można zwykle naprawić przez %sdodanie serwerowi www uprawnień zapisu do katalogu głównego%s.",
+ "Cannot write into \"config\" directory" : "Nie można zapisać do katalogu \"config\"",
+ "Cannot write into \"apps\" directory" : "Nie można zapisać do katalogu \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Można to zwykle rozwiązać przez %sdodanie serwerowi www uprawnień zapisu do katalogu apps%s lub wyłączenie appstore w pliku konfiguracyjnym.",
+ "Cannot create \"data\" directory (%s)" : "Nie można utworzyć katalogu \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Można to zwykle rozwiązać przez dodanie serwerowi www uprawnień zapisu do katalogu głównego .",
+ "Setting locale to %s failed" : "Nie udało się zmienić języka na %s",
+ "Please install one of these locales on your system and restart your webserver." : "Proszę zainstalować jedno z poniższych locale w Twoim systemie i uruchomić ponownie serwer www.",
+ "Please ask your server administrator to install the module." : "Proszę poproś administratora serwera aby zainstalował ten moduł.",
+ "PHP module %s not installed." : "Moduł PHP %s nie jest zainstalowany.",
+ "PHP %s or higher is required." : "PHP %s lub wyższe jest wymagane.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Proszę poproś administratora serwera aby zaktualizował PHP do najnowszej wersji. Twoja wersja PHP nie jest już dłużej wspierana przez ownCloud i społeczność PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Bezpieczny tryb PHP jest aktywny. ownCloud do poprawnej pracy wymaga aby był on wyłączony.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Bezpieczny tryb PHP jest przestarzały i w większości bezużyteczny i powinien być wyłączony. Proszę poproś administratora serwera aby wyłączył go w php.ini lub w pliku konfiguracyjnym serwera www.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes są włączone. Do poprawnego działania ownCloud wymagane jest ich wyłączenie.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes to przestarzałe i zasadniczo bezużyteczne ustawienie, które powinno być wyłączone. Poproś administratora serwera, by wyłączył je w php.ini albo w konfiguracji serwera www.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Moduły PHP zostały zainstalowane, ale nadal brakuje ich na liście?",
+ "Please ask your server administrator to restart the web server." : "Poproś administratora serwera o restart serwera www.",
+ "PostgreSQL >= 9 required" : "Wymagany PostgreSQL >= 9",
+ "Please upgrade your database version" : "Uaktualnij wersję bazy danych",
+ "Error occurred while checking PostgreSQL version" : "Wystąpił błąd podczas sprawdzania wersji PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Upewnij się, że PostgreSQL jest w wersji co najmniej 9 lub sprawdź log by uzyskać więcej informacji na temat błędu",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Zmień uprawnienia na 0770, żeby ukryć zawartość katalogu przed innymi użytkownikami.",
+ "Data directory (%s) is readable by other users" : "Katalog danych (%s) jest możliwy do odczytania przez innych użytkowników",
+ "Data directory (%s) is invalid" : "Katalog danych (%s) jest nieprawidłowy",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Sprawdź, czy katalog danych zawiera plik \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Nie można uzyskać blokady typu %d na \"%s\"."
+},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+}
\ No newline at end of file
diff --git a/lib/l10n/pl.php b/lib/l10n/pl.php
deleted file mode 100644
index 4b73fffa6cf..00000000000
--- a/lib/l10n/pl.php
+++ /dev/null
@@ -1,121 +0,0 @@
- "Nie można zapisać do katalogu \"config\"!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Można to zwykle rozwiązać przez dodanie serwerowi www uprawnień zapisu do katalogu config.",
-"See %s" => "Zobacz %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Można to zwykle rozwiązać przez %sdodanie serwerowi www uprawnień zapisu do katalogu config%s.",
-"Sample configuration detected" => "Wykryto przykładową konfigurację",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Wykryto skopiowanie przykładowej konfiguracji. To może popsuć Twoją instalację i nie jest wspierane. Proszę przeczytać dokumentację przed dokonywaniem zmian w config.php",
-"Help" => "Pomoc",
-"Personal" => "Osobiste",
-"Settings" => "Ustawienia",
-"Users" => "Użytkownicy",
-"Admin" => "Administrator",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Aplikacja \\\"%s\\\" nie może zostać zainstalowana ponieważ nie jest kompatybilna z tą wersją ownCloud.",
-"No app name specified" => "Nie określono nazwy aplikacji",
-"Unknown filetype" => "Nieznany typ pliku",
-"Invalid image" => "Błędne zdjęcie",
-"web services under your control" => "Kontrolowane serwisy",
-"App directory already exists" => "Katalog aplikacji już isnieje",
-"Can't create app folder. Please fix permissions. %s" => "Nie mogę utworzyć katalogu aplikacji. Proszę popraw uprawnienia. %s",
-"No source specified when installing app" => "Nie określono źródła podczas instalacji aplikacji",
-"No href specified when installing app from http" => "Nie określono linku skąd aplikacja ma być zainstalowana",
-"No path specified when installing app from local file" => "Nie określono lokalnego pliku z którego miała być instalowana aplikacja",
-"Archives of type %s are not supported" => "Typ archiwum %s nie jest obsługiwany",
-"Failed to open archive when installing app" => "Nie udało się otworzyć archiwum podczas instalacji aplikacji",
-"App does not provide an info.xml file" => "Aplikacja nie posiada pliku info.xml",
-"App can't be installed because of not allowed code in the App" => "Aplikacja nie może być zainstalowany ponieważ nie dopuszcza kod w aplikacji",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Aplikacja nie może zostać zainstalowana ponieważ jest niekompatybilna z tą wersja ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Aplikacja nie może być zainstalowana ponieważ true tag nie jest true , co nie jest dozwolone dla aplikacji nie wysłanych",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Nie można zainstalować aplikacji, ponieważ w wersji info.xml/version nie jest taka sama, jak wersja z app store",
-"Application is not enabled" => "Aplikacja nie jest włączona",
-"Authentication error" => "Błąd uwierzytelniania",
-"Token expired. Please reload page." => "Token wygasł. Proszę ponownie załadować stronę.",
-"Unknown user" => "Nieznany użytkownik",
-"%s enter the database username." => "%s wpisz nazwę użytkownika do bazy",
-"%s enter the database name." => "%s wpisz nazwę bazy.",
-"%s you may not use dots in the database name" => "%s nie można używać kropki w nazwie bazy danych",
-"MS SQL username and/or password not valid: %s" => "Nazwa i/lub hasło serwera MS SQL jest niepoprawne: %s.",
-"You need to enter either an existing account or the administrator." => "Należy wprowadzić istniejące konto użytkownika lub administratora.",
-"MySQL/MariaDB username and/or password not valid" => "Użytkownik i/lub hasło do MySQL/MariaDB są niepoprawne",
-"DB Error: \"%s\"" => "Błąd DB: \"%s\"",
-"Offending command was: \"%s\"" => "Niepoprawna komenda: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "Użytkownik '%s'@'localhost' MySQL/MariaDB już istnieje.",
-"Drop this user from MySQL/MariaDB" => "Usuń tego użytkownika z MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "Użytkownik '%s'@'%%' MySQL/MariaDB już istnieje.",
-"Drop this user from MySQL/MariaDB." => "Usuń tego użytkownika z MySQL/MariaDB",
-"Oracle connection could not be established" => "Nie można ustanowić połączenia z bazą Oracle",
-"Oracle username and/or password not valid" => "Oracle: Nazwa użytkownika i/lub hasło jest niepoprawne",
-"Offending command was: \"%s\", name: %s, password: %s" => "Niepoprawne polecania: \"%s\", nazwa: %s, hasło: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL: Nazwa użytkownika i/lub hasło jest niepoprawne",
-"Set an admin username." => "Ustaw nazwę administratora.",
-"Set an admin password." => "Ustaw hasło administratora.",
-"%s shared »%s« with you" => "%s Współdzielone »%s« z tobą",
-"Sharing %s failed, because the file does not exist" => "Wspóldzielenie %s nie powiodło się. ponieważ plik nie istnieje",
-"You are not allowed to share %s" => "Nie masz uprawnień aby udostępnić %s",
-"Sharing %s failed, because the user %s is the item owner" => "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s jest właścicielem elementu",
-"Sharing %s failed, because the user %s does not exist" => "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s nie istnieje",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s nie jest członkiem żadnej grupy której członkiem jest %s",
-"Sharing %s failed, because this item is already shared with %s" => "Współdzielenie %s nie powiodło się, ponieważ element jest już współdzielony z %s",
-"Sharing %s failed, because the group %s does not exist" => "Współdzielenie %s nie powiodło się, ponieważ grupa %s nie istnieje",
-"Sharing %s failed, because %s is not a member of the group %s" => "Współdzielenie %s nie powiodło się, ponieważ %s nie jest członkiem grupy %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Musisz zapewnić hasło aby utworzyć link publiczny, dozwolone są tylko linki chronione",
-"Sharing %s failed, because sharing with links is not allowed" => "Współdzielenie %s nie powiodło się, ponieważ współdzielenie z linkami nie jest dozwolone",
-"Share type %s is not valid for %s" => "Typ udziału %s nie jest właściwy dla %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Ustawienie uprawnień dla %s nie powiodło się, ponieważ uprawnienia wykraczają poza przydzielone %s",
-"Setting permissions for %s failed, because the item was not found" => "Ustawienie uprawnień dla %s nie powiodło się, ponieważ element nie został znaleziony",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Nie można ustawić daty wygaśnięcia. Udziały nie mogą wygasać później niż %s od momentu udostępnienia",
-"Cannot set expiration date. Expiration date is in the past" => "Nie można ustawić daty wygaśnięcia. Data wygaśnięcia jest w przeszłości.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Zaplecze do współdzielenia %s musi implementować interfejs OCP\\Share_Backend",
-"Sharing backend %s not found" => "Zaplecze %s do współdzielenia nie zostało znalezione",
-"Sharing backend for %s not found" => "Zaplecze do współdzielenia %s nie zostało znalezione",
-"Sharing %s failed, because the user %s is the original sharer" => "Współdzielenie %s nie powiodło się, ponieważ użytkownik %s jest udostępniającym",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Współdzielenie %s nie powiodło się, ponieważ uprawnienia przekraczają te udzielone %s",
-"Sharing %s failed, because resharing is not allowed" => "Współdzielenie %s nie powiodło się, ponieważ ponowne współdzielenie nie jest dozwolone",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Współdzielenie %s nie powiodło się, ponieważ zaplecze współdzielenia dla %s nie mogło znaleźć jego źródła",
-"Sharing %s failed, because the file could not be found in the file cache" => "Współdzielenie %s nie powiodło się, ponieważ plik nie może zostać odnaleziony w buforze plików",
-"Could not find category \"%s\"" => "Nie można odnaleźć kategorii \"%s\"",
-"seconds ago" => "sekund temu",
-"_%n minute ago_::_%n minutes ago_" => array("%n minute temu","%n minut temu","%n minut temu"),
-"_%n hour ago_::_%n hours ago_" => array("%n godzinę temu","%n godzin temu","%n godzin temu"),
-"today" => "dziś",
-"yesterday" => "wczoraj",
-"_%n day go_::_%n days ago_" => array("%n dzień temu","%n dni temu","%n dni temu"),
-"last month" => "w zeszłym miesiącu",
-"_%n month ago_::_%n months ago_" => array("%n miesiąc temu","%n miesięcy temu","%n miesięcy temu"),
-"last year" => "w zeszłym roku",
-"years ago" => "lat temu",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "W nazwach użytkowników dozwolone są wyłącznie następujące znaki: \"a-z\", \"A-Z\", \"0-9\", oraz \"_.@-\"",
-"A valid username must be provided" => "Należy podać prawidłową nazwę użytkownika",
-"A valid password must be provided" => "Należy podać prawidłowe hasło",
-"The username is already being used" => "Ta nazwa użytkownika jest już używana",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Brak sterowników bazy danych (sqlite, mysql or postgresql).",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Problemy z uprawnieniami można zwykle naprawić przez %sdodanie serwerowi www uprawnień zapisu do katalogu głównego%s.",
-"Cannot write into \"config\" directory" => "Nie można zapisać do katalogu \"config\"",
-"Cannot write into \"apps\" directory" => "Nie można zapisać do katalogu \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Można to zwykle rozwiązać przez %sdodanie serwerowi www uprawnień zapisu do katalogu apps%s lub wyłączenie appstore w pliku konfiguracyjnym.",
-"Cannot create \"data\" directory (%s)" => "Nie można utworzyć katalogu \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Można to zwykle rozwiązać przez dodanie serwerowi www uprawnień zapisu do katalogu głównego .",
-"Setting locale to %s failed" => "Nie udało się zmienić języka na %s",
-"Please install one of these locales on your system and restart your webserver." => "Proszę zainstalować jedno z poniższych locale w Twoim systemie i uruchomić ponownie serwer www.",
-"Please ask your server administrator to install the module." => "Proszę poproś administratora serwera aby zainstalował ten moduł.",
-"PHP module %s not installed." => "Moduł PHP %s nie jest zainstalowany.",
-"PHP %s or higher is required." => "PHP %s lub wyższe jest wymagane.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Proszę poproś administratora serwera aby zaktualizował PHP do najnowszej wersji. Twoja wersja PHP nie jest już dłużej wspierana przez ownCloud i społeczność PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "Bezpieczny tryb PHP jest aktywny. ownCloud do poprawnej pracy wymaga aby był on wyłączony.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Bezpieczny tryb PHP jest przestarzały i w większości bezużyteczny i powinien być wyłączony. Proszę poproś administratora serwera aby wyłączył go w php.ini lub w pliku konfiguracyjnym serwera www.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes są włączone. Do poprawnego działania ownCloud wymagane jest ich wyłączenie.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes to przestarzałe i zasadniczo bezużyteczne ustawienie, które powinno być wyłączone. Poproś administratora serwera, by wyłączył je w php.ini albo w konfiguracji serwera www.",
-"PHP modules have been installed, but they are still listed as missing?" => "Moduły PHP zostały zainstalowane, ale nadal brakuje ich na liście?",
-"Please ask your server administrator to restart the web server." => "Poproś administratora serwera o restart serwera www.",
-"PostgreSQL >= 9 required" => "Wymagany PostgreSQL >= 9",
-"Please upgrade your database version" => "Uaktualnij wersję bazy danych",
-"Error occurred while checking PostgreSQL version" => "Wystąpił błąd podczas sprawdzania wersji PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Upewnij się, że PostgreSQL jest w wersji co najmniej 9 lub sprawdź log by uzyskać więcej informacji na temat błędu",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Zmień uprawnienia na 0770, żeby ukryć zawartość katalogu przed innymi użytkownikami.",
-"Data directory (%s) is readable by other users" => "Katalog danych (%s) jest możliwy do odczytania przez innych użytkowników",
-"Data directory (%s) is invalid" => "Katalog danych (%s) jest nieprawidłowy",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Sprawdź, czy katalog danych zawiera plik \".ocdata\".",
-"Could not obtain lock type %d on \"%s\"." => "Nie można uzyskać blokady typu %d na \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js
new file mode 100644
index 00000000000..370bff17480
--- /dev/null
+++ b/lib/l10n/pt_BR.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Não é possível gravar no diretório \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Isso geralmente pode ser corrigido dando o acesso de gravação ao webserver para o diretório de configuração",
+ "See %s" : "Ver %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Isso geralmente pode ser corrigido dando permissão de gravação %sgiving ao webserver para o directory%s de configuração.",
+ "Sample configuration detected" : "Exemplo de configuração detectada",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Foi detectado que a configuração exemplo foi copiada. Isso pode desestabilizar sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php",
+ "Help" : "Ajuda",
+ "Personal" : "Pessoal",
+ "Settings" : "Configurações",
+ "Users" : "Usuários",
+ "Admin" : "Admin",
+ "Recommended" : "Recomendado",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplicação \\\"%s\\\" não pode ser instalada porque não é compatível com esta versão do ownCloud.",
+ "No app name specified" : "O nome do aplicativo não foi especificado.",
+ "Unknown filetype" : "Tipo de arquivo desconhecido",
+ "Invalid image" : "Imagem inválida",
+ "Database Error" : "Erro no Banco de Dados",
+ "Please contact your system administrator." : "Por favor cotactar seu administrador do sistema.",
+ "web services under your control" : "serviços web sob seu controle",
+ "App directory already exists" : "Diretório App já existe",
+ "Can't create app folder. Please fix permissions. %s" : "Não é possível criar pasta app. Corrija as permissões. %s",
+ "No source specified when installing app" : "Nenhuma fonte foi especificada enquanto instalava o aplicativo",
+ "No href specified when installing app from http" : "Nenhuma href foi especificada enquanto instalava o aplicativo de http",
+ "No path specified when installing app from local file" : "Nenhum caminho foi especificado enquanto instalava o aplicativo do arquivo local",
+ "Archives of type %s are not supported" : "Arquivos do tipo %s não são suportados",
+ "Failed to open archive when installing app" : "Falha para abrir o arquivo enquanto instalava o aplicativo",
+ "App does not provide an info.xml file" : "O aplicativo não fornece um arquivo info.xml",
+ "App can't be installed because of not allowed code in the App" : "O aplicativo não pode ser instalado por causa do código não permitido no Aplivativo",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "O aplicativo não pode ser instalado porque não é compatível com esta versão do ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "O aplicativo não pode ser instalado porque ele contém a marca verdadeiro que não é permitido para aplicações não embarcadas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "O aplicativo não pode ser instalado porque a versão em info.xml/versão não é a mesma que a versão relatada na App Store",
+ "Application is not enabled" : "Aplicação não está habilitada",
+ "Authentication error" : "Erro de autenticação",
+ "Token expired. Please reload page." : "Token expirou. Por favor recarregue a página.",
+ "Unknown user" : "Usuário desconhecido",
+ "%s enter the database username." : "%s insira o nome de usuário do banco de dados.",
+ "%s enter the database name." : "%s insira o nome do banco de dados.",
+ "%s you may not use dots in the database name" : "%s você não pode usar pontos no nome do banco de dados",
+ "MS SQL username and/or password not valid: %s" : "Nome de usuário e/ou senha MS SQL inválido(s): %s",
+ "You need to enter either an existing account or the administrator." : "Você precisa inserir uma conta existente ou a do administrador.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB nome de usuário e/ou senha não é válida",
+ "DB Error: \"%s\"" : "Erro no BD: \"%s\"",
+ "Offending command was: \"%s\"" : "Comando ofensivo era: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB usuário '%s'@'localhost' já existe.",
+ "Drop this user from MySQL/MariaDB" : "Eliminar esse usuário de MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB usuário '%s'@'%%' já existe",
+ "Drop this user from MySQL/MariaDB." : "Eliminar esse usuário de MySQL/MariaDB",
+ "Oracle connection could not be established" : "Conexão Oracle não pode ser estabelecida",
+ "Oracle username and/or password not valid" : "Nome de usuário e/ou senha Oracle inválido(s)",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Comando ofensivo era: \"%s\", nome: %s, senha: %s",
+ "PostgreSQL username and/or password not valid" : "Nome de usuário e/ou senha PostgreSQL inválido(s)",
+ "Set an admin username." : "Defina um nome do usuário administrador.",
+ "Set an admin password." : "Defina uma senha de administrador.",
+ "Can't create or write into the data directory %s" : "Não é possível criar ou gravar no diretório de dados %s",
+ "%s shared »%s« with you" : "%s compartilhou »%s« com você",
+ "Sharing %s failed, because the file does not exist" : "Compartilhamento %s falhou, porque o arquivo não existe",
+ "You are not allowed to share %s" : "Você não tem permissão para compartilhar %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Compartilhamento %s falhou, porque o usuário %s é o proprietário do item",
+ "Sharing %s failed, because the user %s does not exist" : "Compartilhamento %s falhou, porque o usuário %s não existe",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Compartilhamento %s falhou, porque o usuário %s não é membro de nenhum grupo que o usuário %s pertença",
+ "Sharing %s failed, because this item is already shared with %s" : "Compartilhamento %s falhou, porque este ítem já está compartilhado com %s",
+ "Sharing %s failed, because the group %s does not exist" : "Compartilhamento %s falhou, porque o grupo %s não existe",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Compartilhamento %s falhou, porque %s não é membro do grupo %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Você precisa fornecer uma senha para criar um link público, apenas links protegidos são permitidos",
+ "Sharing %s failed, because sharing with links is not allowed" : "Compartilhamento %s falhou, porque compartilhamento com links não é permitido",
+ "Share type %s is not valid for %s" : "Tipo de compartilhamento %s não é válido para %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Definir permissões para %s falhou, porque as permissões excedem as permissões concedidas a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Definir permissões para %s falhou, porque o item não foi encontrado",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Não é possível definir a data de expiração. Compartilhamentos não podem expirar mais tarde que %s depois de terem sido compartilhados",
+ "Cannot set expiration date. Expiration date is in the past" : "Não é possível definir a data de validade. Data de expiração está no passado",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Compartilhando backend %s deve implementar a interface OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Compartilhamento backend %s não encontrado",
+ "Sharing backend for %s not found" : "Compartilhamento backend para %s não encontrado",
+ "Sharing %s failed, because the user %s is the original sharer" : "Compartilhando %s falhou, porque o usuário %s é o compartilhador original",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Compartilhamento %s falhou, porque as permissões excedem as permissões concedidas a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Compartilhamento %s falhou, porque recompartilhamentos não são permitidos",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartilhamento %s falhou, porque a infra-estrutura de compartilhamento para %s não conseguiu encontrar a sua fonte",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Compartilhamento %s falhou, porque o arquivo não pôde ser encontrado no cache de arquivos",
+ "Could not find category \"%s\"" : "Impossível localizar categoria \"%s\"",
+ "seconds ago" : "segundos atrás",
+ "_%n minute ago_::_%n minutes ago_" : ["","ha %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["","ha %n horas"],
+ "today" : "hoje",
+ "yesterday" : "ontem",
+ "_%n day go_::_%n days ago_" : ["","ha %n dias"],
+ "last month" : "último mês",
+ "_%n month ago_::_%n months ago_" : ["","ha %n meses"],
+ "last year" : "último ano",
+ "years ago" : "anos atrás",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Somente os seguintes caracteres são permitidos no nome do usuário: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
+ "A valid username must be provided" : "Forneça um nome de usuário válido",
+ "A valid password must be provided" : "Forneça uma senha válida",
+ "The username is already being used" : "Este nome de usuário já está sendo usado",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nenhum driver de banco de dados (sqlite, mysql, or postgresql) instalado.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Permissões podem ser corrigidas dando permissão de escita %sgiving ao webserver para o diretório raiz directory%s",
+ "Cannot write into \"config\" directory" : "Não é possível gravar no diretório \"config\"",
+ "Cannot write into \"apps\" directory" : "Não é possível gravar no diretório \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Isto pode ser corrigido dando ao webserver permissão de escrita %sgiving para o diretório apps directory%s ou desabilitando o appstore no arquivo de configuração.",
+ "Cannot create \"data\" directory (%s)" : "Não pode ser criado \"dados\" no diretório (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Isto pode ser corrigido por dando ao webserver permissão de escrita ao diretório raiz .",
+ "Setting locale to %s failed" : "Falha ao configurar localidade para %s",
+ "Please install one of these locales on your system and restart your webserver." : "Por favor, defina uma dessas localizações em seu sistema e reinicie o seu servidor web.",
+ "Please ask your server administrator to install the module." : "Por favor, peça ao seu administrador do servidor para instalar o módulo.",
+ "PHP module %s not installed." : "Módulo PHP %s não instalado.",
+ "PHP %s or higher is required." : "É requerido PHP %s ou superior.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, peça ao seu administrador do servidor para atualizar o PHP para a versão mais recente. A sua versão do PHP não é mais suportado pelo ownCloud e a comunidade PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode está habilitado. ownCloud exige que ele esteja desativado para funcionar corretamente.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode é um cenário obsoleto e praticamente inútil que deve ser desativado. Por favor, peça ao seu administrador do servidor para desativá-lo no php.ini ou na sua configuração webserver.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes está habilitado. ownCloud exige que ele esteja desativado para funcionar corretamente.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes é um cenário obsoleto e praticamente inútil que deve ser desativado. Por favor, peça ao seu administrador do servidor para desativá-lo no php.ini ou na sua configuração webserver.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Módulos do PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
+ "Please ask your server administrator to restart the web server." : "Por favor, peça ao seu administrador do servidor para reiniciar o servidor web.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 requirido",
+ "Please upgrade your database version" : "Por favor, atualize sua versão do banco de dados",
+ "Error occurred while checking PostgreSQL version" : "Erro ao verificar a versão do PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, verifique se você tem PostgreSQL> = 9 ou verificar os logs para obter mais informações sobre o erro",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor, altere as permissões para 0770 para que o diretório não possa ser listado por outros usuários.",
+ "Data directory (%s) is readable by other users" : "Diretório de dados (%s) pode ser lido por outros usuários",
+ "Data directory (%s) is invalid" : "Diretório de dados (%s) é inválido",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Por favor, verifique se o diretório de dados contém um arquivo \".ocdata\" em sua raiz.",
+ "Could not obtain lock type %d on \"%s\"." : "Não foi possível obter tipo de bloqueio %d em \"%s\"."
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json
new file mode 100644
index 00000000000..465d0d2bf29
--- /dev/null
+++ b/lib/l10n/pt_BR.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Não é possível gravar no diretório \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Isso geralmente pode ser corrigido dando o acesso de gravação ao webserver para o diretório de configuração",
+ "See %s" : "Ver %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Isso geralmente pode ser corrigido dando permissão de gravação %sgiving ao webserver para o directory%s de configuração.",
+ "Sample configuration detected" : "Exemplo de configuração detectada",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Foi detectado que a configuração exemplo foi copiada. Isso pode desestabilizar sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php",
+ "Help" : "Ajuda",
+ "Personal" : "Pessoal",
+ "Settings" : "Configurações",
+ "Users" : "Usuários",
+ "Admin" : "Admin",
+ "Recommended" : "Recomendado",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplicação \\\"%s\\\" não pode ser instalada porque não é compatível com esta versão do ownCloud.",
+ "No app name specified" : "O nome do aplicativo não foi especificado.",
+ "Unknown filetype" : "Tipo de arquivo desconhecido",
+ "Invalid image" : "Imagem inválida",
+ "Database Error" : "Erro no Banco de Dados",
+ "Please contact your system administrator." : "Por favor cotactar seu administrador do sistema.",
+ "web services under your control" : "serviços web sob seu controle",
+ "App directory already exists" : "Diretório App já existe",
+ "Can't create app folder. Please fix permissions. %s" : "Não é possível criar pasta app. Corrija as permissões. %s",
+ "No source specified when installing app" : "Nenhuma fonte foi especificada enquanto instalava o aplicativo",
+ "No href specified when installing app from http" : "Nenhuma href foi especificada enquanto instalava o aplicativo de http",
+ "No path specified when installing app from local file" : "Nenhum caminho foi especificado enquanto instalava o aplicativo do arquivo local",
+ "Archives of type %s are not supported" : "Arquivos do tipo %s não são suportados",
+ "Failed to open archive when installing app" : "Falha para abrir o arquivo enquanto instalava o aplicativo",
+ "App does not provide an info.xml file" : "O aplicativo não fornece um arquivo info.xml",
+ "App can't be installed because of not allowed code in the App" : "O aplicativo não pode ser instalado por causa do código não permitido no Aplivativo",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "O aplicativo não pode ser instalado porque não é compatível com esta versão do ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "O aplicativo não pode ser instalado porque ele contém a marca verdadeiro que não é permitido para aplicações não embarcadas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "O aplicativo não pode ser instalado porque a versão em info.xml/versão não é a mesma que a versão relatada na App Store",
+ "Application is not enabled" : "Aplicação não está habilitada",
+ "Authentication error" : "Erro de autenticação",
+ "Token expired. Please reload page." : "Token expirou. Por favor recarregue a página.",
+ "Unknown user" : "Usuário desconhecido",
+ "%s enter the database username." : "%s insira o nome de usuário do banco de dados.",
+ "%s enter the database name." : "%s insira o nome do banco de dados.",
+ "%s you may not use dots in the database name" : "%s você não pode usar pontos no nome do banco de dados",
+ "MS SQL username and/or password not valid: %s" : "Nome de usuário e/ou senha MS SQL inválido(s): %s",
+ "You need to enter either an existing account or the administrator." : "Você precisa inserir uma conta existente ou a do administrador.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB nome de usuário e/ou senha não é válida",
+ "DB Error: \"%s\"" : "Erro no BD: \"%s\"",
+ "Offending command was: \"%s\"" : "Comando ofensivo era: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB usuário '%s'@'localhost' já existe.",
+ "Drop this user from MySQL/MariaDB" : "Eliminar esse usuário de MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB usuário '%s'@'%%' já existe",
+ "Drop this user from MySQL/MariaDB." : "Eliminar esse usuário de MySQL/MariaDB",
+ "Oracle connection could not be established" : "Conexão Oracle não pode ser estabelecida",
+ "Oracle username and/or password not valid" : "Nome de usuário e/ou senha Oracle inválido(s)",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Comando ofensivo era: \"%s\", nome: %s, senha: %s",
+ "PostgreSQL username and/or password not valid" : "Nome de usuário e/ou senha PostgreSQL inválido(s)",
+ "Set an admin username." : "Defina um nome do usuário administrador.",
+ "Set an admin password." : "Defina uma senha de administrador.",
+ "Can't create or write into the data directory %s" : "Não é possível criar ou gravar no diretório de dados %s",
+ "%s shared »%s« with you" : "%s compartilhou »%s« com você",
+ "Sharing %s failed, because the file does not exist" : "Compartilhamento %s falhou, porque o arquivo não existe",
+ "You are not allowed to share %s" : "Você não tem permissão para compartilhar %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Compartilhamento %s falhou, porque o usuário %s é o proprietário do item",
+ "Sharing %s failed, because the user %s does not exist" : "Compartilhamento %s falhou, porque o usuário %s não existe",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Compartilhamento %s falhou, porque o usuário %s não é membro de nenhum grupo que o usuário %s pertença",
+ "Sharing %s failed, because this item is already shared with %s" : "Compartilhamento %s falhou, porque este ítem já está compartilhado com %s",
+ "Sharing %s failed, because the group %s does not exist" : "Compartilhamento %s falhou, porque o grupo %s não existe",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Compartilhamento %s falhou, porque %s não é membro do grupo %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Você precisa fornecer uma senha para criar um link público, apenas links protegidos são permitidos",
+ "Sharing %s failed, because sharing with links is not allowed" : "Compartilhamento %s falhou, porque compartilhamento com links não é permitido",
+ "Share type %s is not valid for %s" : "Tipo de compartilhamento %s não é válido para %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Definir permissões para %s falhou, porque as permissões excedem as permissões concedidas a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Definir permissões para %s falhou, porque o item não foi encontrado",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Não é possível definir a data de expiração. Compartilhamentos não podem expirar mais tarde que %s depois de terem sido compartilhados",
+ "Cannot set expiration date. Expiration date is in the past" : "Não é possível definir a data de validade. Data de expiração está no passado",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Compartilhando backend %s deve implementar a interface OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Compartilhamento backend %s não encontrado",
+ "Sharing backend for %s not found" : "Compartilhamento backend para %s não encontrado",
+ "Sharing %s failed, because the user %s is the original sharer" : "Compartilhando %s falhou, porque o usuário %s é o compartilhador original",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Compartilhamento %s falhou, porque as permissões excedem as permissões concedidas a %s",
+ "Sharing %s failed, because resharing is not allowed" : "Compartilhamento %s falhou, porque recompartilhamentos não são permitidos",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Compartilhamento %s falhou, porque a infra-estrutura de compartilhamento para %s não conseguiu encontrar a sua fonte",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Compartilhamento %s falhou, porque o arquivo não pôde ser encontrado no cache de arquivos",
+ "Could not find category \"%s\"" : "Impossível localizar categoria \"%s\"",
+ "seconds ago" : "segundos atrás",
+ "_%n minute ago_::_%n minutes ago_" : ["","ha %n minutos"],
+ "_%n hour ago_::_%n hours ago_" : ["","ha %n horas"],
+ "today" : "hoje",
+ "yesterday" : "ontem",
+ "_%n day go_::_%n days ago_" : ["","ha %n dias"],
+ "last month" : "último mês",
+ "_%n month ago_::_%n months ago_" : ["","ha %n meses"],
+ "last year" : "último ano",
+ "years ago" : "anos atrás",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Somente os seguintes caracteres são permitidos no nome do usuário: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
+ "A valid username must be provided" : "Forneça um nome de usuário válido",
+ "A valid password must be provided" : "Forneça uma senha válida",
+ "The username is already being used" : "Este nome de usuário já está sendo usado",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nenhum driver de banco de dados (sqlite, mysql, or postgresql) instalado.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Permissões podem ser corrigidas dando permissão de escita %sgiving ao webserver para o diretório raiz directory%s",
+ "Cannot write into \"config\" directory" : "Não é possível gravar no diretório \"config\"",
+ "Cannot write into \"apps\" directory" : "Não é possível gravar no diretório \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Isto pode ser corrigido dando ao webserver permissão de escrita %sgiving para o diretório apps directory%s ou desabilitando o appstore no arquivo de configuração.",
+ "Cannot create \"data\" directory (%s)" : "Não pode ser criado \"dados\" no diretório (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Isto pode ser corrigido por dando ao webserver permissão de escrita ao diretório raiz .",
+ "Setting locale to %s failed" : "Falha ao configurar localidade para %s",
+ "Please install one of these locales on your system and restart your webserver." : "Por favor, defina uma dessas localizações em seu sistema e reinicie o seu servidor web.",
+ "Please ask your server administrator to install the module." : "Por favor, peça ao seu administrador do servidor para instalar o módulo.",
+ "PHP module %s not installed." : "Módulo PHP %s não instalado.",
+ "PHP %s or higher is required." : "É requerido PHP %s ou superior.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, peça ao seu administrador do servidor para atualizar o PHP para a versão mais recente. A sua versão do PHP não é mais suportado pelo ownCloud e a comunidade PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode está habilitado. ownCloud exige que ele esteja desativado para funcionar corretamente.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode é um cenário obsoleto e praticamente inútil que deve ser desativado. Por favor, peça ao seu administrador do servidor para desativá-lo no php.ini ou na sua configuração webserver.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes está habilitado. ownCloud exige que ele esteja desativado para funcionar corretamente.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes é um cenário obsoleto e praticamente inútil que deve ser desativado. Por favor, peça ao seu administrador do servidor para desativá-lo no php.ini ou na sua configuração webserver.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Módulos do PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
+ "Please ask your server administrator to restart the web server." : "Por favor, peça ao seu administrador do servidor para reiniciar o servidor web.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 requirido",
+ "Please upgrade your database version" : "Por favor, atualize sua versão do banco de dados",
+ "Error occurred while checking PostgreSQL version" : "Erro ao verificar a versão do PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor, verifique se você tem PostgreSQL> = 9 ou verificar os logs para obter mais informações sobre o erro",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor, altere as permissões para 0770 para que o diretório não possa ser listado por outros usuários.",
+ "Data directory (%s) is readable by other users" : "Diretório de dados (%s) pode ser lido por outros usuários",
+ "Data directory (%s) is invalid" : "Diretório de dados (%s) é inválido",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Por favor, verifique se o diretório de dados contém um arquivo \".ocdata\" em sua raiz.",
+ "Could not obtain lock type %d on \"%s\"." : "Não foi possível obter tipo de bloqueio %d em \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/pt_BR.php b/lib/l10n/pt_BR.php
deleted file mode 100644
index 57152025794..00000000000
--- a/lib/l10n/pt_BR.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Não é possível gravar no diretório \"config\"!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Isso geralmente pode ser corrigido dando o acesso de gravação ao webserver para o diretório de configuração",
-"See %s" => "Ver %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Isso geralmente pode ser corrigido dando permissão de gravação %sgiving ao webserver para o directory%s de configuração.",
-"Sample configuration detected" => "Exemplo de configuração detectada",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Foi detectado que a configuração exemplo foi copiada. Isso pode desestabilizar sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php",
-"Help" => "Ajuda",
-"Personal" => "Pessoal",
-"Settings" => "Configurações",
-"Users" => "Usuários",
-"Admin" => "Admin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Aplicação \\\"%s\\\" não pode ser instalada porque não é compatível com esta versão do ownCloud.",
-"No app name specified" => "O nome do aplicativo não foi especificado.",
-"Unknown filetype" => "Tipo de arquivo desconhecido",
-"Invalid image" => "Imagem inválida",
-"web services under your control" => "serviços web sob seu controle",
-"App directory already exists" => "Diretório App já existe",
-"Can't create app folder. Please fix permissions. %s" => "Não é possível criar pasta app. Corrija as permissões. %s",
-"No source specified when installing app" => "Nenhuma fonte foi especificada enquanto instalava o aplicativo",
-"No href specified when installing app from http" => "Nenhuma href foi especificada enquanto instalava o aplicativo de http",
-"No path specified when installing app from local file" => "Nenhum caminho foi especificado enquanto instalava o aplicativo do arquivo local",
-"Archives of type %s are not supported" => "Arquivos do tipo %s não são suportados",
-"Failed to open archive when installing app" => "Falha para abrir o arquivo enquanto instalava o aplicativo",
-"App does not provide an info.xml file" => "O aplicativo não fornece um arquivo info.xml",
-"App can't be installed because of not allowed code in the App" => "O aplicativo não pode ser instalado por causa do código não permitido no Aplivativo",
-"App can't be installed because it is not compatible with this version of ownCloud" => "O aplicativo não pode ser instalado porque não é compatível com esta versão do ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "O aplicativo não pode ser instalado porque ele contém a marca verdadeiro que não é permitido para aplicações não embarcadas",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "O aplicativo não pode ser instalado porque a versão em info.xml/versão não é a mesma que a versão relatada na App Store",
-"Application is not enabled" => "Aplicação não está habilitada",
-"Authentication error" => "Erro de autenticação",
-"Token expired. Please reload page." => "Token expirou. Por favor recarregue a página.",
-"Unknown user" => "Usuário desconhecido",
-"%s enter the database username." => "%s insira o nome de usuário do banco de dados.",
-"%s enter the database name." => "%s insira o nome do banco de dados.",
-"%s you may not use dots in the database name" => "%s você não pode usar pontos no nome do banco de dados",
-"MS SQL username and/or password not valid: %s" => "Nome de usuário e/ou senha MS SQL inválido(s): %s",
-"You need to enter either an existing account or the administrator." => "Você precisa inserir uma conta existente ou a do administrador.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB nome de usuário e/ou senha não é válida",
-"DB Error: \"%s\"" => "Erro no BD: \"%s\"",
-"Offending command was: \"%s\"" => "Comando ofensivo era: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB usuário '%s'@'localhost' já existe.",
-"Drop this user from MySQL/MariaDB" => "Eliminar esse usuário de MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB usuário '%s'@'%%' já existe",
-"Drop this user from MySQL/MariaDB." => "Eliminar esse usuário de MySQL/MariaDB",
-"Oracle connection could not be established" => "Conexão Oracle não pode ser estabelecida",
-"Oracle username and/or password not valid" => "Nome de usuário e/ou senha Oracle inválido(s)",
-"Offending command was: \"%s\", name: %s, password: %s" => "Comando ofensivo era: \"%s\", nome: %s, senha: %s",
-"PostgreSQL username and/or password not valid" => "Nome de usuário e/ou senha PostgreSQL inválido(s)",
-"Set an admin username." => "Defina um nome do usuário administrador.",
-"Set an admin password." => "Defina uma senha de administrador.",
-"Can't create or write into the data directory %s" => "Não é possível criar ou gravar no diretório de dados %s",
-"%s shared »%s« with you" => "%s compartilhou »%s« com você",
-"Sharing %s failed, because the file does not exist" => "Compartilhamento %s falhou, porque o arquivo não existe",
-"You are not allowed to share %s" => "Você não tem permissão para compartilhar %s",
-"Sharing %s failed, because the user %s is the item owner" => "Compartilhamento %s falhou, porque o usuário %s é o proprietário do item",
-"Sharing %s failed, because the user %s does not exist" => "Compartilhamento %s falhou, porque o usuário %s não existe",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Compartilhamento %s falhou, porque o usuário %s não é membro de nenhum grupo que o usuário %s pertença",
-"Sharing %s failed, because this item is already shared with %s" => "Compartilhamento %s falhou, porque este ítem já está compartilhado com %s",
-"Sharing %s failed, because the group %s does not exist" => "Compartilhamento %s falhou, porque o grupo %s não existe",
-"Sharing %s failed, because %s is not a member of the group %s" => "Compartilhamento %s falhou, porque %s não é membro do grupo %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Você precisa fornecer uma senha para criar um link público, apenas links protegidos são permitidos",
-"Sharing %s failed, because sharing with links is not allowed" => "Compartilhamento %s falhou, porque compartilhamento com links não é permitido",
-"Share type %s is not valid for %s" => "Tipo de compartilhamento %s não é válido para %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Definir permissões para %s falhou, porque as permissões excedem as permissões concedidas a %s",
-"Setting permissions for %s failed, because the item was not found" => "Definir permissões para %s falhou, porque o item não foi encontrado",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Não é possível definir a data de expiração. Compartilhamentos não podem expirar mais tarde que %s depois de terem sido compartilhados",
-"Cannot set expiration date. Expiration date is in the past" => "Não é possível definir a data de validade. Data de expiração está no passado",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Compartilhando backend %s deve implementar a interface OCP\\Share_Backend",
-"Sharing backend %s not found" => "Compartilhamento backend %s não encontrado",
-"Sharing backend for %s not found" => "Compartilhamento backend para %s não encontrado",
-"Sharing %s failed, because the user %s is the original sharer" => "Compartilhando %s falhou, porque o usuário %s é o compartilhador original",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Compartilhamento %s falhou, porque as permissões excedem as permissões concedidas a %s",
-"Sharing %s failed, because resharing is not allowed" => "Compartilhamento %s falhou, porque recompartilhamentos não são permitidos",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Compartilhamento %s falhou, porque a infra-estrutura de compartilhamento para %s não conseguiu encontrar a sua fonte",
-"Sharing %s failed, because the file could not be found in the file cache" => "Compartilhamento %s falhou, porque o arquivo não pôde ser encontrado no cache de arquivos",
-"Could not find category \"%s\"" => "Impossível localizar categoria \"%s\"",
-"seconds ago" => "segundos atrás",
-"_%n minute ago_::_%n minutes ago_" => array("","ha %n minutos"),
-"_%n hour ago_::_%n hours ago_" => array("","ha %n horas"),
-"today" => "hoje",
-"yesterday" => "ontem",
-"_%n day go_::_%n days ago_" => array("","ha %n dias"),
-"last month" => "último mês",
-"_%n month ago_::_%n months ago_" => array("","ha %n meses"),
-"last year" => "último ano",
-"years ago" => "anos atrás",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Somente os seguintes caracteres são permitidos no nome do usuário: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
-"A valid username must be provided" => "Forneça um nome de usuário válido",
-"A valid password must be provided" => "Forneça uma senha válida",
-"The username is already being used" => "Este nome de usuário já está sendo usado",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Nenhum driver de banco de dados (sqlite, mysql, or postgresql) instalado.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Permissões podem ser corrigidas dando permissão de escita %sgiving ao webserver para o diretório raiz directory%s",
-"Cannot write into \"config\" directory" => "Não é possível gravar no diretório \"config\"",
-"Cannot write into \"apps\" directory" => "Não é possível gravar no diretório \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Isto pode ser corrigido dando ao webserver permissão de escrita %sgiving para o diretório apps directory%s ou desabilitando o appstore no arquivo de configuração.",
-"Cannot create \"data\" directory (%s)" => "Não pode ser criado \"dados\" no diretório (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Isto pode ser corrigido por dando ao webserver permissão de escrita ao diretório raiz .",
-"Setting locale to %s failed" => "Falha ao configurar localidade para %s",
-"Please install one of these locales on your system and restart your webserver." => "Por favor, defina uma dessas localizações em seu sistema e reinicie o seu servidor web.",
-"Please ask your server administrator to install the module." => "Por favor, peça ao seu administrador do servidor para instalar o módulo.",
-"PHP module %s not installed." => "Módulo PHP %s não instalado.",
-"PHP %s or higher is required." => "É requerido PHP %s ou superior.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Por favor, peça ao seu administrador do servidor para atualizar o PHP para a versão mais recente. A sua versão do PHP não é mais suportado pelo ownCloud e a comunidade PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode está habilitado. ownCloud exige que ele esteja desativado para funcionar corretamente.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode é um cenário obsoleto e praticamente inútil que deve ser desativado. Por favor, peça ao seu administrador do servidor para desativá-lo no php.ini ou na sua configuração webserver.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes está habilitado. ownCloud exige que ele esteja desativado para funcionar corretamente.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes é um cenário obsoleto e praticamente inútil que deve ser desativado. Por favor, peça ao seu administrador do servidor para desativá-lo no php.ini ou na sua configuração webserver.",
-"PHP modules have been installed, but they are still listed as missing?" => "Módulos do PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
-"Please ask your server administrator to restart the web server." => "Por favor, peça ao seu administrador do servidor para reiniciar o servidor web.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 requirido",
-"Please upgrade your database version" => "Por favor, atualize sua versão do banco de dados",
-"Error occurred while checking PostgreSQL version" => "Erro ao verificar a versão do PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Por favor, verifique se você tem PostgreSQL> = 9 ou verificar os logs para obter mais informações sobre o erro",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Por favor, altere as permissões para 0770 para que o diretório não possa ser listado por outros usuários.",
-"Data directory (%s) is readable by other users" => "Diretório de dados (%s) pode ser lido por outros usuários",
-"Data directory (%s) is invalid" => "Diretório de dados (%s) é inválido",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Por favor, verifique se o diretório de dados contém um arquivo \".ocdata\" em sua raiz.",
-"Could not obtain lock type %d on \"%s\"." => "Não foi possível obter tipo de bloqueio %d em \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/lib/l10n/pt_PT.js b/lib/l10n/pt_PT.js
new file mode 100644
index 00000000000..0bbac09c9b1
--- /dev/null
+++ b/lib/l10n/pt_PT.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Não é possível gravar na directoria \"configurar\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Isto pode ser resolvido normalmente dando ao servidor web direitos de escrita ao directório de configuração",
+ "See %s" : "Ver %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Isto pode ser resolvido normalmente %sdando ao servidor web direitos de escrita no directório de configuração%s.",
+ "Sample configuration detected" : "Exemplo de configuração detectada",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Foi detectado que a configuração de amostra foi copiada. Isso pode danificar a sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php",
+ "Help" : "Ajuda",
+ "Personal" : "Pessoal",
+ "Settings" : "Configurações",
+ "Users" : "Utilizadores",
+ "Admin" : "Admin",
+ "Recommended" : "Recomendado",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "A Aplicação \\\"%s\\\" não pode ser instalada porque não é compatível com esta versão do owncloud.",
+ "No app name specified" : "O nome da aplicação não foi especificado",
+ "Unknown filetype" : "Ficheiro desconhecido",
+ "Invalid image" : "Imagem inválida",
+ "Database Error" : "Erro da Base de Dados",
+ "Please contact your system administrator." : "Por favor contacte o administrador do sistema.",
+ "web services under your control" : "serviços web sob o seu controlo",
+ "App directory already exists" : "A directoria da aplicação já existe",
+ "Can't create app folder. Please fix permissions. %s" : "Não foi possível criar a pasta da aplicação. Por favor verifique as permissões. %s",
+ "No source specified when installing app" : "Não foi especificada uma fonte de instalação desta aplicação",
+ "No href specified when installing app from http" : "Não foi especificada uma href http para instalar esta aplicação",
+ "No path specified when installing app from local file" : "Não foi especificado o caminho de instalação desta aplicação",
+ "Archives of type %s are not supported" : "Arquivos do tipo %s não são suportados",
+ "Failed to open archive when installing app" : "Ocorreu um erro ao abrir o ficheiro de instalação desta aplicação",
+ "App does not provide an info.xml file" : "A aplicação não disponibiliza um ficheiro info.xml",
+ "App can't be installed because of not allowed code in the App" : "A aplicação não pode ser instalado devido a código não permitido dentro da aplicação",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "A aplicação não pode ser instalada por não ser compatível com esta versão do ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Esta aplicação não pode ser instalada por que contém o tag true que só é permitido para aplicações nativas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Esta aplicação não pode ser instalada porque a versão no info.xml/version não coincide com a reportada na loja de aplicações",
+ "Application is not enabled" : "A aplicação não está activada",
+ "Authentication error" : "Erro na autenticação",
+ "Token expired. Please reload page." : "O token expirou. Por favor recarregue a página.",
+ "Unknown user" : "Utilizador desconhecido",
+ "%s enter the database username." : "%s introduza o nome de utilizador da base de dados",
+ "%s enter the database name." : "%s introduza o nome da base de dados",
+ "%s you may not use dots in the database name" : "%s não é permitido utilizar pontos (.) no nome da base de dados",
+ "MS SQL username and/or password not valid: %s" : "Nome de utilizador/password do MySQL é inválido: %s",
+ "You need to enter either an existing account or the administrator." : "Precisa de introduzir uma conta existente ou de administrador",
+ "MySQL/MariaDB username and/or password not valid" : "Nome de utilizador/password do MySQL/Maria DB inválida",
+ "DB Error: \"%s\"" : "Erro na BD: \"%s\"",
+ "Offending command was: \"%s\"" : "O comando gerador de erro foi: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "O utilizador '%s'@'localhost' do MySQL/MariaDB já existe.",
+ "Drop this user from MySQL/MariaDB" : "Eliminar este utilizador do MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "O utilizador '%s'@'%%' do MySQL/MariaDB já existe",
+ "Drop this user from MySQL/MariaDB." : "Eliminar este utilizador do MySQL/MariaDB",
+ "Oracle connection could not be established" : "Não foi possível estabelecer a ligação Oracle",
+ "Oracle username and/or password not valid" : "Nome de utilizador/password do Oracle inválida",
+ "Offending command was: \"%s\", name: %s, password: %s" : "O comando gerador de erro foi: \"%s\", nome: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "Nome de utilizador/password do PostgreSQL inválido",
+ "Set an admin username." : "Definir um nome de utilizador de administrador",
+ "Set an admin password." : "Definiar uma password de administrador",
+ "Can't create or write into the data directory %s" : "Não é possível criar ou escrever a directoria data %s",
+ "%s shared »%s« with you" : "%s partilhado »%s« consigo",
+ "Sharing %s failed, because the file does not exist" : "A partilha de %s falhou, porque o ficheiro não existe",
+ "You are not allowed to share %s" : "Não está autorizado a partilhar %s",
+ "Sharing %s failed, because the user %s is the item owner" : "A partilha %s falhou, porque o utilizador %s é o proprietário",
+ "Sharing %s failed, because the user %s does not exist" : "A partilha %s falhou, porque o utilizador %s nao existe",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "A partilha %s falhou, porque o utilizador %s não pertence a nenhum dos grupos que %s é membro de",
+ "Sharing %s failed, because this item is already shared with %s" : "A partilha %s falhou, porque o item já está a ser partilhado com %s",
+ "Sharing %s failed, because the group %s does not exist" : "A partilha %s falhou, porque o grupo %s não existe",
+ "Sharing %s failed, because %s is not a member of the group %s" : "A partilha %s falhou, porque o utilizador %s não é membro do grupo %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Necessita de fornecer a senha para criar um link publico, só são permitidos links protegidos",
+ "Sharing %s failed, because sharing with links is not allowed" : "A partilha de %s falhou, porque partilhar com links não é permitido",
+ "Share type %s is not valid for %s" : "O tipo de partilha %s não é válido para %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Definir permissões para %s falhou, porque as permissões excedem as permissões concedidas a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Definir permissões para %s falhou, porque o item não foi encontrado",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Não é possível definir data de expiração. As partilhas não podem expirar mais de %s depois de terem sido partilhadas",
+ "Cannot set expiration date. Expiration date is in the past" : "Não é possivel definir data de expiração. A data de expiração está no passado",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Partilhar backend %s tem de implementar o interface OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Partilha backend %s não foi encontrado",
+ "Sharing backend for %s not found" : "Partilha backend para %s não foi encontrado",
+ "Sharing %s failed, because the user %s is the original sharer" : "A partilha %s falhou, porque o utilizador %s é o proprietário original",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Definir permissões para %s falhou, porque as permissões excedem as permissões concedidas a %s",
+ "Sharing %s failed, because resharing is not allowed" : "A partilha %s falhou, porque repartilhar não é permitido",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "A partilha %s falhou, devido a partilha em segundo plano para %s não conseguir encontrar a sua fonte",
+ "Sharing %s failed, because the file could not be found in the file cache" : "A partilha %s falhou, devido ao ficheiro não poder ser encontrado na cache de ficheiros",
+ "Could not find category \"%s\"" : "Não foi encontrado a categoria \"%s\"",
+ "seconds ago" : "Minutos atrás",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutos atrás"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n horas atrás"],
+ "today" : "hoje",
+ "yesterday" : "ontem",
+ "_%n day go_::_%n days ago_" : ["","%n dias atrás"],
+ "last month" : "ultímo mês",
+ "_%n month ago_::_%n months ago_" : ["","%n meses atrás"],
+ "last year" : "ano passado",
+ "years ago" : "anos atrás",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Apenas os seguintes caracteres são permitidos no nome de utilizador: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
+ "A valid username must be provided" : "Um nome de utilizador válido deve ser fornecido",
+ "A valid password must be provided" : "Uma password válida deve ser fornecida",
+ "The username is already being used" : "O nome de utilizador já está a ser usado",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nenhuma base de dados de drivers (sqlite, mysql, or postgresql) instaladas.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "As autorizações podem ser resolvidas normalmente %sdando ao servidor web direito de escrita para o directório root%s.",
+ "Cannot write into \"config\" directory" : "Não é possível escrever na directoria \"configurar\"",
+ "Cannot write into \"apps\" directory" : "Não é possivel escrever na directoria \"aplicações\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Isto pode ser normalmente resolvido %sdando ao servidor web direito de escrita para o directório de aplicação%s ou desactivando a loja de aplicações no ficheiro de configuração.",
+ "Cannot create \"data\" directory (%s)" : "Não é possivel criar a directoria \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Isto pode ser normalmente resolvido dando ao servidor web direito de escrita para o directório do root .",
+ "Setting locale to %s failed" : "Definindo local para %s falhado",
+ "Please install one of these locales on your system and restart your webserver." : "Por favor instale um destes locais no seu sistema e reinicie o seu servidor web.",
+ "Please ask your server administrator to install the module." : "Por favor pergunte ao seu administrador do servidor para instalar o modulo.",
+ "PHP module %s not installed." : "O modulo %s PHP não está instalado.",
+ "PHP %s or higher is required." : "Necessário PHP %s ou maior.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor pessa ao seu administrador de servidor para actualizar o PHP para a ultima versão. A sua versão de PHP não é mais suportada pelo owncloud e a comunidade PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "O modo seguro de PHP está activo. O ownCloud requer que isto esteja desactivado para funcionar em condições.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "O modo seguro PHP está obsoleto e a maior parte das definições inúteis devem ser desactivadas. Por favor pessa ao seu administrador de servidor para desactivar isto em php.ini ou no seu config do servidor web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Aspas mágicas estão activadas. O ownCloud requere que isto esteja desactivado para trabalhar em condições.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "As aspas mágicas é uma definição obsoleta e inútil que deve ser desactivada. Por favor pessa ao seu administrador do servidor para desactivar isto em php.ini ou no config do seu servidor web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Os módulos PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
+ "Please ask your server administrator to restart the web server." : "Pro favor pergunte ao seu administrador do servidor para reiniciar o servidor da internet.",
+ "PostgreSQL >= 9 required" : "Necessita PostgreSQL >= 9",
+ "Please upgrade your database version" : "Por favor actualize a sua versão da base de dados",
+ "Error occurred while checking PostgreSQL version" : "Ocorreu um erro enquanto pesquisava a versão do PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor confirme que tem o PostgreSQL >= 9 ou verifique os registos para mais informação sobre o erro",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor altere as permissões para 0770 para que esse directório não possa ser listado por outros utilizadores.",
+ "Data directory (%s) is readable by other users" : "O directório de dados (%s) é legível para outros utilizadores",
+ "Data directory (%s) is invalid" : "Directoria data (%s) é invalida",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Por favor verifique que a directoria data contem um ficheiro \".ocdata\" na sua raiz.",
+ "Could not obtain lock type %d on \"%s\"." : "Não foi possível obter o tipo de bloqueio %d em \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/pt_PT.json b/lib/l10n/pt_PT.json
new file mode 100644
index 00000000000..067dc4b9751
--- /dev/null
+++ b/lib/l10n/pt_PT.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Não é possível gravar na directoria \"configurar\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Isto pode ser resolvido normalmente dando ao servidor web direitos de escrita ao directório de configuração",
+ "See %s" : "Ver %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Isto pode ser resolvido normalmente %sdando ao servidor web direitos de escrita no directório de configuração%s.",
+ "Sample configuration detected" : "Exemplo de configuração detectada",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Foi detectado que a configuração de amostra foi copiada. Isso pode danificar a sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php",
+ "Help" : "Ajuda",
+ "Personal" : "Pessoal",
+ "Settings" : "Configurações",
+ "Users" : "Utilizadores",
+ "Admin" : "Admin",
+ "Recommended" : "Recomendado",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "A Aplicação \\\"%s\\\" não pode ser instalada porque não é compatível com esta versão do owncloud.",
+ "No app name specified" : "O nome da aplicação não foi especificado",
+ "Unknown filetype" : "Ficheiro desconhecido",
+ "Invalid image" : "Imagem inválida",
+ "Database Error" : "Erro da Base de Dados",
+ "Please contact your system administrator." : "Por favor contacte o administrador do sistema.",
+ "web services under your control" : "serviços web sob o seu controlo",
+ "App directory already exists" : "A directoria da aplicação já existe",
+ "Can't create app folder. Please fix permissions. %s" : "Não foi possível criar a pasta da aplicação. Por favor verifique as permissões. %s",
+ "No source specified when installing app" : "Não foi especificada uma fonte de instalação desta aplicação",
+ "No href specified when installing app from http" : "Não foi especificada uma href http para instalar esta aplicação",
+ "No path specified when installing app from local file" : "Não foi especificado o caminho de instalação desta aplicação",
+ "Archives of type %s are not supported" : "Arquivos do tipo %s não são suportados",
+ "Failed to open archive when installing app" : "Ocorreu um erro ao abrir o ficheiro de instalação desta aplicação",
+ "App does not provide an info.xml file" : "A aplicação não disponibiliza um ficheiro info.xml",
+ "App can't be installed because of not allowed code in the App" : "A aplicação não pode ser instalado devido a código não permitido dentro da aplicação",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "A aplicação não pode ser instalada por não ser compatível com esta versão do ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Esta aplicação não pode ser instalada por que contém o tag true que só é permitido para aplicações nativas",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Esta aplicação não pode ser instalada porque a versão no info.xml/version não coincide com a reportada na loja de aplicações",
+ "Application is not enabled" : "A aplicação não está activada",
+ "Authentication error" : "Erro na autenticação",
+ "Token expired. Please reload page." : "O token expirou. Por favor recarregue a página.",
+ "Unknown user" : "Utilizador desconhecido",
+ "%s enter the database username." : "%s introduza o nome de utilizador da base de dados",
+ "%s enter the database name." : "%s introduza o nome da base de dados",
+ "%s you may not use dots in the database name" : "%s não é permitido utilizar pontos (.) no nome da base de dados",
+ "MS SQL username and/or password not valid: %s" : "Nome de utilizador/password do MySQL é inválido: %s",
+ "You need to enter either an existing account or the administrator." : "Precisa de introduzir uma conta existente ou de administrador",
+ "MySQL/MariaDB username and/or password not valid" : "Nome de utilizador/password do MySQL/Maria DB inválida",
+ "DB Error: \"%s\"" : "Erro na BD: \"%s\"",
+ "Offending command was: \"%s\"" : "O comando gerador de erro foi: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "O utilizador '%s'@'localhost' do MySQL/MariaDB já existe.",
+ "Drop this user from MySQL/MariaDB" : "Eliminar este utilizador do MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "O utilizador '%s'@'%%' do MySQL/MariaDB já existe",
+ "Drop this user from MySQL/MariaDB." : "Eliminar este utilizador do MySQL/MariaDB",
+ "Oracle connection could not be established" : "Não foi possível estabelecer a ligação Oracle",
+ "Oracle username and/or password not valid" : "Nome de utilizador/password do Oracle inválida",
+ "Offending command was: \"%s\", name: %s, password: %s" : "O comando gerador de erro foi: \"%s\", nome: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "Nome de utilizador/password do PostgreSQL inválido",
+ "Set an admin username." : "Definir um nome de utilizador de administrador",
+ "Set an admin password." : "Definiar uma password de administrador",
+ "Can't create or write into the data directory %s" : "Não é possível criar ou escrever a directoria data %s",
+ "%s shared »%s« with you" : "%s partilhado »%s« consigo",
+ "Sharing %s failed, because the file does not exist" : "A partilha de %s falhou, porque o ficheiro não existe",
+ "You are not allowed to share %s" : "Não está autorizado a partilhar %s",
+ "Sharing %s failed, because the user %s is the item owner" : "A partilha %s falhou, porque o utilizador %s é o proprietário",
+ "Sharing %s failed, because the user %s does not exist" : "A partilha %s falhou, porque o utilizador %s nao existe",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "A partilha %s falhou, porque o utilizador %s não pertence a nenhum dos grupos que %s é membro de",
+ "Sharing %s failed, because this item is already shared with %s" : "A partilha %s falhou, porque o item já está a ser partilhado com %s",
+ "Sharing %s failed, because the group %s does not exist" : "A partilha %s falhou, porque o grupo %s não existe",
+ "Sharing %s failed, because %s is not a member of the group %s" : "A partilha %s falhou, porque o utilizador %s não é membro do grupo %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Necessita de fornecer a senha para criar um link publico, só são permitidos links protegidos",
+ "Sharing %s failed, because sharing with links is not allowed" : "A partilha de %s falhou, porque partilhar com links não é permitido",
+ "Share type %s is not valid for %s" : "O tipo de partilha %s não é válido para %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Definir permissões para %s falhou, porque as permissões excedem as permissões concedidas a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Definir permissões para %s falhou, porque o item não foi encontrado",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Não é possível definir data de expiração. As partilhas não podem expirar mais de %s depois de terem sido partilhadas",
+ "Cannot set expiration date. Expiration date is in the past" : "Não é possivel definir data de expiração. A data de expiração está no passado",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Partilhar backend %s tem de implementar o interface OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Partilha backend %s não foi encontrado",
+ "Sharing backend for %s not found" : "Partilha backend para %s não foi encontrado",
+ "Sharing %s failed, because the user %s is the original sharer" : "A partilha %s falhou, porque o utilizador %s é o proprietário original",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Definir permissões para %s falhou, porque as permissões excedem as permissões concedidas a %s",
+ "Sharing %s failed, because resharing is not allowed" : "A partilha %s falhou, porque repartilhar não é permitido",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "A partilha %s falhou, devido a partilha em segundo plano para %s não conseguir encontrar a sua fonte",
+ "Sharing %s failed, because the file could not be found in the file cache" : "A partilha %s falhou, devido ao ficheiro não poder ser encontrado na cache de ficheiros",
+ "Could not find category \"%s\"" : "Não foi encontrado a categoria \"%s\"",
+ "seconds ago" : "Minutos atrás",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minutos atrás"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n horas atrás"],
+ "today" : "hoje",
+ "yesterday" : "ontem",
+ "_%n day go_::_%n days ago_" : ["","%n dias atrás"],
+ "last month" : "ultímo mês",
+ "_%n month ago_::_%n months ago_" : ["","%n meses atrás"],
+ "last year" : "ano passado",
+ "years ago" : "anos atrás",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Apenas os seguintes caracteres são permitidos no nome de utilizador: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
+ "A valid username must be provided" : "Um nome de utilizador válido deve ser fornecido",
+ "A valid password must be provided" : "Uma password válida deve ser fornecida",
+ "The username is already being used" : "O nome de utilizador já está a ser usado",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nenhuma base de dados de drivers (sqlite, mysql, or postgresql) instaladas.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "As autorizações podem ser resolvidas normalmente %sdando ao servidor web direito de escrita para o directório root%s.",
+ "Cannot write into \"config\" directory" : "Não é possível escrever na directoria \"configurar\"",
+ "Cannot write into \"apps\" directory" : "Não é possivel escrever na directoria \"aplicações\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Isto pode ser normalmente resolvido %sdando ao servidor web direito de escrita para o directório de aplicação%s ou desactivando a loja de aplicações no ficheiro de configuração.",
+ "Cannot create \"data\" directory (%s)" : "Não é possivel criar a directoria \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Isto pode ser normalmente resolvido dando ao servidor web direito de escrita para o directório do root .",
+ "Setting locale to %s failed" : "Definindo local para %s falhado",
+ "Please install one of these locales on your system and restart your webserver." : "Por favor instale um destes locais no seu sistema e reinicie o seu servidor web.",
+ "Please ask your server administrator to install the module." : "Por favor pergunte ao seu administrador do servidor para instalar o modulo.",
+ "PHP module %s not installed." : "O modulo %s PHP não está instalado.",
+ "PHP %s or higher is required." : "Necessário PHP %s ou maior.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor pessa ao seu administrador de servidor para actualizar o PHP para a ultima versão. A sua versão de PHP não é mais suportada pelo owncloud e a comunidade PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "O modo seguro de PHP está activo. O ownCloud requer que isto esteja desactivado para funcionar em condições.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "O modo seguro PHP está obsoleto e a maior parte das definições inúteis devem ser desactivadas. Por favor pessa ao seu administrador de servidor para desactivar isto em php.ini ou no seu config do servidor web.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Aspas mágicas estão activadas. O ownCloud requere que isto esteja desactivado para trabalhar em condições.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "As aspas mágicas é uma definição obsoleta e inútil que deve ser desactivada. Por favor pessa ao seu administrador do servidor para desactivar isto em php.ini ou no config do seu servidor web.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Os módulos PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
+ "Please ask your server administrator to restart the web server." : "Pro favor pergunte ao seu administrador do servidor para reiniciar o servidor da internet.",
+ "PostgreSQL >= 9 required" : "Necessita PostgreSQL >= 9",
+ "Please upgrade your database version" : "Por favor actualize a sua versão da base de dados",
+ "Error occurred while checking PostgreSQL version" : "Ocorreu um erro enquanto pesquisava a versão do PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Por favor confirme que tem o PostgreSQL >= 9 ou verifique os registos para mais informação sobre o erro",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor altere as permissões para 0770 para que esse directório não possa ser listado por outros utilizadores.",
+ "Data directory (%s) is readable by other users" : "O directório de dados (%s) é legível para outros utilizadores",
+ "Data directory (%s) is invalid" : "Directoria data (%s) é invalida",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Por favor verifique que a directoria data contem um ficheiro \".ocdata\" na sua raiz.",
+ "Could not obtain lock type %d on \"%s\"." : "Não foi possível obter o tipo de bloqueio %d em \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/pt_PT.php b/lib/l10n/pt_PT.php
deleted file mode 100644
index 20cfef8a2cb..00000000000
--- a/lib/l10n/pt_PT.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Não é possível gravar na directoria \"configurar\"!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Isto pode ser resolvido normalmente dando ao servidor web direitos de escrita ao directório de configuração",
-"See %s" => "Ver %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Isto pode ser resolvido normalmente %sdando ao servidor web direitos de escrita no directório de configuração%s.",
-"Sample configuration detected" => "Exemplo de configuração detectada",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Foi detectado que a configuração de amostra foi copiada. Isso pode danificar a sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php",
-"Help" => "Ajuda",
-"Personal" => "Pessoal",
-"Settings" => "Configurações",
-"Users" => "Utilizadores",
-"Admin" => "Admin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "A Aplicação \\\"%s\\\" não pode ser instalada porque não é compatível com esta versão do owncloud.",
-"No app name specified" => "O nome da aplicação não foi especificado",
-"Unknown filetype" => "Ficheiro desconhecido",
-"Invalid image" => "Imagem inválida",
-"web services under your control" => "serviços web sob o seu controlo",
-"App directory already exists" => "A directoria da aplicação já existe",
-"Can't create app folder. Please fix permissions. %s" => "Não foi possível criar a pasta da aplicação. Por favor verifique as permissões. %s",
-"No source specified when installing app" => "Não foi especificada uma fonte de instalação desta aplicação",
-"No href specified when installing app from http" => "Não foi especificada uma href http para instalar esta aplicação",
-"No path specified when installing app from local file" => "Não foi especificado o caminho de instalação desta aplicação",
-"Archives of type %s are not supported" => "Arquivos do tipo %s não são suportados",
-"Failed to open archive when installing app" => "Ocorreu um erro ao abrir o ficheiro de instalação desta aplicação",
-"App does not provide an info.xml file" => "A aplicação não disponibiliza um ficheiro info.xml",
-"App can't be installed because of not allowed code in the App" => "A aplicação não pode ser instalado devido a código não permitido dentro da aplicação",
-"App can't be installed because it is not compatible with this version of ownCloud" => "A aplicação não pode ser instalada por não ser compatível com esta versão do ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Esta aplicação não pode ser instalada por que contém o tag true que só é permitido para aplicações nativas",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Esta aplicação não pode ser instalada porque a versão no info.xml/version não coincide com a reportada na loja de aplicações",
-"Application is not enabled" => "A aplicação não está activada",
-"Authentication error" => "Erro na autenticação",
-"Token expired. Please reload page." => "O token expirou. Por favor recarregue a página.",
-"Unknown user" => "Utilizador desconhecido",
-"%s enter the database username." => "%s introduza o nome de utilizador da base de dados",
-"%s enter the database name." => "%s introduza o nome da base de dados",
-"%s you may not use dots in the database name" => "%s não é permitido utilizar pontos (.) no nome da base de dados",
-"MS SQL username and/or password not valid: %s" => "Nome de utilizador/password do MySQL é inválido: %s",
-"You need to enter either an existing account or the administrator." => "Precisa de introduzir uma conta existente ou de administrador",
-"MySQL/MariaDB username and/or password not valid" => "Nome de utilizador/password do MySQL/Maria DB inválida",
-"DB Error: \"%s\"" => "Erro na BD: \"%s\"",
-"Offending command was: \"%s\"" => "O comando gerador de erro foi: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "O utilizador '%s'@'localhost' do MySQL/MariaDB já existe.",
-"Drop this user from MySQL/MariaDB" => "Eliminar este utilizador do MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "O utilizador '%s'@'%%' do MySQL/MariaDB já existe",
-"Drop this user from MySQL/MariaDB." => "Eliminar este utilizador do MySQL/MariaDB",
-"Oracle connection could not be established" => "Não foi possível estabelecer a ligação Oracle",
-"Oracle username and/or password not valid" => "Nome de utilizador/password do Oracle inválida",
-"Offending command was: \"%s\", name: %s, password: %s" => "O comando gerador de erro foi: \"%s\", nome: %s, password: %s",
-"PostgreSQL username and/or password not valid" => "Nome de utilizador/password do PostgreSQL inválido",
-"Set an admin username." => "Definir um nome de utilizador de administrador",
-"Set an admin password." => "Definiar uma password de administrador",
-"Can't create or write into the data directory %s" => "Não é possível criar ou escrever a directoria data %s",
-"%s shared »%s« with you" => "%s partilhado »%s« consigo",
-"Sharing %s failed, because the file does not exist" => "A partilha de %s falhou, porque o ficheiro não existe",
-"You are not allowed to share %s" => "Não está autorizado a partilhar %s",
-"Sharing %s failed, because the user %s is the item owner" => "A partilha %s falhou, porque o utilizador %s é o proprietário",
-"Sharing %s failed, because the user %s does not exist" => "A partilha %s falhou, porque o utilizador %s nao existe",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "A partilha %s falhou, porque o utilizador %s não pertence a nenhum dos grupos que %s é membro de",
-"Sharing %s failed, because this item is already shared with %s" => "A partilha %s falhou, porque o item já está a ser partilhado com %s",
-"Sharing %s failed, because the group %s does not exist" => "A partilha %s falhou, porque o grupo %s não existe",
-"Sharing %s failed, because %s is not a member of the group %s" => "A partilha %s falhou, porque o utilizador %s não é membro do grupo %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Necessita de fornecer a senha para criar um link publico, só são permitidos links protegidos",
-"Sharing %s failed, because sharing with links is not allowed" => "A partilha de %s falhou, porque partilhar com links não é permitido",
-"Share type %s is not valid for %s" => "O tipo de partilha %s não é válido para %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Definir permissões para %s falhou, porque as permissões excedem as permissões concedidas a %s",
-"Setting permissions for %s failed, because the item was not found" => "Definir permissões para %s falhou, porque o item não foi encontrado",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Não é possível definir data de expiração. As partilhas não podem expirar mais de %s depois de terem sido partilhadas",
-"Cannot set expiration date. Expiration date is in the past" => "Não é possivel definir data de expiração. A data de expiração está no passado",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Partilhar backend %s tem de implementar o interface OCP\\Share_Backend",
-"Sharing backend %s not found" => "Partilha backend %s não foi encontrado",
-"Sharing backend for %s not found" => "Partilha backend para %s não foi encontrado",
-"Sharing %s failed, because the user %s is the original sharer" => "A partilha %s falhou, porque o utilizador %s é o proprietário original",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Definir permissões para %s falhou, porque as permissões excedem as permissões concedidas a %s",
-"Sharing %s failed, because resharing is not allowed" => "A partilha %s falhou, porque repartilhar não é permitido",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "A partilha %s falhou, devido a partilha em segundo plano para %s não conseguir encontrar a sua fonte",
-"Sharing %s failed, because the file could not be found in the file cache" => "A partilha %s falhou, devido ao ficheiro não poder ser encontrado na cache de ficheiros",
-"Could not find category \"%s\"" => "Não foi encontrado a categoria \"%s\"",
-"seconds ago" => "Minutos atrás",
-"_%n minute ago_::_%n minutes ago_" => array("","%n minutos atrás"),
-"_%n hour ago_::_%n hours ago_" => array("","%n horas atrás"),
-"today" => "hoje",
-"yesterday" => "ontem",
-"_%n day go_::_%n days ago_" => array("","%n dias atrás"),
-"last month" => "ultímo mês",
-"_%n month ago_::_%n months ago_" => array("","%n meses atrás"),
-"last year" => "ano passado",
-"years ago" => "anos atrás",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Apenas os seguintes caracteres são permitidos no nome de utilizador: \"a-z\", \"A-Z\", \"0-9\", e \"_.@-\"",
-"A valid username must be provided" => "Um nome de utilizador válido deve ser fornecido",
-"A valid password must be provided" => "Uma password válida deve ser fornecida",
-"The username is already being used" => "O nome de utilizador já está a ser usado",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Nenhuma base de dados de drivers (sqlite, mysql, or postgresql) instaladas.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "As autorizações podem ser resolvidas normalmente %sdando ao servidor web direito de escrita para o directório root%s.",
-"Cannot write into \"config\" directory" => "Não é possível escrever na directoria \"configurar\"",
-"Cannot write into \"apps\" directory" => "Não é possivel escrever na directoria \"aplicações\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Isto pode ser normalmente resolvido %sdando ao servidor web direito de escrita para o directório de aplicação%s ou desactivando a loja de aplicações no ficheiro de configuração.",
-"Cannot create \"data\" directory (%s)" => "Não é possivel criar a directoria \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Isto pode ser normalmente resolvido dando ao servidor web direito de escrita para o directório do root .",
-"Setting locale to %s failed" => "Definindo local para %s falhado",
-"Please install one of these locales on your system and restart your webserver." => "Por favor instale um destes locais no seu sistema e reinicie o seu servidor web.",
-"Please ask your server administrator to install the module." => "Por favor pergunte ao seu administrador do servidor para instalar o modulo.",
-"PHP module %s not installed." => "O modulo %s PHP não está instalado.",
-"PHP %s or higher is required." => "Necessário PHP %s ou maior.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Por favor pessa ao seu administrador de servidor para actualizar o PHP para a ultima versão. A sua versão de PHP não é mais suportada pelo owncloud e a comunidade PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "O modo seguro de PHP está activo. O ownCloud requer que isto esteja desactivado para funcionar em condições.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "O modo seguro PHP está obsoleto e a maior parte das definições inúteis devem ser desactivadas. Por favor pessa ao seu administrador de servidor para desactivar isto em php.ini ou no seu config do servidor web.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Aspas mágicas estão activadas. O ownCloud requere que isto esteja desactivado para trabalhar em condições.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "As aspas mágicas é uma definição obsoleta e inútil que deve ser desactivada. Por favor pessa ao seu administrador do servidor para desactivar isto em php.ini ou no config do seu servidor web.",
-"PHP modules have been installed, but they are still listed as missing?" => "Os módulos PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
-"Please ask your server administrator to restart the web server." => "Pro favor pergunte ao seu administrador do servidor para reiniciar o servidor da internet.",
-"PostgreSQL >= 9 required" => "Necessita PostgreSQL >= 9",
-"Please upgrade your database version" => "Por favor actualize a sua versão da base de dados",
-"Error occurred while checking PostgreSQL version" => "Ocorreu um erro enquanto pesquisava a versão do PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Por favor confirme que tem o PostgreSQL >= 9 ou verifique os registos para mais informação sobre o erro",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Por favor altere as permissões para 0770 para que esse directório não possa ser listado por outros utilizadores.",
-"Data directory (%s) is readable by other users" => "O directório de dados (%s) é legível para outros utilizadores",
-"Data directory (%s) is invalid" => "Directoria data (%s) é invalida",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Por favor verifique que a directoria data contem um ficheiro \".ocdata\" na sua raiz.",
-"Could not obtain lock type %d on \"%s\"." => "Não foi possível obter o tipo de bloqueio %d em \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ro.js b/lib/l10n/ro.js
new file mode 100644
index 00000000000..baedf6b6f51
--- /dev/null
+++ b/lib/l10n/ro.js
@@ -0,0 +1,58 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Nu se poate scrie în folderul \"config\"!",
+ "See %s" : "Vezi %s",
+ "Help" : "Ajutor",
+ "Personal" : "Personal",
+ "Settings" : "Setări",
+ "Users" : "Utilizatori",
+ "Admin" : "Admin",
+ "Recommended" : "Recomandat",
+ "No app name specified" : "Niciun nume de aplicație specificat",
+ "Unknown filetype" : "Tip fișier necunoscut",
+ "Invalid image" : "Imagine invalidă",
+ "web services under your control" : "servicii web controlate de tine",
+ "Application is not enabled" : "Aplicația nu este activată",
+ "Authentication error" : "Eroare la autentificare",
+ "Token expired. Please reload page." : "Token expirat. Te rugăm să reîncarci pagina.",
+ "Unknown user" : "Utilizator necunoscut",
+ "%s enter the database name." : "%s introduceți numele bazei de date",
+ "MS SQL username and/or password not valid: %s" : "Nume utilizator și/sau parolă MS SQL greșită: %s",
+ "MySQL/MariaDB username and/or password not valid" : "Nume utilizator și/sau parolă MySQL/MariaDB greșită",
+ "DB Error: \"%s\"" : "Eroare Bază de Date: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Utilizatorul MySQL/MariaDB '%s'@'localhost' deja există.",
+ "Drop this user from MySQL/MariaDB" : "Șterge acest utilizator din MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Utilizatorul MySQL/MariaDB '%s'@'%%' deja există.",
+ "Drop this user from MySQL/MariaDB." : "Șterge acest utilizator din MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Conexiunea Oracle nu a putut fi stabilită",
+ "PostgreSQL username and/or password not valid" : "Nume utilizator și/sau parolă PostgreSQL greșită",
+ "Set an admin username." : "Setează un nume de administrator.",
+ "Set an admin password." : "Setează o parolă de administrator.",
+ "%s shared »%s« with you" : "%s Partajat »%s« cu tine de",
+ "You are not allowed to share %s" : "Nu există permisiunea de partajare %s",
+ "Share type %s is not valid for %s" : "Tipul partajării %s nu este valid pentru %s",
+ "Could not find category \"%s\"" : "Cloud nu a gasit categoria \"%s\"",
+ "seconds ago" : "secunde în urmă",
+ "_%n minute ago_::_%n minutes ago_" : ["","","acum %n minute"],
+ "_%n hour ago_::_%n hours ago_" : ["","","acum %n ore"],
+ "today" : "astăzi",
+ "yesterday" : "ieri",
+ "_%n day go_::_%n days ago_" : ["","","acum %n zile"],
+ "last month" : "ultima lună",
+ "_%n month ago_::_%n months ago_" : ["%n lună în urmă","%n luni în urmă","%n luni în urmă"],
+ "last year" : "ultimul an",
+ "years ago" : "ani în urmă",
+ "A valid username must be provided" : "Trebuie să furnizaţi un nume de utilizator valid",
+ "A valid password must be provided" : "Trebuie să furnizaţi o parolă validă",
+ "The username is already being used" : "Numele de utilizator este deja folosit",
+ "Cannot write into \"config\" directory" : "Nu se poate scrie în folderul \"config\"",
+ "Cannot write into \"apps\" directory" : "Nu se poate scrie în folderul \"apps\"",
+ "PHP module %s not installed." : "Modulul PHP %s nu este instalat.",
+ "PHP %s or higher is required." : "Versiunea PHP %s sau mai mare este necesară.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Modulele PHP au fost instalate, dar apar ca lipsind?",
+ "PostgreSQL >= 9 required" : "Este necesară versiunea 9 sau mai mare a PostgreSQL",
+ "Please upgrade your database version" : "Actualizați baza de date la o versiune mai nouă",
+ "Error occurred while checking PostgreSQL version" : "A apărut o eroare la verificarea versiunii PostgreSQL"
+},
+"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/lib/l10n/ro.json b/lib/l10n/ro.json
new file mode 100644
index 00000000000..ba971437442
--- /dev/null
+++ b/lib/l10n/ro.json
@@ -0,0 +1,56 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Nu se poate scrie în folderul \"config\"!",
+ "See %s" : "Vezi %s",
+ "Help" : "Ajutor",
+ "Personal" : "Personal",
+ "Settings" : "Setări",
+ "Users" : "Utilizatori",
+ "Admin" : "Admin",
+ "Recommended" : "Recomandat",
+ "No app name specified" : "Niciun nume de aplicație specificat",
+ "Unknown filetype" : "Tip fișier necunoscut",
+ "Invalid image" : "Imagine invalidă",
+ "web services under your control" : "servicii web controlate de tine",
+ "Application is not enabled" : "Aplicația nu este activată",
+ "Authentication error" : "Eroare la autentificare",
+ "Token expired. Please reload page." : "Token expirat. Te rugăm să reîncarci pagina.",
+ "Unknown user" : "Utilizator necunoscut",
+ "%s enter the database name." : "%s introduceți numele bazei de date",
+ "MS SQL username and/or password not valid: %s" : "Nume utilizator și/sau parolă MS SQL greșită: %s",
+ "MySQL/MariaDB username and/or password not valid" : "Nume utilizator și/sau parolă MySQL/MariaDB greșită",
+ "DB Error: \"%s\"" : "Eroare Bază de Date: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Utilizatorul MySQL/MariaDB '%s'@'localhost' deja există.",
+ "Drop this user from MySQL/MariaDB" : "Șterge acest utilizator din MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Utilizatorul MySQL/MariaDB '%s'@'%%' deja există.",
+ "Drop this user from MySQL/MariaDB." : "Șterge acest utilizator din MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Conexiunea Oracle nu a putut fi stabilită",
+ "PostgreSQL username and/or password not valid" : "Nume utilizator și/sau parolă PostgreSQL greșită",
+ "Set an admin username." : "Setează un nume de administrator.",
+ "Set an admin password." : "Setează o parolă de administrator.",
+ "%s shared »%s« with you" : "%s Partajat »%s« cu tine de",
+ "You are not allowed to share %s" : "Nu există permisiunea de partajare %s",
+ "Share type %s is not valid for %s" : "Tipul partajării %s nu este valid pentru %s",
+ "Could not find category \"%s\"" : "Cloud nu a gasit categoria \"%s\"",
+ "seconds ago" : "secunde în urmă",
+ "_%n minute ago_::_%n minutes ago_" : ["","","acum %n minute"],
+ "_%n hour ago_::_%n hours ago_" : ["","","acum %n ore"],
+ "today" : "astăzi",
+ "yesterday" : "ieri",
+ "_%n day go_::_%n days ago_" : ["","","acum %n zile"],
+ "last month" : "ultima lună",
+ "_%n month ago_::_%n months ago_" : ["%n lună în urmă","%n luni în urmă","%n luni în urmă"],
+ "last year" : "ultimul an",
+ "years ago" : "ani în urmă",
+ "A valid username must be provided" : "Trebuie să furnizaţi un nume de utilizator valid",
+ "A valid password must be provided" : "Trebuie să furnizaţi o parolă validă",
+ "The username is already being used" : "Numele de utilizator este deja folosit",
+ "Cannot write into \"config\" directory" : "Nu se poate scrie în folderul \"config\"",
+ "Cannot write into \"apps\" directory" : "Nu se poate scrie în folderul \"apps\"",
+ "PHP module %s not installed." : "Modulul PHP %s nu este instalat.",
+ "PHP %s or higher is required." : "Versiunea PHP %s sau mai mare este necesară.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Modulele PHP au fost instalate, dar apar ca lipsind?",
+ "PostgreSQL >= 9 required" : "Este necesară versiunea 9 sau mai mare a PostgreSQL",
+ "Please upgrade your database version" : "Actualizați baza de date la o versiune mai nouă",
+ "Error occurred while checking PostgreSQL version" : "A apărut o eroare la verificarea versiunii PostgreSQL"
+},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
+}
\ No newline at end of file
diff --git a/lib/l10n/ro.php b/lib/l10n/ro.php
deleted file mode 100644
index 67cddf642ad..00000000000
--- a/lib/l10n/ro.php
+++ /dev/null
@@ -1,40 +0,0 @@
- "Ajutor",
-"Personal" => "Personal",
-"Settings" => "Setări",
-"Users" => "Utilizatori",
-"Admin" => "Admin",
-"Unknown filetype" => "Tip fișier necunoscut",
-"Invalid image" => "Imagine invalidă",
-"web services under your control" => "servicii web controlate de tine",
-"Application is not enabled" => "Aplicația nu este activată",
-"Authentication error" => "Eroare la autentificare",
-"Token expired. Please reload page." => "Token expirat. Te rugăm să reîncarci pagina.",
-"Unknown user" => "Utilizator necunoscut",
-"MS SQL username and/or password not valid: %s" => "Nume utilizator și/sau parolă MS SQL greșită: %s",
-"MySQL/MariaDB username and/or password not valid" => "Nume utilizator și/sau parolă MySQL/MariaDB greșită",
-"DB Error: \"%s\"" => "Eroare Bază de Date: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "Utilizatorul MySQL/MariaDB '%s'@'localhost' deja există.",
-"Drop this user from MySQL/MariaDB" => "Șterge acest utilizator din MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "Utilizatorul MySQL/MariaDB '%s'@'%%' deja există.",
-"Drop this user from MySQL/MariaDB." => "Șterge acest utilizator din MySQL/MariaDB.",
-"PostgreSQL username and/or password not valid" => "Nume utilizator și/sau parolă PostgreSQL greșită",
-"Set an admin username." => "Setează un nume de administrator.",
-"Set an admin password." => "Setează o parolă de administrator.",
-"%s shared »%s« with you" => "%s Partajat »%s« cu tine de",
-"Could not find category \"%s\"" => "Cloud nu a gasit categoria \"%s\"",
-"seconds ago" => "secunde în urmă",
-"_%n minute ago_::_%n minutes ago_" => array("","","acum %n minute"),
-"_%n hour ago_::_%n hours ago_" => array("","","acum %n ore"),
-"today" => "astăzi",
-"yesterday" => "ieri",
-"_%n day go_::_%n days ago_" => array("","","acum %n zile"),
-"last month" => "ultima lună",
-"_%n month ago_::_%n months ago_" => array("%n lună în urmă","%n luni în urmă","%n luni în urmă"),
-"last year" => "ultimul an",
-"years ago" => "ani în urmă",
-"A valid username must be provided" => "Trebuie să furnizaţi un nume de utilizator valid",
-"A valid password must be provided" => "Trebuie să furnizaţi o parolă validă"
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));";
diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js
new file mode 100644
index 00000000000..490a3f6a1e2
--- /dev/null
+++ b/lib/l10n/ru.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Запись в каталог \"config\" невозможна",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Обычно это можно исправить, предоставив веб-серверу права на запись в папке конфигурации",
+ "See %s" : "Просмотр %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Обычно это можно исправить, %sпредоставив веб-серверу права на запись в папке конфигурации%s.",
+ "Sample configuration detected" : "Обнаружена конфигурация из примера",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Была обнаружена конфигурация из примера. Это может повредить вашей системе и это не поддерживается. Пожалуйста прочтите доументацию перед внесением изменений в файл config.php",
+ "Help" : "Помощь",
+ "Personal" : "Личное",
+ "Settings" : "Настройки",
+ "Users" : "Пользователи",
+ "Admin" : "Администрирование",
+ "Recommended" : "Рекомендовано",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Невозможно установить приложение \\\"%s\\\", т.к. оно несовместимо с этой версией ownCloud.",
+ "No app name specified" : "Не указано имя приложения",
+ "Unknown filetype" : "Неизвестный тип файла",
+ "Invalid image" : "Изображение повреждено",
+ "Database Error" : "Ошибка базы данных",
+ "Please contact your system administrator." : "Пожалуйста, свяжитесь с вашим администратором.",
+ "web services under your control" : "веб-сервисы под вашим управлением",
+ "App directory already exists" : "Папка приложения уже существует",
+ "Can't create app folder. Please fix permissions. %s" : "Не удалось создать директорию. Исправьте права доступа. %s",
+ "No source specified when installing app" : "Не указан источник при установке приложения",
+ "No href specified when installing app from http" : "Не указан атрибут href при установке приложения через http",
+ "No path specified when installing app from local file" : "Не указан путь при установке приложения из локального файла",
+ "Archives of type %s are not supported" : "Архивы %s не поддерживаются",
+ "Failed to open archive when installing app" : "Не возможно открыть архив при установке приложения",
+ "App does not provide an info.xml file" : "Приложение не имеет файла info.xml",
+ "App can't be installed because of not allowed code in the App" : "Приложение невозможно установить. В нем содержится запрещенный код.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Приложение невозможно установить. Не совместимо с текущей версией ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Приложение невозможно установить. Оно содержит параметр true который не допустим для приложений, не входящих в поставку.",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Приложение невозможно установить. Версия в info.xml/version не совпадает с версией заявленной в магазине приложений",
+ "Application is not enabled" : "Приложение не разрешено",
+ "Authentication error" : "Ошибка аутентификации",
+ "Token expired. Please reload page." : "Токен просрочен. Перезагрузите страницу.",
+ "Unknown user" : "Неизвестный пользователь",
+ "%s enter the database username." : "%s введите имя пользователя базы данных.",
+ "%s enter the database name." : "%s введите имя базы данных.",
+ "%s you may not use dots in the database name" : "%s Вы не можете использовать точки в имени базы данных",
+ "MS SQL username and/or password not valid: %s" : "Неверное имя пользователя и/или пароль MS SQL: %s",
+ "You need to enter either an existing account or the administrator." : "Вы должны войти или в существующий аккаунт или под администратором.",
+ "MySQL/MariaDB username and/or password not valid" : "Неверное имя пользователя и/или пароль MySQL/MariaDB",
+ "DB Error: \"%s\"" : "Ошибка БД: \"%s\"",
+ "Offending command was: \"%s\"" : "Вызываемая команда была: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Пользователь MySQL '%s'@'localhost' уже существует.",
+ "Drop this user from MySQL/MariaDB" : "Удалить данного участника из MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Пользователь MySQL '%s'@'%%' уже существует.",
+ "Drop this user from MySQL/MariaDB." : "Удалить данного участника из MySQL/MariaDB.",
+ "Oracle connection could not be established" : "соединение с Oracle не может быть установлено",
+ "Oracle username and/or password not valid" : "Неверное имя пользователя и/или пароль Oracle",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Вызываемая команда была: \"%s\", имя: %s, пароль: %s",
+ "PostgreSQL username and/or password not valid" : "Неверное имя пользователя и/или пароль PostgreSQL",
+ "Set an admin username." : "Задать имя пользователя для admin.",
+ "Set an admin password." : "Задать пароль для admin.",
+ "Can't create or write into the data directory %s" : "Невозможно создать или записать в каталог данных %s",
+ "%s shared »%s« with you" : "%s поделился »%s« с вами",
+ "Sharing %s failed, because the file does not exist" : "Публикация %s неудачна, т.к. файл не существует",
+ "You are not allowed to share %s" : "Вам запрещено публиковать %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Не удалось установить общий доступ для %s, пользователь %s уже является владельцем",
+ "Sharing %s failed, because the user %s does not exist" : "Не удалось установить общий доступ для %s, пользователь %s не существует.",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Не удалось опубликовать %s, т.к. пользователь %s не является членом какой-либо группы в которую входит %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Не удалось установить общий доступ для %s ,в виду того что, объект уже находиться в общем доступе с %s",
+ "Sharing %s failed, because the group %s does not exist" : "Не удалось установить общий доступ для %s, группа %s не существует.",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Не удалось установить общий доступ для %s, %s не является членом группы %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Вам нужно задать пароль для создания публичной ссылки. Разрешены только защищённые ссылки",
+ "Sharing %s failed, because sharing with links is not allowed" : "Не удалось установить общий доступ для %s, потому что обмен со ссылками не допускается",
+ "Share type %s is not valid for %s" : "Такой тип общего доступа как %s не допустим для %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Настройка прав доступа для %s невозможна, поскольку права доступа превышают предоставленные права доступа %s",
+ "Setting permissions for %s failed, because the item was not found" : "Не удалось произвести настройку прав доступа для %s , элемент не был найден.",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Невозможно установить дату устаревания. Разделяемые ресурсы не могут устареть позже, чем %s с момента их публикации.",
+ "Cannot set expiration date. Expiration date is in the past" : "Невозможно установить дату окончания. Дата окончания в прошлом.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Бэкенд для опубликования %s должен реализовывать интерфейс OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Бэкэнд для общего доступа %s не найден",
+ "Sharing backend for %s not found" : "Бэкэнд для общего доступа к %s не найден",
+ "Sharing %s failed, because the user %s is the original sharer" : "Публикация %s неудачна, т.к. пользователь %s - публикатор оригинала файла",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Не удалось опубликовать %s, т.к. права %s превышают предоставленные права доступа ",
+ "Sharing %s failed, because resharing is not allowed" : "Публикация %s неудачна, т.к републикация запрещена",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Не удалось опубликовать %s, т.к. опубликованный бэкенд для %s не смог найти свой источник",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Не удалось опубликовать %s, т.к. файл не был обнаружен в файловом кеше.",
+ "Could not find category \"%s\"" : "Категория \"%s\" не найдена",
+ "seconds ago" : "несколько секунд назад",
+ "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад"],
+ "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад"],
+ "today" : "сегодня",
+ "yesterday" : "вчера",
+ "_%n day go_::_%n days ago_" : ["%n день назад","%n дня назад","%n дней назад"],
+ "last month" : "в прошлом месяце",
+ "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад"],
+ "last year" : "в прошлом году",
+ "years ago" : "несколько лет назад",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Только следующие символы допускаются в имени пользователя: \"a-z\", \"A-Z\", \"0-9\", и \"_.@-\"",
+ "A valid username must be provided" : "Укажите правильное имя пользователя",
+ "A valid password must be provided" : "Укажите валидный пароль",
+ "The username is already being used" : "Имя пользователя уже используется",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Не установлены драйвера баз данных (sqlite, mysql или postgresql)",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Обычно это можно исправить, %sпредоставив веб-серверу права на запись в корневой папке%s.",
+ "Cannot write into \"config\" directory" : "Запись в каталог \"config\" невозможна",
+ "Cannot write into \"apps\" directory" : "Запись в каталог \"app\" невозможна",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Обычно это можно исправить, %sпредоставив веб-серверу права на запись в папку приложений%s или отключив appstore в файле конфигурации.",
+ "Cannot create \"data\" directory (%s)" : "Невозможно создать каталог \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Обычно это можно исправить, предоставив веб-серверу права на запись в корневой папке.",
+ "Setting locale to %s failed" : "Установка локали в %s не удалась",
+ "Please install one of these locales on your system and restart your webserver." : "Установите одну из этих локалей на вашей системе и перезапустите веб-сервер.",
+ "Please ask your server administrator to install the module." : "Пожалуйста, попростите администратора сервера установить модуль.",
+ "PHP module %s not installed." : "Не установлен PHP-модуль %s.",
+ "PHP %s or higher is required." : "Требуется PHP %s или выше",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Пожалуйста, обратитесь к администратору сервера, чтобы обновить PHP до последней версии. Ваша версия PHP больше не поддерживается ownCloud и сообществом PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Включен безопасный режим PHP. ownCloud требует, чтобы он был выключен для корректной работы.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Безопасный режим PHP не поддерживается и его следует выключить как практически бесполезную настройку. Пожалуйста, попросите администратора сервера выключить его в php.ini либо в вашей конфигурации веб-сервера.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Включен режим Magic Quotes. ownCloud требует, чтобы он был выключен для корректной работы.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes не поддерживается и его следует выключить как практически бесполезную настройку. Пожалуйста, попросите администратора сервера выключить его в php.ini либо в вашей конфигурации веб-сервера.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Модули PHP был установлены, но все еще в списке как недостающие?",
+ "Please ask your server administrator to restart the web server." : "Пожалуйста, попросите администратора вашего сервера перезапустить веб-сервер.",
+ "PostgreSQL >= 9 required" : "Требуется PostgreSQL >= 9",
+ "Please upgrade your database version" : "Пожалуйста, обновите вашу версию базы данных",
+ "Error occurred while checking PostgreSQL version" : "Произошла ошибка при проверке версии PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Пожалуйста, обедитесь что версия PostgreSQL >= 9 или проверьте логи за дополнительной информацией об ошибке",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Пожалуйста, измениите флаги разрешений на 0770 чтобы другие пользователи не могли получить списка файлов этой папки.",
+ "Data directory (%s) is readable by other users" : "Папка данных (%s) доступна для чтения другим пользователям",
+ "Data directory (%s) is invalid" : "Папка данных (%s) не верна",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Пожалуйста, убедитесь, что папка данных содержит в корне файл \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Не удалось получить блокировку типа %d на \"%s\""
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json
new file mode 100644
index 00000000000..103121a374a
--- /dev/null
+++ b/lib/l10n/ru.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Запись в каталог \"config\" невозможна",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Обычно это можно исправить, предоставив веб-серверу права на запись в папке конфигурации",
+ "See %s" : "Просмотр %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Обычно это можно исправить, %sпредоставив веб-серверу права на запись в папке конфигурации%s.",
+ "Sample configuration detected" : "Обнаружена конфигурация из примера",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Была обнаружена конфигурация из примера. Это может повредить вашей системе и это не поддерживается. Пожалуйста прочтите доументацию перед внесением изменений в файл config.php",
+ "Help" : "Помощь",
+ "Personal" : "Личное",
+ "Settings" : "Настройки",
+ "Users" : "Пользователи",
+ "Admin" : "Администрирование",
+ "Recommended" : "Рекомендовано",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Невозможно установить приложение \\\"%s\\\", т.к. оно несовместимо с этой версией ownCloud.",
+ "No app name specified" : "Не указано имя приложения",
+ "Unknown filetype" : "Неизвестный тип файла",
+ "Invalid image" : "Изображение повреждено",
+ "Database Error" : "Ошибка базы данных",
+ "Please contact your system administrator." : "Пожалуйста, свяжитесь с вашим администратором.",
+ "web services under your control" : "веб-сервисы под вашим управлением",
+ "App directory already exists" : "Папка приложения уже существует",
+ "Can't create app folder. Please fix permissions. %s" : "Не удалось создать директорию. Исправьте права доступа. %s",
+ "No source specified when installing app" : "Не указан источник при установке приложения",
+ "No href specified when installing app from http" : "Не указан атрибут href при установке приложения через http",
+ "No path specified when installing app from local file" : "Не указан путь при установке приложения из локального файла",
+ "Archives of type %s are not supported" : "Архивы %s не поддерживаются",
+ "Failed to open archive when installing app" : "Не возможно открыть архив при установке приложения",
+ "App does not provide an info.xml file" : "Приложение не имеет файла info.xml",
+ "App can't be installed because of not allowed code in the App" : "Приложение невозможно установить. В нем содержится запрещенный код.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Приложение невозможно установить. Не совместимо с текущей версией ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Приложение невозможно установить. Оно содержит параметр true который не допустим для приложений, не входящих в поставку.",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Приложение невозможно установить. Версия в info.xml/version не совпадает с версией заявленной в магазине приложений",
+ "Application is not enabled" : "Приложение не разрешено",
+ "Authentication error" : "Ошибка аутентификации",
+ "Token expired. Please reload page." : "Токен просрочен. Перезагрузите страницу.",
+ "Unknown user" : "Неизвестный пользователь",
+ "%s enter the database username." : "%s введите имя пользователя базы данных.",
+ "%s enter the database name." : "%s введите имя базы данных.",
+ "%s you may not use dots in the database name" : "%s Вы не можете использовать точки в имени базы данных",
+ "MS SQL username and/or password not valid: %s" : "Неверное имя пользователя и/или пароль MS SQL: %s",
+ "You need to enter either an existing account or the administrator." : "Вы должны войти или в существующий аккаунт или под администратором.",
+ "MySQL/MariaDB username and/or password not valid" : "Неверное имя пользователя и/или пароль MySQL/MariaDB",
+ "DB Error: \"%s\"" : "Ошибка БД: \"%s\"",
+ "Offending command was: \"%s\"" : "Вызываемая команда была: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Пользователь MySQL '%s'@'localhost' уже существует.",
+ "Drop this user from MySQL/MariaDB" : "Удалить данного участника из MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Пользователь MySQL '%s'@'%%' уже существует.",
+ "Drop this user from MySQL/MariaDB." : "Удалить данного участника из MySQL/MariaDB.",
+ "Oracle connection could not be established" : "соединение с Oracle не может быть установлено",
+ "Oracle username and/or password not valid" : "Неверное имя пользователя и/или пароль Oracle",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Вызываемая команда была: \"%s\", имя: %s, пароль: %s",
+ "PostgreSQL username and/or password not valid" : "Неверное имя пользователя и/или пароль PostgreSQL",
+ "Set an admin username." : "Задать имя пользователя для admin.",
+ "Set an admin password." : "Задать пароль для admin.",
+ "Can't create or write into the data directory %s" : "Невозможно создать или записать в каталог данных %s",
+ "%s shared »%s« with you" : "%s поделился »%s« с вами",
+ "Sharing %s failed, because the file does not exist" : "Публикация %s неудачна, т.к. файл не существует",
+ "You are not allowed to share %s" : "Вам запрещено публиковать %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Не удалось установить общий доступ для %s, пользователь %s уже является владельцем",
+ "Sharing %s failed, because the user %s does not exist" : "Не удалось установить общий доступ для %s, пользователь %s не существует.",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Не удалось опубликовать %s, т.к. пользователь %s не является членом какой-либо группы в которую входит %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Не удалось установить общий доступ для %s ,в виду того что, объект уже находиться в общем доступе с %s",
+ "Sharing %s failed, because the group %s does not exist" : "Не удалось установить общий доступ для %s, группа %s не существует.",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Не удалось установить общий доступ для %s, %s не является членом группы %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Вам нужно задать пароль для создания публичной ссылки. Разрешены только защищённые ссылки",
+ "Sharing %s failed, because sharing with links is not allowed" : "Не удалось установить общий доступ для %s, потому что обмен со ссылками не допускается",
+ "Share type %s is not valid for %s" : "Такой тип общего доступа как %s не допустим для %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Настройка прав доступа для %s невозможна, поскольку права доступа превышают предоставленные права доступа %s",
+ "Setting permissions for %s failed, because the item was not found" : "Не удалось произвести настройку прав доступа для %s , элемент не был найден.",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Невозможно установить дату устаревания. Разделяемые ресурсы не могут устареть позже, чем %s с момента их публикации.",
+ "Cannot set expiration date. Expiration date is in the past" : "Невозможно установить дату окончания. Дата окончания в прошлом.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Бэкенд для опубликования %s должен реализовывать интерфейс OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Бэкэнд для общего доступа %s не найден",
+ "Sharing backend for %s not found" : "Бэкэнд для общего доступа к %s не найден",
+ "Sharing %s failed, because the user %s is the original sharer" : "Публикация %s неудачна, т.к. пользователь %s - публикатор оригинала файла",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Не удалось опубликовать %s, т.к. права %s превышают предоставленные права доступа ",
+ "Sharing %s failed, because resharing is not allowed" : "Публикация %s неудачна, т.к републикация запрещена",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Не удалось опубликовать %s, т.к. опубликованный бэкенд для %s не смог найти свой источник",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Не удалось опубликовать %s, т.к. файл не был обнаружен в файловом кеше.",
+ "Could not find category \"%s\"" : "Категория \"%s\" не найдена",
+ "seconds ago" : "несколько секунд назад",
+ "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад"],
+ "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад"],
+ "today" : "сегодня",
+ "yesterday" : "вчера",
+ "_%n day go_::_%n days ago_" : ["%n день назад","%n дня назад","%n дней назад"],
+ "last month" : "в прошлом месяце",
+ "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад"],
+ "last year" : "в прошлом году",
+ "years ago" : "несколько лет назад",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Только следующие символы допускаются в имени пользователя: \"a-z\", \"A-Z\", \"0-9\", и \"_.@-\"",
+ "A valid username must be provided" : "Укажите правильное имя пользователя",
+ "A valid password must be provided" : "Укажите валидный пароль",
+ "The username is already being used" : "Имя пользователя уже используется",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Не установлены драйвера баз данных (sqlite, mysql или postgresql)",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Обычно это можно исправить, %sпредоставив веб-серверу права на запись в корневой папке%s.",
+ "Cannot write into \"config\" directory" : "Запись в каталог \"config\" невозможна",
+ "Cannot write into \"apps\" directory" : "Запись в каталог \"app\" невозможна",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Обычно это можно исправить, %sпредоставив веб-серверу права на запись в папку приложений%s или отключив appstore в файле конфигурации.",
+ "Cannot create \"data\" directory (%s)" : "Невозможно создать каталог \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Обычно это можно исправить, предоставив веб-серверу права на запись в корневой папке.",
+ "Setting locale to %s failed" : "Установка локали в %s не удалась",
+ "Please install one of these locales on your system and restart your webserver." : "Установите одну из этих локалей на вашей системе и перезапустите веб-сервер.",
+ "Please ask your server administrator to install the module." : "Пожалуйста, попростите администратора сервера установить модуль.",
+ "PHP module %s not installed." : "Не установлен PHP-модуль %s.",
+ "PHP %s or higher is required." : "Требуется PHP %s или выше",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Пожалуйста, обратитесь к администратору сервера, чтобы обновить PHP до последней версии. Ваша версия PHP больше не поддерживается ownCloud и сообществом PHP.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Включен безопасный режим PHP. ownCloud требует, чтобы он был выключен для корректной работы.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Безопасный режим PHP не поддерживается и его следует выключить как практически бесполезную настройку. Пожалуйста, попросите администратора сервера выключить его в php.ini либо в вашей конфигурации веб-сервера.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Включен режим Magic Quotes. ownCloud требует, чтобы он был выключен для корректной работы.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes не поддерживается и его следует выключить как практически бесполезную настройку. Пожалуйста, попросите администратора сервера выключить его в php.ini либо в вашей конфигурации веб-сервера.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Модули PHP был установлены, но все еще в списке как недостающие?",
+ "Please ask your server administrator to restart the web server." : "Пожалуйста, попросите администратора вашего сервера перезапустить веб-сервер.",
+ "PostgreSQL >= 9 required" : "Требуется PostgreSQL >= 9",
+ "Please upgrade your database version" : "Пожалуйста, обновите вашу версию базы данных",
+ "Error occurred while checking PostgreSQL version" : "Произошла ошибка при проверке версии PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Пожалуйста, обедитесь что версия PostgreSQL >= 9 или проверьте логи за дополнительной информацией об ошибке",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Пожалуйста, измениите флаги разрешений на 0770 чтобы другие пользователи не могли получить списка файлов этой папки.",
+ "Data directory (%s) is readable by other users" : "Папка данных (%s) доступна для чтения другим пользователям",
+ "Data directory (%s) is invalid" : "Папка данных (%s) не верна",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Пожалуйста, убедитесь, что папка данных содержит в корне файл \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Не удалось получить блокировку типа %d на \"%s\""
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ru.php b/lib/l10n/ru.php
deleted file mode 100644
index 40cfc1d2b53..00000000000
--- a/lib/l10n/ru.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "Запись в каталог \"config\" невозможна",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Обычно это можно исправить, предоставив веб-серверу права на запись в папке конфигурации",
-"See %s" => "Просмотр %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Обычно это можно исправить, %sпредоставив веб-серверу права на запись в папке конфигурации%s.",
-"Sample configuration detected" => "Обнаружена конфигурация из примера",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Была обнаружена конфигурация из примера. Это может повредить вашей системе и это не поддерживается. Пожалуйста прочтите доументацию перед внесением изменений в файл config.php",
-"Help" => "Помощь",
-"Personal" => "Личное",
-"Settings" => "Настройки",
-"Users" => "Пользователи",
-"Admin" => "Администрирование",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Невозможно установить приложение \\\"%s\\\", т.к. оно несовместимо с этой версией ownCloud.",
-"No app name specified" => "Не указано имя приложения",
-"Unknown filetype" => "Неизвестный тип файла",
-"Invalid image" => "Изображение повреждено",
-"web services under your control" => "веб-сервисы под вашим управлением",
-"App directory already exists" => "Папка приложения уже существует",
-"Can't create app folder. Please fix permissions. %s" => "Не удалось создать директорию. Исправьте права доступа. %s",
-"No source specified when installing app" => "Не указан источник при установке приложения",
-"No href specified when installing app from http" => "Не указан атрибут href при установке приложения через http",
-"No path specified when installing app from local file" => "Не указан путь при установке приложения из локального файла",
-"Archives of type %s are not supported" => "Архивы %s не поддерживаются",
-"Failed to open archive when installing app" => "Не возможно открыть архив при установке приложения",
-"App does not provide an info.xml file" => "Приложение не имеет файла info.xml",
-"App can't be installed because of not allowed code in the App" => "Приложение невозможно установить. В нем содержится запрещенный код.",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Приложение невозможно установить. Не совместимо с текущей версией ownCloud.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Приложение невозможно установить. Оно содержит параметр true который не допустим для приложений, не входящих в поставку.",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Приложение невозможно установить. Версия в info.xml/version не совпадает с версией заявленной в магазине приложений",
-"Application is not enabled" => "Приложение не разрешено",
-"Authentication error" => "Ошибка аутентификации",
-"Token expired. Please reload page." => "Токен просрочен. Перезагрузите страницу.",
-"Unknown user" => "Неизвестный пользователь",
-"%s enter the database username." => "%s введите имя пользователя базы данных.",
-"%s enter the database name." => "%s введите имя базы данных.",
-"%s you may not use dots in the database name" => "%s Вы не можете использовать точки в имени базы данных",
-"MS SQL username and/or password not valid: %s" => "Неверное имя пользователя и/или пароль MS SQL: %s",
-"You need to enter either an existing account or the administrator." => "Вы должны войти или в существующий аккаунт или под администратором.",
-"MySQL/MariaDB username and/or password not valid" => "Неверное имя пользователя и/или пароль MySQL/MariaDB",
-"DB Error: \"%s\"" => "Ошибка БД: \"%s\"",
-"Offending command was: \"%s\"" => "Вызываемая команда была: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "Пользователь MySQL '%s'@'localhost' уже существует.",
-"Drop this user from MySQL/MariaDB" => "Удалить данного участника из MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "Пользователь MySQL '%s'@'%%' уже существует.",
-"Drop this user from MySQL/MariaDB." => "Удалить данного участника из MySQL/MariaDB.",
-"Oracle connection could not be established" => "соединение с Oracle не может быть установлено",
-"Oracle username and/or password not valid" => "Неверное имя пользователя и/или пароль Oracle",
-"Offending command was: \"%s\", name: %s, password: %s" => "Вызываемая команда была: \"%s\", имя: %s, пароль: %s",
-"PostgreSQL username and/or password not valid" => "Неверное имя пользователя и/или пароль PostgreSQL",
-"Set an admin username." => "Задать имя пользователя для admin.",
-"Set an admin password." => "Задать пароль для admin.",
-"Can't create or write into the data directory %s" => "Невозможно создать или записать в каталог данных %s",
-"%s shared »%s« with you" => "%s поделился »%s« с вами",
-"Sharing %s failed, because the file does not exist" => "Публикация %s неудачна, т.к. файл не существует",
-"You are not allowed to share %s" => "Вам запрещено публиковать %s",
-"Sharing %s failed, because the user %s is the item owner" => "Не удалось установить общий доступ для %s, пользователь %s уже является владельцем",
-"Sharing %s failed, because the user %s does not exist" => "Не удалось установить общий доступ для %s, пользователь %s не существует.",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Не удалось опубликовать %s, т.к. пользователь %s не является членом какой-либо группы в которую входит %s",
-"Sharing %s failed, because this item is already shared with %s" => "Не удалось установить общий доступ для %s ,в виду того что, объект уже находиться в общем доступе с %s",
-"Sharing %s failed, because the group %s does not exist" => "Не удалось установить общий доступ для %s, группа %s не существует.",
-"Sharing %s failed, because %s is not a member of the group %s" => "Не удалось установить общий доступ для %s, %s не является членом группы %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Вам нужно задать пароль для создания публичной ссылки. Разрешены только защищённые ссылки",
-"Sharing %s failed, because sharing with links is not allowed" => "Не удалось установить общий доступ для %s, потому что обмен со ссылками не допускается",
-"Share type %s is not valid for %s" => "Такой тип общего доступа как %s не допустим для %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Настройка прав доступа для %s невозможна, поскольку права доступа превышают предоставленные права доступа %s",
-"Setting permissions for %s failed, because the item was not found" => "Не удалось произвести настройку прав доступа для %s , элемент не был найден.",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Невозможно установить дату устаревания. Разделяемые ресурсы не могут устареть позже, чем %s с момента их публикации.",
-"Cannot set expiration date. Expiration date is in the past" => "Невозможно установить дату окончания. Дата окончания в прошлом.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Бэкенд для опубликования %s должен реализовывать интерфейс OCP\\Share_Backend",
-"Sharing backend %s not found" => "Бэкэнд для общего доступа %s не найден",
-"Sharing backend for %s not found" => "Бэкэнд для общего доступа к %s не найден",
-"Sharing %s failed, because the user %s is the original sharer" => "Публикация %s неудачна, т.к. пользователь %s - публикатор оригинала файла",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Не удалось опубликовать %s, т.к. права %s превышают предоставленные права доступа ",
-"Sharing %s failed, because resharing is not allowed" => "Публикация %s неудачна, т.к републикация запрещена",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Не удалось опубликовать %s, т.к. опубликованный бэкенд для %s не смог найти свой источник",
-"Sharing %s failed, because the file could not be found in the file cache" => "Не удалось опубликовать %s, т.к. файл не был обнаружен в файловом кеше.",
-"Could not find category \"%s\"" => "Категория \"%s\" не найдена",
-"seconds ago" => "несколько секунд назад",
-"_%n minute ago_::_%n minutes ago_" => array("%n минута назад","%n минуты назад","%n минут назад"),
-"_%n hour ago_::_%n hours ago_" => array("%n час назад","%n часа назад","%n часов назад"),
-"today" => "сегодня",
-"yesterday" => "вчера",
-"_%n day go_::_%n days ago_" => array("%n день назад","%n дня назад","%n дней назад"),
-"last month" => "в прошлом месяце",
-"_%n month ago_::_%n months ago_" => array("%n месяц назад","%n месяца назад","%n месяцев назад"),
-"last year" => "в прошлом году",
-"years ago" => "несколько лет назад",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Только следующие символы допускаются в имени пользователя: \"a-z\", \"A-Z\", \"0-9\", и \"_.@-\"",
-"A valid username must be provided" => "Укажите правильное имя пользователя",
-"A valid password must be provided" => "Укажите валидный пароль",
-"The username is already being used" => "Имя пользователя уже используется",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Не установлены драйвера баз данных (sqlite, mysql или postgresql)",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Обычно это можно исправить, %sпредоставив веб-серверу права на запись в корневой папке%s.",
-"Cannot write into \"config\" directory" => "Запись в каталог \"config\" невозможна",
-"Cannot write into \"apps\" directory" => "Запись в каталог \"app\" невозможна",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Обычно это можно исправить, %sпредоставив веб-серверу права на запись в папку приложений%s или отключив appstore в файле конфигурации.",
-"Cannot create \"data\" directory (%s)" => "Невозможно создать каталог \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Обычно это можно исправить, предоставив веб-серверу права на запись в корневой папке.",
-"Setting locale to %s failed" => "Установка локали в %s не удалась",
-"Please install one of these locales on your system and restart your webserver." => "Установите одну из этих локалей на вашей системе и перезапустите веб-сервер.",
-"Please ask your server administrator to install the module." => "Пожалуйста, попростите администратора сервера установить модуль.",
-"PHP module %s not installed." => "Не установлен PHP-модуль %s.",
-"PHP %s or higher is required." => "Требуется PHP %s или выше",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Пожалуйста, обратитесь к администратору сервера, чтобы обновить PHP до последней версии. Ваша версия PHP больше не поддерживается ownCloud и сообществом PHP.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "Включен безопасный режим PHP. ownCloud требует, чтобы он был выключен для корректной работы.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Безопасный режим PHP не поддерживается и его следует выключить как практически бесполезную настройку. Пожалуйста, попросите администратора сервера выключить его в php.ini либо в вашей конфигурации веб-сервера.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Включен режим Magic Quotes. ownCloud требует, чтобы он был выключен для корректной работы.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes не поддерживается и его следует выключить как практически бесполезную настройку. Пожалуйста, попросите администратора сервера выключить его в php.ini либо в вашей конфигурации веб-сервера.",
-"PHP modules have been installed, but they are still listed as missing?" => "Модули PHP был установлены, но все еще в списке как недостающие?",
-"Please ask your server administrator to restart the web server." => "Пожалуйста, попросите администратора вашего сервера перезапустить веб-сервер.",
-"PostgreSQL >= 9 required" => "Требуется PostgreSQL >= 9",
-"Please upgrade your database version" => "Пожалуйста, обновите вашу версию базы данных",
-"Error occurred while checking PostgreSQL version" => "Произошла ошибка при проверке версии PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Пожалуйста, обедитесь что версия PostgreSQL >= 9 или проверьте логи за дополнительной информацией об ошибке",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Пожалуйста, измениите флаги разрешений на 0770 чтобы другие пользователи не могли получить списка файлов этой папки.",
-"Data directory (%s) is readable by other users" => "Папка данных (%s) доступна для чтения другим пользователям",
-"Data directory (%s) is invalid" => "Папка данных (%s) не верна",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Пожалуйста, убедитесь, что папка данных содержит в корне файл \".ocdata\".",
-"Could not obtain lock type %d on \"%s\"." => "Не удалось получить блокировку типа %d на \"%s\""
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/lib/l10n/si_LK.js b/lib/l10n/si_LK.js
new file mode 100644
index 00000000000..76ad1716ce2
--- /dev/null
+++ b/lib/l10n/si_LK.js
@@ -0,0 +1,24 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "උදව්",
+ "Personal" : "පෞද්ගලික",
+ "Settings" : "සිටුවම්",
+ "Users" : "පරිශීලකයන්",
+ "Admin" : "පරිපාලක",
+ "web services under your control" : "ඔබට පාලනය කළ හැකි වෙබ් සේවාවන්",
+ "Application is not enabled" : "යෙදුම සක්රිය කර නොමැත",
+ "Authentication error" : "සත්යාපන දෝෂයක්",
+ "Token expired. Please reload page." : "ටෝකනය කල් ඉකුත් වී ඇත. පිටුව නැවුම් කරන්න",
+ "seconds ago" : "තත්පරයන්ට පෙර",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "අද",
+ "yesterday" : "ඊයේ",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "පෙර මාසයේ",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "පෙර අවුරුද්දේ",
+ "years ago" : "අවුරුදු කීපයකට පෙර"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/si_LK.json b/lib/l10n/si_LK.json
new file mode 100644
index 00000000000..0bfa32a0754
--- /dev/null
+++ b/lib/l10n/si_LK.json
@@ -0,0 +1,22 @@
+{ "translations": {
+ "Help" : "උදව්",
+ "Personal" : "පෞද්ගලික",
+ "Settings" : "සිටුවම්",
+ "Users" : "පරිශීලකයන්",
+ "Admin" : "පරිපාලක",
+ "web services under your control" : "ඔබට පාලනය කළ හැකි වෙබ් සේවාවන්",
+ "Application is not enabled" : "යෙදුම සක්රිය කර නොමැත",
+ "Authentication error" : "සත්යාපන දෝෂයක්",
+ "Token expired. Please reload page." : "ටෝකනය කල් ඉකුත් වී ඇත. පිටුව නැවුම් කරන්න",
+ "seconds ago" : "තත්පරයන්ට පෙර",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "අද",
+ "yesterday" : "ඊයේ",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "පෙර මාසයේ",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "පෙර අවුරුද්දේ",
+ "years ago" : "අවුරුදු කීපයකට පෙර"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/si_LK.php b/lib/l10n/si_LK.php
deleted file mode 100644
index 8ba19238a59..00000000000
--- a/lib/l10n/si_LK.php
+++ /dev/null
@@ -1,23 +0,0 @@
- "උදව්",
-"Personal" => "පෞද්ගලික",
-"Settings" => "සිටුවම්",
-"Users" => "පරිශීලකයන්",
-"Admin" => "පරිපාලක",
-"web services under your control" => "ඔබට පාලනය කළ හැකි වෙබ් සේවාවන්",
-"Application is not enabled" => "යෙදුම සක්රිය කර නොමැත",
-"Authentication error" => "සත්යාපන දෝෂයක්",
-"Token expired. Please reload page." => "ටෝකනය කල් ඉකුත් වී ඇත. පිටුව නැවුම් කරන්න",
-"seconds ago" => "තත්පරයන්ට පෙර",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"today" => "අද",
-"yesterday" => "ඊයේ",
-"_%n day go_::_%n days ago_" => array("",""),
-"last month" => "පෙර මාසයේ",
-"_%n month ago_::_%n months ago_" => array("",""),
-"last year" => "පෙර අවුරුද්දේ",
-"years ago" => "අවුරුදු කීපයකට පෙර"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/sk.js b/lib/l10n/sk.js
new file mode 100644
index 00000000000..55da1e782f6
--- /dev/null
+++ b/lib/l10n/sk.js
@@ -0,0 +1,11 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Personal" : "Osobné",
+ "Settings" : "Nastavenia",
+ "_%n minute ago_::_%n minutes ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","",""],
+ "_%n day go_::_%n days ago_" : ["","",""],
+ "_%n month ago_::_%n months ago_" : ["","",""]
+},
+"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/lib/l10n/sk.json b/lib/l10n/sk.json
new file mode 100644
index 00000000000..6c4da5395ec
--- /dev/null
+++ b/lib/l10n/sk.json
@@ -0,0 +1,9 @@
+{ "translations": {
+ "Personal" : "Osobné",
+ "Settings" : "Nastavenia",
+ "_%n minute ago_::_%n minutes ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","",""],
+ "_%n day go_::_%n days ago_" : ["","",""],
+ "_%n month ago_::_%n months ago_" : ["","",""]
+},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+}
\ No newline at end of file
diff --git a/lib/l10n/sk.php b/lib/l10n/sk.php
deleted file mode 100644
index 5cfafe6ca0c..00000000000
--- a/lib/l10n/sk.php
+++ /dev/null
@@ -1,10 +0,0 @@
- "Osobné",
-"Settings" => "Nastavenia",
-"_%n minute ago_::_%n minutes ago_" => array("","",""),
-"_%n hour ago_::_%n hours ago_" => array("","",""),
-"_%n day go_::_%n days ago_" => array("","",""),
-"_%n month ago_::_%n months ago_" => array("","","")
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/lib/l10n/sk_SK.js b/lib/l10n/sk_SK.js
new file mode 100644
index 00000000000..ec902af2641
--- /dev/null
+++ b/lib/l10n/sk_SK.js
@@ -0,0 +1,125 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Nie je možné zapisovat do priečinka \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis k adresáru s konfiguráciou.",
+ "See %s" : "Pozri %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "To je zvyčajne možné opraviť tým, že %sudelíte webovému serveru oprávnenie na zápis k adresáru s konfiguráciou%s.",
+ "Sample configuration detected" : "Detekovaná bola vzorová konfigurácia",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zistilo sa, že konfigurácia bola skopírovaná zo vzorových súborov. Takáto konfigurácia nie je podporovaná a môže poškodiť vašu inštaláciu. Prečítajte si dokumentáciu pred vykonaním zmien v config.php",
+ "Help" : "Pomoc",
+ "Personal" : "Osobné",
+ "Settings" : "Nastavenia",
+ "Users" : "Používatelia",
+ "Admin" : "Administrátor",
+ "Recommended" : "Odporúčané",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplikáciu \\\"%s\\\" nemožno nainštalovať, pretože nie je kompatibilná s touto verziou systému ownCloud.",
+ "No app name specified" : "Nešpecifikované meno aplikácie",
+ "Unknown filetype" : "Neznámy typ súboru",
+ "Invalid image" : "Chybný obrázok",
+ "Database Error" : "Error databázy",
+ "Please contact your system administrator." : "Prosím kontaktujte administrátora.",
+ "web services under your control" : "webové služby pod Vašou kontrolou",
+ "App directory already exists" : "Aplikačný priečinok už existuje",
+ "Can't create app folder. Please fix permissions. %s" : "Nemožno vytvoriť aplikačný priečinok. Prosím upravte povolenia. %s",
+ "No source specified when installing app" : "Nešpecifikovaný zdroj pri inštalácii aplikácie",
+ "No href specified when installing app from http" : "Nešpecifikovaný atribút \"href\" pri inštalácii aplikácie pomocou protokolu \"http\"",
+ "No path specified when installing app from local file" : "Nešpecifikovaná cesta pri inštalácii aplikácie z lokálneho súboru",
+ "Archives of type %s are not supported" : "Tento typ archívu %s nie je podporovaný",
+ "Failed to open archive when installing app" : "Zlyhanie pri otváraní archívu počas inštalácie aplikácie",
+ "App does not provide an info.xml file" : "Aplikácia neposkytuje súbor info.xml",
+ "App can't be installed because of not allowed code in the App" : "Aplikácia nemôže byť nainštalovaná pre nepovolený kód v aplikácii",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Aplikácia nemôže byť nainštalovaná pre nekompatibilitu z touto verziou ownCloudu",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Aplikácia nemôže byť nainštalovaná pretože obsahuje pravý štítok, ktorý nie je povolený pre zaslané \"shipped\" aplikácie",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Aplikácia nemôže byť nainštalovaná pretože verzia v info.xml/version nezodpovedá verzii špecifikovanej v obchode s aplikáciami",
+ "Application is not enabled" : "Aplikácia nie je zapnutá",
+ "Authentication error" : "Chyba autentifikácie",
+ "Token expired. Please reload page." : "Token vypršal. Obnovte, prosím, stránku.",
+ "Unknown user" : "Neznámy používateľ",
+ "%s enter the database username." : "Zadajte používateľské meno %s databázy.",
+ "%s enter the database name." : "Zadajte názov databázy pre %s databázy.",
+ "%s you may not use dots in the database name" : "V názve databázy %s nemôžete používať bodky",
+ "MS SQL username and/or password not valid: %s" : "Používateľské meno, alebo heslo MS SQL nie je platné: %s",
+ "You need to enter either an existing account or the administrator." : "Musíte zadať jestvujúci účet alebo administrátora.",
+ "MySQL/MariaDB username and/or password not valid" : "Používateľské meno a/alebo heslo pre MySQL/MariaDB databázu je neplatné",
+ "DB Error: \"%s\"" : "Chyba DB: \"%s\"",
+ "Offending command was: \"%s\"" : "Podozrivý príkaz bol: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Používateľ '%s'@'localhost' už v MySQL/MariaDB existuje.",
+ "Drop this user from MySQL/MariaDB" : "Zahodiť používateľa z MySQL/MariaDB.",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Používateľ '%s'@'%%' už v MySQL/MariaDB existuje",
+ "Drop this user from MySQL/MariaDB." : "Zahodiť používateľa z MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Nie je možné pripojiť sa k Oracle",
+ "Oracle username and/or password not valid" : "Používateľské meno a/alebo heslo pre Oracle databázu je neplatné",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Podozrivý príkaz bol: \"%s\", meno: %s, heslo: %s",
+ "PostgreSQL username and/or password not valid" : "Používateľské meno a/alebo heslo pre PostgreSQL databázu je neplatné",
+ "Set an admin username." : "Zadajte používateľské meno administrátora.",
+ "Set an admin password." : "Zadajte heslo administrátora.",
+ "%s shared »%s« with you" : "%s s vami zdieľa »%s«",
+ "Sharing %s failed, because the file does not exist" : "Zdieľanie %s zlyhalo, pretože súbor neexistuje",
+ "You are not allowed to share %s" : "Nemôžete zdieľať %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Zdieľanie %s zlyhalo, pretože používateľ %s je vlastníkom položky",
+ "Sharing %s failed, because the user %s does not exist" : "Zdieľanie %s zlyhalo, pretože používateľ %s neexistuje",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Zdieľanie %s zlyhalo, pretože používateľ %s nie je členom žiadnej skupiny spoločnej s používateľom %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Zdieľanie %s zlyhalo, pretože táto položka už je zdieľaná s %s",
+ "Sharing %s failed, because the group %s does not exist" : "Zdieľanie %s zlyhalo, pretože skupina %s neexistuje",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Zdieľanie %s zlyhalo, pretože %s nie je členom skupiny %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Musíte zadať heslo ak chcete vytvoriť verejný odkaz, lebo iba odkazy chránené heslom sú povolené",
+ "Sharing %s failed, because sharing with links is not allowed" : "Zdieľanie %s zlyhalo, pretože zdieľanie odkazom nie je povolené",
+ "Share type %s is not valid for %s" : "Typ zdieľania %s nie je platný pre %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nastavenie povolení pre %s zlyhalo, pretože povolenia prekračujú povolenia udelené %s",
+ "Setting permissions for %s failed, because the item was not found" : "Nastavenie povolení pre %s zlyhalo, pretože položka sa nenašla",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nie je možné nastaviť dátum konca platnosti. Zdieľania nemôžu skončiť neskôr ako %s po zdieľaní.",
+ "Cannot set expiration date. Expiration date is in the past" : "Nie je možné nastaviť dátum konca platnosti. Dátum konca platnosti je v minulosti.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Backend zdieľania %s musí implementovať rozhranie OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Backend zdieľania %s nebol nájdený",
+ "Sharing backend for %s not found" : "Backend zdieľania pre %s nebol nájdený",
+ "Sharing %s failed, because the user %s is the original sharer" : "Zdieľanie %s zlyhalo, pretože používateľ %s je pôvodcom zdieľania",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Zdieľanie %s zlyhalo, pretože povolenia prekračujú povolenia udelené %s",
+ "Sharing %s failed, because resharing is not allowed" : "Zdieľanie %s zlyhalo, pretože zdieľanie ďalším nie je povolené",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Zdieľanie %s zlyhalo, backend zdieľania nenašiel zdrojový %s",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Zdieľanie %s zlyhalo, pretože súbor sa nenašiel vo vyrovnávacej pamäti súborov",
+ "Could not find category \"%s\"" : "Nemožno nájsť danú kategóriu \"%s\"",
+ "seconds ago" : "pred sekundami",
+ "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"],
+ "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"],
+ "today" : "dnes",
+ "yesterday" : "včera",
+ "_%n day go_::_%n days ago_" : ["pred %n dňom","pred %n dňami","pred %n dňami"],
+ "last month" : "minulý mesiac",
+ "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"],
+ "last year" : "minulý rok",
+ "years ago" : "pred rokmi",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "V mene používateľa sú povolené len nasledovné znaky: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Musíte zadať platné používateľské meno",
+ "A valid password must be provided" : "Musíte zadať platné heslo",
+ "The username is already being used" : "Meno používateľa je už použité",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ovládače databázy (sqlite, mysql, or postgresql) nie sú nainštalované.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Oprávnenia je zvyčajne možné opraviť tým, že %sudelíte webovému serveru oprávnenie na zápis do koreňového adresára%s.",
+ "Cannot write into \"config\" directory" : "Nie je možné zapisovať do priečinka \"config\"",
+ "Cannot write into \"apps\" directory" : "Nie je možné zapisovať do priečinka \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Toto je zvyčajne možné opraviť tým, že %sudelíte webovému serveru oprávnenie na zápis do adresára aplikácií%s alebo vypnete obchod s aplikáciami v konfiguračnom súbore.",
+ "Cannot create \"data\" directory (%s)" : "Nie je možné vytvoriť priečinok \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Toto je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového adresára .",
+ "Setting locale to %s failed" : "Nastavenie locale na %s zlyhalo",
+ "Please install one of these locales on your system and restart your webserver." : "Prosím, nainštalujte si aspoň jeden z týchto jazykov so svojho systému a reštartujte webserver.",
+ "Please ask your server administrator to install the module." : "Prosím, požiadajte administrátora vášho servera o inštaláciu modulu.",
+ "PHP module %s not installed." : "PHP modul %s nie je nainštalovaný.",
+ "PHP %s or higher is required." : "Požadovaná verzia PHP %s alebo vyššia.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Prosím, požiadajte administrátora vášho servera o aktualizáciu PHP na najnovšiu verziu. Vaša verzia PHP už nie je podporovaná ownCloud-om a PHP komunitou.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode je zapnutý. ownCloud pre správnu funkčnosť vyžaduje, aby bol vypnutý.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode je zastarané a väčšinou zbytočné nastavenie, ktoré by malo byť vypnuté. Prosím, požiadajte administrátora vášho serveru o jeho vypnutie v php.ini alebo v nastaveniach webového servera.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes sú povolené. ownCloud pre správnu funkčnosť vyžaduje, aby boli vypnuté.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zavrhovanou a zbytočnou voľbou, ktorú by ste mali ponechať vypnutú. Prosím, požiadajte správcu svojho servera, aby ju vypol v php.ini alebo v konfigurácii vášho webového servera.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly boli nainštalované, ale stále sú uvedené ako chýbajúce?",
+ "Please ask your server administrator to restart the web server." : "Prosím, požiadajte administrátora vášho servera o reštartovanie webového servera.",
+ "PostgreSQL >= 9 required" : "Vyžadované PostgreSQL >= 9",
+ "Please upgrade your database version" : "Prosím, aktualizujte verziu svojej databázy",
+ "Error occurred while checking PostgreSQL version" : "Nastala chyba pri overovaní verzie PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Prosím, uistite sa, že máte PostgreSQL >= 9 alebo sa pozrite do protokolu, kde nájdete podrobnejšie informácie o chybe",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Prosím, zmeňte oprávnenia na 0770, aby tento adresár nemohli ostatní používatelia vypísať.",
+ "Data directory (%s) is readable by other users" : "Adresár dát (%s) je prístupný na čítanie ostatným používateľom",
+ "Data directory (%s) is invalid" : "Adresár dát (%s) je neplatný",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Prosím, skontrolujte, či adresár dát obsahuje súbor „.ocdata“.",
+ "Could not obtain lock type %d on \"%s\"." : "Nepodarilo sa získať zámok typu %d na „%s“."
+},
+"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/lib/l10n/sk_SK.json b/lib/l10n/sk_SK.json
new file mode 100644
index 00000000000..e2c219d5a1c
--- /dev/null
+++ b/lib/l10n/sk_SK.json
@@ -0,0 +1,123 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Nie je možné zapisovat do priečinka \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis k adresáru s konfiguráciou.",
+ "See %s" : "Pozri %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "To je zvyčajne možné opraviť tým, že %sudelíte webovému serveru oprávnenie na zápis k adresáru s konfiguráciou%s.",
+ "Sample configuration detected" : "Detekovaná bola vzorová konfigurácia",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zistilo sa, že konfigurácia bola skopírovaná zo vzorových súborov. Takáto konfigurácia nie je podporovaná a môže poškodiť vašu inštaláciu. Prečítajte si dokumentáciu pred vykonaním zmien v config.php",
+ "Help" : "Pomoc",
+ "Personal" : "Osobné",
+ "Settings" : "Nastavenia",
+ "Users" : "Používatelia",
+ "Admin" : "Administrátor",
+ "Recommended" : "Odporúčané",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Aplikáciu \\\"%s\\\" nemožno nainštalovať, pretože nie je kompatibilná s touto verziou systému ownCloud.",
+ "No app name specified" : "Nešpecifikované meno aplikácie",
+ "Unknown filetype" : "Neznámy typ súboru",
+ "Invalid image" : "Chybný obrázok",
+ "Database Error" : "Error databázy",
+ "Please contact your system administrator." : "Prosím kontaktujte administrátora.",
+ "web services under your control" : "webové služby pod Vašou kontrolou",
+ "App directory already exists" : "Aplikačný priečinok už existuje",
+ "Can't create app folder. Please fix permissions. %s" : "Nemožno vytvoriť aplikačný priečinok. Prosím upravte povolenia. %s",
+ "No source specified when installing app" : "Nešpecifikovaný zdroj pri inštalácii aplikácie",
+ "No href specified when installing app from http" : "Nešpecifikovaný atribút \"href\" pri inštalácii aplikácie pomocou protokolu \"http\"",
+ "No path specified when installing app from local file" : "Nešpecifikovaná cesta pri inštalácii aplikácie z lokálneho súboru",
+ "Archives of type %s are not supported" : "Tento typ archívu %s nie je podporovaný",
+ "Failed to open archive when installing app" : "Zlyhanie pri otváraní archívu počas inštalácie aplikácie",
+ "App does not provide an info.xml file" : "Aplikácia neposkytuje súbor info.xml",
+ "App can't be installed because of not allowed code in the App" : "Aplikácia nemôže byť nainštalovaná pre nepovolený kód v aplikácii",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Aplikácia nemôže byť nainštalovaná pre nekompatibilitu z touto verziou ownCloudu",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Aplikácia nemôže byť nainštalovaná pretože obsahuje pravý štítok, ktorý nie je povolený pre zaslané \"shipped\" aplikácie",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Aplikácia nemôže byť nainštalovaná pretože verzia v info.xml/version nezodpovedá verzii špecifikovanej v obchode s aplikáciami",
+ "Application is not enabled" : "Aplikácia nie je zapnutá",
+ "Authentication error" : "Chyba autentifikácie",
+ "Token expired. Please reload page." : "Token vypršal. Obnovte, prosím, stránku.",
+ "Unknown user" : "Neznámy používateľ",
+ "%s enter the database username." : "Zadajte používateľské meno %s databázy.",
+ "%s enter the database name." : "Zadajte názov databázy pre %s databázy.",
+ "%s you may not use dots in the database name" : "V názve databázy %s nemôžete používať bodky",
+ "MS SQL username and/or password not valid: %s" : "Používateľské meno, alebo heslo MS SQL nie je platné: %s",
+ "You need to enter either an existing account or the administrator." : "Musíte zadať jestvujúci účet alebo administrátora.",
+ "MySQL/MariaDB username and/or password not valid" : "Používateľské meno a/alebo heslo pre MySQL/MariaDB databázu je neplatné",
+ "DB Error: \"%s\"" : "Chyba DB: \"%s\"",
+ "Offending command was: \"%s\"" : "Podozrivý príkaz bol: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Používateľ '%s'@'localhost' už v MySQL/MariaDB existuje.",
+ "Drop this user from MySQL/MariaDB" : "Zahodiť používateľa z MySQL/MariaDB.",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Používateľ '%s'@'%%' už v MySQL/MariaDB existuje",
+ "Drop this user from MySQL/MariaDB." : "Zahodiť používateľa z MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Nie je možné pripojiť sa k Oracle",
+ "Oracle username and/or password not valid" : "Používateľské meno a/alebo heslo pre Oracle databázu je neplatné",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Podozrivý príkaz bol: \"%s\", meno: %s, heslo: %s",
+ "PostgreSQL username and/or password not valid" : "Používateľské meno a/alebo heslo pre PostgreSQL databázu je neplatné",
+ "Set an admin username." : "Zadajte používateľské meno administrátora.",
+ "Set an admin password." : "Zadajte heslo administrátora.",
+ "%s shared »%s« with you" : "%s s vami zdieľa »%s«",
+ "Sharing %s failed, because the file does not exist" : "Zdieľanie %s zlyhalo, pretože súbor neexistuje",
+ "You are not allowed to share %s" : "Nemôžete zdieľať %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Zdieľanie %s zlyhalo, pretože používateľ %s je vlastníkom položky",
+ "Sharing %s failed, because the user %s does not exist" : "Zdieľanie %s zlyhalo, pretože používateľ %s neexistuje",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Zdieľanie %s zlyhalo, pretože používateľ %s nie je členom žiadnej skupiny spoločnej s používateľom %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Zdieľanie %s zlyhalo, pretože táto položka už je zdieľaná s %s",
+ "Sharing %s failed, because the group %s does not exist" : "Zdieľanie %s zlyhalo, pretože skupina %s neexistuje",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Zdieľanie %s zlyhalo, pretože %s nie je členom skupiny %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Musíte zadať heslo ak chcete vytvoriť verejný odkaz, lebo iba odkazy chránené heslom sú povolené",
+ "Sharing %s failed, because sharing with links is not allowed" : "Zdieľanie %s zlyhalo, pretože zdieľanie odkazom nie je povolené",
+ "Share type %s is not valid for %s" : "Typ zdieľania %s nie je platný pre %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nastavenie povolení pre %s zlyhalo, pretože povolenia prekračujú povolenia udelené %s",
+ "Setting permissions for %s failed, because the item was not found" : "Nastavenie povolení pre %s zlyhalo, pretože položka sa nenašla",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Nie je možné nastaviť dátum konca platnosti. Zdieľania nemôžu skončiť neskôr ako %s po zdieľaní.",
+ "Cannot set expiration date. Expiration date is in the past" : "Nie je možné nastaviť dátum konca platnosti. Dátum konca platnosti je v minulosti.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Backend zdieľania %s musí implementovať rozhranie OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Backend zdieľania %s nebol nájdený",
+ "Sharing backend for %s not found" : "Backend zdieľania pre %s nebol nájdený",
+ "Sharing %s failed, because the user %s is the original sharer" : "Zdieľanie %s zlyhalo, pretože používateľ %s je pôvodcom zdieľania",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Zdieľanie %s zlyhalo, pretože povolenia prekračujú povolenia udelené %s",
+ "Sharing %s failed, because resharing is not allowed" : "Zdieľanie %s zlyhalo, pretože zdieľanie ďalším nie je povolené",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Zdieľanie %s zlyhalo, backend zdieľania nenašiel zdrojový %s",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Zdieľanie %s zlyhalo, pretože súbor sa nenašiel vo vyrovnávacej pamäti súborov",
+ "Could not find category \"%s\"" : "Nemožno nájsť danú kategóriu \"%s\"",
+ "seconds ago" : "pred sekundami",
+ "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"],
+ "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"],
+ "today" : "dnes",
+ "yesterday" : "včera",
+ "_%n day go_::_%n days ago_" : ["pred %n dňom","pred %n dňami","pred %n dňami"],
+ "last month" : "minulý mesiac",
+ "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"],
+ "last year" : "minulý rok",
+ "years ago" : "pred rokmi",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "V mene používateľa sú povolené len nasledovné znaky: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Musíte zadať platné používateľské meno",
+ "A valid password must be provided" : "Musíte zadať platné heslo",
+ "The username is already being used" : "Meno používateľa je už použité",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ovládače databázy (sqlite, mysql, or postgresql) nie sú nainštalované.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Oprávnenia je zvyčajne možné opraviť tým, že %sudelíte webovému serveru oprávnenie na zápis do koreňového adresára%s.",
+ "Cannot write into \"config\" directory" : "Nie je možné zapisovať do priečinka \"config\"",
+ "Cannot write into \"apps\" directory" : "Nie je možné zapisovať do priečinka \"apps\"",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Toto je zvyčajne možné opraviť tým, že %sudelíte webovému serveru oprávnenie na zápis do adresára aplikácií%s alebo vypnete obchod s aplikáciami v konfiguračnom súbore.",
+ "Cannot create \"data\" directory (%s)" : "Nie je možné vytvoriť priečinok \"data\" (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Toto je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového adresára .",
+ "Setting locale to %s failed" : "Nastavenie locale na %s zlyhalo",
+ "Please install one of these locales on your system and restart your webserver." : "Prosím, nainštalujte si aspoň jeden z týchto jazykov so svojho systému a reštartujte webserver.",
+ "Please ask your server administrator to install the module." : "Prosím, požiadajte administrátora vášho servera o inštaláciu modulu.",
+ "PHP module %s not installed." : "PHP modul %s nie je nainštalovaný.",
+ "PHP %s or higher is required." : "Požadovaná verzia PHP %s alebo vyššia.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Prosím, požiadajte administrátora vášho servera o aktualizáciu PHP na najnovšiu verziu. Vaša verzia PHP už nie je podporovaná ownCloud-om a PHP komunitou.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode je zapnutý. ownCloud pre správnu funkčnosť vyžaduje, aby bol vypnutý.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode je zastarané a väčšinou zbytočné nastavenie, ktoré by malo byť vypnuté. Prosím, požiadajte administrátora vášho serveru o jeho vypnutie v php.ini alebo v nastaveniach webového servera.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes sú povolené. ownCloud pre správnu funkčnosť vyžaduje, aby boli vypnuté.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes je zavrhovanou a zbytočnou voľbou, ktorú by ste mali ponechať vypnutú. Prosím, požiadajte správcu svojho servera, aby ju vypol v php.ini alebo v konfigurácii vášho webového servera.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly boli nainštalované, ale stále sú uvedené ako chýbajúce?",
+ "Please ask your server administrator to restart the web server." : "Prosím, požiadajte administrátora vášho servera o reštartovanie webového servera.",
+ "PostgreSQL >= 9 required" : "Vyžadované PostgreSQL >= 9",
+ "Please upgrade your database version" : "Prosím, aktualizujte verziu svojej databázy",
+ "Error occurred while checking PostgreSQL version" : "Nastala chyba pri overovaní verzie PostgreSQL",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Prosím, uistite sa, že máte PostgreSQL >= 9 alebo sa pozrite do protokolu, kde nájdete podrobnejšie informácie o chybe",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Prosím, zmeňte oprávnenia na 0770, aby tento adresár nemohli ostatní používatelia vypísať.",
+ "Data directory (%s) is readable by other users" : "Adresár dát (%s) je prístupný na čítanie ostatným používateľom",
+ "Data directory (%s) is invalid" : "Adresár dát (%s) je neplatný",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Prosím, skontrolujte, či adresár dát obsahuje súbor „.ocdata“.",
+ "Could not obtain lock type %d on \"%s\"." : "Nepodarilo sa získať zámok typu %d na „%s“."
+},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+}
\ No newline at end of file
diff --git a/lib/l10n/sk_SK.php b/lib/l10n/sk_SK.php
deleted file mode 100644
index 6015885a39a..00000000000
--- a/lib/l10n/sk_SK.php
+++ /dev/null
@@ -1,121 +0,0 @@
- "Nie je možné zapisovat do priečinka \"config\"!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis k adresáru s konfiguráciou.",
-"See %s" => "Pozri %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "To je zvyčajne možné opraviť tým, že %sudelíte webovému serveru oprávnenie na zápis k adresáru s konfiguráciou%s.",
-"Sample configuration detected" => "Detekovaná bola vzorová konfigurácia",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Zistilo sa, že konfigurácia bola skopírovaná zo vzorových súborov. Takáto konfigurácia nie je podporovaná a môže poškodiť vašu inštaláciu. Prečítajte si dokumentáciu pred vykonaním zmien v config.php",
-"Help" => "Pomoc",
-"Personal" => "Osobné",
-"Settings" => "Nastavenia",
-"Users" => "Používatelia",
-"Admin" => "Administrátor",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Aplikáciu \\\"%s\\\" nemožno nainštalovať, pretože nie je kompatibilná s touto verziou systému ownCloud.",
-"No app name specified" => "Nešpecifikované meno aplikácie",
-"Unknown filetype" => "Neznámy typ súboru",
-"Invalid image" => "Chybný obrázok",
-"web services under your control" => "webové služby pod Vašou kontrolou",
-"App directory already exists" => "Aplikačný priečinok už existuje",
-"Can't create app folder. Please fix permissions. %s" => "Nemožno vytvoriť aplikačný priečinok. Prosím upravte povolenia. %s",
-"No source specified when installing app" => "Nešpecifikovaný zdroj pri inštalácii aplikácie",
-"No href specified when installing app from http" => "Nešpecifikovaný atribút \"href\" pri inštalácii aplikácie pomocou protokolu \"http\"",
-"No path specified when installing app from local file" => "Nešpecifikovaná cesta pri inštalácii aplikácie z lokálneho súboru",
-"Archives of type %s are not supported" => "Tento typ archívu %s nie je podporovaný",
-"Failed to open archive when installing app" => "Zlyhanie pri otváraní archívu počas inštalácie aplikácie",
-"App does not provide an info.xml file" => "Aplikácia neposkytuje súbor info.xml",
-"App can't be installed because of not allowed code in the App" => "Aplikácia nemôže byť nainštalovaná pre nepovolený kód v aplikácii",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Aplikácia nemôže byť nainštalovaná pre nekompatibilitu z touto verziou ownCloudu",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Aplikácia nemôže byť nainštalovaná pretože obsahuje pravý štítok, ktorý nie je povolený pre zaslané \"shipped\" aplikácie",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Aplikácia nemôže byť nainštalovaná pretože verzia v info.xml/version nezodpovedá verzii špecifikovanej v obchode s aplikáciami",
-"Application is not enabled" => "Aplikácia nie je zapnutá",
-"Authentication error" => "Chyba autentifikácie",
-"Token expired. Please reload page." => "Token vypršal. Obnovte, prosím, stránku.",
-"Unknown user" => "Neznámy používateľ",
-"%s enter the database username." => "Zadajte používateľské meno %s databázy.",
-"%s enter the database name." => "Zadajte názov databázy pre %s databázy.",
-"%s you may not use dots in the database name" => "V názve databázy %s nemôžete používať bodky",
-"MS SQL username and/or password not valid: %s" => "Používateľské meno, alebo heslo MS SQL nie je platné: %s",
-"You need to enter either an existing account or the administrator." => "Musíte zadať jestvujúci účet alebo administrátora.",
-"MySQL/MariaDB username and/or password not valid" => "Používateľské meno a/alebo heslo pre MySQL/MariaDB databázu je neplatné",
-"DB Error: \"%s\"" => "Chyba DB: \"%s\"",
-"Offending command was: \"%s\"" => "Podozrivý príkaz bol: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "Používateľ '%s'@'localhost' už v MySQL/MariaDB existuje.",
-"Drop this user from MySQL/MariaDB" => "Zahodiť používateľa z MySQL/MariaDB.",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "Používateľ '%s'@'%%' už v MySQL/MariaDB existuje",
-"Drop this user from MySQL/MariaDB." => "Zahodiť používateľa z MySQL/MariaDB.",
-"Oracle connection could not be established" => "Nie je možné pripojiť sa k Oracle",
-"Oracle username and/or password not valid" => "Používateľské meno a/alebo heslo pre Oracle databázu je neplatné",
-"Offending command was: \"%s\", name: %s, password: %s" => "Podozrivý príkaz bol: \"%s\", meno: %s, heslo: %s",
-"PostgreSQL username and/or password not valid" => "Používateľské meno a/alebo heslo pre PostgreSQL databázu je neplatné",
-"Set an admin username." => "Zadajte používateľské meno administrátora.",
-"Set an admin password." => "Zadajte heslo administrátora.",
-"%s shared »%s« with you" => "%s s vami zdieľa »%s«",
-"Sharing %s failed, because the file does not exist" => "Zdieľanie %s zlyhalo, pretože súbor neexistuje",
-"You are not allowed to share %s" => "Nemôžete zdieľať %s",
-"Sharing %s failed, because the user %s is the item owner" => "Zdieľanie %s zlyhalo, pretože používateľ %s je vlastníkom položky",
-"Sharing %s failed, because the user %s does not exist" => "Zdieľanie %s zlyhalo, pretože používateľ %s neexistuje",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Zdieľanie %s zlyhalo, pretože používateľ %s nie je členom žiadnej skupiny spoločnej s používateľom %s",
-"Sharing %s failed, because this item is already shared with %s" => "Zdieľanie %s zlyhalo, pretože táto položka už je zdieľaná s %s",
-"Sharing %s failed, because the group %s does not exist" => "Zdieľanie %s zlyhalo, pretože skupina %s neexistuje",
-"Sharing %s failed, because %s is not a member of the group %s" => "Zdieľanie %s zlyhalo, pretože %s nie je členom skupiny %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Musíte zadať heslo ak chcete vytvoriť verejný odkaz, lebo iba odkazy chránené heslom sú povolené",
-"Sharing %s failed, because sharing with links is not allowed" => "Zdieľanie %s zlyhalo, pretože zdieľanie odkazom nie je povolené",
-"Share type %s is not valid for %s" => "Typ zdieľania %s nie je platný pre %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Nastavenie povolení pre %s zlyhalo, pretože povolenia prekračujú povolenia udelené %s",
-"Setting permissions for %s failed, because the item was not found" => "Nastavenie povolení pre %s zlyhalo, pretože položka sa nenašla",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Nie je možné nastaviť dátum konca platnosti. Zdieľania nemôžu skončiť neskôr ako %s po zdieľaní.",
-"Cannot set expiration date. Expiration date is in the past" => "Nie je možné nastaviť dátum konca platnosti. Dátum konca platnosti je v minulosti.",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Backend zdieľania %s musí implementovať rozhranie OCP\\Share_Backend",
-"Sharing backend %s not found" => "Backend zdieľania %s nebol nájdený",
-"Sharing backend for %s not found" => "Backend zdieľania pre %s nebol nájdený",
-"Sharing %s failed, because the user %s is the original sharer" => "Zdieľanie %s zlyhalo, pretože používateľ %s je pôvodcom zdieľania",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Zdieľanie %s zlyhalo, pretože povolenia prekračujú povolenia udelené %s",
-"Sharing %s failed, because resharing is not allowed" => "Zdieľanie %s zlyhalo, pretože zdieľanie ďalším nie je povolené",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Zdieľanie %s zlyhalo, backend zdieľania nenašiel zdrojový %s",
-"Sharing %s failed, because the file could not be found in the file cache" => "Zdieľanie %s zlyhalo, pretože súbor sa nenašiel vo vyrovnávacej pamäti súborov",
-"Could not find category \"%s\"" => "Nemožno nájsť danú kategóriu \"%s\"",
-"seconds ago" => "pred sekundami",
-"_%n minute ago_::_%n minutes ago_" => array("pred %n minútou","pred %n minútami","pred %n minútami"),
-"_%n hour ago_::_%n hours ago_" => array("pred %n hodinou","pred %n hodinami","pred %n hodinami"),
-"today" => "dnes",
-"yesterday" => "včera",
-"_%n day go_::_%n days ago_" => array("pred %n dňom","pred %n dňami","pred %n dňami"),
-"last month" => "minulý mesiac",
-"_%n month ago_::_%n months ago_" => array("pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"),
-"last year" => "minulý rok",
-"years ago" => "pred rokmi",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "V mene používateľa sú povolené len nasledovné znaky: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
-"A valid username must be provided" => "Musíte zadať platné používateľské meno",
-"A valid password must be provided" => "Musíte zadať platné heslo",
-"The username is already being used" => "Meno používateľa je už použité",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Ovládače databázy (sqlite, mysql, or postgresql) nie sú nainštalované.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "Oprávnenia je zvyčajne možné opraviť tým, že %sudelíte webovému serveru oprávnenie na zápis do koreňového adresára%s.",
-"Cannot write into \"config\" directory" => "Nie je možné zapisovať do priečinka \"config\"",
-"Cannot write into \"apps\" directory" => "Nie je možné zapisovať do priečinka \"apps\"",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Toto je zvyčajne možné opraviť tým, že %sudelíte webovému serveru oprávnenie na zápis do adresára aplikácií%s alebo vypnete obchod s aplikáciami v konfiguračnom súbore.",
-"Cannot create \"data\" directory (%s)" => "Nie je možné vytvoriť priečinok \"data\" (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Toto je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového adresára .",
-"Setting locale to %s failed" => "Nastavenie locale na %s zlyhalo",
-"Please install one of these locales on your system and restart your webserver." => "Prosím, nainštalujte si aspoň jeden z týchto jazykov so svojho systému a reštartujte webserver.",
-"Please ask your server administrator to install the module." => "Prosím, požiadajte administrátora vášho servera o inštaláciu modulu.",
-"PHP module %s not installed." => "PHP modul %s nie je nainštalovaný.",
-"PHP %s or higher is required." => "Požadovaná verzia PHP %s alebo vyššia.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Prosím, požiadajte administrátora vášho servera o aktualizáciu PHP na najnovšiu verziu. Vaša verzia PHP už nie je podporovaná ownCloud-om a PHP komunitou.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode je zapnutý. ownCloud pre správnu funkčnosť vyžaduje, aby bol vypnutý.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode je zastarané a väčšinou zbytočné nastavenie, ktoré by malo byť vypnuté. Prosím, požiadajte administrátora vášho serveru o jeho vypnutie v php.ini alebo v nastaveniach webového servera.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes sú povolené. ownCloud pre správnu funkčnosť vyžaduje, aby boli vypnuté.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes je zavrhovanou a zbytočnou voľbou, ktorú by ste mali ponechať vypnutú. Prosím, požiadajte správcu svojho servera, aby ju vypol v php.ini alebo v konfigurácii vášho webového servera.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP moduly boli nainštalované, ale stále sú uvedené ako chýbajúce?",
-"Please ask your server administrator to restart the web server." => "Prosím, požiadajte administrátora vášho servera o reštartovanie webového servera.",
-"PostgreSQL >= 9 required" => "Vyžadované PostgreSQL >= 9",
-"Please upgrade your database version" => "Prosím, aktualizujte verziu svojej databázy",
-"Error occurred while checking PostgreSQL version" => "Nastala chyba pri overovaní verzie PostgreSQL",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Prosím, uistite sa, že máte PostgreSQL >= 9 alebo sa pozrite do protokolu, kde nájdete podrobnejšie informácie o chybe",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Prosím, zmeňte oprávnenia na 0770, aby tento adresár nemohli ostatní používatelia vypísať.",
-"Data directory (%s) is readable by other users" => "Adresár dát (%s) je prístupný na čítanie ostatným používateľom",
-"Data directory (%s) is invalid" => "Adresár dát (%s) je neplatný",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Prosím, skontrolujte, či adresár dát obsahuje súbor „.ocdata“.",
-"Could not obtain lock type %d on \"%s\"." => "Nepodarilo sa získať zámok typu %d na „%s“."
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/lib/l10n/sl.js b/lib/l10n/sl.js
new file mode 100644
index 00000000000..8277186b0b3
--- /dev/null
+++ b/lib/l10n/sl.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Mapa 'config' nima določenih ustreznih dovoljenj za pisanje!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Napako je mogoče odpraviti z dodelitvijo dovoljenja spletnemu strežniku za pisanje v nastavitveno mapo.",
+ "See %s" : "Oglejte si %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Napako je mogoče odpraviti z %sdodelitvijo dovoljenja spletnemu strežniku za pisanje v nastavitveno mapo%s.",
+ "Sample configuration detected" : "Zaznana je neustrezna preizkusna nastavitev",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zaznano je, da je bila v sistem kopirana datoteka z enostavno nastavitvijo. To lahko vpliva na namestitev in zato možnost ni podprta. Pred spremembami datoteke config.php si natančno preberite dokumentacijo.",
+ "Help" : "Pomoč",
+ "Personal" : "Osebno",
+ "Settings" : "Nastavitve",
+ "Users" : "Uporabniki",
+ "Admin" : "Skrbništvo",
+ "Recommended" : "Priporočljivo",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Programnika \\\"%s\\\" ni mogoče namestiti, ker različica programa ni skladna z različico okolja ownCloud.",
+ "No app name specified" : "Ni podanega imena programa",
+ "Unknown filetype" : "Neznana vrsta datoteke",
+ "Invalid image" : "Neveljavna slika",
+ "Database Error" : "Napaka podatkovne zbirke",
+ "Please contact your system administrator." : "Stopite v stik s skrbnikom sistema.",
+ "web services under your control" : "spletne storitve pod vašim nadzorom",
+ "App directory already exists" : "Programska mapa že obstaja",
+ "Can't create app folder. Please fix permissions. %s" : "Programske mape ni mogoče ustvariti. Ni ustreznih dovoljenj. %s",
+ "No source specified when installing app" : "Ni podanega vira med nameščenjem programa",
+ "No href specified when installing app from http" : "Ni podanega podatka naslova HREF med nameščenjem programa preko protokola HTTP.",
+ "No path specified when installing app from local file" : "Ni podane poti med nameščenjem programa iz krajevne datoteke",
+ "Archives of type %s are not supported" : "Arhivi vrste %s niso podprti",
+ "Failed to open archive when installing app" : "Odpiranje arhiva je med nameščanjem spodletelo",
+ "App does not provide an info.xml file" : "Program je brez datoteke info.xml",
+ "App can't be installed because of not allowed code in the App" : "Programa ni mogoče namestiti zaradi nedovoljene programske kode.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Programa ni mogoče namestiti, ker ni skladen z trenutno nameščeno različico oblaka ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Programa ni mogoče namestiti, ker vsebuje oznako potrditve , ki pa ni dovoljena za javne programe.",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Program ni mogoče namestiti zaradi neustrezne različice datoteke info.xml. Ta ni enaka različici programa.",
+ "Application is not enabled" : "Program ni omogočen",
+ "Authentication error" : "Napaka overjanja",
+ "Token expired. Please reload page." : "Žeton je potekel. Stran je treba ponovno naložiti.",
+ "Unknown user" : "Neznan uporabnik",
+ "%s enter the database username." : "%s - vnos uporabniškega imena podatkovne zbirke.",
+ "%s enter the database name." : "%s - vnos imena podatkovne zbirke.",
+ "%s you may not use dots in the database name" : "%s - v imenu podatkovne zbirke ni dovoljeno uporabljati pik.",
+ "MS SQL username and/or password not valid: %s" : "Uporabniško ime ali geslo MS SQL ni veljavno: %s",
+ "You need to enter either an existing account or the administrator." : "Prijaviti se je treba v obstoječi ali pa skrbniški račun.",
+ "MySQL/MariaDB username and/or password not valid" : "Uporabniško ime ali geslo za MySQL/MariaDB ni veljavno",
+ "DB Error: \"%s\"" : "Napaka podatkovne zbirke: \"%s\"",
+ "Offending command was: \"%s\"" : "Napačni ukaz je: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Uporabnik podatkovne zbirke MySQL/MariaDB '%s'@'localhost' že obstaja.",
+ "Drop this user from MySQL/MariaDB" : "Odstrani uporabnika iz podatkovne zbirke MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Uporabnik podatkovne zbirke MySQL/MariaDB '%s'@'%%' že obstaja.",
+ "Drop this user from MySQL/MariaDB." : "Odstrani uporabnika iz podatkovne zbirke MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Povezave s sistemom Oracle ni mogoče vzpostaviti.",
+ "Oracle username and/or password not valid" : "Uporabniško ime ali geslo Oracle ni veljavno",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Napačni ukaz je: \"%s\", ime: %s, geslo: %s",
+ "PostgreSQL username and/or password not valid" : "Uporabniško ime ali geslo PostgreSQL ni veljavno",
+ "Set an admin username." : "Nastavi uporabniško ime skrbnika.",
+ "Set an admin password." : "Nastavi geslo skrbnika.",
+ "Can't create or write into the data directory %s" : "Ni mogoče zapisati podatkov v podatkovno mapo %s",
+ "%s shared »%s« with you" : "%s je omogočil souporabo »%s«",
+ "Sharing %s failed, because the file does not exist" : "Souporaba %s je spodletela, ker ta datoteka ne obstaja",
+ "You are not allowed to share %s" : "Omogočanje souporabe %s brez ustreznih dovoljenj ni mogoče.",
+ "Sharing %s failed, because the user %s is the item owner" : "Nastavljanje souporabe %s je spodletelo, ker je uporabnik %s lastnik predmeta.",
+ "Sharing %s failed, because the user %s does not exist" : "Nastavljanje souporabe %s je spodletelo, ker uporabnik %s ne obstaja.",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Nastavljanje souporabe %s je spodletelo, ker uporabnik %s ni član nobene skupine, v kateri je tudi uporabnik %s.",
+ "Sharing %s failed, because this item is already shared with %s" : "Nastavljanje souporabe %s je spodletela, ker je ima uporabnik %s predmet že v souporabi.",
+ "Sharing %s failed, because the group %s does not exist" : "Nastavljanje souporabe %s je spodletelo, ker je skupina %s ne obstaja.",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Nastavljanje souporabe %s je spodletelo, ker uporabnik %s ni član skupine %s.",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Navesti je treba geslo za ustvarjanje javne povezave, saj so dovoljene le zaščitene.",
+ "Sharing %s failed, because sharing with links is not allowed" : "Nastavljanje souporabe %s je spodletelo, ker souporaba preko povezave ni dovoljena.",
+ "Share type %s is not valid for %s" : "Vrsta souporabe %s za %s ni veljavna.",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nastavljanje dovoljenj za %s je spodletelo, saj ta presegajo dovoljenja dodeljena uporabniku %s.",
+ "Setting permissions for %s failed, because the item was not found" : "Nastavljanje dovoljenj za %s je spodletelo, ker predmeta ni mogoče najti.",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Ni mogoče določiti datuma preteka. Ni dovoljeno, da so mape ali datoteke, dodeljene v souporabo, v souporabi po %s.",
+ "Cannot set expiration date. Expiration date is in the past" : "Ni mogoče nastaviti datuma preteka. Ta datum je že preteklost.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Souporaba ozadnjega programa %s mora vsebovati tudi vmesnik OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Ozadnjega programa %s za souporabo ni mogoče najti",
+ "Sharing backend for %s not found" : "Ozadnjega programa za souporabo za %s ni mogoče najti",
+ "Sharing %s failed, because the user %s is the original sharer" : "Nastavljanje souporabe %s je spodletelo, ker je uporabnik %s omogočil souporabo predmeta.",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Nastavljanje souporabe %s je spodletelo, ker zahteve presegajo dodeljena dovoljenja za %s.",
+ "Sharing %s failed, because resharing is not allowed" : "Nastavljanje souporabe %s je spodletelo, ker nadaljnje omogočanje souporabe ni dovoljeno.",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Nastavljanje souporabe %s je spodletelo, ker ozadnji program %s ne upravlja z viri.",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Nastavljanje souporabe %s je spodletelo, ker v predpomnilniku zahtevana datoteka ne obstaja.",
+ "Could not find category \"%s\"" : "Kategorije \"%s\" ni mogoče najti.",
+ "seconds ago" : "pred nekaj sekundami",
+ "_%n minute ago_::_%n minutes ago_" : ["pred %n minuto","pred %n minutama","pred %n minutami","pred %n minutami"],
+ "_%n hour ago_::_%n hours ago_" : ["pred %n uro","pred %n urama","pred %n urami","pred %n urami"],
+ "today" : "danes",
+ "yesterday" : "včeraj",
+ "_%n day go_::_%n days ago_" : ["pred %n dnevom","pred %n dnevoma","pred %n dnevi","pred %n dnevi"],
+ "last month" : "zadnji mesec",
+ "_%n month ago_::_%n months ago_" : ["pred %n mesecem","pred %n mesecema","pred %n meseci","pred %n meseci"],
+ "last year" : "lansko leto",
+ "years ago" : "let nazaj",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "V uporabniškem imenu je dovoljeno uporabiti le znake: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Navedeno mora biti veljavno uporabniško ime",
+ "A valid password must be provided" : "Navedeno mora biti veljavno geslo",
+ "The username is already being used" : "Vpisano uporabniško ime je že v uporabi",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ni nameščenih programnikov podatkovnih zbirk (sqlite, mysql, ali postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Dovoljenja je mogoče odpraviti z %sdodelitvijo dovoljenja spletnemu strežniku za pisanje korensko mapo%s.",
+ "Cannot write into \"config\" directory" : "Mapa 'config' nima nastavljenih ustreznih dovoljenj za pisanje!",
+ "Cannot write into \"apps\" directory" : "Mapa \"apps\" nima nastavljenih ustreznih dovoljenj za pisanje!",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Napako je mogoče odpraviti z dodelitvijo dovoljenja spletnemu strežniku %s za pisanje v mapo programov %s, ali pa z onemogočanjem nameščanja programov v nastavitveni datoteki.",
+ "Cannot create \"data\" directory (%s)" : "Ni mogoče ustvariti\"podatkovne\" mape (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Napako je mogoče odpraviti z dodelitvijo dovoljenja spletnemu strežniku za pisanje v korensko mapo .",
+ "Setting locale to %s failed" : "Nastavljanje jezikovnih določil na %s je spodletelo.",
+ "Please install one of these locales on your system and restart your webserver." : "Namestiti je treba podporo za vsaj eno od navedenih jezikovnih določil v sistemu in nato ponovno zagnati spletni strežnik.",
+ "Please ask your server administrator to install the module." : "Obvestite skrbnika strežnika, da je treba namestiti manjkajoč modul.",
+ "PHP module %s not installed." : "Modul PHP %s ni nameščen.",
+ "PHP %s or higher is required." : "Zahtevana je različica PHP %s ali višja.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Obvestite skrbnika strežnika, da je treba posodobiti okolje PHP na najnovejšo različico. Trenutno nameščene različice skupnost PHP in ownCloud ne podpira več.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Omogočen je varni način PHP. Za pravilno delovanje system ownCloud je treba možnost onemogočiti.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Možnost varnega načina PHP je opuščena in jo je priporočljivo onemogočiti. Stopite v stik s skrbnikom sistema oziroma onemogočite možnost v datoteki php.ini ali med nastavitvami spletnega strežnika.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Omogočena je možnost Magic Quotes. Za pravilno delovanje sistema ownCloud je treba možnost onemogočiti.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Možnost Magic Quotes je opuščena in jo je priporočljivo onemogočiti. Stopite v stik s skrbnikom sistema oziroma onemogočite možnost v datoteki php.ini ali med nastavitvami spletnega strežnika.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Ali so bili moduli PHP nameščeni, pa so še vedno označeni kot manjkajoči?",
+ "Please ask your server administrator to restart the web server." : "Obvestite skrbnika strežnika, da je treba ponovno zagnati spletni strežnik.",
+ "PostgreSQL >= 9 required" : "Zahtevana je različica PostgreSQL >= 9.",
+ "Please upgrade your database version" : "Posodobite različico podatkovne zbirke.",
+ "Error occurred while checking PostgreSQL version" : "Prišlo je do napake med preverjanjem različice PostgreSQL.",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Prepričajte se, da je nameščena različica PostgreSQL >= 9 in preverite dnevniški zapis za več podrobnosti o napaki.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Spremenite dovoljenja mape na 0770 in s tem onemogočite branje vsebine drugim uporabnikom.",
+ "Data directory (%s) is readable by other users" : "Podatkovna mapa (%s) ima določena dovoljenja za branje skupine.",
+ "Data directory (%s) is invalid" : "Podatkovna mapa (%s) ni veljavna.",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Preverite, ali je v korenu podatkovne mape datoteka \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Ni mogoče pridobiti zaklepa %d na \"%s\"."
+},
+"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/lib/l10n/sl.json b/lib/l10n/sl.json
new file mode 100644
index 00000000000..a5d22213f1d
--- /dev/null
+++ b/lib/l10n/sl.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Mapa 'config' nima določenih ustreznih dovoljenj za pisanje!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Napako je mogoče odpraviti z dodelitvijo dovoljenja spletnemu strežniku za pisanje v nastavitveno mapo.",
+ "See %s" : "Oglejte si %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Napako je mogoče odpraviti z %sdodelitvijo dovoljenja spletnemu strežniku za pisanje v nastavitveno mapo%s.",
+ "Sample configuration detected" : "Zaznana je neustrezna preizkusna nastavitev",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zaznano je, da je bila v sistem kopirana datoteka z enostavno nastavitvijo. To lahko vpliva na namestitev in zato možnost ni podprta. Pred spremembami datoteke config.php si natančno preberite dokumentacijo.",
+ "Help" : "Pomoč",
+ "Personal" : "Osebno",
+ "Settings" : "Nastavitve",
+ "Users" : "Uporabniki",
+ "Admin" : "Skrbništvo",
+ "Recommended" : "Priporočljivo",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Programnika \\\"%s\\\" ni mogoče namestiti, ker različica programa ni skladna z različico okolja ownCloud.",
+ "No app name specified" : "Ni podanega imena programa",
+ "Unknown filetype" : "Neznana vrsta datoteke",
+ "Invalid image" : "Neveljavna slika",
+ "Database Error" : "Napaka podatkovne zbirke",
+ "Please contact your system administrator." : "Stopite v stik s skrbnikom sistema.",
+ "web services under your control" : "spletne storitve pod vašim nadzorom",
+ "App directory already exists" : "Programska mapa že obstaja",
+ "Can't create app folder. Please fix permissions. %s" : "Programske mape ni mogoče ustvariti. Ni ustreznih dovoljenj. %s",
+ "No source specified when installing app" : "Ni podanega vira med nameščenjem programa",
+ "No href specified when installing app from http" : "Ni podanega podatka naslova HREF med nameščenjem programa preko protokola HTTP.",
+ "No path specified when installing app from local file" : "Ni podane poti med nameščenjem programa iz krajevne datoteke",
+ "Archives of type %s are not supported" : "Arhivi vrste %s niso podprti",
+ "Failed to open archive when installing app" : "Odpiranje arhiva je med nameščanjem spodletelo",
+ "App does not provide an info.xml file" : "Program je brez datoteke info.xml",
+ "App can't be installed because of not allowed code in the App" : "Programa ni mogoče namestiti zaradi nedovoljene programske kode.",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Programa ni mogoče namestiti, ker ni skladen z trenutno nameščeno različico oblaka ownCloud.",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Programa ni mogoče namestiti, ker vsebuje oznako potrditve , ki pa ni dovoljena za javne programe.",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Program ni mogoče namestiti zaradi neustrezne različice datoteke info.xml. Ta ni enaka različici programa.",
+ "Application is not enabled" : "Program ni omogočen",
+ "Authentication error" : "Napaka overjanja",
+ "Token expired. Please reload page." : "Žeton je potekel. Stran je treba ponovno naložiti.",
+ "Unknown user" : "Neznan uporabnik",
+ "%s enter the database username." : "%s - vnos uporabniškega imena podatkovne zbirke.",
+ "%s enter the database name." : "%s - vnos imena podatkovne zbirke.",
+ "%s you may not use dots in the database name" : "%s - v imenu podatkovne zbirke ni dovoljeno uporabljati pik.",
+ "MS SQL username and/or password not valid: %s" : "Uporabniško ime ali geslo MS SQL ni veljavno: %s",
+ "You need to enter either an existing account or the administrator." : "Prijaviti se je treba v obstoječi ali pa skrbniški račun.",
+ "MySQL/MariaDB username and/or password not valid" : "Uporabniško ime ali geslo za MySQL/MariaDB ni veljavno",
+ "DB Error: \"%s\"" : "Napaka podatkovne zbirke: \"%s\"",
+ "Offending command was: \"%s\"" : "Napačni ukaz je: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Uporabnik podatkovne zbirke MySQL/MariaDB '%s'@'localhost' že obstaja.",
+ "Drop this user from MySQL/MariaDB" : "Odstrani uporabnika iz podatkovne zbirke MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Uporabnik podatkovne zbirke MySQL/MariaDB '%s'@'%%' že obstaja.",
+ "Drop this user from MySQL/MariaDB." : "Odstrani uporabnika iz podatkovne zbirke MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Povezave s sistemom Oracle ni mogoče vzpostaviti.",
+ "Oracle username and/or password not valid" : "Uporabniško ime ali geslo Oracle ni veljavno",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Napačni ukaz je: \"%s\", ime: %s, geslo: %s",
+ "PostgreSQL username and/or password not valid" : "Uporabniško ime ali geslo PostgreSQL ni veljavno",
+ "Set an admin username." : "Nastavi uporabniško ime skrbnika.",
+ "Set an admin password." : "Nastavi geslo skrbnika.",
+ "Can't create or write into the data directory %s" : "Ni mogoče zapisati podatkov v podatkovno mapo %s",
+ "%s shared »%s« with you" : "%s je omogočil souporabo »%s«",
+ "Sharing %s failed, because the file does not exist" : "Souporaba %s je spodletela, ker ta datoteka ne obstaja",
+ "You are not allowed to share %s" : "Omogočanje souporabe %s brez ustreznih dovoljenj ni mogoče.",
+ "Sharing %s failed, because the user %s is the item owner" : "Nastavljanje souporabe %s je spodletelo, ker je uporabnik %s lastnik predmeta.",
+ "Sharing %s failed, because the user %s does not exist" : "Nastavljanje souporabe %s je spodletelo, ker uporabnik %s ne obstaja.",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Nastavljanje souporabe %s je spodletelo, ker uporabnik %s ni član nobene skupine, v kateri je tudi uporabnik %s.",
+ "Sharing %s failed, because this item is already shared with %s" : "Nastavljanje souporabe %s je spodletela, ker je ima uporabnik %s predmet že v souporabi.",
+ "Sharing %s failed, because the group %s does not exist" : "Nastavljanje souporabe %s je spodletelo, ker je skupina %s ne obstaja.",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Nastavljanje souporabe %s je spodletelo, ker uporabnik %s ni član skupine %s.",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Navesti je treba geslo za ustvarjanje javne povezave, saj so dovoljene le zaščitene.",
+ "Sharing %s failed, because sharing with links is not allowed" : "Nastavljanje souporabe %s je spodletelo, ker souporaba preko povezave ni dovoljena.",
+ "Share type %s is not valid for %s" : "Vrsta souporabe %s za %s ni veljavna.",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nastavljanje dovoljenj za %s je spodletelo, saj ta presegajo dovoljenja dodeljena uporabniku %s.",
+ "Setting permissions for %s failed, because the item was not found" : "Nastavljanje dovoljenj za %s je spodletelo, ker predmeta ni mogoče najti.",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Ni mogoče določiti datuma preteka. Ni dovoljeno, da so mape ali datoteke, dodeljene v souporabo, v souporabi po %s.",
+ "Cannot set expiration date. Expiration date is in the past" : "Ni mogoče nastaviti datuma preteka. Ta datum je že preteklost.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Souporaba ozadnjega programa %s mora vsebovati tudi vmesnik OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Ozadnjega programa %s za souporabo ni mogoče najti",
+ "Sharing backend for %s not found" : "Ozadnjega programa za souporabo za %s ni mogoče najti",
+ "Sharing %s failed, because the user %s is the original sharer" : "Nastavljanje souporabe %s je spodletelo, ker je uporabnik %s omogočil souporabo predmeta.",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Nastavljanje souporabe %s je spodletelo, ker zahteve presegajo dodeljena dovoljenja za %s.",
+ "Sharing %s failed, because resharing is not allowed" : "Nastavljanje souporabe %s je spodletelo, ker nadaljnje omogočanje souporabe ni dovoljeno.",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Nastavljanje souporabe %s je spodletelo, ker ozadnji program %s ne upravlja z viri.",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Nastavljanje souporabe %s je spodletelo, ker v predpomnilniku zahtevana datoteka ne obstaja.",
+ "Could not find category \"%s\"" : "Kategorije \"%s\" ni mogoče najti.",
+ "seconds ago" : "pred nekaj sekundami",
+ "_%n minute ago_::_%n minutes ago_" : ["pred %n minuto","pred %n minutama","pred %n minutami","pred %n minutami"],
+ "_%n hour ago_::_%n hours ago_" : ["pred %n uro","pred %n urama","pred %n urami","pred %n urami"],
+ "today" : "danes",
+ "yesterday" : "včeraj",
+ "_%n day go_::_%n days ago_" : ["pred %n dnevom","pred %n dnevoma","pred %n dnevi","pred %n dnevi"],
+ "last month" : "zadnji mesec",
+ "_%n month ago_::_%n months ago_" : ["pred %n mesecem","pred %n mesecema","pred %n meseci","pred %n meseci"],
+ "last year" : "lansko leto",
+ "years ago" : "let nazaj",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "V uporabniškem imenu je dovoljeno uporabiti le znake: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
+ "A valid username must be provided" : "Navedeno mora biti veljavno uporabniško ime",
+ "A valid password must be provided" : "Navedeno mora biti veljavno geslo",
+ "The username is already being used" : "Vpisano uporabniško ime je že v uporabi",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ni nameščenih programnikov podatkovnih zbirk (sqlite, mysql, ali postgresql).",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Dovoljenja je mogoče odpraviti z %sdodelitvijo dovoljenja spletnemu strežniku za pisanje korensko mapo%s.",
+ "Cannot write into \"config\" directory" : "Mapa 'config' nima nastavljenih ustreznih dovoljenj za pisanje!",
+ "Cannot write into \"apps\" directory" : "Mapa \"apps\" nima nastavljenih ustreznih dovoljenj za pisanje!",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Napako je mogoče odpraviti z dodelitvijo dovoljenja spletnemu strežniku %s za pisanje v mapo programov %s, ali pa z onemogočanjem nameščanja programov v nastavitveni datoteki.",
+ "Cannot create \"data\" directory (%s)" : "Ni mogoče ustvariti\"podatkovne\" mape (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Napako je mogoče odpraviti z dodelitvijo dovoljenja spletnemu strežniku za pisanje v korensko mapo .",
+ "Setting locale to %s failed" : "Nastavljanje jezikovnih določil na %s je spodletelo.",
+ "Please install one of these locales on your system and restart your webserver." : "Namestiti je treba podporo za vsaj eno od navedenih jezikovnih določil v sistemu in nato ponovno zagnati spletni strežnik.",
+ "Please ask your server administrator to install the module." : "Obvestite skrbnika strežnika, da je treba namestiti manjkajoč modul.",
+ "PHP module %s not installed." : "Modul PHP %s ni nameščen.",
+ "PHP %s or higher is required." : "Zahtevana je različica PHP %s ali višja.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Obvestite skrbnika strežnika, da je treba posodobiti okolje PHP na najnovejšo različico. Trenutno nameščene različice skupnost PHP in ownCloud ne podpira več.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "Omogočen je varni način PHP. Za pravilno delovanje system ownCloud je treba možnost onemogočiti.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Možnost varnega načina PHP je opuščena in jo je priporočljivo onemogočiti. Stopite v stik s skrbnikom sistema oziroma onemogočite možnost v datoteki php.ini ali med nastavitvami spletnega strežnika.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Omogočena je možnost Magic Quotes. Za pravilno delovanje sistema ownCloud je treba možnost onemogočiti.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Možnost Magic Quotes je opuščena in jo je priporočljivo onemogočiti. Stopite v stik s skrbnikom sistema oziroma onemogočite možnost v datoteki php.ini ali med nastavitvami spletnega strežnika.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Ali so bili moduli PHP nameščeni, pa so še vedno označeni kot manjkajoči?",
+ "Please ask your server administrator to restart the web server." : "Obvestite skrbnika strežnika, da je treba ponovno zagnati spletni strežnik.",
+ "PostgreSQL >= 9 required" : "Zahtevana je različica PostgreSQL >= 9.",
+ "Please upgrade your database version" : "Posodobite različico podatkovne zbirke.",
+ "Error occurred while checking PostgreSQL version" : "Prišlo je do napake med preverjanjem različice PostgreSQL.",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Prepričajte se, da je nameščena različica PostgreSQL >= 9 in preverite dnevniški zapis za več podrobnosti o napaki.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Spremenite dovoljenja mape na 0770 in s tem onemogočite branje vsebine drugim uporabnikom.",
+ "Data directory (%s) is readable by other users" : "Podatkovna mapa (%s) ima določena dovoljenja za branje skupine.",
+ "Data directory (%s) is invalid" : "Podatkovna mapa (%s) ni veljavna.",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Preverite, ali je v korenu podatkovne mape datoteka \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Ni mogoče pridobiti zaklepa %d na \"%s\"."
+},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
+}
\ No newline at end of file
diff --git a/lib/l10n/sl.php b/lib/l10n/sl.php
deleted file mode 100644
index af92aac057d..00000000000
--- a/lib/l10n/sl.php
+++ /dev/null
@@ -1,101 +0,0 @@
- "Mapa 'config' nima določenih ustreznih dovoljenj za pisanje!",
-"See %s" => "Oglejte si %s",
-"Sample configuration detected" => "Zaznana je neustrezna preizkusna nastavitev",
-"Help" => "Pomoč",
-"Personal" => "Osebno",
-"Settings" => "Nastavitve",
-"Users" => "Uporabniki",
-"Admin" => "Skrbništvo",
-"No app name specified" => "Ni podanega imena programa",
-"Unknown filetype" => "Neznana vrsta datoteke",
-"Invalid image" => "Neveljavna slika",
-"web services under your control" => "spletne storitve pod vašim nadzorom",
-"App directory already exists" => "Programska mapa že obstaja",
-"Can't create app folder. Please fix permissions. %s" => "Programske mape ni mogoče ustvariti. Ni ustreznih dovoljenj. %s",
-"No source specified when installing app" => "Ni podanega vira med nameščenjem programa",
-"No href specified when installing app from http" => "Ni podanega podatka naslova HREF med nameščenjem programa preko protokola HTTP.",
-"No path specified when installing app from local file" => "Ni podane poti med nameščenjem programa iz krajevne datoteke",
-"Archives of type %s are not supported" => "Arhivi vrste %s niso podprti",
-"Failed to open archive when installing app" => "Odpiranje arhiva je med nameščanjem spodletelo",
-"App does not provide an info.xml file" => "Program je brez datoteke info.xml",
-"App can't be installed because of not allowed code in the App" => "Programa ni mogoče namestiti zaradi nedovoljene programske kode.",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Programa ni mogoče namestiti, ker ni skladen z trenutno nameščeno različico oblaka ownCloud.",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Programa ni mogoče namestiti, ker vsebuje oznako potrditve , ki pa ni dovoljena za javne programe.",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Program ni mogoče namestiti zaradi neustrezne različice datoteke info.xml. Ta ni enaka različici programa.",
-"Application is not enabled" => "Program ni omogočen",
-"Authentication error" => "Napaka overjanja",
-"Token expired. Please reload page." => "Žeton je potekel. Stran je treba ponovno naložiti.",
-"Unknown user" => "Neznan uporabnik",
-"%s enter the database username." => "%s - vnos uporabniškega imena podatkovne zbirke.",
-"%s enter the database name." => "%s - vnos imena podatkovne zbirke.",
-"%s you may not use dots in the database name" => "%s - v imenu podatkovne zbirke ni dovoljeno uporabljati pik.",
-"MS SQL username and/or password not valid: %s" => "Uporabniško ime ali geslo MS SQL ni veljavno: %s",
-"You need to enter either an existing account or the administrator." => "Prijaviti se je treba v obstoječi ali pa skrbniški račun.",
-"MySQL/MariaDB username and/or password not valid" => "Uporabniško ime ali geslo za MySQL/MariaDB ni veljavno",
-"DB Error: \"%s\"" => "Napaka podatkovne zbirke: \"%s\"",
-"Offending command was: \"%s\"" => "Napačni ukaz je: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "Uporabnik podatkovne zbirke MySQL/MariaDB '%s'@'localhost' že obstaja.",
-"Drop this user from MySQL/MariaDB" => "Odstrani uporabnika iz podatkovne zbirke MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "Uporabnik podatkovne zbirke MySQL/MariaDB '%s'@'%%' že obstaja.",
-"Drop this user from MySQL/MariaDB." => "Odstrani uporabnika iz podatkovne zbirke MySQL/MariaDB.",
-"Oracle connection could not be established" => "Povezave s sistemom Oracle ni mogoče vzpostaviti.",
-"Oracle username and/or password not valid" => "Uporabniško ime ali geslo Oracle ni veljavno",
-"Offending command was: \"%s\", name: %s, password: %s" => "Napačni ukaz je: \"%s\", ime: %s, geslo: %s",
-"PostgreSQL username and/or password not valid" => "Uporabniško ime ali geslo PostgreSQL ni veljavno",
-"Set an admin username." => "Nastavi uporabniško ime skrbnika.",
-"Set an admin password." => "Nastavi geslo skrbnika.",
-"%s shared »%s« with you" => "%s je omogočil souporabo »%s«",
-"Sharing %s failed, because the file does not exist" => "Souporaba %s je spodletela, ker ta datoteka ne obstaja",
-"You are not allowed to share %s" => "Omogočanje souporabe %s brez ustreznih dovoljenj ni mogoče.",
-"Sharing %s failed, because the user %s is the item owner" => "Nastavljanje souporabe %s je spodletelo, ker je uporabnik %s lastnik predmeta.",
-"Sharing %s failed, because the user %s does not exist" => "Nastavljanje souporabe %s je spodletelo, ker uporabnik %s ne obstaja.",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Nastavljanje souporabe %s je spodletelo, ker uporabnik %s ni član nobene skupine, v kateri je tudi uporabnik %s.",
-"Sharing %s failed, because this item is already shared with %s" => "Nastavljanje souporabe %s je spodletela, ker je ima uporabnik %s predmet že v souporabi.",
-"Sharing %s failed, because the group %s does not exist" => "Nastavljanje souporabe %s je spodletelo, ker je skupina %s ne obstaja.",
-"Sharing %s failed, because %s is not a member of the group %s" => "Nastavljanje souporabe %s je spodletelo, ker uporabnik %s ni član skupine %s.",
-"Sharing %s failed, because sharing with links is not allowed" => "Nastavljanje souporabe %s je spodletelo, ker souporaba preko povezave ni dovoljena.",
-"Share type %s is not valid for %s" => "Vrsta souporabe %s za %s ni veljavna.",
-"Cannot set expiration date. Expiration date is in the past" => "Ni mogoče nastaviti datuma preteka. Ta datum je že preteklost.",
-"Sharing backend %s not found" => "Ozadnjega programa %s za souporabo ni mogoče najti",
-"Sharing backend for %s not found" => "Ozadnjega programa za souporabo za %s ni mogoče najti",
-"Sharing %s failed, because the user %s is the original sharer" => "Nastavljanje souporabe %s je spodletelo, ker je uporabnik %s omogočil souporabo predmeta.",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Nastavljanje souporabe %s je spodletelo, ker zahteve presegajo dodeljena dovoljenja za %s.",
-"Sharing %s failed, because resharing is not allowed" => "Nastavljanje souporabe %s je spodletelo, ker nadaljnje omogočanje souporabe ni dovoljeno.",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Nastavljanje souporabe %s je spodletelo, ker ozadnji program %s ne upravlja z viri.",
-"Sharing %s failed, because the file could not be found in the file cache" => "Nastavljanje souporabe %s je spodletelo, ker v predpomnilniku zahtevana datoteka ne obstaja.",
-"Could not find category \"%s\"" => "Kategorije \"%s\" ni mogoče najti.",
-"seconds ago" => "pred nekaj sekundami",
-"_%n minute ago_::_%n minutes ago_" => array("pred %n minuto","pred %n minutama","pred %n minutami","pred %n minutami"),
-"_%n hour ago_::_%n hours ago_" => array("pred %n uro","pred %n urama","pred %n urami","pred %n urami"),
-"today" => "danes",
-"yesterday" => "včeraj",
-"_%n day go_::_%n days ago_" => array("pred %n dnevom","pred %n dnevoma","pred %n dnevi","pred %n dnevi"),
-"last month" => "zadnji mesec",
-"_%n month ago_::_%n months ago_" => array("pred %n mesecem","pred %n mesecema","pred %n meseci","pred %n meseci"),
-"last year" => "lansko leto",
-"years ago" => "let nazaj",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "V uporabniškem imenu je dovoljeno uporabiti le znake: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"",
-"A valid username must be provided" => "Navedeno mora biti veljavno uporabniško ime",
-"A valid password must be provided" => "Navedeno mora biti veljavno geslo",
-"The username is already being used" => "Vpisano uporabniško ime je že v uporabi",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Ni nameščenih programnikov podatkovnih zbirk (sqlite, mysql, ali postgresql).",
-"Cannot write into \"config\" directory" => "Mapa 'config' nima nastavljenih ustreznih dovoljenj za pisanje!",
-"Cannot write into \"apps\" directory" => "Mapa \"apps\" nima nastavljenih ustreznih dovoljenj za pisanje!",
-"Please ask your server administrator to install the module." => "Obvestite skrbnika strežnika, da je treba namestiti manjkajoč modul.",
-"PHP module %s not installed." => "Modul PHP %s ni nameščen.",
-"PHP %s or higher is required." => "Zahtevana je različica PHP %s ali višja.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Obvestite skrbnika strežnika, da je treba posodobiti okolje PHP na najnovejšo različico. Trenutno nameščene različice skupnost PHP in ownCloud ne podpira več.",
-"PHP modules have been installed, but they are still listed as missing?" => "Ali so bili moduli PHP nameščeni, pa so še vedno označeni kot manjkajoči?",
-"Please ask your server administrator to restart the web server." => "Obvestite skrbnika strežnika, da je treba ponovno zagnati spletni strežnik.",
-"PostgreSQL >= 9 required" => "Zahtevana je različica PostgreSQL >= 9.",
-"Please upgrade your database version" => "Posodobite različico podatkovne zbirke.",
-"Error occurred while checking PostgreSQL version" => "Prišlo je do napake med preverjanjem različice PostgreSQL.",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Spremenite dovoljenja mape na 0770 in s tem onemogočite branje vsebine drugim uporabnikom.",
-"Data directory (%s) is readable by other users" => "Podatkovna mapa (%s) ima določena dovoljenja za branje skupine.",
-"Data directory (%s) is invalid" => "Podatkovna mapa (%s) ni veljavna.",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Preverite, ali je v korenu podatkovne mape datoteka \".ocdata\".",
-"Could not obtain lock type %d on \"%s\"." => "Ni mogoče pridobiti zaklepa %d na \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);";
diff --git a/lib/l10n/sq.js b/lib/l10n/sq.js
new file mode 100644
index 00000000000..c3be28ef1c6
--- /dev/null
+++ b/lib/l10n/sq.js
@@ -0,0 +1,43 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Ndihmë",
+ "Personal" : "Personale",
+ "Settings" : "Parametra",
+ "Users" : "Përdoruesit",
+ "Admin" : "Admin",
+ "Recommended" : "E rekomanduar",
+ "Unknown filetype" : "Tip i panjohur skedari",
+ "Invalid image" : "Imazh i pavlefshëm",
+ "web services under your control" : "shërbime web nën kontrollin tënd",
+ "Application is not enabled" : "Programi nuk është i aktivizuar.",
+ "Authentication error" : "Veprim i gabuar gjatë vërtetimit të identitetit",
+ "Token expired. Please reload page." : "Përmbajtja ka skaduar. Ju lutemi ringarkoni faqen.",
+ "%s enter the database username." : "% shkruani përdoruesin e database-it.",
+ "%s enter the database name." : "%s shkruani emrin e database-it.",
+ "%s you may not use dots in the database name" : "%s nuk mund të përdorni pikat tek emri i database-it",
+ "MS SQL username and/or password not valid: %s" : "Përdoruesi dhe/apo kodi i MS SQL i pavlefshëm: %s",
+ "You need to enter either an existing account or the administrator." : "Duhet të përdorni një llogari ekzistuese ose llogarinë e administratorit.",
+ "DB Error: \"%s\"" : "Veprim i gabuar i DB-it: \"%s\"",
+ "Offending command was: \"%s\"" : "Komanda e gabuar ishte: \"%s\"",
+ "Oracle username and/or password not valid" : "Përdoruesi dhe/apo kodi i Oracle-it i pavlefshëm",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Komanda e gabuar ishte: \"%s\", përdoruesi: %s, kodi: %s",
+ "PostgreSQL username and/or password not valid" : "Përdoruesi dhe/apo kodi i PostgreSQL i pavlefshëm",
+ "Set an admin username." : "Cakto emrin e administratorit.",
+ "Set an admin password." : "Cakto kodin e administratorit.",
+ "%s shared »%s« with you" : "%s ndau »%s« me ju",
+ "Could not find category \"%s\"" : "Kategoria \"%s\" nuk u gjet",
+ "seconds ago" : "sekonda më parë",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minuta më parë"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n orë më parë"],
+ "today" : "sot",
+ "yesterday" : "dje",
+ "_%n day go_::_%n days ago_" : ["","%n ditë më parë"],
+ "last month" : "muajin e shkuar",
+ "_%n month ago_::_%n months ago_" : ["","%n muaj më parë"],
+ "last year" : "vitin e shkuar",
+ "years ago" : "vite më parë",
+ "A valid username must be provided" : "Duhet të jepni një emër të vlefshëm përdoruesi",
+ "A valid password must be provided" : "Duhet të jepni një fjalëkalim te vlefshëm"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/sq.json b/lib/l10n/sq.json
new file mode 100644
index 00000000000..cd10a590bd1
--- /dev/null
+++ b/lib/l10n/sq.json
@@ -0,0 +1,41 @@
+{ "translations": {
+ "Help" : "Ndihmë",
+ "Personal" : "Personale",
+ "Settings" : "Parametra",
+ "Users" : "Përdoruesit",
+ "Admin" : "Admin",
+ "Recommended" : "E rekomanduar",
+ "Unknown filetype" : "Tip i panjohur skedari",
+ "Invalid image" : "Imazh i pavlefshëm",
+ "web services under your control" : "shërbime web nën kontrollin tënd",
+ "Application is not enabled" : "Programi nuk është i aktivizuar.",
+ "Authentication error" : "Veprim i gabuar gjatë vërtetimit të identitetit",
+ "Token expired. Please reload page." : "Përmbajtja ka skaduar. Ju lutemi ringarkoni faqen.",
+ "%s enter the database username." : "% shkruani përdoruesin e database-it.",
+ "%s enter the database name." : "%s shkruani emrin e database-it.",
+ "%s you may not use dots in the database name" : "%s nuk mund të përdorni pikat tek emri i database-it",
+ "MS SQL username and/or password not valid: %s" : "Përdoruesi dhe/apo kodi i MS SQL i pavlefshëm: %s",
+ "You need to enter either an existing account or the administrator." : "Duhet të përdorni një llogari ekzistuese ose llogarinë e administratorit.",
+ "DB Error: \"%s\"" : "Veprim i gabuar i DB-it: \"%s\"",
+ "Offending command was: \"%s\"" : "Komanda e gabuar ishte: \"%s\"",
+ "Oracle username and/or password not valid" : "Përdoruesi dhe/apo kodi i Oracle-it i pavlefshëm",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Komanda e gabuar ishte: \"%s\", përdoruesi: %s, kodi: %s",
+ "PostgreSQL username and/or password not valid" : "Përdoruesi dhe/apo kodi i PostgreSQL i pavlefshëm",
+ "Set an admin username." : "Cakto emrin e administratorit.",
+ "Set an admin password." : "Cakto kodin e administratorit.",
+ "%s shared »%s« with you" : "%s ndau »%s« me ju",
+ "Could not find category \"%s\"" : "Kategoria \"%s\" nuk u gjet",
+ "seconds ago" : "sekonda më parë",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n minuta më parë"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n orë më parë"],
+ "today" : "sot",
+ "yesterday" : "dje",
+ "_%n day go_::_%n days ago_" : ["","%n ditë më parë"],
+ "last month" : "muajin e shkuar",
+ "_%n month ago_::_%n months ago_" : ["","%n muaj më parë"],
+ "last year" : "vitin e shkuar",
+ "years ago" : "vite më parë",
+ "A valid username must be provided" : "Duhet të jepni një emër të vlefshëm përdoruesi",
+ "A valid password must be provided" : "Duhet të jepni një fjalëkalim te vlefshëm"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/sq.php b/lib/l10n/sq.php
deleted file mode 100644
index d68dbd2804b..00000000000
--- a/lib/l10n/sq.php
+++ /dev/null
@@ -1,39 +0,0 @@
- "Ndihmë",
-"Personal" => "Personale",
-"Settings" => "Parametra",
-"Users" => "Përdoruesit",
-"Admin" => "Admin",
-"web services under your control" => "shërbime web nën kontrollin tënd",
-"Application is not enabled" => "Programi nuk është i aktivizuar.",
-"Authentication error" => "Veprim i gabuar gjatë vërtetimit të identitetit",
-"Token expired. Please reload page." => "Përmbajtja ka skaduar. Ju lutemi ringarkoni faqen.",
-"%s enter the database username." => "% shkruani përdoruesin e database-it.",
-"%s enter the database name." => "%s shkruani emrin e database-it.",
-"%s you may not use dots in the database name" => "%s nuk mund të përdorni pikat tek emri i database-it",
-"MS SQL username and/or password not valid: %s" => "Përdoruesi dhe/apo kodi i MS SQL i pavlefshëm: %s",
-"You need to enter either an existing account or the administrator." => "Duhet të përdorni një llogari ekzistuese ose llogarinë e administratorit.",
-"DB Error: \"%s\"" => "Veprim i gabuar i DB-it: \"%s\"",
-"Offending command was: \"%s\"" => "Komanda e gabuar ishte: \"%s\"",
-"Oracle username and/or password not valid" => "Përdoruesi dhe/apo kodi i Oracle-it i pavlefshëm",
-"Offending command was: \"%s\", name: %s, password: %s" => "Komanda e gabuar ishte: \"%s\", përdoruesi: %s, kodi: %s",
-"PostgreSQL username and/or password not valid" => "Përdoruesi dhe/apo kodi i PostgreSQL i pavlefshëm",
-"Set an admin username." => "Cakto emrin e administratorit.",
-"Set an admin password." => "Cakto kodin e administratorit.",
-"%s shared »%s« with you" => "%s ndau »%s« me ju",
-"Could not find category \"%s\"" => "Kategoria \"%s\" nuk u gjet",
-"seconds ago" => "sekonda më parë",
-"_%n minute ago_::_%n minutes ago_" => array("","%n minuta më parë"),
-"_%n hour ago_::_%n hours ago_" => array("","%n orë më parë"),
-"today" => "sot",
-"yesterday" => "dje",
-"_%n day go_::_%n days ago_" => array("","%n ditë më parë"),
-"last month" => "muajin e shkuar",
-"_%n month ago_::_%n months ago_" => array("","%n muaj më parë"),
-"last year" => "vitin e shkuar",
-"years ago" => "vite më parë",
-"A valid username must be provided" => "Duhet të jepni një emër të vlefshëm përdoruesi",
-"A valid password must be provided" => "Duhet të jepni një fjalëkalim te vlefshëm"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js
new file mode 100644
index 00000000000..94cb2dfce47
--- /dev/null
+++ b/lib/l10n/sr.js
@@ -0,0 +1,27 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Помоћ",
+ "Personal" : "Лично",
+ "Settings" : "Поставке",
+ "Users" : "Корисници",
+ "Admin" : "Администратор",
+ "web services under your control" : "веб сервиси под контролом",
+ "Application is not enabled" : "Апликација није омогућена",
+ "Authentication error" : "Грешка при провери идентитета",
+ "Token expired. Please reload page." : "Жетон је истекао. Поново учитајте страницу.",
+ "Could not find category \"%s\"" : "Не могу да пронађем категорију „%s“.",
+ "seconds ago" : "пре неколико секунди",
+ "_%n minute ago_::_%n minutes ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","",""],
+ "today" : "данас",
+ "yesterday" : "јуче",
+ "_%n day go_::_%n days ago_" : ["","",""],
+ "last month" : "прошлог месеца",
+ "_%n month ago_::_%n months ago_" : ["","",""],
+ "last year" : "прошле године",
+ "years ago" : "година раније",
+ "A valid username must be provided" : "Морате унети исправно корисничко име",
+ "A valid password must be provided" : "Морате унети исправну лозинку"
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json
new file mode 100644
index 00000000000..6fd8fa308a6
--- /dev/null
+++ b/lib/l10n/sr.json
@@ -0,0 +1,25 @@
+{ "translations": {
+ "Help" : "Помоћ",
+ "Personal" : "Лично",
+ "Settings" : "Поставке",
+ "Users" : "Корисници",
+ "Admin" : "Администратор",
+ "web services under your control" : "веб сервиси под контролом",
+ "Application is not enabled" : "Апликација није омогућена",
+ "Authentication error" : "Грешка при провери идентитета",
+ "Token expired. Please reload page." : "Жетон је истекао. Поново учитајте страницу.",
+ "Could not find category \"%s\"" : "Не могу да пронађем категорију „%s“.",
+ "seconds ago" : "пре неколико секунди",
+ "_%n minute ago_::_%n minutes ago_" : ["","",""],
+ "_%n hour ago_::_%n hours ago_" : ["","",""],
+ "today" : "данас",
+ "yesterday" : "јуче",
+ "_%n day go_::_%n days ago_" : ["","",""],
+ "last month" : "прошлог месеца",
+ "_%n month ago_::_%n months ago_" : ["","",""],
+ "last year" : "прошле године",
+ "years ago" : "година раније",
+ "A valid username must be provided" : "Морате унети исправно корисничко име",
+ "A valid password must be provided" : "Морате унети исправну лозинку"
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+}
\ No newline at end of file
diff --git a/lib/l10n/sr.php b/lib/l10n/sr.php
deleted file mode 100644
index f072542c9fe..00000000000
--- a/lib/l10n/sr.php
+++ /dev/null
@@ -1,26 +0,0 @@
- "Помоћ",
-"Personal" => "Лично",
-"Settings" => "Поставке",
-"Users" => "Корисници",
-"Admin" => "Администратор",
-"web services under your control" => "веб сервиси под контролом",
-"Application is not enabled" => "Апликација није омогућена",
-"Authentication error" => "Грешка при провери идентитета",
-"Token expired. Please reload page." => "Жетон је истекао. Поново учитајте страницу.",
-"Could not find category \"%s\"" => "Не могу да пронађем категорију „%s“.",
-"seconds ago" => "пре неколико секунди",
-"_%n minute ago_::_%n minutes ago_" => array("","",""),
-"_%n hour ago_::_%n hours ago_" => array("","",""),
-"today" => "данас",
-"yesterday" => "јуче",
-"_%n day go_::_%n days ago_" => array("","",""),
-"last month" => "прошлог месеца",
-"_%n month ago_::_%n months ago_" => array("","",""),
-"last year" => "прошле године",
-"years ago" => "година раније",
-"A valid username must be provided" => "Морате унети исправно корисничко име",
-"A valid password must be provided" => "Морате унети исправну лозинку"
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/lib/l10n/sr@latin.js b/lib/l10n/sr@latin.js
new file mode 100644
index 00000000000..11a536224d1
--- /dev/null
+++ b/lib/l10n/sr@latin.js
@@ -0,0 +1,21 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Pomoć",
+ "Personal" : "Lično",
+ "Settings" : "Podešavanja",
+ "Users" : "Korisnici",
+ "Admin" : "Adninistracija",
+ "Authentication error" : "Greška pri autentifikaciji",
+ "seconds ago" : "Pre par sekundi",
+ "_%n minute ago_::_%n minutes ago_" : ["","","pre %n minuta"],
+ "_%n hour ago_::_%n hours ago_" : ["","","pre %n sati"],
+ "today" : "Danas",
+ "yesterday" : "juče",
+ "_%n day go_::_%n days ago_" : ["","","Prije %n dana."],
+ "last month" : "prošlog meseca",
+ "_%n month ago_::_%n months ago_" : ["","",""],
+ "last year" : "prošle godine",
+ "years ago" : "pre nekoliko godina"
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/lib/l10n/sr@latin.json b/lib/l10n/sr@latin.json
new file mode 100644
index 00000000000..ce429467aee
--- /dev/null
+++ b/lib/l10n/sr@latin.json
@@ -0,0 +1,19 @@
+{ "translations": {
+ "Help" : "Pomoć",
+ "Personal" : "Lično",
+ "Settings" : "Podešavanja",
+ "Users" : "Korisnici",
+ "Admin" : "Adninistracija",
+ "Authentication error" : "Greška pri autentifikaciji",
+ "seconds ago" : "Pre par sekundi",
+ "_%n minute ago_::_%n minutes ago_" : ["","","pre %n minuta"],
+ "_%n hour ago_::_%n hours ago_" : ["","","pre %n sati"],
+ "today" : "Danas",
+ "yesterday" : "juče",
+ "_%n day go_::_%n days ago_" : ["","","Prije %n dana."],
+ "last month" : "prošlog meseca",
+ "_%n month ago_::_%n months ago_" : ["","",""],
+ "last year" : "prošle godine",
+ "years ago" : "pre nekoliko godina"
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+}
\ No newline at end of file
diff --git a/lib/l10n/sr@latin.php b/lib/l10n/sr@latin.php
deleted file mode 100644
index f142f176451..00000000000
--- a/lib/l10n/sr@latin.php
+++ /dev/null
@@ -1,20 +0,0 @@
- "Pomoć",
-"Personal" => "Lično",
-"Settings" => "Podešavanja",
-"Users" => "Korisnici",
-"Admin" => "Adninistracija",
-"Authentication error" => "Greška pri autentifikaciji",
-"seconds ago" => "Pre par sekundi",
-"_%n minute ago_::_%n minutes ago_" => array("","","pre %n minuta"),
-"_%n hour ago_::_%n hours ago_" => array("","","pre %n sati"),
-"today" => "Danas",
-"yesterday" => "juče",
-"_%n day go_::_%n days ago_" => array("","","Prije %n dana."),
-"last month" => "prošlog meseca",
-"_%n month ago_::_%n months ago_" => array("","",""),
-"last year" => "prošle godine",
-"years ago" => "pre nekoliko godina"
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/lib/l10n/su.js b/lib/l10n/su.js
new file mode 100644
index 00000000000..0f4a002019e
--- /dev/null
+++ b/lib/l10n/su.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""]
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/su.json b/lib/l10n/su.json
new file mode 100644
index 00000000000..4a03cf5047e
--- /dev/null
+++ b/lib/l10n/su.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""]
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/su.php b/lib/l10n/su.php
deleted file mode 100644
index e7b09649a24..00000000000
--- a/lib/l10n/su.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array(""),
-"_%n hour ago_::_%n hours ago_" => array(""),
-"_%n day go_::_%n days ago_" => array(""),
-"_%n month ago_::_%n months ago_" => array("")
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js
new file mode 100644
index 00000000000..9bfaa59074c
--- /dev/null
+++ b/lib/l10n/sv.js
@@ -0,0 +1,111 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Kan inte skriva till \"config\" katalogen!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Detta kan vanligtvis åtgärdas genom att ge skrivrättigheter till config katalgogen",
+ "See %s" : "Se %s",
+ "Help" : "Hjälp",
+ "Personal" : "Personligt",
+ "Settings" : "Inställningar",
+ "Users" : "Användare",
+ "Admin" : "Admin",
+ "Recommended" : "Rekomenderad",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Applikationen \\\"%s\\\" kan inte installeras då en inte är kompatibel med denna version utav ownCloud.",
+ "No app name specified" : "Inget appnamn angivet",
+ "Unknown filetype" : "Okänd filtyp",
+ "Invalid image" : "Ogiltig bild",
+ "web services under your control" : "webbtjänster under din kontroll",
+ "App directory already exists" : "Appens mapp finns redan",
+ "Can't create app folder. Please fix permissions. %s" : "Kan inte skapa appens mapp. Var god åtgärda rättigheterna. %s",
+ "No source specified when installing app" : "Ingen källa angiven vid installation av app ",
+ "No href specified when installing app from http" : "Ingen href angiven vid installation av app från http",
+ "No path specified when installing app from local file" : "Ingen sökväg angiven vid installation av app från lokal fil",
+ "Archives of type %s are not supported" : "Arkiv av typen %s stöds ej",
+ "Failed to open archive when installing app" : "Kunde inte öppna arkivet när appen skulle installeras",
+ "App does not provide an info.xml file" : "Appen har ingen info.xml fil",
+ "App can't be installed because of not allowed code in the App" : "Appen kan inte installeras eftersom att den innehåller otillåten kod",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Appen kan inte installeras eftersom att den inte är kompatibel med denna version av ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Appen kan inte installeras eftersom att den innehåller etiketten true vilket inte är tillåtet för icke inkluderade appar",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Appen kan inte installeras eftersom versionen i info.xml inte är samma som rapporteras från app store",
+ "Application is not enabled" : "Applikationen är inte aktiverad",
+ "Authentication error" : "Fel vid autentisering",
+ "Token expired. Please reload page." : "Ogiltig token. Ladda om sidan.",
+ "Unknown user" : "Okänd användare",
+ "%s enter the database username." : "%s ange databasanvändare.",
+ "%s enter the database name." : "%s ange databasnamn",
+ "%s you may not use dots in the database name" : "%s du får inte använda punkter i databasnamnet",
+ "MS SQL username and/or password not valid: %s" : "MS SQL-användaren och/eller lösenordet var inte giltigt: %s",
+ "You need to enter either an existing account or the administrator." : "Du måste antingen ange ett befintligt konto eller administratör.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB användarnamn och/eller lösenord är felaktigt",
+ "DB Error: \"%s\"" : "DB error: \"%s\"",
+ "Offending command was: \"%s\"" : "Det felaktiga kommandot var: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB användare '%s'@'localhost' existerar redan.",
+ "Drop this user from MySQL/MariaDB" : "Radera denna användare från MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB användare '%s'@'%%' existerar redan",
+ "Drop this user from MySQL/MariaDB." : "Radera denna användare från MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Oracle-anslutning kunde inte etableras",
+ "Oracle username and/or password not valid" : "Oracle-användarnamnet och/eller lösenordet är felaktigt",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Det felande kommandot var: \"%s\", name: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL-användarnamnet och/eller lösenordet är felaktigt",
+ "Set an admin username." : "Ange ett användarnamn för administratören.",
+ "Set an admin password." : "Ange ett administratörslösenord.",
+ "%s shared »%s« with you" : "%s delade »%s« med dig",
+ "Sharing %s failed, because the file does not exist" : "Delning av %s misslyckades på grund av att filen inte existerar",
+ "You are not allowed to share %s" : "Du har inte rätt att dela %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Delning %s misslyckades därför att användaren %s är den som äger objektet",
+ "Sharing %s failed, because the user %s does not exist" : "Delning %s misslyckades därför att användaren %s inte existerar",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Delning %s misslyckades därför att användaren %s inte är medlem i någon utav de grupper som %s är medlem i",
+ "Sharing %s failed, because this item is already shared with %s" : "Delning %s misslyckades därför att objektet redan är delat med %s",
+ "Sharing %s failed, because the group %s does not exist" : "Delning %s misslyckades därför att gruppen %s inte existerar",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Delning %s misslyckades därför att %s inte ingår i gruppen %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Du måste ange ett lösenord för att skapa en offentlig länk, endast skyddade länkar är tillåtna",
+ "Sharing %s failed, because sharing with links is not allowed" : "Delning %s misslyckades därför att delning utav länkar inte är tillåtet",
+ "Share type %s is not valid for %s" : "Delningstyp %s är inte giltig för %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Misslyckades att sätta rättigheter för %s därför att rättigheterna överskrider de som är tillåtna för %s",
+ "Setting permissions for %s failed, because the item was not found" : "Att sätta rättigheterna för %s misslyckades därför att objektet inte hittades",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Delningsgränssnittet %s måste implementera gränssnittet OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Delningsgränssnittet %s hittades inte",
+ "Sharing backend for %s not found" : "Delningsgränssnittet för %s hittades inte",
+ "Sharing %s failed, because the user %s is the original sharer" : "Delning %s misslyckades därför att användaren %s är den som delade objektet först",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Delning %s misslyckades därför att rättigheterna överskrider de rättigheter som är tillåtna för %s",
+ "Sharing %s failed, because resharing is not allowed" : "Delning %s misslyckades därför att vidaredelning inte är tillåten",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Delning %s misslyckades därför att delningsgränsnittet för %s inte kunde hitta sin källa",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Delning %s misslyckades därför att filen inte kunde hittas i filcachen",
+ "Could not find category \"%s\"" : "Kunde inte hitta kategorin \"%s\"",
+ "seconds ago" : "sekunder sedan",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minut sedan","%n minuter sedan"],
+ "_%n hour ago_::_%n hours ago_" : ["%n timme sedan","%n timmar sedan"],
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day go_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"],
+ "last month" : "förra månaden",
+ "_%n month ago_::_%n months ago_" : ["%n månad sedan","%n månader sedan"],
+ "last year" : "förra året",
+ "years ago" : "år sedan",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Endast följande tecken är tillåtna i ett användarnamn: \"az\", \"AZ\", \"0-9\", och \"_ @ -.\"",
+ "A valid username must be provided" : "Ett giltigt användarnamn måste anges",
+ "A valid password must be provided" : "Ett giltigt lösenord måste anges",
+ "The username is already being used" : "Användarnamnet används redan",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Inga databasdrivrutiner (sqlite, mysql, eller postgresql) installerade.",
+ "Cannot write into \"config\" directory" : "Kan inte skriva till \"config\" katalogen",
+ "Cannot write into \"apps\" directory" : "Kan inte skriva till \"apps\" katalogen!",
+ "Cannot create \"data\" directory (%s)" : "Kan inte skapa \"data\" katalog (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Detta kan vanligtvis åtgärdas genom att ge webservern skrivrättigheter till rootkatalogen .",
+ "Please ask your server administrator to install the module." : "Vänligen be din administratör att installera modulen.",
+ "PHP module %s not installed." : "PHP modulen %s är inte installerad.",
+ "PHP %s or higher is required." : "PHP %s eller högre krävs.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vänligen be serveradministratören uppdatera PHP till den senaste versionen. Din PHP-version stöds inte längre av ownCloud.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode är aktiverat. ownCloud kräver att det är deaktiverat för att fungera korrekt.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes är aktiverat. ownCloud kräver att det är deaktiverat för att fungera korrekt.",
+ "Please ask your server administrator to restart the web server." : "Vänligen be din serveradministratör att starta om webservern.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 krävs",
+ "Please upgrade your database version" : "Vänligen uppgradera din databas-version",
+ "Error occurred while checking PostgreSQL version" : "Ett fel inträffade vid kontroll utav PostgreSQL-version",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Vänligen säkerställ att du har PostgreSQL >= 9 eller kolla loggarna för mer information om felet",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Vänligen ändra rättigheterna till 0770 så att katalogen inte kan listas utav andra användare.",
+ "Data directory (%s) is readable by other users" : "Datakatalogen (%s) kan läsas av andra användare",
+ "Data directory (%s) is invalid" : "Datakatlogen (%s) är ogiltig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Vänligen kontrollera att datakatalogen innehåller filen \".ocdata\" i rooten.",
+ "Could not obtain lock type %d on \"%s\"." : "Kan inte hämta låstyp %d på \"%s\"."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json
new file mode 100644
index 00000000000..299911142a3
--- /dev/null
+++ b/lib/l10n/sv.json
@@ -0,0 +1,109 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Kan inte skriva till \"config\" katalogen!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Detta kan vanligtvis åtgärdas genom att ge skrivrättigheter till config katalgogen",
+ "See %s" : "Se %s",
+ "Help" : "Hjälp",
+ "Personal" : "Personligt",
+ "Settings" : "Inställningar",
+ "Users" : "Användare",
+ "Admin" : "Admin",
+ "Recommended" : "Rekomenderad",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Applikationen \\\"%s\\\" kan inte installeras då en inte är kompatibel med denna version utav ownCloud.",
+ "No app name specified" : "Inget appnamn angivet",
+ "Unknown filetype" : "Okänd filtyp",
+ "Invalid image" : "Ogiltig bild",
+ "web services under your control" : "webbtjänster under din kontroll",
+ "App directory already exists" : "Appens mapp finns redan",
+ "Can't create app folder. Please fix permissions. %s" : "Kan inte skapa appens mapp. Var god åtgärda rättigheterna. %s",
+ "No source specified when installing app" : "Ingen källa angiven vid installation av app ",
+ "No href specified when installing app from http" : "Ingen href angiven vid installation av app från http",
+ "No path specified when installing app from local file" : "Ingen sökväg angiven vid installation av app från lokal fil",
+ "Archives of type %s are not supported" : "Arkiv av typen %s stöds ej",
+ "Failed to open archive when installing app" : "Kunde inte öppna arkivet när appen skulle installeras",
+ "App does not provide an info.xml file" : "Appen har ingen info.xml fil",
+ "App can't be installed because of not allowed code in the App" : "Appen kan inte installeras eftersom att den innehåller otillåten kod",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Appen kan inte installeras eftersom att den inte är kompatibel med denna version av ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Appen kan inte installeras eftersom att den innehåller etiketten true vilket inte är tillåtet för icke inkluderade appar",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Appen kan inte installeras eftersom versionen i info.xml inte är samma som rapporteras från app store",
+ "Application is not enabled" : "Applikationen är inte aktiverad",
+ "Authentication error" : "Fel vid autentisering",
+ "Token expired. Please reload page." : "Ogiltig token. Ladda om sidan.",
+ "Unknown user" : "Okänd användare",
+ "%s enter the database username." : "%s ange databasanvändare.",
+ "%s enter the database name." : "%s ange databasnamn",
+ "%s you may not use dots in the database name" : "%s du får inte använda punkter i databasnamnet",
+ "MS SQL username and/or password not valid: %s" : "MS SQL-användaren och/eller lösenordet var inte giltigt: %s",
+ "You need to enter either an existing account or the administrator." : "Du måste antingen ange ett befintligt konto eller administratör.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB användarnamn och/eller lösenord är felaktigt",
+ "DB Error: \"%s\"" : "DB error: \"%s\"",
+ "Offending command was: \"%s\"" : "Det felaktiga kommandot var: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB användare '%s'@'localhost' existerar redan.",
+ "Drop this user from MySQL/MariaDB" : "Radera denna användare från MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB användare '%s'@'%%' existerar redan",
+ "Drop this user from MySQL/MariaDB." : "Radera denna användare från MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Oracle-anslutning kunde inte etableras",
+ "Oracle username and/or password not valid" : "Oracle-användarnamnet och/eller lösenordet är felaktigt",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Det felande kommandot var: \"%s\", name: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL-användarnamnet och/eller lösenordet är felaktigt",
+ "Set an admin username." : "Ange ett användarnamn för administratören.",
+ "Set an admin password." : "Ange ett administratörslösenord.",
+ "%s shared »%s« with you" : "%s delade »%s« med dig",
+ "Sharing %s failed, because the file does not exist" : "Delning av %s misslyckades på grund av att filen inte existerar",
+ "You are not allowed to share %s" : "Du har inte rätt att dela %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Delning %s misslyckades därför att användaren %s är den som äger objektet",
+ "Sharing %s failed, because the user %s does not exist" : "Delning %s misslyckades därför att användaren %s inte existerar",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Delning %s misslyckades därför att användaren %s inte är medlem i någon utav de grupper som %s är medlem i",
+ "Sharing %s failed, because this item is already shared with %s" : "Delning %s misslyckades därför att objektet redan är delat med %s",
+ "Sharing %s failed, because the group %s does not exist" : "Delning %s misslyckades därför att gruppen %s inte existerar",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Delning %s misslyckades därför att %s inte ingår i gruppen %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Du måste ange ett lösenord för att skapa en offentlig länk, endast skyddade länkar är tillåtna",
+ "Sharing %s failed, because sharing with links is not allowed" : "Delning %s misslyckades därför att delning utav länkar inte är tillåtet",
+ "Share type %s is not valid for %s" : "Delningstyp %s är inte giltig för %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Misslyckades att sätta rättigheter för %s därför att rättigheterna överskrider de som är tillåtna för %s",
+ "Setting permissions for %s failed, because the item was not found" : "Att sätta rättigheterna för %s misslyckades därför att objektet inte hittades",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Delningsgränssnittet %s måste implementera gränssnittet OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Delningsgränssnittet %s hittades inte",
+ "Sharing backend for %s not found" : "Delningsgränssnittet för %s hittades inte",
+ "Sharing %s failed, because the user %s is the original sharer" : "Delning %s misslyckades därför att användaren %s är den som delade objektet först",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Delning %s misslyckades därför att rättigheterna överskrider de rättigheter som är tillåtna för %s",
+ "Sharing %s failed, because resharing is not allowed" : "Delning %s misslyckades därför att vidaredelning inte är tillåten",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Delning %s misslyckades därför att delningsgränsnittet för %s inte kunde hitta sin källa",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Delning %s misslyckades därför att filen inte kunde hittas i filcachen",
+ "Could not find category \"%s\"" : "Kunde inte hitta kategorin \"%s\"",
+ "seconds ago" : "sekunder sedan",
+ "_%n minute ago_::_%n minutes ago_" : ["%n minut sedan","%n minuter sedan"],
+ "_%n hour ago_::_%n hours ago_" : ["%n timme sedan","%n timmar sedan"],
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day go_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"],
+ "last month" : "förra månaden",
+ "_%n month ago_::_%n months ago_" : ["%n månad sedan","%n månader sedan"],
+ "last year" : "förra året",
+ "years ago" : "år sedan",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Endast följande tecken är tillåtna i ett användarnamn: \"az\", \"AZ\", \"0-9\", och \"_ @ -.\"",
+ "A valid username must be provided" : "Ett giltigt användarnamn måste anges",
+ "A valid password must be provided" : "Ett giltigt lösenord måste anges",
+ "The username is already being used" : "Användarnamnet används redan",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Inga databasdrivrutiner (sqlite, mysql, eller postgresql) installerade.",
+ "Cannot write into \"config\" directory" : "Kan inte skriva till \"config\" katalogen",
+ "Cannot write into \"apps\" directory" : "Kan inte skriva till \"apps\" katalogen!",
+ "Cannot create \"data\" directory (%s)" : "Kan inte skapa \"data\" katalog (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "Detta kan vanligtvis åtgärdas genom att ge webservern skrivrättigheter till rootkatalogen .",
+ "Please ask your server administrator to install the module." : "Vänligen be din administratör att installera modulen.",
+ "PHP module %s not installed." : "PHP modulen %s är inte installerad.",
+ "PHP %s or higher is required." : "PHP %s eller högre krävs.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vänligen be serveradministratören uppdatera PHP till den senaste versionen. Din PHP-version stöds inte längre av ownCloud.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode är aktiverat. ownCloud kräver att det är deaktiverat för att fungera korrekt.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes är aktiverat. ownCloud kräver att det är deaktiverat för att fungera korrekt.",
+ "Please ask your server administrator to restart the web server." : "Vänligen be din serveradministratör att starta om webservern.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 krävs",
+ "Please upgrade your database version" : "Vänligen uppgradera din databas-version",
+ "Error occurred while checking PostgreSQL version" : "Ett fel inträffade vid kontroll utav PostgreSQL-version",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Vänligen säkerställ att du har PostgreSQL >= 9 eller kolla loggarna för mer information om felet",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Vänligen ändra rättigheterna till 0770 så att katalogen inte kan listas utav andra användare.",
+ "Data directory (%s) is readable by other users" : "Datakatalogen (%s) kan läsas av andra användare",
+ "Data directory (%s) is invalid" : "Datakatlogen (%s) är ogiltig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Vänligen kontrollera att datakatalogen innehåller filen \".ocdata\" i rooten.",
+ "Could not obtain lock type %d on \"%s\"." : "Kan inte hämta låstyp %d på \"%s\"."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/sv.php b/lib/l10n/sv.php
deleted file mode 100644
index 6558e3bb02e..00000000000
--- a/lib/l10n/sv.php
+++ /dev/null
@@ -1,109 +0,0 @@
- "Kan inte skriva till \"config\" katalogen!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Detta kan vanligtvis åtgärdas genom att ge skrivrättigheter till config katalgogen",
-"See %s" => "Se %s",
-"Help" => "Hjälp",
-"Personal" => "Personligt",
-"Settings" => "Inställningar",
-"Users" => "Användare",
-"Admin" => "Admin",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "Applikationen \\\"%s\\\" kan inte installeras då en inte är kompatibel med denna version utav ownCloud.",
-"No app name specified" => "Inget appnamn angivet",
-"Unknown filetype" => "Okänd filtyp",
-"Invalid image" => "Ogiltig bild",
-"web services under your control" => "webbtjänster under din kontroll",
-"App directory already exists" => "Appens mapp finns redan",
-"Can't create app folder. Please fix permissions. %s" => "Kan inte skapa appens mapp. Var god åtgärda rättigheterna. %s",
-"No source specified when installing app" => "Ingen källa angiven vid installation av app ",
-"No href specified when installing app from http" => "Ingen href angiven vid installation av app från http",
-"No path specified when installing app from local file" => "Ingen sökväg angiven vid installation av app från lokal fil",
-"Archives of type %s are not supported" => "Arkiv av typen %s stöds ej",
-"Failed to open archive when installing app" => "Kunde inte öppna arkivet när appen skulle installeras",
-"App does not provide an info.xml file" => "Appen har ingen info.xml fil",
-"App can't be installed because of not allowed code in the App" => "Appen kan inte installeras eftersom att den innehåller otillåten kod",
-"App can't be installed because it is not compatible with this version of ownCloud" => "Appen kan inte installeras eftersom att den inte är kompatibel med denna version av ownCloud",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Appen kan inte installeras eftersom att den innehåller etiketten true vilket inte är tillåtet för icke inkluderade appar",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Appen kan inte installeras eftersom versionen i info.xml inte är samma som rapporteras från app store",
-"Application is not enabled" => "Applikationen är inte aktiverad",
-"Authentication error" => "Fel vid autentisering",
-"Token expired. Please reload page." => "Ogiltig token. Ladda om sidan.",
-"Unknown user" => "Okänd användare",
-"%s enter the database username." => "%s ange databasanvändare.",
-"%s enter the database name." => "%s ange databasnamn",
-"%s you may not use dots in the database name" => "%s du får inte använda punkter i databasnamnet",
-"MS SQL username and/or password not valid: %s" => "MS SQL-användaren och/eller lösenordet var inte giltigt: %s",
-"You need to enter either an existing account or the administrator." => "Du måste antingen ange ett befintligt konto eller administratör.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB användarnamn och/eller lösenord är felaktigt",
-"DB Error: \"%s\"" => "DB error: \"%s\"",
-"Offending command was: \"%s\"" => "Det felaktiga kommandot var: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB användare '%s'@'localhost' existerar redan.",
-"Drop this user from MySQL/MariaDB" => "Radera denna användare från MySQL/MariaDB",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB användare '%s'@'%%' existerar redan",
-"Drop this user from MySQL/MariaDB." => "Radera denna användare från MySQL/MariaDB.",
-"Oracle connection could not be established" => "Oracle-anslutning kunde inte etableras",
-"Oracle username and/or password not valid" => "Oracle-användarnamnet och/eller lösenordet är felaktigt",
-"Offending command was: \"%s\", name: %s, password: %s" => "Det felande kommandot var: \"%s\", name: %s, password: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL-användarnamnet och/eller lösenordet är felaktigt",
-"Set an admin username." => "Ange ett användarnamn för administratören.",
-"Set an admin password." => "Ange ett administratörslösenord.",
-"%s shared »%s« with you" => "%s delade »%s« med dig",
-"Sharing %s failed, because the file does not exist" => "Delning av %s misslyckades på grund av att filen inte existerar",
-"You are not allowed to share %s" => "Du har inte rätt att dela %s",
-"Sharing %s failed, because the user %s is the item owner" => "Delning %s misslyckades därför att användaren %s är den som äger objektet",
-"Sharing %s failed, because the user %s does not exist" => "Delning %s misslyckades därför att användaren %s inte existerar",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "Delning %s misslyckades därför att användaren %s inte är medlem i någon utav de grupper som %s är medlem i",
-"Sharing %s failed, because this item is already shared with %s" => "Delning %s misslyckades därför att objektet redan är delat med %s",
-"Sharing %s failed, because the group %s does not exist" => "Delning %s misslyckades därför att gruppen %s inte existerar",
-"Sharing %s failed, because %s is not a member of the group %s" => "Delning %s misslyckades därför att %s inte ingår i gruppen %s",
-"You need to provide a password to create a public link, only protected links are allowed" => "Du måste ange ett lösenord för att skapa en offentlig länk, endast skyddade länkar är tillåtna",
-"Sharing %s failed, because sharing with links is not allowed" => "Delning %s misslyckades därför att delning utav länkar inte är tillåtet",
-"Share type %s is not valid for %s" => "Delningstyp %s är inte giltig för %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Misslyckades att sätta rättigheter för %s därför att rättigheterna överskrider de som är tillåtna för %s",
-"Setting permissions for %s failed, because the item was not found" => "Att sätta rättigheterna för %s misslyckades därför att objektet inte hittades",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Delningsgränssnittet %s måste implementera gränssnittet OCP\\Share_Backend",
-"Sharing backend %s not found" => "Delningsgränssnittet %s hittades inte",
-"Sharing backend for %s not found" => "Delningsgränssnittet för %s hittades inte",
-"Sharing %s failed, because the user %s is the original sharer" => "Delning %s misslyckades därför att användaren %s är den som delade objektet först",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Delning %s misslyckades därför att rättigheterna överskrider de rättigheter som är tillåtna för %s",
-"Sharing %s failed, because resharing is not allowed" => "Delning %s misslyckades därför att vidaredelning inte är tillåten",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "Delning %s misslyckades därför att delningsgränsnittet för %s inte kunde hitta sin källa",
-"Sharing %s failed, because the file could not be found in the file cache" => "Delning %s misslyckades därför att filen inte kunde hittas i filcachen",
-"Could not find category \"%s\"" => "Kunde inte hitta kategorin \"%s\"",
-"seconds ago" => "sekunder sedan",
-"_%n minute ago_::_%n minutes ago_" => array("%n minut sedan","%n minuter sedan"),
-"_%n hour ago_::_%n hours ago_" => array("%n timme sedan","%n timmar sedan"),
-"today" => "i dag",
-"yesterday" => "i går",
-"_%n day go_::_%n days ago_" => array("%n dag sedan","%n dagar sedan"),
-"last month" => "förra månaden",
-"_%n month ago_::_%n months ago_" => array("%n månad sedan","%n månader sedan"),
-"last year" => "förra året",
-"years ago" => "år sedan",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Endast följande tecken är tillåtna i ett användarnamn: \"az\", \"AZ\", \"0-9\", och \"_ @ -.\"",
-"A valid username must be provided" => "Ett giltigt användarnamn måste anges",
-"A valid password must be provided" => "Ett giltigt lösenord måste anges",
-"The username is already being used" => "Användarnamnet används redan",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Inga databasdrivrutiner (sqlite, mysql, eller postgresql) installerade.",
-"Cannot write into \"config\" directory" => "Kan inte skriva till \"config\" katalogen",
-"Cannot write into \"apps\" directory" => "Kan inte skriva till \"apps\" katalogen!",
-"Cannot create \"data\" directory (%s)" => "Kan inte skapa \"data\" katalog (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "Detta kan vanligtvis åtgärdas genom att ge webservern skrivrättigheter till rootkatalogen .",
-"Please ask your server administrator to install the module." => "Vänligen be din administratör att installera modulen.",
-"PHP module %s not installed." => "PHP modulen %s är inte installerad.",
-"PHP %s or higher is required." => "PHP %s eller högre krävs.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Vänligen be serveradministratören uppdatera PHP till den senaste versionen. Din PHP-version stöds inte längre av ownCloud.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode är aktiverat. ownCloud kräver att det är deaktiverat för att fungera korrekt.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes är aktiverat. ownCloud kräver att det är deaktiverat för att fungera korrekt.",
-"Please ask your server administrator to restart the web server." => "Vänligen be din serveradministratör att starta om webservern.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 krävs",
-"Please upgrade your database version" => "Vänligen uppgradera din databas-version",
-"Error occurred while checking PostgreSQL version" => "Ett fel inträffade vid kontroll utav PostgreSQL-version",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "Vänligen säkerställ att du har PostgreSQL >= 9 eller kolla loggarna för mer information om felet",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Vänligen ändra rättigheterna till 0770 så att katalogen inte kan listas utav andra användare.",
-"Data directory (%s) is readable by other users" => "Datakatalogen (%s) kan läsas av andra användare",
-"Data directory (%s) is invalid" => "Datakatlogen (%s) är ogiltig",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Vänligen kontrollera att datakatalogen innehåller filen \".ocdata\" i rooten.",
-"Could not obtain lock type %d on \"%s\"." => "Kan inte hämta låstyp %d på \"%s\"."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/sw_KE.js b/lib/l10n/sw_KE.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/sw_KE.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/sw_KE.json b/lib/l10n/sw_KE.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/sw_KE.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/sw_KE.php b/lib/l10n/sw_KE.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/sw_KE.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ta_IN.js b/lib/l10n/ta_IN.js
new file mode 100644
index 00000000000..e026954a573
--- /dev/null
+++ b/lib/l10n/ta_IN.js
@@ -0,0 +1,10 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Settings" : "அமைப்புகள்",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ta_IN.json b/lib/l10n/ta_IN.json
new file mode 100644
index 00000000000..3f9f5882968
--- /dev/null
+++ b/lib/l10n/ta_IN.json
@@ -0,0 +1,8 @@
+{ "translations": {
+ "Settings" : "அமைப்புகள்",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ta_IN.php b/lib/l10n/ta_IN.php
deleted file mode 100644
index 5907e09695d..00000000000
--- a/lib/l10n/ta_IN.php
+++ /dev/null
@@ -1,9 +0,0 @@
- "அமைப்புகள்",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ta_LK.js b/lib/l10n/ta_LK.js
new file mode 100644
index 00000000000..5f2d310c40b
--- /dev/null
+++ b/lib/l10n/ta_LK.js
@@ -0,0 +1,25 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "உதவி",
+ "Personal" : "தனிப்பட்ட",
+ "Settings" : "அமைப்புகள்",
+ "Users" : "பயனாளர்",
+ "Admin" : "நிர்வாகம்",
+ "web services under your control" : "வலைய சேவைகள் உங்களுடைய கட்டுப்பாட்டின் கீழ் உள்ளது",
+ "Application is not enabled" : "செயலி இயலுமைப்படுத்தப்படவில்லை",
+ "Authentication error" : "அத்தாட்சிப்படுத்தலில் வழு",
+ "Token expired. Please reload page." : "அடையாளவில்லை காலாவதியாகிவிட்டது. தயவுசெய்து பக்கத்தை மீள் ஏற்றுக.",
+ "Could not find category \"%s\"" : "பிரிவு \"%s\" ஐ கண்டுப்பிடிக்க முடியவில்லை",
+ "seconds ago" : "செக்கன்களுக்கு முன்",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "இன்று",
+ "yesterday" : "நேற்று",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "கடந்த மாதம்",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "கடந்த வருடம்",
+ "years ago" : "வருடங்களுக்கு முன்"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ta_LK.json b/lib/l10n/ta_LK.json
new file mode 100644
index 00000000000..e5191020433
--- /dev/null
+++ b/lib/l10n/ta_LK.json
@@ -0,0 +1,23 @@
+{ "translations": {
+ "Help" : "உதவி",
+ "Personal" : "தனிப்பட்ட",
+ "Settings" : "அமைப்புகள்",
+ "Users" : "பயனாளர்",
+ "Admin" : "நிர்வாகம்",
+ "web services under your control" : "வலைய சேவைகள் உங்களுடைய கட்டுப்பாட்டின் கீழ் உள்ளது",
+ "Application is not enabled" : "செயலி இயலுமைப்படுத்தப்படவில்லை",
+ "Authentication error" : "அத்தாட்சிப்படுத்தலில் வழு",
+ "Token expired. Please reload page." : "அடையாளவில்லை காலாவதியாகிவிட்டது. தயவுசெய்து பக்கத்தை மீள் ஏற்றுக.",
+ "Could not find category \"%s\"" : "பிரிவு \"%s\" ஐ கண்டுப்பிடிக்க முடியவில்லை",
+ "seconds ago" : "செக்கன்களுக்கு முன்",
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "இன்று",
+ "yesterday" : "நேற்று",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "கடந்த மாதம்",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "கடந்த வருடம்",
+ "years ago" : "வருடங்களுக்கு முன்"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ta_LK.php b/lib/l10n/ta_LK.php
deleted file mode 100644
index 3bcdb7d30d4..00000000000
--- a/lib/l10n/ta_LK.php
+++ /dev/null
@@ -1,24 +0,0 @@
- "உதவி",
-"Personal" => "தனிப்பட்ட",
-"Settings" => "அமைப்புகள்",
-"Users" => "பயனாளர்",
-"Admin" => "நிர்வாகம்",
-"web services under your control" => "வலைய சேவைகள் உங்களுடைய கட்டுப்பாட்டின் கீழ் உள்ளது",
-"Application is not enabled" => "செயலி இயலுமைப்படுத்தப்படவில்லை",
-"Authentication error" => "அத்தாட்சிப்படுத்தலில் வழு",
-"Token expired. Please reload page." => "அடையாளவில்லை காலாவதியாகிவிட்டது. தயவுசெய்து பக்கத்தை மீள் ஏற்றுக.",
-"Could not find category \"%s\"" => "பிரிவு \"%s\" ஐ கண்டுப்பிடிக்க முடியவில்லை",
-"seconds ago" => "செக்கன்களுக்கு முன்",
-"_%n minute ago_::_%n minutes ago_" => array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"today" => "இன்று",
-"yesterday" => "நேற்று",
-"_%n day go_::_%n days ago_" => array("",""),
-"last month" => "கடந்த மாதம்",
-"_%n month ago_::_%n months ago_" => array("",""),
-"last year" => "கடந்த வருடம்",
-"years ago" => "வருடங்களுக்கு முன்"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/te.js b/lib/l10n/te.js
new file mode 100644
index 00000000000..e1a3602f617
--- /dev/null
+++ b/lib/l10n/te.js
@@ -0,0 +1,19 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "సహాయం",
+ "Personal" : "వ్యక్తిగతం",
+ "Settings" : "అమరికలు",
+ "Users" : "వాడుకరులు",
+ "seconds ago" : "క్షణాల క్రితం",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n నిమిషాల క్రితం"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n గంటల క్రితం"],
+ "today" : "ఈరోజు",
+ "yesterday" : "నిన్న",
+ "_%n day go_::_%n days ago_" : ["","%n రోజుల క్రితం"],
+ "last month" : "పోయిన నెల",
+ "_%n month ago_::_%n months ago_" : ["","%n నెలల క్రితం"],
+ "last year" : "పోయిన సంవత్సరం",
+ "years ago" : "సంవత్సరాల క్రితం"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/te.json b/lib/l10n/te.json
new file mode 100644
index 00000000000..1e9669c12b3
--- /dev/null
+++ b/lib/l10n/te.json
@@ -0,0 +1,17 @@
+{ "translations": {
+ "Help" : "సహాయం",
+ "Personal" : "వ్యక్తిగతం",
+ "Settings" : "అమరికలు",
+ "Users" : "వాడుకరులు",
+ "seconds ago" : "క్షణాల క్రితం",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n నిమిషాల క్రితం"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n గంటల క్రితం"],
+ "today" : "ఈరోజు",
+ "yesterday" : "నిన్న",
+ "_%n day go_::_%n days ago_" : ["","%n రోజుల క్రితం"],
+ "last month" : "పోయిన నెల",
+ "_%n month ago_::_%n months ago_" : ["","%n నెలల క్రితం"],
+ "last year" : "పోయిన సంవత్సరం",
+ "years ago" : "సంవత్సరాల క్రితం"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/te.php b/lib/l10n/te.php
deleted file mode 100644
index 12ae9240191..00000000000
--- a/lib/l10n/te.php
+++ /dev/null
@@ -1,18 +0,0 @@
- "సహాయం",
-"Personal" => "వ్యక్తిగతం",
-"Settings" => "అమరికలు",
-"Users" => "వాడుకరులు",
-"seconds ago" => "క్షణాల క్రితం",
-"_%n minute ago_::_%n minutes ago_" => array("","%n నిమిషాల క్రితం"),
-"_%n hour ago_::_%n hours ago_" => array("","%n గంటల క్రితం"),
-"today" => "ఈరోజు",
-"yesterday" => "నిన్న",
-"_%n day go_::_%n days ago_" => array("","%n రోజుల క్రితం"),
-"last month" => "పోయిన నెల",
-"_%n month ago_::_%n months ago_" => array("","%n నెలల క్రితం"),
-"last year" => "పోయిన సంవత్సరం",
-"years ago" => "సంవత్సరాల క్రితం"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/tg_TJ.js b/lib/l10n/tg_TJ.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/tg_TJ.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/tg_TJ.json b/lib/l10n/tg_TJ.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/tg_TJ.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/tg_TJ.php b/lib/l10n/tg_TJ.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/tg_TJ.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/th_TH.js b/lib/l10n/th_TH.js
new file mode 100644
index 00000000000..8a58554c53b
--- /dev/null
+++ b/lib/l10n/th_TH.js
@@ -0,0 +1,25 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "ช่วยเหลือ",
+ "Personal" : "ส่วนตัว",
+ "Settings" : "ตั้งค่า",
+ "Users" : "ผู้ใช้งาน",
+ "Admin" : "ผู้ดูแล",
+ "web services under your control" : "เว็บเซอร์วิสที่คุณควบคุมการใช้งานได้",
+ "Application is not enabled" : "แอพพลิเคชั่นดังกล่าวยังไม่ได้เปิดใช้งาน",
+ "Authentication error" : "เกิดข้อผิดพลาดในสิทธิ์การเข้าใช้งาน",
+ "Token expired. Please reload page." : "รหัสยืนยันความถูกต้องหมดอายุแล้ว กรุณาโหลดหน้าเว็บใหม่อีกครั้ง",
+ "Could not find category \"%s\"" : "ไม่พบหมวดหมู่ \"%s\"",
+ "seconds ago" : "วินาที ก่อนหน้านี้",
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "today" : "วันนี้",
+ "yesterday" : "เมื่อวานนี้",
+ "_%n day go_::_%n days ago_" : [""],
+ "last month" : "เดือนที่แล้ว",
+ "_%n month ago_::_%n months ago_" : [""],
+ "last year" : "ปีที่แล้ว",
+ "years ago" : "ปี ที่ผ่านมา"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/th_TH.json b/lib/l10n/th_TH.json
new file mode 100644
index 00000000000..dde903b4a3f
--- /dev/null
+++ b/lib/l10n/th_TH.json
@@ -0,0 +1,23 @@
+{ "translations": {
+ "Help" : "ช่วยเหลือ",
+ "Personal" : "ส่วนตัว",
+ "Settings" : "ตั้งค่า",
+ "Users" : "ผู้ใช้งาน",
+ "Admin" : "ผู้ดูแล",
+ "web services under your control" : "เว็บเซอร์วิสที่คุณควบคุมการใช้งานได้",
+ "Application is not enabled" : "แอพพลิเคชั่นดังกล่าวยังไม่ได้เปิดใช้งาน",
+ "Authentication error" : "เกิดข้อผิดพลาดในสิทธิ์การเข้าใช้งาน",
+ "Token expired. Please reload page." : "รหัสยืนยันความถูกต้องหมดอายุแล้ว กรุณาโหลดหน้าเว็บใหม่อีกครั้ง",
+ "Could not find category \"%s\"" : "ไม่พบหมวดหมู่ \"%s\"",
+ "seconds ago" : "วินาที ก่อนหน้านี้",
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "today" : "วันนี้",
+ "yesterday" : "เมื่อวานนี้",
+ "_%n day go_::_%n days ago_" : [""],
+ "last month" : "เดือนที่แล้ว",
+ "_%n month ago_::_%n months ago_" : [""],
+ "last year" : "ปีที่แล้ว",
+ "years ago" : "ปี ที่ผ่านมา"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/th_TH.php b/lib/l10n/th_TH.php
deleted file mode 100644
index 6b36c12fa9d..00000000000
--- a/lib/l10n/th_TH.php
+++ /dev/null
@@ -1,24 +0,0 @@
- "ช่วยเหลือ",
-"Personal" => "ส่วนตัว",
-"Settings" => "ตั้งค่า",
-"Users" => "ผู้ใช้งาน",
-"Admin" => "ผู้ดูแล",
-"web services under your control" => "เว็บเซอร์วิสที่คุณควบคุมการใช้งานได้",
-"Application is not enabled" => "แอพพลิเคชั่นดังกล่าวยังไม่ได้เปิดใช้งาน",
-"Authentication error" => "เกิดข้อผิดพลาดในสิทธิ์การเข้าใช้งาน",
-"Token expired. Please reload page." => "รหัสยืนยันความถูกต้องหมดอายุแล้ว กรุณาโหลดหน้าเว็บใหม่อีกครั้ง",
-"Could not find category \"%s\"" => "ไม่พบหมวดหมู่ \"%s\"",
-"seconds ago" => "วินาที ก่อนหน้านี้",
-"_%n minute ago_::_%n minutes ago_" => array(""),
-"_%n hour ago_::_%n hours ago_" => array(""),
-"today" => "วันนี้",
-"yesterday" => "เมื่อวานนี้",
-"_%n day go_::_%n days ago_" => array(""),
-"last month" => "เดือนที่แล้ว",
-"_%n month ago_::_%n months ago_" => array(""),
-"last year" => "ปีที่แล้ว",
-"years ago" => "ปี ที่ผ่านมา"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/tl_PH.js b/lib/l10n/tl_PH.js
new file mode 100644
index 00000000000..9ac3e05d6c6
--- /dev/null
+++ b/lib/l10n/tl_PH.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/tl_PH.json b/lib/l10n/tl_PH.json
new file mode 100644
index 00000000000..82a8a99d300
--- /dev/null
+++ b/lib/l10n/tl_PH.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/tl_PH.php b/lib/l10n/tl_PH.php
deleted file mode 100644
index 406ff5f5a26..00000000000
--- a/lib/l10n/tl_PH.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js
new file mode 100644
index 00000000000..17a97c31e8a
--- /dev/null
+++ b/lib/l10n/tr.js
@@ -0,0 +1,126 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "\"config\" dizinine yazılamıyor!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Bu genellikle, web sunucusuna config dizinine yazma erişimi verilerek çözülebilir",
+ "See %s" : "Bakınız: %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Bu genellikle, %sweb sunucusuna config dizinine yazma erişimi verilerek%s çözülebilir",
+ "Sample configuration detected" : "Örnek yapılandırma tespit edildi",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Örnek yapılandırmanın kopyalanmış olabileceği tespit edildi. Bu kurulumunuzu bozabilir ve desteklenmemektedir. Lütfen config.php dosyasında değişiklik yapmadan önce belgelendirmeyi okuyun",
+ "Help" : "Yardım",
+ "Personal" : "Kişisel",
+ "Settings" : "Ayarlar",
+ "Users" : "Kullanıcılar",
+ "Admin" : "Yönetici",
+ "Recommended" : "Önerilen",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "ownCloud yazılımının bu sürümü ile uyumlu olmadığı için \\\"%s\\\" uygulaması kurulamaz.",
+ "No app name specified" : "Uygulama adı belirtilmedi",
+ "Unknown filetype" : "Bilinmeyen dosya türü",
+ "Invalid image" : "Geçersiz resim",
+ "Database Error" : "Veritabanı Hatası",
+ "Please contact your system administrator." : "Lütfen sistem yöneticiniz ile iletişime geçin.",
+ "web services under your control" : "denetiminizdeki web hizmetleri",
+ "App directory already exists" : "Uygulama dizini zaten mevcut",
+ "Can't create app folder. Please fix permissions. %s" : "Uygulama dizini oluşturulamıyor. Lütfen izinleri düzeltin. %s",
+ "No source specified when installing app" : "Uygulama kurulurken bir kaynak belirtilmedi",
+ "No href specified when installing app from http" : "Uygulama http'den kurulurken href belirtilmedi",
+ "No path specified when installing app from local file" : "Uygulama yerel dosyadan kurulurken dosya yolu belirtilmedi",
+ "Archives of type %s are not supported" : "%s arşiv türü desteklenmiyor",
+ "Failed to open archive when installing app" : "Uygulama kurulurken arşiv dosyası açılamadı",
+ "App does not provide an info.xml file" : "Uygulama info.xml dosyası sağlamıyor",
+ "App can't be installed because of not allowed code in the App" : "Uygulama, izin verilmeyen kodlar barındırdığından kurulamıyor",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "ownCloud sürümünüz ile uyumsuz olduğu için uygulama kurulamıyor",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Uygulama, birlikte gelmeyen uygulama olmasına rağmen true etiketi içerdiği için kurulamıyor",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Uygulama info.xml/version ile uygulama marketinde belirtilen sürüm aynı olmadığından kurulamıyor",
+ "Application is not enabled" : "Uygulama etkin değil",
+ "Authentication error" : "Kimlik doğrulama hatası",
+ "Token expired. Please reload page." : "Belirteç süresi geçti. Lütfen sayfayı yenileyin.",
+ "Unknown user" : "Bilinmeyen kullanıcı",
+ "%s enter the database username." : "%s veritabanı kullanıcı adını girin.",
+ "%s enter the database name." : "%s veritabanı adını girin.",
+ "%s you may not use dots in the database name" : "%s veritabanı adında nokta kullanamayabilirsiniz",
+ "MS SQL username and/or password not valid: %s" : "MS SQL kullanıcı adı ve/veya parolası geçersiz: %s",
+ "You need to enter either an existing account or the administrator." : "Mevcut bit hesap ya da yönetici hesabını girmelisiniz.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB kullanıcı adı ve/veya parolası geçersiz",
+ "DB Error: \"%s\"" : "VT Hatası: \"%s\"",
+ "Offending command was: \"%s\"" : "Saldırgan komut: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB kullanıcı '%s'@'localhost' zaten mevcut.",
+ "Drop this user from MySQL/MariaDB" : "Bu kullanıcıyı MySQL/MariaDB'dan at (drop)",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB kullanıcısı '%s'@'%%' zaten mevcut",
+ "Drop this user from MySQL/MariaDB." : "Bu kullanıcıyı MySQL/MariaDB'dan at (drop).",
+ "Oracle connection could not be established" : "Oracle bağlantısı kurulamadı",
+ "Oracle username and/or password not valid" : "Oracle kullanıcı adı ve/veya parolası geçerli değil",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Hatalı komut: \"%s\", ad: %s, parola: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL kullanıcı adı ve/veya parolası geçerli değil",
+ "Set an admin username." : "Bir yönetici kullanıcı adı ayarlayın.",
+ "Set an admin password." : "Bir yönetici kullanıcı parolası ayarlayın.",
+ "Can't create or write into the data directory %s" : "Veri dizini %s oluşturulamıyor veya yazılamıyor",
+ "%s shared »%s« with you" : "%s sizinle »%s« paylaşımında bulundu",
+ "Sharing %s failed, because the file does not exist" : "%s paylaşımı, dosya mevcut olmadığından başarısız oldu",
+ "You are not allowed to share %s" : "%s paylaşımını yapma izniniz yok",
+ "Sharing %s failed, because the user %s is the item owner" : "%s paylaşımı, %s öge sahibi olduğundan başarısız oldu",
+ "Sharing %s failed, because the user %s does not exist" : "%s paylaşımı, %s kullanıcısı mevcut olmadığından başarısız oldu",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s paylaşımı, %s kullanıcısının %s üyeliklerinden birine sahip olmadığından başarısız oldu",
+ "Sharing %s failed, because this item is already shared with %s" : "%s paylaşımı, %s ile zaten paylaşıldığından dolayı başarısız oldu",
+ "Sharing %s failed, because the group %s does not exist" : "%s paylaşımı, %s grubu mevcut olmadığından başarısız oldu",
+ "Sharing %s failed, because %s is not a member of the group %s" : "%s paylaşımı, %s kullanıcısı %s grup üyesi olmadığından başarısız oldu",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Herkese açık bir bağlantı oluşturmak için bir parola belirtmeniz gerekiyor. Sadece korunmuş bağlantılara izin verilmektedir",
+ "Sharing %s failed, because sharing with links is not allowed" : "%s paylaşımı, bağlantılar ile paylaşım izin verilmediğinden başarısız oldu",
+ "Share type %s is not valid for %s" : "%s paylaşım türü %s için geçerli değil",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%s için izinler, izinler %s için verilen izinleri aştığından dolayı ayarlanamadı",
+ "Setting permissions for %s failed, because the item was not found" : "%s için izinler öge bulunamadığından ayarlanamadı",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Son kullanma tarihi ayarlanamıyor. Paylaşımlar, paylaşıldıkları süreden %s sonra dolamaz.",
+ "Cannot set expiration date. Expiration date is in the past" : "Son kullanma tarihi ayarlanamıyor. Son kullanma tarihi geçmişte",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Paylaşma arka ucu %s OCP\\Share_Backend arayüzünü desteklemeli",
+ "Sharing backend %s not found" : "Paylaşım arka ucu %s bulunamadı",
+ "Sharing backend for %s not found" : "%s için paylaşım arka ucu bulunamadı",
+ "Sharing %s failed, because the user %s is the original sharer" : "%s paylaşımı, %s kullanıcısı özgün paylaşan kişi olduğundan başarısız oldu",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s paylaşımı, izinler %s için verilen izinleri aştığından dolayı başarısız oldu",
+ "Sharing %s failed, because resharing is not allowed" : "%s paylaşımı, tekrar paylaşımın izin verilmemesinden dolayı başarısız oldu",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s paylaşımı, %s için arka ucun kaynağını bulamamasından dolayı başarısız oldu",
+ "Sharing %s failed, because the file could not be found in the file cache" : "%s paylaşımı, dosyanın dosya önbelleğinde bulunamamasınndan dolayı başarısız oldu",
+ "Could not find category \"%s\"" : "\"%s\" kategorisi bulunamadı",
+ "seconds ago" : "saniyeler önce",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n dakika önce"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n saat önce"],
+ "today" : "bugün",
+ "yesterday" : "dün",
+ "_%n day go_::_%n days ago_" : ["","%n gün önce"],
+ "last month" : "geçen ay",
+ "_%n month ago_::_%n months ago_" : ["","%n ay önce"],
+ "last year" : "geçen yıl",
+ "years ago" : "yıllar önce",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Kullanıcı adında sadece bu karakterlere izin verilmektedir: \"a-z\", \"A-Z\", \"0-9\", ve \"_.@-\"",
+ "A valid username must be provided" : "Geçerli bir kullanıcı adı mutlaka sağlanmalı",
+ "A valid password must be provided" : "Geçerli bir parola mutlaka sağlanmalı",
+ "The username is already being used" : "Bu kullanıcı adı zaten kullanımda",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Yüklü veritabanı sürücüsü (sqlite, mysql veya postgresql) yok.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "İzinler genellikle, %sweb sunucusuna kök dizinine yazma erişimi verilerek%s çözülebilir",
+ "Cannot write into \"config\" directory" : "\"config\" dizinine yazılamıyor",
+ "Cannot write into \"apps\" directory" : "\"apps\" dizinine yazılamıyor",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Bu genellikle, %sweb sunucusuna apps dizinine yazma erişimi verilerek%s veya yapılandırma dosyasında appstore (uygulama mağazası) devre dışı bırakılarak çözülebilir.",
+ "Cannot create \"data\" directory (%s)" : "\"Veri\" dizini oluşturulamıyor (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "İzinler genellikle, web sunucusuna kök dizinine yazma erişimi verilerek çözülebilir.",
+ "Setting locale to %s failed" : "Dili %s olarak ayarlama başarısız",
+ "Please install one of these locales on your system and restart your webserver." : "Lütfen bu yerellerden birini sisteminize yükleyin ve web sunucunuzu yeniden başlatın.",
+ "Please ask your server administrator to install the module." : "Lütfen modülün kurulması için sunucu yöneticinize danışın.",
+ "PHP module %s not installed." : "PHP modülü %s yüklü değil.",
+ "PHP %s or higher is required." : "PHP %s veya daha üst sürümü gerekli.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Lütfen PHP'yi en son sürüme güncellemesi için sunucu yönetinize danışın. PHP sürümünüz ownCloud ve PHP topluluğu tarafından artık desteklenmemektedir.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Güvenli Kip (Safe Mode) etkin. ownCloud düzgün çalışabilmesi için bunun devre dışı olmasını gerektirir.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Güvenli Kip (Safe Mode), eskimiş ve devre dışı bırakılması gereken en kullanışsız ayardır. Lütfen php.ini veya web sunucu yapılandırması içerisinde devre dışı bırakması için sunucu yöneticinize danışın.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Sihirli Tırnaklar (Magic Quotes) etkin. ownCloud çalışabilmesi için bunun devre dışı bırakılması gerekli.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Sihirli Tırnaklar (Magic Quotes), eskimiş ve devre dışı bırakılması gereken en kullanışsız ayardır. Lütfen php.ini veya web sunucu yapılandırması içerisinde devre dışı bırakması için sunucu yöneticinize danışın.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP modülleri yüklü, ancak hala eksik olarak mı görünüyorlar?",
+ "Please ask your server administrator to restart the web server." : "Lütfen web sunucusunu yeniden başlatması için sunucu yöneticinize danışın.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 gerekli",
+ "Please upgrade your database version" : "Lütfen veritabanı sürümünüzü yükseltin",
+ "Error occurred while checking PostgreSQL version" : "PostgreSQL sürümü denetlenirken hata oluştu",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL >= 9 sürümüne sahip olduğunuzu doğrulayın veya hata hakkında daha fazla bilgi için günlükleri denetleyin",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Lütfen izinleri 0770 olarak ayarlayıp dizinin diğer kullanıcılar tarafından görülememesini sağlayın.",
+ "Data directory (%s) is readable by other users" : "Veri dizini (%s) diğer kullanıcılar tarafından okunabilir",
+ "Data directory (%s) is invalid" : "Veri dizini (%s) geçersiz",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Lütfen veri dizininin kökünde \".ocdata\" adlı bir dosyanın bulunduğunu denetleyin.",
+ "Could not obtain lock type %d on \"%s\"." : "\"%s\" üzerinde %d kilit türü alınamadı."
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json
new file mode 100644
index 00000000000..b6023ba4e08
--- /dev/null
+++ b/lib/l10n/tr.json
@@ -0,0 +1,124 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "\"config\" dizinine yazılamıyor!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Bu genellikle, web sunucusuna config dizinine yazma erişimi verilerek çözülebilir",
+ "See %s" : "Bakınız: %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Bu genellikle, %sweb sunucusuna config dizinine yazma erişimi verilerek%s çözülebilir",
+ "Sample configuration detected" : "Örnek yapılandırma tespit edildi",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Örnek yapılandırmanın kopyalanmış olabileceği tespit edildi. Bu kurulumunuzu bozabilir ve desteklenmemektedir. Lütfen config.php dosyasında değişiklik yapmadan önce belgelendirmeyi okuyun",
+ "Help" : "Yardım",
+ "Personal" : "Kişisel",
+ "Settings" : "Ayarlar",
+ "Users" : "Kullanıcılar",
+ "Admin" : "Yönetici",
+ "Recommended" : "Önerilen",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "ownCloud yazılımının bu sürümü ile uyumlu olmadığı için \\\"%s\\\" uygulaması kurulamaz.",
+ "No app name specified" : "Uygulama adı belirtilmedi",
+ "Unknown filetype" : "Bilinmeyen dosya türü",
+ "Invalid image" : "Geçersiz resim",
+ "Database Error" : "Veritabanı Hatası",
+ "Please contact your system administrator." : "Lütfen sistem yöneticiniz ile iletişime geçin.",
+ "web services under your control" : "denetiminizdeki web hizmetleri",
+ "App directory already exists" : "Uygulama dizini zaten mevcut",
+ "Can't create app folder. Please fix permissions. %s" : "Uygulama dizini oluşturulamıyor. Lütfen izinleri düzeltin. %s",
+ "No source specified when installing app" : "Uygulama kurulurken bir kaynak belirtilmedi",
+ "No href specified when installing app from http" : "Uygulama http'den kurulurken href belirtilmedi",
+ "No path specified when installing app from local file" : "Uygulama yerel dosyadan kurulurken dosya yolu belirtilmedi",
+ "Archives of type %s are not supported" : "%s arşiv türü desteklenmiyor",
+ "Failed to open archive when installing app" : "Uygulama kurulurken arşiv dosyası açılamadı",
+ "App does not provide an info.xml file" : "Uygulama info.xml dosyası sağlamıyor",
+ "App can't be installed because of not allowed code in the App" : "Uygulama, izin verilmeyen kodlar barındırdığından kurulamıyor",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "ownCloud sürümünüz ile uyumsuz olduğu için uygulama kurulamıyor",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Uygulama, birlikte gelmeyen uygulama olmasına rağmen true etiketi içerdiği için kurulamıyor",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Uygulama info.xml/version ile uygulama marketinde belirtilen sürüm aynı olmadığından kurulamıyor",
+ "Application is not enabled" : "Uygulama etkin değil",
+ "Authentication error" : "Kimlik doğrulama hatası",
+ "Token expired. Please reload page." : "Belirteç süresi geçti. Lütfen sayfayı yenileyin.",
+ "Unknown user" : "Bilinmeyen kullanıcı",
+ "%s enter the database username." : "%s veritabanı kullanıcı adını girin.",
+ "%s enter the database name." : "%s veritabanı adını girin.",
+ "%s you may not use dots in the database name" : "%s veritabanı adında nokta kullanamayabilirsiniz",
+ "MS SQL username and/or password not valid: %s" : "MS SQL kullanıcı adı ve/veya parolası geçersiz: %s",
+ "You need to enter either an existing account or the administrator." : "Mevcut bit hesap ya da yönetici hesabını girmelisiniz.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB kullanıcı adı ve/veya parolası geçersiz",
+ "DB Error: \"%s\"" : "VT Hatası: \"%s\"",
+ "Offending command was: \"%s\"" : "Saldırgan komut: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB kullanıcı '%s'@'localhost' zaten mevcut.",
+ "Drop this user from MySQL/MariaDB" : "Bu kullanıcıyı MySQL/MariaDB'dan at (drop)",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB kullanıcısı '%s'@'%%' zaten mevcut",
+ "Drop this user from MySQL/MariaDB." : "Bu kullanıcıyı MySQL/MariaDB'dan at (drop).",
+ "Oracle connection could not be established" : "Oracle bağlantısı kurulamadı",
+ "Oracle username and/or password not valid" : "Oracle kullanıcı adı ve/veya parolası geçerli değil",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Hatalı komut: \"%s\", ad: %s, parola: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL kullanıcı adı ve/veya parolası geçerli değil",
+ "Set an admin username." : "Bir yönetici kullanıcı adı ayarlayın.",
+ "Set an admin password." : "Bir yönetici kullanıcı parolası ayarlayın.",
+ "Can't create or write into the data directory %s" : "Veri dizini %s oluşturulamıyor veya yazılamıyor",
+ "%s shared »%s« with you" : "%s sizinle »%s« paylaşımında bulundu",
+ "Sharing %s failed, because the file does not exist" : "%s paylaşımı, dosya mevcut olmadığından başarısız oldu",
+ "You are not allowed to share %s" : "%s paylaşımını yapma izniniz yok",
+ "Sharing %s failed, because the user %s is the item owner" : "%s paylaşımı, %s öge sahibi olduğundan başarısız oldu",
+ "Sharing %s failed, because the user %s does not exist" : "%s paylaşımı, %s kullanıcısı mevcut olmadığından başarısız oldu",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s paylaşımı, %s kullanıcısının %s üyeliklerinden birine sahip olmadığından başarısız oldu",
+ "Sharing %s failed, because this item is already shared with %s" : "%s paylaşımı, %s ile zaten paylaşıldığından dolayı başarısız oldu",
+ "Sharing %s failed, because the group %s does not exist" : "%s paylaşımı, %s grubu mevcut olmadığından başarısız oldu",
+ "Sharing %s failed, because %s is not a member of the group %s" : "%s paylaşımı, %s kullanıcısı %s grup üyesi olmadığından başarısız oldu",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Herkese açık bir bağlantı oluşturmak için bir parola belirtmeniz gerekiyor. Sadece korunmuş bağlantılara izin verilmektedir",
+ "Sharing %s failed, because sharing with links is not allowed" : "%s paylaşımı, bağlantılar ile paylaşım izin verilmediğinden başarısız oldu",
+ "Share type %s is not valid for %s" : "%s paylaşım türü %s için geçerli değil",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%s için izinler, izinler %s için verilen izinleri aştığından dolayı ayarlanamadı",
+ "Setting permissions for %s failed, because the item was not found" : "%s için izinler öge bulunamadığından ayarlanamadı",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Son kullanma tarihi ayarlanamıyor. Paylaşımlar, paylaşıldıkları süreden %s sonra dolamaz.",
+ "Cannot set expiration date. Expiration date is in the past" : "Son kullanma tarihi ayarlanamıyor. Son kullanma tarihi geçmişte",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Paylaşma arka ucu %s OCP\\Share_Backend arayüzünü desteklemeli",
+ "Sharing backend %s not found" : "Paylaşım arka ucu %s bulunamadı",
+ "Sharing backend for %s not found" : "%s için paylaşım arka ucu bulunamadı",
+ "Sharing %s failed, because the user %s is the original sharer" : "%s paylaşımı, %s kullanıcısı özgün paylaşan kişi olduğundan başarısız oldu",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s paylaşımı, izinler %s için verilen izinleri aştığından dolayı başarısız oldu",
+ "Sharing %s failed, because resharing is not allowed" : "%s paylaşımı, tekrar paylaşımın izin verilmemesinden dolayı başarısız oldu",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s paylaşımı, %s için arka ucun kaynağını bulamamasından dolayı başarısız oldu",
+ "Sharing %s failed, because the file could not be found in the file cache" : "%s paylaşımı, dosyanın dosya önbelleğinde bulunamamasınndan dolayı başarısız oldu",
+ "Could not find category \"%s\"" : "\"%s\" kategorisi bulunamadı",
+ "seconds ago" : "saniyeler önce",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n dakika önce"],
+ "_%n hour ago_::_%n hours ago_" : ["","%n saat önce"],
+ "today" : "bugün",
+ "yesterday" : "dün",
+ "_%n day go_::_%n days ago_" : ["","%n gün önce"],
+ "last month" : "geçen ay",
+ "_%n month ago_::_%n months ago_" : ["","%n ay önce"],
+ "last year" : "geçen yıl",
+ "years ago" : "yıllar önce",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "Kullanıcı adında sadece bu karakterlere izin verilmektedir: \"a-z\", \"A-Z\", \"0-9\", ve \"_.@-\"",
+ "A valid username must be provided" : "Geçerli bir kullanıcı adı mutlaka sağlanmalı",
+ "A valid password must be provided" : "Geçerli bir parola mutlaka sağlanmalı",
+ "The username is already being used" : "Bu kullanıcı adı zaten kullanımda",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Yüklü veritabanı sürücüsü (sqlite, mysql veya postgresql) yok.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "İzinler genellikle, %sweb sunucusuna kök dizinine yazma erişimi verilerek%s çözülebilir",
+ "Cannot write into \"config\" directory" : "\"config\" dizinine yazılamıyor",
+ "Cannot write into \"apps\" directory" : "\"apps\" dizinine yazılamıyor",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Bu genellikle, %sweb sunucusuna apps dizinine yazma erişimi verilerek%s veya yapılandırma dosyasında appstore (uygulama mağazası) devre dışı bırakılarak çözülebilir.",
+ "Cannot create \"data\" directory (%s)" : "\"Veri\" dizini oluşturulamıyor (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "İzinler genellikle, web sunucusuna kök dizinine yazma erişimi verilerek çözülebilir.",
+ "Setting locale to %s failed" : "Dili %s olarak ayarlama başarısız",
+ "Please install one of these locales on your system and restart your webserver." : "Lütfen bu yerellerden birini sisteminize yükleyin ve web sunucunuzu yeniden başlatın.",
+ "Please ask your server administrator to install the module." : "Lütfen modülün kurulması için sunucu yöneticinize danışın.",
+ "PHP module %s not installed." : "PHP modülü %s yüklü değil.",
+ "PHP %s or higher is required." : "PHP %s veya daha üst sürümü gerekli.",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Lütfen PHP'yi en son sürüme güncellemesi için sunucu yönetinize danışın. PHP sürümünüz ownCloud ve PHP topluluğu tarafından artık desteklenmemektedir.",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Güvenli Kip (Safe Mode) etkin. ownCloud düzgün çalışabilmesi için bunun devre dışı olmasını gerektirir.",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Güvenli Kip (Safe Mode), eskimiş ve devre dışı bırakılması gereken en kullanışsız ayardır. Lütfen php.ini veya web sunucu yapılandırması içerisinde devre dışı bırakması için sunucu yöneticinize danışın.",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Sihirli Tırnaklar (Magic Quotes) etkin. ownCloud çalışabilmesi için bunun devre dışı bırakılması gerekli.",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Sihirli Tırnaklar (Magic Quotes), eskimiş ve devre dışı bırakılması gereken en kullanışsız ayardır. Lütfen php.ini veya web sunucu yapılandırması içerisinde devre dışı bırakması için sunucu yöneticinize danışın.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP modülleri yüklü, ancak hala eksik olarak mı görünüyorlar?",
+ "Please ask your server administrator to restart the web server." : "Lütfen web sunucusunu yeniden başlatması için sunucu yöneticinize danışın.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 gerekli",
+ "Please upgrade your database version" : "Lütfen veritabanı sürümünüzü yükseltin",
+ "Error occurred while checking PostgreSQL version" : "PostgreSQL sürümü denetlenirken hata oluştu",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL >= 9 sürümüne sahip olduğunuzu doğrulayın veya hata hakkında daha fazla bilgi için günlükleri denetleyin",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Lütfen izinleri 0770 olarak ayarlayıp dizinin diğer kullanıcılar tarafından görülememesini sağlayın.",
+ "Data directory (%s) is readable by other users" : "Veri dizini (%s) diğer kullanıcılar tarafından okunabilir",
+ "Data directory (%s) is invalid" : "Veri dizini (%s) geçersiz",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Lütfen veri dizininin kökünde \".ocdata\" adlı bir dosyanın bulunduğunu denetleyin.",
+ "Could not obtain lock type %d on \"%s\"." : "\"%s\" üzerinde %d kilit türü alınamadı."
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/tr.php b/lib/l10n/tr.php
deleted file mode 100644
index aba1e7db1cc..00000000000
--- a/lib/l10n/tr.php
+++ /dev/null
@@ -1,122 +0,0 @@
- "\"config\" dizinine yazılamıyor!",
-"This can usually be fixed by giving the webserver write access to the config directory" => "Bu genellikle, web sunucusuna config dizinine yazma erişimi verilerek çözülebilir",
-"See %s" => "Bakınız: %s",
-"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Bu genellikle, %sweb sunucusuna config dizinine yazma erişimi verilerek%s çözülebilir",
-"Sample configuration detected" => "Örnek yapılandırma tespit edildi",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Örnek yapılandırmanın kopyalanmış olabileceği tespit edildi. Bu kurulumunuzu bozabilir ve desteklenmemektedir. Lütfen config.php dosyasında değişiklik yapmadan önce belgelendirmeyi okuyun",
-"Help" => "Yardım",
-"Personal" => "Kişisel",
-"Settings" => "Ayarlar",
-"Users" => "Kullanıcılar",
-"Admin" => "Yönetici",
-"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "ownCloud yazılımının bu sürümü ile uyumlu olmadığı için \\\"%s\\\" uygulaması kurulamaz.",
-"No app name specified" => "Uygulama adı belirtilmedi",
-"Unknown filetype" => "Bilinmeyen dosya türü",
-"Invalid image" => "Geçersiz resim",
-"web services under your control" => "denetiminizdeki web hizmetleri",
-"App directory already exists" => "Uygulama dizini zaten mevcut",
-"Can't create app folder. Please fix permissions. %s" => "Uygulama dizini oluşturulamıyor. Lütfen izinleri düzeltin. %s",
-"No source specified when installing app" => "Uygulama kurulurken bir kaynak belirtilmedi",
-"No href specified when installing app from http" => "Uygulama http'den kurulurken href belirtilmedi",
-"No path specified when installing app from local file" => "Uygulama yerel dosyadan kurulurken dosya yolu belirtilmedi",
-"Archives of type %s are not supported" => "%s arşiv türü desteklenmiyor",
-"Failed to open archive when installing app" => "Uygulama kurulurken arşiv dosyası açılamadı",
-"App does not provide an info.xml file" => "Uygulama info.xml dosyası sağlamıyor",
-"App can't be installed because of not allowed code in the App" => "Uygulama, izin verilmeyen kodlar barındırdığından kurulamıyor",
-"App can't be installed because it is not compatible with this version of ownCloud" => "ownCloud sürümünüz ile uyumsuz olduğu için uygulama kurulamıyor",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "Uygulama, birlikte gelmeyen uygulama olmasına rağmen true etiketi içerdiği için kurulamıyor",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "Uygulama info.xml/version ile uygulama marketinde belirtilen sürüm aynı olmadığından kurulamıyor",
-"Application is not enabled" => "Uygulama etkin değil",
-"Authentication error" => "Kimlik doğrulama hatası",
-"Token expired. Please reload page." => "Belirteç süresi geçti. Lütfen sayfayı yenileyin.",
-"Unknown user" => "Bilinmeyen kullanıcı",
-"%s enter the database username." => "%s veritabanı kullanıcı adını girin.",
-"%s enter the database name." => "%s veritabanı adını girin.",
-"%s you may not use dots in the database name" => "%s veritabanı adında nokta kullanamayabilirsiniz",
-"MS SQL username and/or password not valid: %s" => "MS SQL kullanıcı adı ve/veya parolası geçersiz: %s",
-"You need to enter either an existing account or the administrator." => "Mevcut bit hesap ya da yönetici hesabını girmelisiniz.",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB kullanıcı adı ve/veya parolası geçersiz",
-"DB Error: \"%s\"" => "VT Hatası: \"%s\"",
-"Offending command was: \"%s\"" => "Saldırgan komut: \"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB kullanıcı '%s'@'localhost' zaten mevcut.",
-"Drop this user from MySQL/MariaDB" => "Bu kullanıcıyı MySQL/MariaDB'dan at (drop)",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB kullanıcısı '%s'@'%%' zaten mevcut",
-"Drop this user from MySQL/MariaDB." => "Bu kullanıcıyı MySQL/MariaDB'dan at (drop).",
-"Oracle connection could not be established" => "Oracle bağlantısı kurulamadı",
-"Oracle username and/or password not valid" => "Oracle kullanıcı adı ve/veya parolası geçerli değil",
-"Offending command was: \"%s\", name: %s, password: %s" => "Hatalı komut: \"%s\", ad: %s, parola: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL kullanıcı adı ve/veya parolası geçerli değil",
-"Set an admin username." => "Bir yönetici kullanıcı adı ayarlayın.",
-"Set an admin password." => "Bir yönetici kullanıcı parolası ayarlayın.",
-"Can't create or write into the data directory %s" => "Veri dizini %s oluşturulamıyor veya yazılamıyor",
-"%s shared »%s« with you" => "%s sizinle »%s« paylaşımında bulundu",
-"Sharing %s failed, because the file does not exist" => "%s paylaşımı, dosya mevcut olmadığından başarısız oldu",
-"You are not allowed to share %s" => "%s paylaşımını yapma izniniz yok",
-"Sharing %s failed, because the user %s is the item owner" => "%s paylaşımı, %s öge sahibi olduğundan başarısız oldu",
-"Sharing %s failed, because the user %s does not exist" => "%s paylaşımı, %s kullanıcısı mevcut olmadığından başarısız oldu",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "%s paylaşımı, %s kullanıcısının %s üyeliklerinden birine sahip olmadığından başarısız oldu",
-"Sharing %s failed, because this item is already shared with %s" => "%s paylaşımı, %s ile zaten paylaşıldığından dolayı başarısız oldu",
-"Sharing %s failed, because the group %s does not exist" => "%s paylaşımı, %s grubu mevcut olmadığından başarısız oldu",
-"Sharing %s failed, because %s is not a member of the group %s" => "%s paylaşımı, %s kullanıcısı %s grup üyesi olmadığından başarısız oldu",
-"You need to provide a password to create a public link, only protected links are allowed" => "Herkese açık bir bağlantı oluşturmak için bir parola belirtmeniz gerekiyor. Sadece korunmuş bağlantılara izin verilmektedir",
-"Sharing %s failed, because sharing with links is not allowed" => "%s paylaşımı, bağlantılar ile paylaşım izin verilmediğinden başarısız oldu",
-"Share type %s is not valid for %s" => "%s paylaşım türü %s için geçerli değil",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "%s için izinler, izinler %s için verilen izinleri aştığından dolayı ayarlanamadı",
-"Setting permissions for %s failed, because the item was not found" => "%s için izinler öge bulunamadığından ayarlanamadı",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Son kullanma tarihi ayarlanamıyor. Paylaşımlar, paylaşıldıkları süreden %s sonra dolamaz.",
-"Cannot set expiration date. Expiration date is in the past" => "Son kullanma tarihi ayarlanamıyor. Son kullanma tarihi geçmişte",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "Paylaşma arka ucu %s OCP\\Share_Backend arayüzünü desteklemeli",
-"Sharing backend %s not found" => "Paylaşım arka ucu %s bulunamadı",
-"Sharing backend for %s not found" => "%s için paylaşım arka ucu bulunamadı",
-"Sharing %s failed, because the user %s is the original sharer" => "%s paylaşımı, %s kullanıcısı özgün paylaşan kişi olduğundan başarısız oldu",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "%s paylaşımı, izinler %s için verilen izinleri aştığından dolayı başarısız oldu",
-"Sharing %s failed, because resharing is not allowed" => "%s paylaşımı, tekrar paylaşımın izin verilmemesinden dolayı başarısız oldu",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "%s paylaşımı, %s için arka ucun kaynağını bulamamasından dolayı başarısız oldu",
-"Sharing %s failed, because the file could not be found in the file cache" => "%s paylaşımı, dosyanın dosya önbelleğinde bulunamamasınndan dolayı başarısız oldu",
-"Could not find category \"%s\"" => "\"%s\" kategorisi bulunamadı",
-"seconds ago" => "saniyeler önce",
-"_%n minute ago_::_%n minutes ago_" => array("","%n dakika önce"),
-"_%n hour ago_::_%n hours ago_" => array("","%n saat önce"),
-"today" => "bugün",
-"yesterday" => "dün",
-"_%n day go_::_%n days ago_" => array("","%n gün önce"),
-"last month" => "geçen ay",
-"_%n month ago_::_%n months ago_" => array("","%n ay önce"),
-"last year" => "geçen yıl",
-"years ago" => "yıllar önce",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "Kullanıcı adında sadece bu karakterlere izin verilmektedir: \"a-z\", \"A-Z\", \"0-9\", ve \"_.@-\"",
-"A valid username must be provided" => "Geçerli bir kullanıcı adı mutlaka sağlanmalı",
-"A valid password must be provided" => "Geçerli bir parola mutlaka sağlanmalı",
-"The username is already being used" => "Bu kullanıcı adı zaten kullanımda",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "Yüklü veritabanı sürücüsü (sqlite, mysql veya postgresql) yok.",
-"Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." => "İzinler genellikle, %sweb sunucusuna kök dizinine yazma erişimi verilerek%s çözülebilir",
-"Cannot write into \"config\" directory" => "\"config\" dizinine yazılamıyor",
-"Cannot write into \"apps\" directory" => "\"apps\" dizinine yazılamıyor",
-"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." => "Bu genellikle, %sweb sunucusuna apps dizinine yazma erişimi verilerek%s veya yapılandırma dosyasında appstore (uygulama mağazası) devre dışı bırakılarak çözülebilir.",
-"Cannot create \"data\" directory (%s)" => "\"Veri\" dizini oluşturulamıyor (%s)",
-"This can usually be fixed by giving the webserver write access to the root directory ." => "İzinler genellikle, web sunucusuna kök dizinine yazma erişimi verilerek çözülebilir.",
-"Setting locale to %s failed" => "Dili %s olarak ayarlama başarısız",
-"Please install one of these locales on your system and restart your webserver." => "Lütfen bu yerellerden birini sisteminize yükleyin ve web sunucunuzu yeniden başlatın.",
-"Please ask your server administrator to install the module." => "Lütfen modülün kurulması için sunucu yöneticinize danışın.",
-"PHP module %s not installed." => "PHP modülü %s yüklü değil.",
-"PHP %s or higher is required." => "PHP %s veya daha üst sürümü gerekli.",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "Lütfen PHP'yi en son sürüme güncellemesi için sunucu yönetinize danışın. PHP sürümünüz ownCloud ve PHP topluluğu tarafından artık desteklenmemektedir.",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Güvenli Kip (Safe Mode) etkin. ownCloud düzgün çalışabilmesi için bunun devre dışı olmasını gerektirir.",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Güvenli Kip (Safe Mode), eskimiş ve devre dışı bırakılması gereken en kullanışsız ayardır. Lütfen php.ini veya web sunucu yapılandırması içerisinde devre dışı bırakması için sunucu yöneticinize danışın.",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Sihirli Tırnaklar (Magic Quotes) etkin. ownCloud çalışabilmesi için bunun devre dışı bırakılması gerekli.",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Sihirli Tırnaklar (Magic Quotes), eskimiş ve devre dışı bırakılması gereken en kullanışsız ayardır. Lütfen php.ini veya web sunucu yapılandırması içerisinde devre dışı bırakması için sunucu yöneticinize danışın.",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP modülleri yüklü, ancak hala eksik olarak mı görünüyorlar?",
-"Please ask your server administrator to restart the web server." => "Lütfen web sunucusunu yeniden başlatması için sunucu yöneticinize danışın.",
-"PostgreSQL >= 9 required" => "PostgreSQL >= 9 gerekli",
-"Please upgrade your database version" => "Lütfen veritabanı sürümünüzü yükseltin",
-"Error occurred while checking PostgreSQL version" => "PostgreSQL sürümü denetlenirken hata oluştu",
-"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" => "PostgreSQL >= 9 sürümüne sahip olduğunuzu doğrulayın veya hata hakkında daha fazla bilgi için günlükleri denetleyin",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "Lütfen izinleri 0770 ayarlayarak dizinin diğer kullanıcılar tarafından görülememesini sağlayın.",
-"Data directory (%s) is readable by other users" => "Veri dizini (%s) diğer kullanıcılar tarafından okunabilir",
-"Data directory (%s) is invalid" => "Veri dizini (%s) geçersiz",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "Lütfen veri dizininin kökünde \".ocdata\" adlı bir dosyanın bulunduğunu denetleyin.",
-"Could not obtain lock type %d on \"%s\"." => "\"%s\" üzerinde %d kilit türü alınamadı."
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/lib/l10n/tzm.js b/lib/l10n/tzm.js
new file mode 100644
index 00000000000..d0485468f71
--- /dev/null
+++ b/lib/l10n/tzm.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;");
diff --git a/lib/l10n/tzm.json b/lib/l10n/tzm.json
new file mode 100644
index 00000000000..73b35cf4dfa
--- /dev/null
+++ b/lib/l10n/tzm.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"
+}
\ No newline at end of file
diff --git a/lib/l10n/tzm.php b/lib/l10n/tzm.php
deleted file mode 100644
index 3120c509265..00000000000
--- a/lib/l10n/tzm.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;";
diff --git a/lib/l10n/ug.js b/lib/l10n/ug.js
new file mode 100644
index 00000000000..977cdcab5d8
--- /dev/null
+++ b/lib/l10n/ug.js
@@ -0,0 +1,18 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "ياردەم",
+ "Personal" : "شەخسىي",
+ "Settings" : "تەڭشەكلەر",
+ "Users" : "ئىشلەتكۈچىلەر",
+ "Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى",
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "today" : "بۈگۈن",
+ "yesterday" : "تۈنۈگۈن",
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "A valid username must be provided" : "چوقۇم ئىناۋەتلىك ئىشلەتكۈچى ئىسمىدىن بىرنى تەمىنلەش كېرەك",
+ "A valid password must be provided" : "چوقۇم ئىناۋەتلىك ئىم تەمىنلەش كېرەك"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/ug.json b/lib/l10n/ug.json
new file mode 100644
index 00000000000..89719afc30a
--- /dev/null
+++ b/lib/l10n/ug.json
@@ -0,0 +1,16 @@
+{ "translations": {
+ "Help" : "ياردەم",
+ "Personal" : "شەخسىي",
+ "Settings" : "تەڭشەكلەر",
+ "Users" : "ئىشلەتكۈچىلەر",
+ "Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى",
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "today" : "بۈگۈن",
+ "yesterday" : "تۈنۈگۈن",
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""],
+ "A valid username must be provided" : "چوقۇم ئىناۋەتلىك ئىشلەتكۈچى ئىسمىدىن بىرنى تەمىنلەش كېرەك",
+ "A valid password must be provided" : "چوقۇم ئىناۋەتلىك ئىم تەمىنلەش كېرەك"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/ug.php b/lib/l10n/ug.php
deleted file mode 100644
index fbe24f74a15..00000000000
--- a/lib/l10n/ug.php
+++ /dev/null
@@ -1,17 +0,0 @@
- "ياردەم",
-"Personal" => "شەخسىي",
-"Settings" => "تەڭشەكلەر",
-"Users" => "ئىشلەتكۈچىلەر",
-"Authentication error" => "سالاھىيەت دەلىللەش خاتالىقى",
-"_%n minute ago_::_%n minutes ago_" => array(""),
-"_%n hour ago_::_%n hours ago_" => array(""),
-"today" => "بۈگۈن",
-"yesterday" => "تۈنۈگۈن",
-"_%n day go_::_%n days ago_" => array(""),
-"_%n month ago_::_%n months ago_" => array(""),
-"A valid username must be provided" => "چوقۇم ئىناۋەتلىك ئىشلەتكۈچى ئىسمىدىن بىرنى تەمىنلەش كېرەك",
-"A valid password must be provided" => "چوقۇم ئىناۋەتلىك ئىم تەمىنلەش كېرەك"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js
new file mode 100644
index 00000000000..4512cb25227
--- /dev/null
+++ b/lib/l10n/uk.js
@@ -0,0 +1,90 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "Не можу писати у каталог \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Зазвичай це можна виправити, надавши веб-серверу права на запис в теці конфігурації",
+ "See %s" : "Перегляд %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Зазвичай це можна виправити, %sнадавши веб-серверу права на запис в теці конфігурації%s.",
+ "Sample configuration detected" : "Виявлено приклад конфігурації",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Була виявлена конфігурація з прикладу. Це може нашкодити вашій системі та не підтримується. Будь ласка, зверніться до документації перед внесенням змін в файл config.php",
+ "Help" : "Допомога",
+ "Personal" : "Особисте",
+ "Settings" : "Налаштування",
+ "Users" : "Користувачі",
+ "Admin" : "Адмін",
+ "Recommended" : "Рекомендуємо",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Додаток \\\"%s\\\" не встановлено через несумісність з даною версією ownCloud.",
+ "No app name specified" : "Не вказано ім'я додатку",
+ "Unknown filetype" : "Невідомий тип файлу",
+ "Invalid image" : "Невірне зображення",
+ "Database Error" : "Помилка бази даних",
+ "Please contact your system administrator." : "Будь ласка, зверніться до системного адміністратора.",
+ "web services under your control" : "підконтрольні Вам веб-сервіси",
+ "App directory already exists" : "Тека додатку вже існує",
+ "Can't create app folder. Please fix permissions. %s" : "Неможливо створити теку додатку. Будь ласка, виправте права доступу. %s",
+ "No source specified when installing app" : "Не вказано джерело при встановлені додатку",
+ "No href specified when installing app from http" : "Не вказано атрибут href при встановлені додатку з http",
+ "No path specified when installing app from local file" : "Не вказано шлях при встановлені додатку з локального файлу",
+ "Archives of type %s are not supported" : "Архіви %s не підтримуються",
+ "Failed to open archive when installing app" : "Неможливо відкрити архів при встановлені додатку",
+ "App does not provide an info.xml file" : "Додаток не має файл info.xml",
+ "App can't be installed because of not allowed code in the App" : "Неможливо встановити додаток. Він містить заборонений код",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Неможливо встановити додаток, він є несумісним з даною версією ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Неможливо встановити додаток, оскільки він містить параметр true заборонений додаткам, що не входять в поставку ",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Неможливо встановити додаток. Версія в файлі info.xml/version не співпадає з заявленою в магазині додатків",
+ "Application is not enabled" : "Додаток не увімкнений",
+ "Authentication error" : "Помилка автентифікації",
+ "Token expired. Please reload page." : "Строк дії токена скінчився. Будь ласка, перезавантажте сторінку.",
+ "Unknown user" : "Невідомий користувач",
+ "%s enter the database username." : "%s введіть ім'я користувача бази даних.",
+ "%s enter the database name." : "%s введіть назву бази даних.",
+ "%s you may not use dots in the database name" : "%s не можна використовувати крапки в назві бази даних",
+ "MS SQL username and/or password not valid: %s" : "MS SQL ім'я користувача та/або пароль не дійсні: %s",
+ "You need to enter either an existing account or the administrator." : "Вам потрібно ввести або існуючий обліковий запис або administrator.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB ім'я користувача та/або пароль не дійсні",
+ "DB Error: \"%s\"" : "Помилка БД: \"%s\"",
+ "Offending command was: \"%s\"" : "Команда, що викликала проблему: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Користувач MySQL/MariaDB '%s'@'localhost' вже існує.",
+ "Drop this user from MySQL/MariaDB" : "Видалити цього користувача з MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Користувач MySQL/MariaDB '%s'@'%%' вже існує",
+ "Drop this user from MySQL/MariaDB." : "Видалити цього користувача з MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Не можемо з'єднатися з Oracle ",
+ "Oracle username and/or password not valid" : "Oracle ім'я користувача та/або пароль не дійсні",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Команда, що викликала проблему: \"%s\", ім'я: %s, пароль: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL ім'я користувача та/або пароль не дійсні",
+ "Set an admin username." : "Встановіть ім'я адміністратора.",
+ "Set an admin password." : "Встановіть пароль адміністратора.",
+ "Can't create or write into the data directory %s" : "Неможливо створити або записати каталог даних %s",
+ "%s shared »%s« with you" : "%s розподілено »%s« з тобою",
+ "Sharing %s failed, because the file does not exist" : "Не вдалося поділитися %s, оскільки файл не існує",
+ "You are not allowed to share %s" : "Вам заборонено поширювати %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Не вдалося поділитися з %s, оскільки %s вже є володарем",
+ "Sharing %s failed, because the user %s does not exist" : "Не вдалося поділитися з %s, оскільки користувач %s не існує",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Не вдалося поділитися %s, оскільки користувач %s не є членом будь-якої групи в яку входить %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Не вдалося поділитися %s, оскільки файл вже в загальному доступі з %s",
+ "Sharing %s failed, because the group %s does not exist" : "Не вдалося поділитися %s, оскільки група %s не існує",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Не вдалося поділитися %s, оскільки %s не є членом групи %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Вам необхідно задати пароль для створення публічного посилання. Дозволені лише захищені посилання",
+ "Sharing %s failed, because sharing with links is not allowed" : "Не вдалося поділитися %s, оскільки публічний доступ через посилання заборонений",
+ "Could not find category \"%s\"" : "Не вдалося знайти категорію \"%s\"",
+ "seconds ago" : "секунди тому",
+ "_%n minute ago_::_%n minutes ago_" : ["","","%n хвилин тому"],
+ "_%n hour ago_::_%n hours ago_" : ["","","%n годин тому"],
+ "today" : "сьогодні",
+ "yesterday" : "вчора",
+ "_%n day go_::_%n days ago_" : ["","","%n днів тому"],
+ "last month" : "минулого місяця",
+ "_%n month ago_::_%n months ago_" : ["","","%n місяців тому"],
+ "last year" : "минулого року",
+ "years ago" : "роки тому",
+ "A valid username must be provided" : "Потрібно задати вірне ім'я користувача",
+ "A valid password must be provided" : "Потрібно задати вірний пароль",
+ "The username is already being used" : "Ім'я користувача вже використовується",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Не встановлено драйвер бази даних (sqlite, mysql, or postgresql).",
+ "Cannot write into \"config\" directory" : "Не можу писати у теку \"config\"",
+ "Cannot write into \"apps\" directory" : "Не можу писати у теку \"apps\"",
+ "Please ask your server administrator to install the module." : "Будь ласка, зверніться до адміністратора, щоб встановити модуль.",
+ "PHP module %s not installed." : "%s модуль PHP не встановлено.",
+ "Please ask your server administrator to restart the web server." : "Будь ласка, зверніться до адміністратора, щоб перезавантажити сервер."
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json
new file mode 100644
index 00000000000..87f34e15657
--- /dev/null
+++ b/lib/l10n/uk.json
@@ -0,0 +1,88 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Не можу писати у каталог \"config\"!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Зазвичай це можна виправити, надавши веб-серверу права на запис в теці конфігурації",
+ "See %s" : "Перегляд %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Зазвичай це можна виправити, %sнадавши веб-серверу права на запис в теці конфігурації%s.",
+ "Sample configuration detected" : "Виявлено приклад конфігурації",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Була виявлена конфігурація з прикладу. Це може нашкодити вашій системі та не підтримується. Будь ласка, зверніться до документації перед внесенням змін в файл config.php",
+ "Help" : "Допомога",
+ "Personal" : "Особисте",
+ "Settings" : "Налаштування",
+ "Users" : "Користувачі",
+ "Admin" : "Адмін",
+ "Recommended" : "Рекомендуємо",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "Додаток \\\"%s\\\" не встановлено через несумісність з даною версією ownCloud.",
+ "No app name specified" : "Не вказано ім'я додатку",
+ "Unknown filetype" : "Невідомий тип файлу",
+ "Invalid image" : "Невірне зображення",
+ "Database Error" : "Помилка бази даних",
+ "Please contact your system administrator." : "Будь ласка, зверніться до системного адміністратора.",
+ "web services under your control" : "підконтрольні Вам веб-сервіси",
+ "App directory already exists" : "Тека додатку вже існує",
+ "Can't create app folder. Please fix permissions. %s" : "Неможливо створити теку додатку. Будь ласка, виправте права доступу. %s",
+ "No source specified when installing app" : "Не вказано джерело при встановлені додатку",
+ "No href specified when installing app from http" : "Не вказано атрибут href при встановлені додатку з http",
+ "No path specified when installing app from local file" : "Не вказано шлях при встановлені додатку з локального файлу",
+ "Archives of type %s are not supported" : "Архіви %s не підтримуються",
+ "Failed to open archive when installing app" : "Неможливо відкрити архів при встановлені додатку",
+ "App does not provide an info.xml file" : "Додаток не має файл info.xml",
+ "App can't be installed because of not allowed code in the App" : "Неможливо встановити додаток. Він містить заборонений код",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "Неможливо встановити додаток, він є несумісним з даною версією ownCloud",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Неможливо встановити додаток, оскільки він містить параметр true заборонений додаткам, що не входять в поставку ",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Неможливо встановити додаток. Версія в файлі info.xml/version не співпадає з заявленою в магазині додатків",
+ "Application is not enabled" : "Додаток не увімкнений",
+ "Authentication error" : "Помилка автентифікації",
+ "Token expired. Please reload page." : "Строк дії токена скінчився. Будь ласка, перезавантажте сторінку.",
+ "Unknown user" : "Невідомий користувач",
+ "%s enter the database username." : "%s введіть ім'я користувача бази даних.",
+ "%s enter the database name." : "%s введіть назву бази даних.",
+ "%s you may not use dots in the database name" : "%s не можна використовувати крапки в назві бази даних",
+ "MS SQL username and/or password not valid: %s" : "MS SQL ім'я користувача та/або пароль не дійсні: %s",
+ "You need to enter either an existing account or the administrator." : "Вам потрібно ввести або існуючий обліковий запис або administrator.",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB ім'я користувача та/або пароль не дійсні",
+ "DB Error: \"%s\"" : "Помилка БД: \"%s\"",
+ "Offending command was: \"%s\"" : "Команда, що викликала проблему: \"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "Користувач MySQL/MariaDB '%s'@'localhost' вже існує.",
+ "Drop this user from MySQL/MariaDB" : "Видалити цього користувача з MySQL/MariaDB",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "Користувач MySQL/MariaDB '%s'@'%%' вже існує",
+ "Drop this user from MySQL/MariaDB." : "Видалити цього користувача з MySQL/MariaDB.",
+ "Oracle connection could not be established" : "Не можемо з'єднатися з Oracle ",
+ "Oracle username and/or password not valid" : "Oracle ім'я користувача та/або пароль не дійсні",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Команда, що викликала проблему: \"%s\", ім'я: %s, пароль: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL ім'я користувача та/або пароль не дійсні",
+ "Set an admin username." : "Встановіть ім'я адміністратора.",
+ "Set an admin password." : "Встановіть пароль адміністратора.",
+ "Can't create or write into the data directory %s" : "Неможливо створити або записати каталог даних %s",
+ "%s shared »%s« with you" : "%s розподілено »%s« з тобою",
+ "Sharing %s failed, because the file does not exist" : "Не вдалося поділитися %s, оскільки файл не існує",
+ "You are not allowed to share %s" : "Вам заборонено поширювати %s",
+ "Sharing %s failed, because the user %s is the item owner" : "Не вдалося поділитися з %s, оскільки %s вже є володарем",
+ "Sharing %s failed, because the user %s does not exist" : "Не вдалося поділитися з %s, оскільки користувач %s не існує",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Не вдалося поділитися %s, оскільки користувач %s не є членом будь-якої групи в яку входить %s",
+ "Sharing %s failed, because this item is already shared with %s" : "Не вдалося поділитися %s, оскільки файл вже в загальному доступі з %s",
+ "Sharing %s failed, because the group %s does not exist" : "Не вдалося поділитися %s, оскільки група %s не існує",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Не вдалося поділитися %s, оскільки %s не є членом групи %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Вам необхідно задати пароль для створення публічного посилання. Дозволені лише захищені посилання",
+ "Sharing %s failed, because sharing with links is not allowed" : "Не вдалося поділитися %s, оскільки публічний доступ через посилання заборонений",
+ "Could not find category \"%s\"" : "Не вдалося знайти категорію \"%s\"",
+ "seconds ago" : "секунди тому",
+ "_%n minute ago_::_%n minutes ago_" : ["","","%n хвилин тому"],
+ "_%n hour ago_::_%n hours ago_" : ["","","%n годин тому"],
+ "today" : "сьогодні",
+ "yesterday" : "вчора",
+ "_%n day go_::_%n days ago_" : ["","","%n днів тому"],
+ "last month" : "минулого місяця",
+ "_%n month ago_::_%n months ago_" : ["","","%n місяців тому"],
+ "last year" : "минулого року",
+ "years ago" : "роки тому",
+ "A valid username must be provided" : "Потрібно задати вірне ім'я користувача",
+ "A valid password must be provided" : "Потрібно задати вірний пароль",
+ "The username is already being used" : "Ім'я користувача вже використовується",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Не встановлено драйвер бази даних (sqlite, mysql, or postgresql).",
+ "Cannot write into \"config\" directory" : "Не можу писати у теку \"config\"",
+ "Cannot write into \"apps\" directory" : "Не можу писати у теку \"apps\"",
+ "Please ask your server administrator to install the module." : "Будь ласка, зверніться до адміністратора, щоб встановити модуль.",
+ "PHP module %s not installed." : "%s модуль PHP не встановлено.",
+ "Please ask your server administrator to restart the web server." : "Будь ласка, зверніться до адміністратора, щоб перезавантажити сервер."
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+}
\ No newline at end of file
diff --git a/lib/l10n/uk.php b/lib/l10n/uk.php
deleted file mode 100644
index 6832b707cb4..00000000000
--- a/lib/l10n/uk.php
+++ /dev/null
@@ -1,41 +0,0 @@
- "Допомога",
-"Personal" => "Особисте",
-"Settings" => "Налаштування",
-"Users" => "Користувачі",
-"Admin" => "Адмін",
-"Unknown filetype" => "Невідомий тип файлу",
-"Invalid image" => "Невірне зображення",
-"web services under your control" => "підконтрольні Вам веб-сервіси",
-"Application is not enabled" => "Додаток не увімкнений",
-"Authentication error" => "Помилка автентифікації",
-"Token expired. Please reload page." => "Строк дії токена скінчився. Будь ласка, перезавантажте сторінку.",
-"%s enter the database username." => "%s введіть ім'я користувача бази даних.",
-"%s enter the database name." => "%s введіть назву бази даних.",
-"%s you may not use dots in the database name" => "%s не можна використовувати крапки в назві бази даних",
-"MS SQL username and/or password not valid: %s" => "MS SQL ім'я користувача та/або пароль не дійсні: %s",
-"You need to enter either an existing account or the administrator." => "Вам потрібно ввести або існуючий обліковий запис або administrator.",
-"DB Error: \"%s\"" => "Помилка БД: \"%s\"",
-"Offending command was: \"%s\"" => "Команда, що викликала проблему: \"%s\"",
-"Oracle username and/or password not valid" => "Oracle ім'я користувача та/або пароль не дійсні",
-"Offending command was: \"%s\", name: %s, password: %s" => "Команда, що викликала проблему: \"%s\", ім'я: %s, пароль: %s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL ім'я користувача та/або пароль не дійсні",
-"Set an admin username." => "Встановіть ім'я адміністратора.",
-"Set an admin password." => "Встановіть пароль адміністратора.",
-"%s shared »%s« with you" => "%s розподілено »%s« з тобою",
-"Could not find category \"%s\"" => "Не вдалося знайти категорію \"%s\"",
-"seconds ago" => "секунди тому",
-"_%n minute ago_::_%n minutes ago_" => array("","","%n хвилин тому"),
-"_%n hour ago_::_%n hours ago_" => array("","","%n годин тому"),
-"today" => "сьогодні",
-"yesterday" => "вчора",
-"_%n day go_::_%n days ago_" => array("","","%n днів тому"),
-"last month" => "минулого місяця",
-"_%n month ago_::_%n months ago_" => array("","","%n місяців тому"),
-"last year" => "минулого року",
-"years ago" => "роки тому",
-"A valid username must be provided" => "Потрібно задати вірне ім'я користувача",
-"A valid password must be provided" => "Потрібно задати вірний пароль"
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/lib/l10n/ur.js b/lib/l10n/ur.js
new file mode 100644
index 00000000000..da0dcc6bdde
--- /dev/null
+++ b/lib/l10n/ur.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ur.json b/lib/l10n/ur.json
new file mode 100644
index 00000000000..4286553dd0c
--- /dev/null
+++ b/lib/l10n/ur.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n day go_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ur.php b/lib/l10n/ur.php
deleted file mode 100644
index 15f78e0bce6..00000000000
--- a/lib/l10n/ur.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array("",""),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"_%n day go_::_%n days ago_" => array("",""),
-"_%n month ago_::_%n months ago_" => array("","")
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/ur_PK.js b/lib/l10n/ur_PK.js
new file mode 100644
index 00000000000..266e0b11135
--- /dev/null
+++ b/lib/l10n/ur_PK.js
@@ -0,0 +1,23 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "مدد",
+ "Personal" : "ذاتی",
+ "Settings" : "سیٹینگز",
+ "Users" : "یوزرز",
+ "Admin" : "ایڈمن",
+ "Unknown filetype" : "غیر معرروف قسم کی فائل",
+ "Invalid image" : "غلط تصویر",
+ "web services under your control" : "آپ کے اختیار میں ویب سروسیز",
+ "seconds ago" : "سیکنڈز پہلے",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n منٹس پہلے"],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "آج",
+ "yesterday" : "کل",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "پچھلے مہنیے",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "پچھلے سال",
+ "years ago" : "سالوں پہلے"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/ur_PK.json b/lib/l10n/ur_PK.json
new file mode 100644
index 00000000000..f00429f3432
--- /dev/null
+++ b/lib/l10n/ur_PK.json
@@ -0,0 +1,21 @@
+{ "translations": {
+ "Help" : "مدد",
+ "Personal" : "ذاتی",
+ "Settings" : "سیٹینگز",
+ "Users" : "یوزرز",
+ "Admin" : "ایڈمن",
+ "Unknown filetype" : "غیر معرروف قسم کی فائل",
+ "Invalid image" : "غلط تصویر",
+ "web services under your control" : "آپ کے اختیار میں ویب سروسیز",
+ "seconds ago" : "سیکنڈز پہلے",
+ "_%n minute ago_::_%n minutes ago_" : ["","%n منٹس پہلے"],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "today" : "آج",
+ "yesterday" : "کل",
+ "_%n day go_::_%n days ago_" : ["",""],
+ "last month" : "پچھلے مہنیے",
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "last year" : "پچھلے سال",
+ "years ago" : "سالوں پہلے"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/ur_PK.php b/lib/l10n/ur_PK.php
deleted file mode 100644
index 458414e9da2..00000000000
--- a/lib/l10n/ur_PK.php
+++ /dev/null
@@ -1,22 +0,0 @@
- "مدد",
-"Personal" => "ذاتی",
-"Settings" => "سیٹینگز",
-"Users" => "یوزرز",
-"Admin" => "ایڈمن",
-"Unknown filetype" => "غیر معرروف قسم کی فائل",
-"Invalid image" => "غلط تصویر",
-"web services under your control" => "آپ کے اختیار میں ویب سروسیز",
-"seconds ago" => "سیکنڈز پہلے",
-"_%n minute ago_::_%n minutes ago_" => array("","%n منٹس پہلے"),
-"_%n hour ago_::_%n hours ago_" => array("",""),
-"today" => "آج",
-"yesterday" => "کل",
-"_%n day go_::_%n days ago_" => array("",""),
-"last month" => "پچھلے مہنیے",
-"_%n month ago_::_%n months ago_" => array("",""),
-"last year" => "پچھلے سال",
-"years ago" => "سالوں پہلے"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/lib/l10n/uz.js b/lib/l10n/uz.js
new file mode 100644
index 00000000000..0f4a002019e
--- /dev/null
+++ b/lib/l10n/uz.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""]
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/uz.json b/lib/l10n/uz.json
new file mode 100644
index 00000000000..4a03cf5047e
--- /dev/null
+++ b/lib/l10n/uz.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n minute ago_::_%n minutes ago_" : [""],
+ "_%n hour ago_::_%n hours ago_" : [""],
+ "_%n day go_::_%n days ago_" : [""],
+ "_%n month ago_::_%n months ago_" : [""]
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/uz.php b/lib/l10n/uz.php
deleted file mode 100644
index e7b09649a24..00000000000
--- a/lib/l10n/uz.php
+++ /dev/null
@@ -1,8 +0,0 @@
- array(""),
-"_%n hour ago_::_%n hours ago_" => array(""),
-"_%n day go_::_%n days ago_" => array(""),
-"_%n month ago_::_%n months ago_" => array("")
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/vi.js b/lib/l10n/vi.js
new file mode 100644
index 00000000000..7cb2deb0629
--- /dev/null
+++ b/lib/l10n/vi.js
@@ -0,0 +1,28 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "Giúp đỡ",
+ "Personal" : "Cá nhân",
+ "Settings" : "Cài đặt",
+ "Users" : "Người dùng",
+ "Admin" : "Quản trị",
+ "Unknown filetype" : "Không biết kiểu tập tin",
+ "Invalid image" : "Hình ảnh không hợp lệ",
+ "web services under your control" : "dịch vụ web dưới sự kiểm soát của bạn",
+ "Application is not enabled" : "Ứng dụng không được BẬT",
+ "Authentication error" : "Lỗi xác thực",
+ "Token expired. Please reload page." : "Mã Token đã hết hạn. Hãy tải lại trang.",
+ "%s shared »%s« with you" : "%s đã chia sẻ »%s« với bạn",
+ "Could not find category \"%s\"" : "không thể tìm thấy mục \"%s\"",
+ "seconds ago" : "vài giây trước",
+ "_%n minute ago_::_%n minutes ago_" : ["%n phút trước"],
+ "_%n hour ago_::_%n hours ago_" : ["%n giờ trước"],
+ "today" : "hôm nay",
+ "yesterday" : "hôm qua",
+ "_%n day go_::_%n days ago_" : ["%n ngày trước"],
+ "last month" : "tháng trước",
+ "_%n month ago_::_%n months ago_" : ["%n tháng trước"],
+ "last year" : "năm trước",
+ "years ago" : "năm trước"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/vi.json b/lib/l10n/vi.json
new file mode 100644
index 00000000000..434c1b8a67b
--- /dev/null
+++ b/lib/l10n/vi.json
@@ -0,0 +1,26 @@
+{ "translations": {
+ "Help" : "Giúp đỡ",
+ "Personal" : "Cá nhân",
+ "Settings" : "Cài đặt",
+ "Users" : "Người dùng",
+ "Admin" : "Quản trị",
+ "Unknown filetype" : "Không biết kiểu tập tin",
+ "Invalid image" : "Hình ảnh không hợp lệ",
+ "web services under your control" : "dịch vụ web dưới sự kiểm soát của bạn",
+ "Application is not enabled" : "Ứng dụng không được BẬT",
+ "Authentication error" : "Lỗi xác thực",
+ "Token expired. Please reload page." : "Mã Token đã hết hạn. Hãy tải lại trang.",
+ "%s shared »%s« with you" : "%s đã chia sẻ »%s« với bạn",
+ "Could not find category \"%s\"" : "không thể tìm thấy mục \"%s\"",
+ "seconds ago" : "vài giây trước",
+ "_%n minute ago_::_%n minutes ago_" : ["%n phút trước"],
+ "_%n hour ago_::_%n hours ago_" : ["%n giờ trước"],
+ "today" : "hôm nay",
+ "yesterday" : "hôm qua",
+ "_%n day go_::_%n days ago_" : ["%n ngày trước"],
+ "last month" : "tháng trước",
+ "_%n month ago_::_%n months ago_" : ["%n tháng trước"],
+ "last year" : "năm trước",
+ "years ago" : "năm trước"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/vi.php b/lib/l10n/vi.php
deleted file mode 100644
index 0d460a41ed3..00000000000
--- a/lib/l10n/vi.php
+++ /dev/null
@@ -1,27 +0,0 @@
- "Giúp đỡ",
-"Personal" => "Cá nhân",
-"Settings" => "Cài đặt",
-"Users" => "Người dùng",
-"Admin" => "Quản trị",
-"Unknown filetype" => "Không biết kiểu tập tin",
-"Invalid image" => "Hình ảnh không hợp lệ",
-"web services under your control" => "dịch vụ web dưới sự kiểm soát của bạn",
-"Application is not enabled" => "Ứng dụng không được BẬT",
-"Authentication error" => "Lỗi xác thực",
-"Token expired. Please reload page." => "Mã Token đã hết hạn. Hãy tải lại trang.",
-"%s shared »%s« with you" => "%s đã chia sẻ »%s« với bạn",
-"Could not find category \"%s\"" => "không thể tìm thấy mục \"%s\"",
-"seconds ago" => "vài giây trước",
-"_%n minute ago_::_%n minutes ago_" => array("%n phút trước"),
-"_%n hour ago_::_%n hours ago_" => array("%n giờ trước"),
-"today" => "hôm nay",
-"yesterday" => "hôm qua",
-"_%n day go_::_%n days ago_" => array("%n ngày trước"),
-"last month" => "tháng trước",
-"_%n month ago_::_%n months ago_" => array("%n tháng trước"),
-"last year" => "năm trước",
-"years ago" => "năm trước"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js
new file mode 100644
index 00000000000..54d9afc315b
--- /dev/null
+++ b/lib/l10n/zh_CN.js
@@ -0,0 +1,108 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "无法写入“config”目录!",
+ "See %s" : "查看 %s",
+ "Help" : "帮助",
+ "Personal" : "个人",
+ "Settings" : "设置",
+ "Users" : "用户",
+ "Admin" : "管理",
+ "No app name specified" : "没有指定的 App 名称",
+ "Unknown filetype" : "未知的文件类型",
+ "Invalid image" : "无效的图像",
+ "web services under your control" : "您控制的网络服务",
+ "App directory already exists" : "应用程序目录已存在",
+ "Can't create app folder. Please fix permissions. %s" : "无法创建应用程序文件夹。请修正权限。%s",
+ "No source specified when installing app" : "安装 App 时未指定来源",
+ "No href specified when installing app from http" : "从 http 安装 App 时未指定链接",
+ "No path specified when installing app from local file" : "从本地文件安装 App 时未指定路径",
+ "Archives of type %s are not supported" : "不支持 %s 的压缩格式",
+ "Failed to open archive when installing app" : "安装 App 是打开归档失败",
+ "App does not provide an info.xml file" : "应用未提供 info.xml 文件",
+ "App can't be installed because of not allowed code in the App" : "App 无法安装,因为 App 中有非法代码 ",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "App 无法安装,因为和当前 ownCloud 版本不兼容",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "App 无法安装,因为 App 包含不允许在非内置 App 中使用的 true 标签",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "App 无法安装因为 info.xml/version 中的版本和 App 商店版本不同",
+ "Application is not enabled" : "应用程序未启用",
+ "Authentication error" : "认证出错",
+ "Token expired. Please reload page." : "Token 过期,请刷新页面。",
+ "Unknown user" : "未知用户",
+ "%s enter the database username." : "%s 输入数据库用户名。",
+ "%s enter the database name." : "%s 输入数据库名称。",
+ "%s you may not use dots in the database name" : "%s 您不能在数据库名称中使用英文句号。",
+ "MS SQL username and/or password not valid: %s" : "MS SQL 用户名和/或密码无效:%s",
+ "You need to enter either an existing account or the administrator." : "你需要输入一个数据库中已有的账户或管理员账户。",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB 数据库用户名和/或密码无效",
+ "DB Error: \"%s\"" : "数据库错误:\"%s\"",
+ "Offending command was: \"%s\"" : "冲突命令为:\"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB 用户 '%s'@'localhost' 已存在。",
+ "Drop this user from MySQL/MariaDB" : "建议从 MySQL/MariaDB 数据库中删除此用户",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB 用户 '%s'@'%%' 已存在",
+ "Drop this user from MySQL/MariaDB." : "建议从 MySQL/MariaDB 数据库中删除此用户。",
+ "Oracle connection could not be established" : "不能建立甲骨文连接",
+ "Oracle username and/or password not valid" : "Oracle 数据库用户名和/或密码无效",
+ "Offending command was: \"%s\", name: %s, password: %s" : "冲突命令为:\"%s\",名称:%s,密码:%s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL 数据库用户名和/或密码无效",
+ "Set an admin username." : "请设置一个管理员用户名。",
+ "Set an admin password." : "请设置一个管理员密码。",
+ "%s shared »%s« with you" : "%s 向您分享了 »%s«",
+ "Sharing %s failed, because the file does not exist" : "共享 %s 失败,因为文件不存在。",
+ "You are not allowed to share %s" : "您无权分享 %s",
+ "Sharing %s failed, because the user %s is the item owner" : "共享 %s 失败,因为用户 %s 是对象的拥有者",
+ "Sharing %s failed, because the user %s does not exist" : "共享 %s 失败,因为用户 %s 不存在",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "共享 %s 失败,因为用户 %s 不是 %s 所属的任何组的用户",
+ "Sharing %s failed, because this item is already shared with %s" : "共享 %s 失败,因为它已经共享给 %s",
+ "Sharing %s failed, because the group %s does not exist" : "共享 %s 失败,因为 %s 组不存在",
+ "Sharing %s failed, because %s is not a member of the group %s" : "共享 %s 失败,因为 %s 不是 %s 组的成员",
+ "Sharing %s failed, because sharing with links is not allowed" : "共享 %s 失败,因为不允许用链接共享",
+ "Share type %s is not valid for %s" : "%s 不是 %s 的合法共享类型",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "设置 %s 权限失败,因为权限超出了 %s 已有权限。",
+ "Setting permissions for %s failed, because the item was not found" : "设置 %s 的权限失败,因为未找到到对应项",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "共享后端 %s 必须实现 OCP\\Share_Backend 接口",
+ "Sharing backend %s not found" : "未找到共享后端 %s",
+ "Sharing backend for %s not found" : "%s 的共享后端未找到",
+ "Sharing %s failed, because the user %s is the original sharer" : "共享 %s 失败,因为用户 %s 不是原始共享者",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "共享 %s 失败,因为权限超过了 %s 已有权限",
+ "Sharing %s failed, because resharing is not allowed" : "共享 %s 失败,因为不允许二次共享",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "共享 %s 失败,因为 %s 使用的共享后端未找到它的来源",
+ "Sharing %s failed, because the file could not be found in the file cache" : "共享 %s 失败,因为未在文件缓存中找到文件。",
+ "Could not find category \"%s\"" : "无法找到分类 \"%s\"",
+ "seconds ago" : "秒前",
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day go_::_%n days ago_" : ["%n 天前"],
+ "last month" : "上月",
+ "_%n month ago_::_%n months ago_" : ["%n 月前"],
+ "last year" : "去年",
+ "years ago" : "年前",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "用户名只允许使用以下字符:“a-z”,“A-Z”,“0-9”,和“_.@-”",
+ "A valid username must be provided" : "必须提供合法的用户名",
+ "A valid password must be provided" : "必须提供合法的密码",
+ "The username is already being used" : "用户名已被使用",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "没有安装数据库驱动 (SQLite、MySQL 或 PostgreSQL)。",
+ "Cannot write into \"config\" directory" : "无法写入“config”目录",
+ "Cannot write into \"apps\" directory" : "无法写入“apps”目录",
+ "Cannot create \"data\" directory (%s)" : "无法创建“apps”目录 (%s)",
+ "Setting locale to %s failed" : "设置语言为 %s 失败",
+ "Please ask your server administrator to install the module." : "请联系服务器管理员安装模块。",
+ "PHP module %s not installed." : "PHP %s 模块未安装。",
+ "PHP %s or higher is required." : "要求 PHP 版本 %s 或者更高。",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "请联系服务器管理员升级 PHP 到最新的版本。ownCloud 和 PHP 社区已经不再支持此版本的 PHP。",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode 已经启用,ownCloud 需要 Safe Mode 停用以正常工作。",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode 已经被废弃并且应当被停用。请联系服务器管理员在 php.ini 或您的服务器设置中停用 Safe Mode。",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes 已经启用,ownCloud 需要 Magic Quotes 停用以正常工作。",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes 已经被废弃并且应当被停用。请联系服务器管理员在 php.ini 或您的服务器设置中停用 Magic Quotes。",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP 模块已经安装,但仍然显示未安装?",
+ "Please ask your server administrator to restart the web server." : "请联系服务器管理员重启网页服务器。",
+ "PostgreSQL >= 9 required" : "要求 PostgreSQL >= 9",
+ "Please upgrade your database version" : "请升级您的数据库版本",
+ "Error occurred while checking PostgreSQL version" : "检查 PostgreSQL 版本时发生了一个错误",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "请更改权限为 0770 以避免其他用户查看目录。",
+ "Data directory (%s) is readable by other users" : "文件目录 (%s) 可以被其他用户读取",
+ "Data directory (%s) is invalid" : "文件目录 (%s) 无效",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "请确保文件根目录下包含有一个名为“.ocdata”的文件。"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json
new file mode 100644
index 00000000000..3168f94af58
--- /dev/null
+++ b/lib/l10n/zh_CN.json
@@ -0,0 +1,106 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "无法写入“config”目录!",
+ "See %s" : "查看 %s",
+ "Help" : "帮助",
+ "Personal" : "个人",
+ "Settings" : "设置",
+ "Users" : "用户",
+ "Admin" : "管理",
+ "No app name specified" : "没有指定的 App 名称",
+ "Unknown filetype" : "未知的文件类型",
+ "Invalid image" : "无效的图像",
+ "web services under your control" : "您控制的网络服务",
+ "App directory already exists" : "应用程序目录已存在",
+ "Can't create app folder. Please fix permissions. %s" : "无法创建应用程序文件夹。请修正权限。%s",
+ "No source specified when installing app" : "安装 App 时未指定来源",
+ "No href specified when installing app from http" : "从 http 安装 App 时未指定链接",
+ "No path specified when installing app from local file" : "从本地文件安装 App 时未指定路径",
+ "Archives of type %s are not supported" : "不支持 %s 的压缩格式",
+ "Failed to open archive when installing app" : "安装 App 是打开归档失败",
+ "App does not provide an info.xml file" : "应用未提供 info.xml 文件",
+ "App can't be installed because of not allowed code in the App" : "App 无法安装,因为 App 中有非法代码 ",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "App 无法安装,因为和当前 ownCloud 版本不兼容",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "App 无法安装,因为 App 包含不允许在非内置 App 中使用的 true 标签",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "App 无法安装因为 info.xml/version 中的版本和 App 商店版本不同",
+ "Application is not enabled" : "应用程序未启用",
+ "Authentication error" : "认证出错",
+ "Token expired. Please reload page." : "Token 过期,请刷新页面。",
+ "Unknown user" : "未知用户",
+ "%s enter the database username." : "%s 输入数据库用户名。",
+ "%s enter the database name." : "%s 输入数据库名称。",
+ "%s you may not use dots in the database name" : "%s 您不能在数据库名称中使用英文句号。",
+ "MS SQL username and/or password not valid: %s" : "MS SQL 用户名和/或密码无效:%s",
+ "You need to enter either an existing account or the administrator." : "你需要输入一个数据库中已有的账户或管理员账户。",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB 数据库用户名和/或密码无效",
+ "DB Error: \"%s\"" : "数据库错误:\"%s\"",
+ "Offending command was: \"%s\"" : "冲突命令为:\"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB 用户 '%s'@'localhost' 已存在。",
+ "Drop this user from MySQL/MariaDB" : "建议从 MySQL/MariaDB 数据库中删除此用户",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB 用户 '%s'@'%%' 已存在",
+ "Drop this user from MySQL/MariaDB." : "建议从 MySQL/MariaDB 数据库中删除此用户。",
+ "Oracle connection could not be established" : "不能建立甲骨文连接",
+ "Oracle username and/or password not valid" : "Oracle 数据库用户名和/或密码无效",
+ "Offending command was: \"%s\", name: %s, password: %s" : "冲突命令为:\"%s\",名称:%s,密码:%s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL 数据库用户名和/或密码无效",
+ "Set an admin username." : "请设置一个管理员用户名。",
+ "Set an admin password." : "请设置一个管理员密码。",
+ "%s shared »%s« with you" : "%s 向您分享了 »%s«",
+ "Sharing %s failed, because the file does not exist" : "共享 %s 失败,因为文件不存在。",
+ "You are not allowed to share %s" : "您无权分享 %s",
+ "Sharing %s failed, because the user %s is the item owner" : "共享 %s 失败,因为用户 %s 是对象的拥有者",
+ "Sharing %s failed, because the user %s does not exist" : "共享 %s 失败,因为用户 %s 不存在",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "共享 %s 失败,因为用户 %s 不是 %s 所属的任何组的用户",
+ "Sharing %s failed, because this item is already shared with %s" : "共享 %s 失败,因为它已经共享给 %s",
+ "Sharing %s failed, because the group %s does not exist" : "共享 %s 失败,因为 %s 组不存在",
+ "Sharing %s failed, because %s is not a member of the group %s" : "共享 %s 失败,因为 %s 不是 %s 组的成员",
+ "Sharing %s failed, because sharing with links is not allowed" : "共享 %s 失败,因为不允许用链接共享",
+ "Share type %s is not valid for %s" : "%s 不是 %s 的合法共享类型",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "设置 %s 权限失败,因为权限超出了 %s 已有权限。",
+ "Setting permissions for %s failed, because the item was not found" : "设置 %s 的权限失败,因为未找到到对应项",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "共享后端 %s 必须实现 OCP\\Share_Backend 接口",
+ "Sharing backend %s not found" : "未找到共享后端 %s",
+ "Sharing backend for %s not found" : "%s 的共享后端未找到",
+ "Sharing %s failed, because the user %s is the original sharer" : "共享 %s 失败,因为用户 %s 不是原始共享者",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "共享 %s 失败,因为权限超过了 %s 已有权限",
+ "Sharing %s failed, because resharing is not allowed" : "共享 %s 失败,因为不允许二次共享",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "共享 %s 失败,因为 %s 使用的共享后端未找到它的来源",
+ "Sharing %s failed, because the file could not be found in the file cache" : "共享 %s 失败,因为未在文件缓存中找到文件。",
+ "Could not find category \"%s\"" : "无法找到分类 \"%s\"",
+ "seconds ago" : "秒前",
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day go_::_%n days ago_" : ["%n 天前"],
+ "last month" : "上月",
+ "_%n month ago_::_%n months ago_" : ["%n 月前"],
+ "last year" : "去年",
+ "years ago" : "年前",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "用户名只允许使用以下字符:“a-z”,“A-Z”,“0-9”,和“_.@-”",
+ "A valid username must be provided" : "必须提供合法的用户名",
+ "A valid password must be provided" : "必须提供合法的密码",
+ "The username is already being used" : "用户名已被使用",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "没有安装数据库驱动 (SQLite、MySQL 或 PostgreSQL)。",
+ "Cannot write into \"config\" directory" : "无法写入“config”目录",
+ "Cannot write into \"apps\" directory" : "无法写入“apps”目录",
+ "Cannot create \"data\" directory (%s)" : "无法创建“apps”目录 (%s)",
+ "Setting locale to %s failed" : "设置语言为 %s 失败",
+ "Please ask your server administrator to install the module." : "请联系服务器管理员安装模块。",
+ "PHP module %s not installed." : "PHP %s 模块未安装。",
+ "PHP %s or higher is required." : "要求 PHP 版本 %s 或者更高。",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "请联系服务器管理员升级 PHP 到最新的版本。ownCloud 和 PHP 社区已经不再支持此版本的 PHP。",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP Safe Mode 已经启用,ownCloud 需要 Safe Mode 停用以正常工作。",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP Safe Mode 已经被废弃并且应当被停用。请联系服务器管理员在 php.ini 或您的服务器设置中停用 Safe Mode。",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes 已经启用,ownCloud 需要 Magic Quotes 停用以正常工作。",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes 已经被废弃并且应当被停用。请联系服务器管理员在 php.ini 或您的服务器设置中停用 Magic Quotes。",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP 模块已经安装,但仍然显示未安装?",
+ "Please ask your server administrator to restart the web server." : "请联系服务器管理员重启网页服务器。",
+ "PostgreSQL >= 9 required" : "要求 PostgreSQL >= 9",
+ "Please upgrade your database version" : "请升级您的数据库版本",
+ "Error occurred while checking PostgreSQL version" : "检查 PostgreSQL 版本时发生了一个错误",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "请更改权限为 0770 以避免其他用户查看目录。",
+ "Data directory (%s) is readable by other users" : "文件目录 (%s) 可以被其他用户读取",
+ "Data directory (%s) is invalid" : "文件目录 (%s) 无效",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "请确保文件根目录下包含有一个名为“.ocdata”的文件。"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/zh_CN.php b/lib/l10n/zh_CN.php
deleted file mode 100644
index ce6fdf5ac1a..00000000000
--- a/lib/l10n/zh_CN.php
+++ /dev/null
@@ -1,107 +0,0 @@
- "无法写入“config”目录!",
-"See %s" => "查看 %s",
-"Help" => "帮助",
-"Personal" => "个人",
-"Settings" => "设置",
-"Users" => "用户",
-"Admin" => "管理",
-"No app name specified" => "没有指定的 App 名称",
-"Unknown filetype" => "未知的文件类型",
-"Invalid image" => "无效的图像",
-"web services under your control" => "您控制的网络服务",
-"App directory already exists" => "应用程序目录已存在",
-"Can't create app folder. Please fix permissions. %s" => "无法创建应用程序文件夹。请修正权限。%s",
-"No source specified when installing app" => "安装 App 时未指定来源",
-"No href specified when installing app from http" => "从 http 安装 App 时未指定链接",
-"No path specified when installing app from local file" => "从本地文件安装 App 时未指定路径",
-"Archives of type %s are not supported" => "不支持 %s 的压缩格式",
-"Failed to open archive when installing app" => "安装 App 是打开归档失败",
-"App does not provide an info.xml file" => "应用未提供 info.xml 文件",
-"App can't be installed because of not allowed code in the App" => "App 无法安装,因为 App 中有非法代码 ",
-"App can't be installed because it is not compatible with this version of ownCloud" => "App 无法安装,因为和当前 ownCloud 版本不兼容",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "App 无法安装,因为 App 包含不允许在非内置 App 中使用的 true 标签",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "App 无法安装因为 info.xml/version 中的版本和 App 商店版本不同",
-"Application is not enabled" => "应用程序未启用",
-"Authentication error" => "认证出错",
-"Token expired. Please reload page." => "Token 过期,请刷新页面。",
-"Unknown user" => "未知用户",
-"%s enter the database username." => "%s 输入数据库用户名。",
-"%s enter the database name." => "%s 输入数据库名称。",
-"%s you may not use dots in the database name" => "%s 您不能在数据库名称中使用英文句号。",
-"MS SQL username and/or password not valid: %s" => "MS SQL 用户名和/或密码无效:%s",
-"You need to enter either an existing account or the administrator." => "你需要输入一个数据库中已有的账户或管理员账户。",
-"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB 数据库用户名和/或密码无效",
-"DB Error: \"%s\"" => "数据库错误:\"%s\"",
-"Offending command was: \"%s\"" => "冲突命令为:\"%s\"",
-"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB 用户 '%s'@'localhost' 已存在。",
-"Drop this user from MySQL/MariaDB" => "建议从 MySQL/MariaDB 数据库中删除此用户",
-"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB 用户 '%s'@'%%' 已存在",
-"Drop this user from MySQL/MariaDB." => "建议从 MySQL/MariaDB 数据库中删除此用户。",
-"Oracle connection could not be established" => "不能建立甲骨文连接",
-"Oracle username and/or password not valid" => "Oracle 数据库用户名和/或密码无效",
-"Offending command was: \"%s\", name: %s, password: %s" => "冲突命令为:\"%s\",名称:%s,密码:%s",
-"PostgreSQL username and/or password not valid" => "PostgreSQL 数据库用户名和/或密码无效",
-"Set an admin username." => "请设置一个管理员用户名。",
-"Set an admin password." => "请设置一个管理员密码。",
-"%s shared »%s« with you" => "%s 向您分享了 »%s«",
-"Sharing %s failed, because the file does not exist" => "共享 %s 失败,因为文件不存在。",
-"You are not allowed to share %s" => "您无权分享 %s",
-"Sharing %s failed, because the user %s is the item owner" => "共享 %s 失败,因为用户 %s 是对象的拥有者",
-"Sharing %s failed, because the user %s does not exist" => "共享 %s 失败,因为用户 %s 不存在",
-"Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" => "共享 %s 失败,因为用户 %s 不是 %s 所属的任何组的用户",
-"Sharing %s failed, because this item is already shared with %s" => "共享 %s 失败,因为它已经共享给 %s",
-"Sharing %s failed, because the group %s does not exist" => "共享 %s 失败,因为 %s 组不存在",
-"Sharing %s failed, because %s is not a member of the group %s" => "共享 %s 失败,因为 %s 不是 %s 组的成员",
-"Sharing %s failed, because sharing with links is not allowed" => "共享 %s 失败,因为不允许用链接共享",
-"Share type %s is not valid for %s" => "%s 不是 %s 的合法共享类型",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "设置 %s 权限失败,因为权限超出了 %s 已有权限。",
-"Setting permissions for %s failed, because the item was not found" => "设置 %s 的权限失败,因为未找到到对应项",
-"Sharing backend %s must implement the interface OCP\\Share_Backend" => "共享后端 %s 必须实现 OCP\\Share_Backend 接口",
-"Sharing backend %s not found" => "未找到共享后端 %s",
-"Sharing backend for %s not found" => "%s 的共享后端未找到",
-"Sharing %s failed, because the user %s is the original sharer" => "共享 %s 失败,因为用户 %s 不是原始共享者",
-"Sharing %s failed, because the permissions exceed permissions granted to %s" => "共享 %s 失败,因为权限超过了 %s 已有权限",
-"Sharing %s failed, because resharing is not allowed" => "共享 %s 失败,因为不允许二次共享",
-"Sharing %s failed, because the sharing backend for %s could not find its source" => "共享 %s 失败,因为 %s 使用的共享后端未找到它的来源",
-"Sharing %s failed, because the file could not be found in the file cache" => "共享 %s 失败,因为未在文件缓存中找到文件。",
-"Could not find category \"%s\"" => "无法找到分类 \"%s\"",
-"seconds ago" => "秒前",
-"_%n minute ago_::_%n minutes ago_" => array("%n 分钟前"),
-"_%n hour ago_::_%n hours ago_" => array("%n 小时前"),
-"today" => "今天",
-"yesterday" => "昨天",
-"_%n day go_::_%n days ago_" => array("%n 天前"),
-"last month" => "上月",
-"_%n month ago_::_%n months ago_" => array("%n 月前"),
-"last year" => "去年",
-"years ago" => "年前",
-"Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" => "用户名只允许使用以下字符:“a-z”,“A-Z”,“0-9”,和“_.@-”",
-"A valid username must be provided" => "必须提供合法的用户名",
-"A valid password must be provided" => "必须提供合法的密码",
-"The username is already being used" => "用户名已被使用",
-"No database drivers (sqlite, mysql, or postgresql) installed." => "没有安装数据库驱动 (SQLite、MySQL 或 PostgreSQL)。",
-"Cannot write into \"config\" directory" => "无法写入“config”目录",
-"Cannot write into \"apps\" directory" => "无法写入“apps”目录",
-"Cannot create \"data\" directory (%s)" => "无法创建“apps”目录 (%s)",
-"Setting locale to %s failed" => "设置语言为 %s 失败",
-"Please ask your server administrator to install the module." => "请联系服务器管理员安装模块。",
-"PHP module %s not installed." => "PHP %s 模块未安装。",
-"PHP %s or higher is required." => "要求 PHP 版本 %s 或者更高。",
-"Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." => "请联系服务器管理员升级 PHP 到最新的版本。ownCloud 和 PHP 社区已经不再支持此版本的 PHP。",
-"PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." => "PHP Safe Mode 已经启用,ownCloud 需要 Safe Mode 停用以正常工作。",
-"PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "PHP Safe Mode 已经被废弃并且应当被停用。请联系服务器管理员在 php.ini 或您的服务器设置中停用 Safe Mode。",
-"Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." => "Magic Quotes 已经启用,ownCloud 需要 Magic Quotes 停用以正常工作。",
-"Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." => "Magic Quotes 已经被废弃并且应当被停用。请联系服务器管理员在 php.ini 或您的服务器设置中停用 Magic Quotes。",
-"PHP modules have been installed, but they are still listed as missing?" => "PHP 模块已经安装,但仍然显示未安装?",
-"Please ask your server administrator to restart the web server." => "请联系服务器管理员重启网页服务器。",
-"PostgreSQL >= 9 required" => "要求 PostgreSQL >= 9",
-"Please upgrade your database version" => "请升级您的数据库版本",
-"Error occurred while checking PostgreSQL version" => "检查 PostgreSQL 版本时发生了一个错误",
-"Please change the permissions to 0770 so that the directory cannot be listed by other users." => "请更改权限为 0770 以避免其他用户查看目录。",
-"Data directory (%s) is readable by other users" => "文件目录 (%s) 可以被其他用户读取",
-"Data directory (%s) is invalid" => "文件目录 (%s) 无效",
-"Please check that the data directory contains a file \".ocdata\" in its root." => "请确保文件根目录下包含有一个名为“.ocdata”的文件。"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/zh_HK.js b/lib/l10n/zh_HK.js
new file mode 100644
index 00000000000..7cef6525bc2
--- /dev/null
+++ b/lib/l10n/zh_HK.js
@@ -0,0 +1,20 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Help" : "幫助",
+ "Personal" : "個人",
+ "Settings" : "設定",
+ "Users" : "用戶",
+ "Admin" : "管理",
+ "seconds ago" : "秒前",
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
+ "today" : "今日",
+ "yesterday" : "昨日",
+ "_%n day go_::_%n days ago_" : ["%n 日前"],
+ "last month" : "前一月",
+ "_%n month ago_::_%n months ago_" : ["%n 月前"],
+ "last year" : "上年",
+ "years ago" : "年前"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/zh_HK.json b/lib/l10n/zh_HK.json
new file mode 100644
index 00000000000..856b288a6b9
--- /dev/null
+++ b/lib/l10n/zh_HK.json
@@ -0,0 +1,18 @@
+{ "translations": {
+ "Help" : "幫助",
+ "Personal" : "個人",
+ "Settings" : "設定",
+ "Users" : "用戶",
+ "Admin" : "管理",
+ "seconds ago" : "秒前",
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
+ "today" : "今日",
+ "yesterday" : "昨日",
+ "_%n day go_::_%n days ago_" : ["%n 日前"],
+ "last month" : "前一月",
+ "_%n month ago_::_%n months ago_" : ["%n 月前"],
+ "last year" : "上年",
+ "years ago" : "年前"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/zh_HK.php b/lib/l10n/zh_HK.php
deleted file mode 100644
index 75085e02ae3..00000000000
--- a/lib/l10n/zh_HK.php
+++ /dev/null
@@ -1,19 +0,0 @@
- "幫助",
-"Personal" => "個人",
-"Settings" => "設定",
-"Users" => "用戶",
-"Admin" => "管理",
-"seconds ago" => "秒前",
-"_%n minute ago_::_%n minutes ago_" => array("%n 分鐘前"),
-"_%n hour ago_::_%n hours ago_" => array("%n 小時前"),
-"today" => "今日",
-"yesterday" => "昨日",
-"_%n day go_::_%n days ago_" => array("%n 日前"),
-"last month" => "前一月",
-"_%n month ago_::_%n months ago_" => array("%n 月前"),
-"last year" => "上年",
-"years ago" => "年前"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js
new file mode 100644
index 00000000000..18fcfe06de9
--- /dev/null
+++ b/lib/l10n/zh_TW.js
@@ -0,0 +1,124 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "無法寫入 config 目錄!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "允許網頁伺服器寫入設定目錄通常可以解決這個問題",
+ "See %s" : "見 %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "%s允許網頁伺服器寫入設定目錄%s通常可以解決這個問題",
+ "Sample configuration detected" : "偵測到範本設定",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改",
+ "Help" : "說明",
+ "Personal" : "個人",
+ "Settings" : "設定",
+ "Users" : "使用者",
+ "Admin" : "管理",
+ "Recommended" : "建議",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "無法安裝應用程式 %s 因為它和此版本的 ownCloud 不相容。",
+ "No app name specified" : "沒有指定應用程式名稱",
+ "Unknown filetype" : "未知的檔案類型",
+ "Invalid image" : "無效的圖片",
+ "web services under your control" : "由您控制的網路服務",
+ "App directory already exists" : "應用程式目錄已經存在",
+ "Can't create app folder. Please fix permissions. %s" : "無法建立應用程式目錄,請檢查權限:%s",
+ "No source specified when installing app" : "沒有指定應用程式安裝來源",
+ "No href specified when installing app from http" : "從 http 安裝應用程式,找不到 href 屬性",
+ "No path specified when installing app from local file" : "從本地檔案安裝應用程式時沒有指定路徑",
+ "Archives of type %s are not supported" : "不支援 %s 格式的壓縮檔",
+ "Failed to open archive when installing app" : "安裝應用程式時無法開啓壓縮檔",
+ "App does not provide an info.xml file" : "應用程式沒有提供 info.xml 檔案",
+ "App can't be installed because of not allowed code in the App" : "無法安裝應用程式因為在當中找到危險的代碼",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "無法安裝應用程式因為它和此版本的 ownCloud 不相容。",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "無法安裝應用程式,因為它包含了 true 標籤,在未發行的應用程式當中這是不允許的",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "無法安裝應用程式,因為它在 info.xml/version 宣告的版本與 app store 當中記載的版本不同",
+ "Application is not enabled" : "應用程式未啟用",
+ "Authentication error" : "認證錯誤",
+ "Token expired. Please reload page." : "Token 過期,請重新整理頁面。",
+ "Unknown user" : "未知的使用者",
+ "%s enter the database username." : "%s 輸入資料庫使用者名稱。",
+ "%s enter the database name." : "%s 輸入資料庫名稱。",
+ "%s you may not use dots in the database name" : "%s 資料庫名稱不能包含小數點",
+ "MS SQL username and/or password not valid: %s" : "MS SQL 使用者和/或密碼無效:%s",
+ "You need to enter either an existing account or the administrator." : "您必須輸入一個現有的帳號或管理員帳號。",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB 使用者或密碼不正確",
+ "DB Error: \"%s\"" : "資料庫錯誤:\"%s\"",
+ "Offending command was: \"%s\"" : "有問題的指令是:\"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB 使用者 '%s'@'localhost' 已經存在",
+ "Drop this user from MySQL/MariaDB" : "自 MySQL/MariaDB 刪除這個使用者",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB 使用者 '%s'@'%%' 已經存在",
+ "Drop this user from MySQL/MariaDB." : "自 MySQL/MariaDB 刪除這個使用者",
+ "Oracle connection could not be established" : "無法建立 Oracle 資料庫連線",
+ "Oracle username and/or password not valid" : "Oracle 用戶名和/或密碼無效",
+ "Offending command was: \"%s\", name: %s, password: %s" : "有問題的指令是:\"%s\" ,使用者:\"%s\",密碼:\"%s\"",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL 用戶名和/或密碼無效",
+ "Set an admin username." : "設定管理員帳號。",
+ "Set an admin password." : "設定管理員密碼。",
+ "Can't create or write into the data directory %s" : "無法建立或寫入資料目錄 %s",
+ "%s shared »%s« with you" : "%s 與您分享了 %s",
+ "Sharing %s failed, because the file does not exist" : "分享 %s 失敗,因為檔案不存在",
+ "You are not allowed to share %s" : "你不被允許分享 %s",
+ "Sharing %s failed, because the user %s is the item owner" : "分享 %s 失敗,因為 %s 才是此項目的擁有者",
+ "Sharing %s failed, because the user %s does not exist" : "分享 %s 失敗,因為使用者 %s 不存在",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "分享 %s 失敗,使用者 %s 並不屬於該項目擁有者 %s 所隸屬的任何一個群組",
+ "Sharing %s failed, because this item is already shared with %s" : "分享 %s 失敗,因為此項目目前已經與 %s 分享",
+ "Sharing %s failed, because the group %s does not exist" : "分享 %s 失敗,因為群組 %s 不存在",
+ "Sharing %s failed, because %s is not a member of the group %s" : "分享 %s 失敗,因為 %s 不是群組 %s 的一員",
+ "You need to provide a password to create a public link, only protected links are allowed" : "您必須為公開連結設定一組密碼,我們只允許受密碼保護的連結",
+ "Sharing %s failed, because sharing with links is not allowed" : "分享 %s 失敗,因為目前不允許使用連結分享",
+ "Share type %s is not valid for %s" : "分享類型 %s 對於 %s 來說無效",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "為 %s 設定權限失敗,因為欲設定的權限超出開放給 %s 的範圍",
+ "Setting permissions for %s failed, because the item was not found" : "為 %s 設定權限失敗,因為找不到該項目",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "無法設定到期日,在分享之後,到期日不能設定為 %s 之後",
+ "Cannot set expiration date. Expiration date is in the past" : "無法設定過去的日期為到期日",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "分享後端 %s 必須實作 OCP\\Share_Backend interface",
+ "Sharing backend %s not found" : "找不到分享後端 %s",
+ "Sharing backend for %s not found" : "找不到 %s 的分享後端",
+ "Sharing %s failed, because the user %s is the original sharer" : "分享 %s 失敗,因為使用者 %s 即是原本的分享者",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "分享 %s 失敗,因為權限設定超出了授權給 %s 的範圍",
+ "Sharing %s failed, because resharing is not allowed" : "分享 %s 失敗,不允許重複分享",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "分享 %s 失敗,因為 %s 的分享後端找不到它的來源",
+ "Sharing %s failed, because the file could not be found in the file cache" : "分享 %s 失敗,因為在快取中找不到該檔案",
+ "Could not find category \"%s\"" : "找不到分類:\"%s\"",
+ "seconds ago" : "幾秒前",
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day go_::_%n days ago_" : ["%n 天前"],
+ "last month" : "上個月",
+ "_%n month ago_::_%n months ago_" : ["%n 個月前"],
+ "last year" : "去年",
+ "years ago" : "幾年前",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "使用者名稱當中只能包含下列字元:\"a-z\", \"A-Z\", \"0-9\", 和 \"_.@-\"",
+ "A valid username must be provided" : "必須提供一個有效的用戶名",
+ "A valid password must be provided" : "一定要提供一個有效的密碼",
+ "The username is already being used" : "這個使用者名稱已經有人使用了",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "沒有安裝資料庫驅動程式 (sqlite, mysql, 或 postgresql)",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "通常藉由%s開放網頁伺服器對根目錄的權限%s就可以修正權限問題",
+ "Cannot write into \"config\" directory" : "無法寫入 config 目錄",
+ "Cannot write into \"apps\" directory" : "無法寫入 apps 目錄",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "通常藉由%s開放網頁伺服器對 apps 目錄的權限%s或是在設定檔中關閉 appstore 就可以修正這個問題",
+ "Cannot create \"data\" directory (%s)" : "無法建立 data 目錄 (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "通常藉由開放網頁伺服器對根目錄的權限 就可以修正權限問題",
+ "Setting locale to %s failed" : "設定語系為 %s 失敗",
+ "Please install one of these locales on your system and restart your webserver." : "請在系統中安裝這些語系的其中一個,然後重啓網頁伺服器",
+ "Please ask your server administrator to install the module." : "請詢問系統管理員來安裝這些模組",
+ "PHP module %s not installed." : "未安裝 PHP 模組 %s",
+ "PHP %s or higher is required." : "需要 PHP %s 或更高版本",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "請詢問系統管理員將 PHP 升級至最新版,目前的 PHP 版本已經不再被 ownCloud 和 PHP 社群支援",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP 安全模式已經啟動,ownCloud 需要您將它關閉才能正常運作",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP 安全模式已經被棄用,並且在大多數狀況下無助於提升安全性,它應該被關閉。請詢問系統管理員將其在 php.ini 或網頁伺服器當中關閉。",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes 已經被啟用,ownCloud 需要您將其關閉以正常運作",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes 功能在大多數狀況下不會使用到,已經被上游棄用,因此它應該被停用。請詢問系統管理員將其在 php.ini 或網頁伺服器當中停用。",
+ "PHP modules have been installed, but they are still listed as missing?" : "你已經安裝了指定的 PHP 模組,可是還是顯示為找不到嗎?",
+ "Please ask your server administrator to restart the web server." : "請聯絡您的系統管理員重新啟動網頁伺服器",
+ "PostgreSQL >= 9 required" : "需要 PostgreSQL 版本 >= 9",
+ "Please upgrade your database version" : "請升級您的資料庫版本",
+ "Error occurred while checking PostgreSQL version" : "檢查 PostgreSQL 版本時發生錯誤",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "請確定您的 PostgreSQL 版本 >= 9,或是看看記錄檔是否有更詳細的訊息",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "請將該目錄權限設定為 0770 ,以免其他使用者讀取",
+ "Data directory (%s) is readable by other users" : "資料目錄 (%s) 可以被其他使用者讀取",
+ "Data directory (%s) is invalid" : "資料目錄 (%s) 無效",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "請確保資料目錄當中包含一個 .ocdata 的檔案",
+ "Could not obtain lock type %d on \"%s\"." : "無法取得鎖定:類型 %d ,檔案 %s"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json
new file mode 100644
index 00000000000..f6befb07d0a
--- /dev/null
+++ b/lib/l10n/zh_TW.json
@@ -0,0 +1,122 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "無法寫入 config 目錄!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "允許網頁伺服器寫入設定目錄通常可以解決這個問題",
+ "See %s" : "見 %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "%s允許網頁伺服器寫入設定目錄%s通常可以解決這個問題",
+ "Sample configuration detected" : "偵測到範本設定",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改",
+ "Help" : "說明",
+ "Personal" : "個人",
+ "Settings" : "設定",
+ "Users" : "使用者",
+ "Admin" : "管理",
+ "Recommended" : "建議",
+ "App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." : "無法安裝應用程式 %s 因為它和此版本的 ownCloud 不相容。",
+ "No app name specified" : "沒有指定應用程式名稱",
+ "Unknown filetype" : "未知的檔案類型",
+ "Invalid image" : "無效的圖片",
+ "web services under your control" : "由您控制的網路服務",
+ "App directory already exists" : "應用程式目錄已經存在",
+ "Can't create app folder. Please fix permissions. %s" : "無法建立應用程式目錄,請檢查權限:%s",
+ "No source specified when installing app" : "沒有指定應用程式安裝來源",
+ "No href specified when installing app from http" : "從 http 安裝應用程式,找不到 href 屬性",
+ "No path specified when installing app from local file" : "從本地檔案安裝應用程式時沒有指定路徑",
+ "Archives of type %s are not supported" : "不支援 %s 格式的壓縮檔",
+ "Failed to open archive when installing app" : "安裝應用程式時無法開啓壓縮檔",
+ "App does not provide an info.xml file" : "應用程式沒有提供 info.xml 檔案",
+ "App can't be installed because of not allowed code in the App" : "無法安裝應用程式因為在當中找到危險的代碼",
+ "App can't be installed because it is not compatible with this version of ownCloud" : "無法安裝應用程式因為它和此版本的 ownCloud 不相容。",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "無法安裝應用程式,因為它包含了 true 標籤,在未發行的應用程式當中這是不允許的",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "無法安裝應用程式,因為它在 info.xml/version 宣告的版本與 app store 當中記載的版本不同",
+ "Application is not enabled" : "應用程式未啟用",
+ "Authentication error" : "認證錯誤",
+ "Token expired. Please reload page." : "Token 過期,請重新整理頁面。",
+ "Unknown user" : "未知的使用者",
+ "%s enter the database username." : "%s 輸入資料庫使用者名稱。",
+ "%s enter the database name." : "%s 輸入資料庫名稱。",
+ "%s you may not use dots in the database name" : "%s 資料庫名稱不能包含小數點",
+ "MS SQL username and/or password not valid: %s" : "MS SQL 使用者和/或密碼無效:%s",
+ "You need to enter either an existing account or the administrator." : "您必須輸入一個現有的帳號或管理員帳號。",
+ "MySQL/MariaDB username and/or password not valid" : "MySQL/MariaDB 使用者或密碼不正確",
+ "DB Error: \"%s\"" : "資料庫錯誤:\"%s\"",
+ "Offending command was: \"%s\"" : "有問題的指令是:\"%s\"",
+ "MySQL/MariaDB user '%s'@'localhost' exists already." : "MySQL/MariaDB 使用者 '%s'@'localhost' 已經存在",
+ "Drop this user from MySQL/MariaDB" : "自 MySQL/MariaDB 刪除這個使用者",
+ "MySQL/MariaDB user '%s'@'%%' already exists" : "MySQL/MariaDB 使用者 '%s'@'%%' 已經存在",
+ "Drop this user from MySQL/MariaDB." : "自 MySQL/MariaDB 刪除這個使用者",
+ "Oracle connection could not be established" : "無法建立 Oracle 資料庫連線",
+ "Oracle username and/or password not valid" : "Oracle 用戶名和/或密碼無效",
+ "Offending command was: \"%s\", name: %s, password: %s" : "有問題的指令是:\"%s\" ,使用者:\"%s\",密碼:\"%s\"",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL 用戶名和/或密碼無效",
+ "Set an admin username." : "設定管理員帳號。",
+ "Set an admin password." : "設定管理員密碼。",
+ "Can't create or write into the data directory %s" : "無法建立或寫入資料目錄 %s",
+ "%s shared »%s« with you" : "%s 與您分享了 %s",
+ "Sharing %s failed, because the file does not exist" : "分享 %s 失敗,因為檔案不存在",
+ "You are not allowed to share %s" : "你不被允許分享 %s",
+ "Sharing %s failed, because the user %s is the item owner" : "分享 %s 失敗,因為 %s 才是此項目的擁有者",
+ "Sharing %s failed, because the user %s does not exist" : "分享 %s 失敗,因為使用者 %s 不存在",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "分享 %s 失敗,使用者 %s 並不屬於該項目擁有者 %s 所隸屬的任何一個群組",
+ "Sharing %s failed, because this item is already shared with %s" : "分享 %s 失敗,因為此項目目前已經與 %s 分享",
+ "Sharing %s failed, because the group %s does not exist" : "分享 %s 失敗,因為群組 %s 不存在",
+ "Sharing %s failed, because %s is not a member of the group %s" : "分享 %s 失敗,因為 %s 不是群組 %s 的一員",
+ "You need to provide a password to create a public link, only protected links are allowed" : "您必須為公開連結設定一組密碼,我們只允許受密碼保護的連結",
+ "Sharing %s failed, because sharing with links is not allowed" : "分享 %s 失敗,因為目前不允許使用連結分享",
+ "Share type %s is not valid for %s" : "分享類型 %s 對於 %s 來說無效",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "為 %s 設定權限失敗,因為欲設定的權限超出開放給 %s 的範圍",
+ "Setting permissions for %s failed, because the item was not found" : "為 %s 設定權限失敗,因為找不到該項目",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "無法設定到期日,在分享之後,到期日不能設定為 %s 之後",
+ "Cannot set expiration date. Expiration date is in the past" : "無法設定過去的日期為到期日",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "分享後端 %s 必須實作 OCP\\Share_Backend interface",
+ "Sharing backend %s not found" : "找不到分享後端 %s",
+ "Sharing backend for %s not found" : "找不到 %s 的分享後端",
+ "Sharing %s failed, because the user %s is the original sharer" : "分享 %s 失敗,因為使用者 %s 即是原本的分享者",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "分享 %s 失敗,因為權限設定超出了授權給 %s 的範圍",
+ "Sharing %s failed, because resharing is not allowed" : "分享 %s 失敗,不允許重複分享",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "分享 %s 失敗,因為 %s 的分享後端找不到它的來源",
+ "Sharing %s failed, because the file could not be found in the file cache" : "分享 %s 失敗,因為在快取中找不到該檔案",
+ "Could not find category \"%s\"" : "找不到分類:\"%s\"",
+ "seconds ago" : "幾秒前",
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分鐘前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小時前"],
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day go_::_%n days ago_" : ["%n 天前"],
+ "last month" : "上個月",
+ "_%n month ago_::_%n months ago_" : ["%n 個月前"],
+ "last year" : "去年",
+ "years ago" : "幾年前",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-\"" : "使用者名稱當中只能包含下列字元:\"a-z\", \"A-Z\", \"0-9\", 和 \"_.@-\"",
+ "A valid username must be provided" : "必須提供一個有效的用戶名",
+ "A valid password must be provided" : "一定要提供一個有效的密碼",
+ "The username is already being used" : "這個使用者名稱已經有人使用了",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "沒有安裝資料庫驅動程式 (sqlite, mysql, 或 postgresql)",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "通常藉由%s開放網頁伺服器對根目錄的權限%s就可以修正權限問題",
+ "Cannot write into \"config\" directory" : "無法寫入 config 目錄",
+ "Cannot write into \"apps\" directory" : "無法寫入 apps 目錄",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "通常藉由%s開放網頁伺服器對 apps 目錄的權限%s或是在設定檔中關閉 appstore 就可以修正這個問題",
+ "Cannot create \"data\" directory (%s)" : "無法建立 data 目錄 (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory ." : "通常藉由開放網頁伺服器對根目錄的權限 就可以修正權限問題",
+ "Setting locale to %s failed" : "設定語系為 %s 失敗",
+ "Please install one of these locales on your system and restart your webserver." : "請在系統中安裝這些語系的其中一個,然後重啓網頁伺服器",
+ "Please ask your server administrator to install the module." : "請詢問系統管理員來安裝這些模組",
+ "PHP module %s not installed." : "未安裝 PHP 模組 %s",
+ "PHP %s or higher is required." : "需要 PHP %s 或更高版本",
+ "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "請詢問系統管理員將 PHP 升級至最新版,目前的 PHP 版本已經不再被 ownCloud 和 PHP 社群支援",
+ "PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly." : "PHP 安全模式已經啟動,ownCloud 需要您將它關閉才能正常運作",
+ "PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "PHP 安全模式已經被棄用,並且在大多數狀況下無助於提升安全性,它應該被關閉。請詢問系統管理員將其在 php.ini 或網頁伺服器當中關閉。",
+ "Magic Quotes is enabled. ownCloud requires that it is disabled to work properly." : "Magic Quotes 已經被啟用,ownCloud 需要您將其關閉以正常運作",
+ "Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config." : "Magic Quotes 功能在大多數狀況下不會使用到,已經被上游棄用,因此它應該被停用。請詢問系統管理員將其在 php.ini 或網頁伺服器當中停用。",
+ "PHP modules have been installed, but they are still listed as missing?" : "你已經安裝了指定的 PHP 模組,可是還是顯示為找不到嗎?",
+ "Please ask your server administrator to restart the web server." : "請聯絡您的系統管理員重新啟動網頁伺服器",
+ "PostgreSQL >= 9 required" : "需要 PostgreSQL 版本 >= 9",
+ "Please upgrade your database version" : "請升級您的資料庫版本",
+ "Error occurred while checking PostgreSQL version" : "檢查 PostgreSQL 版本時發生錯誤",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "請確定您的 PostgreSQL 版本 >= 9,或是看看記錄檔是否有更詳細的訊息",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "請將該目錄權限設定為 0770 ,以免其他使用者讀取",
+ "Data directory (%s) is readable by other users" : "資料目錄 (%s) 可以被其他使用者讀取",
+ "Data directory (%s) is invalid" : "資料目錄 (%s) 無效",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "請確保資料目錄當中包含一個 .ocdata 的檔案",
+ "Could not obtain lock type %d on \"%s\"." : "無法取得鎖定:類型 %d ,檔案 %s"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/zh_TW.php b/lib/l10n/zh_TW.php
deleted file mode 100644
index c72bd00e2e7..00000000000
--- a/lib/l10n/zh_TW.php
+++ /dev/null
@@ -1,56 +0,0 @@
- "無法寫入 config 目錄!",
-"Help" => "說明",
-"Personal" => "個人",
-"Settings" => "設定",
-"Users" => "使用者",
-"Admin" => "管理",
-"No app name specified" => "沒有指定應用程式名稱",
-"Unknown filetype" => "未知的檔案類型",
-"Invalid image" => "無效的圖片",
-"web services under your control" => "由您控制的網路服務",
-"App directory already exists" => "應用程式目錄已經存在",
-"Can't create app folder. Please fix permissions. %s" => "無法建立應用程式目錄,請檢查權限:%s",
-"No source specified when installing app" => "沒有指定應用程式安裝來源",
-"No href specified when installing app from http" => "從 http 安裝應用程式,找不到 href 屬性",
-"No path specified when installing app from local file" => "從本地檔案安裝應用程式時沒有指定路徑",
-"Archives of type %s are not supported" => "不支援 %s 格式的壓縮檔",
-"Failed to open archive when installing app" => "安裝應用程式時無法開啓壓縮檔",
-"App does not provide an info.xml file" => "應用程式沒有提供 info.xml 檔案",
-"App can't be installed because of not allowed code in the App" => "無法安裝應用程式因為在當中找到危險的代碼",
-"App can't be installed because it is not compatible with this version of ownCloud" => "無法安裝應用程式因為它和此版本的 ownCloud 不相容。",
-"App can't be installed because it contains the true tag which is not allowed for non shipped apps" => "無法安裝應用程式,因為它包含了 true 標籤,在未發行的應用程式當中這是不允許的",
-"App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" => "無法安裝應用程式,因為它在 info.xml/version 宣告的版本與 app store 當中記載的版本不同",
-"Application is not enabled" => "應用程式未啟用",
-"Authentication error" => "認證錯誤",
-"Token expired. Please reload page." => "Token 過期,請重新整理頁面。",
-"%s enter the database username." => "%s 輸入資料庫使用者名稱。",
-"%s enter the database name." => "%s 輸入資料庫名稱。",
-"%s you may not use dots in the database name" => "%s 資料庫名稱不能包含小數點",
-"MS SQL username and/or password not valid: %s" => "MS SQL 使用者和/或密碼無效:%s",
-"You need to enter either an existing account or the administrator." => "您必須輸入一個現有的帳號或管理員帳號。",
-"DB Error: \"%s\"" => "資料庫錯誤:\"%s\"",
-"Offending command was: \"%s\"" => "有問題的指令是:\"%s\"",
-"Oracle connection could not be established" => "無法建立 Oracle 資料庫連線",
-"Oracle username and/or password not valid" => "Oracle 用戶名和/或密碼無效",
-"Offending command was: \"%s\", name: %s, password: %s" => "有問題的指令是:\"%s\" ,使用者:\"%s\",密碼:\"%s\"",
-"PostgreSQL username and/or password not valid" => "PostgreSQL 用戶名和/或密碼無效",
-"Set an admin username." => "設定管理員帳號。",
-"Set an admin password." => "設定管理員密碼。",
-"%s shared »%s« with you" => "%s 與您分享了 %s",
-"Could not find category \"%s\"" => "找不到分類:\"%s\"",
-"seconds ago" => "幾秒前",
-"_%n minute ago_::_%n minutes ago_" => array("%n 分鐘前"),
-"_%n hour ago_::_%n hours ago_" => array("%n 小時前"),
-"today" => "今天",
-"yesterday" => "昨天",
-"_%n day go_::_%n days ago_" => array("%n 天前"),
-"last month" => "上個月",
-"_%n month ago_::_%n months ago_" => array("%n 個月前"),
-"last year" => "去年",
-"years ago" => "幾年前",
-"A valid username must be provided" => "必須提供一個有效的用戶名",
-"A valid password must be provided" => "一定要提供一個有效的密碼"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/private/activitymanager.php b/lib/private/activitymanager.php
old mode 100755
new mode 100644
index f31b121c8e8..e0ee7c1b055
--- a/lib/private/activitymanager.php
+++ b/lib/private/activitymanager.php
@@ -247,16 +247,28 @@ class ActivityManager implements IManager {
* @return array
*/
function getQueryForFilter($filter) {
+
+ $conditions = array();
+ $parameters = array();
+
foreach($this->extensions as $extension) {
$c = $extension();
if ($c instanceof IExtension) {
$result = $c->getQueryForFilter($filter);
if (is_array($result)) {
- return $result;
+ list($condition, $parameter) = $result;
+ if ($condition && is_array($parameter)) {
+ $conditions[] = $condition;
+ $parameters = array_merge($parameters, $parameter);
+ }
}
}
}
- return array(null, null);
+ if (empty($conditions)) {
+ return array(null, null);
+ }
+
+ return array(' and ((' . implode(') or (', $conditions) . '))', $parameters);
}
}
diff --git a/lib/private/allconfig.php b/lib/private/allconfig.php
index 721ec337ff8..7ebff7cf2db 100644
--- a/lib/private/allconfig.php
+++ b/lib/private/allconfig.php
@@ -43,6 +43,15 @@ class AllConfig implements \OCP\IConfig {
\OCP\Config::deleteSystemValue($key);
}
+ /**
+ * Get all keys stored for an app
+ *
+ * @param string $appName the appName that we stored the value under
+ * @return string[] the keys stored for the app
+ */
+ public function getAppKeys($appName) {
+ return \OC::$server->getAppConfig()->getKeys($appName);
+ }
/**
* Writes a new app wide value
diff --git a/lib/private/api.php b/lib/private/api.php
index f5576af2ad8..66b763fdc3e 100644
--- a/lib/private/api.php
+++ b/lib/private/api.php
@@ -132,7 +132,7 @@ class OC_API {
* @return array|\OC_OCS_Result
*/
public static function mergeResponses($responses) {
- // Sort into shipped and thirdparty
+ // Sort into shipped and third-party
$shipped = array(
'succeeded' => array(),
'failed' => array(),
@@ -162,7 +162,7 @@ class OC_API {
if(!empty($shipped['failed'])) {
// Which shipped response do we use if they all failed?
// They may have failed for different reasons (different status codes)
- // Which reponse code should we return?
+ // Which response code should we return?
// Maybe any that are not OC_API::RESPOND_SERVER_ERROR
// Merge failed responses if more than one
$data = array();
@@ -273,26 +273,32 @@ class OC_API {
// reuse existing login
$loggedIn = OC_User::isLoggedIn();
- $ocsApiRequest = isset($_SERVER['HTTP_OCS_APIREQUEST']) ? $_SERVER['HTTP_OCS_APIREQUEST'] === 'true' : false;
- if ($loggedIn === true && $ocsApiRequest) {
+ if ($loggedIn === true) {
+ $ocsApiRequest = isset($_SERVER['HTTP_OCS_APIREQUEST']) ? $_SERVER['HTTP_OCS_APIREQUEST'] === 'true' : false;
+ if ($ocsApiRequest) {
- // initialize the user's filesystem
- \OC_Util::setUpFS(\OC_User::getUser());
+ // initialize the user's filesystem
+ \OC_Util::setUpFS(\OC_User::getUser());
- return OC_User::getUser();
+ return OC_User::getUser();
+ }
+ return false;
}
- // basic auth
- $authUser = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
- $authPw = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
- $return = OC_User::login($authUser, $authPw);
- if ($return === true) {
- self::$logoutRequired = true;
+ // basic auth - because OC_User::login will create a new session we shall only try to login
+ // if user and pass are set
+ if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']) ) {
+ $authUser = $_SERVER['PHP_AUTH_USER'];
+ $authPw = $_SERVER['PHP_AUTH_PW'];
+ $return = OC_User::login($authUser, $authPw);
+ if ($return === true) {
+ self::$logoutRequired = true;
- // initialize the user's filesystem
- \OC_Util::setUpFS(\OC_User::getUser());
+ // initialize the user's filesystem
+ \OC_Util::setUpFS(\OC_User::getUser());
- return $authUser;
+ return $authUser;
+ }
}
return false;
diff --git a/lib/private/app.php b/lib/private/app.php
index 3eed9e3c443..8e36d43bfb1 100644
--- a/lib/private/app.php
+++ b/lib/private/app.php
@@ -89,13 +89,32 @@ class OC_App {
*/
public static function loadApp($app, $checkUpgrade = true) {
if (is_file(self::getAppPath($app) . '/appinfo/app.php')) {
+ \OC::$server->getEventLogger()->start('load_app_' . $app, 'Load app: ' . $app);
if ($checkUpgrade and self::shouldUpgrade($app)) {
throw new \OC\NeedsUpdateException();
}
- require_once $app . '/appinfo/app.php';
+ self::requireAppFile($app);
+ if (self::isType($app, array('authentication'))) {
+ // since authentication apps affect the "is app enabled for group" check,
+ // the enabled apps cache needs to be cleared to make sure that the
+ // next time getEnableApps() is called it will also include apps that were
+ // enabled for groups
+ self::$enabledAppsCache = array();
+ }
+ \OC::$server->getEventLogger()->end('load_app_' . $app);
}
}
+ /**
+ * Load app.php from the given app
+ *
+ * @param string $app app name
+ */
+ private static function requireAppFile($app) {
+ // encapsulated here to avoid variable scope conflicts
+ require_once $app . '/appinfo/app.php';
+ }
+
/**
* check if an app is of a specific type
*
@@ -616,55 +635,10 @@ class OC_App {
}
$file = self::getAppPath($appId) . '/appinfo/info.xml';
}
- $data = array();
- if (!file_exists($file)) {
- return null;
- }
- $content = @file_get_contents($file);
- if (!$content) {
- return null;
- }
- $xml = new SimpleXMLElement($content);
- $data['info'] = array();
- $data['remote'] = array();
- $data['public'] = array();
- foreach ($xml->children() as $child) {
- /**
- * @var $child SimpleXMLElement
- */
- if ($child->getName() == 'remote') {
- foreach ($child->children() as $remote) {
- /**
- * @var $remote SimpleXMLElement
- */
- $data['remote'][$remote->getName()] = (string)$remote;
- }
- } elseif ($child->getName() == 'public') {
- foreach ($child->children() as $public) {
- /**
- * @var $public SimpleXMLElement
- */
- $data['public'][$public->getName()] = (string)$public;
- }
- } elseif ($child->getName() == 'types') {
- $data['types'] = array();
- foreach ($child->children() as $type) {
- /**
- * @var $type SimpleXMLElement
- */
- $data['types'][] = $type->getName();
- }
- } elseif ($child->getName() == 'description') {
- $xml = (string)$child->asXML();
- $data[$child->getName()] = substr($xml, 13, -14); //script tags
- } elseif ($child->getName() == 'documentation') {
- foreach ($child as $subChild) {
- $data["documentation"][$subChild->getName()] = (string)$subChild;
- }
- } else {
- $data[$child->getName()] = (string)$child;
- }
- }
+
+ $parser = new \OC\App\InfoParser(\OC::$server->getHTTPHelper(), \OC::$server->getURLGenerator());
+ $data = $parser->parse($file);
+
self::$appInfo[$appId] = $data;
return $data;
@@ -800,7 +774,7 @@ class OC_App {
* Lists all apps, this is used in apps.php
* @return array
*/
- public static function listAllApps() {
+ public static function listAllApps($onlyLocal = false) {
$installedApps = OC_App::getAllApps();
//TODO which apps do we want to blacklist and how do we integrate
@@ -808,6 +782,7 @@ class OC_App {
$blacklist = array('files'); //we don't want to show configuration for these
$appList = array();
+ $l = \OC::$server->getL10N('core');
foreach ($installedApps as $app) {
if (array_search($app, $blacklist) === false) {
@@ -834,24 +809,36 @@ class OC_App {
if(isset($info['shipped']) and ($info['shipped'] == 'true')) {
$info['internal'] = true;
- $info['internallabel'] = 'Internal App';
- $info['internalclass'] = '';
+ $info['internallabel'] = $l->t('Recommended');
+ $info['internalclass'] = 'recommendedapp';
$info['removable'] = false;
} else {
$info['internal'] = false;
- $info['internallabel'] = '3rd Party';
- $info['internalclass'] = 'externalapp';
$info['removable'] = true;
}
$info['update'] = OC_Installer::isUpdateAvailable($app);
- $info['preview'] = OC_Helper::imagePath('settings', 'trans.png');
+ $appIcon = self::getAppPath($app) . '/img/' . $app.'.svg';
+ if (file_exists($appIcon)) {
+ $info['preview'] = OC_Helper::imagePath($app, $app.'.svg');
+ $info['previewAsIcon'] = true;
+ } else {
+ $appIcon = self::getAppPath($app) . '/img/app.svg';
+ if (file_exists($appIcon)) {
+ $info['preview'] = OC_Helper::imagePath($app, 'app.svg');
+ $info['previewAsIcon'] = true;
+ }
+ }
$info['version'] = OC_App::getAppVersion($app);
$appList[] = $info;
}
}
- $remoteApps = OC_App::getAppstoreApps();
+ if ($onlyLocal) {
+ $remoteApps = array();
+ } else {
+ $remoteApps = OC_App::getAppstoreApps();
+ }
if ($remoteApps) {
// Remove duplicates
foreach ($appList as $app) {
@@ -883,9 +870,11 @@ class OC_App {
}
// priority 3: recommended
- if ($a['internalclass'] != $b['internalclass']) {
- $aTemp = ($a['internalclass'] == 'recommendedapp' ? 1 : 0);
- $bTemp = ($b['internalclass'] == 'recommendedapp' ? 1 : 0);
+ $internalClassA = isset($a['internalclass']) ? $a['internalclass'] : '';
+ $internalClassB = isset($b['internalclass']) ? $b['internalclass'] : '';
+ if ($internalClassA != $internalClassB) {
+ $aTemp = ($internalClassA == 'recommendedapp' ? 1 : 0);
+ $bTemp = ($internalClassB == 'recommendedapp' ? 1 : 0);
return ($bTemp - $aTemp);
}
@@ -902,63 +891,40 @@ class OC_App {
* @return array, multi-dimensional array of apps.
* Keys: id, name, type, typename, personid, license, detailpage, preview, changed, description
*/
- public static function getAppstoreApps($filter = 'approved') {
- $categoryNames = OC_OCSClient::getCategories();
- if (is_array($categoryNames)) {
- // Check that categories of apps were retrieved correctly
- if (!$categories = array_keys($categoryNames)) {
+ public static function getAppstoreApps($filter = 'approved', $category = null) {
+ $categories = array($category);
+ if (is_null($category)) {
+ $categoryNames = OC_OCSClient::getCategories();
+ if (is_array($categoryNames)) {
+ // Check that categories of apps were retrieved correctly
+ if (!$categories = array_keys($categoryNames)) {
+ return false;
+ }
+ } else {
return false;
}
+ }
- $page = 0;
- $remoteApps = OC_OCSClient::getApplications($categories, $page, $filter);
- $app1 = array();
- $i = 0;
- foreach ($remoteApps as $app) {
- $app1[$i] = $app;
- $app1[$i]['author'] = $app['personid'];
- $app1[$i]['ocs_id'] = $app['id'];
- $app1[$i]['internal'] = $app1[$i]['active'] = 0;
- $app1[$i]['update'] = false;
- $app1[$i]['groups'] = false;
- $app1[$i]['removable'] = false;
- if ($app['label'] == 'recommended') {
- $app1[$i]['internallabel'] = 'Recommended';
- $app1[$i]['internalclass'] = 'recommendedapp';
- } else {
- $app1[$i]['internallabel'] = '3rd Party';
- $app1[$i]['internalclass'] = 'externalapp';
- }
-
-
- // rating img
- if ($app['score'] < 5) {
- $img = OC_Helper::imagePath( "core", "rating/s1.png" );
- } elseif ($app['score'] < 15) {
- $img = OC_Helper::imagePath( "core", "rating/s2.png" );
- } elseif($app['score'] < 25) {
- $img = OC_Helper::imagePath( "core", "rating/s3.png" );
- } elseif($app['score'] < 35) {
- $img = OC_Helper::imagePath( "core", "rating/s4.png" );
- } elseif($app['score'] < 45) {
- $img = OC_Helper::imagePath( "core", "rating/s5.png" );
- } elseif($app['score'] < 55) {
- $img = OC_Helper::imagePath( "core", "rating/s6.png" );
- } elseif($app['score'] < 65) {
- $img = OC_Helper::imagePath( "core", "rating/s7.png" );
- } elseif($app['score'] < 75) {
- $img = OC_Helper::imagePath( "core", "rating/s8.png" );
- } elseif($app['score'] < 85) {
- $img = OC_Helper::imagePath( "core", "rating/s9.png" );
- } elseif($app['score'] < 95) {
- $img = OC_Helper::imagePath( "core", "rating/s10.png" );
- } elseif($app['score'] < 100) {
- $img = OC_Helper::imagePath( "core", "rating/s11.png" );
- }
-
- $app1[$i]['score'] = ' Score: ' . $app['score'] . '%';
- $i++;
+ $page = 0;
+ $remoteApps = OC_OCSClient::getApplications($categories, $page, $filter);
+ $app1 = array();
+ $i = 0;
+ $l = \OC::$server->getL10N('core');
+ foreach ($remoteApps as $app) {
+ $app1[$i] = $app;
+ $app1[$i]['author'] = $app['personid'];
+ $app1[$i]['ocs_id'] = $app['id'];
+ $app1[$i]['internal'] = $app1[$i]['active'] = 0;
+ $app1[$i]['update'] = false;
+ $app1[$i]['groups'] = false;
+ $app1[$i]['score'] = $app['score'];
+ $app1[$i]['removable'] = false;
+ if ($app['label'] == 'recommended') {
+ $app1[$i]['internallabel'] = $l->t('Recommended');
+ $app1[$i]['internalclass'] = 'recommendedapp';
}
+
+ $i++;
}
if (empty($app1)) {
@@ -971,7 +937,7 @@ class OC_App {
public static function shouldUpgrade($app) {
$versions = self::getAppVersions();
$currentVersion = OC_App::getAppVersion($app);
- if ($currentVersion) {
+ if ($currentVersion && isset($versions[$app])) {
$installedVersion = $versions[$app];
if (version_compare($currentVersion, $installedVersion, '>')) {
return true;
@@ -1094,13 +1060,17 @@ class OC_App {
return $versions; // when function is used besides in checkUpgrade
}
$versions = array();
- $query = OC_DB::prepare('SELECT `appid`, `configvalue` FROM `*PREFIX*appconfig`'
- . ' WHERE `configkey` = \'installed_version\'');
- $result = $query->execute();
- while ($row = $result->fetchRow()) {
- $versions[$row['appid']] = $row['configvalue'];
+ try {
+ $query = OC_DB::prepare('SELECT `appid`, `configvalue` FROM `*PREFIX*appconfig`'
+ . ' WHERE `configkey` = \'installed_version\'');
+ $result = $query->execute();
+ while ($row = $result->fetchRow()) {
+ $versions[$row['appid']] = $row['configvalue'];
+ }
+ return $versions;
+ } catch (\Exception $e) {
+ return array();
}
- return $versions;
}
@@ -1157,10 +1127,6 @@ class OC_App {
* @return bool
*/
public static function updateApp($appId) {
- if (file_exists(self::getAppPath($appId) . '/appinfo/preupdate.php')) {
- self::loadApp($appId, false);
- include self::getAppPath($appId) . '/appinfo/preupdate.php';
- }
if (file_exists(self::getAppPath($appId) . '/appinfo/database.xml')) {
OC_DB::updateDbFromStructure(self::getAppPath($appId) . '/appinfo/database.xml');
}
diff --git a/lib/private/app/appmanager.php b/lib/private/app/appmanager.php
new file mode 100644
index 00000000000..6d9aa0bfe37
--- /dev/null
+++ b/lib/private/app/appmanager.php
@@ -0,0 +1,138 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\App;
+
+use OCP\App\IAppManager;
+use OCP\IAppConfig;
+use OCP\IGroupManager;
+use OCP\IUserSession;
+
+class AppManager implements IAppManager {
+ /**
+ * @var \OCP\IUserSession
+ */
+ private $userSession;
+
+ /**
+ * @var \OCP\IAppConfig
+ */
+ private $appConfig;
+
+ /**
+ * @var \OCP\IGroupManager
+ */
+ private $groupManager;
+
+ /**
+ * @var string[] $appId => $enabled
+ */
+ private $installedAppsCache;
+
+ /**
+ * @param \OCP\IUserSession $userSession
+ * @param \OCP\IAppConfig $appConfig
+ * @param \OCP\IGroupManager $groupManager
+ */
+ public function __construct(IUserSession $userSession, IAppConfig $appConfig, IGroupManager $groupManager) {
+ $this->userSession = $userSession;
+ $this->appConfig = $appConfig;
+ $this->groupManager = $groupManager;
+ }
+
+ /**
+ * @return string[] $appId => $enabled
+ */
+ private function getInstalledApps() {
+ if (!$this->installedAppsCache) {
+ $values = $this->appConfig->getValues(false, 'enabled');
+ $this->installedAppsCache = array_filter($values, function ($value) {
+ return $value !== 'no';
+ });
+ ksort($this->installedAppsCache);
+ }
+ return $this->installedAppsCache;
+ }
+
+ /**
+ * Check if an app is enabled for user
+ *
+ * @param string $appId
+ * @param \OCP\IUser $user (optional) if not defined, the currently logged in user will be used
+ * @return bool
+ */
+ public function isEnabledForUser($appId, $user = null) {
+ if (is_null($user)) {
+ $user = $this->userSession->getUser();
+ }
+ $installedApps = $this->getInstalledApps();
+ if (isset($installedApps[$appId])) {
+ $enabled = $installedApps[$appId];
+ if ($enabled === 'yes') {
+ return true;
+ } elseif (is_null($user)) {
+ return false;
+ } else {
+ $groupIds = json_decode($enabled);
+ $userGroups = $this->groupManager->getUserGroupIds($user);
+ foreach ($userGroups as $groupId) {
+ if (array_search($groupId, $groupIds) !== false) {
+ return true;
+ }
+ }
+ return false;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Check if an app is installed in the instance
+ *
+ * @param string $appId
+ * @return bool
+ */
+ public function isInstalled($appId) {
+ $installedApps = $this->getInstalledApps();
+ return isset($installedApps[$appId]);
+ }
+
+ /**
+ * Enable an app for every user
+ *
+ * @param string $appId
+ */
+ public function enableApp($appId) {
+ $this->appConfig->setValue($appId, 'enabled', 'yes');
+ }
+
+ /**
+ * Enable an app only for specific groups
+ *
+ * @param string $appId
+ * @param \OCP\IGroup[] $groups
+ */
+ public function enableAppForGroups($appId, $groups) {
+ $groupIds = array_map(function ($group) {
+ /** @var \OCP\IGroup $group */
+ return $group->getGID();
+ }, $groups);
+ $this->appConfig->setValue($appId, 'enabled', json_encode($groupIds));
+ }
+
+ /**
+ * Disable an app for every user
+ *
+ * @param string $appId
+ */
+ public function disableApp($appId) {
+ $this->appConfig->setValue($appId, 'enabled', 'no');
+ }
+}
diff --git a/lib/private/app/infoparser.php b/lib/private/app/infoparser.php
new file mode 100644
index 00000000000..b4bdbea5c04
--- /dev/null
+++ b/lib/private/app/infoparser.php
@@ -0,0 +1,84 @@
+httpHelper = $httpHelper;
+ $this->urlGenerator = $urlGenerator;
+ }
+
+ /**
+ * @param string $file the xml file to be loaded
+ * @return null|array where null is an indicator for an error
+ */
+ public function parse($file) {
+ if (!file_exists($file)) {
+ return null;
+ }
+
+ $loadEntities = libxml_disable_entity_loader(false);
+ $xml = @simplexml_load_file($file);
+ libxml_disable_entity_loader($loadEntities);
+ if ($xml == false) {
+ return null;
+ }
+ $array = json_decode(json_encode((array)$xml), TRUE);
+ if (is_null($array)) {
+ return null;
+ }
+ if (!array_key_exists('info', $array)) {
+ $array['info'] = array();
+ }
+ if (!array_key_exists('remote', $array)) {
+ $array['remote'] = array();
+ }
+ if (!array_key_exists('public', $array)) {
+ $array['public'] = array();
+ }
+
+ if (array_key_exists('documentation', $array)) {
+ foreach ($array['documentation'] as $key => $url) {
+ // If it is not an absolute URL we assume it is a key
+ // i.e. admin-ldap will get converted to go.php?to=admin-ldap
+ if (!$this->httpHelper->isHTTPURL($url)) {
+ $url = $this->urlGenerator->linkToDocs($url);
+ }
+
+ $array['documentation'][$key] = $url;
+ }
+ }
+ if (array_key_exists('types', $array)) {
+ foreach ($array['types'] as $type => $v) {
+ unset($array['types'][$type]);
+ $array['types'][] = $type;
+ }
+ }
+
+ return $array;
+ }
+}
diff --git a/lib/private/appframework/app.php b/lib/private/appframework/app.php
index baf52d02054..f56ba4af870 100644
--- a/lib/private/appframework/app.php
+++ b/lib/private/appframework/app.php
@@ -53,7 +53,7 @@ class App {
// initialize the dispatcher and run all the middleware before the controller
$dispatcher = $container['Dispatcher'];
- list($httpHeaders, $responseHeaders, $output) =
+ list($httpHeaders, $responseHeaders, $responseCookies, $output) =
$dispatcher->dispatch($controller, $methodName);
if(!is_null($httpHeaders)) {
@@ -64,6 +64,14 @@ class App {
header($name . ': ' . $value);
}
+ foreach($responseCookies as $name => $value) {
+ $expireDate = null;
+ if($value['expireDate'] instanceof \DateTime) {
+ $expireDate = $value['expireDate']->getTimestamp();
+ }
+ setcookie($name, $value['value'], $expireDate, $container->getServer()->getWebRoot(), null, $container->getServer()->getConfig()->getSystemValue('forcessl', false), true);
+ }
+
if(!is_null($output)) {
header('Content-Length: ' . strlen($output));
print($output);
diff --git a/lib/private/appframework/core/api.php b/lib/private/appframework/core/api.php
index 279f4bf97f7..f68c677d106 100644
--- a/lib/private/appframework/core/api.php
+++ b/lib/private/appframework/core/api.php
@@ -49,6 +49,7 @@ class API implements IApi{
/**
* Gets the userid of the current user
* @return string the user id of the current user
+ * @deprecated Use \OC::$server->getUserSession()->getUser()->getUID()
*/
public function getUserId(){
return \OCP\User::getUser();
@@ -112,6 +113,7 @@ class API implements IApi{
/**
* used to return and open a new event source
* @return \OCP\IEventSource a new open EventSource class
+ * @deprecated Use \OC::$server->createEventSource();
*/
public function openEventSource(){
return \OC::$server->createEventSource();
@@ -159,6 +161,7 @@ class API implements IApi{
* @param string $className full namespace and class name of the class
* @param string $methodName the name of the static method that should be
* called
+ * @deprecated Use \OC::$server->getJobList()->add();
*/
public function addRegularTask($className, $methodName) {
\OCP\Backgroundjob::addRegularTask($className, $methodName);
diff --git a/lib/private/appframework/db/db.php b/lib/private/appframework/db/db.php
index fc77a38f814..fb30505d05a 100644
--- a/lib/private/appframework/db/db.php
+++ b/lib/private/appframework/db/db.php
@@ -30,28 +30,42 @@ use \OCP\IDb;
* Small Facade for being able to inject the database connection for tests
*/
class Db implements IDb {
+ /**
+ * @var \OCP\IDBConnection
+ */
+ protected $connection;
+
+ /**
+ * @param \OCP\IDBConnection $connection
+ */
+ public function __construct($connection) {
+ $this->connection = $connection;
+ }
+
+ /**
+ * Used to abstract the owncloud database access away
+ *
+ * @param string $sql the sql query with ? placeholder for params
+ * @param int $limit the maximum number of rows
+ * @param int $offset from which row we want to start
+ * @return \OC_DB_StatementWrapper prepared SQL query
+ */
+ public function prepareQuery($sql, $limit = null, $offset = null) {
+ $isManipulation = \OC_DB::isManipulation($sql);
+ $statement = $this->connection->prepare($sql, $limit, $offset);
+ return new \OC_DB_StatementWrapper($statement, $isManipulation);
+ }
- /**
- * Used to abstract the owncloud database access away
- * @param string $sql the sql query with ? placeholder for params
- * @param int $limit the maximum number of rows
- * @param int $offset from which row we want to start
- * @return \OC_DB_StatementWrapper prepared SQL query
- */
- public function prepareQuery($sql, $limit=null, $offset=null){
- return \OCP\DB::prepare($sql, $limit, $offset);
- }
-
-
- /**
- * Used to get the id of the just inserted element
- * @param string $tableName the name of the table where we inserted the item
- * @return int the id of the inserted element
- */
- public function getInsertId($tableName){
- return \OCP\DB::insertid($tableName);
- }
+ /**
+ * Used to get the id of the just inserted element
+ *
+ * @param string $tableName the name of the table where we inserted the item
+ * @return int the id of the inserted element
+ */
+ public function getInsertId($tableName) {
+ return $this->connection->lastInsertId($tableName);
+ }
}
diff --git a/lib/private/appframework/dependencyinjection/dicontainer.php b/lib/private/appframework/dependencyinjection/dicontainer.php
index e7efa3fa219..98525ed3202 100644
--- a/lib/private/appframework/dependencyinjection/dicontainer.php
+++ b/lib/private/appframework/dependencyinjection/dicontainer.php
@@ -31,6 +31,7 @@ use OC\AppFramework\Core\API;
use OC\AppFramework\Middleware\MiddlewareDispatcher;
use OC\AppFramework\Middleware\Security\SecurityMiddleware;
use OC\AppFramework\Middleware\Security\CORSMiddleware;
+use OC\AppFramework\Middleware\SessionMiddleware;
use OC\AppFramework\Utility\SimpleContainer;
use OC\AppFramework\Utility\TimeFactory;
use OC\AppFramework\Utility\ControllerMethodReflector;
@@ -58,22 +59,23 @@ class DIContainer extends SimpleContainer implements IAppContainer{
$this->registerParameter('ServerContainer', \OC::$server);
- $this['API'] = $this->share(function($c){
+ $this->registerService('API', function($c){
return new API($c['AppName']);
});
/**
* Http
*/
- $this['Request'] = $this->share(function($c) {
+ $this->registerService('Request', function($c) {
/** @var $c SimpleContainer */
- /** @var $server IServerContainer */
+ /** @var $server SimpleContainer */
$server = $c->query('ServerContainer');
$server->registerParameter('urlParams', $c['urlParams']);
+ /** @var $server IServerContainer */
return $server->getRequest();
});
- $this['Protocol'] = $this->share(function($c){
+ $this->registerService('Protocol', function($c){
if(isset($_SERVER['SERVER_PROTOCOL'])) {
return new Http($_SERVER, $_SERVER['SERVER_PROTOCOL']);
} else {
@@ -81,7 +83,7 @@ class DIContainer extends SimpleContainer implements IAppContainer{
}
});
- $this['Dispatcher'] = $this->share(function($c) {
+ $this->registerService('Dispatcher', function($c) {
return new Dispatcher(
$c['Protocol'],
$c['MiddlewareDispatcher'],
@@ -95,7 +97,7 @@ class DIContainer extends SimpleContainer implements IAppContainer{
* Middleware
*/
$app = $this;
- $this['SecurityMiddleware'] = $this->share(function($c) use ($app){
+ $this->registerService('SecurityMiddleware', function($c) use ($app){
return new SecurityMiddleware(
$c['Request'],
$c['ControllerMethodReflector'],
@@ -108,15 +110,23 @@ class DIContainer extends SimpleContainer implements IAppContainer{
);
});
- $this['CORSMiddleware'] = $this->share(function($c) {
+ $this->registerService('CORSMiddleware', function($c) {
return new CORSMiddleware(
$c['Request'],
$c['ControllerMethodReflector']
);
});
+ $this->registerService('SessionMiddleware', function($c) use ($app) {
+ return new SessionMiddleware(
+ $c['Request'],
+ $c['ControllerMethodReflector'],
+ $app->getServer()->getSession()
+ );
+ });
+
$middleWares = &$this->middleWares;
- $this['MiddlewareDispatcher'] = $this->share(function($c) use (&$middleWares) {
+ $this->registerService('MiddlewareDispatcher', function($c) use (&$middleWares) {
$dispatcher = new MiddlewareDispatcher();
$dispatcher->registerMiddleware($c['SecurityMiddleware']);
$dispatcher->registerMiddleware($c['CORSMiddleware']);
@@ -125,6 +135,7 @@ class DIContainer extends SimpleContainer implements IAppContainer{
$dispatcher->registerMiddleware($c[$middleWare]);
}
+ $dispatcher->registerMiddleware($c['SessionMiddleware']);
return $dispatcher;
});
@@ -132,11 +143,11 @@ class DIContainer extends SimpleContainer implements IAppContainer{
/**
* Utilities
*/
- $this['TimeFactory'] = $this->share(function($c){
+ $this->registerService('TimeFactory', function($c){
return new TimeFactory();
});
- $this['ControllerMethodReflector'] = $this->share(function($c) {
+ $this->registerService('ControllerMethodReflector', function($c) {
return new ControllerMethodReflector();
});
diff --git a/lib/private/appframework/http/dispatcher.php b/lib/private/appframework/http/dispatcher.php
index 7f2717951a5..24540ef3c94 100644
--- a/lib/private/appframework/http/dispatcher.php
+++ b/lib/private/appframework/http/dispatcher.php
@@ -30,6 +30,7 @@ use \OC\AppFramework\Utility\ControllerMethodReflector;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\Response;
+use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;
@@ -47,7 +48,7 @@ class Dispatcher {
* @param Http $protocol the http protocol with contains all status headers
* @param MiddlewareDispatcher $middlewareDispatcher the dispatcher which
* runs the middleware
- * @param ControllerMethodReflector the reflector that is used to inject
+ * @param ControllerMethodReflector $reflector the reflector that is used to inject
* the arguments for the controller
* @param IRequest $request the incoming request
*/
@@ -70,6 +71,7 @@ class Dispatcher {
* @return array $array[0] contains a string with the http main header,
* $array[1] contains headers in the form: $key => value, $array[2] contains
* the response output
+ * @throws \Exception
*/
public function dispatch(Controller $controller, $methodName) {
$out = array(null, array(), null);
@@ -101,13 +103,14 @@ class Dispatcher {
// get the output which should be printed and run the after output
// middleware to modify the response
$output = $response->render();
- $out[2] = $this->middlewareDispatcher->beforeOutput(
+ $out[3] = $this->middlewareDispatcher->beforeOutput(
$controller, $methodName, $output);
// depending on the cache object the headers need to be changed
$out[0] = $this->protocol->getStatusHeader($response->getStatus(),
$response->getLastModified(), $response->getETag());
- $out[1] = $response->getHeaders();
+ $out[1] = array_merge($response->getHeaders());
+ $out[2] = $response->getCookies();
return $out;
}
@@ -154,8 +157,8 @@ class Dispatcher {
$response = call_user_func_array(array($controller, $methodName), $arguments);
- // format response if not of type response
- if(!($response instanceof Response)) {
+ // format response
+ if($response instanceof DataResponse || !($response instanceof Response)) {
// get format from the url format or request format parameter
$format = $this->request->getParam('format');
diff --git a/lib/private/appframework/middleware/middlewaredispatcher.php b/lib/private/appframework/middleware/middlewaredispatcher.php
index dcb63a8e552..41eef4aedb9 100644
--- a/lib/private/appframework/middleware/middlewaredispatcher.php
+++ b/lib/private/appframework/middleware/middlewaredispatcher.php
@@ -82,8 +82,9 @@ class MiddlewareDispatcher {
*/
public function beforeController(Controller $controller, $methodName){
// we need to count so that we know which middlewares we have to ask in
- // case theres an exception
- for($i=0; $imiddlewares); $i++){
+ // case there is an exception
+ $middlewareCount = count($this->middlewares);
+ for($i = 0; $i < $middlewareCount; $i++){
$this->middlewareCounter++;
$middleware = $this->middlewares[$i];
$middleware->beforeController($controller, $methodName);
diff --git a/lib/private/appframework/middleware/security/securitymiddleware.php b/lib/private/appframework/middleware/security/securitymiddleware.php
index 948a43ce0f4..8c5ca5891ad 100644
--- a/lib/private/appframework/middleware/security/securitymiddleware.php
+++ b/lib/private/appframework/middleware/security/securitymiddleware.php
@@ -34,6 +34,8 @@ use OCP\INavigationManager;
use OCP\IURLGenerator;
use OCP\IRequest;
use OCP\ILogger;
+use OCP\AppFramework\Controller;
+use OCP\Util;
/**
@@ -110,12 +112,24 @@ class SecurityMiddleware extends Middleware {
}
}
+ // CSRF check - also registers the CSRF token since the session may be closed later
+ Util::callRegister();
if(!$this->reflector->hasAnnotation('NoCSRFRequired')) {
if(!$this->request->passesCSRFCheck()) {
throw new SecurityException('CSRF check failed', Http::STATUS_PRECONDITION_FAILED);
}
}
+ /**
+ * FIXME: Use DI once available
+ * Checks if app is enabled (also inclues a check whether user is allowed to access the resource)
+ * The getAppPath() check is here since components such as settings also use the AppFramework and
+ * therefore won't pass this check.
+ */
+ if(\OC_App::getAppPath($this->appName) !== false && !\OC_App::isEnabled($this->appName)) {
+ throw new SecurityException('App is not enabled', Http::STATUS_PRECONDITION_FAILED);
+ }
+
}
diff --git a/lib/private/appframework/middleware/sessionmiddleware.php b/lib/private/appframework/middleware/sessionmiddleware.php
new file mode 100644
index 00000000000..d50880f3739
--- /dev/null
+++ b/lib/private/appframework/middleware/sessionmiddleware.php
@@ -0,0 +1,70 @@
+
+ * @copyright Thomas Müller 2014
+ */
+
+namespace OC\AppFramework\Middleware;
+
+use OC\AppFramework\Utility\ControllerMethodReflector;
+use OCP\IRequest;
+use OCP\AppFramework\Http\Response;
+use OCP\AppFramework\Middleware;
+use OCP\ISession;
+
+class SessionMiddleware extends Middleware {
+
+ /**
+ * @var IRequest
+ */
+ private $request;
+
+ /**
+ * @var ControllerMethodReflector
+ */
+ private $reflector;
+
+ /**
+ * @param IRequest $request
+ * @param ControllerMethodReflector $reflector
+ */
+ public function __construct(IRequest $request,
+ ControllerMethodReflector $reflector,
+ ISession $session
+) {
+ $this->request = $request;
+ $this->reflector = $reflector;
+ $this->session = $session;
+ }
+
+ /**
+ * @param \OCP\AppFramework\Controller $controller
+ * @param string $methodName
+ */
+ public function beforeController($controller, $methodName) {
+ $useSession = $this->reflector->hasAnnotation('UseSession');
+ if (!$useSession) {
+ $this->session->close();
+ }
+ }
+
+ /**
+ * @param \OCP\AppFramework\Controller $controller
+ * @param string $methodName
+ * @param Response $response
+ * @return Response
+ */
+ public function afterController($controller, $methodName, Response $response){
+ $useSession = $this->reflector->hasAnnotation('UseSession');
+ if ($useSession) {
+ $this->session->close();
+ }
+ return $response;
+ }
+
+}
diff --git a/lib/private/appframework/routing/routeconfig.php b/lib/private/appframework/routing/routeconfig.php
index 91687b9c83c..9816b062b8d 100644
--- a/lib/private/appframework/routing/routeconfig.php
+++ b/lib/private/appframework/routing/routeconfig.php
@@ -69,6 +69,12 @@ class RouteConfig {
$simpleRoutes = isset($routes['routes']) ? $routes['routes'] : array();
foreach ($simpleRoutes as $simpleRoute) {
$name = $simpleRoute['name'];
+ $postfix = '';
+
+ if (isset($simpleRoute['postfix'])) {
+ $postfix = $simpleRoute['postfix'];
+ }
+
$url = $simpleRoute['url'];
$verb = isset($simpleRoute['verb']) ? strtoupper($simpleRoute['verb']) : 'GET';
@@ -84,7 +90,7 @@ class RouteConfig {
// register the route
$handler = new RouteActionHandler($this->container, $controllerName, $actionName);
- $router = $this->router->create($this->appName.'.'.$controller.'.'.$action, $url)
+ $router = $this->router->create($this->appName.'.'.$controller.'.'.$action . $postfix, $url)
->method($verb)
->action($handler);
diff --git a/lib/private/appframework/utility/simplecontainer.php b/lib/private/appframework/utility/simplecontainer.php
index 1ad06b9ab23..55b9cf7a977 100644
--- a/lib/private/appframework/utility/simplecontainer.php
+++ b/lib/private/appframework/utility/simplecontainer.php
@@ -7,18 +7,21 @@ namespace OC\AppFramework\Utility;
*
* SimpleContainer is a simple implementation of IContainer on basis of \Pimple
*/
-class SimpleContainer extends \Pimple implements \OCP\IContainer {
+class SimpleContainer extends \Pimple\Container implements \OCP\IContainer {
/**
* @param string $name name of the service to query for
- * @return object registered service for the given $name
+ * @return mixed registered service for the given $name
*/
public function query($name) {
return $this->offsetGet($name);
}
- function registerParameter($name, $value)
- {
+ /**
+ * @param string $name
+ * @param mixed $value
+ */
+ function registerParameter($name, $value) {
$this[$name] = $value;
}
@@ -29,13 +32,16 @@ class SimpleContainer extends \Pimple implements \OCP\IContainer {
*
* @param string $name name of the service to register another backend for
* @param \Closure $closure the closure to be called on service creation
+ * @param bool $shared
*/
- function registerService($name, \Closure $closure, $shared = true)
- {
+ function registerService($name, \Closure $closure, $shared = true) {
+ if (isset($this[$name])) {
+ unset($this[$name]);
+ }
if ($shared) {
- $this[$name] = \Pimple::share($closure);
- } else {
$this[$name] = $closure;
+ } else {
+ $this[$name] = parent::factory($closure);
}
}
}
diff --git a/lib/private/archive/tar.php b/lib/private/archive/tar.php
index 31715c4778b..61b37c2542a 100644
--- a/lib/private/archive/tar.php
+++ b/lib/private/archive/tar.php
@@ -6,8 +6,6 @@
* See the COPYING-README file.
*/
-require_once OC::$THIRDPARTYROOT . '/3rdparty/Archive/Tar.php';
-
class OC_Archive_TAR extends OC_Archive {
const PLAIN = 0;
const GZIP = 1;
diff --git a/lib/private/arrayparser.php b/lib/private/arrayparser.php
index a5e1f6653fc..1cf3355d6fa 100644
--- a/lib/private/arrayparser.php
+++ b/lib/private/arrayparser.php
@@ -21,9 +21,6 @@
namespace OC;
-class SyntaxException extends \Exception {
-}
-
class ArrayParser {
const TYPE_NUM = 1;
const TYPE_BOOL = 2;
@@ -182,7 +179,9 @@ class ArrayParser {
if (substr($body, -1, 1) !== ',') {
$body .= ',';
}
- for ($i = 0; $i < strlen($body); $i++) {
+
+ $bodyLength = strlen($body);
+ for ($i = 0; $i < $bodyLength; $i++) {
$char = substr($body, $i, 1);
if ($char === '\\') {
if ($escaped) {
@@ -207,7 +206,7 @@ class ArrayParser {
$bracketDepth++;
} elseif ($char === ')') {
if ($bracketDepth <= 0) {
- throw new SyntaxException;
+ throw new UnexpectedValueException();
} else {
$bracketDepth--;
}
diff --git a/lib/private/config.php b/lib/private/config.php
index 7bf3863e2a6..cc07d6a1ed1 100644
--- a/lib/private/config.php
+++ b/lib/private/config.php
@@ -138,12 +138,12 @@ class Config {
// Include file and merge config
foreach ($configFiles as $file) {
- if(!@touch($file) && $file === $this->configFilePath) {
- // Writing to the main config might not be possible, e.g. if the wrong
+ $filePointer = @fopen($file, 'r');
+ if($file === $this->configFilePath && $filePointer === false) {
+ // Opening the main config might not be possible, e.g. if the wrong
// permissions are set (likely on a new installation)
continue;
}
- $filePointer = fopen($file, 'r');
// Try to acquire a file lock
if(!flock($filePointer, LOCK_SH)) {
diff --git a/lib/private/connector/sabre/appenabledplugin.php b/lib/private/connector/sabre/appenabledplugin.php
new file mode 100644
index 00000000000..61f5170658d
--- /dev/null
+++ b/lib/private/connector/sabre/appenabledplugin.php
@@ -0,0 +1,75 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Connector\Sabre;
+
+use OCP\App\IAppManager;
+use Sabre\DAV\Exception\Forbidden;
+use Sabre\DAV\ServerPlugin;
+
+/**
+ * Plugin to check if an app is enabled for the current user
+ */
+class AppEnabledPlugin extends ServerPlugin {
+
+ /**
+ * Reference to main server object
+ *
+ * @var \Sabre\DAV\Server
+ */
+ private $server;
+
+ /**
+ * @var string
+ */
+ private $app;
+
+ /**
+ * @var \OCP\App\IAppManager
+ */
+ private $appManager;
+
+ /**
+ * @param string $app
+ * @param \OCP\App\IAppManager $appManager
+ */
+ public function __construct($app, IAppManager $appManager) {
+ $this->app = $app;
+ $this->appManager = $appManager;
+ }
+
+ /**
+ * This initializes the plugin.
+ *
+ * This function is called by \Sabre\DAV\Server, after
+ * addPlugin is called.
+ *
+ * This method should set up the required event subscriptions.
+ *
+ * @param \Sabre\DAV\Server $server
+ * @return void
+ */
+ public function initialize(\Sabre\DAV\Server $server) {
+
+ $this->server = $server;
+ $this->server->subscribeEvent('beforeMethod', array($this, 'checkAppEnabled'), 30);
+ }
+
+ /**
+ * This method is called before any HTTP after auth and checks if the user has access to the app
+ *
+ * @throws \Sabre\DAV\Exception\Forbidden
+ * @return bool
+ */
+ public function checkAppEnabled() {
+ if (!$this->appManager->isEnabledForUser($this->app)) {
+ throw new Forbidden();
+ }
+ }
+}
diff --git a/lib/private/connector/sabre/directory.php b/lib/private/connector/sabre/directory.php
index 597fbdae0cc..ec5f82f9daa 100644
--- a/lib/private/connector/sabre/directory.php
+++ b/lib/private/connector/sabre/directory.php
@@ -51,29 +51,33 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node
*/
public function createFile($name, $data = null) {
- // for chunked upload also updating a existing file is a "createFile"
- // because we create all the chunks before re-assemble them to the existing file.
- if (isset($_SERVER['HTTP_OC_CHUNKED'])) {
+ try {
+ // for chunked upload also updating a existing file is a "createFile"
+ // because we create all the chunks before re-assemble them to the existing file.
+ if (isset($_SERVER['HTTP_OC_CHUNKED'])) {
- // exit if we can't create a new file and we don't updatable existing file
- $info = OC_FileChunking::decodeName($name);
- if (!$this->fileView->isCreatable($this->path) &&
- !$this->fileView->isUpdatable($this->path . '/' . $info['name'])) {
- throw new \Sabre\DAV\Exception\Forbidden();
+ // exit if we can't create a new file and we don't updatable existing file
+ $info = OC_FileChunking::decodeName($name);
+ if (!$this->fileView->isCreatable($this->path) &&
+ !$this->fileView->isUpdatable($this->path . '/' . $info['name'])) {
+ throw new \Sabre\DAV\Exception\Forbidden();
+ }
+
+ } else {
+ // For non-chunked upload it is enough to check if we can create a new file
+ if (!$this->fileView->isCreatable($this->path)) {
+ throw new \Sabre\DAV\Exception\Forbidden();
+ }
}
- } else {
- // For non-chunked upload it is enough to check if we can create a new file
- if (!$this->fileView->isCreatable($this->path)) {
- throw new \Sabre\DAV\Exception\Forbidden();
- }
+ $path = $this->fileView->getAbsolutePath($this->path) . '/' . $name;
+ // using a dummy FileInfo is acceptable here since it will be refreshed after the put is complete
+ $info = new \OC\Files\FileInfo($path, null, null, array());
+ $node = new OC_Connector_Sabre_File($this->fileView, $info);
+ return $node->put($data);
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
}
-
- $path = $this->fileView->getAbsolutePath($this->path) . '/' . $name;
- // using a dummy FileInfo is acceptable here since it will be refreshed after the put is complete
- $info = new \OC\Files\FileInfo($path, null, null, array());
- $node = new OC_Connector_Sabre_File($this->fileView, $info);
- return $node->put($data);
}
/**
@@ -84,15 +88,18 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node
* @return void
*/
public function createDirectory($name) {
- if (!$this->fileView->isCreatable($this->path)) {
- throw new \Sabre\DAV\Exception\Forbidden();
- }
+ try {
+ if (!$this->info->isCreatable()) {
+ throw new \Sabre\DAV\Exception\Forbidden();
+ }
- $newPath = $this->path . '/' . $name;
- if(!$this->fileView->mkdir($newPath)) {
- throw new \Sabre\DAV\Exception\Forbidden('Could not create directory '.$newPath);
+ $newPath = $this->path . '/' . $name;
+ if(!$this->fileView->mkdir($newPath)) {
+ throw new \Sabre\DAV\Exception\Forbidden('Could not create directory '.$newPath);
+ }
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
}
-
}
/**
@@ -104,10 +111,13 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node
* @return \Sabre\DAV\INode
*/
public function getChild($name, $info = null) {
-
$path = $this->path . '/' . $name;
if (is_null($info)) {
- $info = $this->fileView->getFileInfo($path);
+ try {
+ $info = $this->fileView->getFileInfo($path);
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
+ }
}
if (!$info) {
@@ -205,13 +215,17 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node
* @return array
*/
public function getQuotaInfo() {
- $path = \OC\Files\Filesystem::getView()->getRelativePath($this->info->getPath());
- $storageInfo = OC_Helper::getStorageInfo($path);
- return array(
- $storageInfo['used'],
- $storageInfo['free']
- );
-
+ try {
+ $path = \OC\Files\Filesystem::getView()->getRelativePath($this->info->getPath());
+ $storageInfo = OC_Helper::getStorageInfo($path);
+ return array(
+ $storageInfo['used'],
+ $storageInfo['free']
+ );
+ }
+ catch (\OCP\Files\StorageNotAvailableException $e) {
+ return array(0, 0);
+ }
}
/**
diff --git a/lib/private/connector/sabre/file.php b/lib/private/connector/sabre/file.php
index 903c3447b56..d93b8e68eb6 100644
--- a/lib/private/connector/sabre/file.php
+++ b/lib/private/connector/sabre/file.php
@@ -50,9 +50,13 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\
* @return string|null
*/
public function put($data) {
- if ($this->info && $this->fileView->file_exists($this->path) &&
- !$this->info->isUpdateable()) {
- throw new \Sabre\DAV\Exception\Forbidden();
+ try {
+ if ($this->info && $this->fileView->file_exists($this->path) &&
+ !$this->info->isUpdateable()) {
+ throw new \Sabre\DAV\Exception\Forbidden();
+ }
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
}
// throw an exception if encryption was disabled but the files are still encrypted
@@ -100,43 +104,51 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\
} catch (\OCP\Files\LockNotAcquiredException $e) {
// the file is currently being written to by another process
throw new OC_Connector_Sabre_Exception_FileLocked($e->getMessage(), $e->getCode(), $e);
+ } catch (\OCA\Encryption\Exception\EncryptionException $e) {
+ throw new \Sabre\DAV\Exception\Forbidden($e->getMessage());
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
}
- // if content length is sent by client:
- // double check if the file was fully received
- // compare expected and actual size
- if (isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['REQUEST_METHOD'] !== 'LOCK') {
- $expected = $_SERVER['CONTENT_LENGTH'];
- $actual = $this->fileView->filesize($partFilePath);
- if ($actual != $expected) {
- $this->fileView->unlink($partFilePath);
- throw new \Sabre\DAV\Exception\BadRequest('expected filesize ' . $expected . ' got ' . $actual);
- }
- }
-
- // rename to correct path
try {
- $renameOkay = $this->fileView->rename($partFilePath, $this->path);
- $fileExists = $this->fileView->file_exists($this->path);
- if ($renameOkay === false || $fileExists === false) {
- \OC_Log::write('webdav', '\OC\Files\Filesystem::rename() failed', \OC_Log::ERROR);
- $this->fileView->unlink($partFilePath);
- throw new \Sabre\DAV\Exception('Could not rename part file to final file');
+ // if content length is sent by client:
+ // double check if the file was fully received
+ // compare expected and actual size
+ if (isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['REQUEST_METHOD'] !== 'LOCK') {
+ $expected = $_SERVER['CONTENT_LENGTH'];
+ $actual = $this->fileView->filesize($partFilePath);
+ if ($actual != $expected) {
+ $this->fileView->unlink($partFilePath);
+ throw new \Sabre\DAV\Exception\BadRequest('expected filesize ' . $expected . ' got ' . $actual);
+ }
}
- }
- catch (\OCP\Files\LockNotAcquiredException $e) {
- // the file is currently being written to by another process
- throw new OC_Connector_Sabre_Exception_FileLocked($e->getMessage(), $e->getCode(), $e);
- }
- // allow sync clients to send the mtime along in a header
- $mtime = OC_Request::hasModificationTime();
- if ($mtime !== false) {
- if($this->fileView->touch($this->path, $mtime)) {
- header('X-OC-MTime: accepted');
+ // rename to correct path
+ try {
+ $renameOkay = $this->fileView->rename($partFilePath, $this->path);
+ $fileExists = $this->fileView->file_exists($this->path);
+ if ($renameOkay === false || $fileExists === false) {
+ \OC_Log::write('webdav', '\OC\Files\Filesystem::rename() failed', \OC_Log::ERROR);
+ $this->fileView->unlink($partFilePath);
+ throw new \Sabre\DAV\Exception('Could not rename part file to final file');
+ }
}
+ catch (\OCP\Files\LockNotAcquiredException $e) {
+ // the file is currently being written to by another process
+ throw new OC_Connector_Sabre_Exception_FileLocked($e->getMessage(), $e->getCode(), $e);
+ }
+
+ // allow sync clients to send the mtime along in a header
+ $mtime = OC_Request::hasModificationTime();
+ if ($mtime !== false) {
+ if($this->fileView->touch($this->path, $mtime)) {
+ header('X-OC-MTime: accepted');
+ }
+ }
+ $this->refreshInfo();
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
}
- $this->refreshInfo();
return '"' . $this->info->getEtag() . '"';
}
@@ -152,7 +164,13 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\
if (\OC_Util::encryptedFiles()) {
throw new \Sabre\DAV\Exception\ServiceUnavailable();
} else {
- return $this->fileView->fopen(ltrim($this->path, '/'), 'rb');
+ try {
+ return $this->fileView->fopen(ltrim($this->path, '/'), 'rb');
+ } catch (\OCA\Encryption\Exception\EncryptionException $e) {
+ throw new \Sabre\DAV\Exception\Forbidden($e->getMessage());
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
+ }
}
}
@@ -168,9 +186,13 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\
throw new \Sabre\DAV\Exception\Forbidden();
}
- if (!$this->fileView->unlink($this->path)) {
- // assume it wasn't possible to delete due to permissions
- throw new \Sabre\DAV\Exception\Forbidden();
+ try {
+ if (!$this->fileView->unlink($this->path)) {
+ // assume it wasn't possible to delete due to permissions
+ throw new \Sabre\DAV\Exception\Forbidden();
+ }
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
}
// remove properties
@@ -197,6 +219,10 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\
public function getContentType() {
$mimeType = $this->info->getMimetype();
+ // PROPFIND needs to return the correct mime type, for consistency with the web UI
+ if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'PROPFIND' ) {
+ return $mimeType;
+ }
return \OC_Helper::getSecureMimeType($mimeType);
}
@@ -229,33 +255,37 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\
if ($chunk_handler->isComplete()) {
- // we first assembly the target file as a part file
- $partFile = $path . '/' . $info['name'] . '.ocTransferId' . $info['transferid'] . '.part';
- $chunk_handler->file_assemble($partFile);
+ try {
+ // we first assembly the target file as a part file
+ $partFile = $path . '/' . $info['name'] . '.ocTransferId' . $info['transferid'] . '.part';
+ $chunk_handler->file_assemble($partFile);
- // here is the final atomic rename
- $targetPath = $path . '/' . $info['name'];
- $renameOkay = $this->fileView->rename($partFile, $targetPath);
- $fileExists = $this->fileView->file_exists($targetPath);
- if ($renameOkay === false || $fileExists === false) {
- \OC_Log::write('webdav', '\OC\Files\Filesystem::rename() failed', \OC_Log::ERROR);
- // only delete if an error occurred and the target file was already created
- if ($fileExists) {
- $this->fileView->unlink($targetPath);
+ // here is the final atomic rename
+ $targetPath = $path . '/' . $info['name'];
+ $renameOkay = $this->fileView->rename($partFile, $targetPath);
+ $fileExists = $this->fileView->file_exists($targetPath);
+ if ($renameOkay === false || $fileExists === false) {
+ \OC_Log::write('webdav', '\OC\Files\Filesystem::rename() failed', \OC_Log::ERROR);
+ // only delete if an error occurred and the target file was already created
+ if ($fileExists) {
+ $this->fileView->unlink($targetPath);
+ }
+ throw new \Sabre\DAV\Exception('Could not rename part file assembled from chunks');
}
- throw new \Sabre\DAV\Exception('Could not rename part file assembled from chunks');
- }
- // allow sync clients to send the mtime along in a header
- $mtime = OC_Request::hasModificationTime();
- if ($mtime !== false) {
- if($this->fileView->touch($targetPath, $mtime)) {
- header('X-OC-MTime: accepted');
+ // allow sync clients to send the mtime along in a header
+ $mtime = OC_Request::hasModificationTime();
+ if ($mtime !== false) {
+ if($this->fileView->touch($targetPath, $mtime)) {
+ header('X-OC-MTime: accepted');
+ }
}
- }
- $info = $this->fileView->getFileInfo($targetPath);
- return $info->getEtag();
+ $info = $this->fileView->getFileInfo($targetPath);
+ return $info->getEtag();
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
+ }
}
return null;
diff --git a/lib/private/connector/sabre/objecttree.php b/lib/private/connector/sabre/objecttree.php
index d7a96cfc88e..14a55b5cada 100644
--- a/lib/private/connector/sabre/objecttree.php
+++ b/lib/private/connector/sabre/objecttree.php
@@ -138,27 +138,31 @@ class ObjectTree extends \Sabre\DAV\ObjectTree {
$isMovableMount = true;
}
- // check update privileges
- if (!$this->fileView->isUpdatable($sourcePath) && !$isMovableMount) {
- throw new \Sabre\DAV\Exception\Forbidden();
- }
- if ($sourceDir !== $destinationDir) {
- if (!$this->fileView->isCreatable($destinationDir)) {
+ try {
+ // check update privileges
+ if (!$this->fileView->isUpdatable($sourcePath) && !$isMovableMount) {
throw new \Sabre\DAV\Exception\Forbidden();
}
- if (!$this->fileView->isDeletable($sourcePath) && !$isMovableMount) {
- throw new \Sabre\DAV\Exception\Forbidden();
+ if ($sourceDir !== $destinationDir) {
+ if (!$this->fileView->isCreatable($destinationDir)) {
+ throw new \Sabre\DAV\Exception\Forbidden();
+ }
+ if (!$this->fileView->isDeletable($sourcePath) && !$isMovableMount) {
+ throw new \Sabre\DAV\Exception\Forbidden();
+ }
}
- }
- $fileName = basename($destinationPath);
- if (!\OCP\Util::isValidFileName($fileName)) {
- throw new \Sabre\DAV\Exception\BadRequest();
- }
+ $fileName = basename($destinationPath);
+ if (!\OCP\Util::isValidFileName($fileName)) {
+ throw new \Sabre\DAV\Exception\BadRequest();
+ }
- $renameOkay = $this->fileView->rename($sourcePath, $destinationPath);
- if (!$renameOkay) {
- throw new \Sabre\DAV\Exception\Forbidden('');
+ $renameOkay = $this->fileView->rename($sourcePath, $destinationPath);
+ if (!$renameOkay) {
+ throw new \Sabre\DAV\Exception\Forbidden('');
+ }
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
}
// update properties
@@ -188,19 +192,23 @@ class ObjectTree extends \Sabre\DAV\ObjectTree {
throw new \Sabre\DAV\Exception\ServiceUnavailable('filesystem not setup');
}
- if ($this->fileView->is_file($source)) {
- $this->fileView->copy($source, $destination);
- } else {
- $this->fileView->mkdir($destination);
- $dh = $this->fileView->opendir($source);
- if (is_resource($dh)) {
- while (($subNode = readdir($dh)) !== false) {
+ try {
+ if ($this->fileView->is_file($source)) {
+ $this->fileView->copy($source, $destination);
+ } else {
+ $this->fileView->mkdir($destination);
+ $dh = $this->fileView->opendir($source);
+ if (is_resource($dh)) {
+ while (($subNode = readdir($dh)) !== false) {
- if ($subNode == '.' || $subNode == '..') continue;
- $this->copy($source . '/' . $subNode, $destination . '/' . $subNode);
+ if ($subNode == '.' || $subNode == '..') continue;
+ $this->copy($source . '/' . $subNode, $destination . '/' . $subNode);
+ }
}
}
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
}
list($destinationDir,) = \Sabre\DAV\URLUtil::splitPath($destination);
diff --git a/lib/private/connector/sabre/principal.php b/lib/private/connector/sabre/principal.php
index 9bad3b9df16..fe17fb991ca 100644
--- a/lib/private/connector/sabre/principal.php
+++ b/lib/private/connector/sabre/principal.php
@@ -26,11 +26,19 @@ class OC_Connector_Sabre_Principal implements \Sabre\DAVACL\PrincipalBackend\Bac
if ($prefixPath == 'principals') {
foreach(OC_User::getUsers() as $user) {
+
$user_uri = 'principals/'.$user;
- $principals[] = array(
+ $principal = array(
'uri' => $user_uri,
'{DAV:}displayname' => $user,
);
+
+ $email= \OCP\Config::getUserValue($user, 'settings', 'email');
+ if($email) {
+ $principal['{http://sabredav.org/ns}email-address'] = $email;
+ }
+
+ $principals[] = $principal;
}
}
@@ -49,10 +57,18 @@ class OC_Connector_Sabre_Principal implements \Sabre\DAVACL\PrincipalBackend\Bac
list($prefix, $name) = explode('/', $path);
if ($prefix == 'principals' && OC_User::userExists($name)) {
- return array(
+
+ $principal = array(
'uri' => 'principals/'.$name,
'{DAV:}displayname' => $name,
);
+
+ $email= \OCP\Config::getUserValue($user, 'settings', 'email');
+ if($email) {
+ $principal['{http://sabredav.org/ns}email-address'] = $email;
+ }
+
+ return $principal;
}
return null;
diff --git a/lib/private/connector/sabre/quotaplugin.php b/lib/private/connector/sabre/quotaplugin.php
index ebcc894d744..59d0e188f66 100644
--- a/lib/private/connector/sabre/quotaplugin.php
+++ b/lib/private/connector/sabre/quotaplugin.php
@@ -102,7 +102,11 @@ class OC_Connector_Sabre_QuotaPlugin extends \Sabre\DAV\ServerPlugin {
* @return mixed
*/
public function getFreeSpace($parentUri) {
- $freeSpace = $this->view->free_space($parentUri);
- return $freeSpace;
+ try {
+ $freeSpace = $this->view->free_space($parentUri);
+ return $freeSpace;
+ } catch (\OCP\Files\StorageNotAvailableException $e) {
+ throw new \Sabre\DAV\Exception\ServiceUnavailable($e->getMessage());
+ }
}
}
diff --git a/lib/private/contacts/localaddressbook.php b/lib/private/contacts/localaddressbook.php
index 483bbee83f8..91ddb5798f2 100644
--- a/lib/private/contacts/localaddressbook.php
+++ b/lib/private/contacts/localaddressbook.php
@@ -91,7 +91,7 @@ class LocalAddressBook implements \OCP\IAddressBook {
* @return int
*/
public function getPermissions() {
- return \OCP\PERMISSION_READ;
+ return \OCP\Constants::PERMISSION_READ;
}
/**
diff --git a/lib/private/contactsmanager.php b/lib/private/contactsmanager.php
index 338cc048651..737fc4f0e3a 100644
--- a/lib/private/contactsmanager.php
+++ b/lib/private/contactsmanager.php
@@ -62,7 +62,7 @@ namespace OC {
return null;
}
- if ($addressBook->getPermissions() & \OCP\PERMISSION_DELETE) {
+ if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_DELETE) {
return null;
}
@@ -83,7 +83,7 @@ namespace OC {
return null;
}
- if ($addressBook->getPermissions() & \OCP\PERMISSION_CREATE) {
+ if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_CREATE) {
return null;
}
diff --git a/lib/private/databaseexception.php b/lib/private/databaseexception.php
new file mode 100644
index 00000000000..1135621ead2
--- /dev/null
+++ b/lib/private/databaseexception.php
@@ -0,0 +1,23 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC;
+
+class DatabaseException extends \Exception {
+ private $query;
+
+ //FIXME getQuery seems to be unused, maybe use parent constructor with $message, $code and $previous
+ public function __construct($message, $query = null){
+ parent::__construct($message);
+ $this->query = $query;
+ }
+
+ public function getQuery() {
+ return $this->query;
+ }
+}
diff --git a/lib/private/databasesetupexception.php b/lib/private/databasesetupexception.php
new file mode 100644
index 00000000000..9235cda8c0e
--- /dev/null
+++ b/lib/private/databasesetupexception.php
@@ -0,0 +1,12 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC;
+
+class DatabaseSetupException extends HintException {
+}
diff --git a/lib/private/davclient.php b/lib/private/davclient.php
deleted file mode 100644
index 6a544d27068..00000000000
--- a/lib/private/davclient.php
+++ /dev/null
@@ -1,59 +0,0 @@
-
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see .
- *
- */
-
-/**
- * This class extends the SabreDAV client with additional functionality
- * like request timeout.
- */
-
-class OC_DAVClient extends \Sabre\DAV\Client {
-
- protected $requestTimeout;
-
- protected $verifyHost;
-
- /**
- * Sets the request timeout or 0 to disable timeout.
- * @param integer $timeout in seconds or 0 to disable
- */
- public function setRequestTimeout($timeout) {
- $this->requestTimeout = (int)$timeout;
- }
-
- /**
- * Sets the CURLOPT_SSL_VERIFYHOST setting
- * @param integer $value value to set CURLOPT_SSL_VERIFYHOST to
- */
- public function setVerifyHost($value) {
- $this->verifyHost = $value;
- }
-
- protected function curlRequest($url, $settings) {
- if ($this->requestTimeout > 0) {
- $settings[CURLOPT_TIMEOUT] = $this->requestTimeout;
- }
- if (!is_null($this->verifyHost)) {
- $settings[CURLOPT_SSL_VERIFYHOST] = $this->verifyHost;
- }
- return parent::curlRequest($url, $settings);
- }
-}
diff --git a/lib/private/db.php b/lib/private/db.php
index 80163415a90..f8015133682 100644
--- a/lib/private/db.php
+++ b/lib/private/db.php
@@ -22,105 +22,17 @@
define('MDB2_SCHEMA_DUMP_STRUCTURE', '1');
-class DatabaseException extends Exception {
- private $query;
-
- //FIXME getQuery seems to be unused, maybe use parent constructor with $message, $code and $previous
- public function __construct($message, $query = null){
- parent::__construct($message);
- $this->query = $query;
- }
-
- public function getQuery() {
- return $this->query;
- }
-}
-
/**
* This class manages the access to the database. It basically is a wrapper for
* Doctrine with some adaptions.
*/
class OC_DB {
- /**
- * @var \OC\DB\Connection $connection
- */
- static private $connection; //the preferred connection to use, only Doctrine
/**
- * connects to the database
- * @return boolean|null true if connection can be established or false on error
- *
- * Connects to the database as specified in config.php
- */
- public static function connect() {
- if(self::$connection) {
- return true;
- }
-
- $type = OC_Config::getValue('dbtype', 'sqlite');
- $factory = new \OC\DB\ConnectionFactory();
- if (!$factory->isValidType($type)) {
- return false;
- }
-
- $connectionParams = array(
- 'user' => OC_Config::getValue('dbuser', ''),
- 'password' => OC_Config::getValue('dbpassword', ''),
- );
- $name = OC_Config::getValue('dbname', 'owncloud');
-
- if ($factory->normalizeType($type) === 'sqlite3') {
- $datadir = OC_Config::getValue("datadirectory", OC::$SERVERROOT.'/data');
- $connectionParams['path'] = $datadir.'/'.$name.'.db';
- } else {
- $host = OC_Config::getValue('dbhost', '');
- if (strpos($host, ':')) {
- // Host variable may carry a port or socket.
- list($host, $portOrSocket) = explode(':', $host, 2);
- if (ctype_digit($portOrSocket)) {
- $connectionParams['port'] = $portOrSocket;
- } else {
- $connectionParams['unix_socket'] = $portOrSocket;
- }
- }
- $connectionParams['host'] = $host;
- $connectionParams['dbname'] = $name;
- }
-
- $connectionParams['tablePrefix'] = OC_Config::getValue('dbtableprefix', 'oc_');
-
- try {
- self::$connection = $factory->getConnection($type, $connectionParams);
- } catch(\Doctrine\DBAL\DBALException $e) {
- OC_Log::write('core', $e->getMessage(), OC_Log::FATAL);
- OC_User::setUserId(null);
-
- // send http status 503
- header('HTTP/1.1 503 Service Temporarily Unavailable');
- header('Status: 503 Service Temporarily Unavailable');
- OC_Template::printErrorPage('Failed to connect to database');
- die();
- }
-
- return true;
- }
-
- /**
- * The existing database connection is closed and connected again
- */
- public static function reconnect() {
- if(self::$connection) {
- self::$connection->close();
- self::$connection->connect();
- }
- }
-
- /**
- * @return \OC\DB\Connection
+ * @return \OCP\IDBConnection
*/
static public function getConnection() {
- self::connect();
- return self::$connection;
+ return \OC::$server->getDatabaseConnection();
}
/**
@@ -130,7 +42,7 @@ class OC_DB {
*/
private static function getMDB2SchemaManager()
{
- return new \OC\DB\MDB2SchemaManager(self::getConnection());
+ return new \OC\DB\MDB2SchemaManager(\OC::$server->getDatabaseConnection());
}
/**
@@ -139,13 +51,13 @@ class OC_DB {
* @param int $limit
* @param int $offset
* @param bool $isManipulation
- * @throws DatabaseException
+ * @throws \OC\DatabaseException
* @return OC_DB_StatementWrapper prepared SQL query
*
* SQL query via Doctrine prepare(), needs to be execute()'d!
*/
static public function prepare( $query , $limit = null, $offset = null, $isManipulation = null) {
- self::connect();
+ $connection = \OC::$server->getDatabaseConnection();
if ($isManipulation === null) {
//try to guess, so we return the number of rows on manipulations
@@ -154,9 +66,9 @@ class OC_DB {
// return the result
try {
- $result = self::$connection->prepare($query, $limit, $offset);
+ $result =$connection->prepare($query, $limit, $offset);
} catch (\Doctrine\DBAL\DBALException $e) {
- throw new \DatabaseException($e->getMessage(), $query);
+ throw new \OC\DatabaseException($e->getMessage(), $query);
}
// differentiate between query and manipulation
$result = new OC_DB_StatementWrapper($result, $isManipulation);
@@ -197,7 +109,7 @@ class OC_DB {
* .. or a simple sql query string
* @param array $parameters
* @return OC_DB_StatementWrapper
- * @throws DatabaseException
+ * @throws \OC\DatabaseException
*/
static public function executeAudited( $stmt, array $parameters = null) {
if (is_string($stmt)) {
@@ -206,7 +118,7 @@ class OC_DB {
// TODO try to convert LIMIT OFFSET notation to parameters, see fixLimitClauseForMSSQL
$message = 'LIMIT and OFFSET are forbidden for portability reasons,'
. ' pass an array with \'limit\' and \'offset\' instead';
- throw new DatabaseException($message);
+ throw new \OC\DatabaseException($message);
}
$stmt = array('sql' => $stmt, 'limit' => null, 'offset' => null);
}
@@ -214,7 +126,7 @@ class OC_DB {
// convert to prepared statement
if ( ! array_key_exists('sql', $stmt) ) {
$message = 'statement array must at least contain key \'sql\'';
- throw new DatabaseException($message);
+ throw new \OC\DatabaseException($message);
}
if ( ! array_key_exists('limit', $stmt) ) {
$stmt['limit'] = null;
@@ -234,7 +146,7 @@ class OC_DB {
} else {
$message = 'Expected a prepared statement or array got ' . gettype($stmt);
}
- throw new DatabaseException($message);
+ throw new \OC\DatabaseException($message);
}
return $result;
}
@@ -243,7 +155,7 @@ class OC_DB {
* gets last value of autoincrement
* @param string $table The optional table name (will replace *PREFIX*) and add sequence suffix
* @return string id
- * @throws DatabaseException
+ * @throws \OC\DatabaseException
*
* \Doctrine\DBAL\Connection lastInsertId
*
@@ -251,8 +163,7 @@ class OC_DB {
* cause trouble!
*/
public static function insertid($table=null) {
- self::connect();
- return self::$connection->lastInsertId($table);
+ return \OC::$server->getDatabaseConnection()->lastInsertId($table);
}
/**
@@ -262,24 +173,28 @@ class OC_DB {
* @return boolean number of updated rows
*/
public static function insertIfNotExist($table, $input) {
- self::connect();
- return self::$connection->insertIfNotExist($table, $input);
+ return \OC::$server->getDatabaseConnection()->insertIfNotExist($table, $input);
}
/**
* Start a transaction
*/
public static function beginTransaction() {
- self::connect();
- self::$connection->beginTransaction();
+ return \OC::$server->getDatabaseConnection()->beginTransaction();
}
/**
* Commit the database changes done during a transaction that is in progress
*/
public static function commit() {
- self::connect();
- self::$connection->commit();
+ return \OC::$server->getDatabaseConnection()->commit();
+ }
+
+ /**
+ * Rollback the database changes done during a transaction that is in progress
+ */
+ public static function rollback() {
+ return \OC::$server->getDatabaseConnection()->rollback();
}
/**
@@ -347,17 +262,17 @@ class OC_DB {
* @param string $tableName the table to drop
*/
public static function dropTable($tableName) {
-
+ $connection = \OC::$server->getDatabaseConnection();
$tableName = OC_Config::getValue('dbtableprefix', 'oc_' ) . trim($tableName);
- self::$connection->beginTransaction();
+ $connection->beginTransaction();
- $platform = self::$connection->getDatabasePlatform();
+ $platform = $connection->getDatabasePlatform();
$sql = $platform->getDropTableSQL($platform->quoteIdentifier($tableName));
- self::$connection->query($sql);
+ $connection->executeQuery($sql);
- self::$connection->commit();
+ $connection->commit();
}
/**
@@ -383,7 +298,7 @@ class OC_DB {
* @param mixed $result
* @param string $message
* @return void
- * @throws DatabaseException
+ * @throws \OC\DatabaseException
*/
public static function raiseExceptionOnError($result, $message = null) {
if(self::isError($result)) {
@@ -392,13 +307,13 @@ class OC_DB {
} else {
$message .= ', Root cause:' . self::getErrorMessage($result);
}
- throw new DatabaseException($message, self::getErrorCode($result));
+ throw new \OC\DatabaseException($message, self::getErrorCode($result));
}
}
public static function getErrorCode($error) {
- $code = self::$connection->errorCode();
- return $code;
+ $connection = \OC::$server->getDatabaseConnection();
+ return $connection->errorCode();
}
/**
* returns the error code and message as a string for logging
@@ -407,22 +322,8 @@ class OC_DB {
* @return string
*/
public static function getErrorMessage($error) {
- if (self::$connection) {
- return self::$connection->getError();
- }
- return '';
- }
-
- /**
- * @param bool $enabled
- */
- static public function enableCaching($enabled) {
- self::connect();
- if ($enabled) {
- self::$connection->enableQueryStatementCaching();
- } else {
- self::$connection->disableQueryStatementCaching();
- }
+ $connection = \OC::$server->getDatabaseConnection();
+ return $connection->getError();
}
/**
@@ -430,7 +331,7 @@ class OC_DB {
*
* @param string $table
* @return bool
- * @throws DatabaseException
+ * @throws \OC\DatabaseException
*/
public static function tableExists($table) {
@@ -466,7 +367,7 @@ class OC_DB {
$result = \OC_DB::executeAudited($sql, array($table));
break;
default:
- throw new DatabaseException("Unknown database type: $dbType");
+ throw new \OC\DatabaseException("Unknown database type: $dbType");
}
return $result->fetchOne() === $table;
diff --git a/lib/private/db/adapter.php b/lib/private/db/adapter.php
index 6742ccdbb45..58b3514b922 100644
--- a/lib/private/db/adapter.php
+++ b/lib/private/db/adapter.php
@@ -42,7 +42,8 @@ class Adapter {
/**
* insert the @input values when they do not exist yet
* @param string $table name
- * @param array $input key->value pairs
+ * @param array $input key->value pair, key has to be sanitized properly
+ * @throws \OC\HintException
* @return int count of inserted rows
*/
public function insertIfNotExist($table, $input) {
@@ -70,8 +71,13 @@ class Adapter {
$entry = 'DB Error: "'.$e->getMessage() . '" ';
$entry .= 'Offending command was: ' . $query.' ';
\OC_Log::write('core', $entry, \OC_Log::FATAL);
- error_log('DB error: ' . $entry);
- \OC_Template::printErrorPage( $entry );
+ $l = \OC::$server->getL10N('lib');
+ throw new \OC\HintException(
+ $l->t('Database Error'),
+ $l->t('Please contact your system administrator.'),
+ 0,
+ $e
+ );
}
}
}
diff --git a/lib/private/db/adaptersqlite.php b/lib/private/db/adaptersqlite.php
index 3471fcf4042..c5dfa85aaac 100644
--- a/lib/private/db/adaptersqlite.php
+++ b/lib/private/db/adaptersqlite.php
@@ -41,8 +41,13 @@ class AdapterSqlite extends Adapter {
$entry = 'DB Error: "'.$e->getMessage() . '" ';
$entry .= 'Offending command was: ' . $query . ' ';
\OC_Log::write('core', $entry, \OC_Log::FATAL);
- error_log('DB error: '.$entry);
- \OC_Template::printErrorPage( $entry );
+ $l = \OC::$server->getL10N('lib');
+ throw new \OC\HintException(
+ $l->t('Database Error'),
+ $l->t('Please contact your system administrator.'),
+ 0,
+ $e
+ );
}
if ($stmt->fetchColumn() === '0') {
@@ -60,8 +65,13 @@ class AdapterSqlite extends Adapter {
$entry = 'DB Error: "'.$e->getMessage() . '" ';
$entry .= 'Offending command was: ' . $query.' ';
\OC_Log::write('core', $entry, \OC_Log::FATAL);
- error_log('DB error: ' . $entry);
- \OC_Template::printErrorPage( $entry );
+ $l = \OC::$server->getL10N('lib');
+ throw new \OC\HintException(
+ $l->t('Database Error'),
+ $l->t('Please contact your system administrator.'),
+ 0,
+ $e
+ );
}
return $result;
diff --git a/lib/private/db/connection.php b/lib/private/db/connection.php
index b7981fcd691..a6cdf858899 100644
--- a/lib/private/db/connection.php
+++ b/lib/private/db/connection.php
@@ -11,8 +11,9 @@ use Doctrine\DBAL\Driver;
use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\Cache\QueryCacheProfile;
use Doctrine\Common\EventManager;
+use OCP\IDBConnection;
-class Connection extends \Doctrine\DBAL\Connection {
+class Connection extends \Doctrine\DBAL\Connection implements IDBConnection {
/**
* @var string $tablePrefix
*/
@@ -23,13 +24,6 @@ class Connection extends \Doctrine\DBAL\Connection {
*/
protected $adapter;
- /**
- * @var \Doctrine\DBAL\Driver\Statement[] $preparedQueries
- */
- protected $preparedQueries = array();
-
- protected $cachingQueryStatementEnabled = true;
-
/**
* Initializes a new instance of the Connection class.
*
@@ -69,9 +63,6 @@ class Connection extends \Doctrine\DBAL\Connection {
$platform = $this->getDatabasePlatform();
$statement = $platform->modifyLimitQuery($statement, $limit, $offset);
} else {
- if (isset($this->preparedQueries[$statement]) && $this->cachingQueryStatementEnabled) {
- return $this->preparedQueries[$statement];
- }
$origStatement = $statement;
}
$statement = $this->replaceTablePrefix($statement);
@@ -80,11 +71,7 @@ class Connection extends \Doctrine\DBAL\Connection {
if(\OC_Config::getValue( 'log_query', false)) {
\OC_Log::write('core', 'DB prepare : '.$statement, \OC_Log::DEBUG);
}
- $result = parent::prepare($statement);
- if (is_null($limit) && $this->cachingQueryStatementEnabled) {
- $this->preparedQueries[$origStatement] = $result;
- }
- return $result;
+ return parent::prepare($statement);
}
/**
@@ -185,13 +172,4 @@ class Connection extends \Doctrine\DBAL\Connection {
protected function replaceTablePrefix($statement) {
return str_replace( '*PREFIX*', $this->tablePrefix, $statement );
}
-
- public function enableQueryStatementCaching() {
- $this->cachingQueryStatementEnabled = true;
- }
-
- public function disableQueryStatementCaching() {
- $this->cachingQueryStatementEnabled = false;
- $this->preparedQueries = array();
- }
}
diff --git a/lib/private/db/connectionfactory.php b/lib/private/db/connectionfactory.php
index 589a1c0affd..58043b30440 100644
--- a/lib/private/db/connectionfactory.php
+++ b/lib/private/db/connectionfactory.php
@@ -90,7 +90,8 @@ class ConnectionFactory {
$eventManager->addEventSubscriber(new \Doctrine\DBAL\Event\Listeners\OracleSessionInit);
break;
case 'sqlite3':
- $eventManager->addEventSubscriber(new SQLiteSessionInit);
+ $journalMode = $additionalConnectionParams['sqlite.journal_mode'];
+ $eventManager->addEventSubscriber(new SQLiteSessionInit(true, $journalMode));
break;
}
$connection = \Doctrine\DBAL\DriverManager::getConnection(
@@ -98,19 +99,6 @@ class ConnectionFactory {
new \Doctrine\DBAL\Configuration(),
$eventManager
);
- switch ($normalizedType) {
- case 'sqlite3':
- // Sqlite doesn't handle query caching and schema changes
- // TODO: find a better way to handle this
- /** @var $connection \OC\DB\Connection */
- $connection->disableQueryStatementCaching();
- break;
- case 'oci':
- // oracle seems to have issues with cached statements which have been closed
- /** @var $connection \OC\DB\Connection */
- $connection->disableQueryStatementCaching();
- break;
- }
return $connection;
}
@@ -131,4 +119,49 @@ class ConnectionFactory {
$normalizedType = $this->normalizeType($type);
return isset($this->defaultConnectionParams[$normalizedType]);
}
+
+ /**
+ * Create the connection parameters for the config
+ *
+ * @param \OCP\IConfig $config
+ * @return array
+ */
+ public function createConnectionParams($config) {
+ $type = $config->getSystemValue('dbtype', 'sqlite');
+
+ $connectionParams = array(
+ 'user' => $config->getSystemValue('dbuser', ''),
+ 'password' => $config->getSystemValue('dbpassword', ''),
+ );
+ $name = $config->getSystemValue('dbname', 'owncloud');
+
+ if ($this->normalizeType($type) === 'sqlite3') {
+ $datadir = $config->getSystemValue("datadirectory", \OC::$SERVERROOT . '/data');
+ $connectionParams['path'] = $datadir . '/' . $name . '.db';
+ } else {
+ $host = $config->getSystemValue('dbhost', '');
+ if (strpos($host, ':')) {
+ // Host variable may carry a port or socket.
+ list($host, $portOrSocket) = explode(':', $host, 2);
+ if (ctype_digit($portOrSocket)) {
+ $connectionParams['port'] = $portOrSocket;
+ } else {
+ $connectionParams['unix_socket'] = $portOrSocket;
+ }
+ }
+ $connectionParams['host'] = $host;
+ $connectionParams['dbname'] = $name;
+ }
+
+ $connectionParams['tablePrefix'] = $config->getSystemValue('dbtableprefix', 'oc_');
+ $connectionParams['sqlite.journal_mode'] = $config->getSystemValue('sqlite.journal_mode', 'WAL');
+
+ //additional driver options, eg. for mysql ssl
+ $driverOptions = $config->getSystemValue('dbdriveroptions', null);
+ if ($driverOptions) {
+ $connectionParams['driverOptions'] = $driverOptions;
+ }
+
+ return $connectionParams;
+ }
}
diff --git a/lib/private/db/connectionwrapper.php b/lib/private/db/connectionwrapper.php
deleted file mode 100644
index 132e76666ab..00000000000
--- a/lib/private/db/connectionwrapper.php
+++ /dev/null
@@ -1,99 +0,0 @@
-
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-namespace OC\DB;
-
-
-class ConnectionWrapper implements \OCP\IDBConnection {
-
- private $connection;
-
- public function __construct(Connection $conn) {
- $this->connection = $conn;
- }
-
- /**
- * Used to the owncloud database access away
- * @param string $sql the sql query with ? placeholder for params
- * @param int $limit the maximum number of rows
- * @param int $offset from which row we want to start
- * @return \Doctrine\DBAL\Driver\Statement The prepared statement.
- */
- public function prepare($sql, $limit = null, $offset = null)
- {
- return $this->connection->prepare($sql, $limit, $offset);
- }
-
- /**
- * Used to get the id of the just inserted element
- * @param string $table the name of the table where we inserted the item
- * @return string the id of the inserted element
- */
- public function lastInsertId($table = null)
- {
- return $this->connection->lastInsertId($table);
- }
-
- /**
- * Insert a row if a matching row doesn't exists.
- * @param string $table The table name (will replace *PREFIX*) to perform the replace on.
- * @param array $input
- *
- * The input array if in the form:
- *
- * array ( 'id' => array ( 'value' => 6,
- * 'key' => true
- * ),
- * 'name' => array ('value' => 'Stoyan'),
- * 'family' => array ('value' => 'Stefanov'),
- * 'birth_date' => array ('value' => '1975-06-20')
- * );
- * @return bool
- *
- */
- public function insertIfNotExist($table, $input)
- {
- return $this->connection->insertIfNotExist($table, $input);
- }
-
- /**
- * Start a transaction
- * @return bool TRUE on success or FALSE on failure
- */
- public function beginTransaction()
- {
- return $this->connection->beginTransaction();
- }
-
- /**
- * Commit the database changes done during a transaction that is in progress
- * @return bool TRUE on success or FALSE on failure
- */
- public function commit()
- {
- return $this->connection->commit();
- }
-
- /**
- * Rollback the database changes done during a transaction that is in progress
- * @return bool TRUE on success or FALSE on failure
- */
- public function rollBack()
- {
- return $this->connection->rollBack();
- }
-
- /**
- * Gets the error code and message as a string for logging
- * @return string
- */
- public function getError()
- {
- return $this->connection->getError();
- }
-}
diff --git a/lib/private/db/mdb2schemamanager.php b/lib/private/db/mdb2schemamanager.php
index a07c421b9b8..78267094d0e 100644
--- a/lib/private/db/mdb2schemamanager.php
+++ b/lib/private/db/mdb2schemamanager.php
@@ -21,7 +21,7 @@ class MDB2SchemaManager {
protected $conn;
/**
- * @param \OC\DB\Connection $conn
+ * @param \OCP\IDBConnection $conn
*/
public function __construct($conn) {
$this->conn = $conn;
@@ -49,7 +49,7 @@ class MDB2SchemaManager {
* TODO: write more documentation
*/
public function createDbFromStructure($file) {
- $schemaReader = new MDB2SchemaReader(\OC_Config::getObject(), $this->conn->getDatabasePlatform());
+ $schemaReader = new MDB2SchemaReader(\OC::$server->getConfig(), $this->conn->getDatabasePlatform());
$toSchema = $schemaReader->loadSchemaFromFile($file);
return $this->executeSchemaChange($toSchema);
}
@@ -58,20 +58,21 @@ class MDB2SchemaManager {
* @return \OC\DB\Migrator
*/
public function getMigrator() {
+ $random = \OC::$server->getSecureRandom()->getMediumStrengthGenerator();
$platform = $this->conn->getDatabasePlatform();
if ($platform instanceof SqlitePlatform) {
$config = \OC::$server->getConfig();
- return new SQLiteMigrator($this->conn, $config);
+ return new SQLiteMigrator($this->conn, $random, $config);
} else if ($platform instanceof OraclePlatform) {
- return new OracleMigrator($this->conn);
+ return new OracleMigrator($this->conn, $random);
} else if ($platform instanceof MySqlPlatform) {
- return new MySQLMigrator($this->conn);
+ return new MySQLMigrator($this->conn, $random);
} else if ($platform instanceof SQLServerPlatform) {
- return new MsSqlMigrator($this->conn);
+ return new MsSqlMigrator($this->conn, $random);
} else if ($platform instanceof PostgreSqlPlatform) {
- return new Migrator($this->conn);
+ return new Migrator($this->conn, $random);
} else {
- return new NoCheckMigrator($this->conn);
+ return new NoCheckMigrator($this->conn, $random);
}
}
@@ -82,7 +83,7 @@ class MDB2SchemaManager {
*/
private function readSchemaFromFile($file) {
$platform = $this->conn->getDatabasePlatform();
- $schemaReader = new MDB2SchemaReader(\OC_Config::getObject(), $platform);
+ $schemaReader = new MDB2SchemaReader(\OC::$server->getConfig(), $platform);
return $schemaReader->loadSchemaFromFile($file);
}
@@ -130,7 +131,7 @@ class MDB2SchemaManager {
* @param string $file the xml file describing the tables
*/
public function removeDBStructure($file) {
- $schemaReader = new MDB2SchemaReader(\OC_Config::getObject(), $this->conn->getDatabasePlatform());
+ $schemaReader = new MDB2SchemaReader(\OC::$server->getConfig(), $this->conn->getDatabasePlatform());
$fromSchema = $schemaReader->loadSchemaFromFile($file);
$toSchema = clone $fromSchema;
/** @var $table \Doctrine\DBAL\Schema\Table */
@@ -143,7 +144,7 @@ class MDB2SchemaManager {
}
/**
- * @param \Doctrine\DBAL\Schema\Schema $schema
+ * @param \Doctrine\DBAL\Schema\Schema|\Doctrine\DBAL\Schema\SchemaDiff $schema
* @return bool
*/
private function executeSchemaChange($schema) {
@@ -154,7 +155,8 @@ class MDB2SchemaManager {
$this->conn->commit();
if ($this->conn->getDatabasePlatform() instanceof SqlitePlatform) {
- \OC_DB::reconnect();
+ $this->conn->close();
+ $this->conn->connect();
}
return true;
}
diff --git a/lib/private/db/mdb2schemareader.php b/lib/private/db/mdb2schemareader.php
index 288eef5cda0..7dd4168fb6e 100644
--- a/lib/private/db/mdb2schemareader.php
+++ b/lib/private/db/mdb2schemareader.php
@@ -8,6 +8,9 @@
namespace OC\DB;
+use Doctrine\DBAL\Platforms\AbstractPlatform;
+use OCP\IConfig;
+
class MDB2SchemaReader {
/**
* @var string $DBNAME
@@ -25,13 +28,13 @@ class MDB2SchemaReader {
protected $platform;
/**
- * @param \OC\Config $config
+ * @param \OCP\IConfig $config
* @param \Doctrine\DBAL\Platforms\AbstractPlatform $platform
*/
- public function __construct($config, $platform) {
+ public function __construct(IConfig $config, AbstractPlatform $platform) {
$this->platform = $platform;
- $this->DBNAME = $config->getValue('dbname', 'owncloud');
- $this->DBTABLEPREFIX = $config->getValue('dbtableprefix', 'oc_');
+ $this->DBNAME = $config->getSystemValue('dbname', 'owncloud');
+ $this->DBTABLEPREFIX = $config->getSystemValue('dbtableprefix', 'oc_');
}
/**
diff --git a/lib/private/db/migrator.php b/lib/private/db/migrator.php
index d05f8455551..31c648a9b65 100644
--- a/lib/private/db/migrator.php
+++ b/lib/private/db/migrator.php
@@ -14,18 +14,27 @@ use \Doctrine\DBAL\Schema\Table;
use \Doctrine\DBAL\Schema\Schema;
use \Doctrine\DBAL\Schema\SchemaConfig;
use \Doctrine\DBAL\Schema\Comparator;
+use OCP\Security\ISecureRandom;
class Migrator {
+
/**
* @var \Doctrine\DBAL\Connection $connection
*/
protected $connection;
/**
- * @param \Doctrine\DBAL\Connection $connection
+ * @var ISecureRandom
*/
- public function __construct(\Doctrine\DBAL\Connection $connection) {
+ private $random;
+
+ /**
+ * @param \Doctrine\DBAL\Connection $connection
+ * @param ISecureRandom $random
+ */
+ public function __construct(\Doctrine\DBAL\Connection $connection, ISecureRandom $random) {
$this->connection = $connection;
+ $this->random = $random;
}
/**
@@ -45,8 +54,7 @@ class Migrator {
$script = '';
$sqls = $schemaDiff->toSql($this->connection->getDatabasePlatform());
foreach ($sqls as $sql) {
- $script .= $sql . ';';
- $script .= PHP_EOL;
+ $script .= $this->convertStatementToScript($sql);
}
return $script;
@@ -84,7 +92,7 @@ class Migrator {
* @return string
*/
protected function generateTemporaryTableName($name) {
- return 'oc_' . $name . '_' . \OCP\Util::generateRandomBytes(13);
+ return 'oc_' . $name . '_' . $this->random->generate(13, ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS);
}
/**
@@ -135,7 +143,7 @@ class Migrator {
$indexName = $index->getName();
} else {
// avoid conflicts in index names
- $indexName = 'oc_' . \OCP\Util::generateRandomBytes(13);
+ $indexName = 'oc_' . $this->random->generate(13, ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS);
}
$newIndexes[] = new Index($indexName, $index->getColumns(), $index->isUnique(), $index->isPrimary());
}
@@ -201,4 +209,15 @@ class Migrator {
protected function dropTable($name) {
$this->connection->exec('DROP TABLE ' . $this->connection->quoteIdentifier($name));
}
+
+ /**
+ * @param $statement
+ * @return string
+ */
+ protected function convertStatementToScript($statement) {
+ $script = $statement . ';';
+ $script .= PHP_EOL;
+ $script .= PHP_EOL;
+ return $script;
+ }
}
diff --git a/lib/private/db/oracleconnection.php b/lib/private/db/oracleconnection.php
index e2fc4644f47..4cec7bc4ae4 100644
--- a/lib/private/db/oracleconnection.php
+++ b/lib/private/db/oracleconnection.php
@@ -20,7 +20,7 @@ class OracleConnection extends Connection {
return $return;
}
- /*
+ /**
* {@inheritDoc}
*/
public function insert($tableName, array $data, array $types = array()) {
@@ -29,7 +29,7 @@ class OracleConnection extends Connection {
return parent::insert($tableName, $data, $types);
}
- /*
+ /**
* {@inheritDoc}
*/
public function update($tableName, array $data, array $identifier, array $types = array()) {
@@ -39,11 +39,11 @@ class OracleConnection extends Connection {
return parent::update($tableName, $data, $identifier, $types);
}
- /*
+ /**
* {@inheritDoc}
*/
- public function delete($tableName, array $identifier) {
- $tableName = $this->quoteIdentifier($tableName);
+ public function delete($tableExpression, array $identifier, array $types = array()) {
+ $tableName = $this->quoteIdentifier($tableExpression);
$identifier = $this->quoteKeys($identifier);
return parent::delete($tableName, $identifier);
}
diff --git a/lib/private/db/oraclemigrator.php b/lib/private/db/oraclemigrator.php
index 1a8df2def9c..b80295cbd60 100644
--- a/lib/private/db/oraclemigrator.php
+++ b/lib/private/db/oraclemigrator.php
@@ -37,4 +37,18 @@ class OracleMigrator extends NoCheckMigrator {
protected function generateTemporaryTableName($name) {
return 'oc_' . uniqid();
}
+
+ /**
+ * @param $statement
+ * @return string
+ */
+ protected function convertStatementToScript($statement) {
+ if (substr($statement, -1) === ';') {
+ return $statement . PHP_EOL . '/' . PHP_EOL;
+ }
+ $script = $statement . ';';
+ $script .= PHP_EOL;
+ $script .= PHP_EOL;
+ return $script;
+ }
}
diff --git a/lib/private/db/sqlitemigrator.php b/lib/private/db/sqlitemigrator.php
index 18e9d19d5ee..848e4986571 100644
--- a/lib/private/db/sqlitemigrator.php
+++ b/lib/private/db/sqlitemigrator.php
@@ -10,6 +10,7 @@ namespace OC\DB;
use Doctrine\DBAL\DBALException;
use Doctrine\DBAL\Schema\Schema;
+use OCP\Security\ISecureRandom;
class SQLiteMigrator extends Migrator {
@@ -20,10 +21,11 @@ class SQLiteMigrator extends Migrator {
/**
* @param \Doctrine\DBAL\Connection $connection
+ * @param ISecureRandom $random
* @param \OCP\IConfig $config
*/
- public function __construct(\Doctrine\DBAL\Connection $connection, \OCP\IConfig $config) {
- parent::__construct($connection);
+ public function __construct(\Doctrine\DBAL\Connection $connection, ISecureRandom $random, \OCP\IConfig $config) {
+ parent::__construct($connection, $random);
$this->config = $config;
}
diff --git a/lib/private/db/sqlitesessioninit.php b/lib/private/db/sqlitesessioninit.php
index 7e1166be95b..1fff22b883a 100644
--- a/lib/private/db/sqlitesessioninit.php
+++ b/lib/private/db/sqlitesessioninit.php
@@ -18,13 +18,20 @@ class SQLiteSessionInit implements EventSubscriber {
*/
private $caseSensitiveLike;
+ /**
+ * @var string
+ */
+ private $journalMode;
+
/**
* Configure case sensitive like for each connection
*
* @param bool $caseSensitiveLike
+ * @param string $journalMode
*/
- public function __construct($caseSensitiveLike = true) {
+ public function __construct($caseSensitiveLike, $journalMode) {
$this->caseSensitiveLike = $caseSensitiveLike;
+ $this->journalMode = $journalMode;
}
/**
@@ -34,6 +41,7 @@ class SQLiteSessionInit implements EventSubscriber {
public function postConnect(ConnectionEventArgs $args) {
$sensitive = ($this->caseSensitiveLike) ? 'true' : 'false';
$args->getConnection()->executeUpdate('PRAGMA case_sensitive_like = ' . $sensitive);
+ $args->getConnection()->executeUpdate('PRAGMA journal_mode = ' . $this->journalMode);
}
public function getSubscribedEvents() {
diff --git a/lib/private/db/statementwrapper.php b/lib/private/db/statementwrapper.php
index 93fabc147ca..a85c0167e0b 100644
--- a/lib/private/db/statementwrapper.php
+++ b/lib/private/db/statementwrapper.php
@@ -64,7 +64,7 @@ class OC_DB_StatementWrapper {
} else {
$result = $this->statement->execute();
}
-
+
if ($result === false) {
return false;
}
@@ -89,9 +89,10 @@ class OC_DB_StatementWrapper {
$cArg = 0;
$inSubstring = false;
+ $queryLength = strlen($query);
// Create new query
- for ($i = 0; $i < strlen ($query); $i++) {
+ for ($i = 0; $i < $queryLength; $i++) {
if ($inSubstring == false) {
// Defines when we should start inserting values
if (substr ($query, $i, 9) == 'SUBSTRING') {
@@ -157,14 +158,16 @@ class OC_DB_StatementWrapper {
OC_Log::write('core', $entry, OC_Log::FATAL);
OC_User::setUserId(null);
- // send http status 503
- header('HTTP/1.1 503 Service Temporarily Unavailable');
- header('Status: 503 Service Temporarily Unavailable');
- OC_Template::printErrorPage('Failed to connect to database');
- die ($entry);
+ $l = \OC::$server->getL10N('lib');
+ throw new \OC\HintException(
+ $l->t('Database Error'),
+ $l->t('Please contact your system administrator.'),
+ 0,
+ $e
+ );
}
}
-
+
/**
* provide an alias for fetch
*
diff --git a/lib/private/defaults.php b/lib/private/defaults.php
index cc6c819f03f..c16ebdbe24c 100644
--- a/lib/private/defaults.php
+++ b/lib/private/defaults.php
@@ -156,6 +156,18 @@ class OC_Defaults {
}
}
+ /**
+ * Returns the short name of the software containing HTML strings
+ * @return string title
+ */
+ public function getHTMLName() {
+ if ($this->themeExist('getHTMLName')) {
+ return $this->theme->getHTMLName();
+ } else {
+ return $this->defaultName;
+ }
+ }
+
/**
* Returns entity (e.g. company name) - used for footer, copyright
* @return string entity name
diff --git a/lib/private/diagnostics/event.php b/lib/private/diagnostics/event.php
new file mode 100644
index 00000000000..af5d2ff8840
--- /dev/null
+++ b/lib/private/diagnostics/event.php
@@ -0,0 +1,89 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Diagnostics;
+
+use OCP\Diagnostics\IEvent;
+
+class Event implements IEvent {
+ /**
+ * @var string
+ */
+ protected $id;
+
+ /**
+ * @var float
+ */
+ protected $start;
+
+ /**
+ * @var float
+ */
+ protected $end;
+
+ /**
+ * @var string
+ */
+ protected $description;
+
+ /**
+ * @param string $id
+ * @param string $description
+ * @param float $start
+ */
+ public function __construct($id, $description, $start) {
+ $this->id = $id;
+ $this->description = $description;
+ $this->start = $start;
+ }
+
+ /**
+ * @param float $time
+ */
+ public function end($time) {
+ $this->end = $time;
+ }
+
+ /**
+ * @return float
+ */
+ public function getStart() {
+ return $this->start;
+ }
+
+ /**
+ * @return string
+ */
+ public function getId() {
+ return $this->id;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDescription() {
+ return $this->description;
+ }
+
+ /**
+ * @return float
+ */
+ public function getEnd() {
+ return $this->end;
+ }
+
+ /**
+ * @return float
+ */
+ public function getDuration() {
+ if (!$this->end) {
+ $this->end = microtime(true);
+ }
+ return $this->end - $this->start;
+ }
+}
diff --git a/lib/private/diagnostics/eventlogger.php b/lib/private/diagnostics/eventlogger.php
new file mode 100644
index 00000000000..9e557ebd304
--- /dev/null
+++ b/lib/private/diagnostics/eventlogger.php
@@ -0,0 +1,41 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Diagnostics;
+
+use OCP\Diagnostics\IEventLogger;
+
+class EventLogger implements IEventLogger {
+ /**
+ * @var \OC\Diagnostics\Event[]
+ */
+ private $events = array();
+
+ public function start($id, $description) {
+ $this->events[$id] = new Event($id, $description, microtime(true));
+ }
+
+ public function end($id) {
+ if (isset($this->events[$id])) {
+ $timing = $this->events[$id];
+ $timing->end(microtime(true));
+ }
+ }
+
+ public function log($id, $description, $start, $end) {
+ $this->events[$id] = new Event($id, $description, $start);
+ $this->events[$id]->end($end);
+ }
+
+ /**
+ * @return \OCP\Diagnostics\IEvent[]
+ */
+ public function getEvents() {
+ return $this->events;
+ }
+}
diff --git a/lib/private/diagnostics/nulleventlogger.php b/lib/private/diagnostics/nulleventlogger.php
new file mode 100644
index 00000000000..bf203cbfefd
--- /dev/null
+++ b/lib/private/diagnostics/nulleventlogger.php
@@ -0,0 +1,43 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Diagnostics;
+
+use OCP\Diagnostics\IEventLogger;
+
+/**
+ * Dummy event logger that doesn't actually log anything
+ */
+class NullEventLogger implements IEventLogger {
+ /**
+ * Mark the start of an event
+ *
+ * @param $id
+ * @param $description
+ */
+ public function start($id, $description) {
+ }
+
+ /**
+ * Mark the end of an event
+ *
+ * @param $id
+ */
+ public function end($id) {
+ }
+
+ public function log($id, $description, $start, $end) {
+ }
+
+ /**
+ * @return \OCP\Diagnostics\IEvent[]
+ */
+ public function getEvents() {
+ return array();
+ }
+}
diff --git a/lib/private/diagnostics/nullquerylogger.php b/lib/private/diagnostics/nullquerylogger.php
new file mode 100644
index 00000000000..8467b4dd26c
--- /dev/null
+++ b/lib/private/diagnostics/nullquerylogger.php
@@ -0,0 +1,31 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Diagnostics;
+
+use OCP\Diagnostics\IQueryLogger;
+
+class NullQueryLogger implements IQueryLogger {
+ /**
+ * @param string $sql
+ * @param array $params
+ * @param array $types
+ */
+ public function startQuery($sql, array $params = null, array $types = null) {
+ }
+
+ public function stopQuery() {
+ }
+
+ /**
+ * @return \OCP\Diagnostics\IQuery[]
+ */
+ public function getQueries() {
+ return array();
+ }
+}
diff --git a/lib/private/diagnostics/query.php b/lib/private/diagnostics/query.php
new file mode 100644
index 00000000000..d50d7592636
--- /dev/null
+++ b/lib/private/diagnostics/query.php
@@ -0,0 +1,57 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Diagnostics;
+
+use OCP\Diagnostics\IQuery;
+
+class Query implements IQuery {
+ private $sql;
+
+ private $params;
+
+ private $start;
+
+ private $end;
+
+ /**
+ * @param string $sql
+ * @param array $params
+ * @param int $start
+ */
+ public function __construct($sql, $params, $start) {
+ $this->sql = $sql;
+ $this->params = $params;
+ $this->start = $start;
+ }
+
+ public function end($time) {
+ $this->end = $time;
+ }
+
+ /**
+ * @return array
+ */
+ public function getParams() {
+ return $this->params;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSql() {
+ return $this->sql;
+ }
+
+ /**
+ * @return int
+ */
+ public function getDuration() {
+ return $this->end - $this->start;
+ }
+}
diff --git a/lib/private/diagnostics/querylogger.php b/lib/private/diagnostics/querylogger.php
new file mode 100644
index 00000000000..1f80f907173
--- /dev/null
+++ b/lib/private/diagnostics/querylogger.php
@@ -0,0 +1,47 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Diagnostics;
+
+use OCP\Diagnostics\IQueryLogger;
+
+class QueryLogger implements IQueryLogger {
+ /**
+ * @var \OC\Diagnostics\Query
+ */
+ protected $activeQuery;
+
+ /**
+ * @var \OC\Diagnostics\Query[]
+ */
+ protected $queries = array();
+
+ /**
+ * @param string $sql
+ * @param array $params
+ * @param array $types
+ */
+ public function startQuery($sql, array $params = null, array $types = null) {
+ $this->activeQuery = new Query($sql, $params, microtime(true));
+ }
+
+ public function stopQuery() {
+ if ($this->activeQuery) {
+ $this->activeQuery->end(microtime(true));
+ $this->queries[] = $this->activeQuery;
+ $this->activeQuery = null;
+ }
+ }
+
+ /**
+ * @return \OCP\Diagnostics\IQuery[]
+ */
+ public function getQueries() {
+ return $this->queries;
+ }
+}
diff --git a/lib/private/files.php b/lib/private/files.php
index a983f6f32f5..98f3c52d6c6 100644
--- a/lib/private/files.php
+++ b/lib/private/files.php
@@ -24,17 +24,14 @@
// TODO: get rid of this using proper composer packages
require_once 'mcnetic/phpzipstreamer/ZipStreamer.php';
-class GET_TYPE {
- const FILE = 1;
- const ZIP_FILES = 2;
- const ZIP_DIR = 3;
-}
-
/**
* Class for file server access
*
*/
class OC_Files {
+ const FILE = 1;
+ const ZIP_FILES = 2;
+ const ZIP_DIR = 3;
/**
* @param string $filename
@@ -76,7 +73,7 @@ class OC_Files {
}
if (is_array($files)) {
- $get_type = GET_TYPE::ZIP_FILES;
+ $get_type = self::ZIP_FILES;
$basename = basename($dir);
if ($basename) {
$name = $basename . '.zip';
@@ -88,7 +85,7 @@ class OC_Files {
} else {
$filename = $dir . '/' . $files;
if (\OC\Files\Filesystem::is_dir($dir . '/' . $files)) {
- $get_type = GET_TYPE::ZIP_DIR;
+ $get_type = self::ZIP_DIR;
// downloading root ?
if ($files === '') {
$name = 'download.zip';
@@ -97,12 +94,12 @@ class OC_Files {
}
} else {
- $get_type = GET_TYPE::FILE;
+ $get_type = self::FILE;
$name = $files;
}
}
- if ($get_type === GET_TYPE::FILE) {
+ if ($get_type === self::FILE) {
$zip = false;
if ($xsendfile && OC_App::isEnabled('files_encryption')) {
$xsendfile = false;
@@ -127,7 +124,7 @@ class OC_Files {
if ($zip) {
$executionTime = intval(ini_get('max_execution_time'));
set_time_limit(0);
- if ($get_type === GET_TYPE::ZIP_FILES) {
+ if ($get_type === self::ZIP_FILES) {
foreach ($files as $file) {
$file = $dir . '/' . $file;
if (\OC\Files\Filesystem::is_file($file)) {
@@ -138,7 +135,7 @@ class OC_Files {
self::zipAddDir($file, $zip);
}
}
- } elseif ($get_type === GET_TYPE::ZIP_DIR) {
+ } elseif ($get_type === self::ZIP_DIR) {
$file = $dir . '/' . $files;
self::zipAddDir($file, $zip);
}
@@ -195,7 +192,7 @@ class OC_Files {
* @param ZipStreamer $zip
* @param string $internalDir
*/
- public static function zipAddDir($dir, $zip, $internalDir='') {
+ public static function zipAddDir($dir, ZipStreamer $zip, $internalDir='') {
$dirname=basename($dir);
$rootDir = $internalDir.$dirname;
if (!empty($rootDir)) {
diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php
index 7ea00325a10..4157da2281c 100644
--- a/lib/private/files/cache/cache.php
+++ b/lib/private/files/cache/cache.php
@@ -71,7 +71,7 @@ class Cache {
if (empty(self::$mimetypeIds)) {
$this->loadMimetypes();
}
-
+
if (!isset(self::$mimetypeIds[$mime])) {
try{
$result = \OC_DB::executeAudited('INSERT INTO `*PREFIX*mimetypes`(`mimetype`) VALUES(?)', array($mime));
@@ -82,8 +82,8 @@ class Cache {
\OC_Log::write('core', 'Exception during mimetype insertion: ' . $e->getmessage(), \OC_Log::DEBUG);
return -1;
}
- }
-
+ }
+
return self::$mimetypeIds[$mime];
}
@@ -371,7 +371,7 @@ class Cache {
$this->remove($child['path']);
}
}
-
+
$sql = 'DELETE FROM `*PREFIX*filecache` WHERE `fileid` = ?';
\OC_DB::executeAudited($sql, array($entry['fileid']));
}
@@ -585,7 +585,7 @@ class Cache {
/**
* find a folder in the cache which has not been fully scanned
*
- * If multiply incomplete folders are in the cache, the one with the highest id will be returned,
+ * If multiple incomplete folders are in the cache, the one with the highest id will be returned,
* use the one with the highest id gives the best result with the background scanner, since that is most
* likely the folder where we stopped scanning previously
*
diff --git a/lib/private/files/cache/storage.php b/lib/private/files/cache/storage.php
index a38656d8499..d7d57811a7d 100644
--- a/lib/private/files/cache/storage.php
+++ b/lib/private/files/cache/storage.php
@@ -105,10 +105,10 @@ class Storage {
*/
public static function remove($storageId) {
$storageId = self::adjustStorageId($storageId);
+ $numericId = self::getNumericStorageId($storageId);
$sql = 'DELETE FROM `*PREFIX*storages` WHERE `id` = ?';
\OC_DB::executeAudited($sql, array($storageId));
- $numericId = self::getNumericStorageId($storageId);
if (!is_null($numericId)) {
$sql = 'DELETE FROM `*PREFIX*filecache` WHERE `storage` = ?';
\OC_DB::executeAudited($sql, array($numericId));
diff --git a/lib/private/files/cache/updater.php b/lib/private/files/cache/updater.php
index c303ff24b1f..31a4a7c21e7 100644
--- a/lib/private/files/cache/updater.php
+++ b/lib/private/files/cache/updater.php
@@ -30,6 +30,11 @@ class Updater {
$this->propagator = new ChangePropagator($view);
}
+ public function propagate($path, $time = null) {
+ $this->propagator->addChange($path);
+ $this->propagator->propagateChanges($time);
+ }
+
/**
* Update the cache for $path
*
diff --git a/lib/private/files/cache/watcher.php b/lib/private/files/cache/watcher.php
index 5a4f53fb73d..f4572895b09 100644
--- a/lib/private/files/cache/watcher.php
+++ b/lib/private/files/cache/watcher.php
@@ -55,11 +55,14 @@ class Watcher {
* check $path for updates
*
* @param string $path
- * @return boolean|array true if path was updated, otherwise the cached data is returned
+ * @param array $cachedEntry
+ * @return boolean true if path was updated
*/
- public function checkUpdate($path) {
+ public function checkUpdate($path, $cachedEntry = null) {
if ($this->watchPolicy === self::CHECK_ALWAYS or ($this->watchPolicy === self::CHECK_ONCE and array_search($path, $this->checkedPaths) === false)) {
- $cachedEntry = $this->cache->get($path);
+ if (is_null($cachedEntry)) {
+ $cachedEntry = $this->cache->get($path);
+ }
$this->checkedPaths[] = $path;
if ($this->storage->hasUpdated($path, $cachedEntry['storage_mtime'])) {
if ($this->storage->is_dir($path)) {
@@ -73,7 +76,7 @@ class Watcher {
$this->cache->correctFolderSize($path);
return true;
}
- return $cachedEntry;
+ return false;
} else {
return false;
}
diff --git a/lib/private/files/cache/wrapper/cachejail.php b/lib/private/files/cache/wrapper/cachejail.php
new file mode 100644
index 00000000000..7982293f5ed
--- /dev/null
+++ b/lib/private/files/cache/wrapper/cachejail.php
@@ -0,0 +1,255 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Cache\Wrapper;
+
+/**
+ * Jail to a subdirectory of the wrapped cache
+ */
+class CacheJail extends CacheWrapper {
+ /**
+ * @var string
+ */
+ protected $root;
+
+ /**
+ * @param \OC\Files\Cache\Cache $cache
+ * @param string $root
+ */
+ public function __construct($cache, $root) {
+ parent::__construct($cache);
+ $this->root = $root;
+ }
+
+ protected function getSourcePath($path) {
+ if ($path === '') {
+ return $this->root;
+ } else {
+ return $this->root . '/' . $path;
+ }
+ }
+
+ /**
+ * @param string $path
+ * @return null|string the jailed path or null if the path is outside the jail
+ */
+ protected function getJailedPath($path) {
+ $rootLength = strlen($this->root) + 1;
+ if ($path === $this->root) {
+ return '';
+ } else if (substr($path, 0, $rootLength) === $this->root . '/') {
+ return substr($path, $rootLength);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * @param array $entry
+ * @return array
+ */
+ protected function formatCacheEntry($entry) {
+ if (isset($entry['path'])) {
+ $entry['path'] = $this->getJailedPath($entry['path']);
+ }
+ return $entry;
+ }
+
+ protected function filterCacheEntry($entry) {
+ $rootLength = strlen($this->root) + 1;
+ return ($entry['path'] === $this->root) or (substr($entry['path'], 0, $rootLength) === $this->root . '/');
+ }
+
+ /**
+ * get the stored metadata of a file or folder
+ *
+ * @param string /int $file
+ * @return array|false
+ */
+ public function get($file) {
+ if (is_string($file) or $file == '') {
+ $file = $this->getSourcePath($file);
+ }
+ return parent::get($file);
+ }
+
+ /**
+ * store meta data for a file or folder
+ *
+ * @param string $file
+ * @param array $data
+ *
+ * @return int file id
+ */
+ public function put($file, array $data) {
+ return $this->cache->put($this->getSourcePath($file), $data);
+ }
+
+ /**
+ * update the metadata in the cache
+ *
+ * @param int $id
+ * @param array $data
+ */
+ public function update($id, array $data) {
+ $this->cache->update($this->getSourcePath($id), $data);
+ }
+
+ /**
+ * get the file id for a file
+ *
+ * @param string $file
+ * @return int
+ */
+ public function getId($file) {
+ return $this->cache->getId($this->getSourcePath($file));
+ }
+
+ /**
+ * get the id of the parent folder of a file
+ *
+ * @param string $file
+ * @return int
+ */
+ public function getParentId($file) {
+ if ($file === '') {
+ return -1;
+ } else {
+ return $this->cache->getParentId($this->getSourcePath($file));
+ }
+ }
+
+ /**
+ * check if a file is available in the cache
+ *
+ * @param string $file
+ * @return bool
+ */
+ public function inCache($file) {
+ return $this->cache->inCache($this->getSourcePath($file));
+ }
+
+ /**
+ * remove a file or folder from the cache
+ *
+ * @param string $file
+ */
+ public function remove($file) {
+ $this->cache->remove($this->getSourcePath($file));
+ }
+
+ /**
+ * Move a file or folder in the cache
+ *
+ * @param string $source
+ * @param string $target
+ */
+ public function move($source, $target) {
+ $this->cache->move($this->getSourcePath($source), $this->getSourcePath($target));
+ }
+
+ /**
+ * remove all entries for files that are stored on the storage from the cache
+ */
+ public function clear() {
+ $this->cache->remove($this->root);
+ }
+
+ /**
+ * @param string $file
+ *
+ * @return int, Cache::NOT_FOUND, Cache::PARTIAL, Cache::SHALLOW or Cache::COMPLETE
+ */
+ public function getStatus($file) {
+ return $this->cache->getStatus($this->getSourcePath($file));
+ }
+
+ private function formatSearchResults($results) {
+ $results = array_filter($results, array($this, 'filterCacheEntry'));
+ $results = array_values($results);
+ return array_map(array($this, 'formatCacheEntry'), $results);
+ }
+
+ /**
+ * search for files matching $pattern
+ *
+ * @param string $pattern
+ * @return array an array of file data
+ */
+ public function search($pattern) {
+ $results = $this->cache->search($pattern);
+ return $this->formatSearchResults($results);
+ }
+
+ /**
+ * search for files by mimetype
+ *
+ * @param string $mimetype
+ * @return array
+ */
+ public function searchByMime($mimetype) {
+ $results = $this->cache->searchByMime($mimetype);
+ return $this->formatSearchResults($results);
+ }
+
+ /**
+ * update the folder size and the size of all parent folders
+ *
+ * @param string|boolean $path
+ * @param array $data (optional) meta data of the folder
+ */
+ public function correctFolderSize($path, $data = null) {
+ $this->cache->correctFolderSize($this->getSourcePath($path), $data);
+ }
+
+ /**
+ * get the size of a folder and set it in the cache
+ *
+ * @param string $path
+ * @param array $entry (optional) meta data of the folder
+ * @return int
+ */
+ public function calculateFolderSize($path, $entry = null) {
+ return $this->cache->calculateFolderSize($this->getSourcePath($path), $entry);
+ }
+
+ /**
+ * get all file ids on the files on the storage
+ *
+ * @return int[]
+ */
+ public function getAll() {
+ // not supported
+ return array();
+ }
+
+ /**
+ * find a folder in the cache which has not been fully scanned
+ *
+ * If multiply incomplete folders are in the cache, the one with the highest id will be returned,
+ * use the one with the highest id gives the best result with the background scanner, since that is most
+ * likely the folder where we stopped scanning previously
+ *
+ * @return string|bool the path of the folder or false when no folder matched
+ */
+ public function getIncomplete() {
+ // not supported
+ return false;
+ }
+
+ /**
+ * get the path of a file on this storage by it's id
+ *
+ * @param int $id
+ * @return string|null
+ */
+ public function getPathById($id) {
+ $path = $this->cache->getPathById($id);
+ return $this->getJailedPath($path);
+ }
+}
diff --git a/lib/private/files/cache/wrapper/cachepermissionsmask.php b/lib/private/files/cache/wrapper/cachepermissionsmask.php
new file mode 100644
index 00000000000..6ce6a4ebc44
--- /dev/null
+++ b/lib/private/files/cache/wrapper/cachepermissionsmask.php
@@ -0,0 +1,32 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Cache\Wrapper;
+
+class CachePermissionsMask extends CacheWrapper {
+ /**
+ * @var int
+ */
+ protected $mask;
+
+ /**
+ * @param \OC\Files\Cache\Cache $cache
+ * @param int $mask
+ */
+ public function __construct($cache, $mask) {
+ parent::__construct($cache);
+ $this->mask = $mask;
+ }
+
+ protected function formatCacheEntry($entry) {
+ if (isset($entry['permissions'])) {
+ $entry['permissions'] &= $this->mask;
+ }
+ return $entry;
+ }
+}
diff --git a/lib/private/files/cache/wrapper/cachewrapper.php b/lib/private/files/cache/wrapper/cachewrapper.php
new file mode 100644
index 00000000000..040358ec657
--- /dev/null
+++ b/lib/private/files/cache/wrapper/cachewrapper.php
@@ -0,0 +1,247 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Cache\Wrapper;
+
+use OC\Files\Cache\Cache;
+
+class CacheWrapper extends Cache {
+ /**
+ * @var \OC\Files\Cache\Cache
+ */
+ protected $cache;
+
+ /**
+ * @param \OC\Files\Cache\Cache $cache
+ */
+ public function __construct($cache) {
+ $this->cache = $cache;
+ }
+
+ /**
+ * Make it easy for wrappers to modify every returned cache entry
+ *
+ * @param array $entry
+ * @return array
+ */
+ protected function formatCacheEntry($entry) {
+ return $entry;
+ }
+
+ /**
+ * get the stored metadata of a file or folder
+ *
+ * @param string /int $file
+ * @return array|false
+ */
+ public function get($file) {
+ $result = $this->cache->get($file);
+ if ($result) {
+ $result = $this->formatCacheEntry($result);
+ }
+ return $result;
+ }
+
+ /**
+ * get the metadata of all files stored in $folder
+ *
+ * @param string $folder
+ * @return array
+ */
+ public function getFolderContents($folder) {
+ // cant do a simple $this->cache->.... call here since getFolderContentsById needs to be called on this
+ // and not the wrapped cache
+ $fileId = $this->getId($folder);
+ return $this->getFolderContentsById($fileId);
+ }
+
+ /**
+ * get the metadata of all files stored in $folder
+ *
+ * @param int $fileId the file id of the folder
+ * @return array
+ */
+ public function getFolderContentsById($fileId) {
+ $results = $this->cache->getFolderContentsById($fileId);
+ return array_map(array($this, 'formatCacheEntry'), $results);
+ }
+
+ /**
+ * store meta data for a file or folder
+ *
+ * @param string $file
+ * @param array $data
+ *
+ * @return int file id
+ */
+ public function put($file, array $data) {
+ return $this->cache->put($file, $data);
+ }
+
+ /**
+ * update the metadata in the cache
+ *
+ * @param int $id
+ * @param array $data
+ */
+ public function update($id, array $data) {
+ $this->cache->update($id, $data);
+ }
+
+ /**
+ * get the file id for a file
+ *
+ * @param string $file
+ * @return int
+ */
+ public function getId($file) {
+ return $this->cache->getId($file);
+ }
+
+ /**
+ * get the id of the parent folder of a file
+ *
+ * @param string $file
+ * @return int
+ */
+ public function getParentId($file) {
+ return $this->cache->getParentId($file);
+ }
+
+ /**
+ * check if a file is available in the cache
+ *
+ * @param string $file
+ * @return bool
+ */
+ public function inCache($file) {
+ return $this->cache->inCache($file);
+ }
+
+ /**
+ * remove a file or folder from the cache
+ *
+ * @param string $file
+ */
+ public function remove($file) {
+ $this->cache->remove($file);
+ }
+
+ /**
+ * Move a file or folder in the cache
+ *
+ * @param string $source
+ * @param string $target
+ */
+ public function move($source, $target) {
+ $this->cache->move($source, $target);
+ }
+
+ /**
+ * remove all entries for files that are stored on the storage from the cache
+ */
+ public function clear() {
+ $this->cache->clear();
+ }
+
+ /**
+ * @param string $file
+ *
+ * @return int, Cache::NOT_FOUND, Cache::PARTIAL, Cache::SHALLOW or Cache::COMPLETE
+ */
+ public function getStatus($file) {
+ return $this->cache->getStatus($file);
+ }
+
+ /**
+ * search for files matching $pattern
+ *
+ * @param string $pattern
+ * @return array an array of file data
+ */
+ public function search($pattern) {
+ $results = $this->cache->search($pattern);
+ return array_map(array($this, 'formatCacheEntry'), $results);
+ }
+
+ /**
+ * search for files by mimetype
+ *
+ * @param string $mimetype
+ * @return array
+ */
+ public function searchByMime($mimetype) {
+ $results = $this->cache->searchByMime($mimetype);
+ return array_map(array($this, 'formatCacheEntry'), $results);
+ }
+
+ /**
+ * update the folder size and the size of all parent folders
+ *
+ * @param string|boolean $path
+ * @param array $data (optional) meta data of the folder
+ */
+ public function correctFolderSize($path, $data = null) {
+ $this->cache->correctFolderSize($path, $data);
+ }
+
+ /**
+ * get the size of a folder and set it in the cache
+ *
+ * @param string $path
+ * @param array $entry (optional) meta data of the folder
+ * @return int
+ */
+ public function calculateFolderSize($path, $entry = null) {
+ return $this->cache->calculateFolderSize($path, $entry);
+ }
+
+ /**
+ * get all file ids on the files on the storage
+ *
+ * @return int[]
+ */
+ public function getAll() {
+ return $this->cache->getAll();
+ }
+
+ /**
+ * find a folder in the cache which has not been fully scanned
+ *
+ * If multiple incomplete folders are in the cache, the one with the highest id will be returned,
+ * use the one with the highest id gives the best result with the background scanner, since that is most
+ * likely the folder where we stopped scanning previously
+ *
+ * @return string|bool the path of the folder or false when no folder matched
+ */
+ public function getIncomplete() {
+ return $this->cache->getIncomplete();
+ }
+
+ /**
+ * get the path of a file on this storage by it's id
+ *
+ * @param int $id
+ * @return string|null
+ */
+ public function getPathById($id) {
+ return $this->cache->getPathById($id);
+ }
+
+ /**
+ * get the storage id of the storage for a file and the internal path of the file
+ * unlike getPathById this does not limit the search to files on this storage and
+ * instead does a global search in the cache table
+ *
+ * @param int $id
+ * @return array, first element holding the storage id, second the path
+ */
+ static public function getById($id) {
+ return parent::getById($id);
+ }
+}
diff --git a/lib/private/files/fileinfo.php b/lib/private/files/fileinfo.php
index 8457a2d160f..8bab51f0737 100644
--- a/lib/private/files/fileinfo.php
+++ b/lib/private/files/fileinfo.php
@@ -122,7 +122,7 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
* @return int
*/
public function getSize() {
- return $this->data['size'];
+ return isset($this->data['size']) ? $this->data['size'] : 0;
}
/**
@@ -173,14 +173,14 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
* @return bool
*/
public function isReadable() {
- return $this->checkPermissions(\OCP\PERMISSION_READ);
+ return $this->checkPermissions(\OCP\Constants::PERMISSION_READ);
}
/**
* @return bool
*/
public function isUpdateable() {
- return $this->checkPermissions(\OCP\PERMISSION_UPDATE);
+ return $this->checkPermissions(\OCP\Constants::PERMISSION_UPDATE);
}
/**
@@ -189,21 +189,21 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
* @return bool
*/
public function isCreatable() {
- return $this->checkPermissions(\OCP\PERMISSION_CREATE);
+ return $this->checkPermissions(\OCP\Constants::PERMISSION_CREATE);
}
/**
* @return bool
*/
public function isDeletable() {
- return $this->checkPermissions(\OCP\PERMISSION_DELETE);
+ return $this->checkPermissions(\OCP\Constants::PERMISSION_DELETE);
}
/**
* @return bool
*/
public function isShareable() {
- return $this->checkPermissions(\OCP\PERMISSION_SHARE);
+ return $this->checkPermissions(\OCP\Constants::PERMISSION_SHARE);
}
/**
diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php
index db46bcfd1ea..6c8fa8c90ba 100644
--- a/lib/private/files/filesystem.php
+++ b/lib/private/files/filesystem.php
@@ -45,6 +45,7 @@ class Filesystem {
*/
static private $defaultInstance;
+ static private $usersSetup = array();
/**
* classname which used for hooks handling
@@ -158,6 +159,11 @@ class Filesystem {
*/
const signal_param_run = 'run';
+ const signal_create_mount = 'create_mount';
+ const signal_delete_mount = 'delete_mount';
+ const signal_param_mount_type = 'mounttype';
+ const signal_param_users = 'users';
+
/**
* @var \OC\Files\Storage\Loader $loader
*/
@@ -316,7 +322,10 @@ class Filesystem {
if ($user == '') {
$user = \OC_User::getUser();
}
- $parser = new \OC\ArrayParser();
+ if (isset(self::$usersSetup[$user])) {
+ return;
+ }
+ self::$usersSetup[$user] = true;
$root = \OC_User::getHome($user);
@@ -422,6 +431,7 @@ class Filesystem {
*/
public static function clearMounts() {
if (self::$mounts) {
+ self::$usersSetup = array();
self::$mounts->clear();
}
}
@@ -688,13 +698,22 @@ class Filesystem {
* @param bool $stripTrailingSlash
* @return string
*/
- public static function normalizePath($path, $stripTrailingSlash = true) {
+ public static function normalizePath($path, $stripTrailingSlash = true, $isAbsolutePath = false) {
if ($path == '') {
return '/';
}
+
//no windows style slashes
$path = str_replace('\\', '/', $path);
+ // When normalizing an absolute path, we need to ensure that the drive-letter
+ // is still at the beginning on windows
+ $windows_drive_letter = '';
+ if ($isAbsolutePath && \OC_Util::runningOnWindows() && preg_match('#^([a-zA-Z])$#', $path[0]) && $path[1] == ':' && $path[2] == '/') {
+ $windows_drive_letter = substr($path, 0, 2);
+ $path = substr($path, 2);
+ }
+
//add leading slash
if ($path[0] !== '/') {
$path = '/' . $path;
@@ -723,7 +742,7 @@ class Filesystem {
//normalize unicode if possible
$path = \OC_Util::normalizeUnicode($path);
- return $path;
+ return $windows_drive_letter . $path;
}
/**
diff --git a/lib/private/files/mount/manager.php b/lib/private/files/mount/manager.php
index e5180cfe173..0ccf42941de 100644
--- a/lib/private/files/mount/manager.php
+++ b/lib/private/files/mount/manager.php
@@ -19,7 +19,7 @@ class Manager {
/**
* @param Mount $mount
*/
- public function addMount($mount) {
+ public function addMount(Mount $mount) {
$this->mounts[$mount->getMountPoint()] = $mount;
}
diff --git a/lib/private/files/node/file.php b/lib/private/files/node/file.php
index 75d5e0166b6..81e251c20b8 100644
--- a/lib/private/files/node/file.php
+++ b/lib/private/files/node/file.php
@@ -16,7 +16,7 @@ class File extends Node implements \OCP\Files\File {
* @throws \OCP\Files\NotPermittedException
*/
public function getContent() {
- if ($this->checkPermissions(\OCP\PERMISSION_READ)) {
+ if ($this->checkPermissions(\OCP\Constants::PERMISSION_READ)) {
/**
* @var \OC\Files\Storage\Storage $storage;
*/
@@ -31,7 +31,7 @@ class File extends Node implements \OCP\Files\File {
* @throws \OCP\Files\NotPermittedException
*/
public function putContent($data) {
- if ($this->checkPermissions(\OCP\PERMISSION_UPDATE)) {
+ if ($this->checkPermissions(\OCP\Constants::PERMISSION_UPDATE)) {
$this->sendHooks(array('preWrite'));
$this->view->file_put_contents($this->path, $data);
$this->sendHooks(array('postWrite'));
@@ -55,7 +55,7 @@ class File extends Node implements \OCP\Files\File {
public function fopen($mode) {
$preHooks = array();
$postHooks = array();
- $requiredPermissions = \OCP\PERMISSION_READ;
+ $requiredPermissions = \OCP\Constants::PERMISSION_READ;
switch ($mode) {
case 'r+':
case 'rb+':
@@ -73,7 +73,7 @@ class File extends Node implements \OCP\Files\File {
case 'ab':
$preHooks[] = 'preWrite';
$postHooks[] = 'postWrite';
- $requiredPermissions |= \OCP\PERMISSION_UPDATE;
+ $requiredPermissions |= \OCP\Constants::PERMISSION_UPDATE;
break;
}
@@ -88,7 +88,7 @@ class File extends Node implements \OCP\Files\File {
}
public function delete() {
- if ($this->checkPermissions(\OCP\PERMISSION_DELETE)) {
+ if ($this->checkPermissions(\OCP\Constants::PERMISSION_DELETE)) {
$this->sendHooks(array('preDelete'));
$this->view->unlink($this->path);
$nonExisting = new NonExistingFile($this->root, $this->view, $this->path);
diff --git a/lib/private/files/node/folder.php b/lib/private/files/node/folder.php
index 8c7acc339ae..83e20871528 100644
--- a/lib/private/files/node/folder.php
+++ b/lib/private/files/node/folder.php
@@ -180,7 +180,7 @@ class Folder extends Node implements \OCP\Files\Folder {
* @throws \OCP\Files\NotPermittedException
*/
public function newFolder($path) {
- if ($this->checkPermissions(\OCP\PERMISSION_CREATE)) {
+ if ($this->checkPermissions(\OCP\Constants::PERMISSION_CREATE)) {
$fullPath = $this->getFullPath($path);
$nonExisting = new NonExistingFolder($this->root, $this->view, $fullPath);
$this->root->emit('\OC\Files', 'preWrite', array($nonExisting));
@@ -201,7 +201,7 @@ class Folder extends Node implements \OCP\Files\Folder {
* @throws \OCP\Files\NotPermittedException
*/
public function newFile($path) {
- if ($this->checkPermissions(\OCP\PERMISSION_CREATE)) {
+ if ($this->checkPermissions(\OCP\Constants::PERMISSION_CREATE)) {
$fullPath = $this->getFullPath($path);
$nonExisting = new NonExistingFile($this->root, $this->view, $fullPath);
$this->root->emit('\OC\Files', 'preWrite', array($nonExisting));
@@ -325,11 +325,11 @@ class Folder extends Node implements \OCP\Files\Folder {
* @return bool
*/
public function isCreatable() {
- return $this->checkPermissions(\OCP\PERMISSION_CREATE);
+ return $this->checkPermissions(\OCP\Constants::PERMISSION_CREATE);
}
public function delete() {
- if ($this->checkPermissions(\OCP\PERMISSION_DELETE)) {
+ if ($this->checkPermissions(\OCP\Constants::PERMISSION_DELETE)) {
$this->sendHooks(array('preDelete'));
$this->view->rmdir($this->path);
$nonExisting = new NonExistingFolder($this->root, $this->view, $this->path);
diff --git a/lib/private/files/node/node.php b/lib/private/files/node/node.php
index bc075911749..c52f5bbd54f 100644
--- a/lib/private/files/node/node.php
+++ b/lib/private/files/node/node.php
@@ -81,7 +81,7 @@ class Node implements \OCP\Files\Node {
* @throws \OCP\Files\NotPermittedException
*/
public function touch($mtime = null) {
- if ($this->checkPermissions(\OCP\PERMISSION_UPDATE)) {
+ if ($this->checkPermissions(\OCP\Constants::PERMISSION_UPDATE)) {
$this->sendHooks(array('preTouch'));
$this->view->touch($this->path, $mtime);
$this->sendHooks(array('postTouch'));
@@ -163,28 +163,28 @@ class Node implements \OCP\Files\Node {
* @return bool
*/
public function isReadable() {
- return $this->checkPermissions(\OCP\PERMISSION_READ);
+ return $this->checkPermissions(\OCP\Constants::PERMISSION_READ);
}
/**
* @return bool
*/
public function isUpdateable() {
- return $this->checkPermissions(\OCP\PERMISSION_UPDATE);
+ return $this->checkPermissions(\OCP\Constants::PERMISSION_UPDATE);
}
/**
* @return bool
*/
public function isDeletable() {
- return $this->checkPermissions(\OCP\PERMISSION_DELETE);
+ return $this->checkPermissions(\OCP\Constants::PERMISSION_DELETE);
}
/**
* @return bool
*/
public function isShareable() {
- return $this->checkPermissions(\OCP\PERMISSION_SHARE);
+ return $this->checkPermissions(\OCP\Constants::PERMISSION_SHARE);
}
/**
diff --git a/lib/private/files/node/root.php b/lib/private/files/node/root.php
index 18e7a6b681a..1e8387dc5cb 100644
--- a/lib/private/files/node/root.php
+++ b/lib/private/files/node/root.php
@@ -262,7 +262,7 @@ class Root extends Folder implements Emitter {
* @return int
*/
public function getPermissions() {
- return \OCP\PERMISSION_CREATE;
+ return \OCP\Constants::PERMISSION_CREATE;
}
/**
diff --git a/lib/private/files/objectstore/homeobjectstorestorage.php b/lib/private/files/objectstore/homeobjectstorestorage.php
index 947fc496b20..14fc604a7f0 100644
--- a/lib/private/files/objectstore/homeobjectstorestorage.php
+++ b/lib/private/files/objectstore/homeobjectstorestorage.php
@@ -34,12 +34,6 @@ class HomeObjectStoreStorage extends ObjectStoreStorage implements \OCP\Files\IH
}
$this->user = $params['user'];
parent::__construct($params);
-
-
- //initialize cache with root directory in cache
- if ( ! $this->is_dir('files') ) {
- $this->mkdir('files');
- }
}
public function getId () {
diff --git a/lib/private/files/objectstore/objectstorestorage.php b/lib/private/files/objectstore/objectstorestorage.php
index 241864bcccd..b0095ad94bb 100644
--- a/lib/private/files/objectstore/objectstorestorage.php
+++ b/lib/private/files/objectstore/objectstorestorage.php
@@ -72,7 +72,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
'size' => 0,
'mtime' => $mTime,
'storage_mtime' => $mTime,
- 'permissions' => \OCP\PERMISSION_ALL,
+ 'permissions' => \OCP\Constants::PERMISSION_ALL,
);
if ($dirName === '' && !$parentExists) {
@@ -332,7 +332,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
'size' => 0,
'mtime' => $mtime,
'storage_mtime' => $mtime,
- 'permissions' => \OCP\PERMISSION_ALL,
+ 'permissions' => \OCP\Constants::PERMISSION_ALL,
);
$fileId = $this->getCache()->put($path, $stat);
try {
@@ -349,7 +349,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
public function writeBack($tmpFile) {
if (!isset(self::$tmpFiles[$tmpFile])) {
- return false;
+ return;
}
$path = self::$tmpFiles[$tmpFile];
@@ -357,7 +357,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
if (empty($stat)) {
// create new file
$stat = array(
- 'permissions' => \OCP\PERMISSION_ALL,
+ 'permissions' => \OCP\Constants::PERMISSION_ALL,
);
}
// update stat with new data
@@ -375,9 +375,8 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
} catch (\Exception $ex) {
$this->getCache()->remove($path);
\OCP\Util::writeLog('objectstore', 'Could not create object: ' . $ex->getMessage(), \OCP\Util::ERROR);
- return false;
+ throw $ex; // make this bubble up
}
- return true;
}
/**
diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php
index 518d3ec400c..d76c6aa031b 100644
--- a/lib/private/files/storage/common.php
+++ b/lib/private/files/storage/common.php
@@ -113,19 +113,19 @@ abstract class Common implements \OC\Files\Storage\Storage {
public function getPermissions($path) {
$permissions = 0;
if ($this->isCreatable($path)) {
- $permissions |= \OCP\PERMISSION_CREATE;
+ $permissions |= \OCP\Constants::PERMISSION_CREATE;
}
if ($this->isReadable($path)) {
- $permissions |= \OCP\PERMISSION_READ;
+ $permissions |= \OCP\Constants::PERMISSION_READ;
}
if ($this->isUpdatable($path)) {
- $permissions |= \OCP\PERMISSION_UPDATE;
+ $permissions |= \OCP\Constants::PERMISSION_UPDATE;
}
if ($this->isDeletable($path)) {
- $permissions |= \OCP\PERMISSION_DELETE;
+ $permissions |= \OCP\Constants::PERMISSION_DELETE;
}
if ($this->isSharable($path)) {
- $permissions |= \OCP\PERMISSION_SHARE;
+ $permissions |= \OCP\Constants::PERMISSION_SHARE;
}
return $permissions;
}
diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php
index a0ef79a7b32..a2832bce009 100644
--- a/lib/private/files/storage/dav.php
+++ b/lib/private/files/storage/dav.php
@@ -58,7 +58,7 @@ class DAV extends \OC\Files\Storage\Common {
$this->root .= '/';
}
} else {
- throw new \Exception();
+ throw new \Exception('Invalid webdav storage configuration');
}
}
@@ -85,7 +85,7 @@ class DAV extends \OC\Files\Storage\Common {
return 'webdav::' . $this->user . '@' . $this->host . '/' . $this->root;
}
- protected function createBaseUri() {
+ public function createBaseUri() {
$baseUri = 'http';
if ($this->secure) {
$baseUri .= 's';
@@ -416,30 +416,31 @@ class DAV extends \OC\Files\Storage\Common {
}
public function isUpdatable($path) {
- return (bool)($this->getPermissions($path) & \OCP\PERMISSION_UPDATE);
+ return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_UPDATE);
}
public function isCreatable($path) {
- return (bool)($this->getPermissions($path) & \OCP\PERMISSION_CREATE);
+ return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_CREATE);
}
public function isSharable($path) {
- return (bool)($this->getPermissions($path) & \OCP\PERMISSION_SHARE);
+ return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_SHARE);
}
public function isDeletable($path) {
- return (bool)($this->getPermissions($path) & \OCP\PERMISSION_DELETE);
+ return (bool)($this->getPermissions($path) & \OCP\Constants::PERMISSION_DELETE);
}
public function getPermissions($path) {
$this->init();
+ $path = $this->cleanPath($path);
$response = $this->client->propfind($this->encodePath($path), array('{http://owncloud.org/ns}permissions'));
if (isset($response['{http://owncloud.org/ns}permissions'])) {
return $this->parsePermissions($response['{http://owncloud.org/ns}permissions']);
} else if ($this->is_dir($path)) {
- return \OCP\PERMISSION_ALL;
+ return \OCP\Constants::PERMISSION_ALL;
} else if ($this->file_exists($path)) {
- return \OCP\PERMISSION_ALL - \OCP\PERMISSION_CREATE;
+ return \OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_CREATE;
} else {
return 0;
}
@@ -450,19 +451,19 @@ class DAV extends \OC\Files\Storage\Common {
* @return int
*/
protected function parsePermissions($permissionsString) {
- $permissions = \OCP\PERMISSION_READ;
+ $permissions = \OCP\Constants::PERMISSION_READ;
if (strpos($permissionsString, 'R') !== false) {
- $permissions |= \OCP\PERMISSION_SHARE;
+ $permissions |= \OCP\Constants::PERMISSION_SHARE;
}
if (strpos($permissionsString, 'D') !== false) {
- $permissions |= \OCP\PERMISSION_DELETE;
+ $permissions |= \OCP\Constants::PERMISSION_DELETE;
}
if (strpos($permissionsString, 'W') !== false) {
- $permissions |= \OCP\PERMISSION_UPDATE;
+ $permissions |= \OCP\Constants::PERMISSION_UPDATE;
}
if (strpos($permissionsString, 'CK') !== false) {
- $permissions |= \OCP\PERMISSION_CREATE;
- $permissions |= \OCP\PERMISSION_UPDATE;
+ $permissions |= \OCP\Constants::PERMISSION_CREATE;
+ $permissions |= \OCP\Constants::PERMISSION_UPDATE;
}
return $permissions;
}
@@ -477,6 +478,7 @@ class DAV extends \OC\Files\Storage\Common {
*/
public function hasUpdated($path, $time) {
$this->init();
+ $path = $this->cleanPath($path);
try {
$response = $this->client->propfind($this->encodePath($path), array(
'{DAV:}getlastmodified',
diff --git a/lib/private/files/storage/local.php b/lib/private/files/storage/local.php
index 0a612ae505b..e8be7daba7e 100644
--- a/lib/private/files/storage/local.php
+++ b/lib/private/files/storage/local.php
@@ -35,7 +35,7 @@ if (\OC_Util::runningOnWindows()) {
}
public function mkdir($path) {
- return @mkdir($this->datadir . $path, 0777, true);
+ return @mkdir($this->getSourcePath($path), 0777, true);
}
public function rmdir($path) {
@@ -44,7 +44,7 @@ if (\OC_Util::runningOnWindows()) {
}
try {
$it = new \RecursiveIteratorIterator(
- new \RecursiveDirectoryIterator($this->datadir . $path),
+ new \RecursiveDirectoryIterator($this->getSourcePath($path)),
\RecursiveIteratorIterator::CHILD_FIRST
);
/**
@@ -68,29 +68,30 @@ if (\OC_Util::runningOnWindows()) {
}
$it->next();
}
- return rmdir($this->datadir . $path);
+ return rmdir($this->getSourcePath($path));
} catch (\UnexpectedValueException $e) {
return false;
}
}
public function opendir($path) {
- return opendir($this->datadir . $path);
+ return opendir($this->getSourcePath($path));
}
public function is_dir($path) {
if (substr($path, -1) == '/') {
$path = substr($path, 0, -1);
}
- return is_dir($this->datadir . $path);
+ return is_dir($this->getSourcePath($path));
}
public function is_file($path) {
- return is_file($this->datadir . $path);
+ return is_file($this->getSourcePath($path));
}
public function stat($path) {
- $fullPath = $this->datadir . $path;
+ clearstatcache();
+ $fullPath = $this->getSourcePath($path);
$statResult = stat($fullPath);
if (PHP_INT_SIZE === 4 && !$this->is_dir($path)) {
$filesize = $this->filesize($path);
@@ -101,9 +102,9 @@ if (\OC_Util::runningOnWindows()) {
}
public function filetype($path) {
- $filetype = filetype($this->datadir . $path);
+ $filetype = filetype($this->getSourcePath($path));
if ($filetype == 'link') {
- $filetype = filetype(realpath($this->datadir . $path));
+ $filetype = filetype(realpath($this->getSourcePath($path)));
}
return $filetype;
}
@@ -112,7 +113,7 @@ if (\OC_Util::runningOnWindows()) {
if ($this->is_dir($path)) {
return 0;
}
- $fullPath = $this->datadir . $path;
+ $fullPath = $this->getSourcePath($path);
if (PHP_INT_SIZE === 4) {
$helper = new \OC\LargeFileHelper;
return $helper->getFilesize($fullPath);
@@ -121,19 +122,20 @@ if (\OC_Util::runningOnWindows()) {
}
public function isReadable($path) {
- return is_readable($this->datadir . $path);
+ return is_readable($this->getSourcePath($path));
}
public function isUpdatable($path) {
- return is_writable($this->datadir . $path);
+ return is_writable($this->getSourcePath($path));
}
public function file_exists($path) {
- return file_exists($this->datadir . $path);
+ return file_exists($this->getSourcePath($path));
}
public function filemtime($path) {
- return filemtime($this->datadir . $path);
+ clearstatcache($this->getSourcePath($path));
+ return filemtime($this->getSourcePath($path));
}
public function touch($path, $mtime = null) {
@@ -144,30 +146,30 @@ if (\OC_Util::runningOnWindows()) {
return false;
}
if (!is_null($mtime)) {
- $result = touch($this->datadir . $path, $mtime);
+ $result = touch($this->getSourcePath($path), $mtime);
} else {
- $result = touch($this->datadir . $path);
+ $result = touch($this->getSourcePath($path));
}
if ($result) {
- clearstatcache(true, $this->datadir . $path);
+ clearstatcache(true, $this->getSourcePath($path));
}
return $result;
}
public function file_get_contents($path) {
- return file_get_contents($this->datadir . $path);
+ return file_get_contents($this->getSourcePath($path));
}
- public function file_put_contents($path, $data) { //trigger_error("$path = ".var_export($path, 1));
- return file_put_contents($this->datadir . $path, $data);
+ public function file_put_contents($path, $data) {
+ return file_put_contents($this->getSourcePath($path), $data);
}
public function unlink($path) {
if ($this->is_dir($path)) {
return $this->rmdir($path);
} else if ($this->is_file($path)) {
- return unlink($this->datadir . $path);
+ return unlink($this->getSourcePath($path));
} else {
return false;
}
@@ -199,27 +201,27 @@ if (\OC_Util::runningOnWindows()) {
$this->unlink($path2);
}
- return rename($this->datadir . $path1, $this->datadir . $path2);
+ return rename($this->getSourcePath($path1), $this->getSourcePath($path2));
}
public function copy($path1, $path2) {
if ($this->is_dir($path1)) {
return parent::copy($path1, $path2);
} else {
- return copy($this->datadir . $path1, $this->datadir . $path2);
+ return copy($this->getSourcePath($path1), $this->getSourcePath($path2));
}
}
public function fopen($path, $mode) {
- return fopen($this->datadir . $path, $mode);
+ return fopen($this->getSourcePath($path), $mode);
}
public function hash($type, $path, $raw = false) {
- return hash_file($type, $this->datadir . $path, $raw);
+ return hash_file($type, $this->getSourcePath($path), $raw);
}
public function free_space($path) {
- $space = @disk_free_space($this->datadir . $path);
+ $space = @disk_free_space($this->getSourcePath($path));
if ($space === false || is_null($space)) {
return \OCP\Files\FileInfo::SPACE_UNKNOWN;
}
@@ -231,11 +233,11 @@ if (\OC_Util::runningOnWindows()) {
}
public function getLocalFile($path) {
- return $this->datadir . $path;
+ return $this->getSourcePath($path);
}
public function getLocalFolder($path) {
- return $this->datadir . $path;
+ return $this->getSourcePath($path);
}
/**
@@ -243,12 +245,16 @@ if (\OC_Util::runningOnWindows()) {
*/
protected function searchInDir($query, $dir = '') {
$files = array();
- foreach (scandir($this->datadir . $dir) as $item) {
- if ($item == '.' || $item == '..') continue;
+ $physicalDir = $this->getSourcePath($dir);
+ foreach (scandir($physicalDir) as $item) {
+ if ($item == '.' || $item == '..')
+ continue;
+ $physicalItem = $physicalDir . '/' . $item;
+
if (strstr(strtolower($item), strtolower($query)) !== false) {
$files[] = $dir . '/' . $item;
}
- if (is_dir($this->datadir . $dir . '/' . $item)) {
+ if (is_dir($physicalItem)) {
$files = array_merge($files, $this->searchInDir($query, $dir . '/' . $item));
}
}
@@ -270,11 +276,42 @@ if (\OC_Util::runningOnWindows()) {
}
}
+ /**
+ * Get the source path (on disk) of a given path
+ *
+ * @param string $path
+ * @return string
+ */
+ protected function getSourcePath($path) {
+ $fullPath = $this->datadir . $path;
+ return $fullPath;
+ }
+
/**
* {@inheritdoc}
*/
public function isLocal() {
return true;
}
+
+ /**
+ * get the ETag for a file or folder
+ *
+ * @param string $path
+ * @return string
+ */
+ public function getETag($path) {
+ if ($this->is_file($path)) {
+ $stat = $this->stat($path);
+ return md5(
+ $stat['mtime'] .
+ $stat['ino'] .
+ $stat['dev'] .
+ $stat['size']
+ );
+ } else {
+ return parent::getETag($path);
+ }
+ }
}
}
diff --git a/lib/private/files/storage/mappedlocal.php b/lib/private/files/storage/mappedlocal.php
index 0a21d2938b7..8f813f973b9 100644
--- a/lib/private/files/storage/mappedlocal.php
+++ b/lib/private/files/storage/mappedlocal.php
@@ -24,9 +24,6 @@ class MappedLocal extends \OC\Files\Storage\Common {
}
public function __destruct() {
- if (defined('PHPUNIT_RUN')) {
- $this->mapper->removePath($this->datadir, true, true);
- }
}
public function getId() {
@@ -34,7 +31,7 @@ class MappedLocal extends \OC\Files\Storage\Common {
}
public function mkdir($path) {
- return @mkdir($this->buildPath($path), 0777, true);
+ return @mkdir($this->getSourcePath($path), 0777, true);
}
public function rmdir($path) {
@@ -43,7 +40,7 @@ class MappedLocal extends \OC\Files\Storage\Common {
}
try {
$it = new \RecursiveIteratorIterator(
- new \RecursiveDirectoryIterator($this->buildPath($path)),
+ new \RecursiveDirectoryIterator($this->getSourcePath($path)),
\RecursiveIteratorIterator::CHILD_FIRST
);
/**
@@ -67,7 +64,7 @@ class MappedLocal extends \OC\Files\Storage\Common {
}
$it->next();
}
- if ($result = @rmdir($this->buildPath($path))) {
+ if ($result = @rmdir($this->getSourcePath($path))) {
$this->cleanMapper($path);
}
return $result;
@@ -78,7 +75,7 @@ class MappedLocal extends \OC\Files\Storage\Common {
public function opendir($path) {
$files = array('.', '..');
- $physicalPath = $this->buildPath($path);
+ $physicalPath = $this->getSourcePath($path);
$logicalPath = $this->mapper->physicalToLogic($physicalPath);
$dh = opendir($physicalPath);
@@ -104,15 +101,16 @@ class MappedLocal extends \OC\Files\Storage\Common {
if (substr($path, -1) == '/') {
$path = substr($path, 0, -1);
}
- return is_dir($this->buildPath($path));
+ return is_dir($this->getSourcePath($path));
}
public function is_file($path) {
- return is_file($this->buildPath($path));
+ return is_file($this->getSourcePath($path));
}
public function stat($path) {
- $fullPath = $this->buildPath($path);
+ clearstatcache();
+ $fullPath = $this->getSourcePath($path);
$statResult = stat($fullPath);
if (PHP_INT_SIZE === 4 && !$this->is_dir($path)) {
$filesize = $this->filesize($path);
@@ -123,9 +121,9 @@ class MappedLocal extends \OC\Files\Storage\Common {
}
public function filetype($path) {
- $filetype = filetype($this->buildPath($path));
+ $filetype = filetype($this->getSourcePath($path));
if ($filetype == 'link') {
- $filetype = filetype(realpath($this->buildPath($path)));
+ $filetype = filetype(realpath($this->getSourcePath($path)));
}
return $filetype;
}
@@ -134,7 +132,7 @@ class MappedLocal extends \OC\Files\Storage\Common {
if ($this->is_dir($path)) {
return 0;
}
- $fullPath = $this->buildPath($path);
+ $fullPath = $this->getSourcePath($path);
if (PHP_INT_SIZE === 4) {
$helper = new \OC\LargeFileHelper;
return $helper->getFilesize($fullPath);
@@ -143,43 +141,47 @@ class MappedLocal extends \OC\Files\Storage\Common {
}
public function isReadable($path) {
- return is_readable($this->buildPath($path));
+ return is_readable($this->getSourcePath($path));
}
public function isUpdatable($path) {
- return is_writable($this->buildPath($path));
+ return is_writable($this->getSourcePath($path));
}
public function file_exists($path) {
- return file_exists($this->buildPath($path));
+ return file_exists($this->getSourcePath($path));
}
public function filemtime($path) {
- return filemtime($this->buildPath($path));
+ clearstatcache($this->getSourcePath($path));
+ return filemtime($this->getSourcePath($path));
}
public function touch($path, $mtime = null) {
// sets the modification time of the file to the given value.
// If mtime is nil the current time is set.
// note that the access time of the file always changes to the current time.
+ if ($this->file_exists($path) and !$this->isUpdatable($path)) {
+ return false;
+ }
if (!is_null($mtime)) {
- $result = touch($this->buildPath($path), $mtime);
+ $result = touch($this->getSourcePath($path), $mtime);
} else {
- $result = touch($this->buildPath($path));
+ $result = touch($this->getSourcePath($path));
}
if ($result) {
- clearstatcache(true, $this->buildPath($path));
+ clearstatcache(true, $this->getSourcePath($path));
}
return $result;
}
public function file_get_contents($path) {
- return file_get_contents($this->buildPath($path));
+ return file_get_contents($this->getSourcePath($path));
}
public function file_put_contents($path, $data) {
- return file_put_contents($this->buildPath($path), $data);
+ return file_put_contents($this->getSourcePath($path), $data);
}
public function unlink($path) {
@@ -211,8 +213,8 @@ class MappedLocal extends \OC\Files\Storage\Common {
$this->unlink($path2);
}
- $physicPath1 = $this->buildPath($path1);
- $physicPath2 = $this->buildPath($path2);
+ $physicPath1 = $this->getSourcePath($path1);
+ $physicPath2 = $this->getSourcePath($path2);
if ($return = rename($physicPath1, $physicPath2)) {
// mapper needs to create copies or all children
$this->copyMapping($path1, $path2);
@@ -240,7 +242,7 @@ class MappedLocal extends \OC\Files\Storage\Common {
closedir($dir);
return true;
} else {
- if ($return = copy($this->buildPath($path1), $this->buildPath($path2))) {
+ if ($return = copy($this->getSourcePath($path1), $this->getSourcePath($path2))) {
$this->copyMapping($path1, $path2);
}
return $return;
@@ -248,7 +250,7 @@ class MappedLocal extends \OC\Files\Storage\Common {
}
public function fopen($path, $mode) {
- return fopen($this->buildPath($path), $mode);
+ return fopen($this->getSourcePath($path), $mode);
}
/**
@@ -259,7 +261,7 @@ class MappedLocal extends \OC\Files\Storage\Common {
private function delTree($dir, $isLogicPath = true) {
$dirRelative = $dir;
if ($isLogicPath) {
- $dir = $this->buildPath($dir);
+ $dir = $this->getSourcePath($dir);
}
if (!file_exists($dir)) {
return true;
@@ -291,11 +293,15 @@ class MappedLocal extends \OC\Files\Storage\Common {
}
public function hash($type, $path, $raw = false) {
- return hash_file($type, $this->buildPath($path), $raw);
+ return hash_file($type, $this->getSourcePath($path), $raw);
}
public function free_space($path) {
- return @disk_free_space($this->buildPath($path));
+ $space = @disk_free_space($this->getSourcePath($path));
+ if ($space === false || is_null($space)) {
+ return \OCP\Files\FileInfo::SPACE_UNKNOWN;
+ }
+ return $space;
}
public function search($query) {
@@ -303,11 +309,11 @@ class MappedLocal extends \OC\Files\Storage\Common {
}
public function getLocalFile($path) {
- return $this->buildPath($path);
+ return $this->getSourcePath($path);
}
public function getLocalFolder($path) {
- return $this->buildPath($path);
+ return $this->getSourcePath($path);
}
/**
@@ -315,7 +321,7 @@ class MappedLocal extends \OC\Files\Storage\Common {
*/
protected function searchInDir($query, $dir = '') {
$files = array();
- $physicalDir = $this->buildPath($dir);
+ $physicalDir = $this->getSourcePath($dir);
foreach (scandir($physicalDir) as $item) {
if ($item == '.' || $item == '..')
continue;
@@ -340,18 +346,30 @@ class MappedLocal extends \OC\Files\Storage\Common {
* @return bool
*/
public function hasUpdated($path, $time) {
- return $this->filemtime($path) > $time;
+ if ($this->file_exists($path)) {
+ return $this->filemtime($path) > $time;
+ } else {
+ return true;
+ }
}
/**
+ * Get the source path (on disk) of a given path
+ *
* @param string $path
- * @param bool $create
* @return string
*/
- private function buildPath($path, $create = true) {
+ protected function getSourcePath($path) {
$path = $this->stripLeading($path);
$fullPath = $this->datadir . $path;
- return $this->mapper->logicToPhysical($fullPath, $create);
+ return $this->mapper->logicToPhysical($fullPath, true);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function isLocal() {
+ return true;
}
/**
diff --git a/lib/private/files/storage/wrapper/jail.php b/lib/private/files/storage/wrapper/jail.php
new file mode 100644
index 00000000000..22b96765757
--- /dev/null
+++ b/lib/private/files/storage/wrapper/jail.php
@@ -0,0 +1,413 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Storage\Wrapper;
+
+use OC\Files\Cache\Wrapper\CacheJail;
+
+/**
+ * Jail to a subdirectory of the wrapped storage
+ *
+ * This restricts access to a subfolder of the wrapped storage with the subfolder becoming the root folder new storage
+ */
+class Jail extends Wrapper {
+ /**
+ * @var string
+ */
+ protected $rootPath;
+
+ /**
+ * @param array $arguments ['storage' => $storage, 'mask' => $root]
+ *
+ * $storage: The storage that will be wrapper
+ * $root: The folder in the wrapped storage that will become the root folder of the wrapped storage
+ */
+ public function __construct($arguments) {
+ parent::__construct($arguments);
+ $this->rootPath = $arguments['root'];
+ }
+
+ protected function getSourcePath($path) {
+ if ($path === '') {
+ return $this->rootPath;
+ } else {
+ return $this->rootPath . '/' . $path;
+ }
+ }
+
+ public function getId() {
+ return 'link:' . parent::getId() . ':' . $this->rootPath;
+ }
+
+ /**
+ * see http://php.net/manual/en/function.mkdir.php
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function mkdir($path) {
+ return $this->storage->mkdir($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.rmdir.php
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function rmdir($path) {
+ return $this->storage->rmdir($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.opendir.php
+ *
+ * @param string $path
+ * @return resource
+ */
+ public function opendir($path) {
+ return $this->storage->opendir($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.is_dir.php
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function is_dir($path) {
+ return $this->storage->is_dir($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.is_file.php
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function is_file($path) {
+ return $this->storage->is_file($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.stat.php
+ * only the following keys are required in the result: size and mtime
+ *
+ * @param string $path
+ * @return array
+ */
+ public function stat($path) {
+ return $this->storage->stat($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.filetype.php
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function filetype($path) {
+ return $this->storage->filetype($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.filesize.php
+ * The result for filesize when called on a folder is required to be 0
+ *
+ * @param string $path
+ * @return int
+ */
+ public function filesize($path) {
+ return $this->storage->filesize($this->getSourcePath($path));
+ }
+
+ /**
+ * check if a file can be created in $path
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function isCreatable($path) {
+ return $this->storage->isCreatable($this->getSourcePath($path));
+ }
+
+ /**
+ * check if a file can be read
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function isReadable($path) {
+ return $this->storage->isReadable($this->getSourcePath($path));
+ }
+
+ /**
+ * check if a file can be written to
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function isUpdatable($path) {
+ return $this->storage->isUpdatable($this->getSourcePath($path));
+ }
+
+ /**
+ * check if a file can be deleted
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function isDeletable($path) {
+ return $this->storage->isDeletable($this->getSourcePath($path));
+ }
+
+ /**
+ * check if a file can be shared
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function isSharable($path) {
+ return $this->storage->isSharable($this->getSourcePath($path));
+ }
+
+ /**
+ * get the full permissions of a path.
+ * Should return a combination of the PERMISSION_ constants defined in lib/public/constants.php
+ *
+ * @param string $path
+ * @return int
+ */
+ public function getPermissions($path) {
+ return $this->storage->getPermissions($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.file_exists.php
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function file_exists($path) {
+ return $this->storage->file_exists($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.filemtime.php
+ *
+ * @param string $path
+ * @return int
+ */
+ public function filemtime($path) {
+ return $this->storage->filemtime($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.file_get_contents.php
+ *
+ * @param string $path
+ * @return string
+ */
+ public function file_get_contents($path) {
+ return $this->storage->file_get_contents($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.file_put_contents.php
+ *
+ * @param string $path
+ * @param string $data
+ * @return bool
+ */
+ public function file_put_contents($path, $data) {
+ return $this->storage->file_put_contents($this->getSourcePath($path), $data);
+ }
+
+ /**
+ * see http://php.net/manual/en/function.unlink.php
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function unlink($path) {
+ return $this->storage->unlink($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.rename.php
+ *
+ * @param string $path1
+ * @param string $path2
+ * @return bool
+ */
+ public function rename($path1, $path2) {
+ return $this->storage->rename($this->getSourcePath($path1), $this->getSourcePath($path2));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.copy.php
+ *
+ * @param string $path1
+ * @param string $path2
+ * @return bool
+ */
+ public function copy($path1, $path2) {
+ return $this->storage->copy($this->getSourcePath($path1), $this->getSourcePath($path2));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.fopen.php
+ *
+ * @param string $path
+ * @param string $mode
+ * @return resource
+ */
+ public function fopen($path, $mode) {
+ return $this->storage->fopen($this->getSourcePath($path), $mode);
+ }
+
+ /**
+ * get the mimetype for a file or folder
+ * The mimetype for a folder is required to be "httpd/unix-directory"
+ *
+ * @param string $path
+ * @return string
+ */
+ public function getMimeType($path) {
+ return $this->storage->getMimeType($this->getSourcePath($path));
+ }
+
+ /**
+ * see http://php.net/manual/en/function.hash.php
+ *
+ * @param string $type
+ * @param string $path
+ * @param bool $raw
+ * @return string
+ */
+ public function hash($type, $path, $raw = false) {
+ return $this->storage->hash($type, $this->getSourcePath($path), $raw);
+ }
+
+ /**
+ * see http://php.net/manual/en/function.free_space.php
+ *
+ * @param string $path
+ * @return int
+ */
+ public function free_space($path) {
+ return $this->storage->free_space($this->getSourcePath($path));
+ }
+
+ /**
+ * search for occurrences of $query in file names
+ *
+ * @param string $query
+ * @return array
+ */
+ public function search($query) {
+ return $this->storage->search($query);
+ }
+
+ /**
+ * see http://php.net/manual/en/function.touch.php
+ * If the backend does not support the operation, false should be returned
+ *
+ * @param string $path
+ * @param int $mtime
+ * @return bool
+ */
+ public function touch($path, $mtime = null) {
+ return $this->storage->touch($this->getSourcePath($path), $mtime);
+ }
+
+ /**
+ * get the path to a local version of the file.
+ * The local version of the file can be temporary and doesn't have to be persistent across requests
+ *
+ * @param string $path
+ * @return string
+ */
+ public function getLocalFile($path) {
+ return $this->storage->getLocalFile($this->getSourcePath($path));
+ }
+
+ /**
+ * get the path to a local version of the folder.
+ * The local version of the folder can be temporary and doesn't have to be persistent across requests
+ *
+ * @param string $path
+ * @return string
+ */
+ public function getLocalFolder($path) {
+ return $this->storage->getLocalFolder($this->getSourcePath($path));
+ }
+
+ /**
+ * check if a file or folder has been updated since $time
+ *
+ * @param string $path
+ * @param int $time
+ * @return bool
+ *
+ * hasUpdated for folders should return at least true if a file inside the folder is add, removed or renamed.
+ * returning true for other changes in the folder is optional
+ */
+ public function hasUpdated($path, $time) {
+ return $this->storage->hasUpdated($this->getSourcePath($path), $time);
+ }
+
+ /**
+ * get a cache instance for the storage
+ *
+ * @param string $path
+ * @param \OC\Files\Storage\Storage (optional) the storage to pass to the cache
+ * @return \OC\Files\Cache\Cache
+ */
+ public function getCache($path = '', $storage = null) {
+ if (!$storage) {
+ $storage = $this;
+ }
+ $sourceCache = $this->storage->getCache($this->getSourcePath($path), $storage);
+ return new CacheJail($sourceCache, $this->rootPath);
+ }
+
+ /**
+ * get the user id of the owner of a file or folder
+ *
+ * @param string $path
+ * @return string
+ */
+ public function getOwner($path) {
+ return $this->storage->getOwner($this->getSourcePath($path));
+ }
+
+ /**
+ * get a watcher instance for the cache
+ *
+ * @param string $path
+ * @param \OC\Files\Storage\Storage (optional) the storage to pass to the watcher
+ * @return \OC\Files\Cache\Watcher
+ */
+ public function getWatcher($path = '', $storage = null) {
+ if (!$storage) {
+ $storage = $this;
+ }
+ return $this->storage->getWatcher($this->getSourcePath($path), $storage);
+ }
+
+ /**
+ * get the ETag for a file or folder
+ *
+ * @param string $path
+ * @return string
+ */
+ public function getETag($path) {
+ return $this->storage->getETag($this->getSourcePath($path));
+ }
+}
diff --git a/lib/private/files/storage/wrapper/permissionsmask.php b/lib/private/files/storage/wrapper/permissionsmask.php
new file mode 100644
index 00000000000..955cb54591b
--- /dev/null
+++ b/lib/private/files/storage/wrapper/permissionsmask.php
@@ -0,0 +1,111 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Storage\Wrapper;
+
+use OC\Files\Cache\Wrapper\CachePermissionsMask;
+use OCP\Constants;
+
+/**
+ * Mask the permissions of a storage
+ *
+ * This can be used to restrict update, create, delete and/or share permissions of a storage
+ *
+ * Note that the read permissions cant be masked
+ */
+class PermissionsMask extends Wrapper {
+ /**
+ * @var int the permissions bits we want to keep
+ */
+ private $mask;
+
+ /**
+ * @param array $arguments ['storage' => $storage, 'mask' => $mask]
+ *
+ * $storage: The storage the permissions mask should be applied on
+ * $mask: The permission bits that should be kept, a combination of the \OCP\Constant::PERMISSION_ constants
+ */
+ public function __construct($arguments) {
+ parent::__construct($arguments);
+ $this->mask = $arguments['mask'];
+ }
+
+ private function checkMask($permissions) {
+ return ($this->mask & $permissions) === $permissions;
+ }
+
+ public function isUpdatable($path) {
+ return $this->checkMask(Constants::PERMISSION_UPDATE) and parent::isUpdatable($path);
+ }
+
+ public function isCreatable($path) {
+ return $this->checkMask(Constants::PERMISSION_CREATE) and parent::isCreatable($path);
+ }
+
+ public function isDeletable($path) {
+ return $this->checkMask(Constants::PERMISSION_DELETE) and parent::isDeletable($path);
+ }
+
+ public function getPermissions($path) {
+ return $this->storage->getPermissions($path) & $this->mask;
+ }
+
+ public function rename($path1, $path2) {
+ return $this->checkMask(Constants::PERMISSION_UPDATE) and parent::rename($path1, $path2);
+ }
+
+ public function copy($path1, $path2) {
+ return $this->checkMask(Constants::PERMISSION_CREATE) and parent::copy($path1, $path2);
+ }
+
+ public function touch($path, $mtime = null) {
+ $permissions = $this->file_exists($path) ? Constants::PERMISSION_UPDATE : Constants::PERMISSION_CREATE;
+ return $this->checkMask($permissions) and parent::touch($path, $mtime);
+ }
+
+ public function mkdir($path) {
+ return $this->checkMask(Constants::PERMISSION_CREATE) and parent::mkdir($path);
+ }
+
+ public function rmdir($path) {
+ return $this->checkMask(Constants::PERMISSION_DELETE) and parent::rmdir($path);
+ }
+
+ public function unlink($path) {
+ return $this->checkMask(Constants::PERMISSION_DELETE) and parent::unlink($path);
+ }
+
+ public function file_put_contents($path, $data) {
+ $permissions = $this->file_exists($path) ? Constants::PERMISSION_UPDATE : Constants::PERMISSION_CREATE;
+ return $this->checkMask($permissions) and parent::file_put_contents($path, $data);
+ }
+
+ public function fopen($path, $mode) {
+ if ($mode === 'r' or $mode === 'rb') {
+ return parent::fopen($path, $mode);
+ } else {
+ $permissions = $this->file_exists($path) ? Constants::PERMISSION_UPDATE : Constants::PERMISSION_CREATE;
+ return $this->checkMask($permissions) ? parent::fopen($path, $mode) : false;
+ }
+ }
+
+ /**
+ * get a cache instance for the storage
+ *
+ * @param string $path
+ * @param \OC\Files\Storage\Storage (optional) the storage to pass to the cache
+ * @return \OC\Files\Cache\Cache
+ */
+ public function getCache($path = '', $storage = null) {
+ if (!$storage) {
+ $storage = $this;
+ }
+ $sourceCache = parent::getCache($path, $storage);
+ return new CachePermissionsMask($sourceCache, $this->mask);
+ }
+}
diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index 95f3e9a2c7f..331ab9ba6cd 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -313,7 +313,7 @@ class View {
if (!$result) {
// If create file fails because of permissions on external storage like SMB folders,
// check file exists and return false if not.
- if(!$this->file_exists($path)){
+ if (!$this->file_exists($path)) {
return false;
}
if (is_null($mtime)) {
@@ -676,10 +676,6 @@ class View {
$this->mkdir($filePath);
}
- if (!$tmpFile) {
- debug_print_backtrace();
- }
-
$source = fopen($tmpFile, 'r');
if ($source) {
$this->file_put_contents($path, $source);
@@ -891,22 +887,24 @@ class View {
if ($storage) {
$cache = $storage->getCache($internalPath);
- if (!$cache->inCache($internalPath)) {
+ $data = $cache->get($internalPath);
+ $watcher = $storage->getWatcher($internalPath);
+
+ // if the file is not in the cache or needs to be updated, trigger the scanner and reload the data
+ if (!$data) {
if (!$storage->file_exists($internalPath)) {
return false;
}
$scanner = $storage->getScanner($internalPath);
$scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW);
- } else {
- $watcher = $storage->getWatcher($internalPath);
- $data = $watcher->checkUpdate($internalPath);
- }
-
- if (!is_array($data)) {
+ $data = $cache->get($internalPath);
+ } else if (!Cache\Scanner::isPartialFile($internalPath) && $watcher->checkUpdate($internalPath, $data)) {
+ $this->updater->propagate($path);
$data = $cache->get($internalPath);
}
if ($data and isset($data['fileid'])) {
+ // upgrades from oc6 or lower might not have the permissions set in the file cache
if ($data['permissions'] === 0) {
$data['permissions'] = $storage->getPermissions($data['path']);
$cache->update($data['fileid'], array('permissions' => $data['permissions']));
@@ -935,7 +933,7 @@ class View {
}
if ($mount instanceof MoveableMount && $internalPath === '') {
- $data['permissions'] |= \OCP\PERMISSION_DELETE | \OCP\PERMISSION_UPDATE;
+ $data['permissions'] |= \OCP\Constants::PERMISSION_DELETE | \OCP\Constants::PERMISSION_UPDATE;
}
$data = \OC_FileProxy::runPostProxies('getFileInfo', $path, $data);
@@ -956,26 +954,33 @@ class View {
if (!Filesystem::isValidPath($directory)) {
return $result;
}
- $path = Filesystem::normalizePath($this->fakeRoot . '/' . $directory);
- list($storage, $internalPath) = Filesystem::resolvePath($path);
+ $path = $this->getAbsolutePath($directory);
+ /** @var \OC\Files\Storage\Storage $storage */
+ list($storage, $internalPath) = $this->resolvePath($directory);
if ($storage) {
$cache = $storage->getCache($internalPath);
$user = \OC_User::getUser();
- if ($cache->getStatus($internalPath) < Cache\Cache::COMPLETE) {
+ $data = $cache->get($internalPath);
+ $watcher = $storage->getWatcher($internalPath);
+ if (!$data or $data['size'] === -1) {
+ if (!$storage->file_exists($internalPath)) {
+ return array();
+ }
$scanner = $storage->getScanner($internalPath);
$scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW);
- } else {
- $watcher = $storage->getWatcher($internalPath);
- $watcher->checkUpdate($internalPath);
+ $data = $cache->get($internalPath);
+ } else if ($watcher->checkUpdate($internalPath, $data)) {
+ $this->updater->propagate($path);
+ $data = $cache->get($internalPath);
}
- $folderId = $cache->getId($internalPath);
+ $folderId = $data['fileid'];
/**
* @var \OC\Files\FileInfo[] $files
*/
$files = array();
- $contents = $cache->getFolderContents($internalPath, $folderId); //TODO: mimetype_filter
+ $contents = $cache->getFolderContentsById($folderId); //TODO: mimetype_filter
foreach ($contents as $content) {
if ($content['permissions'] === 0) {
$content['permissions'] = $storage->getPermissions($content['path']);
@@ -983,7 +988,7 @@ class View {
}
// if sharing was disabled for the user we remove the share permissions
if (\OCP\Util::isSharingDisabledForUser()) {
- $content['permissions'] = $content['permissions'] & ~\OCP\PERMISSION_SHARE;
+ $content['permissions'] = $content['permissions'] & ~\OCP\Constants::PERMISSION_SHARE;
}
$files[] = new FileInfo($path . '/' . $content['name'], $storage, $content['path'], $content);
}
@@ -1020,9 +1025,9 @@ class View {
// do not allow renaming/deleting the mount point if they are not shared files/folders
// for shared files/folders we use the permissions given by the owner
if ($mount instanceof MoveableMount) {
- $rootEntry['permissions'] = $permissions | \OCP\PERMISSION_UPDATE | \OCP\PERMISSION_DELETE;
+ $rootEntry['permissions'] = $permissions | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE;
} else {
- $rootEntry['permissions'] = $permissions & (\OCP\PERMISSION_ALL - (\OCP\PERMISSION_UPDATE | \OCP\PERMISSION_DELETE));
+ $rootEntry['permissions'] = $permissions & (\OCP\Constants::PERMISSION_ALL - (\OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE));
}
//remove any existing entry with the same name
@@ -1032,11 +1037,11 @@ class View {
break;
}
}
- $rootEntry['path'] = substr($path . '/' . $rootEntry['name'], strlen($user) + 2); // full path without /$user/
+ $rootEntry['path'] = substr(Filesystem::normalizePath($path . '/' . $rootEntry['name']), strlen($user) + 2); // full path without /$user/
// if sharing was disabled for the user we remove the share permissions
if (\OCP\Util::isSharingDisabledForUser()) {
- $content['permissions'] = $content['permissions'] & ~\OCP\PERMISSION_SHARE;
+ $content['permissions'] = $content['permissions'] & ~\OCP\Constants::PERMISSION_SHARE;
}
$files[] = new FileInfo($path . '/' . $rootEntry['name'], $subStorage, '', $rootEntry);
@@ -1109,6 +1114,16 @@ class View {
return $this->searchCommon('%' . $query . '%', 'search');
}
+ /**
+ * search for files with the name matching $query
+ *
+ * @param string $query
+ * @return FileInfo[]
+ */
+ public function searchRaw($query) {
+ return $this->searchCommon($query, 'search');
+ }
+
/**
* search for files by mimetype
*
@@ -1203,7 +1218,7 @@ class View {
* @return string|null
*/
public function getPath($id) {
- $id = (int) $id;
+ $id = (int)$id;
$manager = Filesystem::getMountManager();
$mounts = $manager->findIn($this->fakeRoot);
$mounts[] = $manager->find($this->fakeRoot);
diff --git a/lib/private/group/backend.php b/lib/private/group/backend.php
index ab694268bb3..9348463a53c 100644
--- a/lib/private/group/backend.php
+++ b/lib/private/group/backend.php
@@ -23,29 +23,51 @@
/**
* error code for functions not provided by the group backend
+ * @deprecated Use \OC_Group_Backend::NOT_IMPLEMENTED instead
*/
define('OC_GROUP_BACKEND_NOT_IMPLEMENTED', -501);
/**
* actions that user backends can define
*/
+/** @deprecated Use \OC_Group_Backend::CREATE_GROUP instead */
define('OC_GROUP_BACKEND_CREATE_GROUP', 0x00000001);
+/** @deprecated Use \OC_Group_Backend::DELETE_GROUP instead */
define('OC_GROUP_BACKEND_DELETE_GROUP', 0x00000010);
+/** @deprecated Use \OC_Group_Backend::ADD_TO_GROUP instead */
define('OC_GROUP_BACKEND_ADD_TO_GROUP', 0x00000100);
+/** @deprecated Use \OC_Group_Backend::REMOVE_FROM_GOUP instead */
define('OC_GROUP_BACKEND_REMOVE_FROM_GOUP', 0x00001000);
+/** @deprecated Obsolete */
define('OC_GROUP_BACKEND_GET_DISPLAYNAME', 0x00010000); //OBSOLETE
+/** @deprecated Use \OC_Group_Backend::COUNT_USERS instead */
define('OC_GROUP_BACKEND_COUNT_USERS', 0x00100000);
/**
* Abstract base class for user management
*/
abstract class OC_Group_Backend implements OC_Group_Interface {
+ /**
+ * error code for functions not provided by the group backend
+ */
+ const NOT_IMPLEMENTED = -501;
+
+ /**
+ * actions that user backends can define
+ */
+ const CREATE_GROUP = 0x00000001;
+ const DELETE_GROUP = 0x00000010;
+ const ADD_TO_GROUP = 0x00000100;
+ const REMOVE_FROM_GOUP = 0x00001000;
+ //OBSOLETE const GET_DISPLAYNAME = 0x00010000;
+ const COUNT_USERS = 0x00100000;
+
protected $possibleActions = array(
- OC_GROUP_BACKEND_CREATE_GROUP => 'createGroup',
- OC_GROUP_BACKEND_DELETE_GROUP => 'deleteGroup',
- OC_GROUP_BACKEND_ADD_TO_GROUP => 'addToGroup',
- OC_GROUP_BACKEND_REMOVE_FROM_GOUP => 'removeFromGroup',
- OC_GROUP_BACKEND_COUNT_USERS => 'countUsersInGroup',
+ self::CREATE_GROUP => 'createGroup',
+ self::DELETE_GROUP => 'deleteGroup',
+ self::ADD_TO_GROUP => 'addToGroup',
+ self::REMOVE_FROM_GOUP => 'removeFromGroup',
+ self::COUNT_USERS => 'countUsersInGroup',
);
/**
diff --git a/lib/private/group/database.php b/lib/private/group/database.php
index 8aebefabd27..2069e99599f 100644
--- a/lib/private/group/database.php
+++ b/lib/private/group/database.php
@@ -84,6 +84,10 @@ class OC_Group_Database extends OC_Group_Backend {
$stmt = OC_DB::prepare( "DELETE FROM `*PREFIX*group_user` WHERE `gid` = ?" );
$stmt->execute( array( $gid ));
+ // Delete the group-groupadmin relation
+ $stmt = OC_DB::prepare( "DELETE FROM `*PREFIX*group_admin` WHERE `gid` = ?" );
+ $stmt->execute( array( $gid ));
+
return true;
}
@@ -216,7 +220,7 @@ class OC_Group_Database extends OC_Group_Backend {
* @param string $gid
* @param string $search
* @return int|false
- * @throws DatabaseException
+ * @throws \OC\DatabaseException
*/
public function countUsersInGroup($gid, $search = '') {
$stmt = OC_DB::prepare('SELECT COUNT(`uid`) AS `count` FROM `*PREFIX*group_user` WHERE `gid` = ? AND `uid` LIKE ?');
diff --git a/lib/private/group/group.php b/lib/private/group/group.php
index 6f8b84dff1a..6111051ea09 100644
--- a/lib/private/group/group.php
+++ b/lib/private/group/group.php
@@ -118,7 +118,7 @@ class Group implements IGroup {
$this->emitter->emit('\OC\Group', 'preAddUser', array($this, $user));
}
foreach ($this->backends as $backend) {
- if ($backend->implementsActions(OC_GROUP_BACKEND_ADD_TO_GROUP)) {
+ if ($backend->implementsActions(\OC_Group_Backend::ADD_TO_GROUP)) {
$backend->addToGroup($user->getUID(), $this->gid);
if ($this->users) {
$this->users[$user->getUID()] = $user;
@@ -142,7 +142,7 @@ class Group implements IGroup {
$this->emitter->emit('\OC\Group', 'preRemoveUser', array($this, $user));
}
foreach ($this->backends as $backend) {
- if ($backend->implementsActions(OC_GROUP_BACKEND_REMOVE_FROM_GOUP) and $backend->inGroup($user->getUID(), $this->gid)) {
+ if ($backend->implementsActions(\OC_Group_Backend::REMOVE_FROM_GOUP) and $backend->inGroup($user->getUID(), $this->gid)) {
$backend->removeFromGroup($user->getUID(), $this->gid);
$result = true;
}
@@ -191,7 +191,7 @@ class Group implements IGroup {
public function count($search = '') {
$users = false;
foreach ($this->backends as $backend) {
- if($backend->implementsActions(OC_GROUP_BACKEND_COUNT_USERS)) {
+ if($backend->implementsActions(\OC_Group_Backend::COUNT_USERS)) {
if($users === false) {
//we could directly add to a bool variable, but this would
//be ugly
@@ -234,7 +234,7 @@ class Group implements IGroup {
$this->emitter->emit('\OC\Group', 'preDelete', array($this));
}
foreach ($this->backends as $backend) {
- if ($backend->implementsActions(OC_GROUP_BACKEND_DELETE_GROUP)) {
+ if ($backend->implementsActions(\OC_Group_Backend::DELETE_GROUP)) {
$result = true;
$backend->deleteGroup($this->gid);
}
diff --git a/lib/private/group/interface.php b/lib/private/group/interface.php
index ee5c2d635d6..ee2d718e5dd 100644
--- a/lib/private/group/interface.php
+++ b/lib/private/group/interface.php
@@ -28,7 +28,7 @@ interface OC_Group_Interface {
* @return boolean
*
* Returns the supported actions as int to be
- * compared with OC_GROUP_BACKEND_CREATE_GROUP etc.
+ * compared with \OC_Group_Backend::CREATE_GROUP etc.
*/
public function implementsActions($actions);
diff --git a/lib/private/group/manager.php b/lib/private/group/manager.php
index 58a23924872..be7bf972693 100644
--- a/lib/private/group/manager.php
+++ b/lib/private/group/manager.php
@@ -48,6 +48,7 @@ class Manager extends PublicEmitter implements IGroupManager {
*/
private $cachedUserGroups = array();
+
/**
* @param \OC\User\Manager $userManager
*/
@@ -133,7 +134,7 @@ class Manager extends PublicEmitter implements IGroupManager {
} else {
$this->emit('\OC\Group', 'preCreate', array($gid));
foreach ($this->backends as $backend) {
- if ($backend->implementsActions(OC_GROUP_BACKEND_CREATE_GROUP)) {
+ if ($backend->implementsActions(\OC_Group_Backend::CREATE_GROUP)) {
$backend->createGroup($gid);
$group = $this->getGroupObject($gid);
$this->emit('\OC\Group', 'postCreate', array($group));
@@ -180,18 +181,24 @@ class Manager extends PublicEmitter implements IGroupManager {
$groups[$groupId] = $this->get($groupId);
}
}
- $this->cachedUserGroups[$uid] = array_values($groups);
+ $this->cachedUserGroups[$uid] = $groups;
return $this->cachedUserGroups[$uid];
}
+
/**
+ * get a list of group ids for a user
* @param \OC\User\User $user
- * @return array with group names
+ * @return array with group ids
*/
public function getUserGroupIds($user) {
$groupIds = array();
- foreach ($this->backends as $backend) {
- $groupIds = array_merge($groupIds, $backend->getUserGroups($user->getUID()));
-
+ $userId = $user->getUID();
+ if (isset($this->cachedUserGroups[$userId])) {
+ return array_keys($this->cachedUserGroups[$userId]);
+ } else {
+ foreach ($this->backends as $backend) {
+ $groupIds = array_merge($groupIds, $backend->getUserGroups($userId));
+ }
}
return $groupIds;
}
@@ -216,10 +223,9 @@ class Manager extends PublicEmitter implements IGroupManager {
if(!empty($search)) {
// only user backends have the capability to do a complex search for users
$searchOffset = 0;
+ $searchLimit = $limit * 100;
if($limit === -1) {
- $searchLimit = $group->count('');
- } else {
- $searchLimit = $limit * 2;
+ $searchLimit = 500;
}
do {
@@ -230,7 +236,7 @@ class Manager extends PublicEmitter implements IGroupManager {
}
}
$searchOffset += $searchLimit;
- } while(count($groupUsers) < $searchLimit+$offset && count($filteredUsers) === $searchLimit);
+ } while(count($groupUsers) < $searchLimit+$offset && count($filteredUsers) >= $searchLimit);
if($limit === -1) {
$groupUsers = array_slice($groupUsers, $offset);
diff --git a/lib/private/helper.php b/lib/private/helper.php
index ea91cc57516..0e302275540 100644
--- a/lib/private/helper.php
+++ b/lib/private/helper.php
@@ -25,7 +25,6 @@
* Collection of useful functions
*/
class OC_Helper {
- private static $tmpFiles = array();
private static $mimetypeIcons = array();
private static $mimetypeDetector;
private static $templateManager;
@@ -59,12 +58,11 @@ class OC_Helper {
}
/**
- * @param $key
+ * @param string $key
* @return string url to the online documentation
*/
public static function linkToDocs($key) {
- $theme = new OC_Defaults();
- return $theme->buildDocLinkToKey($key);
+ return OC::$server->getURLGenerator()->linkToDocs($key);
}
/**
@@ -279,6 +277,21 @@ class OC_Helper {
return self::linkToRoute( 'core_ajax_public_preview', array('x' => 36, 'y' => 36, 'file' => $path, 't' => $token));
}
+ /**
+ * shows whether the user has an avatar
+ * @param string $user username
+ * @return bool avatar set or not
+ **/
+ public static function userAvatarSet($user) {
+ $avatar = new \OC_Avatar($user);
+ $image = $avatar->get(1);
+ if ($image instanceof \OC_Image) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
/**
* Make a human file size
* @param int $bytes file size in bytes
@@ -402,9 +415,10 @@ class OC_Helper {
/**
* Recursive deletion of folders
* @param string $dir path to the folder
+ * @param bool $deleteSelf if set to false only the content of the folder will be deleted
* @return bool
*/
- static function rmdirr($dir) {
+ static function rmdirr($dir, $deleteSelf = true) {
if (is_dir($dir)) {
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),
@@ -419,15 +433,19 @@ class OC_Helper {
unlink($fileInfo->getRealPath());
}
}
- rmdir($dir);
+ if ($deleteSelf) {
+ rmdir($dir);
+ }
} elseif (file_exists($dir)) {
- unlink($dir);
+ if ($deleteSelf) {
+ unlink($dir);
+ }
}
- if (file_exists($dir)) {
- return false;
- } else {
+ if (!$deleteSelf) {
return true;
}
+
+ return !file_exists($dir);
}
/**
@@ -573,136 +591,24 @@ class OC_Helper {
*
* @param string $postfix
* @return string
+ * @deprecated Use the TempManager instead
*
* temporary files are automatically cleaned up after the script is finished
*/
public static function tmpFile($postfix = '') {
- $file = get_temp_dir() . '/' . md5(time() . rand()) . $postfix;
- $fh = fopen($file, 'w');
- if ($fh!==false){
- fclose($fh);
- self::$tmpFiles[] = $file;
- } else {
- OC_Log::write(
- 'OC_Helper',
- sprintf(
- 'Can not create a temporary file in directory %s. Check it exists and has correct permissions',
- get_temp_dir()
- ),
- OC_Log::WARN
- );
- $file = false;
- }
- return $file;
- }
-
- /**
- * move a file to oc-noclean temp dir
- *
- * @param string $filename
- * @return mixed
- *
- */
- public static function moveToNoClean($filename = '') {
- if ($filename == '') {
- return false;
- }
- $tmpDirNoClean = get_temp_dir() . '/oc-noclean/';
- if (!file_exists($tmpDirNoClean) || !is_dir($tmpDirNoClean)) {
- if (file_exists($tmpDirNoClean)) {
- unlink($tmpDirNoClean);
- }
- mkdir($tmpDirNoClean);
- }
- $newname = $tmpDirNoClean . basename($filename);
- if (rename($filename, $newname)) {
- return $newname;
- } else {
- return false;
- }
+ return \OC::$server->getTempManager()->getTemporaryFile($postfix);
}
/**
* create a temporary folder with an unique filename
*
* @return string
+ * @deprecated Use the TempManager instead
*
* temporary files are automatically cleaned up after the script is finished
*/
public static function tmpFolder() {
- $path = get_temp_dir() . DIRECTORY_SEPARATOR . md5(time() . rand());
- mkdir($path);
- self::$tmpFiles[] = $path;
- return $path . DIRECTORY_SEPARATOR;
- }
-
- /**
- * remove all files created by self::tmpFile
- */
- public static function cleanTmp() {
- $leftoversFile = get_temp_dir() . '/oc-not-deleted';
- if (file_exists($leftoversFile)) {
- $leftovers = file($leftoversFile);
- foreach ($leftovers as $file) {
- try {
- self::rmdirr($file);
- } catch (UnexpectedValueException $ex) {
- // not really much we can do here anymore
- if (!is_null(\OC::$server)) {
- $message = $ex->getMessage();
- \OC::$server->getLogger()->error("Error deleting file/folder: $file - Reason: $message",
- array('app' => 'core'));
- }
- }
- }
- unlink($leftoversFile);
- }
-
- foreach (self::$tmpFiles as $file) {
- if (file_exists($file)) {
- try {
- if (!self::rmdirr($file)) {
- file_put_contents($leftoversFile, $file . "\n", FILE_APPEND);
- }
- } catch (UnexpectedValueException $ex) {
- // not really much we can do here anymore
- if (!is_null(\OC::$server)) {
- $message = $ex->getMessage();
- \OC::$server->getLogger()->error("Error deleting file/folder: $file - Reason: $message",
- array('app' => 'core'));
- }
- }
- }
- }
- }
-
- /**
- * remove all files in PHP /oc-noclean temp dir
- */
- public static function cleanTmpNoClean() {
- $tmpDirNoCleanName=get_temp_dir() . '/oc-noclean/';
- if(file_exists($tmpDirNoCleanName) && is_dir($tmpDirNoCleanName)) {
- $files=scandir($tmpDirNoCleanName);
- foreach($files as $file) {
- $fileName = $tmpDirNoCleanName . $file;
- if (!\OC\Files\Filesystem::isIgnoredDir($file) && filemtime($fileName) + 600 < time()) {
- unlink($fileName);
- }
- }
- // if oc-noclean is empty delete it
- $isTmpDirNoCleanEmpty = true;
- $tmpDirNoClean = opendir($tmpDirNoCleanName);
- if(is_resource($tmpDirNoClean)) {
- while (false !== ($file = readdir($tmpDirNoClean))) {
- if (!\OC\Files\Filesystem::isIgnoredDir($file)) {
- $isTmpDirNoCleanEmpty = false;
- }
- }
- }
- if ($isTmpDirNoCleanEmpty) {
- rmdir($tmpDirNoCleanName);
- }
- }
+ return \OC::$server->getTempManager()->getTemporaryFolder();
}
/**
@@ -965,6 +871,23 @@ class OC_Helper {
return true;
}
+ /**
+ * Try to find a program
+ * Note: currently windows is not supported
+ *
+ * @param string $program
+ * @return null|string
+ */
+ public static function findBinaryPath($program) {
+ if (!\OC_Util::runningOnWindows() && self::is_function_enabled('exec')) {
+ exec('command -v ' . escapeshellarg($program) . ' 2> /dev/null', $output, $returnCode);
+ if ($returnCode === 0 && count($output) > 0) {
+ return escapeshellcmd($output[0]);
+ }
+ }
+ return null;
+ }
+
/**
* Calculate the disc space for the given path
*
@@ -1050,4 +973,12 @@ class OC_Helper {
return array('free' => $free, 'used' => $used, 'total' => $total, 'relative' => $relative);
}
+
+ /**
+ * Returns whether the config file is set manually to read-only
+ * @return bool
+ */
+ public static function isReadOnlyConfigEnabled() {
+ return \OC::$server->getConfig()->getSystemValue('config_is_read_only', false);
+ }
}
diff --git a/lib/private/image.php b/lib/private/image.php
index bab91745c05..78cacc84452 100644
--- a/lib/private/image.php
+++ b/lib/private/image.php
@@ -1,25 +1,17 @@
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see .
-*
-*/
+ * ownCloud
+ *
+ * @author Thomas Tanghus
+ * @copyright 2011 Thomas Tanghus
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ *
+ */
+
/**
* Class for basic image manipulation
*/
@@ -33,10 +25,16 @@ class OC_Image {
private $fileInfo;
/**
- * Get mime type for an image file.
- * @param string|null $filePath The path to a local image file.
- * @return string The mime type if the it could be determined, otherwise an empty string.
- */
+ * @var \OCP\ILogger
+ */
+ private $logger;
+
+ /**
+ * Get mime type for an image file.
+ *
+ * @param string|null $filePath The path to a local image file.
+ * @return string The mime type if the it could be determined, otherwise an empty string.
+ */
static public function getMimeTypeForFile($filePath) {
// exif_imagetype throws "read error!" if file is less than 12 byte
if (filesize($filePath) > 11) {
@@ -49,14 +47,19 @@ class OC_Image {
/**
* Constructor.
+ *
* @param resource|string $imageRef The path to a local file, a base64 encoded string or a resource created by
* an imagecreate* function.
- * @return \OC_Image False on error
+ * @param \OCP\ILogger $logger
*/
- public function __construct($imageRef = null) {
- //OC_Log::write('core',__METHOD__.'(): start', OC_Log::DEBUG);
- if(!extension_loaded('gd') || !function_exists('gd_info')) {
- OC_Log::write('core', __METHOD__.'(): GD module not installed', OC_Log::ERROR);
+ public function __construct($imageRef = null, $logger = null) {
+ $this->logger = $logger;
+ if (is_null($logger)) {
+ $this->logger = \OC::$server->getLogger();
+ }
+
+ if (!extension_loaded('gd') || !function_exists('gd_info')) {
+ $this->logger->error(__METHOD__ . '(): GD module not installed', array('app' => 'core'));
return false;
}
@@ -64,51 +67,56 @@ class OC_Image {
$this->fileInfo = new finfo(FILEINFO_MIME_TYPE);
}
- if(!is_null($imageRef)) {
+ if (!is_null($imageRef)) {
$this->load($imageRef);
}
}
/**
- * Determine whether the object contains an image resource.
- * @return bool
- */
+ * Determine whether the object contains an image resource.
+ *
+ * @return bool
+ */
public function valid() { // apparently you can't name a method 'empty'...
return is_resource($this->resource);
}
/**
- * Returns the MIME type of the image or an empty string if no image is loaded.
- * @return string
- */
+ * Returns the MIME type of the image or an empty string if no image is loaded.
+ *
+ * @return string
+ */
public function mimeType() {
return $this->valid() ? $this->mimeType : '';
}
/**
- * Returns the width of the image or -1 if no image is loaded.
- * @return int
- */
+ * Returns the width of the image or -1 if no image is loaded.
+ *
+ * @return int
+ */
public function width() {
return $this->valid() ? imagesx($this->resource) : -1;
}
/**
- * Returns the height of the image or -1 if no image is loaded.
- * @return int
- */
+ * Returns the height of the image or -1 if no image is loaded.
+ *
+ * @return int
+ */
public function height() {
return $this->valid() ? imagesy($this->resource) : -1;
}
/**
- * Returns the width when the image orientation is top-left.
- * @return int
- */
+ * Returns the width when the image orientation is top-left.
+ *
+ * @return int
+ */
public function widthTopLeft() {
$o = $this->getOrientation();
- OC_Log::write('core', 'OC_Image->widthTopLeft() Orientation: '.$o, OC_Log::DEBUG);
- switch($o) {
+ $this->logger->debug('OC_Image->widthTopLeft() Orientation: ' . $o, array('app' => 'core'));
+ switch ($o) {
case -1:
case 1:
case 2: // Not tested
@@ -125,13 +133,14 @@ class OC_Image {
}
/**
- * Returns the height when the image orientation is top-left.
- * @return int
- */
+ * Returns the height when the image orientation is top-left.
+ *
+ * @return int
+ */
public function heightTopLeft() {
$o = $this->getOrientation();
- OC_Log::write('core', 'OC_Image->heightTopLeft() Orientation: '.$o, OC_Log::DEBUG);
- switch($o) {
+ $this->logger->debug('OC_Image->heightTopLeft() Orientation: ' . $o, array('app' => 'core'));
+ switch ($o) {
case -1:
case 1:
case 2: // Not tested
@@ -149,32 +158,34 @@ class OC_Image {
/**
* Outputs the image.
+ *
* @param string $mimeType
* @return bool
*/
- public function show($mimeType=null) {
- if($mimeType === null) {
+ public function show($mimeType = null) {
+ if ($mimeType === null) {
$mimeType = $this->mimeType();
}
- header('Content-Type: '.$mimeType);
+ header('Content-Type: ' . $mimeType);
return $this->_output(null, $mimeType);
}
/**
* Saves the image.
+ *
* @param string $filePath
* @param string $mimeType
* @return bool
*/
- public function save($filePath=null, $mimeType=null) {
- if($mimeType === null) {
+ public function save($filePath = null, $mimeType = null) {
+ if ($mimeType === null) {
$mimeType = $this->mimeType();
}
- if($filePath === null && $this->filePath === null) {
- OC_Log::write('core', __METHOD__.'(): called with no path.', OC_Log::ERROR);
+ if ($filePath === null && $this->filePath === null) {
+ $this->logger->error(__METHOD__ . '(): called with no path.', array('app' => 'core'));
return false;
- } elseif($filePath === null && $this->filePath !== null) {
+ } elseif ($filePath === null && $this->filePath !== null) {
$filePath = $this->filePath;
}
return $this->_output($filePath, $mimeType);
@@ -182,22 +193,21 @@ class OC_Image {
/**
* Outputs/saves the image.
+ *
* @param string $filePath
* @param string $mimeType
* @return bool
* @throws Exception
*/
- private function _output($filePath=null, $mimeType=null) {
- if($filePath) {
+ private function _output($filePath = null, $mimeType = null) {
+ if ($filePath) {
if (!file_exists(dirname($filePath)))
mkdir(dirname($filePath), 0777, true);
- if(!is_writable(dirname($filePath))) {
- OC_Log::write('core',
- __METHOD__.'(): Directory \''.dirname($filePath).'\' is not writable.',
- OC_Log::ERROR);
+ if (!is_writable(dirname($filePath))) {
+ $this->logger->error(__METHOD__ . '(): Directory \'' . dirname($filePath) . '\' is not writable.', array('app' => 'core'));
return false;
- } elseif(is_writable(dirname($filePath)) && file_exists($filePath) && !is_writable($filePath)) {
- OC_Log::write('core', __METHOD__.'(): File \''.$filePath.'\' is not writable.', OC_Log::ERROR);
+ } elseif (is_writable(dirname($filePath)) && file_exists($filePath) && !is_writable($filePath)) {
+ $this->logger->error(__METHOD__ . '(): File \'' . $filePath . '\' is not writable.', array('app' => 'core'));
return false;
}
}
@@ -206,8 +216,8 @@ class OC_Image {
}
$imageType = $this->imageType;
- if($mimeType !== null) {
- switch($mimeType) {
+ if ($mimeType !== null) {
+ switch ($mimeType) {
case 'image/gif':
$imageType = IMAGETYPE_GIF;
break;
@@ -228,7 +238,7 @@ class OC_Image {
}
}
- switch($imageType) {
+ switch ($imageType) {
case IMAGETYPE_GIF:
$retVal = imagegif($this->resource, $filePath);
break;
@@ -259,22 +269,22 @@ class OC_Image {
}
/**
- * Prints the image when called as $image().
- */
+ * Prints the image when called as $image().
+ */
public function __invoke() {
return $this->show();
}
/**
- * @return resource Returns the image resource in any.
- */
+ * @return resource Returns the image resource in any.
+ */
public function resource() {
return $this->resource;
}
/**
- * @return string Returns the raw image data.
- */
+ * @return string Returns the raw image data.
+ */
function data() {
ob_start();
switch ($this->mimeType) {
@@ -289,11 +299,11 @@ class OC_Image {
break;
default:
$res = imagepng($this->resource);
- OC_Log::write('core', 'OC_Image->data. Couldn\'t guess mimetype, defaulting to png', OC_Log::INFO);
+ $this->logger->info('OC_Image->data. Could not guess mime-type, defaulting to png', array('app' => 'core'));
break;
}
if (!$res) {
- OC_Log::write('core', 'OC_Image->data. Error getting image data.', OC_Log::ERROR);
+ $this->logger->error('OC_Image->data. Error getting image data.', array('app' => 'core'));
}
return ob_get_clean();
}
@@ -306,43 +316,49 @@ class OC_Image {
}
/**
- * (I'm open for suggestions on better method name ;)
- * Get the orientation based on EXIF data.
- * @return int The orientation or -1 if no EXIF data is available.
- */
+ * (I'm open for suggestions on better method name ;)
+ * Get the orientation based on EXIF data.
+ *
+ * @return int The orientation or -1 if no EXIF data is available.
+ */
public function getOrientation() {
- if(!is_callable('exif_read_data')) {
- OC_Log::write('core', 'OC_Image->fixOrientation() Exif module not enabled.', OC_Log::DEBUG);
+ if ($this->imageType !== IMAGETYPE_JPEG) {
+ $this->logger->debug('OC_Image->fixOrientation() Image is not a JPEG.', array('app' => 'core'));
return -1;
}
- if(!$this->valid()) {
- OC_Log::write('core', 'OC_Image->fixOrientation() No image loaded.', OC_Log::DEBUG);
+ if (!is_callable('exif_read_data')) {
+ $this->logger->debug('OC_Image->fixOrientation() Exif module not enabled.', array('app' => 'core'));
return -1;
}
- if(is_null($this->filePath) || !is_readable($this->filePath)) {
- OC_Log::write('core', 'OC_Image->fixOrientation() No readable file path set.', OC_Log::DEBUG);
+ if (!$this->valid()) {
+ $this->logger->debug('OC_Image->fixOrientation() No image loaded.', array('app' => 'core'));
+ return -1;
+ }
+ if (is_null($this->filePath) || !is_readable($this->filePath)) {
+ $this->logger->debug('OC_Image->fixOrientation() No readable file path set.', array('app' => 'core'));
return -1;
}
$exif = @exif_read_data($this->filePath, 'IFD0');
- if(!$exif) {
+ if (!$exif) {
return -1;
}
- if(!isset($exif['Orientation'])) {
+ if (!isset($exif['Orientation'])) {
return -1;
}
return $exif['Orientation'];
}
/**
- * (I'm open for suggestions on better method name ;)
- * Fixes orientation based on EXIF data.
- * @return bool.
- */
+ * (I'm open for suggestions on better method name ;)
+ * Fixes orientation based on EXIF data.
+ *
+ * @return bool.
+ */
public function fixOrientation() {
$o = $this->getOrientation();
- OC_Log::write('core', 'OC_Image->fixOrientation() Orientation: '.$o, OC_Log::DEBUG);
+ $this->logger->debug('OC_Image->fixOrientation() Orientation: ' . $o, array('app' => 'core'));
$rotate = 0;
- switch($o) {
+ switch ($o) {
case -1:
return false; //Nothing to fix
case 1:
@@ -371,24 +387,24 @@ class OC_Image {
$rotate = 90;
break;
}
- if($rotate) {
+ if ($rotate) {
$res = imagerotate($this->resource, $rotate, 0);
- if($res) {
- if(imagealphablending($res, true)) {
- if(imagesavealpha($res, true)) {
+ if ($res) {
+ if (imagealphablending($res, true)) {
+ if (imagesavealpha($res, true)) {
imagedestroy($this->resource);
$this->resource = $res;
return true;
} else {
- OC_Log::write('core', 'OC_Image->fixOrientation() Error during alphasaving.', OC_Log::DEBUG);
+ $this->logger->debug('OC_Image->fixOrientation() Error during alpha-saving', array('app' => 'core'));
return false;
}
} else {
- OC_Log::write('core', 'OC_Image->fixOrientation() Error during alphablending.', OC_Log::DEBUG);
+ $this->logger->debug('OC_Image->fixOrientation() Error during alpha-blending', array('app' => 'core'));
return false;
}
} else {
- OC_Log::write('core', 'OC_Image->fixOrientation() Error during oriention fixing.', OC_Log::DEBUG);
+ $this->logger->debug('OC_Image->fixOrientation() Error during orientation fixing', array('app' => 'core'));
return false;
}
}
@@ -397,52 +413,54 @@ class OC_Image {
/**
* Loads an image from a local file, a base64 encoded string or a resource created by an imagecreate* function.
+ *
* @param resource|string $imageRef The path to a local file, a base64 encoded string or a resource created by an imagecreate* function or a file resource (file handle ).
* @return resource|false An image resource or false on error
*/
public function load($imageRef) {
- if(is_resource($imageRef)) {
- if(get_resource_type($imageRef) == 'gd') {
+ if (is_resource($imageRef)) {
+ if (get_resource_type($imageRef) == 'gd') {
$this->resource = $imageRef;
return $this->resource;
- } elseif(in_array(get_resource_type($imageRef), array('file', 'stream'))) {
+ } elseif (in_array(get_resource_type($imageRef), array('file', 'stream'))) {
return $this->loadFromFileHandle($imageRef);
}
- } elseif($this->loadFromBase64($imageRef) !== false) {
+ } elseif ($this->loadFromBase64($imageRef) !== false) {
return $this->resource;
- } elseif($this->loadFromFile($imageRef) !== false) {
+ } elseif ($this->loadFromFile($imageRef) !== false) {
return $this->resource;
- } elseif($this->loadFromData($imageRef) !== false) {
+ } elseif ($this->loadFromData($imageRef) !== false) {
return $this->resource;
- } else {
- OC_Log::write('core', __METHOD__.'(): couldn\'t load anything. Giving up!', OC_Log::DEBUG);
- return false;
}
+ $this->logger->debug(__METHOD__ . '(): could not load anything. Giving up!', array('app' => 'core'));
+ return false;
}
/**
- * Loads an image from an open file handle.
- * It is the responsibility of the caller to position the pointer at the correct place and to close the handle again.
- * @param resource $handle
- * @return resource|false An image resource or false on error
- */
+ * Loads an image from an open file handle.
+ * It is the responsibility of the caller to position the pointer at the correct place and to close the handle again.
+ *
+ * @param resource $handle
+ * @return resource|false An image resource or false on error
+ */
public function loadFromFileHandle($handle) {
- OC_Log::write('core', __METHOD__.'(): Trying', OC_Log::DEBUG);
$contents = stream_get_contents($handle);
- if($this->loadFromData($contents)) {
+ if ($this->loadFromData($contents)) {
return $this->resource;
}
+ return false;
}
/**
- * Loads an image from a local file.
- * @param bool|string $imagePath The path to a local file.
- * @return bool|resource An image resource or false on error
- */
- public function loadFromFile($imagePath=false) {
+ * Loads an image from a local file.
+ *
+ * @param bool|string $imagePath The path to a local file.
+ * @return bool|resource An image resource or false on error
+ */
+ public function loadFromFile($imagePath = false) {
// exif_imagetype throws "read error!" if file is less than 12 byte
- if(!@is_file($imagePath) || !file_exists($imagePath) || filesize($imagePath) < 12 || !is_readable($imagePath)) {
- OC_Log::write('core', 'OC_Image->loadFromFile, couldn\'t load: ' . (string) urlencode($imagePath), OC_Log::DEBUG);
+ if (!@is_file($imagePath) || !file_exists($imagePath) || filesize($imagePath) < 12 || !is_readable($imagePath)) {
+ $this->logger->debug('OC_Image->loadFromFile, could not load: ' . (string)urlencode($imagePath), array('app' => 'core'));
return false;
}
$iType = exif_imagetype($imagePath);
@@ -454,18 +472,14 @@ class OC_Image {
imagealphablending($this->resource, true);
imagesavealpha($this->resource, true);
} else {
- OC_Log::write('core',
- 'OC_Image->loadFromFile, GIF images not supported: '.$imagePath,
- OC_Log::DEBUG);
+ $this->logger->debug('OC_Image->loadFromFile, GIF images not supported: ' . $imagePath, array('app' => 'core'));
}
break;
case IMAGETYPE_JPEG:
if (imagetypes() & IMG_JPG) {
$this->resource = imagecreatefromjpeg($imagePath);
} else {
- OC_Log::write('core',
- 'OC_Image->loadFromFile, JPG images not supported: '.$imagePath,
- OC_Log::DEBUG);
+ $this->logger->debug('OC_Image->loadFromFile, JPG images not supported: ' . $imagePath, array('app' => 'core'));
}
break;
case IMAGETYPE_PNG:
@@ -475,31 +489,25 @@ class OC_Image {
imagealphablending($this->resource, true);
imagesavealpha($this->resource, true);
} else {
- OC_Log::write('core',
- 'OC_Image->loadFromFile, PNG images not supported: '.$imagePath,
- OC_Log::DEBUG);
+ $this->logger->debug('OC_Image->loadFromFile, PNG images not supported: ' . $imagePath, array('app' => 'core'));
}
break;
case IMAGETYPE_XBM:
if (imagetypes() & IMG_XPM) {
$this->resource = imagecreatefromxbm($imagePath);
} else {
- OC_Log::write('core',
- 'OC_Image->loadFromFile, XBM/XPM images not supported: '.$imagePath,
- OC_Log::DEBUG);
+ $this->logger->debug('OC_Image->loadFromFile, XBM/XPM images not supported: ' . $imagePath, array('app' => 'core'));
}
break;
case IMAGETYPE_WBMP:
if (imagetypes() & IMG_WBMP) {
$this->resource = imagecreatefromwbmp($imagePath);
} else {
- OC_Log::write('core',
- 'OC_Image->loadFromFile, WBMP images not supported: '.$imagePath,
- OC_Log::DEBUG);
+ $this->logger->debug('OC_Image->loadFromFile, WBMP images not supported: ' . $imagePath, array('app' => 'core'));
}
break;
case IMAGETYPE_BMP:
- $this->resource = $this->imagecreatefrombmp($imagePath);
+ $this->resource = $this->imagecreatefrombmp($imagePath);
break;
/*
case IMAGETYPE_TIFF_II: // (intel byte order)
@@ -530,10 +538,10 @@ class OC_Image {
// this is mostly file created from encrypted file
$this->resource = imagecreatefromstring(\OC\Files\Filesystem::file_get_contents(\OC\Files\Filesystem::getLocalPath($imagePath)));
$iType = IMAGETYPE_PNG;
- OC_Log::write('core', 'OC_Image->loadFromFile, Default', OC_Log::DEBUG);
+ $this->logger->debug('OC_Image->loadFromFile, Default', array('app' => 'core'));
break;
}
- if($this->valid()) {
+ if ($this->valid()) {
$this->imageType = $iType;
$this->mimeType = image_type_to_mime_type($iType);
$this->filePath = $imagePath;
@@ -542,47 +550,49 @@ class OC_Image {
}
/**
- * Loads an image from a string of data.
- * @param string $str A string of image data as read from a file.
- * @return bool|resource An image resource or false on error
- */
+ * Loads an image from a string of data.
+ *
+ * @param string $str A string of image data as read from a file.
+ * @return bool|resource An image resource or false on error
+ */
public function loadFromData($str) {
- if(is_resource($str)) {
+ if (is_resource($str)) {
return false;
}
$this->resource = @imagecreatefromstring($str);
if ($this->fileInfo) {
$this->mimeType = $this->fileInfo->buffer($str);
}
- if(is_resource($this->resource)) {
+ if (is_resource($this->resource)) {
imagealphablending($this->resource, false);
imagesavealpha($this->resource, true);
}
- if(!$this->resource) {
- OC_Log::write('core', 'OC_Image->loadFromData, couldn\'t load', OC_Log::DEBUG);
+ if (!$this->resource) {
+ $this->logger->debug('OC_Image->loadFromFile, could not load', array('app' => 'core'));
return false;
}
return $this->resource;
}
/**
- * Loads an image from a base64 encoded string.
- * @param string $str A string base64 encoded string of image data.
- * @return bool|resource An image resource or false on error
- */
+ * Loads an image from a base64 encoded string.
+ *
+ * @param string $str A string base64 encoded string of image data.
+ * @return bool|resource An image resource or false on error
+ */
public function loadFromBase64($str) {
- if(!is_string($str)) {
+ if (!is_string($str)) {
return false;
}
$data = base64_decode($str);
- if($data) { // try to load from string data
+ if ($data) { // try to load from string data
$this->resource = @imagecreatefromstring($data);
if ($this->fileInfo) {
$this->mimeType = $this->fileInfo->buffer($data);
}
- if(!$this->resource) {
- OC_Log::write('core', 'OC_Image->loadFromBase64, couldn\'t load', OC_Log::DEBUG);
+ if (!$this->resource) {
+ $this->logger->debug('OC_Image->loadFromBase64, could not load', array('app' => 'core'));
return false;
}
return $this->resource;
@@ -593,6 +603,7 @@ class OC_Image {
/**
* Create a new image from file or URL
+ *
* @link http://www.programmierer-forum.de/function-imagecreatefrombmp-laeuft-mit-allen-bitraten-t143137.htm
* @version 1.00
* @param string $fileName
@@ -602,7 +613,7 @@ class OC_Image {
*/
private function imagecreatefrombmp($fileName) {
if (!($fh = fopen($fileName, 'rb'))) {
- trigger_error('imagecreatefrombmp: Can not open ' . $fileName, E_USER_WARNING);
+ $this->logger->warning('imagecreatefrombmp: Can not open ' . $fileName, array('app' => 'core'));
return false;
}
// read file header
@@ -610,7 +621,7 @@ class OC_Image {
// check for bitmap
if ($meta['type'] != 19778) {
fclose($fh);
- trigger_error('imagecreatefrombmp: ' . $fileName . ' is not a bitmap!', E_USER_WARNING);
+ $this->logger->warning('imagecreatefrombmp: Can not open ' . $fileName . ' is not a bitmap!', array('app' => 'core'));
return false;
}
// read image header
@@ -622,7 +633,7 @@ class OC_Image {
// set bytes and padding
$meta['bytes'] = $meta['bits'] / 8;
$this->bitDepth = $meta['bits']; //remember the bit depth for the imagebmp call
- $meta['decal'] = 4 - (4 * (($meta['width'] * $meta['bytes'] / 4)- floor($meta['width'] * $meta['bytes'] / 4)));
+ $meta['decal'] = 4 - (4 * (($meta['width'] * $meta['bytes'] / 4) - floor($meta['width'] * $meta['bytes'] / 4)));
if ($meta['decal'] == 4) {
$meta['decal'] = 0;
}
@@ -634,7 +645,7 @@ class OC_Image {
$meta['imagesize'] = @filesize($fileName) - $meta['offset'];
if ($meta['imagesize'] < 1) {
fclose($fh);
- trigger_error('imagecreatefrombmp: Can not obtain filesize of ' . $fileName . '!', E_USER_WARNING);
+ $this->logger->warning('imagecreatefrombmp: Can not obtain file size of ' . $fileName . ' is not a bitmap!', array('app' => 'core'));
return false;
}
}
@@ -654,6 +665,14 @@ class OC_Image {
}
// create gd image
$im = imagecreatetruecolor($meta['width'], $meta['height']);
+ if ($im == false) {
+ fclose($fh);
+ $this->logger->warning(
+ 'imagecreatefrombmp: imagecreatetruecolor failed for file "' . $fileName . '" with dimensions ' . $meta['width'] . 'x' . $meta['height'],
+ array('app' => 'core'));
+ return false;
+ }
+
$data = fread($fh, $meta['imagesize']);
$p = 0;
$vide = chr(0);
@@ -667,7 +686,7 @@ class OC_Image {
case 32:
case 24:
if (!($part = substr($data, $p, 3))) {
- trigger_error($error, E_USER_WARNING);
+ $this->logger->warning($error, array('app' => 'core'));
return $im;
}
$color = unpack('V', $part . $vide);
@@ -675,7 +694,7 @@ class OC_Image {
case 16:
if (!($part = substr($data, $p, 2))) {
fclose($fh);
- trigger_error($error, E_USER_WARNING);
+ $this->logger->warning($error, array('app' => 'core'));
return $im;
}
$color = unpack('v', $part);
@@ -683,12 +702,12 @@ class OC_Image {
break;
case 8:
$color = unpack('n', $vide . substr($data, $p, 1));
- $color[1] = $palette[ $color[1] + 1 ];
+ $color[1] = $palette[$color[1] + 1];
break;
case 4:
$color = unpack('n', $vide . substr($data, floor($p), 1));
$color[1] = ($p * 2) % 2 == 0 ? $color[1] >> 4 : $color[1] & 0x0F;
- $color[1] = $palette[ $color[1] + 1 ];
+ $color[1] = $palette[$color[1] + 1];
break;
case 1:
$color = unpack('n', $vide . substr($data, floor($p), 1));
@@ -718,13 +737,11 @@ class OC_Image {
$color[1] = ($color[1] & 0x1);
break;
}
- $color[1] = $palette[ $color[1] + 1 ];
+ $color[1] = $palette[$color[1] + 1];
break;
default:
fclose($fh);
- trigger_error('imagecreatefrombmp: '
- . $fileName . ' has ' . $meta['bits'] . ' bits and this is not supported!',
- E_USER_WARNING);
+ $this->logger->warning('imagecreatefrombmp: ' . $fileName . ' has ' . $meta['bits'] . ' bits and this is not supported!', array('app' => 'core'));
return false;
}
imagesetpixel($im, $x, $y, $color[1]);
@@ -739,24 +756,25 @@ class OC_Image {
}
/**
- * Resizes the image preserving ratio.
- * @param integer $maxSize The maximum size of either the width or height.
- * @return bool
- */
+ * Resizes the image preserving ratio.
+ *
+ * @param integer $maxSize The maximum size of either the width or height.
+ * @return bool
+ */
public function resize($maxSize) {
- if(!$this->valid()) {
- OC_Log::write('core', __METHOD__.'(): No image loaded', OC_Log::ERROR);
+ if (!$this->valid()) {
+ $this->logger->error(__METHOD__ . '(): No image loaded', array('app' => 'core'));
return false;
}
- $widthOrig=imageSX($this->resource);
- $heightOrig=imageSY($this->resource);
- $ratioOrig = $widthOrig/$heightOrig;
+ $widthOrig = imageSX($this->resource);
+ $heightOrig = imageSY($this->resource);
+ $ratioOrig = $widthOrig / $heightOrig;
if ($ratioOrig > 1) {
- $newHeight = round($maxSize/$ratioOrig);
+ $newHeight = round($maxSize / $ratioOrig);
$newWidth = $maxSize;
} else {
- $newWidth = round($maxSize*$ratioOrig);
+ $newWidth = round($maxSize * $ratioOrig);
$newHeight = $maxSize;
}
@@ -771,21 +789,21 @@ class OC_Image {
*/
public function preciseResize($width, $height) {
if (!$this->valid()) {
- OC_Log::write('core', __METHOD__.'(): No image loaded', OC_Log::ERROR);
+ $this->logger->error(__METHOD__ . '(): No image loaded', array('app' => 'core'));
return false;
}
- $widthOrig=imageSX($this->resource);
- $heightOrig=imageSY($this->resource);
+ $widthOrig = imageSX($this->resource);
+ $heightOrig = imageSY($this->resource);
$process = imagecreatetruecolor($width, $height);
if ($process == false) {
- OC_Log::write('core', __METHOD__.'(): Error creating true color image', OC_Log::ERROR);
+ $this->logger->error(__METHOD__ . '(): Error creating true color image', array('app' => 'core'));
imagedestroy($process);
return false;
}
// preserve transparency
- if($this->imageType == IMAGETYPE_GIF or $this->imageType == IMAGETYPE_PNG) {
+ if ($this->imageType == IMAGETYPE_GIF or $this->imageType == IMAGETYPE_PNG) {
imagecolortransparent($process, imagecolorallocatealpha($process, 0, 0, 0, 127));
imagealphablending($process, false);
imagesavealpha($process, true);
@@ -793,7 +811,7 @@ class OC_Image {
imagecopyresampled($process, $this->resource, 0, 0, 0, 0, $width, $height, $widthOrig, $heightOrig);
if ($process == false) {
- OC_Log::write('core', __METHOD__.'(): Error resampling process image '.$width.'x'.$height, OC_Log::ERROR);
+ $this->logger->error(__METHOD__ . '(): Error re-sampling process image', array('app' => 'core'));
imagedestroy($process);
return false;
}
@@ -803,46 +821,47 @@ class OC_Image {
}
/**
- * Crops the image to the middle square. If the image is already square it just returns.
- * @param int $size maximum size for the result (optional)
- * @return bool for success or failure
- */
- public function centerCrop($size=0) {
- if(!$this->valid()) {
- OC_Log::write('core', 'OC_Image->centerCrop, No image loaded', OC_Log::ERROR);
+ * Crops the image to the middle square. If the image is already square it just returns.
+ *
+ * @param int $size maximum size for the result (optional)
+ * @return bool for success or failure
+ */
+ public function centerCrop($size = 0) {
+ if (!$this->valid()) {
+ $this->logger->error('OC_Image->centerCrop, No image loaded', array('app' => 'core'));
return false;
}
- $widthOrig=imageSX($this->resource);
- $heightOrig=imageSY($this->resource);
- if($widthOrig === $heightOrig and $size==0) {
+ $widthOrig = imageSX($this->resource);
+ $heightOrig = imageSY($this->resource);
+ if ($widthOrig === $heightOrig and $size == 0) {
return true;
}
- $ratioOrig = $widthOrig/$heightOrig;
+ $ratioOrig = $widthOrig / $heightOrig;
$width = $height = min($widthOrig, $heightOrig);
if ($ratioOrig > 1) {
- $x = ($widthOrig/2) - ($width/2);
+ $x = ($widthOrig / 2) - ($width / 2);
$y = 0;
} else {
- $y = ($heightOrig/2) - ($height/2);
+ $y = ($heightOrig / 2) - ($height / 2);
$x = 0;
}
- if($size>0) {
- $targetWidth=$size;
- $targetHeight=$size;
- }else{
- $targetWidth=$width;
- $targetHeight=$height;
+ if ($size > 0) {
+ $targetWidth = $size;
+ $targetHeight = $size;
+ } else {
+ $targetWidth = $width;
+ $targetHeight = $height;
}
$process = imagecreatetruecolor($targetWidth, $targetHeight);
if ($process == false) {
- OC_Log::write('core', 'OC_Image->centerCrop. Error creating true color image', OC_Log::ERROR);
+ $this->logger->error('OC_Image->centerCrop, Error creating true color image', array('app' => 'core'));
imagedestroy($process);
return false;
}
// preserve transparency
- if($this->imageType == IMAGETYPE_GIF or $this->imageType == IMAGETYPE_PNG) {
+ if ($this->imageType == IMAGETYPE_GIF or $this->imageType == IMAGETYPE_PNG) {
imagecolortransparent($process, imagecolorallocatealpha($process, 0, 0, 0, 127));
imagealphablending($process, false);
imagesavealpha($process, true);
@@ -850,9 +869,7 @@ class OC_Image {
imagecopyresampled($process, $this->resource, 0, 0, $x, $y, $targetWidth, $targetHeight, $width, $height);
if ($process == false) {
- OC_Log::write('core',
- 'OC_Image->centerCrop. Error resampling process image '.$width.'x'.$height,
- OC_Log::ERROR);
+ $this->logger->error('OC_Image->centerCrop, Error re-sampling process image ' . $width . 'x' . $height, array('app' => 'core'));
imagedestroy($process);
return false;
}
@@ -862,27 +879,28 @@ class OC_Image {
}
/**
- * Crops the image from point $x$y with dimension $wx$h.
- * @param int $x Horizontal position
- * @param int $y Vertical position
- * @param int $w Width
- * @param int $h Height
- * @return bool for success or failure
- */
+ * Crops the image from point $x$y with dimension $wx$h.
+ *
+ * @param int $x Horizontal position
+ * @param int $y Vertical position
+ * @param int $w Width
+ * @param int $h Height
+ * @return bool for success or failure
+ */
public function crop($x, $y, $w, $h) {
- if(!$this->valid()) {
- OC_Log::write('core', __METHOD__.'(): No image loaded', OC_Log::ERROR);
+ if (!$this->valid()) {
+ $this->logger->error(__METHOD__ . '(): No image loaded', array('app' => 'core'));
return false;
}
$process = imagecreatetruecolor($w, $h);
if ($process == false) {
- OC_Log::write('core', __METHOD__.'(): Error creating true color image', OC_Log::ERROR);
+ $this->logger->error(__METHOD__ . '(): Error creating true color image', array('app' => 'core'));
imagedestroy($process);
return false;
}
// preserve transparency
- if($this->imageType == IMAGETYPE_GIF or $this->imageType == IMAGETYPE_PNG) {
+ if ($this->imageType == IMAGETYPE_GIF or $this->imageType == IMAGETYPE_PNG) {
imagecolortransparent($process, imagecolorallocatealpha($process, 0, 0, 0, 127));
imagealphablending($process, false);
imagesavealpha($process, true);
@@ -890,7 +908,7 @@ class OC_Image {
imagecopyresampled($process, $this->resource, 0, 0, $x, $y, $w, $h, $w, $h);
if ($process == false) {
- OC_Log::write('core', __METHOD__.'(): Error resampling process image '.$w.'x'.$h, OC_Log::ERROR);
+ $this->logger->error(__METHOD__ . '(): Error re-sampling process image ' . $w . 'x' . $h, array('app' => 'core'));
imagedestroy($process);
return false;
}
@@ -900,41 +918,44 @@ class OC_Image {
}
/**
- * Resizes the image to fit within a boundry while preserving ratio.
+ * Resizes the image to fit within a boundary while preserving ratio.
+ *
* @param integer $maxWidth
* @param integer $maxHeight
* @return bool
*/
public function fitIn($maxWidth, $maxHeight) {
- if(!$this->valid()) {
- OC_Log::write('core', __METHOD__.'(): No image loaded', OC_Log::ERROR);
+ if (!$this->valid()) {
+ $this->logger->error(__METHOD__ . '(): No image loaded', array('app' => 'core'));
return false;
}
- $widthOrig=imageSX($this->resource);
- $heightOrig=imageSY($this->resource);
- $ratio = $widthOrig/$heightOrig;
+ $widthOrig = imageSX($this->resource);
+ $heightOrig = imageSY($this->resource);
+ $ratio = $widthOrig / $heightOrig;
- $newWidth = min($maxWidth, $ratio*$maxHeight);
- $newHeight = min($maxHeight, $maxWidth/$ratio);
+ $newWidth = min($maxWidth, $ratio * $maxHeight);
+ $newHeight = min($maxHeight, $maxWidth / $ratio);
$this->preciseResize(round($newWidth), round($newHeight));
return true;
}
public function destroy() {
- if($this->valid()) {
+ if ($this->valid()) {
imagedestroy($this->resource);
}
- $this->resource=null;
+ $this->resource = null;
}
public function __destruct() {
$this->destroy();
}
}
-if ( ! function_exists( 'imagebmp') ) {
+
+if (!function_exists('imagebmp')) {
/**
* Output a BMP image to either the browser or a file
+ *
* @link http://www.ugia.cn/wp-data/imagebmp.php
* @author legend
* @link http://www.programmierer-forum.de/imagebmp-gute-funktion-gefunden-t143716.htm
@@ -945,11 +966,10 @@ if ( ! function_exists( 'imagebmp') ) {
* @param int $compression [optional]
* @return bool TRUE on success or FALSE on failure.
*/
- function imagebmp($im, $fileName='', $bit=24, $compression=0) {
+ function imagebmp($im, $fileName = '', $bit = 24, $compression = 0) {
if (!in_array($bit, array(1, 4, 8, 16, 24, 32))) {
$bit = 24;
- }
- else if ($bit == 32) {
+ } else if ($bit == 32) {
$bit = 24;
}
$bits = pow(2, $bit);
@@ -971,7 +991,7 @@ if ( ! function_exists( 'imagebmp') ) {
if ($padding % 4 != 0) {
$extra = str_repeat("\0", $padding);
}
- for ($j = $height - 1; $j >= 0; $j --) {
+ for ($j = $height - 1; $j >= 0; $j--) {
$i = 0;
while ($i < $width) {
$bin = 0;
@@ -985,8 +1005,7 @@ if ( ! function_exists( 'imagebmp') ) {
}
$bmpData .= $extra;
}
- }
- // RLE8
+ } // RLE8
else if ($compression == 1 && $bit == 8) {
for ($j = $height - 1; $j >= 0; $j--) {
$lastIndex = "\0";
@@ -999,8 +1018,7 @@ if ( ! function_exists( 'imagebmp') ) {
}
$lastIndex = $index;
$sameNum = 1;
- }
- else {
+ } else {
$sameNum++;
}
}
@@ -1010,8 +1028,7 @@ if ( ! function_exists( 'imagebmp') ) {
}
$sizeQuad = strlen($rgbQuad);
$sizeData = strlen($bmpData);
- }
- else {
+ } else {
$extra = '';
$padding = 4 - ($width * ($bit / 8)) % 4;
if ($padding % 4 != 0) {
@@ -1020,7 +1037,7 @@ if ( ! function_exists( 'imagebmp') ) {
$bmpData = '';
for ($j = $height - 1; $j >= 0; $j--) {
for ($i = 0; $i < $width; $i++) {
- $index = imagecolorat($im, $i, $j);
+ $index = imagecolorat($im, $i, $j);
$colors = imagecolorsforindex($im, $index);
if ($bit == 16) {
$bin = 0 << $bit;
@@ -1028,8 +1045,7 @@ if ( ! function_exists( 'imagebmp') ) {
$bin |= ($colors['green'] >> 3) << 5;
$bin |= $colors['blue'] >> 3;
$bmpData .= pack("v", $bin);
- }
- else {
+ } else {
$bmpData .= pack("c*", $colors['blue'], $colors['green'], $colors['red']);
}
}
@@ -1047,20 +1063,21 @@ if ( ! function_exists( 'imagebmp') ) {
fclose($fp);
return true;
}
- echo $fileHeader . $infoHeader. $rgbQuad . $bmpData;
+ echo $fileHeader . $infoHeader . $rgbQuad . $bmpData;
return true;
}
}
-if ( ! function_exists( 'exif_imagetype' ) ) {
+if (!function_exists('exif_imagetype')) {
/**
* Workaround if exif_imagetype does not exist
+ *
* @link http://www.php.net/manual/en/function.exif-imagetype.php#80383
* @param string $fileName
* @return string|boolean
*/
- function exif_imagetype ( $fileName ) {
- if ( ( $info = getimagesize( $fileName ) ) !== false ) {
+ function exif_imagetype($fileName) {
+ if (($info = getimagesize($fileName)) !== false) {
return $info[2];
}
return false;
diff --git a/lib/private/installer.php b/lib/private/installer.php
index 02e2190aaf2..60ed06ae352 100644
--- a/lib/private/installer.php
+++ b/lib/private/installer.php
@@ -201,11 +201,10 @@ class OC_Installer{
/**
* update an app by it's id
* @param integer $ocsid
- * @param bool $isShipped
* @return bool
* @throws Exception
*/
- public static function updateAppByOCSId($ocsid, $isShipped=false) {
+ public static function updateAppByOCSId($ocsid) {
$appdata = OC_OCSClient::getApplication($ocsid);
$download = OC_OCSClient::getApplicationDownload($ocsid, 1);
@@ -559,8 +558,8 @@ class OC_Installer{
// is the code checker enabled?
if(OC_Config::getValue('appcodechecker', true)) {
// check if grep is installed
- $grep = exec('command -v grep');
- if($grep=='') {
+ $grep = \OC_Helper::findBinaryPath('grep');
+ if (!$grep) {
OC_Log::write('core',
'grep not installed. So checking the code of the app "'.$appname.'" was not possible',
OC_Log::ERROR);
@@ -569,7 +568,7 @@ class OC_Installer{
// iterate the bad patterns
foreach($blacklist as $bl) {
- $cmd = 'grep -ri '.escapeshellarg($bl).' '.$folder.'';
+ $cmd = 'grep --include \\*.php -ri '.escapeshellarg($bl).' '.$folder.'';
$result = exec($cmd);
// bad pattern found
if($result<>'') {
diff --git a/lib/private/l10n.php b/lib/private/l10n.php
index 57886a796cd..bc4e53e975c 100644
--- a/lib/private/l10n.php
+++ b/lib/private/l10n.php
@@ -7,19 +7,9 @@
* @copyright 2012 Frank Karlitschek frank@owncloud.org
* @copyright 2013 Jakob Sack
*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see .
- *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
*/
/**
@@ -30,6 +20,7 @@ class OC_L10N implements \OCP\IL10N {
* cache
*/
protected static $cache = array();
+ protected static $availableLanguages = array();
/**
* The best language
@@ -54,22 +45,12 @@ class OC_L10N implements \OCP\IL10N {
/**
* Plural forms (string)
*/
- private $plural_form_string = 'nplurals=2; plural=(n != 1);';
+ private $pluralFormString = 'nplurals=2; plural=(n != 1);';
/**
* Plural forms (function)
*/
- private $plural_form_function = null;
-
- /**
- * Localization
- */
- private $localizations = array(
- 'jsdate' => 'dd.mm.yy',
- 'date' => '%d.%m.%Y',
- 'datetime' => '%d.%m.%Y %H:%M:%S',
- 'time' => '%H:%M:%S',
- 'firstday' => 0);
+ private $pluralFormFunction = null;
/**
* get an L10N instance
@@ -99,17 +80,28 @@ class OC_L10N implements \OCP\IL10N {
}
/**
- * @param string $transFile
+ * @param $transFile
+ * @param bool $mergeTranslations
+ * @return bool
*/
- public function load($transFile) {
+ public function load($transFile, $mergeTranslations = false) {
$this->app = true;
- include $transFile;
- if(isset($TRANSLATIONS) && is_array($TRANSLATIONS)) {
- $this->translations = $TRANSLATIONS;
+
+ $json = json_decode(file_get_contents($transFile), true);
+ if (!is_array($json)) {
+ return false;
}
- if(isset($PLURAL_FORMS)) {
- $this->plural_form_string = $PLURAL_FORMS;
+
+ $this->pluralFormString = $json['pluralForm'];
+ $translations = $json['translations'];
+
+ if ($mergeTranslations) {
+ $this->translations = array_merge($this->translations, $translations);
+ } else {
+ $this->translations = $translations;
}
+
+ return true;
}
protected function init() {
@@ -126,52 +118,32 @@ class OC_L10N implements \OCP\IL10N {
// Use cache if possible
if(array_key_exists($app.'::'.$lang, self::$cache)) {
-
$this->translations = self::$cache[$app.'::'.$lang]['t'];
- $this->localizations = self::$cache[$app.'::'.$lang]['l'];
- }
- else{
- $i18ndir = self::findI18nDir($app);
- // Localization is in /l10n, Texts are in $i18ndir
+ } else{
+ $i18nDir = self::findI18nDir($app);
+ $transFile = strip_tags($i18nDir).strip_tags($lang).'.json';
+ // Texts are in $i18ndir
// (Just no need to define date/time format etc. twice)
- if((OC_Helper::isSubDirectory($i18ndir.$lang.'.php', OC::$SERVERROOT.'/core/l10n/')
- || OC_Helper::isSubDirectory($i18ndir.$lang.'.php', OC::$SERVERROOT.'/lib/l10n/')
- || OC_Helper::isSubDirectory($i18ndir.$lang.'.php', OC::$SERVERROOT.'/settings')
- || OC_Helper::isSubDirectory($i18ndir.$lang.'.php', OC_App::getAppPath($app).'/l10n/')
+ if((OC_Helper::isSubDirectory($transFile, OC::$SERVERROOT.'/core/l10n/')
+ || OC_Helper::isSubDirectory($transFile, OC::$SERVERROOT.'/lib/l10n/')
+ || OC_Helper::isSubDirectory($transFile, OC::$SERVERROOT.'/settings')
+ || OC_Helper::isSubDirectory($transFile, OC_App::getAppPath($app).'/l10n/')
)
- && file_exists($i18ndir.$lang.'.php')) {
- // Include the file, save the data from $CONFIG
- $transFile = strip_tags($i18ndir).strip_tags($lang).'.php';
- include $transFile;
- if(isset($TRANSLATIONS) && is_array($TRANSLATIONS)) {
- $this->translations = $TRANSLATIONS;
+ && file_exists($transFile)) {
+ // load the translations file
+ if($this->load($transFile)) {
//merge with translations from theme
- $theme = OC_Config::getValue( "theme" );
- if (!is_null($theme)) {
+ $theme = \OC::$server->getConfig()->getSystemValue('theme');
+ if (!empty($theme)) {
$transFile = OC::$SERVERROOT.'/themes/'.$theme.substr($transFile, strlen(OC::$SERVERROOT));
if (file_exists($transFile)) {
- include $transFile;
- if (isset($TRANSLATIONS) && is_array($TRANSLATIONS)) {
- $this->translations = array_merge($this->translations, $TRANSLATIONS);
- }
+ $this->load($transFile, true);
}
}
}
- if(isset($PLURAL_FORMS)) {
- $this->plural_form_string = $PLURAL_FORMS;
- }
- }
-
- if(file_exists(OC::$SERVERROOT.'/core/l10n/l10n-'.$lang.'.php') && OC_Helper::isSubDirectory(OC::$SERVERROOT.'/core/l10n/l10n-'.$lang.'.php', OC::$SERVERROOT.'/core/l10n/')) {
- // Include the file, save the data from $CONFIG
- include OC::$SERVERROOT.'/core/l10n/l10n-'.$lang.'.php';
- if(isset($LOCALIZATIONS) && is_array($LOCALIZATIONS)) {
- $this->localizations = array_merge($this->localizations, $LOCALIZATIONS);
- }
}
self::$cache[$app.'::'.$lang]['t'] = $this->translations;
- self::$cache[$app.'::'.$lang]['l'] = $this->localizations;
}
}
@@ -287,17 +259,6 @@ class OC_L10N implements \OCP\IL10N {
return $this->translations;
}
- /**
- * getPluralFormString
- * @return string containing the gettext "Plural-Forms"-string
- *
- * Returns a string like "nplurals=2; plural=(n != 1);"
- */
- public function getPluralFormString() {
- $this->init();
- return $this->plural_form_string;
- }
-
/**
* getPluralFormFunction
* @return string the plural form function
@@ -306,73 +267,63 @@ class OC_L10N implements \OCP\IL10N {
*/
public function getPluralFormFunction() {
$this->init();
- if(is_null($this->plural_form_function)) {
- $this->plural_form_function = $this->createPluralFormFunction($this->plural_form_string);
+ if(is_null($this->pluralFormFunction)) {
+ $this->pluralFormFunction = $this->createPluralFormFunction($this->pluralFormString);
}
- return $this->plural_form_function;
- }
-
- /**
- * get localizations
- * @return array Fetch all localizations
- *
- * Returns an associative array with all localizations
- */
- public function getLocalizations() {
- $this->init();
- return $this->localizations;
+ return $this->pluralFormFunction;
}
/**
* Localization
* @param string $type Type of localization
* @param array|int|string $data parameters for this localization
- * @return String or false
+ * @param array $options
+ * @return string|false
*
* Returns the localized data.
*
* Implemented types:
* - date
* - Creates a date
- * - l10n-field: date
* - params: timestamp (int/string)
* - datetime
* - Creates date and time
- * - l10n-field: datetime
* - params: timestamp (int/string)
* - time
* - Creates a time
- * - l10n-field: time
* - params: timestamp (int/string)
*/
- public function l($type, $data) {
+ public function l($type, $data, $options = array()) {
+ if ($type === 'firstday') {
+ return $this->getFirstWeekDay();
+ }
+ if ($type === 'jsdate') {
+ return $this->getDateFormat();
+ }
+
$this->init();
+ $value = new DateTime();
+ if($data instanceof DateTime) {
+ $value = $data;
+ } elseif(is_string($data) && !is_numeric($data)) {
+ $data = strtotime($data);
+ $value->setTimestamp($data);
+ } else {
+ $value->setTimestamp($data);
+ }
+ $locale = self::findLanguage();
+ $options = array_merge(array('width' => 'long'), $options);
+ $width = $options['width'];
switch($type) {
- // If you add something don't forget to add it to $localizations
- // at the top of the page
case 'date':
- case 'datetime':
- case 'time':
- if($data instanceof DateTime) {
- $data = $data->getTimestamp();
- } elseif(is_string($data) && !is_numeric($data)) {
- $data = strtotime($data);
- }
- $locales = array(self::findLanguage());
- if (strlen($locales[0]) == 2) {
- $locales[] = $locales[0].'_'.strtoupper($locales[0]);
- }
- setlocale(LC_TIME, $locales);
- $format = $this->localizations[$type];
- // Check for Windows to find and replace the %e modifier correctly
- if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
- $format = preg_replace('#(?localizations[$type];
default:
return false;
}
@@ -435,8 +386,8 @@ class OC_L10N implements \OCP\IL10N {
return self::$language;
}
- if(OC_User::getUser() && OC_Preferences::getValue(OC_User::getUser(), 'core', 'lang')) {
- $lang = OC_Preferences::getValue(OC_User::getUser(), 'core', 'lang');
+ if(OC_User::getUser() && \OC::$server->getConfig()->getUserValue(OC_User::getUser(), 'core', 'lang')) {
+ $lang = \OC::$server->getConfig()->getUserValue(OC_User::getUser(), 'core', 'lang');
self::$language = $lang;
if(is_array($app)) {
$available = $app;
@@ -449,7 +400,7 @@ class OC_L10N implements \OCP\IL10N {
}
}
- $default_language = OC_Config::getValue('default_language', false);
+ $default_language = \OC::$server->getConfig()->getSystemValue('default_language', false);
if($default_language !== false) {
return $default_language;
@@ -495,21 +446,21 @@ class OC_L10N implements \OCP\IL10N {
/**
* find the l10n directory
* @param string $app App that needs to be translated
- * @return directory
+ * @return string directory
*/
protected static function findI18nDir($app) {
// find the i18n dir
- $i18ndir = OC::$SERVERROOT.'/core/l10n/';
+ $i18nDir = OC::$SERVERROOT.'/core/l10n/';
if($app != '') {
// Check if the app is in the app folder
if(file_exists(OC_App::getAppPath($app).'/l10n/')) {
- $i18ndir = OC_App::getAppPath($app).'/l10n/';
+ $i18nDir = OC_App::getAppPath($app).'/l10n/';
}
else{
- $i18ndir = OC::$SERVERROOT.'/'.$app.'/l10n/';
+ $i18nDir = OC::$SERVERROOT.'/'.$app.'/l10n/';
}
}
- return $i18ndir;
+ return $i18nDir;
}
/**
@@ -518,17 +469,22 @@ class OC_L10N implements \OCP\IL10N {
* @return array an array of available languages
*/
public static function findAvailableLanguages($app=null) {
+ if(!empty(self::$availableLanguages)) {
+ return self::$availableLanguages;
+ }
$available=array('en');//english is always available
$dir = self::findI18nDir($app);
if(is_dir($dir)) {
$files=scandir($dir);
foreach($files as $file) {
- if(substr($file, -4, 4) === '.php' && substr($file, 0, 4) !== 'l10n') {
- $i = substr($file, 0, -4);
+ if(substr($file, -5, 5) === '.json' && substr($file, 0, 4) !== 'l10n') {
+ $i = substr($file, 0, -5);
$available[] = $i;
}
}
}
+
+ self::$availableLanguages = $available;
return $available;
}
@@ -538,13 +494,30 @@ class OC_L10N implements \OCP\IL10N {
* @return bool
*/
public static function languageExists($app, $lang) {
- if ($lang == 'en') {//english is always available
+ if ($lang === 'en') {//english is always available
return true;
}
$dir = self::findI18nDir($app);
if(is_dir($dir)) {
- return file_exists($dir.'/'.$lang.'.php');
+ return file_exists($dir.'/'.$lang.'.json');
}
return false;
}
+
+ /**
+ * @return string
+ * @throws \Punic\Exception\ValueNotInList
+ */
+ public function getDateFormat() {
+ $locale = self::findLanguage();
+ return Punic\Calendar::getDateFormat('short', $locale);
+ }
+
+ /**
+ * @return int
+ */
+ public function getFirstWeekDay() {
+ $locale = self::findLanguage();
+ return Punic\Calendar::getFirstWeekday($locale);
+ }
}
diff --git a/lib/private/largefilehelper.php b/lib/private/largefilehelper.php
index 2c35feefc8b..750ba1d23de 100644
--- a/lib/private/largefilehelper.php
+++ b/lib/private/largefilehelper.php
@@ -101,7 +101,8 @@ class LargeFileHelper {
*/
public function getFileSizeViaCurl($filename) {
if (function_exists('curl_init')) {
- $ch = curl_init("file://$filename");
+ $fencoded = rawurlencode($filename);
+ $ch = curl_init("file://$fencoded");
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
@@ -150,7 +151,7 @@ class LargeFileHelper {
$result = null;
if (strpos($os, 'linux') !== false) {
$result = $this->exec("stat -c %s $arg");
- } else if (strpos($os, 'bsd') !== false) {
+ } else if (strpos($os, 'bsd') !== false || strpos($os, 'darwin') !== false) {
$result = $this->exec("stat -f %z $arg");
} else if (strpos($os, 'win') !== false) {
$result = $this->exec("for %F in ($arg) do @echo %~zF");
diff --git a/lib/private/legacy/config.php b/lib/private/legacy/config.php
index 13ff0dbe040..7b711204256 100644
--- a/lib/private/legacy/config.php
+++ b/lib/private/legacy/config.php
@@ -22,14 +22,6 @@ class OC_Config {
/** @var \OC\Config */
public static $object;
- /**
- * Returns the config instance
- * @return \OC\Config
- */
- public static function getObject() {
- return self::$object;
- }
-
/**
* Lists all available config keys
* @return array an array of key names
diff --git a/lib/private/legacy/updater.php b/lib/private/legacy/updater.php
deleted file mode 100644
index 190748066c6..00000000000
--- a/lib/private/legacy/updater.php
+++ /dev/null
@@ -1,19 +0,0 @@
-
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-/**
- * provides an interface to all search providers
- *
- * @deprecated use \OC\Updater instead
- */
-class OC_Updater {
- public static function check() {
- $updater = new \OC\Updater();
- return $updater->check('http://apps.owncloud.com/updater.php');
- }
-}
diff --git a/lib/private/log/errorlog.php b/lib/private/log/errorlog.php
new file mode 100644
index 00000000000..007ab307722
--- /dev/null
+++ b/lib/private/log/errorlog.php
@@ -0,0 +1,48 @@
+
+ *
+ * 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.
+ */
+
+class OC_Log_Errorlog {
+
+
+ /**
+ * Init class data
+ */
+ public static function init() {
+ }
+
+ /**
+ * write a message in the log
+ * @param string $app
+ * @param string $message
+ * @param int $level
+ */
+ public static function write($app, $message, $level) {
+ $minLevel = min(OC_Config::getValue("loglevel", OC_Log::WARN), OC_Log::ERROR);
+ if ($level >= $minLevel) {
+ error_log('[owncloud]['.$app.'] '.$message);
+ }
+ }
+}
+
diff --git a/lib/private/migrate.php b/lib/private/migrate.php
deleted file mode 100644
index 8d88181ca19..00000000000
--- a/lib/private/migrate.php
+++ /dev/null
@@ -1,626 +0,0 @@
-.
- *
- */
-
-
-/**
- * provides an interface to migrate users and whole ownclouds
- */
-class OC_Migrate{
-
-
- // Array of OC_Migration_Provider objects
- static private $providers=array();
- // User id of the user to import/export
- static private $uid=false;
- // Holds the ZipArchive object
- static private $zip=false;
- // Stores the type of export
- static private $exporttype=false;
- // Holds the db object
- static private $migration_database=false;
- // Path to the sqlite db
- static private $dbpath=false;
- // Holds the path to the zip file
- static private $zippath=false;
- // Holds the OC_Migration_Content object
- static private $content=false;
-
- /**
- * register a new migration provider
- * @param OC_Migration_Provider $provider
- */
- public static function registerProvider($provider) {
- self::$providers[]=$provider;
- }
-
- /**
- * finds and loads the providers
- */
- static private function findProviders() {
- // Find the providers
- $apps = OC_App::getAllApps();
-
- foreach($apps as $app) {
- $path = OC_App::getAppPath($app) . '/appinfo/migrate.php';
- if( file_exists( $path ) ) {
- include $path;
- }
- }
- }
-
- /**
- * exports a user, or owncloud instance
- * @param string $uid user id of user to export if export type is user, defaults to current
- * @param string $type type of export, defualts to user
- * @param string $path path to zip output folder
- * @return string on error, path to zip on success
- */
- public static function export( $uid=null, $type='user', $path=null ) {
- $datadir = OC_Config::getValue( 'datadirectory' );
- // Validate export type
- $types = array( 'user', 'instance', 'system', 'userfiles' );
- if( !in_array( $type, $types ) ) {
- OC_Log::write( 'migration', 'Invalid export type', OC_Log::ERROR );
- return json_encode( array( 'success' => false ) );
- }
- self::$exporttype = $type;
- // Userid?
- if( self::$exporttype == 'user' ) {
- // Check user exists
- self::$uid = is_null($uid) ? OC_User::getUser() : $uid;
- if(!OC_User::userExists(self::$uid)) {
- return json_encode( array( 'success' => false) );
- }
- }
- // Calculate zipname
- if( self::$exporttype == 'user' ) {
- $zipname = 'oc_export_' . self::$uid . '_' . date("y-m-d_H-i-s") . '.zip';
- } else {
- $zipname = 'oc_export_' . self::$exporttype . '_' . date("y-m-d_H-i-s") . '.zip';
- }
- // Calculate path
- if( self::$exporttype == 'user' ) {
- self::$zippath = $datadir . '/' . self::$uid . '/' . $zipname;
- } else {
- if( !is_null( $path ) ) {
- // Validate custom path
- if( !file_exists( $path ) || !is_writeable( $path ) ) {
- OC_Log::write( 'migration', 'Path supplied is invalid.', OC_Log::ERROR );
- return json_encode( array( 'success' => false ) );
- }
- self::$zippath = $path . $zipname;
- } else {
- // Default path
- self::$zippath = get_temp_dir() . '/' . $zipname;
- }
- }
- // Create the zip object
- if( !self::createZip() ) {
- return json_encode( array( 'success' => false ) );
- }
- // Do the export
- self::findProviders();
- $exportdata = array();
- switch( self::$exporttype ) {
- case 'user':
- // Connect to the db
- self::$dbpath = $datadir . '/' . self::$uid . '/migration.db';
- if( !self::connectDB() ) {
- return json_encode( array( 'success' => false ) );
- }
- self::$content = new OC_Migration_Content( self::$zip, self::$migration_database );
- // Export the app info
- $exportdata = self::exportAppData();
- // Add the data dir to the zip
- self::$content->addDir(OC_User::getHome(self::$uid), true, '/' );
- break;
- case 'instance':
- self::$content = new OC_Migration_Content( self::$zip );
- // Creates a zip that is compatable with the import function
- $dbfile = tempnam( get_temp_dir(), "owncloud_export_data_" );
- OC_DB::getDbStructure( $dbfile, 'MDB2_SCHEMA_DUMP_ALL');
-
- // Now add in *dbname* and *dbprefix*
- $dbexport = file_get_contents( $dbfile );
- $dbnamestring = "\n\n " . OC_Config::getValue( "dbname", "owncloud" );
- $dbtableprefixstring = "\n\n " . OC_Config::getValue( "dbtableprefix", "oc_" );
- $dbexport = str_replace( $dbnamestring, "\n\n *dbname*", $dbexport );
- $dbexport = str_replace( $dbtableprefixstring, "\n\n *dbprefix*", $dbexport );
- // Add the export to the zip
- self::$content->addFromString( $dbexport, "dbexport.xml" );
- // Add user data
- foreach(OC_User::getUsers() as $user) {
- self::$content->addDir(OC_User::getHome($user), true, "/userdata/" );
- }
- break;
- case 'userfiles':
- self::$content = new OC_Migration_Content( self::$zip );
- // Creates a zip with all of the users files
- foreach(OC_User::getUsers() as $user) {
- self::$content->addDir(OC_User::getHome($user), true, "/" );
- }
- break;
- case 'system':
- self::$content = new OC_Migration_Content( self::$zip );
- // Creates a zip with the owncloud system files
- self::$content->addDir( OC::$SERVERROOT . '/', false, '/');
- foreach (array(
- ".git",
- "3rdparty",
- "apps",
- "core",
- "files",
- "l10n",
- "lib",
- "ocs",
- "search",
- "settings",
- "tests"
- ) as $dir) {
- self::$content->addDir( OC::$SERVERROOT . '/' . $dir, true, "/");
- }
- break;
- }
- if( !$info = self::getExportInfo( $exportdata ) ) {
- return json_encode( array( 'success' => false ) );
- }
- // Add the export info json to the export zip
- self::$content->addFromString( $info, 'export_info.json' );
- if( !self::$content->finish() ) {
- return json_encode( array( 'success' => false ) );
- }
- return json_encode( array( 'success' => true, 'data' => self::$zippath ) );
- }
-
- /**
- * imports a user, or owncloud instance
- * @param string $path path to zip
- * @param string $type type of import (user or instance)
- * @param string|null|int $uid userid of new user
- * @return string
- */
- public static function import( $path, $type='user', $uid=null ) {
-
- $datadir = OC_Config::getValue( 'datadirectory' );
- // Extract the zip
- if( !$extractpath = self::extractZip( $path ) ) {
- return json_encode( array( 'success' => false ) );
- }
- // Get export_info.json
- $scan = scandir( $extractpath );
- // Check for export_info.json
- if( !in_array( 'export_info.json', $scan ) ) {
- OC_Log::write( 'migration', 'Invalid import file, export_info.json not found', OC_Log::ERROR );
- return json_encode( array( 'success' => false ) );
- }
- $json = json_decode( file_get_contents( $extractpath . 'export_info.json' ) );
- if( $json->exporttype != $type ) {
- OC_Log::write( 'migration', 'Invalid import file', OC_Log::ERROR );
- return json_encode( array( 'success' => false ) );
- }
- self::$exporttype = $type;
-
- $currentuser = OC_User::getUser();
-
- // Have we got a user if type is user
- if( self::$exporttype == 'user' ) {
- self::$uid = !is_null($uid) ? $uid : $currentuser;
- }
-
- // We need to be an admin if we are not importing our own data
- if(($type == 'user' && self::$uid != $currentuser) || $type != 'user' ) {
- if( !OC_User::isAdminUser($currentuser)) {
- // Naughty.
- OC_Log::write( 'migration', 'Import not permitted.', OC_Log::ERROR );
- return json_encode( array( 'success' => false ) );
- }
- }
-
- // Handle export types
- switch( self::$exporttype ) {
- case 'user':
- // Check user availability
- if( !OC_User::userExists( self::$uid ) ) {
- OC_Log::write( 'migration', 'User doesn\'t exist', OC_Log::ERROR );
- return json_encode( array( 'success' => false ) );
- }
-
- // Check if the username is valid
- if( preg_match( '/[^a-zA-Z0-9 _\.@\-]/', $json->exporteduser )) {
- OC_Log::write( 'migration', 'Username is not valid', OC_Log::ERROR );
- return json_encode( array( 'success' => false ) );
- }
-
- // Copy data
- $userfolder = $extractpath . $json->exporteduser;
- $newuserfolder = $datadir . '/' . self::$uid;
- foreach(scandir($userfolder) as $file){
- if($file !== '.' && $file !== '..' && is_dir($userfolder.'/'.$file)) {
- $file = str_replace(array('/', '\\'), '', $file);
-
- // Then copy the folder over
- OC_Helper::copyr($userfolder.'/'.$file, $newuserfolder.'/'.$file);
- }
- }
- // Import user app data
- if(file_exists($extractpath . $json->exporteduser . '/migration.db')) {
- if( !$appsimported = self::importAppData( $extractpath . $json->exporteduser . '/migration.db',
- $json,
- self::$uid ) ) {
- return json_encode( array( 'success' => false ) );
- }
- }
- // All done!
- if( !self::unlink_r( $extractpath ) ) {
- OC_Log::write( 'migration', 'Failed to delete the extracted zip', OC_Log::ERROR );
- }
- return json_encode( array( 'success' => true, 'data' => $appsimported ) );
- break;
- case 'instance':
- /*
- * EXPERIMENTAL
- // Check for new data dir and dbexport before doing anything
- // TODO
-
- // Delete current data folder.
- OC_Log::write( 'migration', "Deleting current data dir", OC_Log::INFO );
- if( !self::unlink_r( $datadir, false ) ) {
- OC_Log::write( 'migration', 'Failed to delete the current data dir', OC_Log::ERROR );
- return json_encode( array( 'success' => false ) );
- }
-
- // Copy over data
- if( !self::copy_r( $extractpath . 'userdata', $datadir ) ) {
- OC_Log::write( 'migration', 'Failed to copy over data directory', OC_Log::ERROR );
- return json_encode( array( 'success' => false ) );
- }
-
- // Import the db
- if( !OC_DB::replaceDB( $extractpath . 'dbexport.xml' ) ) {
- return json_encode( array( 'success' => false ) );
- }
- // Done
- return json_encode( array( 'success' => true ) );
- */
- break;
- }
-
- }
-
- /**
- * recursively deletes a directory
- * @param string $dir path of dir to delete
- * @param bool $deleteRootToo delete the root directory
- * @return bool
- */
- private static function unlink_r( $dir, $deleteRootToo=true ) {
- if( !$dh = @opendir( $dir ) ) {
- return false;
- }
- while (false !== ($obj = readdir($dh))) {
- if($obj == '.' || $obj == '..') {
- continue;
- }
- if (!@unlink($dir . '/' . $obj)) {
- self::unlink_r($dir.'/'.$obj, true);
- }
- }
- closedir($dh);
- if ( $deleteRootToo ) {
- @rmdir($dir);
- }
- return true;
- }
-
- /**
- * tries to extract the import zip
- * @param string $path path to the zip
- * @return string path to extract location (with a trailing slash) or false on failure
- */
- static private function extractZip( $path ) {
- self::$zip = new ZipArchive;
- // Validate path
- if( !file_exists( $path ) ) {
- OC_Log::write( 'migration', 'Zip not found', OC_Log::ERROR );
- return false;
- }
- if ( self::$zip->open( $path ) != true ) {
- OC_Log::write( 'migration', "Failed to open zip file", OC_Log::ERROR );
- return false;
- }
- $to = get_temp_dir() . '/oc_import_' . self::$exporttype . '_' . date("y-m-d_H-i-s") . '/';
- if( !self::$zip->extractTo( $to ) ) {
- return false;
- }
- self::$zip->close();
- return $to;
- }
-
- /**
- * creates a migration.db in the users data dir with their app data in
- * @return bool whether operation was successfull
- */
- private static function exportAppData( ) {
-
- $success = true;
- $return = array();
-
- // Foreach provider
- foreach( self::$providers as $provider ) {
- // Check if the app is enabled
- if( OC_App::isEnabled( $provider->getID() ) ) {
- $success = true;
- // Does this app use the database?
- if( file_exists( OC_App::getAppPath($provider->getID()).'/appinfo/database.xml' ) ) {
- // Create some app tables
- $tables = self::createAppTables( $provider->getID() );
- if( is_array( $tables ) ) {
- // Save the table names
- foreach($tables as $table) {
- $return['apps'][$provider->getID()]['tables'][] = $table;
- }
- } else {
- // It failed to create the tables
- $success = false;
- }
- }
-
- // Run the export function?
- if( $success ) {
- // Set the provider properties
- $provider->setData( self::$uid, self::$content );
- $return['apps'][$provider->getID()]['success'] = $provider->export();
- } else {
- $return['apps'][$provider->getID()]['success'] = false;
- $return['apps'][$provider->getID()]['message'] = 'failed to create the app tables';
- }
-
- // Now add some app info the the return array
- $appinfo = OC_App::getAppInfo( $provider->getID() );
- $return['apps'][$provider->getID()]['version'] = OC_App::getAppVersion($provider->getID());
- }
- }
-
- return $return;
-
- }
-
-
- /**
- * generates json containing export info, and merges any data supplied
- * @param array $array of data to include in the returned json
- * @return string
- */
- static private function getExportInfo( $array=array() ) {
- $info = array(
- 'ocversion' => OC_Util::getVersion(),
- 'exporttime' => time(),
- 'exportedby' => OC_User::getUser(),
- 'exporttype' => self::$exporttype,
- 'exporteduser' => self::$uid
- );
-
- if( !is_array( $array ) ) {
- OC_Log::write( 'migration', 'Supplied $array was not an array in getExportInfo()', OC_Log::ERROR );
- }
- // Merge in other data
- $info = array_merge( $info, (array)$array );
- // Create json
- $json = json_encode( $info );
- return $json;
- }
-
- /**
- * connects to migration.db, or creates if not found
- * @param string $path to migration.db, defaults to user data dir
- * @return bool whether the operation was successful
- */
- static private function connectDB( $path=null ) {
- // Has the dbpath been set?
- self::$dbpath = !is_null( $path ) ? $path : self::$dbpath;
- if( !self::$dbpath ) {
- OC_Log::write( 'migration', 'connectDB() was called without dbpath being set', OC_Log::ERROR );
- return false;
- }
- // Already connected
- if(!self::$migration_database) {
- $datadir = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" );
- $connectionParams = array(
- 'path' => self::$dbpath,
- 'driver' => 'pdo_sqlite',
- );
- $connectionParams['adapter'] = '\OC\DB\AdapterSqlite';
- $connectionParams['wrapperClass'] = 'OC\DB\Connection';
- $connectionParams['tablePrefix'] = '';
-
- // Try to establish connection
- self::$migration_database = \Doctrine\DBAL\DriverManager::getConnection($connectionParams);
- }
- return true;
-
- }
-
- /**
- * creates the tables in migration.db from an apps database.xml
- * @param string $appid id of the app
- * @return bool whether the operation was successful
- */
- static private function createAppTables( $appid ) {
- $schema_manager = new OC\DB\MDB2SchemaManager(self::$migration_database);
-
- // There is a database.xml file
- $content = file_get_contents(OC_App::getAppPath($appid) . '/appinfo/database.xml' );
-
- $file2 = 'static://db_scheme';
- // TODO get the relative path to migration.db from the data dir
- // For now just cheat
- $path = pathinfo( self::$dbpath );
- $content = str_replace( '*dbname*', self::$uid.'/migration', $content );
- $content = str_replace( '*dbprefix*', '', $content );
-
- $xml = new SimpleXMLElement($content);
- foreach($xml->table as $table) {
- $tables[] = (string)$table->name;
- }
-
- file_put_contents( $file2, $content );
-
- // Try to create tables
- try {
- $schema_manager->createDbFromStructure($file2);
- } catch(Exception $e) {
- unlink( $file2 );
- OC_Log::write( 'migration', 'Failed to create tables for: '.$appid, OC_Log::FATAL );
- OC_Log::write( 'migration', $e->getMessage(), OC_Log::FATAL );
- return false;
- }
-
- return $tables;
- }
-
- /**
- * tries to create the zip
- * @return bool
- */
- static private function createZip() {
- self::$zip = new ZipArchive;
- // Check if properties are set
- if( !self::$zippath ) {
- OC_Log::write('migration', 'createZip() called but $zip and/or $zippath have not been set', OC_Log::ERROR);
- return false;
- }
- if ( self::$zip->open( self::$zippath, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE ) !== true ) {
- OC_Log::write('migration',
- 'Failed to create the zip with error: '.self::$zip->getStatusString(),
- OC_Log::ERROR);
- return false;
- } else {
- return true;
- }
- }
-
- /**
- * returns an array of apps that support migration
- * @return array
- */
- static public function getApps() {
- $allapps = OC_App::getAllApps();
- foreach($allapps as $app) {
- $path = self::getAppPath($app) . '/lib/migrate.php';
- if( file_exists( $path ) ) {
- $supportsmigration[] = $app;
- }
- }
- return $supportsmigration;
- }
-
- /**
- * imports a new user
- * @param string $db string path to migration.db
- * @param object $info object of migration info
- * @param string|null|int $uid uid to use
- * @return array an array of apps with import statuses, or false on failure.
- */
- public static function importAppData( $db, $info, $uid=null ) {
- // Check if the db exists
- if( file_exists( $db ) ) {
- // Connect to the db
- if(!self::connectDB( $db )) {
- OC_Log::write('migration', 'Failed to connect to migration.db', OC_Log::ERROR);
- return false;
- }
- } else {
- OC_Log::write('migration', 'Migration.db not found at: '.$db, OC_Log::FATAL );
- return false;
- }
-
- // Find providers
- self::findProviders();
-
- // Generate importinfo array
- $importinfo = array(
- 'olduid' => $info->exporteduser,
- 'newuid' => self::$uid
- );
-
- foreach( self::$providers as $provider) {
- // Is the app in the export?
- $id = $provider->getID();
- if( isset( $info->apps->$id ) ) {
- // Is the app installed
- if( !OC_App::isEnabled( $id ) ) {
- OC_Log::write( 'migration',
- 'App: ' . $id . ' is not installed, can\'t import data.',
- OC_Log::INFO );
- $appsstatus[$id] = 'notsupported';
- } else {
- // Did it succeed on export?
- if( $info->apps->$id->success ) {
- // Give the provider the content object
- if( !self::connectDB( $db ) ) {
- return false;
- }
- $content = new OC_Migration_Content( self::$zip, self::$migration_database );
- $provider->setData( self::$uid, $content, $info );
- // Then do the import
- if( !$appsstatus[$id] = $provider->import( $info->apps->$id, $importinfo ) ) {
- // Failed to import app
- OC_Log::write( 'migration',
- 'Failed to import app data for user: ' . self::$uid . ' for app: ' . $id,
- OC_Log::ERROR );
- }
- } else {
- // Add to failed list
- $appsstatus[$id] = false;
- }
- }
- }
- }
-
- return $appsstatus;
-
- }
-
- /**
- * creates a new user in the database
- * @param string $uid user_id of the user to be created
- * @param string $hash hash of the user to be created
- * @return bool result of user creation
- */
- public static function createUser( $uid, $hash ) {
-
- // Check if userid exists
- if(OC_User::userExists( $uid )) {
- return false;
- }
-
- // Create the user
- $query = OC_DB::prepare( "INSERT INTO `*PREFIX*users` ( `uid`, `password` ) VALUES( ?, ? )" );
- $result = $query->execute( array( $uid, $hash));
- if( !$result ) {
- OC_Log::write('migration', 'Failed to create the new user "'.$uid."", OC_Log::ERROR);
- }
- return $result ? true : false;
-
- }
-
-}
diff --git a/lib/private/migration/content.php b/lib/private/migration/content.php
deleted file mode 100644
index cb5d9ad1472..00000000000
--- a/lib/private/migration/content.php
+++ /dev/null
@@ -1,246 +0,0 @@
-.
- *
- */
-
-
-/**
- * provides methods to add and access data from the migration
- */
-class OC_Migration_Content{
-
- private $zip=false;
- // Holds the database object
- private $db=null;
- // Holds an array of tmpfiles to delete after zip creation
- private $tmpfiles=array();
-
- /**
- * sets up the
- * @param ZipArchive $zip ZipArchive object
- * @param object $db a database object (required for exporttype user)
- * @return bool|null
- */
- public function __construct( $zip, $db=null ) {
-
- $this->zip = $zip;
- $this->db = $db;
-
- }
-
- /**
- * prepares the db
- * @param string $query the sql query to prepare
- */
- public function prepare( $query ) {
-
- // Only add database to tmpfiles if actually used
- if( !is_null( $this->db ) ) {
- // Get db path
- $db = $this->db->getDatabase();
- if(!in_array($db, $this->tmpfiles)) {
- $this->tmpfiles[] = $db;
- }
- }
-
- // Optimize the query
- $query = $this->processQuery( $query );
-
- // Optimize the query
- $query = $this->db->prepare( $query );
- $query = new OC_DB_StatementWrapper($query, false);
-
- return $query;
- }
-
- /**
- * processes the db query
- * @param string $query the query to process
- * @return string of processed query
- */
- private function processQuery( $query ) {
- $query = str_replace( '`', '\'', $query );
- $query = str_replace( 'NOW()', 'datetime(\'now\')', $query );
- $query = str_replace( 'now()', 'datetime(\'now\')', $query );
- // remove table prefixes
- $query = str_replace( '*PREFIX*', '', $query );
- return $query;
- }
-
- /**
- * copys rows to migration.db from the main database
- * @param array $options array of options.
- * @return bool
- */
- public function copyRows( $options ) {
- if( !array_key_exists( 'table', $options ) ) {
- return false;
- }
-
- $return = array();
-
- // Need to include 'where' in the query?
- if( array_key_exists( 'matchval', $options ) && array_key_exists( 'matchcol', $options ) ) {
-
- // If only one matchval, create an array
- if(!is_array($options['matchval'])) {
- $options['matchval'] = array( $options['matchval'] );
- }
-
- foreach( $options['matchval'] as $matchval ) {
- // Run the query for this match value (where x = y value)
- $sql = 'SELECT * FROM `*PREFIX*' . $options['table'] . '` WHERE `' . $options['matchcol'] . '` = ?';
- $query = OC_DB::prepare( $sql );
- $results = $query->execute( array( $matchval ) );
- $newreturns = $this->insertData( $results, $options );
- $return = array_merge( $return, $newreturns );
- }
-
- } else {
- // Just get everything
- $sql = 'SELECT * FROM `*PREFIX*' . $options['table'] . '`';
- $query = OC_DB::prepare( $sql );
- $results = $query->execute();
- $return = $this->insertData( $results, $options );
-
- }
-
- return $return;
-
- }
-
- /**
- * saves a sql data set into migration.db
- * @param OC_DB_StatementWrapper $data a sql data set returned from self::prepare()->query()
- * @param array $options array of copyRows options
- * @return void
- */
- private function insertData( $data, $options ) {
- $return = array();
- // Foreach row of data to insert
- while( $row = $data->fetchRow() ) {
- // Now save all this to the migration.db
- foreach($row as $field=>$value) {
- $fields[] = $field;
- $values[] = $value;
- }
-
- // Generate some sql
- $sql = "INSERT INTO `" . $options['table'] . '` ( `';
- $fieldssql = implode( '`, `', $fields );
- $sql .= $fieldssql . "` ) VALUES( ";
- $valuessql = substr( str_repeat( '?, ', count( $fields ) ), 0, -2 );
- $sql .= $valuessql . " )";
- // Make the query
- $query = $this->prepare( $sql );
- $query->execute( $values );
- // Do we need to return some values?
- if( array_key_exists( 'idcol', $options ) ) {
- // Yes we do
- $return[] = $row[$options['idcol']];
- } else {
- // Take a guess and return the first field :)
- $return[] = reset($row);
- }
- $fields = '';
- $values = '';
- }
- return $return;
- }
-
- /**
- * adds a directory to the zip object
- * @param boolean|string $dir string path of the directory to add
- * @param bool $recursive
- * @param string $internaldir path of folder to add dir to in zip
- * @return bool
- */
- public function addDir( $dir, $recursive=true, $internaldir='' ) {
- $dirname = basename($dir);
- $this->zip->addEmptyDir($internaldir . $dirname);
- $internaldir.=$dirname.='/';
- if( !file_exists( $dir ) ) {
- return false;
- }
- $dirhandle = opendir($dir);
- if(is_resource($dirhandle)) {
- while (false !== ( $file = readdir($dirhandle))) {
-
- if (( $file != '.' ) && ( $file != '..' )) {
-
- if (is_dir($dir . '/' . $file) && $recursive) {
- $this->addDir($dir . '/' . $file, $recursive, $internaldir);
- } elseif (is_file($dir . '/' . $file)) {
- $this->zip->addFile($dir . '/' . $file, $internaldir . $file);
- }
- }
- }
- closedir($dirhandle);
- } else {
- OC_Log::write('admin_export', "Was not able to open directory: " . $dir, OC_Log::ERROR);
- return false;
- }
- return true;
- }
-
- /**
- * adds a file to the zip from a given string
- * @param string $data string of data to add
- * @param string $path the relative path inside of the zip to save the file to
- * @return bool
- */
- public function addFromString( $data, $path ) {
- // Create a temp file
- $file = tempnam( get_temp_dir(). '/', 'oc_export_tmp_' );
- $this->tmpfiles[] = $file;
- if( !file_put_contents( $file, $data ) ) {
- OC_Log::write( 'migation', 'Failed to save data to a temporary file', OC_Log::ERROR );
- return false;
- }
- // Add file to the zip
- $this->zip->addFile( $file, $path );
- return true;
- }
-
- /**
- * closes the zip, removes temp files
- * @return bool
- */
- public function finish() {
- if( !$this->zip->close() ) {
- OC_Log::write( 'migration',
- 'Failed to write the zip file with error: '.$this->zip->getStatusString(),
- OC_Log::ERROR );
- return false;
- }
- $this->cleanup();
- return true;
- }
-
- /**
- * cleans up after the zip
- */
- private function cleanup() {
- // Delete tmp files
- foreach($this->tmpfiles as $i) {
- unlink( $i );
- }
- }
-}
diff --git a/lib/private/migration/provider.php b/lib/private/migration/provider.php
deleted file mode 100644
index a7c611dcdd4..00000000000
--- a/lib/private/migration/provider.php
+++ /dev/null
@@ -1,52 +0,0 @@
-id = $appid;
- OC_Migrate::registerProvider( $this );
- }
-
- /**
- * exports data for apps
- * @return array appdata to be exported
- */
- abstract function export( );
-
- /**
- * imports data for the app
- * @return void
- */
- abstract function import( );
-
- /**
- * sets the OC_Migration_Content object to $this->content
- * @param OC_Migration_Content $content a OC_Migration_Content object
- */
- public function setData( $uid, $content, $info=null ) {
- $this->content = $content;
- $this->uid = $uid;
- $id = $this->id;
- if( !is_null( $info ) ) {
- $this->olduid = $info->exporteduser;
- $this->appinfo = $info->apps->$id;
- }
- }
-
- /**
- * returns the appid of the provider
- * @return string
- */
- public function getID() {
- return $this->id;
- }
-}
diff --git a/lib/private/naturalsort.php b/lib/private/naturalsort.php
index eb00f99a672..6e259630f79 100644
--- a/lib/private/naturalsort.php
+++ b/lib/private/naturalsort.php
@@ -9,16 +9,6 @@
namespace OC;
-class NaturalSort_DefaultCollator {
-
- public function compare($a, $b) {
- if ($a === $b) {
- return 0;
- }
- return ($a < $b) ? -1 : 1;
- }
-}
-
class NaturalSort {
private static $instance;
private $collator;
@@ -114,4 +104,3 @@ class NaturalSort {
return self::$instance;
}
}
-
diff --git a/lib/private/naturalsort_defaultcollator.php b/lib/private/naturalsort_defaultcollator.php
new file mode 100644
index 00000000000..e1007f8d7b4
--- /dev/null
+++ b/lib/private/naturalsort_defaultcollator.php
@@ -0,0 +1,19 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ *
+ */
+
+namespace OC;
+
+class NaturalSort_DefaultCollator {
+ public function compare($a, $b) {
+ if ($a === $b) {
+ return 0;
+ }
+ return ($a < $b) ? -1 : 1;
+ }
+}
diff --git a/lib/private/ocsclient.php b/lib/private/ocsclient.php
index dc147dea0c9..351027d8018 100644
--- a/lib/private/ocsclient.php
+++ b/lib/private/ocsclient.php
@@ -129,8 +129,9 @@ class OC_OCSClient{
$data = simplexml_load_string($xml);
libxml_disable_entity_loader($loadEntities);
- $tmp=$data->data->content;
- for($i = 0; $i < count($tmp); $i++) {
+ $tmp = $data->data->content;
+ $tmpCount = count($tmp);
+ for($i = 0; $i < $tmpCount; $i++) {
$app=array();
$app['id']=(string)$tmp[$i]->id;
$app['name']=(string)$tmp[$i]->name;
@@ -142,9 +143,11 @@ class OC_OCSClient{
$app['license']=(string)$tmp[$i]->license;
$app['detailpage']=(string)$tmp[$i]->detailpage;
$app['preview']=(string)$tmp[$i]->smallpreviewpic1;
+ $app['preview-full']=(string)$tmp[$i]->previewpic1;
$app['changed']=strtotime($tmp[$i]->changed);
$app['description']=(string)$tmp[$i]->description;
$app['score']=(string)$tmp[$i]->score;
+ $app['downloads'] = $tmp[$i]->downloads;
$apps[]=$app;
}
diff --git a/lib/private/preferences.php b/lib/private/preferences.php
index a849cc23e1a..cdaa207449d 100644
--- a/lib/private/preferences.php
+++ b/lib/private/preferences.php
@@ -36,7 +36,7 @@
namespace OC;
-use \OC\DB\Connection;
+use OCP\IDBConnection;
/**
@@ -61,9 +61,9 @@ class Preferences {
protected $cache = array();
/**
- * @param \OC\DB\Connection $conn
+ * @param \OCP\IDBConnection $conn
*/
- public function __construct(Connection $conn) {
+ public function __construct(IDBConnection $conn) {
$this->conn = $conn;
}
diff --git a/lib/private/preview.php b/lib/private/preview.php
old mode 100755
new mode 100644
index 4b21e324037..7305bf1cc0e
--- a/lib/private/preview.php
+++ b/lib/private/preview.php
@@ -16,14 +16,6 @@ namespace OC;
use OC\Preview\Provider;
use OCP\Files\NotFoundException;
-require_once 'preview/image.php';
-require_once 'preview/movies.php';
-require_once 'preview/mp3.php';
-require_once 'preview/svg.php';
-require_once 'preview/txt.php';
-require_once 'preview/office.php';
-require_once 'preview/bitmap.php';
-
class Preview {
//the thumbnail folder
const THUMBNAILS_FOLDER = 'thumbnails';
@@ -48,6 +40,7 @@ class Preview {
//filemapper used for deleting previews
// index is path, value is fileinfo
static public $deleteFileMapper = array();
+ static public $deleteChildrenMapper = array();
/**
* preview images object
@@ -105,7 +98,7 @@ class Preview {
self::initProviders();
}
- if (empty(self::$providers)) {
+ if (empty(self::$providers) && \OC::$server->getConfig()->getSystemValue('enable_previews', true)) {
\OC_Log::write('core', 'No preview providers exist', \OC_Log::ERROR);
throw new \Exception('No preview providers');
}
@@ -189,6 +182,21 @@ class Preview {
return $this->info;
}
+
+ /**
+ * @return array|null
+ */
+ private function getChildren() {
+ $absPath = $this->fileView->getAbsolutePath($this->file);
+ $absPath = Files\Filesystem::normalizePath($absPath);
+
+ if (array_key_exists($absPath, self::$deleteChildrenMapper)) {
+ return self::$deleteChildrenMapper[$absPath];
+ }
+
+ return null;
+ }
+
/**
* set the path of the file you want a thumbnail from
* @param string $file
@@ -269,6 +277,10 @@ class Preview {
return $this;
}
+ /**
+ * @param bool $keepAspect
+ * @return $this
+ */
public function setKeepAspect($keepAspect) {
$this->keepAspect = $keepAspect;
return $this;
@@ -312,20 +324,25 @@ class Preview {
/**
* deletes all previews of a file
- * @return bool
*/
public function deleteAllPreviews() {
$file = $this->getFile();
$fileInfo = $this->getFileInfo($file);
- if($fileInfo !== null && $fileInfo !== false) {
- $fileId = $fileInfo->getId();
- $previewPath = $this->getPreviewPath($fileId);
- $this->userView->deleteAll($previewPath);
- return $this->userView->rmdir($previewPath);
+ $toDelete = $this->getChildren();
+ $toDelete[] = $fileInfo;
+
+ foreach ($toDelete as $delete) {
+ if ($delete !== null && $delete !== false) {
+ /** @var \OCP\Files\FileInfo $delete */
+ $fileId = $delete->getId();
+
+ $previewPath = $this->getPreviewPath($fileId);
+ $this->userView->deleteAll($previewPath);
+ $this->userView->rmdir($previewPath);
+ }
}
- return false;
}
/**
@@ -667,8 +684,8 @@ class Preview {
}
/**
- * Register a new preview provider to be used
- * @param $class
+ * register a new preview provider to be used
+ * @param string $class
* @param array $options
*/
public static function registerProvider($class, $options = array()) {
@@ -688,7 +705,7 @@ class Preview {
* - OC\Preview\OpenDocument
* - OC\Preview\StarOffice
* - OC\Preview\SVG
- * - OC\Preview\Movies
+ * - OC\Preview\Movie
* - OC\Preview\PDF
* - OC\Preview\TIFF
* - OC\Preview\Illustrator
@@ -719,10 +736,11 @@ class Preview {
return;
}
- if (count(self::$providers) > 0) {
+ if (!empty(self::$providers)) {
return;
}
+ self::registerCoreProviders();
foreach (self::$registeredProviders as $provider) {
$class = $provider['class'];
$options = $provider['options'];
@@ -734,17 +752,94 @@ class Preview {
$keys = array_map('strlen', array_keys(self::$providers));
array_multisort($keys, SORT_DESC, self::$providers);
-
}
+ protected static function registerCoreProviders() {
+ self::registerProvider('OC\Preview\TXT');
+ self::registerProvider('OC\Preview\MarkDown');
+ self::registerProvider('OC\Preview\Image');
+ self::registerProvider('OC\Preview\MP3');
+
+ // SVG, Office and Bitmap require imagick
+ if (extension_loaded('imagick')) {
+ $checkImagick = new \Imagick();
+
+ $imagickProviders = array(
+ 'SVG' => 'OC\Preview\SVG',
+ 'TIFF' => 'OC\Preview\TIFF',
+ 'PDF' => 'OC\Preview\PDF',
+ 'AI' => 'OC\Preview\Illustrator',
+ 'PSD' => 'OC\Preview\Photoshop',
+ // Requires adding 'eps' => array('application/postscript', null), to lib/private/mimetypes.list.php
+ 'EPS' => 'OC\Preview\Postscript',
+ );
+
+ foreach ($imagickProviders as $queryFormat => $provider) {
+ if (count($checkImagick->queryFormats($queryFormat)) === 1) {
+ self::registerProvider($provider);
+ }
+ }
+
+ if (count($checkImagick->queryFormats('PDF')) === 1) {
+ // Office previews are currently not supported on Windows
+ if (!\OC_Util::runningOnWindows() && \OC_Helper::is_function_enabled('shell_exec')) {
+ $officeFound = is_string(\OC::$server->getConfig()->getSystemValue('preview_libreoffice_path', null));
+
+ if (!$officeFound) {
+ //let's see if there is libreoffice or openoffice on this machine
+ $whichLibreOffice = shell_exec('command -v libreoffice');
+ $officeFound = !empty($whichLibreOffice);
+ if (!$officeFound) {
+ $whichOpenOffice = shell_exec('command -v openoffice');
+ $officeFound = !empty($whichOpenOffice);
+ }
+ }
+
+ if ($officeFound) {
+ self::registerProvider('OC\Preview\MSOfficeDoc');
+ self::registerProvider('OC\Preview\MSOffice2003');
+ self::registerProvider('OC\Preview\MSOffice2007');
+ self::registerProvider('OC\Preview\OpenDocument');
+ self::registerProvider('OC\Preview\StarOffice');
+ }
+ }
+ }
+ }
+
+ // Video requires avconv or ffmpeg and is therefor
+ // currently not supported on Windows.
+ if (!\OC_Util::runningOnWindows()) {
+ $avconvBinary = \OC_Helper::findBinaryPath('avconv');
+ $ffmpegBinary = ($avconvBinary) ? null : \OC_Helper::findBinaryPath('ffmpeg');
+
+ if ($avconvBinary || $ffmpegBinary) {
+ // FIXME // a bit hacky but didn't want to use subclasses
+ \OC\Preview\Movie::$avconvBinary = $avconvBinary;
+ \OC\Preview\Movie::$ffmpegBinary = $ffmpegBinary;
+
+ self::registerProvider('OC\Preview\Movie');
+ }
+ }
+ }
+
+ /**
+ * @param array $args
+ */
public static function post_write($args) {
self::post_delete($args, 'files/');
}
+ /**
+ * @param array $args
+ */
public static function prepare_delete_files($args) {
self::prepare_delete($args, 'files/');
}
+ /**
+ * @param array $args
+ * @param string $prefix
+ */
public static function prepare_delete($args, $prefix='') {
$path = $args['path'];
if (substr($path, 0, 1) === '/') {
@@ -752,20 +847,63 @@ class Preview {
}
$view = new \OC\Files\View('/' . \OC_User::getUser() . '/' . $prefix);
- $info = $view->getFileInfo($path);
- \OC\Preview::$deleteFileMapper = array_merge(
- \OC\Preview::$deleteFileMapper,
- array(
- Files\Filesystem::normalizePath($view->getAbsolutePath($path)) => $info,
- )
- );
+ $absPath = Files\Filesystem::normalizePath($view->getAbsolutePath($path));
+ self::addPathToDeleteFileMapper($absPath, $view->getFileInfo($path));
+ if ($view->is_dir($path)) {
+ $children = self::getAllChildren($view, $path);
+ self::$deleteChildrenMapper[$absPath] = $children;
+ }
}
+ /**
+ * @param string $absolutePath
+ * @param \OCP\Files\FileInfo $info
+ */
+ private static function addPathToDeleteFileMapper($absolutePath, $info) {
+ self::$deleteFileMapper[$absolutePath] = $info;
+ }
+
+ /**
+ * @param \OC\Files\View $view
+ * @param string $path
+ * @return array
+ */
+ private static function getAllChildren($view, $path) {
+ $children = $view->getDirectoryContent($path);
+ $childrensFiles = array();
+
+ $fakeRootLength = strlen($view->getRoot());
+
+ for ($i = 0; $i < count($children); $i++) {
+ $child = $children[$i];
+
+ $childsPath = substr($child->getPath(), $fakeRootLength);
+
+ if ($view->is_dir($childsPath)) {
+ $children = array_merge(
+ $children,
+ $view->getDirectoryContent($childsPath)
+ );
+ } else {
+ $childrensFiles[] = $child;
+ }
+ }
+
+ return $childrensFiles;
+ }
+
+ /**
+ * @param array $args
+ */
public static function post_delete_files($args) {
self::post_delete($args, 'files/');
}
+ /**
+ * @param array $args
+ * @param string $prefix
+ */
public static function post_delete($args, $prefix='') {
$path = Files\Filesystem::normalizePath($args['path']);
@@ -779,7 +917,7 @@ class Preview {
* @param \OC\Files\FileInfo $file
* @return bool
*/
- public static function isAvailable($file) {
+ public static function isAvailable(\OC\Files\FileInfo $file) {
if (!\OC_Config::getValue('enable_previews', true)) {
return false;
}
@@ -814,10 +952,8 @@ class Preview {
self::initProviders();
}
- //remove last element because it has the mimetype *
- $providers = array_slice(self::$providers, 0, -1);
- foreach ($providers as $supportedMimeType => $provider) {
- if (preg_match($supportedMimeType, $mimeType)) {
+ foreach(self::$providers as $supportedMimetype => $provider) {
+ if(preg_match($supportedMimetype, $mimeType)) {
return true;
}
}
diff --git a/lib/private/preview/bitmap.php b/lib/private/preview/bitmap.php
index 748a63a6afa..25f65cf7fc9 100644
--- a/lib/private/preview/bitmap.php
+++ b/lib/private/preview/bitmap.php
@@ -5,113 +5,33 @@
* later.
* See the COPYING-README file.
*/
+
namespace OC\Preview;
-use Imagick;
+abstract class Bitmap extends Provider {
+ /**
+ * {@inheritDoc}
+ */
+ public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
+ $tmpPath = $fileview->toTmpFile($path);
-if (extension_loaded('imagick')) {
+ //create imagick object from bitmap or vector file
+ try {
+ // Layer 0 contains either the bitmap or
+ // a flat representation of all vector layers
+ $bp = new \Imagick($tmpPath . '[0]');
- $checkImagick = new Imagick();
-
- class Bitmap extends Provider {
-
- public function getMimeType() {
- return null;
+ $bp->setImageFormat('png');
+ } catch (\Exception $e) {
+ \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
+ return false;
}
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- $tmpPath = $fileview->toTmpFile($path);
+ unlink($tmpPath);
- //create imagick object from bitmap or vector file
- try{
- // Layer 0 contains either the bitmap or
- // a flat representation of all vector layers
- $bp = new Imagick($tmpPath . '[0]');
-
- $bp->setImageFormat('png');
- } catch (\Exception $e) {
- \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
- return false;
- }
-
- unlink($tmpPath);
-
- //new bitmap image object
- $image = new \OC_Image($bp);
- //check if image object is valid
- return $image->valid() ? $image : false;
- }
-
- }
-
- if(count($checkImagick->queryFormats('PDF')) === 1) {
-
- //.pdf
- class PDF extends Bitmap {
-
- public function getMimeType() {
- return '/application\/pdf/';
- }
-
- }
-
- \OC\Preview::registerProvider('OC\Preview\PDF');
- }
-
- if(count($checkImagick->queryFormats('TIFF')) === 1) {
-
- //.tiff
- class TIFF extends Bitmap {
-
- public function getMimeType() {
- return '/image\/tiff/';
- }
-
- }
-
- \OC\Preview::registerProvider('OC\Preview\TIFF');
- }
-
- if(count($checkImagick->queryFormats('AI')) === 1) {
-
- //.ai
- class Illustrator extends Bitmap {
-
- public function getMimeType() {
- return '/application\/illustrator/';
- }
-
- }
-
- \OC\Preview::registerProvider('OC\Preview\Illustrator');
- }
-
- // Requires adding 'eps' => array('application/postscript', null), to lib/private/mimetypes.list.php
- if(count($checkImagick->queryFormats('EPS')) === 1) {
-
- //.eps
- class Postscript extends Bitmap {
-
- public function getMimeType() {
- return '/application\/postscript/';
- }
-
- }
-
- \OC\Preview::registerProvider('OC\Preview\Postscript');
- }
-
- if(count($checkImagick->queryFormats('PSD')) === 1) {
-
- //.psd
- class Photoshop extends Bitmap {
-
- public function getMimeType() {
- return '/application\/x-photoshop/';
- }
-
- }
-
- \OC\Preview::registerProvider('OC\Preview\Photoshop');
+ //new bitmap image object
+ $image = new \OC_Image($bp);
+ //check if image object is valid
+ return $image->valid() ? $image : false;
}
}
diff --git a/lib/private/preview/illustrator.php b/lib/private/preview/illustrator.php
new file mode 100644
index 00000000000..e88c305f708
--- /dev/null
+++ b/lib/private/preview/illustrator.php
@@ -0,0 +1,19 @@
+getFileInfo($path);
@@ -35,5 +40,3 @@ class Image extends Provider {
}
}
-
-\OC\Preview::registerProvider('OC\Preview\Image');
diff --git a/lib/private/preview/markdown.php b/lib/private/preview/markdown.php
new file mode 100644
index 00000000000..1be01fcdd4c
--- /dev/null
+++ b/lib/private/preview/markdown.php
@@ -0,0 +1,18 @@
+getFileInfo($path);
+ $useFileDirectly = (!$fileInfo->isEncrypted() && !$fileInfo->isMounted());
+
+ if ($useFileDirectly) {
+ $absPath = $fileview->getLocalFile($path);
+ } else {
+ $absPath = \OC_Helper::tmpFile();
+
+ $handle = $fileview->fopen($path, 'rb');
+
+ // we better use 5MB (1024 * 1024 * 5 = 5242880) instead of 1MB.
+ // in some cases 1MB was no enough to generate thumbnail
+ $firstmb = stream_get_contents($handle, 5242880);
+ file_put_contents($absPath, $firstmb);
+ }
+
+ $result = $this->generateThumbNail($maxX, $maxY, $absPath, 5);
+ if ($result === false) {
+ $result = $this->generateThumbNail($maxX, $maxY, $absPath, 1);
+ if ($result === false) {
+ $result = $this->generateThumbNail($maxX, $maxY, $absPath, 0);
+ }
+ }
+
+ if (!$useFileDirectly) {
+ unlink($absPath);
+ }
+
+ return $result;
+ }
+
+ /**
+ * @param int $maxX
+ * @param int $maxY
+ * @param string $absPath
+ * @param int $second
+ * @return bool|\OC_Image
+ */
+ private function generateThumbNail($maxX, $maxY, $absPath, $second) {
+ $tmpPath = \OC_Helper::tmpFile();
+
+ if (self::$avconvBinary) {
+ $cmd = self::$avconvBinary . ' -an -y -ss ' . escapeshellarg($second) .
+ ' -i ' . escapeshellarg($absPath) .
+ ' -f mjpeg -vframes 1 -vsync 1 ' . escapeshellarg($tmpPath) .
+ ' > /dev/null 2>&1';
+ } else {
+ $cmd = self::$ffmpegBinary . ' -y -ss ' . escapeshellarg($second) .
+ ' -i ' . escapeshellarg($absPath) .
+ ' -f mjpeg -vframes 1' .
+ ' -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) .
+ ' ' . escapeshellarg($tmpPath) .
+ ' > /dev/null 2>&1';
+ }
+
+ exec($cmd, $output, $returnCode);
+
+ if ($returnCode === 0) {
+ $image = new \OC_Image();
+ $image->loadFromFile($tmpPath);
+ unlink($tmpPath);
+ return $image->valid() ? $image : false;
+ }
+ unlink($tmpPath);
+ return false;
+ }
+}
diff --git a/lib/private/preview/movies.php b/lib/private/preview/movies.php
deleted file mode 100644
index 2a23c2141c1..00000000000
--- a/lib/private/preview/movies.php
+++ /dev/null
@@ -1,122 +0,0 @@
- /dev/null', $output, $returnCode);
- if ($returnCode === 0 && count($output) > 0) {
- return escapeshellcmd($output[0]);
- }
- return null;
-}
-
-// movie preview is currently not supported on Windows
-if (!\OC_Util::runningOnWindows()) {
- $isExecEnabled = \OC_Helper::is_function_enabled('exec');
- $ffmpegBinary = null;
- $avconvBinary = null;
-
- if ($isExecEnabled) {
- $avconvBinary = findBinaryPath('avconv');
- if (!$avconvBinary) {
- $ffmpegBinary = findBinaryPath('ffmpeg');
- }
- }
-
- if($isExecEnabled && ( $avconvBinary || $ffmpegBinary )) {
-
- class Movie extends Provider {
- public static $avconvBinary;
- public static $ffmpegBinary;
-
- public function getMimeType() {
- return '/video\/.*/';
- }
-
- public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
- // TODO: use proc_open() and stream the source file ?
-
- $fileInfo = $fileview->getFileInfo($path);
- $useFileDirectly = (!$fileInfo->isEncrypted() && !$fileInfo->isMounted());
-
- if ($useFileDirectly) {
- $absPath = $fileview->getLocalFile($path);
- } else {
- $absPath = \OC_Helper::tmpFile();
-
- $handle = $fileview->fopen($path, 'rb');
-
- // we better use 5MB (1024 * 1024 * 5 = 5242880) instead of 1MB.
- // in some cases 1MB was no enough to generate thumbnail
- $firstmb = stream_get_contents($handle, 5242880);
- file_put_contents($absPath, $firstmb);
- }
-
- $result = $this->generateThumbNail($maxX, $maxY, $absPath, 5);
- if ($result === false) {
- $result = $this->generateThumbNail($maxX, $maxY, $absPath, 1);
- if ($result === false) {
- $result = $this->generateThumbNail($maxX, $maxY, $absPath, 0);
- }
- }
-
- if (!$useFileDirectly) {
- unlink($absPath);
- }
-
- return $result;
- }
-
- /**
- * @param int $maxX
- * @param int $maxY
- * @param string $absPath
- * @param string $tmpPath
- * @param int $second
- * @return bool|\OC_Image
- */
- private function generateThumbNail($maxX, $maxY, $absPath, $second)
- {
- $tmpPath = \OC_Helper::tmpFile();
-
- if (self::$avconvBinary) {
- $cmd = self::$avconvBinary . ' -an -y -ss ' . escapeshellarg($second) .
- ' -i ' . escapeshellarg($absPath) .
- ' -f mjpeg -vframes 1 -vsync 1 ' . escapeshellarg($tmpPath) .
- ' > /dev/null 2>&1';
- } else {
- $cmd = self::$ffmpegBinary . ' -y -ss ' . escapeshellarg($second) .
- ' -i ' . escapeshellarg($absPath) .
- ' -f mjpeg -vframes 1' .
- ' -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) .
- ' ' . escapeshellarg($tmpPath) .
- ' > /dev/null 2>&1';
- }
-
- exec($cmd, $output, $returnCode);
-
- if ($returnCode === 0) {
- $image = new \OC_Image();
- $image->loadFromFile($tmpPath);
- unlink($tmpPath);
- return $image->valid() ? $image : false;
- }
- unlink($tmpPath);
- return false;
- }
- }
-
- // a bit hacky but didn't want to use subclasses
- Movie::$avconvBinary = $avconvBinary;
- Movie::$ffmpegBinary = $ffmpegBinary;
-
- \OC\Preview::registerProvider('OC\Preview\Movie');
- }
-}
-
diff --git a/lib/private/preview/mp3.php b/lib/private/preview/mp3.php
index bb4d3dfce86..f1a50d99e13 100644
--- a/lib/private/preview/mp3.php
+++ b/lib/private/preview/mp3.php
@@ -8,11 +8,16 @@
namespace OC\Preview;
class MP3 extends Provider {
-
+ /**
+ * {@inheritDoc}
+ */
public function getMimeType() {
return '/audio\/mpeg/';
}
+ /**
+ * {@inheritDoc}
+ */
public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
$getID3 = new \getID3();
@@ -31,6 +36,12 @@ class MP3 extends Provider {
return $this->getNoCoverThumbnail();
}
+ /**
+ * Generates a default image when the file has no cover
+ *
+ * @return false|\OC_Image False if the default image is missing or invalid,
+ * otherwise the image is returned as \OC_Image
+ */
private function getNoCoverThumbnail() {
$icon = \OC::$SERVERROOT . '/core/img/filetypes/audio.png';
@@ -44,5 +55,3 @@ class MP3 extends Provider {
}
}
-
-\OC\Preview::registerProvider('OC\Preview\MP3');
diff --git a/lib/private/preview/msoffice2003.php b/lib/private/preview/msoffice2003.php
new file mode 100644
index 00000000000..55fbe708435
--- /dev/null
+++ b/lib/private/preview/msoffice2003.php
@@ -0,0 +1,18 @@
+initCmd();
- if(is_null($this->cmd)) {
- return false;
- }
-
- $absPath = $fileview->toTmpFile($path);
-
- $tmpDir = get_temp_dir();
-
- $defaultParameters = ' -env:UserInstallation=file://' . escapeshellarg($tmpDir . '/owncloud-' . \OC_Util::getInstanceId().'/') . ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ';
- $clParameters = \OCP\Config::getSystemValue('preview_office_cl_parameters', $defaultParameters);
-
- $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath);
-
- shell_exec($exec);
-
- //create imagick object from pdf
- try{
- $pdf = new \imagick($absPath . '.pdf' . '[0]');
- $pdf->setImageFormat('jpg');
- } catch (\Exception $e) {
- unlink($absPath);
- unlink($absPath . '.pdf');
- \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
- return false;
- }
-
- $image = new \OC_Image();
- $image->loadFromData($pdf);
-
- unlink($absPath);
- unlink($absPath . '.pdf');
-
- return $image->valid() ? $image : false;
- }
-
- private function initCmd() {
- $cmd = '';
-
- if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) {
- $cmd = \OC_Config::getValue('preview_libreoffice_path', null);
- }
-
- $whichLibreOffice = shell_exec('command -v libreoffice');
- if($cmd === '' && !empty($whichLibreOffice)) {
- $cmd = 'libreoffice';
- }
-
- $whichOpenOffice = shell_exec('command -v openoffice');
- if($cmd === '' && !empty($whichOpenOffice)) {
- $cmd = 'openoffice';
- }
-
- if($cmd === '') {
- $cmd = null;
- }
-
- $this->cmd = $cmd;
- }
- }
-
- //.doc, .dot
- class MSOfficeDoc extends Office {
-
- public function getMimeType() {
- return '/application\/msword/';
- }
-
- }
-
- \OC\Preview::registerProvider('OC\Preview\MSOfficeDoc');
-
- //.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m)
- class MSOffice2003 extends Office {
-
- public function getMimeType() {
- return '/application\/vnd.ms-.*/';
- }
-
- }
-
- \OC\Preview::registerProvider('OC\Preview\MSOffice2003');
-
- //.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx
- class MSOffice2007 extends Office {
-
- public function getMimeType() {
- return '/application\/vnd.openxmlformats-officedocument.*/';
- }
-
- }
-
- \OC\Preview::registerProvider('OC\Preview\MSOffice2007');
-
- //.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt
- class OpenDocument extends Office {
-
- public function getMimeType() {
- return '/application\/vnd.oasis.opendocument.*/';
- }
-
- }
-
- \OC\Preview::registerProvider('OC\Preview\OpenDocument');
-
- //.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm
- class StarOffice extends Office {
-
- public function getMimeType() {
- return '/application\/vnd.sun.xml.*/';
- }
-
- }
-
- \OC\Preview::registerProvider('OC\Preview\StarOffice');
-}
diff --git a/lib/private/preview/office.php b/lib/private/preview/office.php
index b47cbc6e08f..5bd61bde3be 100644
--- a/lib/private/preview/office.php
+++ b/lib/private/preview/office.php
@@ -5,24 +5,72 @@
* later.
* See the COPYING-README file.
*/
-//both, libreoffice backend and php fallback, need imagick
-if (extension_loaded('imagick')) {
+namespace OC\Preview;
- $checkImagick = new Imagick();
+abstract class Office extends Provider {
+ private $cmd;
- if(count($checkImagick->queryFormats('PDF')) === 1) {
- $isShellExecEnabled = \OC_Helper::is_function_enabled('shell_exec');
-
- // LibreOffice preview is currently not supported on Windows
- if (!\OC_Util::runningOnWindows()) {
- $whichLibreOffice = ($isShellExecEnabled ? shell_exec('command -v libreoffice') : '');
- $isLibreOfficeAvailable = !empty($whichLibreOffice);
- $whichOpenOffice = ($isShellExecEnabled ? shell_exec('command -v openoffice') : '');
- $isOpenOfficeAvailable = !empty($whichOpenOffice);
- //let's see if there is libreoffice or openoffice on this machine
- if($isShellExecEnabled && ($isLibreOfficeAvailable || $isOpenOfficeAvailable || is_string(\OC_Config::getValue('preview_libreoffice_path', null)))) {
- require_once('office-cl.php');
- }
+ /**
+ * {@inheritDoc}
+ */
+ public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
+ $this->initCmd();
+ if(is_null($this->cmd)) {
+ return false;
}
+
+ $absPath = $fileview->toTmpFile($path);
+
+ $tmpDir = get_temp_dir();
+
+ $defaultParameters = ' -env:UserInstallation=file://' . escapeshellarg($tmpDir . '/owncloud-' . \OC_Util::getInstanceId().'/') . ' --headless --nologo --nofirststartwizard --invisible --norestore --convert-to pdf --outdir ';
+ $clParameters = \OCP\Config::getSystemValue('preview_office_cl_parameters', $defaultParameters);
+
+ $exec = $this->cmd . $clParameters . escapeshellarg($tmpDir) . ' ' . escapeshellarg($absPath);
+
+ shell_exec($exec);
+
+ //create imagick object from pdf
+ try{
+ $pdf = new \imagick($absPath . '.pdf' . '[0]');
+ $pdf->setImageFormat('jpg');
+ } catch (\Exception $e) {
+ unlink($absPath);
+ unlink($absPath . '.pdf');
+ \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
+ return false;
+ }
+
+ $image = new \OC_Image();
+ $image->loadFromData($pdf);
+
+ unlink($absPath);
+ unlink($absPath . '.pdf');
+
+ return $image->valid() ? $image : false;
+ }
+
+ private function initCmd() {
+ $cmd = '';
+
+ if(is_string(\OC_Config::getValue('preview_libreoffice_path', null))) {
+ $cmd = \OC_Config::getValue('preview_libreoffice_path', null);
+ }
+
+ $whichLibreOffice = shell_exec('command -v libreoffice');
+ if($cmd === '' && !empty($whichLibreOffice)) {
+ $cmd = 'libreoffice';
+ }
+
+ $whichOpenOffice = shell_exec('command -v openoffice');
+ if($cmd === '' && !empty($whichOpenOffice)) {
+ $cmd = 'openoffice';
+ }
+
+ if($cmd === '') {
+ $cmd = null;
+ }
+
+ $this->cmd = $cmd;
}
}
diff --git a/lib/private/preview/opendocument.php b/lib/private/preview/opendocument.php
new file mode 100644
index 00000000000..fe1468ee941
--- /dev/null
+++ b/lib/private/preview/opendocument.php
@@ -0,0 +1,18 @@
+options=$options;
+ $this->options = $options;
}
+ /**
+ * @return string Regex with the mimetypes that are supported by this provider
+ */
abstract public function getMimeType();
/**
* Check if a preview can be generated for $path
*
- * @param string $path
+ * @param \OC\Files\FileInfo $file
* @return bool
*/
- public function isAvailable($path) {
+ public function isAvailable($file) {
return true;
}
@@ -26,11 +29,10 @@ abstract class Provider {
* @param int $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image
* @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image
* @param bool $scalingup Disable/Enable upscaling of previews
- * @param object $fileview fileview object of user folder
+ * @param \OC\Files\View $fileview fileview object of user folder
* @return mixed
* false if no preview was generated
* OC_Image object of the preview
*/
abstract public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview);
-
}
diff --git a/lib/private/preview/staroffice.php b/lib/private/preview/staroffice.php
new file mode 100644
index 00000000000..73ad368b341
--- /dev/null
+++ b/lib/private/preview/staroffice.php
@@ -0,0 +1,18 @@
+setBackgroundColor(new \ImagickPixel('transparent'));
- $checkImagick = new Imagick();
-
- if(count($checkImagick->queryFormats('SVG')) === 1) {
-
- class SVG extends Provider {
-
- public function getMimeType() {
- return '/image\/svg\+xml/';
+ $content = stream_get_contents($fileview->fopen($path, 'r'));
+ if(substr($content, 0, 5) !== '' . $content;
}
- public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) {
- try{
- $svg = new Imagick();
- $svg->setBackgroundColor(new \ImagickPixel('transparent'));
-
- $content = stream_get_contents($fileview->fopen($path, 'r'));
- if(substr($content, 0, 5) !== '' . $content;
- }
-
- // Do not parse SVG files with references
- if(stripos($content, 'xlink:href') !== false) {
- return false;
- }
-
- $svg->readImageBlob($content);
- $svg->setImageFormat('png32');
- } catch (\Exception $e) {
- \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
- return false;
- }
-
-
- //new image object
- $image = new \OC_Image();
- $image->loadFromData($svg);
- //check if image object is valid
- return $image->valid() ? $image : false;
+ // Do not parse SVG files with references
+ if(stripos($content, 'xlink:href') !== false) {
+ return false;
}
+ $svg->readImageBlob($content);
+ $svg->setImageFormat('png32');
+ } catch (\Exception $e) {
+ \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
+ return false;
}
- \OC\Preview::registerProvider('OC\Preview\SVG');
+ //new image object
+ $image = new \OC_Image();
+ $image->loadFromData($svg);
+ //check if image object is valid
+ return $image->valid() ? $image : false;
}
}
diff --git a/lib/private/preview/tiff.php b/lib/private/preview/tiff.php
new file mode 100644
index 00000000000..0a1e8e8ecec
--- /dev/null
+++ b/lib/private/preview/tiff.php
@@ -0,0 +1,19 @@
+getSize() > 5;
}
/**
- * @param string $path
- * @param int $maxX
- * @param int $maxY
- * @param boolean $scalingup
- * @param \OC\Files\View $fileview
- * @return bool|\OC_Image
+ * {@inheritDoc}
*/
public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
-
$content = $fileview->fopen($path, 'r');
$content = stream_get_contents($content,3000);
@@ -79,15 +72,3 @@ class TXT extends Provider {
return $image->valid() ? $image : false;
}
}
-
-\OC\Preview::registerProvider('OC\Preview\TXT');
-
-class MarkDown extends TXT {
-
- public function getMimeType() {
- return '/text\/(x-)?markdown/';
- }
-
-}
-
-\OC\Preview::registerProvider('OC\Preview\MarkDown');
diff --git a/lib/private/previewmanager.php b/lib/private/previewmanager.php
old mode 100755
new mode 100644
diff --git a/lib/private/repair.php b/lib/private/repair.php
index c7db8b2617d..be607b44ed8 100644
--- a/lib/private/repair.php
+++ b/lib/private/repair.php
@@ -10,6 +10,13 @@ namespace OC;
use OC\Hooks\BasicEmitter;
use OC\Hooks\Emitter;
+use OC\Repair\AssetCache;
+use OC\Repair\Collation;
+use OC\Repair\InnoDB;
+use OC\Repair\RepairConfig;
+use OC\Repair\RepairLegacyStorages;
+use OC\Repair\RepairMimeTypes;
+use OC\Repair\SearchLuceneTables;
class Repair extends BasicEmitter {
/**
@@ -69,9 +76,10 @@ class Repair extends BasicEmitter {
*/
public static function getRepairSteps() {
return array(
- new \OC\Repair\RepairMimeTypes(),
- new \OC\Repair\RepairLegacyStorages(\OC::$server->getConfig(), \OC_DB::getConnection()),
- new \OC\Repair\RepairConfig(),
+ new RepairMimeTypes(),
+ new RepairLegacyStorages(\OC::$server->getConfig(), \OC_DB::getConnection()),
+ new RepairConfig(),
+ new AssetCache()
);
}
@@ -83,16 +91,17 @@ class Repair extends BasicEmitter {
*/
public static function getBeforeUpgradeRepairSteps() {
$steps = array(
- new \OC\Repair\InnoDB(),
- new \OC\Repair\Collation(\OC::$server->getConfig(), \OC_DB::getConnection()),
- new \OC\Repair\SearchLuceneTables()
+ new InnoDB(),
+ new Collation(\OC::$server->getConfig(), \OC_DB::getConnection()),
+ new SearchLuceneTables(),
+ new RepairConfig()
);
//There is no need to delete all previews on every single update
- //only 7.0.0 thru 7.0.2 generated broken previews
- $currentVersion = \OC_Config::getValue('version');
+ //only 7.0.0 through 7.0.2 generated broken previews
+ $currentVersion = \OC::$server->getConfig()->getSystemValue('version');
if (version_compare($currentVersion, '7.0.0.0', '>=') &&
- version_compare($currentVersion, '7.0.2.2', '<=')) {
+ version_compare($currentVersion, '7.0.3.4', '<=')) {
$steps[] = new \OC\Repair\Preview();
}
@@ -102,7 +111,7 @@ class Repair extends BasicEmitter {
/**
* {@inheritDoc}
*
- * Redeclared as public to allow invocation from within the closure above in php 5.3
+ * Re-declared as public to allow invocation from within the closure above in php 5.3
*/
public function emit($scope, $method, $arguments = array()) {
parent::emit($scope, $method, $arguments);
diff --git a/lib/private/request.php b/lib/private/request.php
old mode 100755
new mode 100644
index fa446837a97..d079dc110d1
--- a/lib/private/request.php
+++ b/lib/private/request.php
@@ -12,8 +12,7 @@ class OC_Request {
// Android Chrome user agent: https://developers.google.com/chrome/mobile/docs/user-agent
const USER_AGENT_ANDROID_MOBILE_CHROME = '#Android.*Chrome/[.0-9]*#';
const USER_AGENT_FREEBOX = '#^Mozilla/5\.0$#';
-
- const REGEX_LOCALHOST = '/^(127\.0\.0\.1|localhost)(:[0-9]+|)$/';
+ const REGEX_LOCALHOST = '/^(127\.0\.0\.1|localhost)$/';
static protected $reqId;
/**
@@ -76,13 +75,26 @@ class OC_Request {
* have been configured
*/
public static function isTrustedDomain($domain) {
- $trustedList = \OC_Config::getValue('trusted_domains', array());
+ // Extract port from domain if needed
+ $pos = strrpos($domain, ':');
+ if ($pos !== false) {
+ $port = substr($domain, $pos + 1);
+ if (is_numeric($port)) {
+ $domain = substr($domain, 0, $pos);
+ }
+ }
+
+ // FIXME: Empty config array defaults to true for now. - Deprecate this behaviour with ownCloud 8.
+ $trustedList = \OC::$server->getConfig()->getSystemValue('trusted_domains', array());
if (empty($trustedList)) {
return true;
}
+
+ // Always allow access from localhost
if (preg_match(self::REGEX_LOCALHOST, $domain) === 1) {
return true;
}
+
return in_array($domain, $trustedList);
}
@@ -245,7 +257,7 @@ class OC_Request {
* @return string Path info or false when not found
*/
public static function getRawPathInfo() {
- $requestUri = $_SERVER['REQUEST_URI'];
+ $requestUri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
// remove too many leading slashes - can be caused by reverse proxy configuration
if (strpos($requestUri, '/') === 0) {
$requestUri = '/' . ltrim($requestUri, '/');
diff --git a/lib/private/response.php b/lib/private/response.php
index caa382af776..cf18115111a 100644
--- a/lib/private/response.php
+++ b/lib/private/response.php
@@ -212,7 +212,8 @@ class OC_Response {
. 'frame-src *; '
. 'img-src *; '
. 'font-src \'self\' data:; '
- . 'media-src *');
+ . 'media-src *; '
+ . 'connect-src *');
header('Content-Security-Policy:' . $policy);
// https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag
diff --git a/lib/private/route/router.php b/lib/private/route/router.php
index aa3d05dcb85..5d6f621dc38 100644
--- a/lib/private/route/router.php
+++ b/lib/private/route/router.php
@@ -106,6 +106,7 @@ class Router implements IRouter {
* @return void
*/
public function loadRoutes($app = null) {
+ $requestedApp = $app;
if ($this->loaded) {
return;
}
@@ -123,6 +124,7 @@ class Router implements IRouter {
$routingFiles = array();
}
}
+ \OC::$server->getEventLogger()->start('loadroutes' . $requestedApp, 'Loading Routes');
foreach ($routingFiles as $app => $file) {
if (!isset($this->loadedApps[$app])) {
$this->loadedApps[$app] = true;
@@ -145,6 +147,7 @@ class Router implements IRouter {
$collection->addPrefix('/ocs');
$this->root->addCollection($collection);
}
+ \OC::$server->getEventLogger()->end('loadroutes' . $requestedApp);
}
/**
@@ -236,10 +239,10 @@ class Router implements IRouter {
}
}
+ \OC::$server->getEventLogger()->start('run_route', 'Run route');
if (isset($parameters['action'])) {
$action = $parameters['action'];
if (!is_callable($action)) {
- var_dump($action);
throw new \Exception('not a callable action');
}
unset($parameters['action']);
@@ -249,6 +252,7 @@ class Router implements IRouter {
} else {
throw new \Exception('no action available');
}
+ \OC::$server->getEventLogger()->end('run_route');
}
/**
diff --git a/lib/private/security/certificatemanager.php b/lib/private/security/certificatemanager.php
index cae9730eb26..a2a4c8b83d2 100644
--- a/lib/private/security/certificatemanager.php
+++ b/lib/private/security/certificatemanager.php
@@ -49,6 +49,7 @@ class CertificateManager implements ICertificateManager {
} catch(\Exception $e) {}
}
}
+ closedir($handle);
return $result;
}
diff --git a/lib/private/security/hasher.php b/lib/private/security/hasher.php
new file mode 100644
index 00000000000..647e1a307ea
--- /dev/null
+++ b/lib/private/security/hasher.php
@@ -0,0 +1,146 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Security;
+
+use OCP\IConfig;
+use OCP\Security\IHasher;
+
+/**
+ * Class Hasher provides some basic hashing functions. Furthermore, it supports legacy hashes
+ * used by previous versions of ownCloud and helps migrating those hashes to newer ones.
+ *
+ * The hashes generated by this class are prefixed (version|hash) with a version parameter to allow possible
+ * updates in the future.
+ * Possible versions:
+ * - 1 (Initial version)
+ *
+ * Usage:
+ * // Hashing a message
+ * $hash = \OC::$server->getHasher()->hash('MessageToHash');
+ * // Verifying a message - $newHash will contain the newly calculated hash
+ * $newHash = null;
+ * var_dump(\OC::$server->getHasher()->verify('a', '86f7e437faa5a7fce15d1ddcb9eaeaea377667b8', $newHash));
+ * var_dump($newHash);
+ *
+ * @package OC\Security
+ */
+class Hasher implements IHasher {
+ /** @var IConfig */
+ private $config;
+ /** @var array Options passed to password_hash and password_needs_rehash */
+ private $options = array();
+ /** @var string Salt used for legacy passwords */
+ private $legacySalt = null;
+ /** @var int Current version of the generated hash */
+ private $currentVersion = 1;
+
+ /**
+ * @param IConfig $config
+ */
+ function __construct(IConfig $config) {
+ $this->config = $config;
+
+ $hashingCost = $this->config->getSystemValue('hashingCost', null);
+ if(!is_null($hashingCost)) {
+ $this->options['cost'] = $hashingCost;
+ }
+ }
+
+ /**
+ * Hashes a message using PHP's `password_hash` functionality.
+ * Please note that the size of the returned string is not guaranteed
+ * and can be up to 255 characters.
+ *
+ * @param string $message Message to generate hash from
+ * @return string Hash of the message with appended version parameter
+ */
+ public function hash($message) {
+ return $this->currentVersion . '|' . password_hash($message, PASSWORD_DEFAULT, $this->options);
+ }
+
+ /**
+ * Get the version and hash from a prefixedHash
+ * @param string $prefixedHash
+ * @return null|array Null if the hash is not prefixed, otherwise array('version' => 1, 'hash' => 'foo')
+ */
+ protected function splitHash($prefixedHash) {
+ $explodedString = explode('|', $prefixedHash, 2);
+ if(sizeof($explodedString) === 2) {
+ if((int)$explodedString[0] > 0) {
+ return array('version' => (int)$explodedString[0], 'hash' => $explodedString[1]);
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Verify legacy hashes
+ * @param string $message Message to verify
+ * @param string $hash Assumed hash of the message
+ * @param null|string &$newHash Reference will contain the updated hash
+ * @return bool Whether $hash is a valid hash of $message
+ */
+ protected function legacyHashVerify($message, $hash, &$newHash = null) {
+ if(empty($this->legacySalt)) {
+ $this->legacySalt = $this->config->getSystemValue('passwordsalt', '');
+ }
+
+ // Verify whether it matches a legacy PHPass or SHA1 string
+ $hashLength = strlen($hash);
+ if($hashLength === 60 && password_verify($message.$this->legacySalt, $hash) ||
+ $hashLength === 40 && StringUtils::equals($hash, sha1($message))) {
+ $newHash = $this->hash($message);
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Verify V1 hashes
+ * @param string $message Message to verify
+ * @param string $hash Assumed hash of the message
+ * @param null|string &$newHash Reference will contain the updated hash if necessary. Update the existing hash with this one.
+ * @return bool Whether $hash is a valid hash of $message
+ */
+ protected function verifyHashV1($message, $hash, &$newHash = null) {
+ if(password_verify($message, $hash)) {
+ if(password_needs_rehash($hash, PASSWORD_DEFAULT, $this->options)) {
+ $newHash = $this->hash($message);
+ }
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * @param string $message Message to verify
+ * @param string $hash Assumed hash of the message
+ * @param null|string &$newHash Reference will contain the updated hash if necessary. Update the existing hash with this one.
+ * @return bool Whether $hash is a valid hash of $message
+ */
+ public function verify($message, $hash, &$newHash = null) {
+ $splittedHash = $this->splitHash($hash);
+
+ if(isset($splittedHash['version'])) {
+ switch ($splittedHash['version']) {
+ case 1:
+ return $this->verifyHashV1($message, $splittedHash['hash'], $newHash);
+ }
+ } else {
+ return $this->legacyHashVerify($message, $hash, $newHash);
+ }
+
+
+ return false;
+ }
+
+}
diff --git a/lib/private/server.php b/lib/private/server.php
index 7fa06298b29..7bd7f8ca45d 100644
--- a/lib/private/server.php
+++ b/lib/private/server.php
@@ -6,14 +6,20 @@ use OC\AppFramework\Http\Request;
use OC\AppFramework\Db\Db;
use OC\AppFramework\Utility\SimpleContainer;
use OC\Cache\UserCache;
+use OC\Diagnostics\NullQueryLogger;
+use OC\Diagnostics\EventLogger;
+use OC\Diagnostics\QueryLogger;
use OC\Security\CertificateManager;
use OC\DB\ConnectionWrapper;
use OC\Files\Node\Root;
use OC\Files\View;
use OC\Security\Crypto;
+use OC\Security\Hasher;
use OC\Security\SecureRandom;
+use OC\Diagnostics\NullEventLogger;
use OCP\IServerContainer;
use OCP\ISession;
+use OC\Tagging\TagMapper;
/**
* Class Server
@@ -23,20 +29,27 @@ use OCP\ISession;
* TODO: hookup all manager classes
*/
class Server extends SimpleContainer implements IServerContainer {
+ /** @var string */
+ private $webRoot;
+
+ /**
+ * @param string $webRoot
+ */
+ function __construct($webRoot) {
+ $this->webRoot = $webRoot;
- function __construct() {
$this->registerService('ContactsManager', function ($c) {
return new ContactsManager();
});
- $this->registerService('Request', function ($c) {
+ $this->registerService('Request', function (Server $c) {
if (isset($c['urlParams'])) {
$urlParams = $c['urlParams'];
} else {
$urlParams = array();
}
- if (\OC::$server->getSession()->exists('requesttoken')) {
- $requestToken = \OC::$server->getSession()->get('requesttoken');
+ if ($c->getSession()->exists('requesttoken')) {
+ $requestToken = $c->getSession()->get('requesttoken');
} else {
$requestToken = false;
}
@@ -58,8 +71,8 @@ class Server extends SimpleContainer implements IServerContainer {
'env' => $_ENV,
'cookies' => $_COOKIE,
'method' => (isset($_SERVER) && isset($_SERVER['REQUEST_METHOD']))
- ? $_SERVER['REQUEST_METHOD']
- : null,
+ ? $_SERVER['REQUEST_METHOD']
+ : null,
'urlParams' => $urlParams,
'requesttoken' => $requestToken,
), $stream
@@ -68,11 +81,15 @@ class Server extends SimpleContainer implements IServerContainer {
$this->registerService('PreviewManager', function ($c) {
return new PreviewManager();
});
- $this->registerService('TagManager', function ($c) {
- $user = \OC_User::getUser();
- return new TagManager($user);
+ $this->registerService('TagMapper', function(Server $c) {
+ return new TagMapper($c->getDb());
});
- $this->registerService('RootFolder', function ($c) {
+ $this->registerService('TagManager', function (Server $c) {
+ $tagMapper = $c->query('TagMapper');
+ $user = \OC_User::getUser();
+ return new TagManager($tagMapper, $user);
+ });
+ $this->registerService('RootFolder', function (Server $c) {
// TODO: get user and user manager from container as well
$user = \OC_User::getUser();
/** @var $c SimpleContainer */
@@ -82,28 +99,16 @@ class Server extends SimpleContainer implements IServerContainer {
$view = new View();
return new Root($manager, $view, $user);
});
- $this->registerService('UserManager', function ($c) {
- /**
- * @var SimpleContainer $c
- * @var \OC\AllConfig $config
- */
- $config = $c->query('AllConfig');
+ $this->registerService('UserManager', function (Server $c) {
+ $config = $c->getConfig();
return new \OC\User\Manager($config);
});
- $this->registerService('GroupManager', function ($c) {
- /**
- * @var SimpleContainer $c
- * @var \OC\User\Manager $userManager
- */
- $userManager = $c->query('UserManager');
+ $this->registerService('GroupManager', function (Server $c) {
+ $userManager = $c->getUserManager();
return new \OC\Group\Manager($userManager);
});
- $this->registerService('UserSession', function ($c) {
- /**
- * @var SimpleContainer $c
- * @var \OC\User\Manager $manager
- */
- $manager = $c->query('UserManager');
+ $this->registerService('UserSession', function (Server $c) {
+ $manager = $c->getUserManager();
$userSession = new \OC\User\Session($manager, new \OC\Session\Memory(''));
$userSession->listen('\OC\User', 'preCreateUser', function ($uid, $password) {
\OC_Hook::emit('OC_User', 'pre_createUser', array('run' => true, 'uid' => $uid, 'password' => $password));
@@ -152,9 +157,8 @@ class Server extends SimpleContainer implements IServerContainer {
$this->registerService('L10NFactory', function ($c) {
return new \OC\L10N\Factory();
});
- $this->registerService('URLGenerator', function ($c) {
- /** @var $c SimpleContainer */
- $config = $c->query('AllConfig');
+ $this->registerService('URLGenerator', function (Server $c) {
+ $config = $c->getConfig();
return new \OC\URLGenerator($config);
});
$this->registerService('AppHelper', function ($c) {
@@ -173,25 +177,18 @@ class Server extends SimpleContainer implements IServerContainer {
$this->registerService('AvatarManager', function ($c) {
return new AvatarManager();
});
- $this->registerService('Logger', function ($c) {
- /** @var $c SimpleContainer */
+ $this->registerService('Logger', function (Server $c) {
$logClass = $c->query('AllConfig')->getSystemValue('log_type', 'owncloud');
$logger = 'OC_Log_' . ucfirst($logClass);
call_user_func(array($logger, 'init'));
return new Log($logger);
});
- $this->registerService('JobList', function ($c) {
- /**
- * @var Server $c
- */
+ $this->registerService('JobList', function (Server $c) {
$config = $c->getConfig();
return new \OC\BackgroundJob\JobList($c->getDatabaseConnection(), $config);
});
- $this->registerService('Router', function ($c) {
- /**
- * @var Server $c
- */
+ $this->registerService('Router', function (Server $c) {
$cacheFactory = $c->getMemCacheFactory();
if ($cacheFactory->isAvailable()) {
$router = new \OC\Route\CachingRouter($cacheFactory->create('route'));
@@ -203,19 +200,56 @@ class Server extends SimpleContainer implements IServerContainer {
$this->registerService('Search', function ($c) {
return new Search();
});
- $this->registerService('SecureRandom', function($c) {
+ $this->registerService('SecureRandom', function ($c) {
return new SecureRandom();
});
- $this->registerService('Crypto', function($c) {
- return new Crypto(\OC::$server->getConfig(), \OC::$server->getSecureRandom());
+ $this->registerService('Crypto', function (Server $c) {
+ return new Crypto($c->getConfig(), $c->getSecureRandom());
});
- $this->registerService('Db', function ($c) {
- return new Db();
+ $this->registerService('Hasher', function (Server $c) {
+ return new Hasher($c->getConfig());
});
- $this->registerService('HTTPHelper', function (SimpleContainer $c) {
- $config = $c->query('AllConfig');
+ $this->registerService('DatabaseConnection', function (Server $c) {
+ $factory = new \OC\DB\ConnectionFactory();
+ $type = $c->getConfig()->getSystemValue('dbtype', 'sqlite');
+ if (!$factory->isValidType($type)) {
+ throw new \OC\DatabaseException('Invalid database type');
+ }
+ $connectionParams = $factory->createConnectionParams($c->getConfig());
+ $connection = $factory->getConnection($type, $connectionParams);
+ $connection->getConfiguration()->setSQLLogger($c->getQueryLogger());
+ return $connection;
+ });
+ $this->registerService('Db', function (Server $c) {
+ return new Db($c->getDatabaseConnection());
+ });
+ $this->registerService('HTTPHelper', function (Server $c) {
+ $config = $c->getConfig();
return new HTTPHelper($config);
});
+ $this->registerService('EventLogger', function (Server $c) {
+ if (defined('DEBUG') and DEBUG) {
+ return new EventLogger();
+ } else {
+ return new NullEventLogger();
+ }
+ });
+ $this->registerService('QueryLogger', function ($c) {
+ if (defined('DEBUG') and DEBUG) {
+ return new QueryLogger();
+ } else {
+ return new NullQueryLogger();
+ }
+ });
+ $this->registerService('TempManager', function (Server $c) {
+ return new TempManager(get_temp_dir(), $c->getLogger());
+ });
+ $this->registerService('AppManager', function(Server $c) {
+ $userSession = $c->getUserSession();
+ $appConfig = $c->getAppConfig();
+ $groupManager = $c->getGroupManager();
+ return new \OC\App\AppManager($userSession, $appConfig, $groupManager);
+ });
}
/**
@@ -280,12 +314,14 @@ class Server extends SimpleContainer implements IServerContainer {
* @return \OCP\Files\Folder
*/
function getUserFolder($userId = null) {
- if($userId === null) {
+ if ($userId === null) {
$user = $this->getUserSession()->getUser();
if (!$user) {
return null;
}
$userId = $user->getUID();
+ } else {
+ $user = $this->getUserManager()->get($userId);
}
$dir = '/' . $userId;
$root = $this->getRootFolder();
@@ -300,6 +336,19 @@ class Server extends SimpleContainer implements IServerContainer {
$dir = '/files';
if (!$folder->nodeExists($dir)) {
$folder = $folder->newFolder($dir);
+
+ if (\OCP\App::isEnabled('files_encryption')) {
+ // disable encryption proxy to prevent recursive calls
+ $proxyStatus = \OC_FileProxy::$enabled;
+ \OC_FileProxy::$enabled = false;
+ }
+
+ \OC_Util::copySkeleton($user, $folder);
+
+ if (\OCP\App::isEnabled('files_encryption')) {
+ // re-enable proxy - our work is done
+ \OC_FileProxy::$enabled = $proxyStatus;
+ }
} else {
$folder = $folder->get($dir);
}
@@ -431,7 +480,7 @@ class Server extends SimpleContainer implements IServerContainer {
* @return \OCP\IDBConnection
*/
function getDatabaseConnection() {
- return new ConnectionWrapper(\OC_DB::getConnection());
+ return $this->query('DatabaseConnection');
}
/**
@@ -497,6 +546,15 @@ class Server extends SimpleContainer implements IServerContainer {
return $this->query('Crypto');
}
+ /**
+ * Returns a Hasher instance
+ *
+ * @return \OCP\Security\IHasher
+ */
+ function getHasher() {
+ return $this->query('Hasher');
+ }
+
/**
* Returns an instance of the db facade
*
@@ -508,6 +566,7 @@ class Server extends SimpleContainer implements IServerContainer {
/**
* Returns an instance of the HTTP helper class
+ *
* @return \OC\HTTPHelper
*/
function getHTTPHelper() {
@@ -539,4 +598,53 @@ class Server extends SimpleContainer implements IServerContainer {
function createEventSource() {
return new \OC_EventSource();
}
+
+ /**
+ * Get the active event logger
+ *
+ * The returned logger only logs data when debug mode is enabled
+ *
+ * @return \OCP\Diagnostics\IEventLogger
+ */
+ function getEventLogger() {
+ return $this->query('EventLogger');
+ }
+
+ /**
+ * Get the active query logger
+ *
+ * The returned logger only logs data when debug mode is enabled
+ *
+ * @return \OCP\Diagnostics\IQueryLogger
+ */
+ function getQueryLogger() {
+ return $this->query('QueryLogger');
+ }
+
+ /**
+ * Get the manager for temporary files and folders
+ *
+ * @return \OCP\ITempManager
+ */
+ function getTempManager() {
+ return $this->query('TempManager');
+ }
+
+ /**
+ * Get the app manager
+ *
+ * @return \OCP\App\IAppManager
+ */
+ function getAppManager() {
+ return $this->query('AppManager');
+ }
+
+ /**
+ * Get the webroot
+ *
+ * @return string
+ */
+ function getWebRoot() {
+ return $this->webRoot;
+ }
}
diff --git a/lib/private/setup.php b/lib/private/setup.php
index b1b3388f81b..1443de18546 100644
--- a/lib/private/setup.php
+++ b/lib/private/setup.php
@@ -1,9 +1,24 @@
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
-class DatabaseSetupException extends \OC\HintException {
-}
+use OCP\IConfig;
class OC_Setup {
+ /** @var IConfig */
+ protected $config;
+
+ /**
+ * @param IConfig $config
+ */
+ function __construct(IConfig $config) {
+ $this->config = $config;
+ }
+
static $dbSetupClasses = array(
'mysql' => '\OC\Setup\MySQL',
'pgsql' => '\OC\Setup\PostgreSQL',
@@ -13,15 +28,99 @@ class OC_Setup {
'sqlite3' => '\OC\Setup\Sqlite',
);
+ /**
+ * @return OC_L10N
+ */
public static function getTrans(){
return \OC::$server->getL10N('lib');
}
+ /**
+ * Wrapper around the "class_exists" PHP function to be able to mock it
+ * @param string $name
+ * @return bool
+ */
+ public function class_exists($name) {
+ return class_exists($name);
+ }
+
+ /**
+ * Wrapper around the "is_callable" PHP function to be able to mock it
+ * @param string $name
+ * @return bool
+ */
+ public function is_callable($name) {
+ return is_callable($name);
+ }
+
+ /**
+ * Get the available and supported databases of this instance
+ *
+ * @throws Exception
+ * @return array
+ */
+ public function getSupportedDatabases() {
+ $availableDatabases = array(
+ 'sqlite' => array(
+ 'type' => 'class',
+ 'call' => 'SQLite3',
+ 'name' => 'SQLite'
+ ),
+ 'mysql' => array(
+ 'type' => 'function',
+ 'call' => 'mysql_connect',
+ 'name' => 'MySQL/MariaDB'
+ ),
+ 'pgsql' => array(
+ 'type' => 'function',
+ 'call' => 'pg_connect',
+ 'name' => 'PostgreSQL'
+ ),
+ 'oci' => array(
+ 'type' => 'function',
+ 'call' => 'oci_connect',
+ 'name' => 'Oracle'
+ ),
+ 'mssql' => array(
+ 'type' => 'function',
+ 'call' => 'sqlsrv_connect',
+ 'name' => 'MS SQL'
+ )
+ );
+ $configuredDatabases = $this->config->getSystemValue('supportedDatabases',
+ array('sqlite', 'mysql', 'pgsql'));
+ if(!is_array($configuredDatabases)) {
+ throw new Exception('Supported databases are not properly configured.');
+ }
+
+ $supportedDatabases = array();
+
+ foreach($configuredDatabases as $database) {
+ if(array_key_exists($database, $availableDatabases)) {
+ $working = false;
+ if($availableDatabases[$database]['type'] === 'class') {
+ $working = $this->class_exists($availableDatabases[$database]['call']);
+ } elseif ($availableDatabases[$database]['type'] === 'function') {
+ $working = $this->is_callable($availableDatabases[$database]['call']);
+ }
+ if($working) {
+ $supportedDatabases[$database] = $availableDatabases[$database]['name'];
+ }
+ }
+ }
+
+ return $supportedDatabases;
+ }
+
+ /**
+ * @param $options
+ * @return array
+ */
public static function install($options) {
$l = self::getTrans();
$error = array();
- $dbtype = $options['dbtype'];
+ $dbType = $options['dbtype'];
if(empty($options['adminlogin'])) {
$error[] = $l->t('Set an admin username.');
@@ -33,25 +132,25 @@ class OC_Setup {
$options['directory'] = OC::$SERVERROOT."/data";
}
- if (!isset(self::$dbSetupClasses[$dbtype])) {
- $dbtype = 'sqlite';
+ if (!isset(self::$dbSetupClasses[$dbType])) {
+ $dbType = 'sqlite';
}
$username = htmlspecialchars_decode($options['adminlogin']);
$password = htmlspecialchars_decode($options['adminpass']);
- $datadir = htmlspecialchars_decode($options['directory']);
+ $dataDir = htmlspecialchars_decode($options['directory']);
- $class = self::$dbSetupClasses[$dbtype];
+ $class = self::$dbSetupClasses[$dbType];
/** @var \OC\Setup\AbstractDatabase $dbSetup */
$dbSetup = new $class(self::getTrans(), 'db_structure.xml');
$error = array_merge($error, $dbSetup->validate($options));
// validate the data directory
if (
- (!is_dir($datadir) and !mkdir($datadir)) or
- !is_writable($datadir)
+ (!is_dir($dataDir) and !mkdir($dataDir)) or
+ !is_writable($dataDir)
) {
- $error[] = $l->t("Can't create or write into the data directory %s", array($datadir));
+ $error[] = $l->t("Can't create or write into the data directory %s", array($dataDir));
}
if(count($error) != 0) {
@@ -59,7 +158,7 @@ class OC_Setup {
}
//no errors, good
- if( isset($options['trusted_domains'])
+ if(isset($options['trusted_domains'])
&& is_array($options['trusted_domains'])) {
$trustedDomains = $options['trusted_domains'];
} else {
@@ -67,12 +166,12 @@ class OC_Setup {
}
if (OC_Util::runningOnWindows()) {
- $datadir = rtrim(realpath($datadir), '\\');
+ $dataDir = rtrim(realpath($dataDir), '\\');
}
- //use sqlite3 when available, otherise sqlite2 will be used.
- if($dbtype=='sqlite' and class_exists('SQLite3')) {
- $dbtype='sqlite3';
+ //use sqlite3 when available, otherwise sqlite2 will be used.
+ if($dbType=='sqlite' and class_exists('SQLite3')) {
+ $dbType='sqlite3';
}
//generate a random salt that is used to salt the local user passwords
@@ -85,15 +184,15 @@ class OC_Setup {
//write the config file
\OC::$server->getConfig()->setSystemValue('trusted_domains', $trustedDomains);
- \OC::$server->getConfig()->setSystemValue('datadirectory', $datadir);
- \OC::$server->getConfig()->setSystemValue('overwritewebroot', OC::$WEBROOT);
- \OC::$server->getConfig()->setSystemValue('dbtype', $dbtype);
+ \OC::$server->getConfig()->setSystemValue('datadirectory', $dataDir);
+ \OC::$server->getConfig()->setSystemValue('overwrite.cli.url', \OC_Request::serverProtocol() . '://' . \OC_Request::serverHost() . OC::$WEBROOT);
+ \OC::$server->getConfig()->setSystemValue('dbtype', $dbType);
\OC::$server->getConfig()->setSystemValue('version', implode('.', OC_Util::getVersion()));
try {
$dbSetup->initialize($options);
$dbSetup->setupDatabase($username);
- } catch (DatabaseSetupException $e) {
+ } catch (\OC\DatabaseSetupException $e) {
$error[] = array(
'error' => $e->getMessage(),
'hint' => $e->getHint()
@@ -110,8 +209,7 @@ class OC_Setup {
//create the user and group
try {
OC_User::createUser($username, $password);
- }
- catch(Exception $exception) {
+ } catch(Exception $exception) {
$error[] = $exception->getMessage();
}
diff --git a/lib/private/setup/mssql.php b/lib/private/setup/mssql.php
index b8329f99079..5143545b76f 100644
--- a/lib/private/setup/mssql.php
+++ b/lib/private/setup/mssql.php
@@ -17,7 +17,7 @@ class MSSQL extends AbstractDatabase {
} else {
$entry = '';
}
- throw new \DatabaseSetupException($this->trans->t('MS SQL username and/or password not valid: %s', array($entry)),
+ throw new \OC\DatabaseSetupException($this->trans->t('MS SQL username and/or password not valid: %s', array($entry)),
$this->trans->t('You need to enter either an existing account or the administrator.'));
}
diff --git a/lib/private/setup/mysql.php b/lib/private/setup/mysql.php
index 5558a2d1e51..8f8d86d388c 100644
--- a/lib/private/setup/mysql.php
+++ b/lib/private/setup/mysql.php
@@ -9,7 +9,7 @@ class MySQL extends AbstractDatabase {
//check if the database user has admin right
$connection = @mysql_connect($this->dbhost, $this->dbuser, $this->dbpassword);
if(!$connection) {
- throw new \DatabaseSetupException($this->trans->t('MySQL/MariaDB username and/or password not valid'),
+ throw new \OC\DatabaseSetupException($this->trans->t('MySQL/MariaDB username and/or password not valid'),
$this->trans->t('You need to enter either an existing account or the administrator.'));
}
//user already specified in config
@@ -96,13 +96,13 @@ class MySQL extends AbstractDatabase {
$query = "CREATE USER '$name'@'localhost' IDENTIFIED BY '$password'";
$result = mysql_query($query, $connection);
if (!$result) {
- throw new \DatabaseSetupException($this->trans->t("MySQL/MariaDB user '%s'@'localhost' exists already.", array($name)),
+ throw new \OC\DatabaseSetupException($this->trans->t("MySQL/MariaDB user '%s'@'localhost' exists already.", array($name)),
$this->trans->t("Drop this user from MySQL/MariaDB", array($name)));
}
$query = "CREATE USER '$name'@'%' IDENTIFIED BY '$password'";
$result = mysql_query($query, $connection);
if (!$result) {
- throw new \DatabaseSetupException($this->trans->t("MySQL/MariaDB user '%s'@'%%' already exists", array($name)),
+ throw new \OC\DatabaseSetupException($this->trans->t("MySQL/MariaDB user '%s'@'%%' already exists", array($name)),
$this->trans->t("Drop this user from MySQL/MariaDB."));
}
}
diff --git a/lib/private/setup/oci.php b/lib/private/setup/oci.php
index 23b5232438a..b75b658bae2 100644
--- a/lib/private/setup/oci.php
+++ b/lib/private/setup/oci.php
@@ -45,14 +45,14 @@ class OCI extends AbstractDatabase {
if(!$connection) {
$errorMessage = $this->getLastError();
if ($errorMessage) {
- throw new \DatabaseSetupException($this->trans->t('Oracle connection could not be established'),
+ throw new \OC\DatabaseSetupException($this->trans->t('Oracle connection could not be established'),
$errorMessage.' Check environment: ORACLE_HOME='.getenv('ORACLE_HOME')
.' ORACLE_SID='.getenv('ORACLE_SID')
.' LD_LIBRARY_PATH='.getenv('LD_LIBRARY_PATH')
.' NLS_LANG='.getenv('NLS_LANG')
.' tnsnames.ora is '.(is_readable(getenv('ORACLE_HOME').'/network/admin/tnsnames.ora')?'':'not ').'readable');
}
- throw new \DatabaseSetupException($this->trans->t('Oracle username and/or password not valid'),
+ throw new \OC\DatabaseSetupException($this->trans->t('Oracle username and/or password not valid'),
'Check environment: ORACLE_HOME='.getenv('ORACLE_HOME')
.' ORACLE_SID='.getenv('ORACLE_SID')
.' LD_LIBRARY_PATH='.getenv('LD_LIBRARY_PATH')
@@ -124,7 +124,7 @@ class OCI extends AbstractDatabase {
}
$connection = @oci_connect($this->dbuser, $this->dbpassword, $easy_connect_string);
if(!$connection) {
- throw new \DatabaseSetupException($this->trans->t('Oracle username and/or password not valid'),
+ throw new \OC\DatabaseSetupException($this->trans->t('Oracle username and/or password not valid'),
$this->trans->t('You need to enter either an existing account or the administrator.'));
}
$query = "SELECT count(*) FROM user_tables WHERE table_name = :un";
diff --git a/lib/private/setup/postgresql.php b/lib/private/setup/postgresql.php
index 4d0c9b52a4d..3777d1620bc 100644
--- a/lib/private/setup/postgresql.php
+++ b/lib/private/setup/postgresql.php
@@ -27,7 +27,7 @@ class PostgreSQL extends AbstractDatabase {
$connection = @pg_connect($connection_string);
if(!$connection)
- throw new \DatabaseSetupException($this->trans->t('PostgreSQL username and/or password not valid'),
+ throw new \OC\DatabaseSetupException($this->trans->t('PostgreSQL username and/or password not valid'),
$this->trans->t('You need to enter either an existing account or the administrator.'));
}
$e_user = pg_escape_string($this->dbuser);
@@ -80,7 +80,7 @@ class PostgreSQL extends AbstractDatabase {
$connection_string = "host='$e_host' dbname='$e_dbname' user='$e_user' port='$port' password='$e_password'";
$connection = @pg_connect($connection_string);
if(!$connection) {
- throw new \DatabaseSetupException($this->trans->t('PostgreSQL username and/or password not valid'),
+ throw new \OC\DatabaseSetupException($this->trans->t('PostgreSQL username and/or password not valid'),
$this->trans->t('You need to enter either an existing account or the administrator.'));
}
$query = "select count(*) FROM pg_class WHERE relname='".$this->tableprefix."users' limit 1";
diff --git a/lib/private/share/helper.php b/lib/private/share/helper.php
index 2418535c9d5..6bbb101db3a 100644
--- a/lib/private/share/helper.php
+++ b/lib/private/share/helper.php
@@ -189,20 +189,23 @@ class Helper extends \OC\Share\Constants {
public static function calculateExpireDate($defaultExpireSettings, $creationTime, $userExpireDate = null) {
$expires = false;
+ $defaultExpires = null;
if (!empty($defaultExpireSettings['defaultExpireDateSet'])) {
- $expires = $creationTime + $defaultExpireSettings['expireAfterDays'] * 86400;
+ $defaultExpires = $creationTime + $defaultExpireSettings['expireAfterDays'] * 86400;
}
if (isset($userExpireDate)) {
// if the admin decided to enforce the default expire date then we only take
// the user defined expire date of it is before the default expire date
- if ($expires && !empty($defaultExpireSettings['enforceExpireDate'])) {
- $expires = min($userExpireDate, $expires);
+ if ($defaultExpires && !empty($defaultExpireSettings['enforceExpireDate'])) {
+ $expires = min($userExpireDate, $defaultExpires);
} else {
$expires = $userExpireDate;
}
+ } else if ($defaultExpires && !empty($defaultExpireSettings['enforceExpireDate'])) {
+ $expires = $defaultExpires;
}
return $expires;
diff --git a/lib/private/share/share.php b/lib/private/share/share.php
index d861f0510e4..c6fd1604ac7 100644
--- a/lib/private/share/share.php
+++ b/lib/private/share/share.php
@@ -287,16 +287,27 @@ class Share extends \OC\Share\Constants {
* Get the item of item type shared with a given user by source
* @param string $itemType
* @param string $itemSource
- * @param string $user User user to whom the item was shared
+ * @param string $user User to whom the item was shared
+ * @param string $owner Owner of the share
+ * @param int $shareType only look for a specific share type
* @return array Return list of items with file_target, permissions and expiration
*/
- public static function getItemSharedWithUser($itemType, $itemSource, $user) {
-
+ public static function getItemSharedWithUser($itemType, $itemSource, $user, $owner = null, $shareType = null) {
$shares = array();
+ $fileDependend = false;
- $column = ($itemType === 'file' || $itemType === 'folder') ? 'file_source' : 'item_source';
+ if ($itemType === 'file' || $itemType === 'folder') {
+ $fileDependend = true;
+ $column = 'file_source';
+ $where = 'INNER JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid` WHERE';
+ } else {
+ $column = 'item_source';
+ $where = 'WHERE';
+ }
- $where = ' `' . $column . '` = ? AND `item_type` = ? ';
+ $select = self::createSelectStatement(self::FORMAT_NONE, $fileDependend);
+
+ $where .= ' `' . $column . '` = ? AND `item_type` = ? ';
$arguments = array($itemSource, $itemType);
// for link shares $user === null
if ($user !== null) {
@@ -304,13 +315,17 @@ class Share extends \OC\Share\Constants {
$arguments[] = $user;
}
- // first check if there is a db entry for the specific user
- $query = \OC_DB::prepare(
- 'SELECT *
- FROM
- `*PREFIX*share`
- WHERE' . $where
- );
+ if ($shareType !== null) {
+ $where .= ' AND `share_type` = ? ';
+ $arguments[] = $shareType;
+ }
+
+ if ($owner !== null) {
+ $where .= ' AND `uid_owner` = ? ';
+ $arguments[] = $owner;
+ }
+
+ $query = \OC_DB::prepare('SELECT ' . $select . ' FROM `*PREFIX*share` '. $where);
$result = \OC_DB::executeAudited($query, $arguments);
@@ -323,7 +338,7 @@ class Share extends \OC\Share\Constants {
$groups = \OC_Group::getUserGroups($user);
$query = \OC_DB::prepare(
- 'SELECT `file_target`, `permissions`, `expiration`
+ 'SELECT *
FROM
`*PREFIX*share`
WHERE
@@ -532,7 +547,7 @@ class Share extends \OC\Share\Constants {
// single file shares should never have delete permissions
if ($itemType === 'file') {
- $permissions = (int)$permissions & ~\OCP\PERMISSION_DELETE;
+ $permissions = (int)$permissions & ~\OCP\Constants::PERMISSION_DELETE;
}
// Verify share type and sharing conditions are met
@@ -623,9 +638,7 @@ class Share extends \OC\Share\Constants {
// Generate hash of password - same method as user passwords
if (!empty($shareWith)) {
- $forcePortable = (CRYPT_BLOWFISH != 1);
- $hasher = new \PasswordHash(8, $forcePortable);
- $shareWith = $hasher->HashPassword($shareWith.\OC_Config::getValue('passwordsalt', ''));
+ $shareWith = \OC::$server->getHasher()->hash($shareWith);
} else {
// reuse the already set password, but only if we change permissions
// otherwise the user disabled the password protection
@@ -668,7 +681,6 @@ class Share extends \OC\Share\Constants {
$message_t = $l->t('Sharing %s failed, because sharing with links is not allowed', array($itemSourceName));
\OC_Log::write('OCP\Share', sprintf($message, $itemSourceName), \OC_Log::ERROR);
throw new \Exception($message_t);
- return false;
} else {
// Future share types need to include their own conditions
$message = 'Share type %s is not valid for %s';
@@ -694,7 +706,7 @@ class Share extends \OC\Share\Constants {
// check if it is a valid itemType
self::getBackend($itemType);
- $items = self::getItemSharedWithUser($itemType, $itemSource, $shareWith);
+ $items = self::getItemSharedWithUser($itemType, $itemSource, $shareWith, null, $shareType);
$toDelete = array();
$newParent = null;
@@ -917,7 +929,7 @@ class Share extends \OC\Share\Constants {
// Check if permissions were removed
if ($item['permissions'] & ~$permissions) {
// If share permission is removed all reshares must be deleted
- if (($item['permissions'] & \OCP\PERMISSION_SHARE) && (~$permissions & \OCP\PERMISSION_SHARE)) {
+ if (($item['permissions'] & \OCP\Constants::PERMISSION_SHARE) && (~$permissions & \OCP\Constants::PERMISSION_SHARE)) {
Helper::delete($item['id'], true);
} else {
$ids = array();
@@ -1177,7 +1189,7 @@ class Share extends \OC\Share\Constants {
}
}
// TODO Add option for collections to be collection of themselves, only 'folder' does it now...
- if (!self::getBackend($itemType) instanceof \OCP\Share_Backend_Collection || $itemType != 'folder') {
+ if (isset(self::$backendTypes[$itemType]) && (!self::getBackend($itemType) instanceof \OCP\Share_Backend_Collection || $itemType != 'folder')) {
unset($collectionTypes[0]);
}
// Return array if collections were found or the item type is a
@@ -1188,6 +1200,57 @@ class Share extends \OC\Share\Constants {
return false;
}
+ /**
+ * Get the owners of items shared with a user.
+ *
+ * @param string $user The user the items are shared with.
+ * @param string $type The type of the items shared with the user.
+ * @param boolean $includeCollections Include collection item types (optional)
+ * @param boolean $includeOwner include owner in the list of users the item is shared with (optional)
+ * @return array
+ */
+ public static function getSharedItemsOwners($user, $type, $includeCollections = false, $includeOwner = false) {
+ // First, we find out if $type is part of a collection (and if that collection is part of
+ // another one and so on).
+ $collectionTypes = array();
+ if (!$includeCollections || !$collectionTypes = self::getCollectionItemTypes($type)) {
+ $collectionTypes[] = $type;
+ }
+
+ // Of these collection types, along with our original $type, we make a
+ // list of the ones for which a sharing backend has been registered.
+ // FIXME: Ideally, we wouldn't need to nest getItemsSharedWith in this loop but just call it
+ // with its $includeCollections parameter set to true. Unfortunately, this fails currently.
+ $allMaybeSharedItems = array();
+ foreach ($collectionTypes as $collectionType) {
+ if (isset(self::$backends[$collectionType])) {
+ $allMaybeSharedItems[$collectionType] = self::getItemsSharedWithUser(
+ $collectionType,
+ $user,
+ self::FORMAT_NONE
+ );
+ }
+ }
+
+ $owners = array();
+ if ($includeOwner) {
+ $owners[] = $user;
+ }
+
+ // We take a look at all shared items of the given $type (or of the collections it is part of)
+ // and find out their owners. Then, we gather the tags for the original $type from all owners,
+ // and return them as elements of a list that look like "Tag (owner)".
+ foreach ($allMaybeSharedItems as $collectionType => $maybeSharedItems) {
+ foreach ($maybeSharedItems as $sharedItem) {
+ if (isset($sharedItem['id'])) { //workaround for https://github.com/owncloud/core/issues/2814
+ $owners[] = $sharedItem['uid_owner'];
+ }
+ }
+ }
+
+ return $owners;
+ }
+
/**
* Get shared items from the database
* @param string $itemType
@@ -1254,14 +1317,18 @@ class Share extends \OC\Share\Constants {
if (isset($shareType)) {
// Include all user and group items
if ($shareType == self::$shareTypeUserAndGroups && isset($shareWith)) {
- $where .= ' AND `share_type` IN (?,?,?)';
+ $where .= ' AND ((`share_type` in (?, ?) AND `share_with` = ?) ';
$queryArgs[] = self::SHARE_TYPE_USER;
- $queryArgs[] = self::SHARE_TYPE_GROUP;
$queryArgs[] = self::$shareTypeGroupUserUnique;
- $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith));
- $placeholders = join(',', array_fill(0, count($userAndGroups), '?'));
- $where .= ' AND `share_with` IN ('.$placeholders.')';
- $queryArgs = array_merge($queryArgs, $userAndGroups);
+ $queryArgs[] = $shareWith;
+ $groups = \OC_Group::getUserGroups($shareWith);
+ if (!empty($groups)) {
+ $placeholders = join(',', array_fill(0, count($groups), '?'));
+ $where .= ' OR (`share_type` = ? AND `share_with` IN ('.$placeholders.')) ';
+ $queryArgs[] = self::SHARE_TYPE_GROUP;
+ $queryArgs = array_merge($queryArgs, $groups);
+ }
+ $where .= ')';
// Don't include own group shares
$where .= ' AND `uid_owner` != ?';
$queryArgs[] = $shareWith;
@@ -1296,7 +1363,7 @@ class Share extends \OC\Share\Constants {
}
if (isset($item)) {
$collectionTypes = self::getCollectionItemTypes($itemType);
- if ($includeCollections && $collectionTypes) {
+ if ($includeCollections && $collectionTypes && !in_array('folder', $collectionTypes)) {
$where .= ' AND (';
} else {
$where .= ' AND';
@@ -1320,7 +1387,7 @@ class Share extends \OC\Share\Constants {
}
}
$queryArgs[] = $item;
- if ($includeCollections && $collectionTypes) {
+ if ($includeCollections && $collectionTypes && !in_array('folder', $collectionTypes)) {
$placeholders = join(',', array_fill(0, count($collectionTypes), '?'));
$where .= ' OR `item_type` IN ('.$placeholders.'))';
$queryArgs = array_merge($queryArgs, $collectionTypes);
@@ -1391,8 +1458,8 @@ class Share extends \OC\Share\Constants {
}
// Switch ids if sharing permission is granted on only
// one share to ensure correct parent is used if resharing
- if (~(int)$items[$id]['permissions'] & \OCP\PERMISSION_SHARE
- && (int)$row['permissions'] & \OCP\PERMISSION_SHARE) {
+ if (~(int)$items[$id]['permissions'] & \OCP\Constants::PERMISSION_SHARE
+ && (int)$row['permissions'] & \OCP\Constants::PERMISSION_SHARE) {
$items[$row['id']] = $items[$id];
$switchedItems[$id] = $row['id'];
unset($items[$id]);
@@ -1434,7 +1501,7 @@ class Share extends \OC\Share\Constants {
$mounts[$row['storage']] = current($mountPoints);
}
}
- if ($mounts[$row['storage']]) {
+ if (!empty($mounts[$row['storage']])) {
$path = $mounts[$row['storage']]->getMountPoint().$row['path'];
$relPath = substr($path, $root); // path relative to data/user
$row['path'] = rtrim($relPath, '/');
@@ -1449,11 +1516,14 @@ class Share extends \OC\Share\Constants {
}
// Check if resharing is allowed, if not remove share permission
if (isset($row['permissions']) && (!self::isResharingAllowed() | \OC_Util::isSharingDisabledForUser())) {
- $row['permissions'] &= ~\OCP\PERMISSION_SHARE;
+ $row['permissions'] &= ~\OCP\Constants::PERMISSION_SHARE;
}
// Add display names to result
- if ( isset($row['share_with']) && $row['share_with'] != '') {
+ if ( isset($row['share_with']) && $row['share_with'] != '' &&
+ isset($row['share_with']) && $row['share_type'] === self::SHARE_TYPE_USER) {
$row['share_with_displayname'] = \OCP\User::getDisplayName($row['share_with']);
+ } else {
+ $row['share_with_displayname'] = $row['share_with'];
}
if ( isset($row['uid_owner']) && $row['uid_owner'] != '') {
$row['displayname_owner'] = \OCP\User::getDisplayName($row['uid_owner']);
@@ -1482,7 +1552,7 @@ class Share extends \OC\Share\Constants {
}
}
// Check if this is a collection of the requested item type
- if ($includeCollections && $collectionTypes && in_array($row['item_type'], $collectionTypes)) {
+ if ($includeCollections && $collectionTypes && $row['item_type'] !== 'folder' && in_array($row['item_type'], $collectionTypes)) {
if (($collectionBackend = self::getBackend($row['item_type']))
&& $collectionBackend instanceof \OCP\Share_Backend_Collection) {
// Collections can be inside collections, check if the item is a collection
@@ -1542,6 +1612,15 @@ class Share extends \OC\Share\Constants {
$toRemove = $switchedItems[$toRemove];
}
unset($items[$toRemove]);
+ } elseif ($includeCollections && $collectionTypes && in_array($row['item_type'], $collectionTypes)) {
+ // FIXME: Thats a dirty hack to improve file sharing performance,
+ // see github issue #10588 for more details
+ // Need to find a solution which works for all back-ends
+ $collectionBackend = self::getBackend($row['item_type']);
+ $sharedParents = $collectionBackend->getParents($row['item_source']);
+ foreach ($sharedParents as $parent) {
+ $collectionItems[] = $parent;
+ }
}
}
if (!empty($collectionItems)) {
@@ -1549,6 +1628,20 @@ class Share extends \OC\Share\Constants {
}
return self::formatResult($items, $column, $backend, $format, $parameters);
+ } elseif ($includeCollections && $collectionTypes && in_array('folder', $collectionTypes)) {
+ // FIXME: Thats a dirty hack to improve file sharing performance,
+ // see github issue #10588 for more details
+ // Need to find a solution which works for all back-ends
+ $collectionItems = array();
+ $collectionBackend = self::getBackend('folder');
+ $sharedParents = $collectionBackend->getParents($item, $shareWith, $uidOwner);
+ foreach ($sharedParents as $parent) {
+ $collectionItems[] = $parent;
+ }
+ if ($limit === 1) {
+ return reset($collectionItems);
+ }
+ return self::formatResult($collectionItems, $column, $backend, $format, $parameters);
}
return array();
@@ -1703,12 +1796,12 @@ class Share extends \OC\Share\Constants {
} elseif(!$sourceExists && !$isGroupShare) {
- $itemTarget = Helper::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $user,
+ $itemTarget = Helper::generateTarget($itemType, $itemSource, $shareType, $user,
$uidOwner, $suggestedItemTarget, $parent);
if (isset($fileSource)) {
if ($parentFolder) {
if ($parentFolder === true) {
- $fileTarget = Helper::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $user,
+ $fileTarget = Helper::generateTarget('file', $filePath, $shareType, $user,
$uidOwner, $suggestedFileTarget, $parent);
if ($fileTarget != $groupFileTarget) {
$parentFolders[$user]['folder'] = $fileTarget;
@@ -1718,7 +1811,7 @@ class Share extends \OC\Share\Constants {
$parent = $parentFolder[$user]['id'];
}
} else {
- $fileTarget = Helper::generateTarget('file', $filePath, self::SHARE_TYPE_USER,
+ $fileTarget = Helper::generateTarget('file', $filePath, $shareType,
$user, $uidOwner, $suggestedFileTarget, $parent);
}
} else {
@@ -1804,6 +1897,8 @@ class Share extends \OC\Share\Constants {
$l = \OC::$server->getL10N('lib');
$result = array();
+ $column = ($itemType === 'file' || $itemType === 'folder') ? 'file_source' : 'item_source';
+
$checkReshare = self::getItemSharedWithBySource($itemType, $itemSource, self::FORMAT_NONE, null, true);
if ($checkReshare) {
// Check if attempting to share back to owner
@@ -1816,7 +1911,7 @@ class Share extends \OC\Share\Constants {
}
// Check if share permissions is granted
- if (self::isResharingAllowed() && (int)$checkReshare['permissions'] & \OCP\PERMISSION_SHARE) {
+ if (self::isResharingAllowed() && (int)$checkReshare['permissions'] & \OCP\Constants::PERMISSION_SHARE) {
if (~(int)$checkReshare['permissions'] & $permissions) {
$message = 'Sharing %s failed, because the permissions exceed permissions granted to %s';
$message_t = $l->t('Sharing %s failed, because the permissions exceed permissions granted to %s', array($itemSourceName, $uidOwner));
@@ -1826,12 +1921,22 @@ class Share extends \OC\Share\Constants {
} else {
// TODO Don't check if inside folder
$result['parent'] = $checkReshare['id'];
- $result['itemSource'] = $checkReshare['item_source'];
- $result['fileSource'] = $checkReshare['file_source'];
- $result['suggestedItemTarget'] = $checkReshare['item_target'];
- $result['suggestedFileTarget'] = $checkReshare['file_target'];
- $result['filePath'] = $checkReshare['file_target'];
$result['expirationDate'] = min($expirationDate, $checkReshare['expiration']);
+ // only suggest the same name as new target if it is a reshare of the
+ // same file/folder and not the reshare of a child
+ if ($checkReshare[$column] === $itemSource) {
+ $result['filePath'] = $checkReshare['file_target'];
+ $result['itemSource'] = $checkReshare['item_source'];
+ $result['fileSource'] = $checkReshare['file_source'];
+ $result['suggestedItemTarget'] = $checkReshare['item_target'];
+ $result['suggestedFileTarget'] = $checkReshare['file_target'];
+ } else {
+ $result['filePath'] = ($backend instanceof \OCP\Share_Backend_File_Dependent) ? $backend->getFilePath($itemSource, $uidOwner) : null;
+ $result['suggestedItemTarget'] = null;
+ $result['suggestedFileTarget'] = null;
+ $result['itemSource'] = $itemSource;
+ $result['fileSource'] = ($backend instanceof \OCP\Share_Backend_File_Dependent) ? $itemSource : null;
+ }
}
} else {
$message = 'Sharing %s failed, because resharing is not allowed';
diff --git a/lib/private/tagging/tag.php b/lib/private/tagging/tag.php
new file mode 100644
index 00000000000..3ea9fbac20b
--- /dev/null
+++ b/lib/private/tagging/tag.php
@@ -0,0 +1,89 @@
+
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see .
+*
+*/
+
+namespace OC\Tagging;
+
+use \OCP\AppFramework\Db\Entity;
+
+/**
+ * Class to represent a tag.
+ *
+ * @method string getOwner()
+ * @method void setOwner(string $owner)
+ * @method string getType()
+ * @method void setType(string $type)
+ * @method string getName()
+ * @method void setName(string $name)
+ */
+class Tag extends Entity {
+
+ protected $owner;
+ protected $type;
+ protected $name;
+
+ /**
+ * Constructor.
+ *
+ * @param string $owner The tag's owner
+ * @param string $type The type of item this tag is used for
+ * @param string $name The tag's name
+ */
+ public function __construct($owner = null, $type = null, $name = null) {
+ $this->setOwner($owner);
+ $this->setType($type);
+ $this->setName($name);
+ }
+
+ /**
+ * Transform a database columnname to a property
+ *
+ * @param string $columnName the name of the column
+ * @return string the property name
+ * @todo migrate existing database columns to the correct names
+ * to be able to drop this direct mapping
+ */
+ public function columnToProperty($columnName){
+ if ($columnName === 'category') {
+ return 'name';
+ } elseif ($columnName === 'uid') {
+ return 'owner';
+ } else {
+ return parent::columnToProperty($columnName);
+ }
+ }
+
+ /**
+ * Transform a property to a database column name
+ *
+ * @param string $property the name of the property
+ * @return string the column name
+ */
+ public function propertyToColumn($property){
+ if ($property === 'name') {
+ return 'category';
+ } elseif ($property === 'owner') {
+ return 'uid';
+ } else {
+ return parent::propertyToColumn($property);
+ }
+ }
+}
diff --git a/lib/private/tagging/tagmapper.php b/lib/private/tagging/tagmapper.php
new file mode 100644
index 00000000000..6c9bec7aa52
--- /dev/null
+++ b/lib/private/tagging/tagmapper.php
@@ -0,0 +1,77 @@
+
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see .
+*
+*/
+
+namespace OC\Tagging;
+
+use \OCP\AppFramework\Db\Mapper,
+ \OCP\AppFramework\Db\DoesNotExistException,
+ \OCP\IDb;
+
+/**
+ * Mapper for Tag entity
+ */
+class TagMapper extends Mapper {
+
+ /**
+ * Constructor.
+ *
+ * @param IDb $db Instance of the Db abstraction layer.
+ */
+ public function __construct(IDb $db) {
+ parent::__construct($db, 'vcategory', 'OC\Tagging\Tag');
+ }
+
+ /**
+ * Load tags from the database.
+ *
+ * @param array|string $owners The user(s) whose tags we are going to load.
+ * @param string $type The type of item for which we are loading tags.
+ * @return array An array of Tag objects.
+ */
+ public function loadTags($owners, $type) {
+ if(!is_array($owners)) {
+ $owners = array($owners);
+ }
+
+ $sql = 'SELECT `id`, `uid`, `type`, `category` FROM `' . $this->getTableName() . '` '
+ . 'WHERE `uid` IN (' . str_repeat('?,', count($owners)-1) . '?) AND `type` = ? ORDER BY `category`';
+ return $this->findEntities($sql, array_merge($owners, array($type)));
+ }
+
+ /**
+ * Check if a given Tag object already exists in the database.
+ *
+ * @param Tag $tag The tag to look for in the database.
+ * @return bool
+ */
+ public function tagExists($tag) {
+ $sql = 'SELECT `id`, `uid`, `type`, `category` FROM `' . $this->getTableName() . '` '
+ . 'WHERE `uid` = ? AND `type` = ? AND `category` = ?';
+ try {
+ $this->findEntity($sql, array($tag->getOwner(), $tag->getType(), $tag->getName()));
+ } catch (DoesNotExistException $e) {
+ return false;
+ }
+ return true;
+ }
+}
+
diff --git a/lib/private/tagmanager.php b/lib/private/tagmanager.php
index 9a371a11253..d5bff04acff 100644
--- a/lib/private/tagmanager.php
+++ b/lib/private/tagmanager.php
@@ -33,6 +33,8 @@
namespace OC;
+use OC\Tagging\TagMapper;
+
class TagManager implements \OCP\ITagManager {
/**
@@ -40,15 +42,24 @@ class TagManager implements \OCP\ITagManager {
*
* @var string
*/
- private $user = null;
+ private $user;
+
+ /**
+ * TagMapper
+ *
+ * @var TagMapper
+ */
+ private $mapper;
/**
* Constructor.
*
- * @param string $user The user whos data the object will operate on.
+ * @param TagMapper $mapper Instance of the TagMapper abstraction layer.
+ * @param string $user The user whose data the object will operate on.
*/
- public function __construct($user) {
+ public function __construct(TagMapper $mapper, $user) {
+ $this->mapper = $mapper;
$this->user = $user;
}
@@ -59,10 +70,11 @@ class TagManager implements \OCP\ITagManager {
* @see \OCP\ITags
* @param string $type The type identifier e.g. 'contact' or 'event'.
* @param array $defaultTags An array of default tags to be used if none are stored.
+ * @param boolean $includeShared Whether to include tags for items shared with this user by others.
* @return \OCP\ITags
*/
- public function load($type, $defaultTags=array()) {
- return new Tags($this->user, $type, $defaultTags);
+ public function load($type, $defaultTags=array(), $includeShared=false) {
+ return new Tags($this->mapper, $this->user, $type, $defaultTags, $includeShared);
}
-}
\ No newline at end of file
+}
diff --git a/lib/private/tags.php b/lib/private/tags.php
index 0e58789ecd5..bab3d495282 100644
--- a/lib/private/tags.php
+++ b/lib/private/tags.php
@@ -34,6 +34,9 @@
namespace OC;
+use \OC\Tagging\Tag,
+ \OC\Tagging\TagMapper;
+
class Tags implements \OCP\ITags {
/**
@@ -55,14 +58,44 @@ class Tags implements \OCP\ITags {
*
* @var string
*/
- private $type = null;
+ private $type;
/**
* User
*
* @var string
*/
- private $user = null;
+ private $user;
+
+ /**
+ * Are we including tags for shared items?
+ *
+ * @var bool
+ */
+ private $includeShared = false;
+
+ /**
+ * The current user, plus any owners of the items shared with the current
+ * user, if $this->includeShared === true.
+ *
+ * @var array
+ */
+ private $owners = array();
+
+ /**
+ * The Mapper we're using to communicate our Tag objects to the database.
+ *
+ * @var TagMapper
+ */
+ private $mapper;
+
+ /**
+ * The sharing backend for objects of $this->type. Required if
+ * $this->includeShared === true to determine ownership of items.
+ *
+ * @var \OCP\Share_Backend
+ */
+ private $backend;
const TAG_TABLE = '*PREFIX*vcategory';
const RELATION_TABLE = '*PREFIX*vcategory_to_object';
@@ -72,47 +105,29 @@ class Tags implements \OCP\ITags {
/**
* Constructor.
*
- * @param string $user The user whos data the object will operate on.
- * @param string $type
+ * @param TagMapper $mapper Instance of the TagMapper abstraction layer.
+ * @param string $user The user whose data the object will operate on.
+ * @param string $type The type of items for which tags will be loaded.
+ * @param array $defaultTags Tags that should be created at construction.
+ * @param boolean $includeShared Whether to include tags for items shared with this user by others.
*/
- public function __construct($user, $type, $defaultTags = array()) {
+ public function __construct(TagMapper $mapper, $user, $type, $defaultTags = array(), $includeShared = false) {
+ $this->mapper = $mapper;
$this->user = $user;
$this->type = $type;
- $this->loadTags($defaultTags);
- }
-
- /**
- * Load tags from db.
- *
- */
- protected function loadTags($defaultTags=array()) {
- $this->tags = array();
- $result = null;
- $sql = 'SELECT `id`, `category` FROM `' . self::TAG_TABLE . '` '
- . 'WHERE `uid` = ? AND `type` = ? ORDER BY `category`';
- try {
- $stmt = \OCP\DB::prepare($sql);
- $result = $stmt->execute(array($this->user, $this->type));
- if (\OCP\DB::isError($result)) {
- \OCP\Util::writeLog('core', __METHOD__. ', DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR);
- }
- } catch(\Exception $e) {
- \OCP\Util::writeLog('core', __METHOD__.', exception: '.$e->getMessage(),
- \OCP\Util::ERROR);
- }
-
- if(!is_null($result)) {
- while( $row = $result->fetchRow()) {
- $this->tags[$row['id']] = $row['category'];
- }
+ $this->includeShared = $includeShared;
+ $this->owners = array($this->user);
+ if ($this->includeShared) {
+ $this->owners = array_merge($this->owners, \OC\Share\Share::getSharedItemsOwners($this->user, $this->type, true));
+ $this->backend = \OC\Share\Share::getBackend($this->type);
}
+ $this->tags = $this->mapper->loadTags($this->owners, $this->type);
if(count($defaultTags) > 0 && count($this->tags) === 0) {
$this->addMultiple($defaultTags, true);
}
\OCP\Util::writeLog('core', __METHOD__.', tags: ' . print_r($this->tags, true),
\OCP\Util::DEBUG);
-
}
/**
@@ -124,13 +139,28 @@ class Tags implements \OCP\ITags {
return count($this->tags) === 0;
}
+ /**
+ * Returns an array mapping a given tag's properties to its values:
+ * ['id' => 0, 'name' = 'Tag', 'owner' = 'User', 'type' => 'tagtype']
+ *
+ * @param string $id The ID of the tag that is going to be mapped
+ * @return array|false
+ */
+ public function getTag($id) {
+ $key = $this->getTagById($id);
+ if ($key !== false) {
+ return $this->tagMap($this->tags[$key]);
+ }
+ return false;
+ }
+
/**
* Get the tags for a specific user.
*
- * This returns an array with id/name maps:
+ * This returns an array with maps containing each tag's properties:
* [
- * ['id' => 0, 'name' = 'First tag'],
- * ['id' => 1, 'name' = 'Second tag'],
+ * ['id' => 0, 'name' = 'First tag', 'owner' = 'User', 'type' => 'tagtype'],
+ * ['id' => 1, 'name' = 'Shared tag', 'owner' = 'Other user', 'type' => 'tagtype'],
* ]
*
* @return array
@@ -140,22 +170,35 @@ class Tags implements \OCP\ITags {
return array();
}
- $tags = array_values($this->tags);
- uasort($tags, 'strnatcasecmp');
+ usort($this->tags, function($a, $b) {
+ return strnatcasecmp($a->getName(), $b->getName());
+ });
$tagMap = array();
- foreach($tags as $tag) {
- if($tag !== self::TAG_FAVORITE) {
- $tagMap[] = array(
- 'id' => $this->array_searchi($tag, $this->tags),
- 'name' => $tag
- );
+ foreach($this->tags as $tag) {
+ if($tag->getName() !== self::TAG_FAVORITE) {
+ $tagMap[] = $this->tagMap($tag);
}
}
return $tagMap;
}
+ /**
+ * Return only the tags owned by the given user, omitting any tags shared
+ * by other users.
+ *
+ * @param string $user The user whose tags are to be checked.
+ * @return array An array of Tag objects.
+ */
+ public function getTagsForUser($user) {
+ return array_filter($this->tags,
+ function($tag) use($user) {
+ return $tag->getOwner() === $user;
+ }
+ );
+ }
+
/**
* Get the a list if items tagged with $tag.
*
@@ -174,7 +217,7 @@ class Tags implements \OCP\ITags {
\OCP\Util::writeLog('core', __METHOD__.', Cannot use empty tag names', \OCP\Util::DEBUG);
return false;
}
- $tagId = $this->array_searchi($tag, $this->tags);
+ $tagId = $this->getTagId($tag);
}
if($tagId === false) {
@@ -203,7 +246,22 @@ class Tags implements \OCP\ITags {
if(!is_null($result)) {
while( $row = $result->fetchRow()) {
- $ids[] = (int)$row['objid'];
+ $id = (int)$row['objid'];
+
+ if ($this->includeShared) {
+ // We have to check if we are really allowed to access the
+ // items that are tagged with $tag. To that end, we ask the
+ // corresponding sharing backend if the item identified by $id
+ // is owned by any of $this->owners.
+ foreach ($this->owners as $owner) {
+ if ($this->backend->isValidSource($id, $owner)) {
+ $ids[] = $id;
+ break;
+ }
+ }
+ } else {
+ $ids[] = $id;
+ }
}
}
@@ -211,13 +269,26 @@ class Tags implements \OCP\ITags {
}
/**
- * Checks whether a tag is already saved.
+ * Checks whether a tag is saved for the given user,
+ * disregarding the ones shared with him or her.
*
- * @param string $name The name to check for.
+ * @param string $name The tag name to check for.
+ * @param string $user The user whose tags are to be checked.
+ * @return bool
+ */
+ public function userHasTag($name, $user) {
+ $key = $this->array_searchi($name, $this->getTagsForUser($user));
+ return ($key !== false) ? $this->tags[$key]->getId() : false;
+ }
+
+ /**
+ * Checks whether a tag is saved for or shared with the current user.
+ *
+ * @param string $name The tag name to check for.
* @return bool
*/
public function hasTag($name) {
- return $this->in_arrayi($name, $this->tags);
+ return $this->getTagId($name) !== false;
}
/**
@@ -233,41 +304,27 @@ class Tags implements \OCP\ITags {
\OCP\Util::writeLog('core', __METHOD__.', Cannot add an empty tag', \OCP\Util::DEBUG);
return false;
}
- if($this->hasTag($name)) {
+ if($this->userHasTag($name, $this->user)) {
\OCP\Util::writeLog('core', __METHOD__.', name: ' . $name. ' exists already', \OCP\Util::DEBUG);
return false;
}
try {
- $result = \OCP\DB::insertIfNotExist(
- self::TAG_TABLE,
- array(
- 'uid' => $this->user,
- 'type' => $this->type,
- 'category' => $name,
- )
- );
- if (\OCP\DB::isError($result)) {
- \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR);
- return false;
- } elseif((int)$result === 0) {
- \OCP\Util::writeLog('core', __METHOD__.', Tag already exists: ' . $name, \OCP\Util::DEBUG);
- return false;
- }
+ $tag = new Tag($this->user, $this->type, $name);
+ $tag = $this->mapper->insert($tag);
+ $this->tags[] = $tag;
} catch(\Exception $e) {
\OCP\Util::writeLog('core', __METHOD__.', exception: '.$e->getMessage(),
\OCP\Util::ERROR);
return false;
}
- $id = \OCP\DB::insertid(self::TAG_TABLE);
- \OCP\Util::writeLog('core', __METHOD__.', id: ' . $id, \OCP\Util::DEBUG);
- $this->tags[$id] = $name;
- return $id;
+ \OCP\Util::writeLog('core', __METHOD__.', id: ' . $tag->getId(), \OCP\Util::DEBUG);
+ return $tag->getId();
}
/**
* Rename tag.
*
- * @param string $from The name of the existing tag
+ * @param string|integer $from The name or ID of the existing tag
* @param string $to The new name of the tag.
* @return bool
*/
@@ -280,27 +337,30 @@ class Tags implements \OCP\ITags {
return false;
}
- $id = $this->array_searchi($from, $this->tags);
- if($id === false) {
+ if (is_numeric($from)) {
+ $key = $this->getTagById($from);
+ } else {
+ $key = $this->getTagByName($from);
+ }
+ if($key === false) {
\OCP\Util::writeLog('core', __METHOD__.', tag: ' . $from. ' does not exist', \OCP\Util::DEBUG);
return false;
}
+ $tag = $this->tags[$key];
+
+ if($this->userHasTag($to, $tag->getOwner())) {
+ \OCP\Util::writeLog('core', __METHOD__.', A tag named ' . $to. ' already exists for user ' . $tag->getOwner() . '.', \OCP\Util::DEBUG);
+ return false;
+ }
- $sql = 'UPDATE `' . self::TAG_TABLE . '` SET `category` = ? '
- . 'WHERE `uid` = ? AND `type` = ? AND `id` = ?';
try {
- $stmt = \OCP\DB::prepare($sql);
- $result = $stmt->execute(array($to, $this->user, $this->type, $id));
- if (\OCP\DB::isError($result)) {
- \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR);
- return false;
- }
+ $tag->setName($to);
+ $this->tags[$key] = $this->mapper->update($tag);
} catch(\Exception $e) {
\OCP\Util::writeLog('core', __METHOD__.', exception: '.$e->getMessage(),
\OCP\Util::ERROR);
return false;
}
- $this->tags[$id] = $to;
return true;
}
@@ -308,7 +368,7 @@ class Tags implements \OCP\ITags {
* Add a list of new tags.
*
* @param string[] $names A string with a name or an array of strings containing
- * the name(s) of the to add.
+ * the name(s) of the tag(s) to add.
* @param bool $sync When true, save the tags
* @param int|null $id int Optional object id to add to this|these tag(s)
* @return bool Returns false on error.
@@ -322,9 +382,8 @@ class Tags implements \OCP\ITags {
$newones = array();
foreach($names as $name) {
- if(($this->in_arrayi(
- $name, $this->tags) == false) && $name !== '') {
- $newones[] = $name;
+ if(!$this->hasTag($name) && $name !== '') {
+ $newones[] = new Tag($this->user, $this->type, $name);
}
if(!is_null($id) ) {
// Insert $objectid, $categoryid pairs if not exist.
@@ -346,26 +405,26 @@ class Tags implements \OCP\ITags {
if(is_array($this->tags)) {
foreach($this->tags as $tag) {
try {
- \OCP\DB::insertIfNotExist(self::TAG_TABLE,
- array(
- 'uid' => $this->user,
- 'type' => $this->type,
- 'category' => $tag,
- ));
+ if (!$this->mapper->tagExists($tag)) {
+ $this->mapper->insert($tag);
+ }
} catch(\Exception $e) {
\OCP\Util::writeLog('core', __METHOD__.', exception: '.$e->getMessage(),
\OCP\Util::ERROR);
}
}
+
// reload tags to get the proper ids.
- $this->loadTags();
+ $this->tags = $this->mapper->loadTags($this->owners, $this->type);
+ \OCP\Util::writeLog('core', __METHOD__.', tags: ' . print_r($this->tags, true),
+ \OCP\Util::DEBUG);
// Loop through temporarily cached objectid/tagname pairs
// and save relations.
$tags = $this->tags;
// For some reason this is needed or array_search(i) will return 0..?
ksort($tags);
foreach(self::$relations as $relation) {
- $tagId = $this->array_searchi($relation['tag'], $tags);
+ $tagId = $this->getTagId($relation['tag']);
\OCP\Util::writeLog('core', __METHOD__ . 'catid, ' . $relation['tag'] . ' ' . $tagId, \OCP\Util::DEBUG);
if($tagId) {
try {
@@ -493,7 +552,7 @@ class Tags implements \OCP\ITags {
* @return boolean
*/
public function addToFavorites($objid) {
- if(!$this->hasTag(self::TAG_FAVORITE)) {
+ if(!$this->userHasTag(self::TAG_FAVORITE, $this->user)) {
$this->add(self::TAG_FAVORITE);
}
return $this->tagAs($objid, self::TAG_FAVORITE);
@@ -526,7 +585,7 @@ class Tags implements \OCP\ITags {
if(!$this->hasTag($tag)) {
$this->add($tag);
}
- $tagId = $this->array_searchi($tag, $this->tags);
+ $tagId = $this->getTagId($tag);
} else {
$tagId = $tag;
}
@@ -559,7 +618,7 @@ class Tags implements \OCP\ITags {
\OCP\Util::writeLog('core', __METHOD__.', Tag name is empty', \OCP\Util::DEBUG);
return false;
}
- $tagId = $this->array_searchi($tag, $this->tags);
+ $tagId = $this->getTagId($tag);
} else {
$tagId = $tag;
}
@@ -578,9 +637,9 @@ class Tags implements \OCP\ITags {
}
/**
- * Delete tags from the
+ * Delete tags from the database.
*
- * @param string[] $names An array of tags to delete
+ * @param string[]|integer[] $names An array of tags (names or IDs) to delete
* @return bool Returns false on error
*/
public function delete($names) {
@@ -596,21 +655,19 @@ class Tags implements \OCP\ITags {
foreach($names as $name) {
$id = null;
- if($this->hasTag($name)) {
- $id = $this->array_searchi($name, $this->tags);
- unset($this->tags[$id]);
+ if (is_numeric($name)) {
+ $key = $this->getTagById($name);
+ } else {
+ $key = $this->getTagByName($name);
}
- try {
- $stmt = \OCP\DB::prepare('DELETE FROM `' . self::TAG_TABLE . '` WHERE '
- . '`uid` = ? AND `type` = ? AND `category` = ?');
- $result = $stmt->execute(array($this->user, $this->type, $name));
- if (\OCP\DB::isError($result)) {
- \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR);
- }
- } catch(\Exception $e) {
- \OCP\Util::writeLog('core', __METHOD__ . ', exception: '
- . $e->getMessage(), \OCP\Util::ERROR);
- return false;
+ if ($key !== false) {
+ $tag = $this->tags[$key];
+ $id = $tag->getId();
+ unset($this->tags[$key]);
+ $this->mapper->delete($tag);
+ } else {
+ \OCP\Util::writeLog('core', __METHOD__ . 'Cannot delete tag ' . $name
+ . ': not found.', \OCP\Util::ERROR);
}
if(!is_null($id) && $id !== false) {
try {
@@ -634,19 +691,67 @@ class Tags implements \OCP\ITags {
return true;
}
- // case-insensitive in_array
- private function in_arrayi($needle, $haystack) {
+ // case-insensitive array_search
+ protected function array_searchi($needle, $haystack, $mem='getName') {
if(!is_array($haystack)) {
return false;
}
- return in_array(strtolower($needle), array_map('strtolower', $haystack));
+ return array_search(strtolower($needle), array_map(
+ function($tag) use($mem) {
+ return strtolower(call_user_func(array($tag, $mem)));
+ }, $haystack)
+ );
}
- // case-insensitive array_search
- private function array_searchi($needle, $haystack) {
- if(!is_array($haystack)) {
- return false;
+ /**
+ * Get a tag's ID.
+ *
+ * @param string $name The tag name to look for.
+ * @return string|bool The tag's id or false if no matching tag is found.
+ */
+ private function getTagId($name) {
+ $key = $this->array_searchi($name, $this->tags);
+ if ($key !== false) {
+ return $this->tags[$key]->getId();
}
- return array_search(strtolower($needle), array_map('strtolower', $haystack));
+ return false;
+ }
+
+ /**
+ * Get a tag by its name.
+ *
+ * @param string $name The tag name.
+ * @return integer|bool The tag object's offset within the $this->tags
+ * array or false if it doesn't exist.
+ */
+ private function getTagByName($name) {
+ return $this->array_searchi($name, $this->tags, 'getName');
+ }
+
+ /**
+ * Get a tag by its ID.
+ *
+ * @param string $id The tag ID to look for.
+ * @return integer|bool The tag object's offset within the $this->tags
+ * array or false if it doesn't exist.
+ */
+ private function getTagById($id) {
+ return $this->array_searchi($id, $this->tags, 'getId');
+ }
+
+ /**
+ * Returns an array mapping a given tag's properties to its values:
+ * ['id' => 0, 'name' = 'Tag', 'owner' = 'User', 'type' => 'tagtype']
+ *
+ * @param Tag $tag The tag that is going to be mapped
+ * @return array
+ */
+ private function tagMap(Tag $tag) {
+ return array(
+ 'id' => $tag->getId(),
+ 'name' => $tag->getName(),
+ 'owner' => $tag->getOwner(),
+ 'type' => $tag->getType()
+ );
}
}
diff --git a/lib/private/template.php b/lib/private/template.php
index fce26117ede..bda802fd2e2 100644
--- a/lib/private/template.php
+++ b/lib/private/template.php
@@ -50,16 +50,13 @@ class OC_Template extends \OC\Template\Base {
// Read the selected theme from the config file
$theme = OC_Util::getTheme();
- // Read the detected formfactor and use the right file name.
- $fext = self::getFormFactorExtension();
-
$requesttoken = (OC::$server->getSession() and $registerCall) ? OC_Util::callRegister() : '';
$parts = explode('/', $app); // fix translation when app is something like core/lostpassword
$l10n = \OC::$server->getL10N($parts[0]);
$themeDefaults = new OC_Defaults();
- list($path, $template) = $this->findTemplate($theme, $app, $name, $fext);
+ list($path, $template) = $this->findTemplate($theme, $app, $name);
// Set the private data
$this->renderas = $renderas;
@@ -69,86 +66,24 @@ class OC_Template extends \OC\Template\Base {
parent::__construct($template, $requesttoken, $l10n, $themeDefaults);
}
- /**
- * autodetect the formfactor of the used device
- * default -> the normal desktop browser interface
- * mobile -> interface for smartphones
- * tablet -> interface for tablets
- * standalone -> the default interface but without header, footer and
- * sidebar, just the application. Useful to use just a specific
- * app on the desktop in a standalone window.
- */
- public static function detectFormfactor() {
- // please add more useragent strings for other devices
- if(isset($_SERVER['HTTP_USER_AGENT'])) {
- if(stripos($_SERVER['HTTP_USER_AGENT'], 'ipad')>0) {
- $mode='tablet';
- }elseif(stripos($_SERVER['HTTP_USER_AGENT'], 'iphone')>0) {
- $mode='mobile';
- }elseif((stripos($_SERVER['HTTP_USER_AGENT'], 'N9')>0)
- and (stripos($_SERVER['HTTP_USER_AGENT'], 'nokia')>0)) {
- $mode='mobile';
- }else{
- $mode='default';
- }
- }else{
- $mode='default';
- }
- return($mode);
- }
-
- /**
- * Returns the formfactor extension for current formfactor
- */
- static public function getFormFactorExtension()
- {
- if (!\OC::$server->getSession()) {
- return '';
- }
- // if the formfactor is not yet autodetected do the
- // autodetection now. For possible formfactors check the
- // detectFormfactor documentation
- if (!\OC::$server->getSession()->exists('formfactor')) {
- \OC::$server->getSession()->set('formfactor', self::detectFormfactor());
- }
- // allow manual override via GET parameter
- if(isset($_GET['formfactor'])) {
- \OC::$server->getSession()->set('formfactor', $_GET['formfactor']);
- }
- $formfactor = \OC::$server->getSession()->get('formfactor');
- if($formfactor==='default') {
- $fext='';
- }elseif($formfactor==='mobile') {
- $fext='.mobile';
- }elseif($formfactor==='tablet') {
- $fext='.tablet';
- }elseif($formfactor==='standalone') {
- $fext='.standalone';
- }else{
- $fext='';
- }
- return $fext;
- }
-
/**
* find the template with the given name
* @param string $name of the template file (without suffix)
*
- * Will select the template file for the selected theme and formfactor.
+ * Will select the template file for the selected theme.
* Checking all the possible locations.
* @param string $theme
* @param string $app
- * @param string $fext
* @return array
*/
- protected function findTemplate($theme, $app, $name, $fext) {
+ protected function findTemplate($theme, $app, $name) {
// Check if it is a app template or not.
if( $app !== '' ) {
$dirs = $this->getAppTemplateDirs($theme, $app, OC::$SERVERROOT, OC_App::getAppPath($app));
} else {
$dirs = $this->getCoreTemplateDirs($theme, OC::$SERVERROOT);
}
- $locator = new \OC\Template\TemplateFileLocator( $fext, $dirs );
+ $locator = new \OC\Template\TemplateFileLocator( $dirs );
$template = $locator->find($name);
$path = $locator->getPath();
return array($path, $template);
@@ -158,10 +93,15 @@ class OC_Template extends \OC\Template\Base {
* Add a custom element to the header
* @param string $tag tag name of the element
* @param array $attributes array of attributes for the element
- * @param string $text the text content for the element
+ * @param string $text the text content for the element. If $text is null then the
+ * element will be written as empty element. So use "" to get a closing tag.
*/
- public function addHeader( $tag, $attributes, $text='') {
- $this->headers[]=array('tag'=>$tag,'attributes'=>$attributes, 'text'=>$text);
+ public function addHeader($tag, $attributes, $text=null) {
+ $this->headers[]= array(
+ 'tag' => $tag,
+ 'attributes' => $attributes,
+ 'text' => $text
+ );
}
/**
@@ -178,12 +118,22 @@ class OC_Template extends \OC\Template\Base {
$page = new OC_TemplateLayout($this->renderas, $this->app);
// Add custom headers
- $page->assign('headers', $this->headers, false);
+ $headers = '';
foreach(OC_Util::$headers as $header) {
- $page->append('headers', $header);
+ $headers .= '<'.OC_Util::sanitizeHTML($header['tag']);
+ foreach($header['attributes'] as $name=>$value) {
+ $headers .= ' "'.OC_Util::sanitizeHTML($name).'"="'.OC_Util::sanitizeHTML($value).'"';
+ }
+ if ($header['text'] !== null) {
+ $headers .= '>'.OC_Util::sanitizeHTML($header['text']).''.OC_Util::sanitizeHTML($header['tag']).'>';
+ } else {
+ $headers .= '/>';
+ }
}
- $page->assign( "content", $data, false );
+ $page->assign('headers', $headers, false);
+
+ $page->assign('content', $data, false );
return $page->fetchPage();
}
else{
@@ -198,8 +148,8 @@ class OC_Template extends \OC\Template\Base {
* Includes another template. use inc('template'); ?> to
* do this.
*/
- public function inc( $file, $additionalparams = null ) {
- return $this->load($this->path.$file.'.php', $additionalparams);
+ public function inc( $file, $additionalParams = null ) {
+ return $this->load($this->path.$file.'.php', $additionalParams);
}
/**
@@ -277,4 +227,34 @@ class OC_Template extends \OC\Template\Base {
$content->printPage();
die();
}
+
+ /**
+ * @return bool
+ */
+ public static function isAssetPipelineEnabled() {
+ // asset management enabled?
+ $useAssetPipeline = \OC::$server->getConfig()->getSystemValue('asset-pipeline.enabled', false);
+ if (!$useAssetPipeline) {
+ return false;
+ }
+
+ // assets folder exists?
+ $assetDir = \OC::$SERVERROOT . '/assets';
+ if (!is_dir($assetDir)) {
+ if (!mkdir($assetDir)) {
+ \OCP\Util::writeLog('assets',
+ "Folder <$assetDir> does not exist and/or could not be generated.", \OCP\Util::ERROR);
+ return false;
+ }
+ }
+
+ // assets folder can be accessed?
+ if (!touch($assetDir."/.oc")) {
+ \OCP\Util::writeLog('assets',
+ "Folder <$assetDir> could not be accessed.", \OCP\Util::ERROR);
+ return false;
+ }
+ return $useAssetPipeline;
+ }
+
}
diff --git a/lib/private/template/cssresourcelocator.php b/lib/private/template/cssresourcelocator.php
index e26daa25827..cb129261b51 100644
--- a/lib/private/template/cssresourcelocator.php
+++ b/lib/private/template/cssresourcelocator.php
@@ -12,9 +12,7 @@ class CSSResourceLocator extends ResourceLocator {
public function doFind( $style ) {
if (strpos($style, '3rdparty') === 0
&& $this->appendIfExist($this->thirdpartyroot, $style.'.css')
- || $this->appendIfExist($this->serverroot, $style.$this->form_factor.'.css')
|| $this->appendIfExist($this->serverroot, $style.'.css')
- || $this->appendIfExist($this->serverroot, 'core/'.$style.$this->form_factor.'.css')
|| $this->appendIfExist($this->serverroot, 'core/'.$style.'.css')
) {
return;
@@ -23,8 +21,7 @@ class CSSResourceLocator extends ResourceLocator {
$style = substr($style, strpos($style, '/')+1);
$app_path = \OC_App::getAppPath($app);
$app_url = \OC_App::getAppWebPath($app);
- if ($this->appendIfExist($app_path, $style.$this->form_factor.'.css', $app_url)
- || $this->appendIfExist($app_path, $style.'.css', $app_url)
+ if ($this->appendIfExist($app_path, $style.'.css', $app_url)
) {
return;
}
@@ -33,11 +30,8 @@ class CSSResourceLocator extends ResourceLocator {
public function doFindTheme( $style ) {
$theme_dir = 'themes/'.$this->theme.'/';
- $this->appendIfExist($this->serverroot, $theme_dir.'apps/'.$style.$this->form_factor.'.css')
- || $this->appendIfExist($this->serverroot, $theme_dir.'apps/'.$style.'.css')
- || $this->appendIfExist($this->serverroot, $theme_dir.$style.$this->form_factor.'.css')
+ $this->appendIfExist($this->serverroot, $theme_dir.'apps/'.$style.'.css')
|| $this->appendIfExist($this->serverroot, $theme_dir.$style.'.css')
- || $this->appendIfExist($this->serverroot, $theme_dir.'core/'.$style.$this->form_factor.'.css')
|| $this->appendIfExist($this->serverroot, $theme_dir.'core/'.$style.'.css');
}
}
diff --git a/lib/private/template/functions.php b/lib/private/template/functions.php
index cbe751e59b5..4172d47ba61 100644
--- a/lib/private/template/functions.php
+++ b/lib/private/template/functions.php
@@ -29,7 +29,7 @@ function print_unescaped($string) {
* @param string|string[] $file the filename,
* if an array is given it will add all scripts
*/
-function script($app, $file) {
+function script($app, $file = null) {
if(is_array($file)) {
foreach($file as $f) {
OC_Util::addScript($app, $f);
@@ -39,13 +39,29 @@ function script($app, $file) {
}
}
+/**
+ * Shortcut for adding vendor scripts to a page
+ * @param string $app the appname
+ * @param string|string[] $file the filename,
+ * if an array is given it will add all scripts
+ */
+function vendor_script($app, $file = null) {
+ if(is_array($file)) {
+ foreach($file as $f) {
+ OC_Util::addVendorScript($app, $f);
+ }
+ } else {
+ OC_Util::addVendorScript($app, $file);
+ }
+}
+
/**
* Shortcut for adding styles to a page
* @param string $app the appname
* @param string|string[] $file the filename,
* if an array is given it will add all styles
*/
-function style($app, $file) {
+function style($app, $file = null) {
if(is_array($file)) {
foreach($file as $f) {
OC_Util::addStyle($app, $f);
@@ -55,6 +71,31 @@ function style($app, $file) {
}
}
+/**
+ * Shortcut for adding vendor styles to a page
+ * @param string $app the appname
+ * @param string|string[] $file the filename,
+ * if an array is given it will add all styles
+ */
+function vendor_style($app, $file = null) {
+ if(is_array($file)) {
+ foreach($file as $f) {
+ OC_Util::addVendorStyle($app, $f);
+ }
+ } else {
+ OC_Util::addVendorStyle($app, $file);
+ }
+}
+
+/**
+ * Shortcut for adding translations to a page
+ * @param string $app the appname
+ * if an array is given it will add all styles
+ */
+function translation($app) {
+ OC_Util::addTranslations($app);
+}
+
/**
* Shortcut for HTML imports
* @param string $app the appname
diff --git a/lib/private/template/jsresourcelocator.php b/lib/private/template/jsresourcelocator.php
index f8fe3817ce6..5a6672429cf 100644
--- a/lib/private/template/jsresourcelocator.php
+++ b/lib/private/template/jsresourcelocator.php
@@ -13,15 +13,10 @@ class JSResourceLocator extends ResourceLocator {
$theme_dir = 'themes/'.$this->theme.'/';
if (strpos($script, '3rdparty') === 0
&& $this->appendIfExist($this->thirdpartyroot, $script.'.js')
- || $this->appendIfExist($this->serverroot, $theme_dir.'apps/'.$script.$this->form_factor.'.js')
|| $this->appendIfExist($this->serverroot, $theme_dir.'apps/'.$script.'.js')
- || $this->appendIfExist($this->serverroot, $theme_dir.$script.$this->form_factor.'.js')
|| $this->appendIfExist($this->serverroot, $theme_dir.$script.'.js')
- || $this->appendIfExist($this->serverroot, $script.$this->form_factor.'.js')
|| $this->appendIfExist($this->serverroot, $script.'.js')
- || $this->appendIfExist($this->serverroot, $theme_dir.'core/'.$script.$this->form_factor.'.js')
|| $this->appendIfExist($this->serverroot, $theme_dir.'core/'.$script.'.js')
- || $this->appendIfExist($this->serverroot, 'core/'.$script.$this->form_factor.'.js')
|| $this->appendIfExist($this->serverroot, 'core/'.$script.'.js')
) {
return;
@@ -30,9 +25,11 @@ class JSResourceLocator extends ResourceLocator {
$script = substr($script, strpos($script, '/')+1);
$app_path = \OC_App::getAppPath($app);
$app_url = \OC_App::getAppWebPath($app);
- if ($this->appendIfExist($app_path, $script.$this->form_factor.'.js', $app_url)
- || $this->appendIfExist($app_path, $script.'.js', $app_url)
- ) {
+ if ($this->appendIfExist($app_path, $script.'.js', $app_url)) {
+ return;
+ }
+ // missing translations files fill be ignored
+ if (strpos($script, "l10n/") === 0) {
return;
}
throw new \Exception('js file not found: script:'.$script);
diff --git a/lib/private/template/resourcelocator.php b/lib/private/template/resourcelocator.php
index 7976c415922..919665df704 100644
--- a/lib/private/template/resourcelocator.php
+++ b/lib/private/template/resourcelocator.php
@@ -10,7 +10,6 @@ namespace OC\Template;
abstract class ResourceLocator {
protected $theme;
- protected $form_factor;
protected $mapping;
protected $serverroot;
@@ -21,11 +20,9 @@ abstract class ResourceLocator {
/**
* @param string $theme
- * @param string $form_factor
*/
- public function __construct( $theme, $form_factor, $core_map, $party_map ) {
+ public function __construct( $theme, $core_map, $party_map ) {
$this->theme = $theme;
- $this->form_factor = $form_factor;
$this->mapping = $core_map + $party_map;
$this->serverroot = key($core_map);
$this->thirdpartyroot = key($party_map);
@@ -46,8 +43,7 @@ abstract class ResourceLocator {
}
}
} catch (\Exception $e) {
- throw new \Exception($e->getMessage().' formfactor:'.$this->form_factor
- .' serverroot:'.$this->serverroot);
+ throw new \Exception($e->getMessage().' serverroot:'.$this->serverroot);
}
}
diff --git a/lib/private/template/templatefilelocator.php b/lib/private/template/templatefilelocator.php
index 4676fceb37d..042298389c8 100644
--- a/lib/private/template/templatefilelocator.php
+++ b/lib/private/template/templatefilelocator.php
@@ -9,21 +9,20 @@
namespace OC\Template;
class TemplateFileLocator {
- protected $form_factor;
protected $dirs;
private $path;
/**
* @param string[] $dirs
- * @param string $form_factor
*/
- public function __construct( $form_factor, $dirs ) {
- $this->form_factor = $form_factor;
+ public function __construct( $dirs ) {
$this->dirs = $dirs;
}
/**
* @param string $template
+ * @return string
+ * @throws \Exception
*/
public function find( $template ) {
if ($template === '') {
@@ -31,18 +30,13 @@ class TemplateFileLocator {
}
foreach($this->dirs as $dir) {
- $file = $dir.$template.$this->form_factor.'.php';
- if (is_file($file)) {
- $this->path = $dir;
- return $file;
- }
$file = $dir.$template.'.php';
if (is_file($file)) {
$this->path = $dir;
return $file;
}
}
- throw new \Exception('template file not found: template:'.$template.' formfactor:'.$this->form_factor);
+ throw new \Exception('template file not found: template:'.$template);
}
public function getPath() {
diff --git a/lib/private/templatelayout.php b/lib/private/templatelayout.php
index e9172fd2da5..a066f90bb23 100644
--- a/lib/private/templatelayout.php
+++ b/lib/private/templatelayout.php
@@ -2,8 +2,10 @@
use Assetic\Asset\AssetCollection;
use Assetic\Asset\FileAsset;
use Assetic\AssetWriter;
-use Assetic\Filter\CssRewriteFilter;
use Assetic\Filter\CssImportFilter;
+use Assetic\Filter\CssMinFilter;
+use Assetic\Filter\CssRewriteFilter;
+use Assetic\Filter\JSMinFilter;
/**
* Copyright (c) 2012 Bart Visscher
@@ -14,14 +16,24 @@ use Assetic\Filter\CssImportFilter;
class OC_TemplateLayout extends OC_Template {
- /**
- * @param string $renderas
- * @param string $appid application id
- */
- public function __construct( $renderas, $appid = '' ) {
- // Decide which page we show
+ private static $versionHash = '';
- if( $renderas == 'user' ) {
+ /**
+ * @var \OCP\IConfig
+ */
+ private $config;
+
+ /**
+ * @param string $renderAs
+ * @param string $appId application id
+ */
+ public function __construct( $renderAs, $appId = '' ) {
+
+ // yes - should be injected ....
+ $this->config = \OC::$server->getConfig();
+
+ // Decide which page we show
+ if( $renderAs == 'user' ) {
parent::__construct( 'core', 'layout.user' );
if(in_array(OC_APP::getCurrentApp(), array('settings','admin', 'help'))!==false) {
$this->assign('bodyid', 'body-settings');
@@ -30,9 +42,12 @@ class OC_TemplateLayout extends OC_Template {
}
// Update notification
- if(OC_Config::getValue('updatechecker', true) === true) {
- $data=OC_Updater::check();
- if(isset($data['version']) && $data['version'] != '' and $data['version'] !== Array() && OC_User::isAdminUser(OC_User::getUser())) {
+ if($this->config->getSystemValue('updatechecker', true) === true &&
+ OC_User::isAdminUser(OC_User::getUser())) {
+ $updater = new \OC\Updater();
+ $data = $updater->check();
+
+ if(isset($data['version']) && $data['version'] != '' and $data['version'] !== Array()) {
$this->assign('updateAvailable', true);
$this->assign('updateVersion', $data['versionstring']);
$this->assign('updateLink', $data['web']);
@@ -45,7 +60,7 @@ class OC_TemplateLayout extends OC_Template {
// Add navigation entry
$this->assign( 'application', '', false );
- $this->assign( 'appid', $appid );
+ $this->assign( 'appid', $appId );
$navigation = OC_App::getNavigation();
$this->assign( 'navigation', $navigation);
$this->assign( 'settingsnavigation', OC_App::getSettingsNavigation());
@@ -55,51 +70,55 @@ class OC_TemplateLayout extends OC_Template {
break;
}
}
- $user_displayname = OC_User::getDisplayName();
- $this->assign( 'user_displayname', $user_displayname );
+ $userDisplayName = OC_User::getDisplayName();
+ $this->assign( 'user_displayname', $userDisplayName );
$this->assign( 'user_uid', OC_User::getUser() );
$this->assign( 'appsmanagement_active', strpos(OC_Request::requestUri(), OC_Helper::linkToRoute('settings_apps')) === 0 );
- $this->assign('enableAvatars', \OC_Config::getValue('enable_avatars', true));
- } else if ($renderas == 'error') {
+ $this->assign('enableAvatars', $this->config->getSystemValue('enable_avatars', true));
+ $this->assign('userAvatarSet', \OC_Helper::userAvatarSet(OC_User::getUser()));
+ } else if ($renderAs == 'error') {
parent::__construct('core', 'layout.guest', '', false);
$this->assign('bodyid', 'body-login');
- } else if ($renderas == 'guest') {
+ } else if ($renderAs == 'guest') {
parent::__construct('core', 'layout.guest');
$this->assign('bodyid', 'body-login');
} else {
parent::__construct('core', 'layout.base');
+
+ }
+ // Send the language to our layouts
+ $this->assign('language', OC_L10N::findLanguage());
+
+
+ if(empty(self::$versionHash)) {
+ self::$versionHash = md5(implode(',', OC_App::getAppVersions()));
}
- $versionParameter = '?v=' . md5(implode(OC_Util::getVersion()));
- $useAssetPipeline = $this->isAssetPipelineEnabled();
+ $useAssetPipeline = self::isAssetPipelineEnabled();
if ($useAssetPipeline) {
-
- $this->append( 'jsfiles', OC_Helper::linkToRoute('js_config') . $versionParameter);
-
+ $this->append( 'jsfiles', OC_Helper::linkToRoute('js_config', array('v' => self::$versionHash)));
$this->generateAssets();
-
} else {
-
// Add the js files
- $jsfiles = self::findJavascriptFiles(OC_Util::$scripts);
+ $jsFiles = self::findJavascriptFiles(OC_Util::$scripts);
$this->assign('jsfiles', array(), false);
- if (OC_Config::getValue('installed', false) && $renderas!='error') {
- $this->append( 'jsfiles', OC_Helper::linkToRoute('js_config') . $versionParameter);
+ if ($this->config->getSystemValue('installed', false) && $renderAs != 'error') {
+ $this->append( 'jsfiles', OC_Helper::linkToRoute('js_config', array('v' => self::$versionHash)));
}
- foreach($jsfiles as $info) {
+ foreach($jsFiles as $info) {
$web = $info[1];
$file = $info[2];
- $this->append( 'jsfiles', $web.'/'.$file . $versionParameter);
+ $this->append( 'jsfiles', $web.'/'.$file . '?v=' . self::$versionHash);
}
// Add the css files
- $cssfiles = self::findStylesheetFiles(OC_Util::$styles);
+ $cssFiles = self::findStylesheetFiles(OC_Util::$styles);
$this->assign('cssfiles', array());
- foreach($cssfiles as $info) {
+ foreach($cssFiles as $info) {
$web = $info[1];
$file = $info[2];
- $this->append( 'cssfiles', $web.'/'.$file . $versionParameter);
+ $this->append( 'cssfiles', $web.'/'.$file . '?v=' . self::$versionHash);
}
}
}
@@ -112,10 +131,7 @@ class OC_TemplateLayout extends OC_Template {
// Read the selected theme from the config file
$theme = OC_Util::getTheme();
- // Read the detected formfactor and use the right file name.
- $fext = self::getFormFactorExtension();
-
- $locator = new \OC\Template\CSSResourceLocator( $theme, $fext,
+ $locator = new \OC\Template\CSSResourceLocator( $theme,
array( OC::$SERVERROOT => OC::$WEBROOT ),
array( OC::$THIRDPARTYROOT => OC::$THIRDPARTYWEBROOT ));
$locator->find($styles);
@@ -130,26 +146,28 @@ class OC_TemplateLayout extends OC_Template {
// Read the selected theme from the config file
$theme = OC_Util::getTheme();
- // Read the detected formfactor and use the right file name.
- $fext = self::getFormFactorExtension();
-
- $locator = new \OC\Template\JSResourceLocator( $theme, $fext,
+ $locator = new \OC\Template\JSResourceLocator( $theme,
array( OC::$SERVERROOT => OC::$WEBROOT ),
array( OC::$THIRDPARTYROOT => OC::$THIRDPARTYWEBROOT ));
$locator->find($scripts);
return $locator->getResources();
}
- public function generateAssets()
- {
+ public function generateAssets() {
$jsFiles = self::findJavascriptFiles(OC_Util::$scripts);
- $jsHash = self::hashScriptNames($jsFiles);
+ $jsHash = self::hashFileNames($jsFiles);
if (!file_exists("assets/$jsHash.js")) {
$jsFiles = array_map(function ($item) {
$root = $item[0];
$file = $item[2];
- return new FileAsset($root . '/' . $file, array(), $root, $file);
+ // no need to minifiy minified files
+ if (substr($file, -strlen('.min.js')) === '.min.js') {
+ return new FileAsset($root . '/' . $file, array(), $root, $file);
+ }
+ return new FileAsset($root . '/' . $file, array(
+ new JSMinFilter()
+ ), $root, $file);
}, $jsFiles);
$jsCollection = new AssetCollection($jsFiles);
$jsCollection->setTargetPath("assets/$jsHash.js");
@@ -159,7 +177,7 @@ class OC_TemplateLayout extends OC_Template {
}
$cssFiles = self::findStylesheetFiles(OC_Util::$styles);
- $cssHash = self::hashScriptNames($cssFiles);
+ $cssHash = self::hashFileNames($cssFiles);
if (!file_exists("assets/$cssHash.css")) {
$cssFiles = array_map(function ($item) {
@@ -169,12 +187,13 @@ class OC_TemplateLayout extends OC_Template {
$sourceRoot = \OC::$SERVERROOT;
$sourcePath = substr($assetPath, strlen(\OC::$SERVERROOT));
return new FileAsset(
- $assetPath,
+ $assetPath,
array(
- new CssRewriteFilter(),
+ new CssRewriteFilter(),
+ new CssMinFilter(),
new CssImportFilter()
),
- $sourceRoot,
+ $sourceRoot,
$sourcePath
);
}, $cssFiles);
@@ -190,47 +209,33 @@ class OC_TemplateLayout extends OC_Template {
}
/**
- * @param array $files
- * @return string
+ * Converts the absolute filepath to a relative path from \OC::$SERVERROOT
+ * @param string $filePath Absolute path
+ * @return string Relative path
+ * @throws Exception If $filePath is not under \OC::$SERVERROOT
*/
- private static function hashScriptNames($files)
- {
- $files = array_map(function ($item) {
- $root = $item[0];
- $file = $item[2];
- return $root . '/' . $file;
- }, $files);
+ public static function convertToRelativePath($filePath) {
+ $relativePath = explode(\OC::$SERVERROOT, $filePath);
+ if(count($relativePath) !== 2) {
+ throw new \Exception('$filePath is not under the \OC::$SERVERROOT');
+ }
- sort($files);
- return hash('md5', implode('', $files));
+ return $relativePath[1];
}
/**
- * @return bool
+ * @param array $files
+ * @return string
*/
- private function isAssetPipelineEnabled() {
- // asset management enabled?
- $useAssetPipeline = OC_Config::getValue('asset-pipeline.enabled', false);
- if (!$useAssetPipeline) {
- return false;
+
+ private static function hashFileNames($files) {
+ foreach($files as $i => $file) {
+ $files[$i] = self::convertToRelativePath($file[0]).'/'.$file[2];
}
- // assets folder exists?
- $assetDir = \OC::$SERVERROOT . '/assets';
- if (!is_dir($assetDir)) {
- if (!mkdir($assetDir)) {
- \OCP\Util::writeLog('assets',
- "Folder <$assetDir> does not exist and/or could not be generated.", \OCP\Util::ERROR);
- return false;
- }
- }
-
- // assets folder can be accessed?
- if (!touch($assetDir."/.oc")) {
- \OCP\Util::writeLog('assets',
- "Folder <$assetDir> could not be accessed.", \OCP\Util::ERROR);
- return false;
- }
- return $useAssetPipeline;
+ sort($files);
+ // include the apps' versions hash to invalidate the cached assets
+ $files[] = self::$versionHash;
+ return hash('md5', implode('', $files));
}
}
diff --git a/lib/private/tempmanager.php b/lib/private/tempmanager.php
new file mode 100644
index 00000000000..a3bb07f9d63
--- /dev/null
+++ b/lib/private/tempmanager.php
@@ -0,0 +1,146 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC;
+
+use OCP\ILogger;
+use OCP\ITempManager;
+
+class TempManager implements ITempManager {
+ /**
+ * Current temporary files and folders
+ *
+ * @var string[]
+ */
+ protected $current = array();
+
+ /**
+ * i.e. /tmp on linux systems
+ *
+ * @var string
+ */
+ protected $tmpBaseDir;
+
+ /**
+ * @var \OCP\ILogger
+ */
+ protected $log;
+
+ /**
+ * @param string $baseDir
+ * @param \OCP\ILogger $logger
+ */
+ public function __construct($baseDir, ILogger $logger) {
+ $this->tmpBaseDir = $baseDir;
+ $this->log = $logger;
+ }
+
+ protected function generatePath($postFix) {
+ return $this->tmpBaseDir . '/oc_tmp_' . md5(time() . rand()) . $postFix;
+ }
+
+ /**
+ * Create a temporary file and return the path
+ *
+ * @param string $postFix
+ * @return string
+ */
+ public function getTemporaryFile($postFix = '') {
+ $file = $this->generatePath($postFix);
+ if (is_writable($this->tmpBaseDir)) {
+ touch($file);
+ $this->current[] = $file;
+ return $file;
+ } else {
+ $this->log->warning(
+ 'Can not create a temporary file in directory {dir}. Check it exists and has correct permissions',
+ array(
+ 'dir' => $this->tmpBaseDir
+ )
+ );
+ return false;
+ }
+ }
+
+ /**
+ * Create a temporary folder and return the path
+ *
+ * @param string $postFix
+ * @return string
+ */
+ public function getTemporaryFolder($postFix = '') {
+ $path = $this->generatePath($postFix);
+ if (is_writable($this->tmpBaseDir)) {
+ mkdir($path);
+ $this->current[] = $path;
+ return $path . '/';
+ } else {
+ $this->log->warning(
+ 'Can not create a temporary folder in directory {dir}. Check it exists and has correct permissions',
+ array(
+ 'dir' => $this->tmpBaseDir
+ )
+ );
+ return false;
+ }
+ }
+
+ /**
+ * Remove the temporary files and folders generated during this request
+ */
+ public function clean() {
+ $this->cleanFiles($this->current);
+ }
+
+ protected function cleanFiles($files) {
+ foreach ($files as $file) {
+ if (file_exists($file)) {
+ try {
+ \OC_Helper::rmdirr($file);
+ } catch (\UnexpectedValueException $ex) {
+ $this->log->warning(
+ "Error deleting temporary file/folder: {file} - Reason: {error}",
+ array(
+ 'file' => $file,
+ 'error' => $ex->getMessage()
+ )
+ );
+ }
+ }
+ }
+ }
+
+ /**
+ * Remove old temporary files and folders that were failed to be cleaned
+ */
+ public function cleanOld() {
+ $this->cleanFiles($this->getOldFiles());
+ }
+
+ /**
+ * Get all temporary files and folders generated by oc older than an hour
+ *
+ * @return string[]
+ */
+ protected function getOldFiles() {
+ $cutOfTime = time() - 3600;
+ $files = array();
+ $dh = opendir($this->tmpBaseDir);
+ while (($file = readdir($dh)) !== false) {
+ if (substr($file, 0, 7) === 'oc_tmp_') {
+ $path = $this->tmpBaseDir . '/' . $file;
+ $mtime = filemtime($path);
+ if ($mtime < $cutOfTime) {
+ $files[] = $path;
+ }
+ }
+ }
+ return $files;
+ }
+}
diff --git a/lib/private/updater.php b/lib/private/updater.php
index 3eb2cd4ec4c..e07ff03ffc4 100644
--- a/lib/private/updater.php
+++ b/lib/private/updater.php
@@ -66,13 +66,17 @@ class Updater extends BasicEmitter {
* @param string $updaterUrl the url to check, i.e. 'http://apps.owncloud.com/updater.php'
* @return array|bool
*/
- public function check($updaterUrl) {
+ public function check($updaterUrl = null) {
// Look up the cache - it is invalidated all 30 minutes
if ((\OC_Appconfig::getValue('core', 'lastupdatedat') + 1800) > time()) {
return json_decode(\OC_Appconfig::getValue('core', 'lastupdateResult'), true);
}
+ if (is_null($updaterUrl)) {
+ $updaterUrl = 'https://apps.owncloud.com/updater.php';
+ }
+
\OC_Appconfig::setValue('core', 'lastupdatedat', time());
if (\OC_Appconfig::getValue('core', 'installedat', '') == '') {
@@ -125,7 +129,6 @@ class Updater extends BasicEmitter {
* @return bool true if the operation succeeded, false otherwise
*/
public function upgrade() {
- \OC_DB::enableCaching(false);
\OC_Config::setValue('maintenance', true);
$installedVersion = \OC_Config::getValue('version', '0.0.0');
@@ -242,7 +245,6 @@ class Updater extends BasicEmitter {
protected function checkAppUpgrade($version) {
$apps = \OC_App::getEnabledApps();
-
foreach ($apps as $appId) {
if ($version) {
$info = \OC_App::getAppInfo($appId);
@@ -252,6 +254,15 @@ class Updater extends BasicEmitter {
}
if ($compatible && \OC_App::shouldUpgrade($appId)) {
+ /**
+ * FIXME: The preupdate check is performed before the database migration, otherwise database changes
+ * are not possible anymore within it. - Consider this when touching the code.
+ * @link https://github.com/owncloud/core/issues/10980
+ * @see \OC_App::updateApp
+ */
+ if (file_exists(\OC_App::getAppPath($appId) . '/appinfo/preupdate.php')) {
+ $this->includePreUpdate($appId);
+ }
if (file_exists(\OC_App::getAppPath($appId) . '/appinfo/database.xml')) {
\OC_DB::simulateUpdateDbFromStructure(\OC_App::getAppPath($appId) . '/appinfo/database.xml');
}
@@ -261,6 +272,14 @@ class Updater extends BasicEmitter {
$this->emit('\OC\Updater', 'appUpgradeCheck');
}
+ /**
+ * Includes the pre-update file. Done here to prevent namespace mixups.
+ * @param string $appId
+ */
+ private function includePreUpdate($appId) {
+ include \OC_App::getAppPath($appId) . '/appinfo/preupdate.php';
+ }
+
protected function doAppUpgrade() {
$apps = \OC_App::getEnabledApps();
diff --git a/lib/private/urlgenerator.php b/lib/private/urlgenerator.php
index f5ec9803edb..d263d25aeef 100644
--- a/lib/private/urlgenerator.php
+++ b/lib/private/urlgenerator.php
@@ -8,6 +8,7 @@
*/
namespace OC;
+use OC_Defaults;
use OCP\IURLGenerator;
use RuntimeException;
@@ -156,12 +157,16 @@ class URLGenerator implements IURLGenerator {
/**
* Makes an URL absolute
- * @param string $url the url in the owncloud host
+ * @param string $url the url in the ownCloud host
* @return string the absolute version of the url
*/
public function getAbsoluteURL($url) {
$separator = $url[0] === '/' ? '' : '/';
+ if (\OC::$CLI && !defined('PHPUNIT_RUN')) {
+ return rtrim($this->config->getSystemValue('overwrite.cli.url'), '/') . '/' . ltrim($url, '/');
+ }
+
// The ownCloud web root can already be prepended.
$webRoot = substr($url, 0, strlen(\OC::$WEBROOT)) === \OC::$WEBROOT
? ''
@@ -169,4 +174,13 @@ class URLGenerator implements IURLGenerator {
return \OC_Request::serverProtocol() . '://' . \OC_Request::serverHost(). $webRoot . $separator . $url;
}
+
+ /**
+ * @param string $key
+ * @return string url to the online documentation
+ */
+ public function linkToDocs($key) {
+ $theme = new OC_Defaults();
+ return $theme->buildDocLinkToKey($key);
+ }
}
diff --git a/lib/private/user.php b/lib/private/user.php
index 641a329b0dd..b2a235425c4 100644
--- a/lib/private/user.php
+++ b/lib/private/user.php
@@ -211,9 +211,6 @@ class OC_User {
// Delete the users entry in the storage table
\OC\Files\Cache\Storage::remove('home::' . $uid);
-
- // Remove it from the Cache
- self::getManager()->delete($uid);
}
return true;
@@ -224,17 +221,21 @@ class OC_User {
/**
* Try to login a user
- * @param string $uid The username of the user to log in
+ * @param string $loginname The login name of the user to log in
* @param string $password The password of the user
* @return boolean|null
*
* Log in a user and regenerate a new session - if the password is ok
*/
- public static function login($uid, $password) {
+ public static function login($loginname, $password) {
+ $loginname = str_replace("\0", '', $loginname);
+ $password = str_replace("\0", '', $password);
+
session_regenerate_id(true);
- $result = self::getUserSession()->login($uid, $password);
+ $result = self::getUserSession()->login($loginname, $password);
if ($result) {
- OC_Util::setupFS($uid);
+ //we need to pass the user name, which may differ from login name
+ OC_Util::setupFS(self::getUserSession()->getUser()->getUID());
}
return $result;
}
diff --git a/lib/private/user/backend.php b/lib/private/user/backend.php
index 1f0a524117d..5e0eef4771a 100644
--- a/lib/private/user/backend.php
+++ b/lib/private/user/backend.php
@@ -25,19 +25,28 @@
/**
* error code for functions not provided by the user backend
+ * @deprecated Use \OC_User_Backend::NOT_IMPLEMENTED instead
*/
define('OC_USER_BACKEND_NOT_IMPLEMENTED', -501);
/**
* actions that user backends can define
*/
+/** @deprecated Use \OC_User_Backend::CREATE_USER instead */
define('OC_USER_BACKEND_CREATE_USER', 1 << 0);
+/** @deprecated Use \OC_User_Backend::SET_PASSWORD instead */
define('OC_USER_BACKEND_SET_PASSWORD', 1 << 4);
+/** @deprecated Use \OC_User_Backend::CHECK_PASSWORD instead */
define('OC_USER_BACKEND_CHECK_PASSWORD', 1 << 8);
+/** @deprecated Use \OC_User_Backend::GET_HOME instead */
define('OC_USER_BACKEND_GET_HOME', 1 << 12);
+/** @deprecated Use \OC_User_Backend::GET_DISPLAYNAME instead */
define('OC_USER_BACKEND_GET_DISPLAYNAME', 1 << 16);
+/** @deprecated Use \OC_User_Backend::SET_DISPLAYNAME instead */
define('OC_USER_BACKEND_SET_DISPLAYNAME', 1 << 20);
+/** @deprecated Use \OC_User_Backend::PROVIDE_AVATAR instead */
define('OC_USER_BACKEND_PROVIDE_AVATAR', 1 << 24);
+/** @deprecated Use \OC_User_Backend::COUNT_USERS instead */
define('OC_USER_BACKEND_COUNT_USERS', 1 << 28);
/**
@@ -47,16 +56,32 @@ define('OC_USER_BACKEND_COUNT_USERS', 1 << 28);
* Subclass this for your own backends, and see OC_User_Example for descriptions
*/
abstract class OC_User_Backend implements OC_User_Interface {
+ /**
+ * error code for functions not provided by the user backend
+ */
+ const NOT_IMPLEMENTED = -501;
+
+ /**
+ * actions that user backends can define
+ */
+ const CREATE_USER = 1; // 1 << 0
+ const SET_PASSWORD = 16; // 1 << 4
+ const CHECK_PASSWORD = 256; // 1 << 8
+ const GET_HOME = 4096; // 1 << 12
+ const GET_DISPLAYNAME = 65536; // 1 << 16
+ const SET_DISPLAYNAME = 1048576; // 1 << 20
+ const PROVIDE_AVATAR = 16777216; // 1 << 24
+ const COUNT_USERS = 268435456; // 1 << 28
protected $possibleActions = array(
- OC_USER_BACKEND_CREATE_USER => 'createUser',
- OC_USER_BACKEND_SET_PASSWORD => 'setPassword',
- OC_USER_BACKEND_CHECK_PASSWORD => 'checkPassword',
- OC_USER_BACKEND_GET_HOME => 'getHome',
- OC_USER_BACKEND_GET_DISPLAYNAME => 'getDisplayName',
- OC_USER_BACKEND_SET_DISPLAYNAME => 'setDisplayName',
- OC_USER_BACKEND_PROVIDE_AVATAR => 'canChangeAvatar',
- OC_USER_BACKEND_COUNT_USERS => 'countUsers',
+ self::CREATE_USER => 'createUser',
+ self::SET_PASSWORD => 'setPassword',
+ self::CHECK_PASSWORD => 'checkPassword',
+ self::GET_HOME => 'getHome',
+ self::GET_DISPLAYNAME => 'getDisplayName',
+ self::SET_DISPLAYNAME => 'setDisplayName',
+ self::PROVIDE_AVATAR => 'canChangeAvatar',
+ self::COUNT_USERS => 'countUsers',
);
/**
@@ -64,7 +89,7 @@ abstract class OC_User_Backend implements OC_User_Interface {
* @return int bitwise-or'ed actions
*
* Returns the supported actions as int to be
- * compared with OC_USER_BACKEND_CREATE_USER etc.
+ * compared with self::CREATE_USER etc.
*/
public function getSupportedActions() {
$actions = 0;
@@ -83,7 +108,7 @@ abstract class OC_User_Backend implements OC_User_Interface {
* @return boolean
*
* Returns the supported actions as int to be
- * compared with OC_USER_BACKEND_CREATE_USER etc.
+ * compared with self::CREATE_USER etc.
*/
public function implementsActions($actions) {
return (bool)($this->getSupportedActions() & $actions);
diff --git a/lib/private/user/database.php b/lib/private/user/database.php
index 3a76adbe763..a6289066f05 100644
--- a/lib/private/user/database.php
+++ b/lib/private/user/database.php
@@ -33,28 +33,12 @@
*
*/
-require_once 'phpass/PasswordHash.php';
-
/**
* Class for user management in a SQL Database (e.g. MySQL, SQLite)
*/
class OC_User_Database extends OC_User_Backend {
- /**
- * @var PasswordHash
- */
- private static $hasher = null;
-
private $cache = array();
- private function getHasher() {
- if (!self::$hasher) {
- //we don't want to use DES based crypt(), since it doesn't return a hash with a recognisable prefix
- $forcePortable = (CRYPT_BLOWFISH != 1);
- self::$hasher = new PasswordHash(8, $forcePortable);
- }
- return self::$hasher;
- }
-
/**
* Create a new user
* @param string $uid The username of the user to create
@@ -66,10 +50,8 @@ class OC_User_Database extends OC_User_Backend {
*/
public function createUser($uid, $password) {
if (!$this->userExists($uid)) {
- $hasher = $this->getHasher();
- $hash = $hasher->HashPassword($password . OC_Config::getValue('passwordsalt', ''));
$query = OC_DB::prepare('INSERT INTO `*PREFIX*users` ( `uid`, `password` ) VALUES( ?, ? )');
- $result = $query->execute(array($uid, $hash));
+ $result = $query->execute(array($uid, \OC::$server->getHasher()->hash($password)));
return $result ? true : false;
}
@@ -106,10 +88,8 @@ class OC_User_Database extends OC_User_Backend {
*/
public function setPassword($uid, $password) {
if ($this->userExists($uid)) {
- $hasher = $this->getHasher();
- $hash = $hasher->HashPassword($password . OC_Config::getValue('passwordsalt', ''));
$query = OC_DB::prepare('UPDATE `*PREFIX*users` SET `password` = ? WHERE `uid` = ?');
- $result = $query->execute(array($hash, $uid));
+ $result = $query->execute(array(\OC::$server->getHasher()->hash($password), $uid));
return $result ? true : false;
}
@@ -159,7 +139,6 @@ class OC_User_Database extends OC_User_Backend {
. ' WHERE LOWER(`displayname`) LIKE LOWER(?) OR '
. 'LOWER(`uid`) LIKE LOWER(?) ORDER BY `uid` ASC', $limit, $offset);
$result = $query->execute(array('%' . $search . '%', '%' . $search . '%'));
- $users = array();
while ($row = $result->fetchRow()) {
$displayNames[$row['uid']] = $row['displayname'];
}
@@ -183,18 +162,14 @@ class OC_User_Database extends OC_User_Backend {
$row = $result->fetchRow();
if ($row) {
$storedHash = $row['password'];
- if ($storedHash[0] === '$') { //the new phpass based hashing
- $hasher = $this->getHasher();
- if ($hasher->CheckPassword($password . OC_Config::getValue('passwordsalt', ''), $storedHash)) {
- return $row['uid'];
+ $newHash = '';
+ if(\OC::$server->getHasher()->verify($password, $storedHash, $newHash)) {
+ if(!empty($newHash)) {
+ $this->setPassword($uid, $password);
}
-
- //old sha1 based hashing
- } elseif (sha1($password) === $storedHash) {
- //upgrade to new hashing
- $this->setPassword($row['uid'], $password);
return $row['uid'];
}
+
}
return false;
diff --git a/lib/private/user/dummy.php b/lib/private/user/dummy.php
index dbcbb2a46f7..fd0201734fa 100644
--- a/lib/private/user/dummy.php
+++ b/lib/private/user/dummy.php
@@ -26,9 +26,11 @@
*/
class OC_User_Dummy extends OC_User_Backend {
private $users = array();
+ private $displayNames = array();
/**
* Create a new user
+ *
* @param string $uid The username of the user to create
* @param string $password The password of the new user
* @return bool
@@ -47,6 +49,7 @@ class OC_User_Dummy extends OC_User_Backend {
/**
* delete a user
+ *
* @param string $uid The username of the user to delete
* @return bool
*
@@ -63,6 +66,7 @@ class OC_User_Dummy extends OC_User_Backend {
/**
* Set password
+ *
* @param string $uid The username
* @param string $password The new password
* @return bool
@@ -80,6 +84,7 @@ class OC_User_Dummy extends OC_User_Backend {
/**
* Check if the password is correct
+ *
* @param string $uid The username
* @param string $password The password
* @return string
@@ -97,6 +102,7 @@ class OC_User_Dummy extends OC_User_Backend {
/**
* Get a list of all users
+ *
* @param string $search
* @param int $limit
* @param int $offset
@@ -105,12 +111,12 @@ class OC_User_Dummy extends OC_User_Backend {
* Get a list of all users.
*/
public function getUsers($search = '', $limit = null, $offset = null) {
- if(empty($search)) {
+ if (empty($search)) {
return array_keys($this->users);
}
$result = array();
- foreach(array_keys($this->users) as $user) {
- if(stripos($user, $search) !== false) {
+ foreach (array_keys($this->users) as $user) {
+ if (stripos($user, $search) !== false) {
$result[] = $user;
}
}
@@ -119,6 +125,7 @@ class OC_User_Dummy extends OC_User_Backend {
/**
* check if a user exists
+ *
* @param string $uid the username
* @return boolean
*/
@@ -141,4 +148,12 @@ class OC_User_Dummy extends OC_User_Backend {
public function countUsers() {
return 0;
}
+
+ public function setDisplayName($uid, $displayName) {
+ $this->displayNames[$uid] = $displayName;
+ }
+
+ public function getDisplayName($uid) {
+ return isset($this->displayNames[$uid])? $this->displayNames[$uid]: $uid;
+ }
}
diff --git a/lib/private/user/interface.php b/lib/private/user/interface.php
index 4cdc47479a3..624d36e6fe5 100644
--- a/lib/private/user/interface.php
+++ b/lib/private/user/interface.php
@@ -25,11 +25,11 @@ interface OC_User_Interface {
/**
* Check if backend implements actions
- * @param $actions bitwise-or'ed actions
+ * @param int $actions bitwise-or'ed actions
* @return boolean
*
* Returns the supported actions as int to be
- * compared with OC_USER_BACKEND_CREATE_USER etc.
+ * compared with \OC_User_Backend::CREATE_USER etc.
*/
public function implementsActions($actions);
diff --git a/lib/private/user/manager.php b/lib/private/user/manager.php
index 5c155c27aba..0c01f957bd3 100644
--- a/lib/private/user/manager.php
+++ b/lib/private/user/manager.php
@@ -46,17 +46,17 @@ class Manager extends PublicEmitter implements IUserManager {
*/
public function __construct($config = null) {
$this->config = $config;
- $cachedUsers = $this->cachedUsers;
+ $cachedUsers = &$this->cachedUsers;
$this->listen('\OC\User', 'postDelete', function ($user) use (&$cachedUsers) {
- $i = array_search($user, $cachedUsers);
- if ($i !== false) {
- unset($cachedUsers[$i]);
- }
+ /** @var \OC\User\User $user */
+ unset($cachedUsers[$user->getUID()]);
});
$this->listen('\OC\User', 'postLogin', function ($user) {
+ /** @var \OC\User\User $user */
$user->updateLastLoginTimestamp();
});
$this->listen('\OC\User', 'postRememberedLogin', function ($user) {
+ /** @var \OC\User\User $user */
$user->updateLastLoginTimestamp();
});
}
@@ -134,20 +134,6 @@ class Manager extends PublicEmitter implements IUserManager {
return ($user !== null);
}
- /**
- * remove deleted user from cache
- *
- * @param string $uid
- * @return bool
- */
- public function delete($uid) {
- if (isset($this->cachedUsers[$uid])) {
- unset($this->cachedUsers[$uid]);
- return true;
- }
- return false;
- }
-
/**
* Check if the password is valid for the user
*
@@ -157,7 +143,7 @@ class Manager extends PublicEmitter implements IUserManager {
*/
public function checkPassword($loginname, $password) {
foreach ($this->backends as $backend) {
- if ($backend->implementsActions(\OC_USER_BACKEND_CHECK_PASSWORD)) {
+ if ($backend->implementsActions(\OC_User_Backend::CHECK_PASSWORD)) {
$uid = $backend->checkPassword($loginname, $password);
if ($uid !== false) {
return $this->getUserObject($uid, $backend);
@@ -260,7 +246,7 @@ class Manager extends PublicEmitter implements IUserManager {
$this->emit('\OC\User', 'preCreateUser', array($uid, $password));
foreach ($this->backends as $backend) {
- if ($backend->implementsActions(\OC_USER_BACKEND_CREATE_USER)) {
+ if ($backend->implementsActions(\OC_User_Backend::CREATE_USER)) {
$backend->createUser($uid, $password);
$user = $this->getUserObject($uid, $backend);
$this->emit('\OC\User', 'postCreateUser', array($user, $password));
@@ -278,7 +264,7 @@ class Manager extends PublicEmitter implements IUserManager {
public function countUsers() {
$userCountStatistics = array();
foreach ($this->backends as $backend) {
- if ($backend->implementsActions(\OC_USER_BACKEND_COUNT_USERS)) {
+ if ($backend->implementsActions(\OC_User_Backend::COUNT_USERS)) {
$backendusers = $backend->countUsers();
if($backendusers !== false) {
if(isset($userCountStatistics[get_class($backend)])) {
diff --git a/lib/private/user/session.php b/lib/private/user/session.php
index 5517e08a25d..94abaca3e76 100644
--- a/lib/private/user/session.php
+++ b/lib/private/user/session.php
@@ -88,15 +88,6 @@ class Session implements IUserSession, Emitter {
* @return \OCP\ISession
*/
public function getSession() {
- // fetch the deprecated \OC::$session if it changed for backwards compatibility
- if (isset(\OC::$session) && \OC::$session !== $this->session) {
- \OC::$server->getLogger()->warning(
- 'One of your installed apps still seems to use the deprecated '.
- '\OC::$session and has replaced it with a new instance. Please file a bug against it.'.
- 'Closing and replacing session in UserSession instance.'
- );
- $this->setSession(\OC::$session);
- }
return $this->session;
}
@@ -110,14 +101,7 @@ class Session implements IUserSession, Emitter {
$this->session->close();
}
$this->session = $session;
-
- // maintain deprecated \OC::$session
- if (\OC::$session !== $this->session) {
- if (\OC::$session instanceof \OCP\ISession) {
- \OC::$session->close();
- }
- \OC::$session = $session;
- }
+ $this->activeUser = null;
}
/**
@@ -195,7 +179,7 @@ class Session implements IUserSession, Emitter {
public function login($uid, $password) {
$this->manager->emit('\OC\User', 'preLogin', array($uid, $password));
$user = $this->manager->checkPassword($uid, $password);
- if($user !== false) {
+ if ($user !== false) {
if (!is_null($user)) {
if ($user->isEnabled()) {
$this->setUser($user);
@@ -221,7 +205,7 @@ class Session implements IUserSession, Emitter {
public function loginWithCookie($uid, $currentToken) {
$this->manager->emit('\OC\User', 'preRememberedLogin', array($uid));
$user = $this->manager->get($uid);
- if(is_null($user)) {
+ if (is_null($user)) {
// user does not exist
return false;
}
@@ -229,7 +213,7 @@ class Session implements IUserSession, Emitter {
// get stored tokens
$tokens = \OC_Preferences::getKeys($uid, 'login_token');
// test cookies token against stored tokens
- if(!in_array($currentToken, $tokens, true)) {
+ if (!in_array($currentToken, $tokens, true)) {
return false;
}
// replace successfully used token with a new one
@@ -252,6 +236,7 @@ class Session implements IUserSession, Emitter {
$this->setUser(null);
$this->setLoginName(null);
$this->unsetMagicInCookie();
+ $this->session->clear();
}
/**
@@ -275,13 +260,13 @@ class Session implements IUserSession, Emitter {
unset($_COOKIE["oc_username"]); //TODO: DI
unset($_COOKIE["oc_token"]);
unset($_COOKIE["oc_remember_login"]);
- setcookie('oc_username', '', time()-3600, \OC::$WEBROOT);
- setcookie('oc_token', '', time()-3600, \OC::$WEBROOT);
- setcookie('oc_remember_login', '', time()-3600, \OC::$WEBROOT);
+ setcookie('oc_username', '', time() - 3600, \OC::$WEBROOT);
+ setcookie('oc_token', '', time() - 3600, \OC::$WEBROOT);
+ setcookie('oc_remember_login', '', time() - 3600, \OC::$WEBROOT);
// old cookies might be stored under /webroot/ instead of /webroot
// and Firefox doesn't like it!
- setcookie('oc_username', '', time()-3600, \OC::$WEBROOT . '/');
- setcookie('oc_token', '', time()-3600, \OC::$WEBROOT . '/');
- setcookie('oc_remember_login', '', time()-3600, \OC::$WEBROOT . '/');
+ setcookie('oc_username', '', time() - 3600, \OC::$WEBROOT . '/');
+ setcookie('oc_token', '', time() - 3600, \OC::$WEBROOT . '/');
+ setcookie('oc_remember_login', '', time() - 3600, \OC::$WEBROOT . '/');
}
}
diff --git a/lib/private/user/user.php b/lib/private/user/user.php
index 993fb4c0c64..9ad2f5f0d3a 100644
--- a/lib/private/user/user.php
+++ b/lib/private/user/user.php
@@ -89,8 +89,17 @@ class User implements IUser {
*/
public function getDisplayName() {
if (!isset($this->displayName)) {
- if ($this->backend and $this->backend->implementsActions(OC_USER_BACKEND_GET_DISPLAYNAME)) {
- $this->displayName = $this->backend->getDisplayName($this->uid);
+ $displayName = '';
+ if ($this->backend and $this->backend->implementsActions(\OC_User_Backend::GET_DISPLAYNAME)) {
+ // get display name and strip whitespace from the beginning and end of it
+ $backendDisplayName = $this->backend->getDisplayName($this->uid);
+ if (is_string($backendDisplayName)) {
+ $displayName = trim($backendDisplayName);
+ }
+ }
+
+ if (!empty($displayName)) {
+ $this->displayName = $displayName;
} else {
$this->displayName = $this->uid;
}
@@ -105,7 +114,8 @@ class User implements IUser {
* @return bool
*/
public function setDisplayName($displayName) {
- if ($this->canChangeDisplayName()) {
+ $displayName = trim($displayName);
+ if ($this->backend->implementsActions(\OC_User_Backend::SET_DISPLAYNAME) && !empty($displayName)) {
$this->displayName = $displayName;
$result = $this->backend->setDisplayName($this->uid, $displayName);
return $result !== false;
@@ -160,7 +170,7 @@ class User implements IUser {
if ($this->emitter) {
$this->emitter->emit('\OC\User', 'preSetPassword', array($this, $password, $recoveryPassword));
}
- if ($this->backend->implementsActions(\OC_USER_BACKEND_SET_PASSWORD)) {
+ if ($this->backend->implementsActions(\OC_User_Backend::SET_PASSWORD)) {
$result = $this->backend->setPassword($this->uid, $password);
if ($this->emitter) {
$this->emitter->emit('\OC\User', 'postSetPassword', array($this, $password, $recoveryPassword));
@@ -178,7 +188,7 @@ class User implements IUser {
*/
public function getHome() {
if (!$this->home) {
- if ($this->backend->implementsActions(\OC_USER_BACKEND_GET_HOME) and $home = $this->backend->getHome($this->uid)) {
+ if ($this->backend->implementsActions(\OC_User_Backend::GET_HOME) and $home = $this->backend->getHome($this->uid)) {
$this->home = $home;
} elseif ($this->config) {
$this->home = $this->config->getSystemValue('datadirectory') . '/' . $this->uid;
@@ -195,7 +205,7 @@ class User implements IUser {
* @return bool
*/
public function canChangeAvatar() {
- if ($this->backend->implementsActions(\OC_USER_BACKEND_PROVIDE_AVATAR)) {
+ if ($this->backend->implementsActions(\OC_User_Backend::PROVIDE_AVATAR)) {
return $this->backend->canChangeAvatar($this->uid);
}
return true;
@@ -207,7 +217,7 @@ class User implements IUser {
* @return bool
*/
public function canChangePassword() {
- return $this->backend->implementsActions(\OC_USER_BACKEND_SET_PASSWORD);
+ return $this->backend->implementsActions(\OC_User_Backend::SET_PASSWORD);
}
/**
@@ -219,7 +229,7 @@ class User implements IUser {
if ($this->config and $this->config->getSystemValue('allow_user_to_change_display_name') === false) {
return false;
} else {
- return $this->backend->implementsActions(\OC_USER_BACKEND_SET_DISPLAYNAME);
+ return $this->backend->implementsActions(\OC_User_Backend::SET_DISPLAYNAME);
}
}
diff --git a/lib/private/util.php b/lib/private/util.php
old mode 100755
new mode 100644
index 304db827a1a..a18a4e44232
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -64,6 +64,8 @@ class OC_Util {
return false;
}
+ \OC::$server->getEventLogger()->start('setup_fs', 'Setup filesystem');
+
// If we are not forced to load a specific user we load the one that is logged in
if ($user == "" && OC_User::isLoggedIn()) {
$user = OC_User::getUser();
@@ -88,6 +90,7 @@ class OC_Util {
}
if ($user != '' && !OCP\User::userExists($user)) {
+ \OC::$server->getEventLogger()->end('setup_fs');
return false;
}
@@ -115,16 +118,6 @@ class OC_Util {
return $storage;
});
- // copy skeleton for local storage only
- if (!isset($objectStore)) {
- $userRoot = OC_User::getHome($user);
- $userDirectory = $userRoot . '/files';
- if (!is_dir($userDirectory)) {
- mkdir($userDirectory, 0755, true);
- OC_Util::copySkeleton($userDirectory);
- }
- }
-
$userDir = '/' . $user . '/files';
//jail the user into his "home" directory
@@ -133,8 +126,12 @@ class OC_Util {
$fileOperationProxy = new OC_FileProxy_FileOperations();
OC_FileProxy::register($fileOperationProxy);
+ //trigger creation of user home and /files folder
+ \OC::$server->getUserFolder($user);
+
OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $userDir));
}
+ \OC::$server->getEventLogger()->end('setup_fs');
return true;
}
@@ -208,33 +205,44 @@ class OC_Util {
}
/**
- * copies the user skeleton files into the fresh user home files
+ * copies the skeleton to the users /files
*
- * @param string $userDirectory
+ * @param \OC\User\User $user
+ * @param \OCP\Files\Folder $userDirectory
*/
- public static function copySkeleton($userDirectory) {
- $skeletonDirectory = OC_Config::getValue('skeletondirectory', \OC::$SERVERROOT . '/core/skeleton');
+ public static function copySkeleton(\OC\User\User $user, \OCP\Files\Folder $userDirectory) {
+
+ $skeletonDirectory = \OCP\Config::getSystemValue('skeletondirectory', \OC::$SERVERROOT . '/core/skeleton');
+
if (!empty($skeletonDirectory)) {
- OC_Util::copyr($skeletonDirectory, $userDirectory);
+ \OCP\Util::writeLog(
+ 'files_skeleton',
+ 'copying skeleton for '.$user->getUID().' from '.$skeletonDirectory.' to '.$userDirectory->getFullPath('/'),
+ \OCP\Util::DEBUG
+ );
+ self::copyr($skeletonDirectory, $userDirectory);
+ // update the file cache
+ $userDirectory->getStorage()->getScanner()->scan('', \OC\Files\Cache\Scanner::SCAN_RECURSIVE);
}
}
/**
- * copies a directory recursively
+ * copies a directory recursively by using streams
*
* @param string $source
- * @param string $target
+ * @param \OCP\Files\Folder $target
* @return void
*/
- public static function copyr($source, $target) {
+ public static function copyr($source, \OCP\Files\Folder $target) {
$dir = opendir($source);
- @mkdir($target);
while (false !== ($file = readdir($dir))) {
if (!\OC\Files\Filesystem::isIgnoredDir($file)) {
if (is_dir($source . '/' . $file)) {
- OC_Util::copyr($source . '/' . $file, $target . '/' . $file);
+ $child = $target->newFolder($file);
+ self::copyr($source . '/' . $file, $child);
} else {
- copy($source . '/' . $file, $target . '/' . $file);
+ $child = $target->newFile($file);
+ stream_copy_to_stream(fopen($source . '/' . $file,'r'), $child->fopen('w'));
}
}
}
@@ -323,52 +331,96 @@ class OC_Util {
}
/**
- * add a javascript file
+ * generates a path for JS/CSS files. If no application is provided it will create the path for core.
*
- * @param string $application
- * @param string|null $file filename
- * @return void
+ * @param $application application to get the files from
+ * @param $directory directory withing this application (css, js, vendor, etc)
+ * @param $file the file inside of the above folder
+ * @return string the path
*/
- public static function addScript($application, $file = null) {
+ private static function generatePath($application, $directory, $file) {
if (is_null($file)) {
$file = $application;
$application = "";
}
if (!empty($application)) {
- self::$scripts[] = "$application/js/$file";
+ return "$application/$directory/$file";
} else {
- self::$scripts[] = "js/$file";
+ return "$directory/$file";
+ }
+ }
+
+ /**
+ * add a javascript file
+ *
+ * @param string $application application id
+ * @param string|null $file filename
+ * @return void
+ */
+ public static function addScript($application, $file = null) {
+ self::$scripts[] = OC_Util::generatePath($application, 'js', $file);
+ }
+
+ /**
+ * add a javascript file from the vendor sub folder
+ *
+ * @param string $application application id
+ * @param string|null $file filename
+ * @return void
+ */
+ public static function addVendorScript($application, $file = null) {
+ self::$scripts[] = OC_Util::generatePath($application, 'vendor', $file);
+ }
+
+ /**
+ * add a translation JS file
+ *
+ * @param string $application application id
+ * @param string $languageCode language code, defaults to the current language
+ */
+ public static function addTranslations($application, $languageCode = null) {
+ if (is_null($languageCode)) {
+ $l = new \OC_L10N($application);
+ $languageCode = $l->getLanguageCode($application);
+ }
+ if (!empty($application)) {
+ self::$scripts[] = "$application/l10n/$languageCode";
+ } else {
+ self::$scripts[] = "l10n/$languageCode";
}
}
/**
* add a css file
*
- * @param string $application
+ * @param string $application application id
* @param string|null $file filename
* @return void
*/
public static function addStyle($application, $file = null) {
- if (is_null($file)) {
- $file = $application;
- $application = "";
- }
- if (!empty($application)) {
- self::$styles[] = "$application/css/$file";
- } else {
- self::$styles[] = "css/$file";
- }
+ self::$styles[] = OC_Util::generatePath($application, 'css', $file);
+ }
+
+ /**
+ * add a css file from the vendor sub folder
+ *
+ * @param string $application application id
+ * @param string|null $file filename
+ * @return void
+ */
+ public static function addVendorStyle($application, $file = null) {
+ self::$styles[] = OC_Util::generatePath($application, 'vendor', $file);
}
/**
* Add a custom element to the header
- *
+ * If $text is null then the element will be written as empty element.
+ * So use "" to get a closing tag.
* @param string $tag tag name of the element
* @param array $attributes array of attributes for the element
* @param string $text the text content for the element
- * @return void
*/
- public static function addHeader($tag, $attributes, $text = '') {
+ public static function addHeader($tag, $attributes, $text=null) {
self::$headers[] = array(
'tag' => $tag,
'attributes' => $attributes,
@@ -412,7 +464,7 @@ class OC_Util {
* @param \OCP\IConfig $config
* @return array arrays with error messages and hints
*/
- public static function checkServer($config) {
+ public static function checkServer(\OCP\IConfig $config) {
$l = \OC::$server->getL10N('lib');
$errors = array();
$CONFIG_DATADIRECTORY = $config->getSystemValue('datadirectory', OC::$SERVERROOT . '/data');
@@ -428,12 +480,9 @@ class OC_Util {
}
$webServerRestart = false;
- //check for database drivers
- if (!(is_callable('sqlite_open') or class_exists('SQLite3'))
- and !is_callable('mysql_connect')
- and !is_callable('pg_connect')
- and !is_callable('oci_connect')
- ) {
+ $setup = new OC_Setup($config);
+ $availableDatabases = $setup->getSupportedDatabases();
+ if (empty($availableDatabases)) {
$errors[] = array(
'error' => $l->t('No database drivers (sqlite, mysql, or postgresql) installed.'),
'hint' => '' //TODO: sane hint
@@ -513,6 +562,7 @@ class OC_Util {
'classes' => array(
'ZipArchive' => 'zip',
'DOMDocument' => 'dom',
+ 'XMLWriter' => 'XMLWriter'
),
'functions' => array(
'xml_parser_create' => 'libxml',
@@ -986,7 +1036,7 @@ class OC_Util {
* file in the data directory and trying to access via http
*/
public static function isHtaccessWorking() {
- if (!OC::$server->getConfig()->getSystemValue('check_for_working_htaccess', true)) {
+ if (\OC::$CLI || !OC::$server->getConfig()->getSystemValue('check_for_working_htaccess', true)) {
return true;
}
@@ -1286,7 +1336,7 @@ class OC_Util {
return false;
}
foreach (str_split($trimmed) as $char) {
- if (strpos(\OCP\FILENAME_INVALID_CHARS, $char) !== false) {
+ if (strpos(\OCP\Constants::FILENAME_INVALID_CHARS, $char) !== false) {
return false;
}
}
@@ -1301,7 +1351,7 @@ class OC_Util {
* @param \OCP\IConfig $config
* @return bool whether the core or any app needs an upgrade
*/
- public static function needUpgrade($config) {
+ public static function needUpgrade(\OCP\IConfig $config) {
if ($config->getSystemValue('installed', false)) {
$installedVersion = $config->getSystemValue('version', '0.0.0');
$currentVersion = implode('.', OC_Util::getVersion());
diff --git a/lib/private/vobject.php b/lib/private/vobject.php
index 94e3470ff08..9d121c17d79 100644
--- a/lib/private/vobject.php
+++ b/lib/private/vobject.php
@@ -72,7 +72,8 @@ class OC_VObject{
*/
public static function unescapeSemicolons($value) {
$array = explode(';', $value);
- for($i=0;$i
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\App;
+
+interface IAppManager {
+ /**
+ * Check if an app is enabled for user
+ *
+ * @param string $appId
+ * @param \OCP\IUser $user (optional) if not defined, the currently loggedin user will be used
+ * @return bool
+ */
+ public function isEnabledForUser($appId, $user = null);
+
+ /**
+ * Check if an app is installed in the instance
+ *
+ * @param string $appId
+ * @return bool
+ */
+ public function isInstalled($appId);
+
+ /**
+ * Enable an app for every user
+ *
+ * @param string $appId
+ */
+ public function enableApp($appId);
+
+ /**
+ * Enable an app only for specific groups
+ *
+ * @param string $appId
+ * @param \OCP\IGroup[] $groups
+ */
+ public function enableAppForGroups($appId, $groups);
+
+ /**
+ * Disable an app for every user
+ *
+ * @param string $appId
+ */
+ public function disableApp($appId);
+}
diff --git a/lib/public/appframework/controller.php b/lib/public/appframework/controller.php
index b22eb73343a..398304e6feb 100644
--- a/lib/public/appframework/controller.php
+++ b/lib/public/appframework/controller.php
@@ -29,6 +29,7 @@ namespace OCP\AppFramework;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Http\JSONResponse;
+use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;
@@ -63,8 +64,17 @@ abstract class Controller {
// default responders
$this->responders = array(
- 'json' => function ($response) {
- return new JSONResponse($response);
+ 'json' => function ($data) {
+ if ($data instanceof DataResponse) {
+ $response = new JSONResponse(
+ $data->getData(),
+ $data->getStatus()
+ );
+ $response->setHeaders($data->getHeaders());
+ return $response;
+ } else {
+ return new JSONResponse($data);
+ }
}
);
}
diff --git a/lib/public/appframework/http/dataresponse.php b/lib/public/appframework/http/dataresponse.php
new file mode 100644
index 00000000000..5c21de325e1
--- /dev/null
+++ b/lib/public/appframework/http/dataresponse.php
@@ -0,0 +1,79 @@
+
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see .
+ *
+ */
+
+/**
+ * Public interface of ownCloud for apps to use.
+ * AppFramework\HTTP\DataResponse class
+ */
+
+namespace OCP\AppFramework\Http;
+
+use OCP\AppFramework\Http;
+
+/**
+ * A generic DataResponse class that is used to return generic data responses
+ * for responders to transform
+ */
+class DataResponse extends Response {
+
+ /**
+ * response data
+ * @var array|object
+ */
+ protected $data;
+
+
+ /**
+ * @param array|object $data the object or array that should be transformed
+ * @param int $statusCode the Http status code, defaults to 200
+ * @param array $headers additional key value based headers
+ */
+ public function __construct($data=array(), $statusCode=Http::STATUS_OK,
+ array $headers=array()) {
+ $this->data = $data;
+ $this->setStatus($statusCode);
+ $this->setHeaders(array_merge($this->getHeaders(), $headers));
+ }
+
+
+ /**
+ * Sets values in the data json array
+ * @param array|object $data an array or object which will be transformed
+ * @return DataResponse Reference to this object
+ */
+ public function setData($data){
+ $this->data = $data;
+
+ return $this;
+ }
+
+
+ /**
+ * Used to get the set parameters
+ * @return array the data
+ */
+ public function getData(){
+ return $this->data;
+ }
+
+
+}
diff --git a/lib/public/appframework/http/jsonresponse.php b/lib/public/appframework/http/jsonresponse.php
index c6360e0a0f5..c9c8696323d 100644
--- a/lib/public/appframework/http/jsonresponse.php
+++ b/lib/public/appframework/http/jsonresponse.php
@@ -49,7 +49,7 @@ class JSONResponse extends Response {
public function __construct($data=array(), $statusCode=Http::STATUS_OK) {
$this->data = $data;
$this->setStatus($statusCode);
- $this->addHeader('Content-type', 'application/json; charset=utf-8');
+ $this->addHeader('Content-Type', 'application/json; charset=utf-8');
}
diff --git a/lib/public/appframework/http/response.php b/lib/public/appframework/http/response.php
index 20e936bb860..67e72cff6d9 100644
--- a/lib/public/appframework/http/response.php
+++ b/lib/public/appframework/http/response.php
@@ -45,9 +45,16 @@ class Response {
);
+ /**
+ * Cookies that will be need to be constructed as header
+ * @var array
+ */
+ private $cookies = array();
+
+
/**
* HTTP status code - defaults to STATUS OK
- * @var string
+ * @var int
*/
private $status = Http::STATUS_OK;
@@ -70,6 +77,7 @@ class Response {
* Caches the response
* @param int $cacheSeconds the amount of seconds that should be cached
* if 0 then caching will be disabled
+ * @return $this
*/
public function cacheFor($cacheSeconds) {
@@ -83,17 +91,72 @@ class Response {
return $this;
}
+ /**
+ * Adds a new cookie to the response
+ * @param string $name The name of the cookie
+ * @param string $value The value of the cookie
+ * @param \DateTime|null $expireDate Date on that the cookie should expire, if set
+ * to null cookie will be considered as session
+ * cookie.
+ * @return $this
+ */
+ public function addCookie($name, $value, \DateTime $expireDate = null) {
+ $this->cookies[$name] = array('value' => $value, 'expireDate' => $expireDate);
+ return $this;
+ }
+
+
+ /**
+ * Set the specified cookies
+ * @param array $cookies array('foo' => array('value' => 'bar', 'expire' => null))
+ * @return $this
+ */
+ public function setCookies(array $cookies) {
+ $this->cookies = $cookies;
+ return $this;
+ }
+
+
+ /**
+ * Invalidates the specified cookie
+ * @param string $name
+ * @return $this
+ */
+ public function invalidateCookie($name) {
+ $this->addCookie($name, 'expired', new \DateTime('1971-01-01 00:00'));
+ return $this;
+ }
+
+ /**
+ * Invalidates the specified cookies
+ * @param array $cookieNames array('foo', 'bar')
+ * @return $this
+ */
+ public function invalidateCookies(array $cookieNames) {
+ foreach($cookieNames as $cookieName) {
+ $this->invalidateCookie($cookieName);
+ }
+ return $this;
+ }
+
+ /**
+ * Returns the cookies
+ * @return array
+ */
+ public function getCookies() {
+ return $this->cookies;
+ }
/**
* Adds a new header to the response that will be called before the render
* function
* @param string $name The name of the HTTP header
* @param string $value The value, null will delete it
- * @return Response Reference to this object
+ * @return $this
*/
public function addHeader($name, $value) {
$name = trim($name); // always remove leading and trailing whitespace
- // to be able to reliably check for security
+ // to be able to reliably check for security
// headers
if(is_null($value)) {
@@ -106,6 +169,18 @@ class Response {
}
+ /**
+ * Set the headers
+ * @param array $headers value header pairs
+ * @return $this
+ */
+ public function setHeaders(array $headers) {
+ $this->headers = $headers;
+
+ return $this;
+ }
+
+
/**
* Returns the set headers
* @return array the headers
diff --git a/lib/public/appframework/iapi.php b/lib/public/appframework/iapi.php
index 9af251be850..ecbc0fd1900 100644
--- a/lib/public/appframework/iapi.php
+++ b/lib/public/appframework/iapi.php
@@ -37,6 +37,7 @@ interface IApi {
/**
* Gets the userid of the current user
* @return string the user id of the current user
+ * @deprecated Use \OC::$server->getUserSession()->getUser()->getUID()
*/
function getUserId();
diff --git a/lib/public/constants.php b/lib/public/constants.php
index 350646a0ac0..78cafd11847 100644
--- a/lib/public/constants.php
+++ b/lib/public/constants.php
@@ -26,15 +26,37 @@
namespace OCP;
-/**
- * CRUDS permissions.
- */
+/** @deprecated Use \OCP\Constants::PERMISSION_CREATE instead */
const PERMISSION_CREATE = 4;
+
+/** @deprecated Use \OCP\Constants::PERMISSION_READ instead */
const PERMISSION_READ = 1;
+
+/** @deprecated Use \OCP\Constants::PERMISSION_UPDATE instead */
const PERMISSION_UPDATE = 2;
+
+/** @deprecated Use \OCP\Constants::PERMISSION_DELETE instead */
const PERMISSION_DELETE = 8;
+
+/** @deprecated Use \OCP\Constants::PERMISSION_SHARE instead */
const PERMISSION_SHARE = 16;
+
+/** @deprecated Use \OCP\Constants::PERMISSION_ALL instead */
const PERMISSION_ALL = 31;
+/** @deprecated Use \OCP\Constants::FILENAME_INVALID_CHARS instead */
const FILENAME_INVALID_CHARS = "\\/<>:\"|?*\n";
+class Constants {
+ /**
+ * CRUDS permissions.
+ */
+ const PERMISSION_CREATE = 4;
+ const PERMISSION_READ = 1;
+ const PERMISSION_UPDATE = 2;
+ const PERMISSION_DELETE = 8;
+ const PERMISSION_SHARE = 16;
+ const PERMISSION_ALL = 31;
+
+ const FILENAME_INVALID_CHARS = "\\/<>:\"|?*\n";
+}
diff --git a/lib/public/db.php b/lib/public/db.php
index ba3a4724ce0..e8fc817106e 100644
--- a/lib/public/db.php
+++ b/lib/public/db.php
@@ -96,6 +96,13 @@ class DB {
\OC_DB::commit();
}
+ /**
+ * Rollback the database changes done during a transaction that is in progress
+ */
+ public static function rollback() {
+ \OC_DB::rollback();
+ }
+
/**
* Check if a result is an error, works with Doctrine
* @param mixed $result
diff --git a/lib/public/defaults.php b/lib/public/defaults.php
index 9af31245ff4..315cf547385 100644
--- a/lib/public/defaults.php
+++ b/lib/public/defaults.php
@@ -97,6 +97,14 @@ class Defaults {
return $this->defaults->getName();
}
+ /**
+ * name of your ownCloud instance containing HTML styles
+ * @return string
+ */
+ public function getHTMLName() {
+ return $this->defaults->getHTMLName();
+ }
+
/**
* Entity behind your onwCloud instance
* @return string
@@ -136,4 +144,12 @@ class Defaults {
public function getLongFooter() {
return $this->defaults->getLongFooter();
}
+
+ /**
+ * Returns the AppId for the App Store for the iOS Client
+ * @return string AppId
+ */
+ public function getiTunesAppId() {
+ return $this->defaults->getiTunesAppId();
+ }
}
diff --git a/lib/public/diagnostics/ievent.php b/lib/public/diagnostics/ievent.php
new file mode 100644
index 00000000000..a2a3461f68a
--- /dev/null
+++ b/lib/public/diagnostics/ievent.php
@@ -0,0 +1,36 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Diagnostics;
+
+interface IEvent {
+ /**
+ * @return string
+ */
+ public function getId();
+
+ /**
+ * @return string
+ */
+ public function getDescription();
+
+ /**
+ * @return float
+ */
+ public function getStart();
+
+ /**
+ * @return float
+ */
+ public function getEnd();
+
+ /**
+ * @return float
+ */
+ public function getDuration();
+}
diff --git a/lib/public/diagnostics/ieventlogger.php b/lib/public/diagnostics/ieventlogger.php
new file mode 100644
index 00000000000..cd9f2768ca3
--- /dev/null
+++ b/lib/public/diagnostics/ieventlogger.php
@@ -0,0 +1,39 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Diagnostics;
+
+interface IEventLogger {
+ /**
+ * Mark the start of an event
+ *
+ * @param string $id
+ * @param string $description
+ */
+ public function start($id, $description);
+
+ /**
+ * Mark the end of an event
+ *
+ * @param string $id
+ */
+ public function end($id);
+
+ /**
+ * @param string $id
+ * @param string $description
+ * @param float $start
+ * @param float $end
+ */
+ public function log($id, $description, $start, $end);
+
+ /**
+ * @return \OCP\Diagnostics\IEvent[]
+ */
+ public function getEvents();
+}
diff --git a/lib/public/diagnostics/iquery.php b/lib/public/diagnostics/iquery.php
new file mode 100644
index 00000000000..f1111e069bb
--- /dev/null
+++ b/lib/public/diagnostics/iquery.php
@@ -0,0 +1,26 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Diagnostics;
+
+interface IQuery {
+ /**
+ * @return string
+ */
+ public function getSql();
+
+ /**
+ * @return array
+ */
+ public function getParams();
+
+ /**
+ * @return float
+ */
+ public function getDuration();
+}
diff --git a/lib/public/diagnostics/iquerylogger.php b/lib/public/diagnostics/iquerylogger.php
new file mode 100644
index 00000000000..0fba9eb8b10
--- /dev/null
+++ b/lib/public/diagnostics/iquerylogger.php
@@ -0,0 +1,27 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Diagnostics;
+
+use Doctrine\DBAL\Logging\SQLLogger;
+
+interface IQueryLogger extends SQLLogger {
+ /**
+ * @param string $sql
+ * @param array $params
+ * @param array $types
+ */
+ public function startQuery($sql, array $params = null, array $types = null);
+
+ public function stopQuery();
+
+ /**
+ * @return \OCP\Diagnostics\IQuery[]
+ */
+ public function getQueries();
+}
diff --git a/lib/public/files/fileinfo.php b/lib/public/files/fileinfo.php
index ec81a541564..3a407ed67ca 100644
--- a/lib/public/files/fileinfo.php
+++ b/lib/public/files/fileinfo.php
@@ -103,12 +103,12 @@ interface FileInfo {
/**
* Get the permissions of the file or folder as bitmasked combination of the following constants
- * \OCP\PERMISSION_CREATE
- * \OCP\PERMISSION_READ
- * \OCP\PERMISSION_UPDATE
- * \OCP\PERMISSION_DELETE
- * \OCP\PERMISSION_SHARE
- * \OCP\PERMISSION_ALL
+ * \OCP\Constants::PERMISSION_CREATE
+ * \OCP\Constants::PERMISSION_READ
+ * \OCP\Constants::PERMISSION_UPDATE
+ * \OCP\Constants::PERMISSION_DELETE
+ * \OCP\Constants::PERMISSION_SHARE
+ * \OCP\Constants::PERMISSION_ALL
*
* @return int
*/
diff --git a/lib/public/files/ihomestorage.php b/lib/public/files/ihomestorage.php
new file mode 100644
index 00000000000..717ef946750
--- /dev/null
+++ b/lib/public/files/ihomestorage.php
@@ -0,0 +1,24 @@
+ 0, 'name' = 'Tag', 'owner' = 'User', 'type' => 'tagtype']
+ *
+ * @param string $id The ID of the tag that is going to be mapped
+ * @return array|false
+ */
+ public function getTag($id);
+
/**
* Get the tags for a specific user.
*
@@ -84,6 +93,16 @@ interface ITags {
*/
public function hasTag($name);
+ /**
+ * Checks whether a tag is saved for the given user,
+ * disregarding the ones shared with him or her.
+ *
+ * @param string $name The tag name to check for.
+ * @param string $user The user whose tags are to be checked.
+ * @return bool
+ */
+ public function userHasTag($name, $user);
+
/**
* Add a new tag.
*
@@ -95,7 +114,7 @@ interface ITags {
/**
* Rename tag.
*
- * @param string $from The name of the existing tag
+ * @param string|integer $from The name or ID of the existing tag
* @param string $to The new name of the tag.
* @return bool
*/
@@ -162,11 +181,11 @@ interface ITags {
public function unTag($objid, $tag);
/**
- * Delete tags from the
+ * Delete tags from the database
*
- * @param string[] $names An array of tags to delete
+ * @param string[]|integer[] $names An array of tags (names or IDs) to delete
* @return bool Returns false on error
*/
public function delete($names);
-}
\ No newline at end of file
+}
diff --git a/lib/public/itempmanager.php b/lib/public/itempmanager.php
new file mode 100644
index 00000000000..ebd94978038
--- /dev/null
+++ b/lib/public/itempmanager.php
@@ -0,0 +1,38 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP;
+
+interface ITempManager {
+ /**
+ * Create a temporary file and return the path
+ *
+ * @param string $postFix
+ * @return string
+ */
+ public function getTemporaryFile($postFix = '');
+
+ /**
+ * Create a temporary folder and return the path
+ *
+ * @param string $postFix
+ * @return string
+ */
+ public function getTemporaryFolder($postFix = '');
+
+ /**
+ * Remove the temporary files and folders generated during this request
+ */
+ public function clean();
+
+ /**
+ * Remove old temporary files and folders that were failed to be cleaned
+ */
+ public function cleanOld();
+}
diff --git a/lib/public/iurlgenerator.php b/lib/public/iurlgenerator.php
index dbbd8a3bb63..fa817c10ea5 100644
--- a/lib/public/iurlgenerator.php
+++ b/lib/public/iurlgenerator.php
@@ -69,8 +69,14 @@ interface IURLGenerator {
/**
* Makes an URL absolute
- * @param string $url the url in the owncloud host
+ * @param string $url the url in the ownCloud host
* @return string the absolute version of the url
*/
public function getAbsoluteURL($url);
+
+ /**
+ * @param string $key
+ * @return string url to the online documentation
+ */
+ public function linkToDocs($key);
}
diff --git a/lib/public/security/ihasher.php b/lib/public/security/ihasher.php
new file mode 100644
index 00000000000..75900fb55ac
--- /dev/null
+++ b/lib/public/security/ihasher.php
@@ -0,0 +1,48 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Security;
+
+/**
+ * Class Hasher provides some basic hashing functions. Furthermore, it supports legacy hashes
+ * used by previous versions of ownCloud and helps migrating those hashes to newer ones.
+ *
+ * The hashes generated by this class are prefixed (version|hash) with a version parameter to allow possible
+ * updates in the future.
+ * Possible versions:
+ * - 1 (Initial version)
+ *
+ * Usage:
+ * // Hashing a message
+ * $hash = \OC::$server->getHasher()->hash('MessageToHash');
+ * // Verifying a message - $newHash will contain the newly calculated hash
+ * $newHash = null;
+ * var_dump(\OC::$server->getHasher()->verify('a', '86f7e437faa5a7fce15d1ddcb9eaeaea377667b8', $newHash));
+ * var_dump($newHash);
+ *
+ * @package OCP\Security
+ */
+interface IHasher {
+ /**
+ * Hashes a message using PHP's `password_hash` functionality.
+ * Please note that the size of the returned string is not guaranteed
+ * and can be up to 255 characters.
+ *
+ * @param string $message Message to generate hash from
+ * @return string Hash of the message with appended version parameter
+ */
+ public function hash($message);
+
+ /**
+ * @param string $message Message to verify
+ * @param string $hash Assumed hash of the message
+ * @param null|string &$newHash Reference will contain the updated hash if necessary. Update the existing hash with this one.
+ * @return bool Whether $hash is a valid hash of $message
+ */
+ public function verify($message, $hash, &$newHash = null);
+}
diff --git a/lib/public/share.php b/lib/public/share.php
index 449d1fa211e..b3ece8fab94 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -125,11 +125,12 @@ class Share extends \OC\Share\Constants {
* Get the item of item type shared with a given user by source
* @param string $itemType
* @param string $itemSource
- * @param string $user User user to whom the item was shared
+ * @param string $user User to whom the item was shared
+ * @param string $owner Owner of the share
* @return array Return list of items with file_target, permissions and expiration
*/
- public static function getItemSharedWithUser($itemType, $itemSource, $user) {
- return \OC\Share\Share::getItemSharedWithUser($itemType, $itemSource, $user);
+ public static function getItemSharedWithUser($itemType, $itemSource, $user, $owner = null) {
+ return \OC\Share\Share::getItemSharedWithUser($itemType, $itemSource, $user, $owner);
}
/**
@@ -341,86 +342,3 @@ class Share extends \OC\Share\Constants {
return \OC\Share\Share::isResharingAllowed();
}
}
-
-/**
- * Interface that apps must implement to share content.
- */
-interface Share_Backend {
-
- /**
- * Check if this $itemSource exist for the user
- * @param string $itemSource
- * @param string $uidOwner Owner of the item
- * @return boolean|null Source
- *
- * Return false if the item does not exist for the user
- */
- public function isValidSource($itemSource, $uidOwner);
-
- /**
- * Get a unique name of the item for the specified user
- * @param string $itemSource
- * @param string|false $shareWith User the item is being shared with
- * @param array|null $exclude List of similar item names already existing as shared items @deprecated since version OC7
- * @return string Target name
- *
- * This function needs to verify that the user does not already have an item with this name.
- * If it does generate a new name e.g. name_#
- */
- public function generateTarget($itemSource, $shareWith, $exclude = null);
-
- /**
- * Converts the shared item sources back into the item in the specified format
- * @param array $items Shared items
- * @param int $format
- * @return TODO
- *
- * The items array is a 3-dimensional array with the item_source as the
- * first key and the share id as the second key to an array with the share
- * info.
- *
- * The key/value pairs included in the share info depend on the function originally called:
- * If called by getItem(s)Shared: id, item_type, item, item_source,
- * share_type, share_with, permissions, stime, file_source
- *
- * If called by getItem(s)SharedWith: id, item_type, item, item_source,
- * item_target, share_type, share_with, permissions, stime, file_source,
- * file_target
- *
- * This function allows the backend to control the output of shared items with custom formats.
- * It is only called through calls to the public getItem(s)Shared(With) functions.
- */
- public function formatItems($items, $format, $parameters = null);
-
-}
-
-/**
- * Interface for share backends that share content that is dependent on files.
- * Extends the Share_Backend interface.
- */
-interface Share_Backend_File_Dependent extends Share_Backend {
-
- /**
- * Get the file path of the item
- * @param string $itemSource
- * @param string $uidOwner User that is the owner of shared item
- * @return string|false
- */
- public function getFilePath($itemSource, $uidOwner);
-
-}
-
-/**
- * Interface for collections of of items implemented by another share backend.
- * Extends the Share_Backend interface.
- */
-interface Share_Backend_Collection extends Share_Backend {
-
- /**
- * Get the sources of the children of the item
- * @param string $itemSource
- * @return array Returns an array of children each inside an array with the keys: source, target, and file_path if applicable
- */
- public function getChildren($itemSource);
-
-}
diff --git a/lib/public/share_backend.php b/lib/public/share_backend.php
new file mode 100644
index 00000000000..6ab234aecf0
--- /dev/null
+++ b/lib/public/share_backend.php
@@ -0,0 +1,68 @@
+
+ * 2014 Bjoern Schiessle
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+// use OCP namespace for all classes that are considered public.
+// This means that they should be used by apps instead of the internal ownCloud classes
+namespace OCP;
+
+/**
+ * Interface that apps must implement to share content.
+ */
+interface Share_Backend {
+
+ /**
+ * Check if this $itemSource exist for the user
+ * @param string $itemSource
+ * @param string $uidOwner Owner of the item
+ * @return boolean|null Source
+ *
+ * Return false if the item does not exist for the user
+ */
+ public function isValidSource($itemSource, $uidOwner);
+
+ /**
+ * Get a unique name of the item for the specified user
+ * @param string $itemSource
+ * @param string|false $shareWith User the item is being shared with
+ * @param array|null $exclude List of similar item names already existing as shared items @deprecated since version OC7
+ * @return string Target name
+ *
+ * This function needs to verify that the user does not already have an item with this name.
+ * If it does generate a new name e.g. name_#
+ */
+ public function generateTarget($itemSource, $shareWith, $exclude = null);
+
+ /**
+ * Converts the shared item sources back into the item in the specified format
+ * @param array $items Shared items
+ * @param int $format
+ * @return TODO
+ *
+ * The items array is a 3-dimensional array with the item_source as the
+ * first key and the share id as the second key to an array with the share
+ * info.
+ *
+ * The key/value pairs included in the share info depend on the function originally called:
+ * If called by getItem(s)Shared: id, item_type, item, item_source,
+ * share_type, share_with, permissions, stime, file_source
+ *
+ * If called by getItem(s)SharedWith: id, item_type, item, item_source,
+ * item_target, share_type, share_with, permissions, stime, file_source,
+ * file_target
+ *
+ * This function allows the backend to control the output of shared items with custom formats.
+ * It is only called through calls to the public getItem(s)Shared(With) functions.
+ */
+ public function formatItems($items, $format, $parameters = null);
+
+}
diff --git a/lib/public/share_backend_collection.php b/lib/public/share_backend_collection.php
new file mode 100644
index 00000000000..0292222c74f
--- /dev/null
+++ b/lib/public/share_backend_collection.php
@@ -0,0 +1,29 @@
+
+ * 2014 Bjoern Schiessle
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+// use OCP namespace for all classes that are considered public.
+// This means that they should be used by apps instead of the internal ownCloud classes
+namespace OCP;
+
+/**
+ * Interface for collections of of items implemented by another share backend.
+ * Extends the Share_Backend interface.
+ */
+interface Share_Backend_Collection extends Share_Backend {
+ /**
+ * Get the sources of the children of the item
+ * @param string $itemSource
+ * @return array Returns an array of children each inside an array with the keys: source, target, and file_path if applicable
+ */
+ public function getChildren($itemSource);
+}
diff --git a/lib/public/share_backend_file_dependent.php b/lib/public/share_backend_file_dependent.php
new file mode 100644
index 00000000000..b666e504008
--- /dev/null
+++ b/lib/public/share_backend_file_dependent.php
@@ -0,0 +1,31 @@
+
+ * 2014 Bjoern Schiessle
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+// use OCP namespace for all classes that are considered public.
+// This means that they should be used by apps instead of the internal ownCloud classes
+namespace OCP;
+
+/**
+ * Interface for share backends that share content that is dependent on files.
+ * Extends the Share_Backend interface.
+ */
+interface Share_Backend_File_Dependent extends Share_Backend {
+ /**
+ * Get the file path of the item
+ * @param string $itemSource
+ * @param string $uidOwner User that is the owner of shared item
+ * @return string|false
+ */
+ public function getFilePath($itemSource, $uidOwner);
+
+}
diff --git a/lib/public/template.php b/lib/public/template.php
index 2e265bb5e8e..93af794ba62 100644
--- a/lib/public/template.php
+++ b/lib/public/template.php
@@ -38,6 +38,7 @@ namespace OCP;
* @return string to the image
*
* @see OC_Helper::imagePath
+ * @deprecated Use \OCP\Template::image_path() instead
*/
function image_path( $app, $image ) {
return(\image_path( $app, $image ));
@@ -48,6 +49,7 @@ function image_path( $app, $image ) {
* Make OC_Helper::mimetypeIcon available as a simple function
* @param string $mimetype
* @return string to the image of this file type.
+ * @deprecated Use \OCP\Template::mimetype_icon() instead
*/
function mimetype_icon( $mimetype ) {
return(\mimetype_icon( $mimetype ));
@@ -57,6 +59,7 @@ function mimetype_icon( $mimetype ) {
* Make preview_icon available as a simple function
* @param string $path path to file
* @return string to the preview of the image
+ * @deprecated Use \OCP\Template::preview_icon() instead
*/
function preview_icon( $path ) {
return(\preview_icon( $path ));
@@ -68,6 +71,7 @@ function preview_icon( $path ) {
* @param string $path of file
* @param string $token
* @return string link to the preview
+ * @deprecated Use \OCP\Template::publicPreview_icon() instead
*/
function publicPreview_icon ( $path, $token ) {
return(\publicPreview_icon( $path, $token ));
@@ -76,8 +80,9 @@ function publicPreview_icon ( $path, $token ) {
/**
* Make OC_Helper::humanFileSize available as a simple function
* Example: 2048 to 2 kB.
- * @param int $size in bytes
+ * @param int $bytes in bytes
* @return string size as string
+ * @deprecated Use \OCP\Template::human_file_size() instead
*/
function human_file_size( $bytes ) {
return(\human_file_size( $bytes ));
@@ -88,7 +93,8 @@ function human_file_size( $bytes ) {
* Return the relative date in relation to today. Returns something like "last hour" or "two month ago"
* @param int $timestamp unix timestamp
* @param boolean $dateOnly
- * @return OC_L10N_String human readable interpretation of the timestamp
+ * @return \OC_L10N_String human readable interpretation of the timestamp
+ * @deprecated Use \OCP\Template::relative_modified_date() instead
*/
function relative_modified_date( $timestamp, $dateOnly = false ) {
return(\relative_modified_date($timestamp, null, $dateOnly));
@@ -97,9 +103,9 @@ function relative_modified_date( $timestamp, $dateOnly = false ) {
/**
* Return a human readable outout for a file size.
- * @deprecated use human_file_size() instead
* @param integer $bytes size of a file in byte
* @return string human readable interpretation of a file size
+ * @deprecated Use \OCP\Template::human_file_size() instead
*/
function simple_file_size($bytes) {
return(\human_file_size($bytes));
@@ -112,6 +118,7 @@ function simple_file_size($bytes) {
* @param mixed $selected which one is selected?
* @param array $params the parameters
* @return string html options
+ * @deprecated Use \OCP\Template::html_select_options() instead
*/
function html_select_options($options, $selected, $params=array()) {
return(\html_select_options($options, $selected, $params));
@@ -123,5 +130,83 @@ function html_select_options($options, $selected, $params=array()) {
* specific templates, add data and generate the html code
*/
class Template extends \OC_Template {
+ /**
+ * Make OC_Helper::imagePath available as a simple function
+ *
+ * @see OC_Helper::imagePath
+ *
+ * @param string $app
+ * @param string $image
+ * @return string to the image
+ */
+ public static function image_path($app, $image) {
+ return \image_path($app, $image);
+ }
+
+ /**
+ * Make OC_Helper::mimetypeIcon available as a simple function
+ *
+ * @param string $mimetype
+ * @return string to the image of this file type.
+ */
+ public static function mimetype_icon($mimetype) {
+ return \mimetype_icon($mimetype);
+ }
+
+ /**
+ * Make preview_icon available as a simple function
+ *
+ * @param string $path path to file
+ * @return string to the preview of the image
+ */
+ public static function preview_icon($path) {
+ return \preview_icon($path);
+ }
+
+ /**
+ * Make publicpreview_icon available as a simple function
+ * Returns the path to the preview of the image.
+ *
+ * @param string $path of file
+ * @param string $token
+ * @return string link to the preview
+ */
+ public static function publicPreview_icon($path, $token) {
+ return \publicPreview_icon($path, $token);
+ }
+
+ /**
+ * Make OC_Helper::humanFileSize available as a simple function
+ * Example: 2048 to 2 kB.
+ *
+ * @param int $bytes in bytes
+ * @return string size as string
+ */
+ public static function human_file_size($bytes) {
+ return \human_file_size($bytes);
+ }
+
+ /**
+ * Return the relative date in relation to today. Returns something like "last hour" or "two month ago"
+ *
+ * @param int $timestamp unix timestamp
+ * @param boolean $dateOnly
+ * @return \OC_L10N_String human readable interpretation of the timestamp
+ */
+ public static function relative_modified_date($timestamp, $dateOnly = false) {
+ return \relative_modified_date($timestamp, null, $dateOnly);
+ }
+
+ /**
+ * Generate html code for an options block.
+ *
+ * @param array $options the options
+ * @param mixed $selected which one is selected?
+ * @param array $params the parameters
+ * @return string html options
+ */
+ public static function html_select_options($options, $selected, $params=array()) {
+ return \html_select_options($options, $selected, $params);
+ }
}
diff --git a/lib/public/user.php b/lib/public/user.php
index 925410d37d5..e9835620433 100644
--- a/lib/public/user.php
+++ b/lib/public/user.php
@@ -38,6 +38,7 @@ class User {
/**
* Get the user id of the user currently logged in.
* @return string uid or false
+ * @deprecated Use \OC::$server->getUserSession()->getUser()->getUID()
*/
public static function getUser() {
return \OC_User::getUser();
@@ -94,6 +95,7 @@ class User {
/**
* Logs the user out including all the session data
* Logout, destroys session
+ * @deprecated Use \OC::$server->getUserSession()->logout();
*/
public static function logout() {
\OC_User::logout();
@@ -106,6 +108,7 @@ class User {
* @return string|false username on success, false otherwise
*
* Check if the password is correct without logging in the user
+ * @deprecated Use \OC::$server->getUserManager()->checkPassword();
*/
public static function checkPassword( $uid, $password ) {
return \OC_User::checkPassword( $uid, $password );
diff --git a/lib/public/util.php b/lib/public/util.php
index 4c4a84af240..793a16c4d84 100644
--- a/lib/public/util.php
+++ b/lib/public/util.php
@@ -136,14 +136,25 @@ class Util {
\OC_Util::addScript( $application, $file );
}
+ /**
+ * Add a translation JS file
+ * @param string $application application id
+ * @param string $languageCode language code, defaults to the current locale
+ */
+ public static function addTranslations($application, $languageCode = null) {
+ \OC_Util::addTranslations($application, $languageCode);
+ }
+
/**
* Add a custom element to the header
+ * If $text is null then the element will be written as empty element.
+ * So use "" to get a closing tag.
* @param string $tag tag name of the element
* @param array $attributes array of attributes for the element
* @param string $text the text content for the element
*/
- public static function addHeader( $tag, $attributes, $text='') {
- \OC_Util::addHeader( $tag, $attributes, $text );
+ public static function addHeader($tag, $attributes, $text=null) {
+ \OC_Util::addHeader($tag, $attributes, $text);
}
/**
@@ -497,8 +508,8 @@ class Util {
/**
* Compare two strings to provide a natural sort
- * @param $a first string to compare
- * @param $b second string to compare
+ * @param string $a first string to compare
+ * @param string $b second string to compare
* @return -1 if $b comes before $a, 1 if $a comes before $b
* or 0 if the strings are identical
*/
diff --git a/lib/repair/assetcache.php b/lib/repair/assetcache.php
new file mode 100644
index 00000000000..d7677a10d11
--- /dev/null
+++ b/lib/repair/assetcache.php
@@ -0,0 +1,30 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Repair;
+
+use Doctrine\DBAL\Platforms\MySqlPlatform;
+use OC\Hooks\BasicEmitter;
+
+class AssetCache extends BasicEmitter implements \OC\RepairStep {
+
+ public function getName() {
+ return 'Clear asset cache after upgrade';
+ }
+
+ public function run() {
+ if (!\OC_Template::isAssetPipelineEnabled()) {
+ $this->emit('\OC\Repair', 'info', array('Asset pipeline disabled -> nothing to do'));
+ return;
+ }
+ $assetDir = \OC::$SERVERROOT . '/assets';
+ \OC_Helper::rmdirr($assetDir, false);
+ $this->emit('\OC\Repair', 'info', array('Asset cache cleared.'));
+ }
+}
+
diff --git a/lib/repair/repairconfig.php b/lib/repair/repairconfig.php
index e09d8e8fe7a..e9b322da826 100644
--- a/lib/repair/repairconfig.php
+++ b/lib/repair/repairconfig.php
@@ -12,8 +12,16 @@ use OC\Hooks\BasicEmitter;
use OC\RepairStep;
use Sabre\DAV\Exception;
+/**
+ * Class RepairConfig
+ *
+ * @package OC\Repair
+ */
class RepairConfig extends BasicEmitter implements RepairStep {
+ /**
+ * @return string
+ */
public function getName() {
return 'Repair config';
}
@@ -23,6 +31,7 @@ class RepairConfig extends BasicEmitter implements RepairStep {
*/
public function run() {
$this->addSecret();
+ $this->removePortsFromTrustedDomains();
}
/**
@@ -34,4 +43,24 @@ class RepairConfig extends BasicEmitter implements RepairStep {
\OC::$server->getConfig()->setSystemValue('secret', $secret);
}
}
+
+
+ /**
+ * Remove ports from existing trusted domains in config.php
+ */
+ private function removePortsFromTrustedDomains() {
+ $trustedDomains = \OC::$server->getConfig()->getSystemValue('trusted_domains', array());
+ $newTrustedDomains = array();
+ foreach($trustedDomains as $domain) {
+ $pos = strrpos($domain, ':');
+ if ($pos !== false) {
+ $port = substr($domain, $pos + 1);
+ if (is_numeric($port)) {
+ $domain = substr($domain, 0, $pos);
+ }
+ }
+ $newTrustedDomains[] = $domain;
+ }
+ \OC::$server->getConfig()->setSystemValue('trusted_domains', $newTrustedDomains);
+ }
}
diff --git a/occ b/occ
index e2b71fe4abc..7e47585b01e 100755
--- a/occ
+++ b/occ
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
diff --git a/public.php b/public.php
index 0e04db66da7..c5c227ef460 100644
--- a/public.php
+++ b/public.php
@@ -37,7 +37,9 @@ try {
OC_App::loadApps(array('authentication'));
OC_App::loadApps(array('filesystem', 'logging'));
- OC_Util::checkAppEnabled($app);
+ if (!\OC::$server->getAppManager()->isInstalled($app)) {
+ throw new Exception('App not installed: ' . $app);
+ }
OC_App::loadApp($app);
OC_User::setIncognitoMode(true);
diff --git a/remote.php b/remote.php
index d854b1d65a6..7993566afec 100644
--- a/remote.php
+++ b/remote.php
@@ -43,7 +43,9 @@ try {
$file = OC::$SERVERROOT .'/'. $file;
break;
default:
- OC_Util::checkAppEnabled($app);
+ if (!\OC::$server->getAppManager()->isInstalled($app)) {
+ throw new Exception('App not installed: ' . $app);
+ }
OC_App::loadApp($app);
$file = OC_App::getAppPath($app) .'/'. $parts[1];
break;
diff --git a/search/ajax/search.php b/search/ajax/search.php
index 546fccc644f..84a5a760cad 100644
--- a/search/ajax/search.php
+++ b/search/ajax/search.php
@@ -23,6 +23,7 @@
// Check if we are a user
OC_JSON::checkLoggedIn();
+\OC::$server->getSession()->close();
$query=(isset($_GET['query']))?$_GET['query']:'';
if($query) {
diff --git a/search/js/result.js b/search/js/result.js
index 13be0b552bf..fe84aecde3e 100644
--- a/search/js/result.js
+++ b/search/js/result.js
@@ -1,3 +1,20 @@
+/*
+ * Copyright (c) 2014
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+//translations for result type ids, can be extended by apps
+OC.search.resultTypes={
+ file: t('core','File'),
+ folder: t('core','Folder'),
+ image: t('core','Image'),
+ audio: t('core','Audio')
+};
OC.search.catagorizeResults=function(results){
var types={};
for(var i=0;i 3;
+$entries = OC_Log_Owncloud::getEntries(3);
+$entriesRemaining = count(OC_Log_Owncloud::getEntries(4)) > 3;
$config = \OC::$server->getConfig();
+$appConfig = \OC::$server->getAppConfig();
// Should we display sendmail as an option?
-$tmpl->assign('sendmail_is_available', (bool) findBinaryPath('sendmail'));
+$template->assign('sendmail_is_available', (bool) \OC_Helper::findBinaryPath('sendmail'));
-$tmpl->assign('loglevel', OC_Config::getValue( "loglevel", 2 ));
-$tmpl->assign('mail_domain', OC_Config::getValue( "mail_domain", '' ));
-$tmpl->assign('mail_from_address', OC_Config::getValue( "mail_from_address", '' ));
-$tmpl->assign('mail_smtpmode', OC_Config::getValue( "mail_smtpmode", '' ));
-$tmpl->assign('mail_smtpsecure', OC_Config::getValue( "mail_smtpsecure", '' ));
-$tmpl->assign('mail_smtphost', OC_Config::getValue( "mail_smtphost", '' ));
-$tmpl->assign('mail_smtpport', OC_Config::getValue( "mail_smtpport", '' ));
-$tmpl->assign('mail_smtpauthtype', OC_Config::getValue( "mail_smtpauthtype", '' ));
-$tmpl->assign('mail_smtpauth', OC_Config::getValue( "mail_smtpauth", false ));
-$tmpl->assign('mail_smtpname', OC_Config::getValue( "mail_smtpname", '' ));
-$tmpl->assign('mail_smtppassword', OC_Config::getValue( "mail_smtppassword", '' ));
-$tmpl->assign('entries', $entries);
-$tmpl->assign('entriesremain', $entriesremain);
-$tmpl->assign('htaccessworking', $htaccessworking);
-$tmpl->assign('isLocaleWorking', OC_Util::isSetLocaleWorking());
-$tmpl->assign('isPhpCharSetUtf8', OC_Util::isPhpCharSetUtf8());
-$tmpl->assign('isAnnotationsWorking', OC_Util::isAnnotationsWorking());
-$tmpl->assign('has_fileinfo', OC_Util::fileInfoLoaded());
-$tmpl->assign('old_php', OC_Util::isPHPoutdated());
-$tmpl->assign('backgroundjobs_mode', OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax'));
-$tmpl->assign('cron_log', OC_Config::getValue('cron_log', true));
-$tmpl->assign('lastcron', OC_Appconfig::getValue('core', 'lastcron', false));
-$tmpl->assign('shareAPIEnabled', OC_Appconfig::getValue('core', 'shareapi_enabled', 'yes'));
-$tmpl->assign('shareDefaultExpireDateSet', OC_Appconfig::getValue('core', 'shareapi_default_expire_date', 'no'));
-$tmpl->assign('shareExpireAfterNDays', OC_Appconfig::getValue('core', 'shareapi_expire_after_n_days', '7'));
-$tmpl->assign('shareEnforceExpireDate', OC_Appconfig::getValue('core', 'shareapi_enforce_expire_date', 'no'));
-$excludeGroups = OC_Appconfig::getValue('core', 'shareapi_exclude_groups', 'no') === 'yes' ? true : false;
-$tmpl->assign('shareExcludeGroups', $excludeGroups);
-$excludedGroupsList = OC_Appconfig::getValue('core', 'shareapi_exclude_groups_list', '');
+$template->assign('loglevel', $config->getSystemValue("loglevel", 2));
+$template->assign('mail_domain', $config->getSystemValue("mail_domain", ''));
+$template->assign('mail_from_address', $config->getSystemValue("mail_from_address", ''));
+$template->assign('mail_smtpmode', $config->getSystemValue("mail_smtpmode", ''));
+$template->assign('mail_smtpsecure', $config->getSystemValue("mail_smtpsecure", ''));
+$template->assign('mail_smtphost', $config->getSystemValue("mail_smtphost", ''));
+$template->assign('mail_smtpport', $config->getSystemValue("mail_smtpport", ''));
+$template->assign('mail_smtpauthtype', $config->getSystemValue("mail_smtpauthtype", ''));
+$template->assign('mail_smtpauth', $config->getSystemValue("mail_smtpauth", false));
+$template->assign('mail_smtpname', $config->getSystemValue("mail_smtpname", ''));
+$template->assign('mail_smtppassword', $config->getSystemValue("mail_smtppassword", ''));
+$template->assign('entries', $entries);
+$template->assign('entriesremain', $entriesRemaining);
+$template->assign('htaccessworking', $htAccessWorking);
+$template->assign('readOnlyConfigEnabled', OC_Helper::isReadOnlyConfigEnabled());
+$template->assign('isLocaleWorking', OC_Util::isSetLocaleWorking());
+$template->assign('isPhpCharSetUtf8', OC_Util::isPhpCharSetUtf8());
+$template->assign('isAnnotationsWorking', OC_Util::isAnnotationsWorking());
+$template->assign('has_fileinfo', OC_Util::fileInfoLoaded());
+$template->assign('old_php', OC_Util::isPHPoutdated());
+$template->assign('backgroundjobs_mode', $appConfig->getValue('core', 'backgroundjobs_mode', 'ajax'));
+$template->assign('cron_log', $config->getSystemValue('cron_log', true));
+$template->assign('lastcron', $appConfig->getValue('core', 'lastcron', false));
+$template->assign('shareAPIEnabled', $appConfig->getValue('core', 'shareapi_enabled', 'yes'));
+$template->assign('shareDefaultExpireDateSet', $appConfig->getValue('core', 'shareapi_default_expire_date', 'no'));
+$template->assign('shareExpireAfterNDays', $appConfig->getValue('core', 'shareapi_expire_after_n_days', '7'));
+$template->assign('shareEnforceExpireDate', $appConfig->getValue('core', 'shareapi_enforce_expire_date', 'no'));
+$excludeGroups = $appConfig->getValue('core', 'shareapi_exclude_groups', 'no') === 'yes' ? true : false;
+$template->assign('shareExcludeGroups', $excludeGroups);
+$excludedGroupsList = $appConfig->getValue('core', 'shareapi_exclude_groups_list', '');
$excludedGroupsList = explode(',', $excludedGroupsList); // FIXME: this should be JSON!
-$tmpl->assign('shareExcludedGroupsList', implode('|', $excludedGroupsList));
+$template->assign('shareExcludedGroupsList', implode('|', $excludedGroupsList));
// Check if connected using HTTPS
-$tmpl->assign('isConnectedViaHTTPS', OC_Request::serverProtocol() === 'https');
-$tmpl->assign('enforceHTTPSEnabled', OC_Config::getValue( "forcessl", false));
+$template->assign('isConnectedViaHTTPS', OC_Request::serverProtocol() === 'https');
+$template->assign('enforceHTTPSEnabled', $config->getSystemValue('forcessl', false));
+$template->assign('forceSSLforSubdomainsEnabled', $config->getSystemValue('forceSSLforSubdomains', false));
-// If the current webroot is non-empty but the webroot from the config is,
+// If the current web root is non-empty but the web root from the config is,
// and system cron is used, the URL generator fails to build valid URLs.
-$shouldSuggestOverwriteWebroot = $config->getAppValue('core', 'backgroundjobs_mode', 'ajax') === 'cron' &&
+$shouldSuggestOverwriteWebRoot = $config->getAppValue('core', 'backgroundjobs_mode', 'ajax') === 'cron' &&
\OC::$WEBROOT && \OC::$WEBROOT !== '/' &&
!$config->getSystemValue('overwritewebroot', '');
-$tmpl->assign('suggestedOverwriteWebroot', ($shouldSuggestOverwriteWebroot) ? \OC::$WEBROOT : '');
-
-$tmpl->assign('allowLinks', OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes'));
-$tmpl->assign('enforceLinkPassword', \OCP\Util::isPublicLinkPasswordRequired());
-$tmpl->assign('allowPublicUpload', OC_Appconfig::getValue('core', 'shareapi_allow_public_upload', 'yes'));
-$tmpl->assign('allowResharing', OC_Appconfig::getValue('core', 'shareapi_allow_resharing', 'yes'));
-$tmpl->assign('allowMailNotification', OC_Appconfig::getValue('core', 'shareapi_allow_mail_notification', 'no'));
-$tmpl->assign('onlyShareWithGroupMembers', \OC\Share\Share::shareWithGroupMembersOnly());
-$tmpl->assign('forms', array());
-foreach($forms as $form) {
- $tmpl->append('forms', $form);
-}
+$suggestedOverwriteWebRoot = ($shouldSuggestOverwriteWebRoot) ? \OC::$WEBROOT : '';
+$template->assign('suggestedOverwriteWebroot', $suggestedOverwriteWebRoot);
+$template->assign('allowLinks', $appConfig->getValue('core', 'shareapi_allow_links', 'yes'));
+$template->assign('enforceLinkPassword', \OCP\Util::isPublicLinkPasswordRequired());
+$template->assign('allowPublicUpload', $appConfig->getValue('core', 'shareapi_allow_public_upload', 'yes'));
+$template->assign('allowResharing', $appConfig->getValue('core', 'shareapi_allow_resharing', 'yes'));
+$template->assign('allowMailNotification', $appConfig->getValue('core', 'shareapi_allow_mail_notification', 'no'));
+$template->assign('onlyShareWithGroupMembers', \OC\Share\Share::shareWithGroupMembersOnly());
$databaseOverload = (strpos(\OCP\Config::getSystemValue('dbtype'), 'sqlite') !== false);
-$tmpl->assign('databaseOverload', $databaseOverload);
+$template->assign('databaseOverload', $databaseOverload);
-$tmpl->printPage();
-/**
- * Try to find a programm
- *
- * @param string $program
- * @return null|string
- */
-function findBinaryPath($program) {
- if (OC_Helper::is_function_enabled('exec')) {
- exec('command -v ' . escapeshellarg($program) . ' 2> /dev/null', $output, $returnCode);
- if ($returnCode === 0 && count($output) > 0) {
- return escapeshellcmd($output[0]);
- }
- }
- return null;
+// add hardcoded forms from the template
+$forms = OC_App::getForms('admin');
+$l = OC_L10N::get('settings');
+$formsAndMore = array();
+if (OC_Request::serverProtocol() !== 'https' || !$htAccessWorking || !OC_Util::isAnnotationsWorking() ||
+ $suggestedOverwriteWebRoot || !OC_Util::isSetLocaleWorking() || !OC_Util::isPhpCharSetUtf8() ||
+ OC_Util::isPHPoutdated() || !OC_Util::fileInfoLoaded() || $databaseOverload
+) {
+ $formsAndMore[] = array('anchor' => 'security-warning', 'section-name' => $l->t('Security & Setup Warnings'));
}
+
+$formsMap = array_map(function ($form) {
+ if (preg_match('%(]*>.*? )%i', $form, $regs)) {
+ $sectionName = str_replace('', '', $regs[0]);
+ $sectionName = str_replace(' ', '', $sectionName);
+ $anchor = strtolower($sectionName);
+ $anchor = str_replace(' ', '-', $anchor);
+
+ return array(
+ 'anchor' => 'goto-' . $anchor,
+ 'section-name' => $sectionName,
+ 'form' => $form
+ );
+ }
+ return array(
+ 'form' => $form
+ );
+}, $forms);
+
+$formsAndMore = array_merge($formsAndMore, $formsMap);
+
+// add bottom hardcoded forms from the template
+$formsAndMore[] = array('anchor' => 'backgroundjobs', 'section-name' => $l->t('Cron'));
+$formsAndMore[] = array('anchor' => 'shareAPI', 'section-name' => $l->t('Sharing'));
+$formsAndMore[] = array('anchor' => 'security', 'section-name' => $l->t('Security'));
+$formsAndMore[] = array('anchor' => 'mail_general_settings', 'section-name' => $l->t('Email Server'));
+$formsAndMore[] = array('anchor' => 'log-section', 'section-name' => $l->t('Log'));
+
+$template->assign('forms', $formsAndMore);
+
+$template->printPage();
diff --git a/settings/admin/controller.php b/settings/admin/controller.php
deleted file mode 100644
index 395bc7c6e49..00000000000
--- a/settings/admin/controller.php
+++ /dev/null
@@ -1,123 +0,0 @@
-.
-*/
-
-namespace OC\Settings\Admin;
-
-class Controller {
- /**
- * Set mail settings
- */
- public static function setMailSettings() {
- \OC_Util::checkAdminUser();
- \OCP\JSON::callCheck();
-
- $l = \OC::$server->getL10N('settings');
-
- $smtp_settings = array(
- 'mail_domain' => null,
- 'mail_from_address' => null,
- 'mail_smtpmode' => array('sendmail', 'smtp', 'qmail', 'php'),
- 'mail_smtpsecure' => array('', 'ssl', 'tls'),
- 'mail_smtphost' => null,
- 'mail_smtpport' => null,
- 'mail_smtpauthtype' => array('LOGIN', 'PLAIN', 'NTLM'),
- 'mail_smtpauth' => true,
- 'mail_smtpname' => null,
- 'mail_smtppassword' => null,
- );
-
- foreach ($smtp_settings as $setting => $validate) {
- if (!$validate) {
- if (!isset($_POST[$setting]) || $_POST[$setting] === '') {
- \OC_Config::deleteKey( $setting );
- } else {
- \OC_Config::setValue( $setting, $_POST[$setting] );
- }
- }
- else if (is_bool($validate)) {
- if (!empty($_POST[$setting])) {
- \OC_Config::setValue( $setting, (bool) $_POST[$setting] );
- } else {
- \OC_Config::deleteKey( $setting );
- }
- }
- else if (is_array($validate)) {
- if (!isset($_POST[$setting]) || $_POST[$setting] === '') {
- \OC_Config::deleteKey( $setting );
- } else if (in_array($_POST[$setting], $validate)) {
- \OC_Config::setValue( $setting, $_POST[$setting] );
- } else {
- $message = $l->t('Invalid value supplied for %s', array(self::getFieldname($setting, $l)));
- \OC_JSON::error( array( "data" => array( "message" => $message)) );
- exit;
- }
- }
- }
-
- \OC_JSON::success(array("data" => array( "message" => $l->t("Saved") )));
- }
-
- /**
- * Send a mail to test the settings
- */
- public static function sendTestMail() {
- \OC_Util::checkAdminUser();
- \OCP\JSON::callCheck();
-
- $l = \OC::$server->getL10N('settings');
- $email = \OC_Preferences::getValue(\OC_User::getUser(), 'settings', 'email', '');
- if (!empty($email)) {
- $defaults = new \OC_Defaults();
-
- try {
- \OC_Mail::send($email, \OC_User::getDisplayName(),
- $l->t('test email settings'),
- $l->t('If you received this email, the settings seem to be correct.'),
- \OCP\Util::getDefaultEmailAddress('no-reply'), $defaults->getName());
- } catch (\Exception $e) {
- $message = $l->t('A problem occurred while sending the e-mail. Please revisit your settings.');
- \OC_JSON::error( array( "data" => array( "message" => $message)) );
- exit;
- }
-
- \OC_JSON::success(array("data" => array( "message" => $l->t("Email sent") )));
- } else {
- $message = $l->t('You need to set your user email before being able to send test emails.');
- \OC_JSON::error( array( "data" => array( "message" => $message)) );
- }
- }
-
- /**
- * Get the field name to use it in error messages
- *
- * @param string $setting
- * @param \OC_L10N $l
- * @return string
- */
- public static function getFieldname($setting, $l) {
- switch ($setting) {
- case 'mail_smtpmode':
- return $l->t( 'Send mode' );
- case 'mail_smtpsecure':
- return $l->t( 'Encryption' );
- case 'mail_smtpauthtype':
- return $l->t( 'Authentication method' );
- }
- }
-}
diff --git a/settings/ajax/apps/ocs.php b/settings/ajax/apps/ocs.php
deleted file mode 100644
index aad0690e01c..00000000000
--- a/settings/ajax/apps/ocs.php
+++ /dev/null
@@ -1,68 +0,0 @@
-
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-OC_JSON::checkAdminUser();
-
-$l = \OC::$server->getL10N('settings');
-
-if(OC_Config::getValue('appstoreenabled', true)==false) {
- OCP\JSON::success(array('type' => 'external', 'data' => array()));
-}
-
-$enabledApps=OC_App::getEnabledApps();
-
-if(is_null($enabledApps)) {
- OCP\JSON::error(array('data' => array('message' => $l->t('Unable to load list from App Store'))));
-}
-
-$apps=array();
-
-// apps from external repo via OCS
-$categoryNames=OC_OCSClient::getCategories();
-if(is_array($categoryNames)) {
- $categories=array_keys($categoryNames);
- $page=0;
- $filter='approved';
- $externalApps=OC_OCSClient::getApplications($categories, $page, $filter);
- foreach($externalApps as $app) {
- // show only external apps that aren't enabled yet
- $local=false;
- foreach($enabledApps as $a) {
- if($a === $app['name']) {
- $local=true;
- }
- }
-
- if(!$local) {
- if($app['preview'] === '') {
- $pre=OC_Helper::imagePath('settings', 'trans.png');
- } else {
- $pre=$app['preview'];
- }
- if($app['label'] === 'recommended') {
- $label='3rd Party';
- } else {
- $label='Recommended';
- }
- $apps[]=array(
- 'name'=>$app['name'],
- 'id'=>$app['id'],
- 'active'=>false,
- 'description'=>$app['description'],
- 'author'=>$app['personid'],
- 'license'=>$app['license'],
- 'preview'=>$pre,
- 'internal'=>false,
- 'internallabel'=>$label,
- 'update'=>false,
- );
- }
- }
-}
-
-OCP\JSON::success(array('type' => 'external', 'data' => $apps));
diff --git a/settings/ajax/setsecurity.php b/settings/ajax/setsecurity.php
deleted file mode 100644
index f1f737a4943..00000000000
--- a/settings/ajax/setsecurity.php
+++ /dev/null
@@ -1,21 +0,0 @@
-
- * This file is licensed under the Affero General Public License version 3 or later.
- * See the COPYING-README file.
- */
-
-OC_Util::checkAdminUser();
-OCP\JSON::callCheck();
-
-if(isset($_POST['enforceHTTPS'])) {
- \OC::$server->getConfig()->setSystemValue('forcessl', filter_var($_POST['enforceHTTPS'], FILTER_VALIDATE_BOOLEAN));
-}
-
-if(isset($_POST['trustedDomain'])) {
- $trustedDomains = \OC::$server->getConfig()->getSystemValue('trusted_domains');
- $trustedDomains[] = $_POST['trustedDomain'];
- \OC::$server->getConfig()->setSystemValue('trusted_domains', $trustedDomains);
-}
-
-echo 'true';
diff --git a/settings/ajax/updateapp.php b/settings/ajax/updateapp.php
index 6375a41024a..3e28c65285d 100644
--- a/settings/ajax/updateapp.php
+++ b/settings/ajax/updateapp.php
@@ -12,30 +12,33 @@ if (!array_key_exists('appid', $_POST)) {
OCP\JSON::error(array(
'message' => 'No AppId given!'
));
- exit;
+ return;
}
$appId = $_POST['appid'];
if (!is_numeric($appId)) {
- $appId = OC_Appconfig::getValue($appId, 'ocsid', null);
- $isShipped = OC_App::isShipped($appId);
-
+ $appId = \OC::$server->getAppConfig()->getValue($appId, 'ocsid', null);
if ($appId === null) {
OCP\JSON::error(array(
'message' => 'No OCS-ID found for app!'
));
exit;
}
-} else {
- $isShipped = false;
}
$appId = OC_App::cleanAppId($appId);
-\OC_Config::setValue('maintenance', true);
-$result = OC_Installer::updateAppByOCSId($appId, $isShipped);
-\OC_Config::setValue('maintenance', false);
+$config = \OC::$server->getConfig();
+$config->setSystemValue('maintenance', true);
+try {
+ $result = OC_Installer::updateAppByOCSId($appId);
+ $config->setSystemValue('maintenance', false);
+} catch(Exception $ex) {
+ $config->setSystemValue('maintenance', false);
+ OC_JSON::error(array("data" => array( "message" => $ex->getMessage() )));
+ return;
+}
if($result !== false) {
OC_JSON::success(array('data' => array('appid' => $appId)));
diff --git a/settings/application.php b/settings/application.php
new file mode 100644
index 00000000000..64aa4671228
--- /dev/null
+++ b/settings/application.php
@@ -0,0 +1,87 @@
+getContainer();
+
+ /**
+ * Controllers
+ */
+ $container->registerService('MailSettingsController', function(SimpleContainer $c) {
+ return new MailSettingsController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('L10N'),
+ $c->query('Config'),
+ $c->query('UserSession'),
+ $c->query('Defaults'),
+ $c->query('Mail'),
+ $c->query('DefaultMailAddress')
+ );
+ });
+ $container->registerService('AppSettingsController', function(SimpleContainer $c) {
+ return new AppSettingsController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('L10N'),
+ $c->query('Config')
+ );
+ });
+ $container->registerService('SecuritySettingsController', function(SimpleContainer $c) {
+ return new SecuritySettingsController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('Config')
+ );
+ });
+
+ /**
+ * Core class wrappers
+ */
+ $container->registerService('Config', function(SimpleContainer $c) {
+ return $c->query('ServerContainer')->getConfig();
+ });
+ $container->registerService('L10N', function(SimpleContainer $c) {
+ return $c->query('ServerContainer')->getL10N('settings');
+ });
+ $container->registerService('UserSession', function(SimpleContainer $c) {
+ return $c->query('ServerContainer')->getUserSession();
+ });
+ $container->registerService('Mail', function(SimpleContainer $c) {
+ return new \OC_Mail;
+ });
+ $container->registerService('Defaults', function(SimpleContainer $c) {
+ return new \OC_Defaults;
+ });
+ $container->registerService('DefaultMailAddress', function(SimpleContainer $c) {
+ return Util::getDefaultEmailAddress('no-reply');
+ });
+ }
+}
diff --git a/settings/apps.php b/settings/apps.php
index 6021574cbb3..99d4d99975b 100644
--- a/settings/apps.php
+++ b/settings/apps.php
@@ -22,23 +22,17 @@
*/
OC_Util::checkAdminUser();
+\OC::$server->getSession()->close();
// Load the files we need
-OCP\Util::addStyle('settings', 'settings' );
-OCP\Util::addScript('settings', 'settings');
-OCP\Util::addScript('core', 'select2/select2');
-OCP\Util::addStyle('core', 'select2/select2');
-OC_App::setActiveNavigationEntry( "core_apps" );
-
-$combinedApps = OC_App::listAllApps();
+\OC_Util::addVendorScript('handlebars/handlebars');
+\OCP\Util::addScript("settings", "settings");
+\OCP\Util::addStyle("settings", "settings");
+\OC_Util::addVendorScript('select2/select2');
+\OC_Util::addVendorStyle('select2/select2');
+\OCP\Util::addScript("settings", "apps");
+\OC_App::setActiveNavigationEntry( "core_apps" );
$tmpl = new OC_Template( "settings", "apps", "user" );
-
-$tmpl->assign('apps', $combinedApps);
-
-$appid = (isset($_GET['appid'])?strip_tags($_GET['appid']):'');
-
-$tmpl->assign('appid', $appid);
-
$tmpl->printPage();
diff --git a/settings/controller/appsettingscontroller.php b/settings/controller/appsettingscontroller.php
new file mode 100644
index 00000000000..27205400aff
--- /dev/null
+++ b/settings/controller/appsettingscontroller.php
@@ -0,0 +1,132 @@
+l10n = $l10n;
+ $this->config = $config;
+ }
+
+ /**
+ * Get all available categories
+ * @return array
+ */
+ public function listCategories() {
+
+ $categories = array(
+ array('id' => 0, 'displayName' => (string)$this->l10n->t('Enabled') ),
+ array('id' => 1, 'displayName' => (string)$this->l10n->t('Not enabled') ),
+ );
+
+ if($this->config->getSystemValue('appstoreenabled', true)) {
+ $categories[] = array('id' => 2, 'displayName' => (string)$this->l10n->t('Recommended') );
+ // apps from external repo via OCS
+ $ocs = \OC_OCSClient::getCategories();
+ foreach($ocs as $k => $v) {
+ $categories[] = array(
+ 'id' => $k,
+ 'displayName' => str_replace('ownCloud ', '', $v)
+ );
+ }
+ }
+
+ $categories['status'] = 'success';
+
+ return $categories;
+ }
+
+ /**
+ * Get all available categories
+ * @param int $category
+ * @return array
+ */
+ public function listApps($category = 0) {
+ $apps = array();
+
+ switch($category) {
+ // installed apps
+ case 0:
+ $apps = \OC_App::listAllApps(true);
+ $apps = array_filter($apps, function($app) {
+ return $app['active'];
+ });
+ break;
+ // not-installed apps
+ case 1:
+ $apps = \OC_App::listAllApps(true);
+ $apps = array_filter($apps, function($app) {
+ return !$app['active'];
+ });
+ break;
+ default:
+ if ($category === 2) {
+ $apps = \OC_App::getAppstoreApps('approved');
+ $apps = array_filter($apps, function($app) {
+ return isset($app['internalclass']) && $app['internalclass'] === 'recommendedapp';
+ });
+ } else {
+ $apps = \OC_App::getAppstoreApps('approved', $category);
+ }
+ if (!$apps) {
+ $apps = array();
+ }
+ usort($apps, function ($a, $b) {
+ $a = (int)$a['score'];
+ $b = (int)$b['score'];
+ if ($a === $b) {
+ return 0;
+ }
+ return ($a > $b) ? -1 : 1;
+ });
+ break;
+ }
+
+ // fix groups to be an array
+ $apps = array_map(function($app){
+ $groups = array();
+ if (is_string($app['groups'])) {
+ $groups = json_decode($app['groups']);
+ }
+ $app['groups'] = $groups;
+ $app['canUnInstall'] = !$app['active'] && $app['removable'];
+ return $app;
+ }, $apps);
+
+ return array('apps' => $apps, 'status' => 'success');
+ }
+
+}
diff --git a/settings/controller/mailsettingscontroller.php b/settings/controller/mailsettingscontroller.php
new file mode 100644
index 00000000000..d050a5ea03e
--- /dev/null
+++ b/settings/controller/mailsettingscontroller.php
@@ -0,0 +1,166 @@
+l10n = $l10n;
+ $this->config = $config;
+ $this->userSession = $userSession;
+ $this->defaults = $defaults;
+ $this->mail = $mail;
+ $this->defaultMailAddress = $defaultMailAddress;
+ }
+
+ /**
+ * Sets the email settings
+ * @param string $mail_domain
+ * @param string $mail_from_address
+ * @param string $mail_smtpmode
+ * @param string $mail_smtpsecure
+ * @param string $mail_smtphost
+ * @param string $mail_smtpauthtype
+ * @param int $mail_smtpauth
+ * @param string $mail_smtpport
+ * @return array
+ */
+ public function setMailSettings($mail_domain,
+ $mail_from_address,
+ $mail_smtpmode,
+ $mail_smtpsecure,
+ $mail_smtphost,
+ $mail_smtpauthtype,
+ $mail_smtpauth,
+ $mail_smtpport) {
+
+ $params = get_defined_vars();
+ foreach($params as $key => $value) {
+ if(empty($value)) {
+ $this->config->deleteSystemValue($key);
+ } else {
+ $this->config->setSystemValue($key, $value);
+ }
+ }
+
+ // Delete passwords from config in case no auth is specified
+ if($params['mail_smtpauth'] !== 1) {
+ $this->config->deleteSystemValue('mail_smtpname');
+ $this->config->deleteSystemValue('mail_smtppassword');
+ }
+
+ return array('data' =>
+ array('message' =>
+ (string) $this->l10n->t('Saved')
+ ),
+ 'status' => 'success'
+ );
+ }
+
+ /**
+ * Store the credentials used for SMTP in the config
+ * @param string $mail_smtpname
+ * @param string $mail_smtppassword
+ * @return array
+ */
+ public function storeCredentials($mail_smtpname, $mail_smtppassword) {
+ $this->config->setSystemValue('mail_smtpname', $mail_smtpname);
+ $this->config->setSystemValue('mail_smtppassword', $mail_smtppassword);
+
+ return array('data' =>
+ array('message' =>
+ (string) $this->l10n->t('Saved')
+ ),
+ 'status' => 'success'
+ );
+ }
+
+ /**
+ * Send a mail to test the settings
+ * @return array
+ */
+ public function sendTestMail() {
+ $email = $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'email', '');
+ if (!empty($email)) {
+ try {
+ $this->mail->send($email, $this->userSession->getUser()->getDisplayName(),
+ $this->l10n->t('test email settings'),
+ $this->l10n->t('If you received this email, the settings seem to be correct.'),
+ $this->defaultMailAddress,
+ $this->defaults->getName()
+ );
+ } catch (\Exception $e) {
+ return array('data' =>
+ array('message' =>
+ (string) $this->l10n->t('A problem occurred while sending the email. Please revise your settings.'),
+ ),
+ 'status' => 'error'
+ );
+ }
+
+ return array('data' =>
+ array('message' =>
+ (string) $this->l10n->t('Email sent')
+ ),
+ 'status' => 'success'
+ );
+ }
+
+ return array('data' =>
+ array('message' =>
+ (string) $this->l10n->t('You need to set your user email before being able to send test emails.'),
+ ),
+ 'status' => 'error'
+ );
+ }
+
+}
diff --git a/settings/controller/securitysettingscontroller.php b/settings/controller/securitysettingscontroller.php
new file mode 100644
index 00000000000..af60df8dc3b
--- /dev/null
+++ b/settings/controller/securitysettingscontroller.php
@@ -0,0 +1,95 @@
+config = $config;
+ }
+
+ /**
+ * @return array
+ */
+ protected function returnSuccess() {
+ return array(
+ 'status' => 'success'
+ );
+ }
+
+ /**
+ * @return array
+ */
+ protected function returnError() {
+ return array(
+ 'status' => 'error'
+ );
+ }
+
+ /**
+ * Enforce or disable the enforcement of SSL
+ * @param boolean $enforceHTTPS Whether SSL should be enforced
+ * @return array
+ */
+ public function enforceSSL($enforceHTTPS = false) {
+ if(!is_bool($enforceHTTPS)) {
+ return $this->returnError();
+ }
+ $this->config->setSystemValue('forcessl', $enforceHTTPS);
+
+ return $this->returnSuccess();
+ }
+
+ /**
+ * Enforce or disable the enforcement for SSL on subdomains
+ * @param bool $forceSSLforSubdomains Whether SSL on subdomains should be enforced
+ * @return array
+ */
+ public function enforceSSLForSubdomains($forceSSLforSubdomains = false) {
+ if(!is_bool($forceSSLforSubdomains)) {
+ return $this->returnError();
+ }
+ $this->config->setSystemValue('forceSSLforSubdomains', $forceSSLforSubdomains);
+
+ return $this->returnSuccess();
+ }
+
+ /**
+ * Add a new trusted domain
+ * @param string $newTrustedDomain The newly to add trusted domain
+ * @return array
+ */
+ public function trustedDomains($newTrustedDomain) {
+ $trustedDomains = $this->config->getSystemValue('trusted_domains');
+ $trustedDomains[] = $newTrustedDomain;
+ $this->config->setSystemValue('trusted_domains', $trustedDomains);
+
+ return $this->returnSuccess();
+ }
+
+}
diff --git a/settings/css/settings.css b/settings/css/settings.css
index 581904591d0..c18d5913b6f 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -128,7 +128,11 @@ input.userFilter {width: 200px;}
.ie8 table.hascontrols{border-collapse:collapse;width: 100%;}
.ie8 table.hascontrols tbody tr{border-collapse:collapse;border: 1px solid #ddd !important;}
+
+
+
/* APPS */
+
.appinfo { margin: 1em 40px; }
#app-navigation {
padding-bottom: 0px;
@@ -139,11 +143,62 @@ input.userFilter {width: 200px;}
#app-navigation.appwarning:hover {
background: #fbb;
}
-small.externalapp { color:#FFF; background-color:#BBB; font-weight:bold; font-size: 0.6em; margin: 0; padding: 0.1em 0.2em; border-radius: 3px;}
-small.recommendedapp { color:#FFF; background-color:#888; font-weight:bold; font-size: 0.6em; margin: 0; padding: 0.1em 0.2em; border-radius: 3px;}
-small.externalapp.list, small.recommendedapp.list { position: absolute; right: 10px; top: 12px; }
+
+.recommendedapp {
+ font-size: 11px;
+ background-position: left center;
+ padding-left: 18px;
+ vertical-align: top;
+}
span.version { margin-left:1em; margin-right:1em; color:#555; }
+#app-navigation .app-external,
+.app-version,
+.recommendedapp {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
+ filter: alpha(opacity=50);
+ opacity: .5;
+}
+
+#apps-list {
+ position: relative;
+ height: 100%;
+}
+.section {
+ position: relative;
+}
+.app-image {
+ float: left;
+ padding-right: 10px;
+ width: 80px;
+ height: 80px;
+}
+.app-image img {
+ max-width: 80px;
+ max-height: 80px;
+}
+.app-image-icon img {
+ background-color: #ccc;
+ width: 60px;
+ padding: 10px;
+ border-radius: 3px;
+}
+.app-name,
+.app-version,
+.app-score,
+.recommendedapp {
+ display: inline-block;
+}
+.app-description {
+ clear: both;
+}
+.app-description pre {
+ white-space: pre-line;
+}
+
+#app-category-2 {
+ border-bottom: 1px solid #e8e8e8;
+}
/* Transition to complete width! */
.app:hover, .app:active { max-width: inherit; }
@@ -178,12 +233,12 @@ span.securitywarning, span.connectionwarning, .setupwarning {
padding-left: 56px;
}
-#mail_settings p label:first-child {
+.mail_settings p label:first-child {
display: inline-block;
width: 300px;
text-align: right;
}
-#mail_settings p select:nth-child(2) {
+.mail_settings p select:nth-child(2) {
width: 143px;
}
#mail_smtpport {
diff --git a/settings/js/admin.js b/settings/js/admin.js
index d8cdae9d11b..059e48ebabe 100644
--- a/settings/js/admin.js
+++ b/settings/js/admin.js
@@ -3,13 +3,14 @@ $(document).ready(function(){
// Hack to add a trusted domain
if (params.trustDomain) {
- OC.dialogs.confirm(t('core', 'Are you really sure you want add "{domain}" as trusted domain?', {domain: params.trustDomain}),
+ OC.dialogs.confirm(t('core', 'Are you really sure you want add "{domain}" as trusted domain?',
+ {domain: params.trustDomain}),
t('core', 'Add trusted domain'), function(answer) {
if(answer) {
$.ajax({
type: 'POST',
- url: OC.generateUrl('settings/ajax/setsecurity.php'),
- data: { trustedDomain: params.trustDomain }
+ url: OC.generateUrl('settings/admin/security/trustedDomains'),
+ data: { newTrustedDomain: params.trustDomain }
}).done(function() {
window.location.replace(OC.generateUrl('settings/admin'));
});
@@ -52,14 +53,13 @@ $(document).ready(function(){
});
$('#shareAPI input:not(#excludedGroups)').change(function() {
+ var value = $(this).val();
if ($(this).attr('type') === 'checkbox') {
if (this.checked) {
- var value = 'yes';
+ value = 'yes';
} else {
- var value = 'no';
+ value = 'no';
}
- } else {
- var value = $(this).val();
}
OC.AppConfig.setValue('core', $(this).attr('name'), value);
});
@@ -73,10 +73,32 @@ $(document).ready(function(){
$('#setDefaultExpireDate').toggleClass('hidden', !(this.checked && $('#shareapiDefaultExpireDate')[0].checked));
});
- $('#security').change(function(){
- $.post(OC.filePath('settings','ajax','setsecurity.php'), { enforceHTTPS: $('#forcessl').val() },function(){} );
+ $('#forcessl').change(function(){
+ $(this).val(($(this).val() !== 'true'));
+ var forceSSLForSubdomain = $('#forceSSLforSubdomainsSpan');
+
+ $.post(OC.generateUrl('settings/admin/security/ssl'), {
+ enforceHTTPS: $(this).val()
+ },function(){} );
+
+ if($(this).val() === 'true') {
+ forceSSLForSubdomain.prop('disabled', false);
+ forceSSLForSubdomain.removeClass('hidden');
+ } else {
+ forceSSLForSubdomain.prop('disabled', true);
+ forceSSLForSubdomain.addClass('hidden');
+ }
});
+ $('#forceSSLforSubdomains').change(function(){
+ $(this).val(($(this).val() !== 'true'));
+
+ $.post(OC.generateUrl('settings/admin/security/ssl/subdomains'), {
+ forceSSLforSubdomains: $(this).val()
+ },function(){} );
+ });
+
+
$('#mail_smtpauth').change(function() {
if (!this.checked) {
$('#mail_credentials').addClass('hidden');
@@ -103,14 +125,22 @@ $(document).ready(function(){
}
});
- $('#mail_settings').change(function(){
+ $('#mail_general_settings').change(function(){
OC.msg.startSaving('#mail_settings_msg');
- var post = $( "#mail_settings" ).serialize();
+ var post = $( "#mail_general_settings" ).serialize();
$.post(OC.generateUrl('/settings/admin/mailsettings'), post, function(data){
OC.msg.finishedSaving('#mail_settings_msg', data);
});
});
+ $('#mail_credentials_settings_submit').click(function(){
+ OC.msg.startSaving('#mail_settings_msg');
+ var post = $( "#mail_credentials_settings" ).serialize();
+ $.post(OC.generateUrl('/settings/admin/mailsettings/credentials'), post, function(data){
+ OC.msg.finishedSaving('#mail_settings_msg', data);
+ });
+ });
+
$('#sendtestemail').click(function(event){
event.preventDefault();
OC.msg.startAction('#sendtestmail_msg', t('settings', 'Sending...'));
diff --git a/settings/js/apps-custom.php b/settings/js/apps-custom.php
deleted file mode 100644
index 2b2f256b39f..00000000000
--- a/settings/js/apps-custom.php
+++ /dev/null
@@ -1,26 +0,0 @@
-
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-// Check if admin user
-OC_Util::checkAdminUser();
-
-// Set the content type to JS
-header('Content-type: application/javascript');
-
-// Disallow caching
-header("Cache-Control: no-cache, must-revalidate");
-header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
-
-$combinedApps = OC_App::listAllApps();
-
-foreach($combinedApps as $app) {
- echo("appData_".$app['id']."=".json_encode($app));
- echo("\n");
-}
-
-echo ("var appid =".json_encode($_GET['appid']).";");
diff --git a/settings/js/apps.js b/settings/js/apps.js
index 22bac1eaf3e..328c57db8ed 100644
--- a/settings/js/apps.js
+++ b/settings/js/apps.js
@@ -1,225 +1,235 @@
-/**
- * Copyright (c) 2011, Robin Appelman
- * Copyright (c) 2012, Thomas Tanghus
- * This file is licensed under the Affero General Public License version 3 or later.
- * See the COPYING-README file.
- */
+/* global Handlebars */
+
+Handlebars.registerHelper('score', function() {
+ if(this.score) {
+ var score = Math.round( this.score / 10 );
+ var imageName = 'rating/s' + score + '.png';
+
+ return new Handlebars.SafeString(' ');
+ }
+ return new Handlebars.SafeString('');
+});
OC.Settings = OC.Settings || {};
OC.Settings.Apps = OC.Settings.Apps || {
- setupGroupsSelect: function() {
- OC.Settings.setupGroupsSelect($('#group_select'), {
+ setupGroupsSelect: function($elements) {
+ OC.Settings.setupGroupsSelect($elements, {
placeholder: t('core', 'All')
});
},
- loadApp:function(app) {
- var page = $('#app-content');
- page.find('p.license').show();
- page.find('span.name').text(app.name);
- page.find('small.externalapp').text(app.internallabel);
- if (app.version) {
- page.find('span.version').text(app.version);
- } else {
- page.find('span.version').text('');
- }
- page.find('span.score').html(app.score);
- page.find('p.description').text(app.description);
- page.find('img.preview').attr('src', app.preview);
- if (app.preview && app.preview.length) {
- page.find('img.preview').show();
- } else {
- page.find('img.preview').hide();
- }
- page.find('small.externalapp').attr('style', 'visibility:visible');
- page.find('span.author').text(app.author);
- // FIXME licenses of downloaded apps go into app.licence, licenses of not-downloaded apps into app.license
- var appLicense = '';
- if (typeof(app.licence) !== 'undefined') {
- appLicense = app.licence;
- } else if (typeof(app.license) !== 'undefined') {
- appLicense = app.license;
- }
- page.find('span.licence').text(appLicense);
+ State: {
+ currentCategory: null,
+ apps: null
+ },
- var userDocumentation = false;
- var adminDocumentation = false;
- if (typeof(app.documentation) !== 'undefined') {
- if (typeof(app.documentation.user) !== 'undefined') {
- userDocumentation = true;
- page.find('span.userDocumentation').html("" + t('settings', 'User Documentation') + " ");
- page.find('p.documentation').show();
- }
- else {
- page.find('span.userDocumentation').empty();
- userDocumentation = false;
- }
- if (typeof(app.documentation.admin) !== 'undefined') {
- adminDocumentation = true;
- page.find('span.adminDocumentation').html("" + t('settings', 'Admin Documentation') + " ");
- page.find('p.documentation').show();
- }
- else {
- page.find('span.adminDocumentation').empty();
- adminDocumentation = false;
+ loadCategories: function() {
+ var categories = [
+ {displayName: 'Enabled', id: '0'}
+ ];
+
+ var source = $("#categories-template").html();
+ var template = Handlebars.compile(source);
+ var html = template(categories);
+ $('#apps-categories').html(html);
+
+ OC.Settings.Apps.loadCategory(0);
+
+ $.ajax(OC.generateUrl('settings/apps/categories'), {
+ data:{},
+ type:'GET',
+ success:function (jsondata) {
+ var html = template(jsondata);
+ $('#apps-categories').html(html);
+ $('#app-category-' + OC.Settings.Apps.State.currentCategory).addClass('active');
+ },
+ complete: function() {
+ $('#app-navigation').removeClass('icon-loading');
}
+ });
- if(userDocumentation && adminDocumentation) {
- page.find('span.comma').remove();
- page.find('span.userDocumentation').after(', ');
- }
- else {
- page.find('span.comma').remove();
- }
+ },
+
+ loadCategory: function(categoryId) {
+ if (OC.Settings.Apps.State.currentCategory === categoryId) {
+ return;
}
- else {
- page.find('p.documentation').hide();
+ $('#apps-list')
+ .addClass('icon-loading')
+ .html('');
+ $('#app-category-' + OC.Settings.Apps.State.currentCategory).removeClass('active');
+ $('#app-category-' + categoryId).addClass('active');
+ OC.Settings.Apps.State.currentCategory = categoryId;
+
+ $.ajax(OC.generateUrl('settings/apps/list?category={categoryId}', {
+ categoryId: categoryId
+ }), {
+ data:{},
+ type:'GET',
+ success:function (apps) {
+ OC.Settings.Apps.State.apps = _.indexBy(apps.apps, 'id');
+ var source = $("#app-template").html();
+ var template = Handlebars.compile(source);
+
+ _.each(apps.apps, function(app) {
+ OC.Settings.Apps.renderApp(app, template, null);
+ });
+ },
+ complete: function() {
+ $('#apps-list').removeClass('icon-loading');
+ }
+ });
+ },
+
+ renderApp: function(app, template, selector) {
+ if (!template) {
+ var source = $("#app-template").html();
+ template = Handlebars.compile(source);
+ }
+ if (typeof app === 'string') {
+ app = OC.Settings.Apps.State.apps[app];
}
- if (typeof(app.website) !== 'undefined') {
- page.find('p.website').show();
- page.find('a#websitelink').attr('href', app.website);
- }
-
- if (app.update !== false) {
- page.find('input.update').show();
- page.find('input.update').data('appid', app.id);
- page.find('input.update').attr('value',t('settings', 'Update to {appversion}', {appversion:app.update}));
+ var html = template(app);
+ if (selector) {
+ selector.html(html);
} else {
- page.find('input.update').hide();
+ $('#apps-list').append(html);
}
- if (app.removable !== false && app.active === false) {
- page.find('a.uninstall').show();
- page.find('a.uninstall').data('appid', app.id);
- page.find('a.uninstall').attr('value', t('settings', 'Uninstall App'));
- } else {
- page.find('a.uninstall').hide();
- }
-
- page.find('input.enable').show();
- page.find('input.enable').val((app.active) ? t('settings', 'Disable') : t('settings', 'Enable'));
- page.find('input.enable').data('appid', app.id);
- page.find('input.enable').data('active', app.active);
- if (app.internal === false) {
- page.find('span.score').show();
- page.find('p.appstore').show();
- page.find('a#appstorelink').attr('href', 'http://apps.owncloud.com/content/show.php?content=' + app.id);
- page.find('small.externalapp').hide();
- } else {
- page.find('p.appslink').hide();
- page.find('span.score').hide();
- }
- if (typeof($('#app-navigation ul li[data-id="'+app.id+'"]').data('errormsg')) !== "undefined") {
- page.find(".warning").show();
- page.find(".warning").text($('#app-navigation ul li[data-id="'+app.id+'"]').data('errormsg'));
- } else {
- page.find(".warning").hide();
+ var page = $('#app-' + app.id);
+
+ // image loading kung-fu
+ if (app.preview) {
+ var currentImage = new Image();
+ currentImage.src = app.preview;
+
+ currentImage.onload = function() {
+ page.find('.app-image')
+ .append(this)
+ .fadeIn();
+ };
}
+ // set group select properly
if(OC.Settings.Apps.isType(app, 'filesystem') || OC.Settings.Apps.isType(app, 'prelogin') ||
OC.Settings.Apps.isType(app, 'authentication') || OC.Settings.Apps.isType(app, 'logging')) {
- page.find("#groups_enable").hide();
- page.find("label[for='groups_enable']").hide();
- page.find("#groups_enable").attr('checked', null);
+ page.find(".groups-enable").hide();
+ page.find("label[for='groups_enable-"+app.id+"']").hide();
+ page.find(".groups-enable").attr('checked', null);
} else {
+ page.find('#group_select').val((app.groups || []).join(','));
if (app.active) {
if (app.groups.length) {
- OC.Settings.Apps.setupGroupsSelect();
- $('#group_select').select2('val', app.groups || []);
- page.find("#groups_enable").attr('checked','checked');
+ OC.Settings.Apps.setupGroupsSelect(page.find('#group_select'));
+ page.find(".groups-enable").attr('checked','checked');
} else {
- page.find("#groups_enable").attr('checked', null);
+ page.find(".groups-enable").attr('checked', null);
}
- page.find("#groups_enable").show();
- page.find("label[for='groups_enable']").show();
+ page.find(".groups-enable").show();
+ page.find("label[for='groups_enable-"+app.id+"']").show();
} else {
- page.find("#groups_enable").hide();
- page.find("label[for='groups_enable']").hide();
+ page.find(".groups-enable").hide();
+ page.find("label[for='groups_enable-"+app.id+"']").hide();
}
}
},
- enableApp:function(appid, active, element, groups) {
+
+ isType: function(app, type){
+ return app.types && app.types.indexOf(type) !== -1;
+ },
+
+ enableApp:function(appId, active, element, groups) {
+ OC.Settings.Apps.hideErrorMessage(appId);
groups = groups || [];
- var appitem=$('#app-navigation ul li[data-id="'+appid+'"]');
+ var appItem = $('div#app-'+appId+'');
element.val(t('settings','Please wait....'));
if(active && !groups.length) {
- $.post(OC.filePath('settings','ajax','disableapp.php'),{appid:appid},function(result) {
+ $.post(OC.filePath('settings','ajax','disableapp.php'),{appid:appId},function(result) {
if(!result || result.status !== 'success') {
if (result.data && result.data.message) {
- OC.Settings.Apps.showErrorMessage(result.data.message);
- appitem.data('errormsg', result.data.message);
+ OC.Settings.Apps.showErrorMessage(appId, result.data.message);
+ appItem.data('errormsg', result.data.message);
} else {
- OC.Settings.Apps.showErrorMessage(t('settings', 'Error while disabling app'));
- appitem.data('errormsg', t('settings', 'Error while disabling app'));
+ OC.Settings.Apps.showErrorMessage(appId, t('settings', 'Error while disabling app'));
+ appItem.data('errormsg', t('settings', 'Error while disabling app'));
}
element.val(t('settings','Disable'));
- appitem.addClass('appwarning');
- }
- else {
- appitem.data('active',false);
- appitem.data('groups', '');
+ appItem.addClass('appwarning');
+ } else {
+ appItem.data('active',false);
+ appItem.data('groups', '');
element.data('active',false);
- OC.Settings.Apps.removeNavigation(appid);
- appitem.removeClass('active');
+ OC.Settings.Apps.removeNavigation(appId);
+ appItem.removeClass('active');
element.val(t('settings','Enable'));
- element.parent().find("#groups_enable").hide();
- element.parent().find("label[for='groups_enable']").hide();
- var app = OC.get('appData_' + appid);
- app.active = false;
+ element.parent().find(".groups-enable").hide();
+ element.parent().find("#groups_enable-"+appId).hide();
+ element.parent().find("label[for='groups_enable-"+appId+"']").hide();
+ element.parent().find('#group_select').hide().val(null);
+ OC.Settings.Apps.State.apps[appId].active = false;
}
},'json');
} else {
- $.post(OC.filePath('settings','ajax','enableapp.php'),{appid: appid, groups: groups},function(result) {
+ $.post(OC.filePath('settings','ajax','enableapp.php'),{appid: appId, groups: groups},function(result) {
if(!result || result.status !== 'success') {
if (result.data && result.data.message) {
- OC.Settings.Apps.showErrorMessage(result.data.message);
- appitem.data('errormsg', result.data.message);
+ OC.Settings.Apps.showErrorMessage(appId, result.data.message);
+ appItem.data('errormsg', result.data.message);
} else {
- OC.Settings.Apps.showErrorMessage(t('settings', 'Error while enabling app'));
- appitem.data('errormsg', t('settings', 'Error while disabling app'));
+ OC.Settings.Apps.showErrorMessage(appId, t('settings', 'Error while enabling app'));
+ appItem.data('errormsg', t('settings', 'Error while disabling app'));
}
element.val(t('settings','Enable'));
- appitem.addClass('appwarning');
+ appItem.addClass('appwarning');
} else {
- OC.Settings.Apps.addNavigation(appid);
- appitem.data('active',true);
+ OC.Settings.Apps.addNavigation(appId);
+ appItem.data('active',true);
element.data('active',true);
- appitem.addClass('active');
+ appItem.addClass('active');
element.val(t('settings','Disable'));
- var app = OC.get('appData_' + appid);
+ var app = OC.Settings.Apps.State.apps[appId];
app.active = true;
+
if (OC.Settings.Apps.isType(app, 'filesystem') || OC.Settings.Apps.isType(app, 'prelogin') ||
OC.Settings.Apps.isType(app, 'authentication') || OC.Settings.Apps.isType(app, 'logging')) {
- element.parent().find("#groups_enable").hide();
- element.parent().find("label[for='groups_enable']").hide();
+ element.parent().find(".groups-enable").attr('checked', null);
+ element.parent().find("#groups_enable-"+appId).hide();
+ element.parent().find("label[for='groups_enable-"+appId+"']").hide();
+ element.parent().find(".groups-enable").hide();
+ element.parent().find("#groups_enable-"+appId).hide();
+ element.parent().find("label[for='groups_enable-"+appId+"']").hide();
+ element.parent().find('#group_select').hide().val(null);
} else {
- element.parent().find("#groups_enable").show();
- element.parent().find("label[for='groups_enable']").show();
+ element.parent().find("#groups_enable-"+appId).show();
+ element.parent().find("label[for='groups_enable-"+appId+"']").show();
if (groups) {
- appitem.data('groups', JSON.stringify(groups));
+ appItem.data('groups', JSON.stringify(groups));
} else {
- appitem.data('groups', '');
+ appItem.data('groups', '');
}
}
}
},'json')
- .fail(function() {
- OC.Settings.Apps.showErrorMessage(t('settings', 'Error while enabling app'));
- appitem.data('errormsg', t('settings', 'Error while enabling app'));
- appitem.data('active',false);
- appitem.addClass('appwarning');
- OC.Settings.Apps.removeNavigation(appid);
- element.val(t('settings','Enable'));
- });
+ .fail(function() {
+ OC.Settings.Apps.showErrorMessage(appId, t('settings', 'Error while enabling app'));
+ appItem.data('errormsg', t('settings', 'Error while enabling app'));
+ appItem.data('active',false);
+ appItem.addClass('appwarning');
+ OC.Settings.Apps.removeNavigation(appId);
+ element.val(t('settings','Enable'));
+ });
}
},
- updateApp:function(appid, element) {
+
+ updateApp:function(appId, element) {
+ var oldButtonText = element.val();
element.val(t('settings','Updating....'));
- $.post(OC.filePath('settings','ajax','updateapp.php'),{appid:appid},function(result) {
+ OC.Settings.Apps.hideErrorMessage(appId);
+ $.post(OC.filePath('settings','ajax','updateapp.php'),{appid:appId},function(result) {
if(!result || result.status !== 'success') {
- OC.Settings.Apps.showErrorMessage(t('settings','Error while updating app'),t('settings','Error'));
- element.val(t('settings','Update'));
+ OC.Settings.Apps.showErrorMessage(appId, t('settings','Error while updating app'));
+ element.val(oldButtonText);
}
else {
element.val(t('settings','Updated'));
@@ -227,42 +237,25 @@ OC.Settings.Apps = OC.Settings.Apps || {
}
},'json');
},
- uninstallApp:function(appid, element) {
+
+ uninstallApp:function(appId, element) {
+ OC.Settings.Apps.hideErrorMessage(appId);
element.val(t('settings','Uninstalling ....'));
- $.post(OC.filePath('settings','ajax','uninstallapp.php'),{appid:appid},function(result) {
+ $.post(OC.filePath('settings','ajax','uninstallapp.php'),{appid:appId},function(result) {
if(!result || result.status !== 'success') {
- OC.Settings.Apps.showErrorMessage(t('settings','Error while uninstalling app'),t('settings','Error'));
+ OC.Settings.Apps.showErrorMessage(appId, t('settings','Error while uninstalling app'));
element.val(t('settings','Uninstall'));
} else {
- OC.Settings.Apps.removeNavigation(appid);
- var appItem = $('#app-navigation li').filterAttr('data-id', appid);
- appItem.removeClass('active');
+ OC.Settings.Apps.removeNavigation(appId);
+ element.parent().fadeOut(function() {
+ element.remove();
+ });
}
},'json');
},
- insertApp:function(appdata) {
- var applist = $('#app-navigation ul li');
- var app =
- $(''
- + ''
- + appdata.name+' 3rd party ');
- app.data('app', appdata);
- var added = false;
- applist.each(function() {
- if(!parseInt($(this).data('installed')) && $(this).find('a').text().toLowerCase() > appdata.name.toLowerCase()) {
- $(this).before(app);
- added = true;
- return false; // dang, remember this to get out of loop
- }
- });
- if(!added) {
- applist.last().after(app);
- }
- return app;
- },
- removeNavigation: function(appid){
- $.getJSON(OC.filePath('settings', 'ajax', 'navigationdetect.php'), {app: appid}).done(function(response){
+ removeNavigation: function(appId){
+ $.getJSON(OC.filePath('settings', 'ajax', 'navigationdetect.php'), {app: appId}).done(function(response){
if(response.status === 'success'){
var navIds=response.nav_ids;
for(var i=0; i< navIds.length; i++){
@@ -310,107 +303,87 @@ OC.Settings.Apps = OC.Settings.Apps || {
.animate({opacity: 1})
.animate({opacity: 0.75});
- if (!SVGSupport() && entry.icon.match(/\.svg$/i)) {
+ if (!OC.Util.hasSVGSupport() && entry.icon.match(/\.svg$/i)) {
$(img).addClass('svg');
- replaceSVG();
+ OC.Util.replaceSVG();
}
}
}
}
});
},
- showErrorMessage: function(message) {
- $('.appinfo .warning').show();
- $('.appinfo .warning').text(message);
+
+ showErrorMessage: function(appId, message) {
+ $('div#app-'+appId+' .warning')
+ .show()
+ .text(message);
},
- isType: function(app, type){
- return app.types && app.types.indexOf(type) !== -1;
+
+ hideErrorMessage: function(appId) {
+ $('div#app-'+appId+' .warning')
+ .hide()
+ .text('');
}
+
};
-$(document).ready(function(){
- $('#app-navigation ul li').each(function(index,li){
- var app = OC.get('appData_'+$(li).data('id'));
- if (app) {
- app.groups= $(li).data('groups') || [];
- }
- $(li).data('app',app);
- $(this).find('span.hidden').remove();
- });
- $('#app-navigation ul li').keydown(function(event) {
- if (event.which === 13 || event.which === 32) {
- $(event.target).click();
- }
- return false;
+$(document).ready(function () {
+ OC.Settings.Apps.loadCategories();
+
+ $(document).on('click', 'ul#apps-categories li', function () {
+ var categoryId = $(this).data('categoryId');
+ OC.Settings.Apps.loadCategory(categoryId);
});
- $(document).on('click', '#app-navigation', function(event){
- var tgt = $(event.target);
- if (tgt.is('li') || tgt.is('a')) {
- var item = tgt.is('li') ? $(tgt) : $(tgt).parent();
- var app = item.data('app');
- OC.Settings.Apps.loadApp(app);
- $('#app-navigation .selected').removeClass('selected');
- item.addClass('selected');
- }
- return false;
- });
- $('#app-content input.enable').click(function(){
+ $(document).on('click', '#apps-list input.enable', function () {
+ var appId = $(this).data('appid');
var element = $(this);
- var appid=$(this).data('appid');
- var active=$(this).data('active');
- if(appid) {
- OC.Settings.Apps.enableApp(appid, active, element);
- }
+ var active = $(this).data('active');
+
+ OC.Settings.Apps.enableApp(appId, active, element);
});
- $('#app-content input.update').click(function(){
+
+ $(document).on('click', '#apps-list input.uninstall', function () {
+ var appId = $(this).data('appid');
var element = $(this);
- var appid=$(this).data('appid');
- if(appid) {
- OC.Settings.Apps.updateApp(appid, element);
- }
+
+ OC.Settings.Apps.uninstallApp(appId, element);
});
- $('#app-content a.uninstall').click(function(){
+
+ $(document).on('click', '#apps-list input.update', function () {
+ var appId = $(this).data('appid');
var element = $(this);
- var appid=$(this).data('appid');
- if(appid) {
- OC.Settings.Apps.uninstallApp(appid, element);
+
+ OC.Settings.Apps.updateApp(appId, element);
+ });
+
+ $(document).on('change', '#group_select', function() {
+ var element = $(this).parent().find('input.enable');
+ var groups = $(this).val();
+ if (groups && groups !== '') {
+ groups = groups.split(',');
+ } else {
+ groups = [];
+ }
+
+ var appId = element.data('appid');
+ if (appId) {
+ OC.Settings.Apps.enableApp(appId, false, element, groups);
+ OC.Settings.Apps.State.apps[appId].groups = groups;
}
});
- $('#group_select').change(function(ev) {
- var element = $('#app-content input.enable');
- // getting an array of values from select2
- var groups = ev.val || [];
- var appid = element.data('appid');
- if (appid) {
- OC.Settings.Apps.enableApp(appid, false, element, groups);
- var li = $('[data-id="'+appid+'"]');
- var app = OC.get('appData_' + $(li).data('id'));
- app.groups = groups;
- li.data('groups', groups);
- li.attr('data-groups', JSON.stringify(groups));
- }
- });
-
- if(appid) {
- var item = $('#app-navigation ul li[data-id="'+appid+'"]');
- if(item) {
- item.trigger('click');
- item.addClass('active');
- $('#app-navigation').animate({scrollTop: item.offset().top-70}, 'slow','swing');
- }
- }
-
- $("#groups_enable").change(function() {
- var $select = $('#group_select');
+ $(document).on('change', ".groups-enable", function() {
+ var $select = $(this).parent().find('#group_select');
$select.val('');
+
if (this.checked) {
- OC.Settings.Apps.setupGroupsSelect();
- }
- else {
+ OC.Settings.Apps.setupGroupsSelect($select);
+ } else {
$select.select2('destroy');
}
+
$select.change();
});
+
});
diff --git a/settings/js/log.js b/settings/js/log.js
index 197fef907a0..46d1bfefd5f 100644
--- a/settings/js/log.js
+++ b/settings/js/log.js
@@ -5,75 +5,77 @@
* See the COPYING-README file.
*/
-OC.Log={
- reload:function(count){
- if(!count){
- count=OC.Log.loaded;
+/* global formatDate */
+
+OC.Log = {
+ reload: function (count) {
+ if (!count) {
+ count = OC.Log.loaded;
}
- OC.Log.loaded=0;
+ OC.Log.loaded = 0;
$('#log tbody').empty();
OC.Log.getMore(count);
},
- levels:['Debug','Info','Warning','Error','Fatal'],
- loaded:3,//are initially loaded
- getMore:function(count){
+ levels: ['Debug', 'Info', 'Warning', 'Error', 'Fatal'],
+ loaded: 3,//are initially loaded
+ getMore: function (count) {
count = count || 10;
- $.get(OC.filePath('settings','ajax','getlog.php'),{offset:OC.Log.loaded,count:count},function(result){
- if(result.status === 'success'){
+ $.get(OC.filePath('settings', 'ajax', 'getlog.php'), {offset: OC.Log.loaded, count: count}, function (result) {
+ if (result.status === 'success') {
OC.Log.addEntries(result.data);
- if(!result.remain){
+ if (!result.remain) {
$('#moreLog').hide();
}
$('#lessLog').show();
}
});
},
- showLess:function(count){
+ showLess: function (count) {
count = count || 10;
//calculate remaining items - at least 3
- OC.Log.loaded = Math.max(3,OC.Log.loaded-count);
+ OC.Log.loaded = Math.max(3, OC.Log.loaded - count);
$('#moreLog').show();
// remove all non-remaining items
$('#log tr').slice(OC.Log.loaded).remove();
- if(OC.Log.loaded <= 3) {
+ if (OC.Log.loaded <= 3) {
$('#lessLog').hide();
}
},
- addEntries:function(entries){
- for(var i=0;i');
- var levelTd=$(' ');
+ addEntries: function (entries) {
+ for (var i = 0; i < entries.length; i++) {
+ var entry = entries[i];
+ var row = $(' ');
+ var levelTd = $(' ');
levelTd.text(OC.Log.levels[entry.level]);
row.append(levelTd);
- var appTd=$(' ');
+ var appTd = $(' ');
appTd.text(entry.app);
row.append(appTd);
- var messageTd=$(' ');
+ var messageTd = $(' ');
messageTd.text(entry.message);
row.append(messageTd);
- var timeTd=$(' ');
+ var timeTd = $(' ');
timeTd.addClass('date');
- if(isNaN(entry.time)){
+ if (isNaN(entry.time)) {
timeTd.text(entry.time);
} else {
- timeTd.text(formatDate(entry.time*1000));
+ timeTd.text(formatDate(entry.time * 1000));
}
row.append(timeTd);
$('#log').append(row);
}
OC.Log.loaded += entries.length;
}
-}
+};
-$(document).ready(function(){
- $('#moreLog').click(function(){
+$(document).ready(function () {
+ $('#moreLog').click(function () {
OC.Log.getMore();
- })
- $('#lessLog').click(function(){
+ });
+ $('#lessLog').click(function () {
OC.Log.showLess();
- })
+ });
});
diff --git a/settings/js/old-apps.js b/settings/js/old-apps.js
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/settings/js/personal.js b/settings/js/personal.js
index 11e9593d74a..b2efa7c37f9 100644
--- a/settings/js/personal.js
+++ b/settings/js/personal.js
@@ -282,7 +282,7 @@ $(document).ready(function () {
});
$('#pass2').strengthify({
- zxcvbn: OC.linkTo('3rdparty', 'zxcvbn/js/zxcvbn.js'),
+ zxcvbn: OC.linkTo('core','vendor/zxcvbn/zxcvbn.js'),
titles: [
t('core', 'Very weak password'),
t('core', 'Weak password'),
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index 0cb5fe3e15c..5e0c0cac189 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -46,11 +46,11 @@ var UserList = {
// make them look like the multiselect buttons
// until they get time to really get initialized
- groupsSelect = $(' ')
+ groupsSelect = $(' ')
.data('username', username)
.data('user-groups', groups);
if ($tr.find('td.subadmins').length > 0) {
- subAdminSelect = $('')
+ subAdminSelect = $('')
.data('username', username)
.data('user-groups', groups)
.data('subadmin', subadmin);
diff --git a/settings/l10n/af_ZA.js b/settings/l10n/af_ZA.js
new file mode 100644
index 00000000000..ccc813a5590
--- /dev/null
+++ b/settings/l10n/af_ZA.js
@@ -0,0 +1,11 @@
+OC.L10N.register(
+ "settings",
+ {
+ "So-so password" : "So-so wagwoord",
+ "Security Warning" : "Sekuriteits waarskuwing",
+ "Password" : "Wagwoord",
+ "New password" : "Nuwe wagwoord",
+ "Cancel" : "Kanseleer",
+ "Username" : "Gebruikersnaam"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/af_ZA.json b/settings/l10n/af_ZA.json
new file mode 100644
index 00000000000..73a78678732
--- /dev/null
+++ b/settings/l10n/af_ZA.json
@@ -0,0 +1,9 @@
+{ "translations": {
+ "So-so password" : "So-so wagwoord",
+ "Security Warning" : "Sekuriteits waarskuwing",
+ "Password" : "Wagwoord",
+ "New password" : "Nuwe wagwoord",
+ "Cancel" : "Kanseleer",
+ "Username" : "Gebruikersnaam"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/af_ZA.php b/settings/l10n/af_ZA.php
deleted file mode 100644
index 90094e7855d..00000000000
--- a/settings/l10n/af_ZA.php
+++ /dev/null
@@ -1,10 +0,0 @@
- "So-so wagwoord",
-"Security Warning" => "Sekuriteits waarskuwing",
-"Password" => "Wagwoord",
-"New password" => "Nuwe wagwoord",
-"Cancel" => "Kanseleer",
-"Username" => "Gebruikersnaam"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/ar.js b/settings/l10n/ar.js
new file mode 100644
index 00000000000..7f3695a1df6
--- /dev/null
+++ b/settings/l10n/ar.js
@@ -0,0 +1,156 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Cron" : "مجدول",
+ "Sharing" : "مشاركة",
+ "Security" : "الأمان",
+ "Email Server" : "خادم البريد الالكتروني",
+ "Log" : "سجل",
+ "Authentication error" : "لم يتم التأكد من الشخصية بنجاح",
+ "Your full name has been changed." : "اسمك الكامل تم تغييره.",
+ "Unable to change full name" : "لم يتم التمكن من تغيير اسمك الكامل",
+ "Group already exists" : "المجموعة موجودة مسبقاً",
+ "Unable to add group" : "فشل إضافة المجموعة",
+ "Email saved" : "تم حفظ البريد الإلكتروني",
+ "Invalid email" : "البريد الإلكتروني غير صالح",
+ "Unable to delete group" : "فشل إزالة المجموعة",
+ "Unable to delete user" : "فشل إزالة المستخدم",
+ "Backups restored successfully" : "تم إسترجاع النسخة الإحتياطية بنجاح",
+ "Language changed" : "تم تغيير اللغة",
+ "Invalid request" : "طلب غير مفهوم",
+ "Admins can't remove themself from the admin group" : "لا يستطيع المدير إزالة حسابه من مجموعة المديرين",
+ "Unable to add user to group %s" : "فشل إضافة المستخدم الى المجموعة %s",
+ "Unable to remove user from group %s" : "فشل إزالة المستخدم من المجموعة %s",
+ "Couldn't update app." : "تعذر تحديث التطبيق.",
+ "Wrong password" : "كلمة مرور خاطئة",
+ "No user supplied" : "لم يتم توفير مستخدم ",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "يرجى توفير كلمة مرور المسؤول المستردة, وإلا سيتم فقد جميع بيانات المستخدم ",
+ "Wrong admin recovery password. Please check the password and try again." : "خطا في كلمة مرور المسؤول المستردة, يرجى التاكد من كلمة المرور والمحاولة مرة اخرى.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Back-end لا يدعم تغيير كلمة المرور, لاكن مفتاح تشفير المستخدمين تم تحديثة بنجاح.",
+ "Unable to change password" : "لا يمكن تغيير كلمة المرور",
+ "Enabled" : "مفعلة",
+ "Saved" : "حفظ",
+ "test email settings" : "إعدادات البريد التجريبي",
+ "If you received this email, the settings seem to be correct." : "تبدوا الاعدادت صحيحة اذا تلقيت هذا البريد الالكتروني",
+ "Email sent" : "تم ارسال البريد الالكتروني",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "هل أنت متأكد انك تريد إضافة \"{domain}\" كنطاق موثوق فيه.",
+ "Sending..." : "جاري الارسال ...",
+ "All" : "الكل",
+ "Please wait...." : "الرجاء الانتظار ...",
+ "Error while disabling app" : "خطا عند تعطيل البرنامج",
+ "Disable" : "إيقاف",
+ "Enable" : "تفعيل",
+ "Error while enabling app" : "خطا عند تفعيل البرنامج ",
+ "Updating...." : "جاري التحديث ...",
+ "Error while updating app" : "حصل خطأ أثناء تحديث التطبيق",
+ "Updated" : "تم التحديث بنجاح",
+ "Uninstalling ...." : "جاري إلغاء التثبيت ...",
+ "Uninstall" : "ألغاء التثبيت",
+ "Select a profile picture" : "اختر صورة الملف الشخصي ",
+ "Very weak password" : "كلمة السر ضعيفة جدا",
+ "Weak password" : "كلمة السر ضعيفة",
+ "Good password" : "كلمة السر جيدة",
+ "Strong password" : "كلمة السر قوية",
+ "Delete" : "إلغاء",
+ "Decrypting files... Please wait, this can take some time." : "فك تشفير الملفات... يرجى الانتظار, من الممكن ان ياخذ بعض الوقت.",
+ "Groups" : "مجموعات",
+ "undo" : "تراجع",
+ "never" : "بتاتا",
+ "add group" : "اضافة مجموعة",
+ "A valid username must be provided" : "يجب ادخال اسم مستخدم صحيح",
+ "Error creating user" : "حصل خطأ اثناء انشاء مستخدم",
+ "A valid password must be provided" : "يجب ادخال كلمة مرور صحيحة",
+ "Warning: Home directory for user \"{user}\" already exists" : "تحذير: المجلد الرئيسي لـ المستخدم \"{user}\" موجود مسبقا",
+ "__language_name__" : "__language_name__",
+ "Encryption" : "التشفير",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "كل شيء (مشاكل فادحة, اخطاء , تحذيرات , معلومات , تصحيح الاخطاء)",
+ "Info, warnings, errors and fatal issues" : "معلومات , تحذيرات , اخطاء , مشاكل فادحة ",
+ "Warnings, errors and fatal issues" : "تحذيرات , اخطاء , مشاكل فادحة ",
+ "Errors and fatal issues" : "اخطاء ومشاكل فادحة ",
+ "Fatal issues only" : "مشاكل فادحة فقط ",
+ "None" : "لا شيء",
+ "Login" : "تسجيل الدخول",
+ "Security Warning" : "تحذير أمان",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "انت تستخدم %s عن طريق HTTP . نحن نقترح باصرار ان تهيء الخادم ليتمكن من الوصول عن طريق HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "مجلد data و ملفاتك يمكن الوصول لها عن طريق الانترنت. ملف .htaccess لا يمكن تشغيلة. نحن نقترح باصرار ان تعيد اعداد خادمك لمنع الدخول الى بياناتك عن طريق الانترنت او بالامكان ان تنقل مجلد data خارج document root بشكل مؤقت. ",
+ "Setup Warning" : "تحذير في التنصيب",
+ "Module 'fileinfo' missing" : "الموديل 'fileinfo' مفقود",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "موديل 'fileinfo' الخاص بالـPHP مفقود . نوصي بتفعيل هذا الموديل للحصول على أفضل النتائج مع خاصية التحقق ",
+ "Your PHP version is outdated" : "اصدار PHP الخاص بك قديم",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "اصدار PHP الخاص بك قديم. نحن نقترح لك باصرار ان يتم ترقية الاصدار الى 5.3.8 او احدث بسبب ان الاصدارات القديمة معروفة انها مهمشة. من الممكن ان التنزيل قد لا يتم بصورة صحيحة.",
+ "Locale not working" : "اللغه لا تعمل",
+ "System locale can not be set to a one which supports UTF-8." : "لا يمكن تعيين لغة النظام الى احد اللغات التي تدعم UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "هذا يعني انه من الممكن ان يكون هناك مشكلة في بعض الاحرف في اسم الملف.",
+ "Please double check the installation guides ." : "الرجاء التحقق من دليل التنصيب .",
+ "Execute one task with each page loaded" : "قم بتنفيذ مهمة واحدة مع كل صفحة تم تحميلها",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "الملف cron.php تم تسجيله فى خدمه webcron لاستدعاء الملف cron.php كل 15 دقيقه",
+ "Allow apps to use the Share API" : "السماح للتطبيقات بالمشاركة عن طريق الAPI",
+ "Allow users to share via link" : "السماح للمستخدم بمشاركة الملف عن طريق رابط",
+ "Allow public uploads" : "السماح بالرفع للعامة ",
+ "Expire after " : "ينتهي بعد",
+ "days" : "أيام",
+ "Allow resharing" : "السماح بإعادة المشاركة ",
+ "Enforce HTTPS" : "فرض HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "اجبار العميل للاتصال بـ %s عن طريق اتصال مشفر",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "يرجى الاتصال بـ %s عن طريق HTTPS لتفعيل او تعطيل SSL enforcement.",
+ "Send mode" : "وضعية الإرسال",
+ "Authentication method" : "أسلوب التطابق",
+ "Server address" : "عنوان الخادم",
+ "Port" : "المنفذ",
+ "Log level" : "مستوى السجل",
+ "More" : "المزيد",
+ "Less" : "أقل",
+ "Version" : "إصدار",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "طوّر من قبل ownCloud مجتمع , الـ النص المصدري مرخص بموجب رخصة أفيرو العمومية .",
+ "by" : "من قبل",
+ "Documentation:" : "التوثيق",
+ "User Documentation" : "كتاب توثيق المستخدم",
+ "Uninstall App" : "أزالة تطبيق",
+ "Administrator Documentation" : "كتاب توثيق المدير",
+ "Online Documentation" : "توثيق متوفر على الشبكة",
+ "Forum" : "منتدى",
+ "Bugtracker" : "تعقب علة",
+ "Commercial Support" : "دعم تجاري",
+ "Get the apps to sync your files" : "احصل على التطبيقات لمزامنة ملفاتك",
+ "Show First Run Wizard again" : "ابدأ خطوات بداية التشغيل من جديد",
+ "You have used %s of the available %s " : "تم إستهلاك %s من المتوفر %s ",
+ "Password" : "كلمة المرور",
+ "Your password was changed" : "لقد تم تغيير كلمة السر",
+ "Unable to change your password" : "لم يتم تعديل كلمة السر بنجاح",
+ "Current password" : "كلمات السر الحالية",
+ "New password" : "كلمات سر جديدة",
+ "Change password" : "عدل كلمة السر",
+ "Full Name" : "اسمك الكامل",
+ "Email" : "البريد الإلكترونى",
+ "Your email address" : "عنوانك البريدي",
+ "Profile picture" : "صورة الملف الشخصي",
+ "Upload new" : "رفع الان",
+ "Select new from Files" : "اختر جديد من الملفات ",
+ "Remove image" : "إزالة الصورة",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "سواء png او jpg. بامكانك قص الصورة ",
+ "Your avatar is provided by your original account." : "صورتك الرمزية يتم توفيرها عن طريق حسابك الاصلي.",
+ "Cancel" : "الغاء",
+ "Choose as profile image" : "اختر صورة الملف الشخصي",
+ "Language" : "اللغة",
+ "Help translate" : "ساعد في الترجمه",
+ "Valid until" : "صالح حتى",
+ "The encryption app is no longer enabled, please decrypt all your files" : "البرنامج المشفر لم يعد مفعل, يرجى فك التشفير عن كل ملفاتك",
+ "Log-in password" : "كلمه سر الدخول",
+ "Decrypt all Files" : "فك تشفير جميع الملفات ",
+ "Username" : "إسم المستخدم",
+ "Create" : "انشئ",
+ "Admin Recovery Password" : "استعادة كلمة المرور للمسؤول",
+ "Enter the recovery password in order to recover the users files during password change" : "ادخل كلمة المرور المستعادة من اجل استرداد ملفات المستخدمين اثناء تغيير كلمة المرور",
+ "Group" : "مجموعة",
+ "Everyone" : "الجميع",
+ "Default Quota" : "الحصة النسبية الإفتراضية",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "يرجى ادخال تخزين quota (مثل:\"512 MB\" او \"12 GB\")",
+ "Unlimited" : "غير محدود",
+ "Other" : "شيء آخر",
+ "Quota" : "حصه",
+ "Last Login" : "آخر تسجيل دخول",
+ "change full name" : "تغيير اسمك الكامل",
+ "set new password" : "اعداد كلمة مرور جديدة",
+ "Default" : "افتراضي"
+},
+"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/settings/l10n/ar.json b/settings/l10n/ar.json
new file mode 100644
index 00000000000..5e2fc16b24e
--- /dev/null
+++ b/settings/l10n/ar.json
@@ -0,0 +1,154 @@
+{ "translations": {
+ "Cron" : "مجدول",
+ "Sharing" : "مشاركة",
+ "Security" : "الأمان",
+ "Email Server" : "خادم البريد الالكتروني",
+ "Log" : "سجل",
+ "Authentication error" : "لم يتم التأكد من الشخصية بنجاح",
+ "Your full name has been changed." : "اسمك الكامل تم تغييره.",
+ "Unable to change full name" : "لم يتم التمكن من تغيير اسمك الكامل",
+ "Group already exists" : "المجموعة موجودة مسبقاً",
+ "Unable to add group" : "فشل إضافة المجموعة",
+ "Email saved" : "تم حفظ البريد الإلكتروني",
+ "Invalid email" : "البريد الإلكتروني غير صالح",
+ "Unable to delete group" : "فشل إزالة المجموعة",
+ "Unable to delete user" : "فشل إزالة المستخدم",
+ "Backups restored successfully" : "تم إسترجاع النسخة الإحتياطية بنجاح",
+ "Language changed" : "تم تغيير اللغة",
+ "Invalid request" : "طلب غير مفهوم",
+ "Admins can't remove themself from the admin group" : "لا يستطيع المدير إزالة حسابه من مجموعة المديرين",
+ "Unable to add user to group %s" : "فشل إضافة المستخدم الى المجموعة %s",
+ "Unable to remove user from group %s" : "فشل إزالة المستخدم من المجموعة %s",
+ "Couldn't update app." : "تعذر تحديث التطبيق.",
+ "Wrong password" : "كلمة مرور خاطئة",
+ "No user supplied" : "لم يتم توفير مستخدم ",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "يرجى توفير كلمة مرور المسؤول المستردة, وإلا سيتم فقد جميع بيانات المستخدم ",
+ "Wrong admin recovery password. Please check the password and try again." : "خطا في كلمة مرور المسؤول المستردة, يرجى التاكد من كلمة المرور والمحاولة مرة اخرى.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Back-end لا يدعم تغيير كلمة المرور, لاكن مفتاح تشفير المستخدمين تم تحديثة بنجاح.",
+ "Unable to change password" : "لا يمكن تغيير كلمة المرور",
+ "Enabled" : "مفعلة",
+ "Saved" : "حفظ",
+ "test email settings" : "إعدادات البريد التجريبي",
+ "If you received this email, the settings seem to be correct." : "تبدوا الاعدادت صحيحة اذا تلقيت هذا البريد الالكتروني",
+ "Email sent" : "تم ارسال البريد الالكتروني",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "هل أنت متأكد انك تريد إضافة \"{domain}\" كنطاق موثوق فيه.",
+ "Sending..." : "جاري الارسال ...",
+ "All" : "الكل",
+ "Please wait...." : "الرجاء الانتظار ...",
+ "Error while disabling app" : "خطا عند تعطيل البرنامج",
+ "Disable" : "إيقاف",
+ "Enable" : "تفعيل",
+ "Error while enabling app" : "خطا عند تفعيل البرنامج ",
+ "Updating...." : "جاري التحديث ...",
+ "Error while updating app" : "حصل خطأ أثناء تحديث التطبيق",
+ "Updated" : "تم التحديث بنجاح",
+ "Uninstalling ...." : "جاري إلغاء التثبيت ...",
+ "Uninstall" : "ألغاء التثبيت",
+ "Select a profile picture" : "اختر صورة الملف الشخصي ",
+ "Very weak password" : "كلمة السر ضعيفة جدا",
+ "Weak password" : "كلمة السر ضعيفة",
+ "Good password" : "كلمة السر جيدة",
+ "Strong password" : "كلمة السر قوية",
+ "Delete" : "إلغاء",
+ "Decrypting files... Please wait, this can take some time." : "فك تشفير الملفات... يرجى الانتظار, من الممكن ان ياخذ بعض الوقت.",
+ "Groups" : "مجموعات",
+ "undo" : "تراجع",
+ "never" : "بتاتا",
+ "add group" : "اضافة مجموعة",
+ "A valid username must be provided" : "يجب ادخال اسم مستخدم صحيح",
+ "Error creating user" : "حصل خطأ اثناء انشاء مستخدم",
+ "A valid password must be provided" : "يجب ادخال كلمة مرور صحيحة",
+ "Warning: Home directory for user \"{user}\" already exists" : "تحذير: المجلد الرئيسي لـ المستخدم \"{user}\" موجود مسبقا",
+ "__language_name__" : "__language_name__",
+ "Encryption" : "التشفير",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "كل شيء (مشاكل فادحة, اخطاء , تحذيرات , معلومات , تصحيح الاخطاء)",
+ "Info, warnings, errors and fatal issues" : "معلومات , تحذيرات , اخطاء , مشاكل فادحة ",
+ "Warnings, errors and fatal issues" : "تحذيرات , اخطاء , مشاكل فادحة ",
+ "Errors and fatal issues" : "اخطاء ومشاكل فادحة ",
+ "Fatal issues only" : "مشاكل فادحة فقط ",
+ "None" : "لا شيء",
+ "Login" : "تسجيل الدخول",
+ "Security Warning" : "تحذير أمان",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "انت تستخدم %s عن طريق HTTP . نحن نقترح باصرار ان تهيء الخادم ليتمكن من الوصول عن طريق HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "مجلد data و ملفاتك يمكن الوصول لها عن طريق الانترنت. ملف .htaccess لا يمكن تشغيلة. نحن نقترح باصرار ان تعيد اعداد خادمك لمنع الدخول الى بياناتك عن طريق الانترنت او بالامكان ان تنقل مجلد data خارج document root بشكل مؤقت. ",
+ "Setup Warning" : "تحذير في التنصيب",
+ "Module 'fileinfo' missing" : "الموديل 'fileinfo' مفقود",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "موديل 'fileinfo' الخاص بالـPHP مفقود . نوصي بتفعيل هذا الموديل للحصول على أفضل النتائج مع خاصية التحقق ",
+ "Your PHP version is outdated" : "اصدار PHP الخاص بك قديم",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "اصدار PHP الخاص بك قديم. نحن نقترح لك باصرار ان يتم ترقية الاصدار الى 5.3.8 او احدث بسبب ان الاصدارات القديمة معروفة انها مهمشة. من الممكن ان التنزيل قد لا يتم بصورة صحيحة.",
+ "Locale not working" : "اللغه لا تعمل",
+ "System locale can not be set to a one which supports UTF-8." : "لا يمكن تعيين لغة النظام الى احد اللغات التي تدعم UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "هذا يعني انه من الممكن ان يكون هناك مشكلة في بعض الاحرف في اسم الملف.",
+ "Please double check the installation guides ." : "الرجاء التحقق من دليل التنصيب .",
+ "Execute one task with each page loaded" : "قم بتنفيذ مهمة واحدة مع كل صفحة تم تحميلها",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "الملف cron.php تم تسجيله فى خدمه webcron لاستدعاء الملف cron.php كل 15 دقيقه",
+ "Allow apps to use the Share API" : "السماح للتطبيقات بالمشاركة عن طريق الAPI",
+ "Allow users to share via link" : "السماح للمستخدم بمشاركة الملف عن طريق رابط",
+ "Allow public uploads" : "السماح بالرفع للعامة ",
+ "Expire after " : "ينتهي بعد",
+ "days" : "أيام",
+ "Allow resharing" : "السماح بإعادة المشاركة ",
+ "Enforce HTTPS" : "فرض HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "اجبار العميل للاتصال بـ %s عن طريق اتصال مشفر",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "يرجى الاتصال بـ %s عن طريق HTTPS لتفعيل او تعطيل SSL enforcement.",
+ "Send mode" : "وضعية الإرسال",
+ "Authentication method" : "أسلوب التطابق",
+ "Server address" : "عنوان الخادم",
+ "Port" : "المنفذ",
+ "Log level" : "مستوى السجل",
+ "More" : "المزيد",
+ "Less" : "أقل",
+ "Version" : "إصدار",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "طوّر من قبل ownCloud مجتمع , الـ النص المصدري مرخص بموجب رخصة أفيرو العمومية .",
+ "by" : "من قبل",
+ "Documentation:" : "التوثيق",
+ "User Documentation" : "كتاب توثيق المستخدم",
+ "Uninstall App" : "أزالة تطبيق",
+ "Administrator Documentation" : "كتاب توثيق المدير",
+ "Online Documentation" : "توثيق متوفر على الشبكة",
+ "Forum" : "منتدى",
+ "Bugtracker" : "تعقب علة",
+ "Commercial Support" : "دعم تجاري",
+ "Get the apps to sync your files" : "احصل على التطبيقات لمزامنة ملفاتك",
+ "Show First Run Wizard again" : "ابدأ خطوات بداية التشغيل من جديد",
+ "You have used %s of the available %s " : "تم إستهلاك %s من المتوفر %s ",
+ "Password" : "كلمة المرور",
+ "Your password was changed" : "لقد تم تغيير كلمة السر",
+ "Unable to change your password" : "لم يتم تعديل كلمة السر بنجاح",
+ "Current password" : "كلمات السر الحالية",
+ "New password" : "كلمات سر جديدة",
+ "Change password" : "عدل كلمة السر",
+ "Full Name" : "اسمك الكامل",
+ "Email" : "البريد الإلكترونى",
+ "Your email address" : "عنوانك البريدي",
+ "Profile picture" : "صورة الملف الشخصي",
+ "Upload new" : "رفع الان",
+ "Select new from Files" : "اختر جديد من الملفات ",
+ "Remove image" : "إزالة الصورة",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "سواء png او jpg. بامكانك قص الصورة ",
+ "Your avatar is provided by your original account." : "صورتك الرمزية يتم توفيرها عن طريق حسابك الاصلي.",
+ "Cancel" : "الغاء",
+ "Choose as profile image" : "اختر صورة الملف الشخصي",
+ "Language" : "اللغة",
+ "Help translate" : "ساعد في الترجمه",
+ "Valid until" : "صالح حتى",
+ "The encryption app is no longer enabled, please decrypt all your files" : "البرنامج المشفر لم يعد مفعل, يرجى فك التشفير عن كل ملفاتك",
+ "Log-in password" : "كلمه سر الدخول",
+ "Decrypt all Files" : "فك تشفير جميع الملفات ",
+ "Username" : "إسم المستخدم",
+ "Create" : "انشئ",
+ "Admin Recovery Password" : "استعادة كلمة المرور للمسؤول",
+ "Enter the recovery password in order to recover the users files during password change" : "ادخل كلمة المرور المستعادة من اجل استرداد ملفات المستخدمين اثناء تغيير كلمة المرور",
+ "Group" : "مجموعة",
+ "Everyone" : "الجميع",
+ "Default Quota" : "الحصة النسبية الإفتراضية",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "يرجى ادخال تخزين quota (مثل:\"512 MB\" او \"12 GB\")",
+ "Unlimited" : "غير محدود",
+ "Other" : "شيء آخر",
+ "Quota" : "حصه",
+ "Last Login" : "آخر تسجيل دخول",
+ "change full name" : "تغيير اسمك الكامل",
+ "set new password" : "اعداد كلمة مرور جديدة",
+ "Default" : "افتراضي"
+},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
+}
\ No newline at end of file
diff --git a/settings/l10n/ar.php b/settings/l10n/ar.php
deleted file mode 100644
index ab69d19317c..00000000000
--- a/settings/l10n/ar.php
+++ /dev/null
@@ -1,167 +0,0 @@
- "ادخال خاطئ لقيمة %s",
-"Saved" => "حفظ",
-"test email settings" => "إعدادات البريد التجريبي",
-"If you received this email, the settings seem to be correct." => "تبدوا الاعدادت صحيحة اذا تلقيت هذا البريد الالكتروني",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "حدث خطأ اثناء ارسال البريد الالكتروني ، الرجاء مراجعة اعداداتك",
-"Email sent" => "تم ارسال البريد الالكتروني",
-"Send mode" => "وضعية الإرسال",
-"Encryption" => "التشفير",
-"Authentication method" => "أسلوب التطابق",
-"Unable to load list from App Store" => "فشل تحميل القائمة من الآب ستور",
-"Authentication error" => "لم يتم التأكد من الشخصية بنجاح",
-"Your full name has been changed." => "اسمك الكامل تم تغييره.",
-"Unable to change full name" => "لم يتم التمكن من تغيير اسمك الكامل",
-"Group already exists" => "المجموعة موجودة مسبقاً",
-"Unable to add group" => "فشل إضافة المجموعة",
-"Email saved" => "تم حفظ البريد الإلكتروني",
-"Invalid email" => "البريد الإلكتروني غير صالح",
-"Unable to delete group" => "فشل إزالة المجموعة",
-"Unable to delete user" => "فشل إزالة المستخدم",
-"Backups restored successfully" => "تم إسترجاع النسخة الإحتياطية بنجاح",
-"Language changed" => "تم تغيير اللغة",
-"Invalid request" => "طلب غير مفهوم",
-"Admins can't remove themself from the admin group" => "لا يستطيع المدير إزالة حسابه من مجموعة المديرين",
-"Unable to add user to group %s" => "فشل إضافة المستخدم الى المجموعة %s",
-"Unable to remove user from group %s" => "فشل إزالة المستخدم من المجموعة %s",
-"Couldn't update app." => "تعذر تحديث التطبيق.",
-"Wrong password" => "كلمة مرور خاطئة",
-"No user supplied" => "لم يتم توفير مستخدم ",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "يرجى توفير كلمة مرور المسؤول المستردة, وإلا سيتم فقد جميع بيانات المستخدم ",
-"Wrong admin recovery password. Please check the password and try again." => "خطا في كلمة مرور المسؤول المستردة, يرجى التاكد من كلمة المرور والمحاولة مرة اخرى.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Back-end لا يدعم تغيير كلمة المرور, لاكن مفتاح تشفير المستخدمين تم تحديثة بنجاح.",
-"Unable to change password" => "لا يمكن تغيير كلمة المرور",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "هل أنت متأكد انك تريد إضافة \"{domain}\" كنطاق موثوق فيه.",
-"Sending..." => "جاري الارسال ...",
-"All" => "الكل",
-"User Documentation" => "كتاب توثيق المستخدم",
-"Update to {appversion}" => "تم التحديث الى ",
-"Uninstall App" => "أزالة تطبيق",
-"Disable" => "إيقاف",
-"Enable" => "تفعيل",
-"Please wait...." => "الرجاء الانتظار ...",
-"Error while disabling app" => "خطا عند تعطيل البرنامج",
-"Error while enabling app" => "خطا عند تفعيل البرنامج ",
-"Updating...." => "جاري التحديث ...",
-"Error while updating app" => "حصل خطأ أثناء تحديث التطبيق",
-"Error" => "خطأ",
-"Update" => "حدث",
-"Updated" => "تم التحديث بنجاح",
-"Uninstalling ...." => "جاري إلغاء التثبيت ...",
-"Uninstall" => "ألغاء التثبيت",
-"Select a profile picture" => "اختر صورة الملف الشخصي ",
-"Very weak password" => "كلمة السر ضعيفة جدا",
-"Weak password" => "كلمة السر ضعيفة",
-"Good password" => "كلمة السر جيدة",
-"Strong password" => "كلمة السر قوية",
-"Delete" => "إلغاء",
-"Decrypting files... Please wait, this can take some time." => "فك تشفير الملفات... يرجى الانتظار, من الممكن ان ياخذ بعض الوقت.",
-"Groups" => "مجموعات",
-"undo" => "تراجع",
-"Group Admin" => "مدير المجموعة",
-"never" => "بتاتا",
-"add group" => "اضافة مجموعة",
-"A valid username must be provided" => "يجب ادخال اسم مستخدم صحيح",
-"Error creating user" => "حصل خطأ اثناء انشاء مستخدم",
-"A valid password must be provided" => "يجب ادخال كلمة مرور صحيحة",
-"Warning: Home directory for user \"{user}\" already exists" => "تحذير: المجلد الرئيسي لـ المستخدم \"{user}\" موجود مسبقا",
-"__language_name__" => "__language_name__",
-"Everything (fatal issues, errors, warnings, info, debug)" => "كل شيء (مشاكل فادحة, اخطاء , تحذيرات , معلومات , تصحيح الاخطاء)",
-"Info, warnings, errors and fatal issues" => "معلومات , تحذيرات , اخطاء , مشاكل فادحة ",
-"Warnings, errors and fatal issues" => "تحذيرات , اخطاء , مشاكل فادحة ",
-"Errors and fatal issues" => "اخطاء ومشاكل فادحة ",
-"Fatal issues only" => "مشاكل فادحة فقط ",
-"None" => "لا شيء",
-"Login" => "تسجيل الدخول",
-"Security Warning" => "تحذير أمان",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "انت تستخدم %s عن طريق HTTP . نحن نقترح باصرار ان تهيء الخادم ليتمكن من الوصول عن طريق HTTPS.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "مجلد data و ملفاتك يمكن الوصول لها عن طريق الانترنت. ملف .htaccess لا يمكن تشغيلة. نحن نقترح باصرار ان تعيد اعداد خادمك لمنع الدخول الى بياناتك عن طريق الانترنت او بالامكان ان تنقل مجلد data خارج document root بشكل مؤقت. ",
-"Setup Warning" => "تحذير في التنصيب",
-"Module 'fileinfo' missing" => "الموديل 'fileinfo' مفقود",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "موديل 'fileinfo' الخاص بالـPHP مفقود . نوصي بتفعيل هذا الموديل للحصول على أفضل النتائج مع خاصية التحقق ",
-"Your PHP version is outdated" => "اصدار PHP الخاص بك قديم",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "اصدار PHP الخاص بك قديم. نحن نقترح لك باصرار ان يتم ترقية الاصدار الى 5.3.8 او احدث بسبب ان الاصدارات القديمة معروفة انها مهمشة. من الممكن ان التنزيل قد لا يتم بصورة صحيحة.",
-"Locale not working" => "اللغه لا تعمل",
-"System locale can not be set to a one which supports UTF-8." => "لا يمكن تعيين لغة النظام الى احد اللغات التي تدعم UTF-8.",
-"This means that there might be problems with certain characters in file names." => "هذا يعني انه من الممكن ان يكون هناك مشكلة في بعض الاحرف في اسم الملف.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "نحن باصرار نقترح ان تثبت الحزم المطلوبة في نظامك لدعم احد هذة اللغات: %s.",
-"Please double check the installation guides ." => "الرجاء التحقق من دليل التنصيب .",
-"Cron" => "مجدول",
-"Execute one task with each page loaded" => "قم بتنفيذ مهمة واحدة مع كل صفحة تم تحميلها",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "الملف cron.php تم تسجيله فى خدمه webcron لاستدعاء الملف cron.php كل 15 دقيقه",
-"Sharing" => "مشاركة",
-"Allow apps to use the Share API" => "السماح للتطبيقات بالمشاركة عن طريق الAPI",
-"Allow users to share via link" => "السماح للمستخدم بمشاركة الملف عن طريق رابط",
-"Allow public uploads" => "السماح بالرفع للعامة ",
-"Expire after " => "ينتهي بعد",
-"days" => "أيام",
-"Allow resharing" => "السماح بإعادة المشاركة ",
-"Security" => "الأمان",
-"Enforce HTTPS" => "فرض HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "اجبار العميل للاتصال بـ %s عن طريق اتصال مشفر",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "يرجى الاتصال بـ %s عن طريق HTTPS لتفعيل او تعطيل SSL enforcement.",
-"Email Server" => "خادم البريد الالكتروني",
-"Server address" => "عنوان الخادم",
-"Port" => "المنفذ",
-"Log" => "سجل",
-"Log level" => "مستوى السجل",
-"More" => "المزيد",
-"Less" => "أقل",
-"Version" => "إصدار",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "طوّر من قبل ownCloud مجتمع , الـ النص المصدري مرخص بموجب رخصة أفيرو العمومية .",
-"Add your App" => "أضف تطبيقاتك",
-"More Apps" => "المزيد من التطبيقات",
-"Select an App" => "إختر تطبيقاً",
-"Documentation:" => "التوثيق",
-"See application page at apps.owncloud.com" => "راجع صفحة التطبيق على apps.owncloud.com",
-" -licensed by " => " -ترخيص من قبل ",
-"Administrator Documentation" => "كتاب توثيق المدير",
-"Online Documentation" => "توثيق متوفر على الشبكة",
-"Forum" => "منتدى",
-"Bugtracker" => "تعقب علة",
-"Commercial Support" => "دعم تجاري",
-"Get the apps to sync your files" => "احصل على التطبيقات لمزامنة ملفاتك",
-"Show First Run Wizard again" => "ابدأ خطوات بداية التشغيل من جديد",
-"You have used %s of the available %s " => "تم إستهلاك %s من المتوفر %s ",
-"Password" => "كلمة المرور",
-"Your password was changed" => "لقد تم تغيير كلمة السر",
-"Unable to change your password" => "لم يتم تعديل كلمة السر بنجاح",
-"Current password" => "كلمات السر الحالية",
-"New password" => "كلمات سر جديدة",
-"Change password" => "عدل كلمة السر",
-"Full Name" => "اسمك الكامل",
-"Email" => "البريد الإلكترونى",
-"Your email address" => "عنوانك البريدي",
-"Profile picture" => "صورة الملف الشخصي",
-"Upload new" => "رفع الان",
-"Select new from Files" => "اختر جديد من الملفات ",
-"Remove image" => "إزالة الصورة",
-"Either png or jpg. Ideally square but you will be able to crop it." => "سواء png او jpg. بامكانك قص الصورة ",
-"Your avatar is provided by your original account." => "صورتك الرمزية يتم توفيرها عن طريق حسابك الاصلي.",
-"Cancel" => "الغاء",
-"Choose as profile image" => "اختر صورة الملف الشخصي",
-"Language" => "اللغة",
-"Help translate" => "ساعد في الترجمه",
-"Valid until" => "صالح حتى",
-"The encryption app is no longer enabled, please decrypt all your files" => "البرنامج المشفر لم يعد مفعل, يرجى فك التشفير عن كل ملفاتك",
-"Log-in password" => "كلمه سر الدخول",
-"Decrypt all Files" => "فك تشفير جميع الملفات ",
-"Login Name" => "اسم الدخول",
-"Create" => "انشئ",
-"Admin Recovery Password" => "استعادة كلمة المرور للمسؤول",
-"Enter the recovery password in order to recover the users files during password change" => "ادخل كلمة المرور المستعادة من اجل استرداد ملفات المستخدمين اثناء تغيير كلمة المرور",
-"Group" => "مجموعة",
-"Everyone" => "الجميع",
-"Default Quota" => "الحصة النسبية الإفتراضية",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "يرجى ادخال تخزين quota (مثل:\"512 MB\" او \"12 GB\")",
-"Unlimited" => "غير محدود",
-"Other" => "شيء آخر",
-"Username" => "إسم المستخدم",
-"Quota" => "حصه",
-"Last Login" => "آخر تسجيل دخول",
-"change full name" => "تغيير اسمك الكامل",
-"set new password" => "اعداد كلمة مرور جديدة",
-"Default" => "افتراضي"
-);
-$PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;";
diff --git a/settings/l10n/ast.js b/settings/l10n/ast.js
new file mode 100644
index 00000000000..12482c4ddb5
--- /dev/null
+++ b/settings/l10n/ast.js
@@ -0,0 +1,223 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Cron" : "Cron",
+ "Sharing" : "Compartiendo",
+ "Security" : "Seguridá",
+ "Email Server" : "Sirvidor de corréu-e",
+ "Log" : "Rexistru",
+ "Authentication error" : "Fallu d'autenticación",
+ "Your full name has been changed." : "Camudóse'l nome completu.",
+ "Unable to change full name" : "Nun pue camudase'l nome completu",
+ "Group already exists" : "El grupu yá esiste",
+ "Unable to add group" : "Nun pudo amestase'l grupu",
+ "Files decrypted successfully" : "Descifráronse los ficheros",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nun pudieron descifrase sus ficheros. Revisa'l owncloud.log o consulta col alministrador",
+ "Couldn't decrypt your files, check your password and try again" : "Nun pudieron descifrase los ficheros. Revisa la contraseña ya inténtalo dempués",
+ "Encryption keys deleted permanently" : "Desaniciaes dafechu les claves de cifráu",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Nun pudieron desaniciase dafechu les tos claves de cifráu, por favor comprueba'l to owncloud.log o entruga a un alministrador",
+ "Couldn't remove app." : "Nun pudo desaniciase l'aplicación.",
+ "Email saved" : "Corréu-e guardáu",
+ "Invalid email" : "Corréu electrónicu non válidu",
+ "Unable to delete group" : "Nun pudo desaniciase'l grupu",
+ "Unable to delete user" : "Nun pudo desaniciase l'usuariu",
+ "Backups restored successfully" : "Copia de seguridá restaurada",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nun pudieron restaurase dafechu les tos claves de cifráu, por favor comprueba'l to owncloud.log o entruga a un alministrador",
+ "Language changed" : "Camudóse la llingua",
+ "Invalid request" : "Solicitú inválida",
+ "Admins can't remove themself from the admin group" : "Los alministradores nun puen desaniciase a ellos mesmos del grupu d'alministrador",
+ "Unable to add user to group %s" : "Nun pudo amestase l'usuariu al grupu %s",
+ "Unable to remove user from group %s" : "Nun pudo desaniciase al usuariu del grupu %s",
+ "Couldn't update app." : "Nun pudo anovase l'aplicación.",
+ "Wrong password" : "Contraseña incorreuta",
+ "No user supplied" : "Nun s'especificó un usuariu",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Facilita una contraseña de recuperación d'alministrador, sinón podríen perdese tolos datos d'usuariu",
+ "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación d'alministrador incorreuta. Comprueba la contraseña ya inténtalo dempués.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "El back-end nun sofita cambeos de contraseña, pero la contraseña de cifráu del usuariu anovóse afechiscamente.",
+ "Unable to change password" : "Nun pudo camudase la contraseña",
+ "Enabled" : "Habilitar",
+ "Not enabled" : "Desactiváu",
+ "Recommended" : "Recomendáu",
+ "Saved" : "Guardáu",
+ "test email settings" : "probar configuración de corréu",
+ "If you received this email, the settings seem to be correct." : "Si recibisti esti mensaxe de corréu-e, la to configuración ta correuta.",
+ "A problem occurred while sending the email. Please revise your settings." : "Hebo un problema al unviar el mensaxe. Revisa la configuración.",
+ "Email sent" : "Corréu-e unviáu",
+ "You need to set your user email before being able to send test emails." : "Tienes de configurar la direición de corréu-e enantes de poder unviar mensaxes de prueba.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "¿De xuru que quies amestar \"{domain}\" como dominiu de confianza?",
+ "Add trusted domain" : "Amestar dominiu de confianza",
+ "Sending..." : "Unviando...",
+ "All" : "Toos",
+ "Please wait...." : "Espera, por favor....",
+ "Error while disabling app" : "Fallu mientres se desactivaba l'aplicación",
+ "Disable" : "Desactivar",
+ "Enable" : "Activar",
+ "Error while enabling app" : "Fallu mientres s'activaba l'aplicación",
+ "Updating...." : "Anovando....",
+ "Error while updating app" : "Fallu mientres s'anovaba l'aplicación",
+ "Updated" : "Anováu",
+ "Uninstalling ...." : "Desinstalando ...",
+ "Error while uninstalling app" : "Fallu mientres se desinstalaba l'aplicación",
+ "Uninstall" : "Desinstalar",
+ "Select a profile picture" : "Esbillar una imaxe de perfil",
+ "Very weak password" : "Contraseña mui feble",
+ "Weak password" : "Contraseña feble",
+ "So-so password" : "Contraseña pasable",
+ "Good password" : "Contraseña bona",
+ "Strong password" : "Contraseña mui bona",
+ "Valid until {date}" : "Válidu fasta {date}",
+ "Delete" : "Desaniciar",
+ "Decrypting files... Please wait, this can take some time." : "Descifrando ficheros... Espera por favor, esto pue llevar daqué de tiempu.",
+ "Delete encryption keys permanently." : "Desaniciar dafechu les claves de cifráu.",
+ "Restore encryption keys." : "Restaurar claves de cifráu.",
+ "Groups" : "Grupos",
+ "Unable to delete {objName}" : "Nun pue desaniciase {objName}",
+ "Error creating group" : "Fallu creando grupu",
+ "A valid group name must be provided" : "Hai d'escribir un nome de grupu válidu",
+ "deleted {groupName}" : "desaniciáu {groupName}",
+ "undo" : "desfacer",
+ "no group" : "Ensín grupu",
+ "never" : "enxamás",
+ "deleted {userName}" : "desaniciáu {userName}",
+ "add group" : "amestar Grupu",
+ "A valid username must be provided" : "Tien d'apurrise un nome d'usuariu válidu",
+ "Error creating user" : "Fallu al crear usuariu",
+ "A valid password must be provided" : "Tien d'apurrise una contraseña válida",
+ "Warning: Home directory for user \"{user}\" already exists" : "Avisu: el direutoriu d'aniciu pal usuariu \"{user}\" yá esiste.",
+ "__language_name__" : "Asturianu",
+ "Personal Info" : "Información personal",
+ "SSL root certificates" : "Certificaos raíz SSL",
+ "Encryption" : "Cifráu",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Too (Información, Avisos, Fallos, debug y problemes fatales)",
+ "Info, warnings, errors and fatal issues" : "Información, Avisos, Fallos y problemes fatales",
+ "Warnings, errors and fatal issues" : "Avisos, fallos y problemes fatales",
+ "Errors and fatal issues" : "Fallos y problemes fatales",
+ "Fatal issues only" : "Namái problemes fatales",
+ "None" : "Dengún",
+ "Login" : "Entamar sesión",
+ "Plain" : "Planu",
+ "NT LAN Manager" : "Xestor de NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Avisu de seguridá",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Tas ingresando a %s vía HTTP. Encamentámoste que configures el sirvidor pa solicitar HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El direutoriu de datos y ficheros ye dablemente accesible dende Internet, darréu que'l ficheru .htaccess nun ta funcionando. Suxerímoste que configures el sirvidor web de mou que'l direutoriu de datos nun seya accesible o que muevas talu direutoriu fuera del raigañu de documentos del sirvidor web.",
+ "Setup Warning" : "Avisu de configuración",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ta aparentemente configuráu pa desaniciar bloques de documentos en llinia. Esto va facer que delles aplicaciones principales nun tean accesibles.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dablemente esto seya culpa d'un caché o acelerador, como por exemplu Zend OPcache o eAccelerator.",
+ "Database Performance Info" : "Información de rindimientu de la base de datos",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Ta usándose SQLite como base de datos. Pa instalaciones más grandes, recomendamos cambiar esto. Pa migrar a otra base de datos, usa la ferramienta de llinia de comandos: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Nun s'atopó'l módulu \"fileinfo\"",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Nun s'atopó'l módulu PHP 'fileinfo'. Encamentámoste qu'habilites esti módulu pa obtener meyores resultaos cola deteición de tribes MIME.",
+ "Your PHP version is outdated" : "La versión de PHP nun ta anovada",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "La versión de PHP caducó. Suxerímose que l'anueves a 5.3.8 o a una más nueva porque davezu, les versiones vieyes nun funcionen bien. Puede ser qu'esta instalación nun tea funcionando bien.",
+ "PHP charset is not set to UTF-8" : "El xuegu de caracteres de PHP nun ta afitáu pa UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "El xuegu de caracteres de PHP nun ta afitáu pa UTF-8. Esto pue causar problemes graves con nomes d'archivos que nun contengan caracteres ASCII. Encamentamos camudar el valor de 'default_charset' a 'UTF-8'.",
+ "Locale not working" : "La configuración rexonal nun ta funcionando",
+ "System locale can not be set to a one which supports UTF-8." : "Nun se pue escoyer una configuración rexonal que sofite UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Esto significa que pue haber problemes con ciertos caráuteres nos nomes de los ficheros.",
+ "URL generation in notification emails" : "Xeneración d'URL en mensaxes de notificación",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si la so instalación nun ta asitiada nel raigañu del dominiu y uses el cron del sistema, pues atopar problemas cola xeneración d'URL. Pa evitar estos problemes, afita la opción \"overwritewebroot\" nel tu ficheru config.php pa qu'use'l camín del raigañu la so instalación (Suxerencia: \"%s\")",
+ "Please double check the installation guides ." : "Por favor, comprueba les guíes d'instalación .",
+ "Last cron was executed at %s." : "Cron executóse per cabera vegada a les %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Cron executóse per cabera vegada a les %s. Esto foi hai más d'una hora, daqué anda mal.",
+ "Cron was not executed yet!" : "¡Cron entá nun s'executó!",
+ "Execute one task with each page loaded" : "Executar una xera con cada páxina cargada",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php rexístrase nun serviciu webcron pa llamar a cron.php cada 15 minutos al traviés de HTTP.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el serviciu cron del sistema pa llamar al ficheru cron.php cada 15 mins.",
+ "Allow apps to use the Share API" : "Permitir a les aplicaciones usar la API de Compartición",
+ "Allow users to share via link" : "Permitir a los usuarios compartir vía enllaz",
+ "Enforce password protection" : "Ameyora la proteición por contraseña.",
+ "Allow public uploads" : "Permitir xubes públiques",
+ "Set default expiration date" : "Afitar la data d'espiración predeterminada",
+ "Expire after " : "Caduca dempués de",
+ "days" : "díes",
+ "Enforce expiration date" : "Facer cumplir la data de caducidá",
+ "Allow resharing" : "Permitir re-compartición",
+ "Restrict users to only share with users in their groups" : "Restrinxir a los usuarios a compartir namái con otros usuarios nos sos grupos",
+ "Allow users to send mail notification for shared files" : "Permitir a los usuarios unviar mensaxes de notificación pa ficheros compartíos",
+ "Exclude groups from sharing" : "Esclúi grupos de compartir",
+ "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos van poder siguir recibiendo conteníos compartíos, pero nun van poder anicialos",
+ "Enforce HTTPS" : "Forciar HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Forciar a los veceros a coneutase a %s per duana d'una conexón cifrada.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Por favor, conéutate a %s al traviés de HTTPS p'habilitar o deshabilitar l'aplicación de SSL.",
+ "This is used for sending out notifications." : "Esto úsase pa unviar notificaciones.",
+ "Send mode" : "Mou d'unviu",
+ "From address" : "Dende la direición",
+ "mail" : "corréu",
+ "Authentication method" : "Métodu d'autenticación",
+ "Authentication required" : "Necesítase autenticación",
+ "Server address" : "Direición del sirvidor",
+ "Port" : "Puertu",
+ "Credentials" : "Credenciales",
+ "SMTP Username" : "Nome d'usuariu SMTP",
+ "SMTP Password" : "Contraseña SMTP",
+ "Test email settings" : "Probar configuración de corréu electrónicu",
+ "Send email" : "Unviar mensaxe",
+ "Log level" : "Nivel de rexistru",
+ "More" : "Más",
+ "Less" : "Menos",
+ "Version" : "Versión",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Desendolcáu pola comunidad ownCloud , el códigu fonte ta baxo llicencia AGPL .",
+ "by" : "por",
+ "Documentation:" : "Documentación:",
+ "User Documentation" : "Documentación d'usuariu",
+ "Admin Documentation" : "Documentación p'alministradores",
+ "Enable only for specific groups" : "Habilitar namái pa grupos específicos",
+ "Uninstall App" : "Desinstalar aplicación",
+ "Administrator Documentation" : "Documentación d'alministrador",
+ "Online Documentation" : "Documentación en llinia",
+ "Forum" : "Foru",
+ "Bugtracker" : "Rastrexador de fallos",
+ "Commercial Support" : "Sofitu comercial",
+ "Get the apps to sync your files" : "Obtener les aplicaciones pa sincronizar ficheros",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Si quies sofitar el proyeutu\n\t\txúnite al desendolcu \n\t\to\n\t\t¡espardi la pallabra! !",
+ "Show First Run Wizard again" : "Amosar nuevamente l'Encontu d'execución inicial",
+ "You have used %s of the available %s " : "Usasti %s de los %s disponibles",
+ "Password" : "Contraseña",
+ "Your password was changed" : "Camudóse la contraseña",
+ "Unable to change your password" : "Nun pudo camudase la contraseña",
+ "Current password" : "Contraseña actual",
+ "New password" : "Contraseña nueva",
+ "Change password" : "Camudar contraseña",
+ "Full Name" : "Nome completu",
+ "Email" : "Corréu-e",
+ "Your email address" : "Direición de corréu-e",
+ "Fill in an email address to enable password recovery and receive notifications" : "Introducir una direición de corréu-e p'activar la recuperación de contraseñes y recibir notificaciones",
+ "Profile picture" : "Semeya de perfil",
+ "Upload new" : "Xubir otra",
+ "Select new from Files" : "Esbillar otra dende Ficheros",
+ "Remove image" : "Desaniciar imaxe",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Ficheru PNG o JPG. Preferiblemente cuadráu, pero vas poder retayalu.",
+ "Your avatar is provided by your original account." : "L'avatar ta proporcionáu pola to cuenta orixinal.",
+ "Cancel" : "Encaboxar",
+ "Choose as profile image" : "Esbillar como imaxe de perfil",
+ "Language" : "Llingua",
+ "Help translate" : "Ayúdanos nes traducciones",
+ "Import Root Certificate" : "Importar certificáu raíz",
+ "The encryption app is no longer enabled, please decrypt all your files" : "L'aplicación de cifráu yá nun ta activada, descifra tolos ficheros",
+ "Log-in password" : "Contraseña d'accesu",
+ "Decrypt all Files" : "Descifrar ficheros",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Les claves de cifráu van guardase nuna llocalización segura. D'esta miente, en casu de que daqué saliere mal, vas poder recuperar les claves. Desanicia dafechu les claves de cifráu namái si tas seguru de que los ficheros descifráronse correcho.",
+ "Restore Encryption Keys" : "Restaurar claves de cifráu.",
+ "Delete Encryption Keys" : "Desaniciar claves de cifráu",
+ "Username" : "Nome d'usuariu",
+ "Create" : "Crear",
+ "Admin Recovery Password" : "Recuperación de la contraseña d'alministración",
+ "Enter the recovery password in order to recover the users files during password change" : "Introduz la contraseña de recuperación col envís de recuperar los ficheros de los usuarios mientres el cambéu de contraseña.",
+ "Add Group" : "Amestar grupu",
+ "Group" : "Grupu",
+ "Everyone" : "Toos",
+ "Admins" : "Almins",
+ "Default Quota" : "Cuota predeterminada",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indica la cuota d'almacenamientu (ex: \"512 MB\" o \"12 GB\")",
+ "Unlimited" : "Non llendáu",
+ "Other" : "Otru",
+ "Quota" : "Cuota",
+ "Storage Location" : "Llocalización d'almacenamientu",
+ "Last Login" : "Caberu aniciu de sesión",
+ "change full name" : "camudar el nome completu",
+ "set new password" : "afitar nueva contraseña",
+ "Default" : "Predetermináu"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/ast.json b/settings/l10n/ast.json
new file mode 100644
index 00000000000..8ab5e2e448a
--- /dev/null
+++ b/settings/l10n/ast.json
@@ -0,0 +1,221 @@
+{ "translations": {
+ "Cron" : "Cron",
+ "Sharing" : "Compartiendo",
+ "Security" : "Seguridá",
+ "Email Server" : "Sirvidor de corréu-e",
+ "Log" : "Rexistru",
+ "Authentication error" : "Fallu d'autenticación",
+ "Your full name has been changed." : "Camudóse'l nome completu.",
+ "Unable to change full name" : "Nun pue camudase'l nome completu",
+ "Group already exists" : "El grupu yá esiste",
+ "Unable to add group" : "Nun pudo amestase'l grupu",
+ "Files decrypted successfully" : "Descifráronse los ficheros",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nun pudieron descifrase sus ficheros. Revisa'l owncloud.log o consulta col alministrador",
+ "Couldn't decrypt your files, check your password and try again" : "Nun pudieron descifrase los ficheros. Revisa la contraseña ya inténtalo dempués",
+ "Encryption keys deleted permanently" : "Desaniciaes dafechu les claves de cifráu",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Nun pudieron desaniciase dafechu les tos claves de cifráu, por favor comprueba'l to owncloud.log o entruga a un alministrador",
+ "Couldn't remove app." : "Nun pudo desaniciase l'aplicación.",
+ "Email saved" : "Corréu-e guardáu",
+ "Invalid email" : "Corréu electrónicu non válidu",
+ "Unable to delete group" : "Nun pudo desaniciase'l grupu",
+ "Unable to delete user" : "Nun pudo desaniciase l'usuariu",
+ "Backups restored successfully" : "Copia de seguridá restaurada",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nun pudieron restaurase dafechu les tos claves de cifráu, por favor comprueba'l to owncloud.log o entruga a un alministrador",
+ "Language changed" : "Camudóse la llingua",
+ "Invalid request" : "Solicitú inválida",
+ "Admins can't remove themself from the admin group" : "Los alministradores nun puen desaniciase a ellos mesmos del grupu d'alministrador",
+ "Unable to add user to group %s" : "Nun pudo amestase l'usuariu al grupu %s",
+ "Unable to remove user from group %s" : "Nun pudo desaniciase al usuariu del grupu %s",
+ "Couldn't update app." : "Nun pudo anovase l'aplicación.",
+ "Wrong password" : "Contraseña incorreuta",
+ "No user supplied" : "Nun s'especificó un usuariu",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Facilita una contraseña de recuperación d'alministrador, sinón podríen perdese tolos datos d'usuariu",
+ "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación d'alministrador incorreuta. Comprueba la contraseña ya inténtalo dempués.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "El back-end nun sofita cambeos de contraseña, pero la contraseña de cifráu del usuariu anovóse afechiscamente.",
+ "Unable to change password" : "Nun pudo camudase la contraseña",
+ "Enabled" : "Habilitar",
+ "Not enabled" : "Desactiváu",
+ "Recommended" : "Recomendáu",
+ "Saved" : "Guardáu",
+ "test email settings" : "probar configuración de corréu",
+ "If you received this email, the settings seem to be correct." : "Si recibisti esti mensaxe de corréu-e, la to configuración ta correuta.",
+ "A problem occurred while sending the email. Please revise your settings." : "Hebo un problema al unviar el mensaxe. Revisa la configuración.",
+ "Email sent" : "Corréu-e unviáu",
+ "You need to set your user email before being able to send test emails." : "Tienes de configurar la direición de corréu-e enantes de poder unviar mensaxes de prueba.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "¿De xuru que quies amestar \"{domain}\" como dominiu de confianza?",
+ "Add trusted domain" : "Amestar dominiu de confianza",
+ "Sending..." : "Unviando...",
+ "All" : "Toos",
+ "Please wait...." : "Espera, por favor....",
+ "Error while disabling app" : "Fallu mientres se desactivaba l'aplicación",
+ "Disable" : "Desactivar",
+ "Enable" : "Activar",
+ "Error while enabling app" : "Fallu mientres s'activaba l'aplicación",
+ "Updating...." : "Anovando....",
+ "Error while updating app" : "Fallu mientres s'anovaba l'aplicación",
+ "Updated" : "Anováu",
+ "Uninstalling ...." : "Desinstalando ...",
+ "Error while uninstalling app" : "Fallu mientres se desinstalaba l'aplicación",
+ "Uninstall" : "Desinstalar",
+ "Select a profile picture" : "Esbillar una imaxe de perfil",
+ "Very weak password" : "Contraseña mui feble",
+ "Weak password" : "Contraseña feble",
+ "So-so password" : "Contraseña pasable",
+ "Good password" : "Contraseña bona",
+ "Strong password" : "Contraseña mui bona",
+ "Valid until {date}" : "Válidu fasta {date}",
+ "Delete" : "Desaniciar",
+ "Decrypting files... Please wait, this can take some time." : "Descifrando ficheros... Espera por favor, esto pue llevar daqué de tiempu.",
+ "Delete encryption keys permanently." : "Desaniciar dafechu les claves de cifráu.",
+ "Restore encryption keys." : "Restaurar claves de cifráu.",
+ "Groups" : "Grupos",
+ "Unable to delete {objName}" : "Nun pue desaniciase {objName}",
+ "Error creating group" : "Fallu creando grupu",
+ "A valid group name must be provided" : "Hai d'escribir un nome de grupu válidu",
+ "deleted {groupName}" : "desaniciáu {groupName}",
+ "undo" : "desfacer",
+ "no group" : "Ensín grupu",
+ "never" : "enxamás",
+ "deleted {userName}" : "desaniciáu {userName}",
+ "add group" : "amestar Grupu",
+ "A valid username must be provided" : "Tien d'apurrise un nome d'usuariu válidu",
+ "Error creating user" : "Fallu al crear usuariu",
+ "A valid password must be provided" : "Tien d'apurrise una contraseña válida",
+ "Warning: Home directory for user \"{user}\" already exists" : "Avisu: el direutoriu d'aniciu pal usuariu \"{user}\" yá esiste.",
+ "__language_name__" : "Asturianu",
+ "Personal Info" : "Información personal",
+ "SSL root certificates" : "Certificaos raíz SSL",
+ "Encryption" : "Cifráu",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Too (Información, Avisos, Fallos, debug y problemes fatales)",
+ "Info, warnings, errors and fatal issues" : "Información, Avisos, Fallos y problemes fatales",
+ "Warnings, errors and fatal issues" : "Avisos, fallos y problemes fatales",
+ "Errors and fatal issues" : "Fallos y problemes fatales",
+ "Fatal issues only" : "Namái problemes fatales",
+ "None" : "Dengún",
+ "Login" : "Entamar sesión",
+ "Plain" : "Planu",
+ "NT LAN Manager" : "Xestor de NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Avisu de seguridá",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Tas ingresando a %s vía HTTP. Encamentámoste que configures el sirvidor pa solicitar HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El direutoriu de datos y ficheros ye dablemente accesible dende Internet, darréu que'l ficheru .htaccess nun ta funcionando. Suxerímoste que configures el sirvidor web de mou que'l direutoriu de datos nun seya accesible o que muevas talu direutoriu fuera del raigañu de documentos del sirvidor web.",
+ "Setup Warning" : "Avisu de configuración",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ta aparentemente configuráu pa desaniciar bloques de documentos en llinia. Esto va facer que delles aplicaciones principales nun tean accesibles.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dablemente esto seya culpa d'un caché o acelerador, como por exemplu Zend OPcache o eAccelerator.",
+ "Database Performance Info" : "Información de rindimientu de la base de datos",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Ta usándose SQLite como base de datos. Pa instalaciones más grandes, recomendamos cambiar esto. Pa migrar a otra base de datos, usa la ferramienta de llinia de comandos: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Nun s'atopó'l módulu \"fileinfo\"",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Nun s'atopó'l módulu PHP 'fileinfo'. Encamentámoste qu'habilites esti módulu pa obtener meyores resultaos cola deteición de tribes MIME.",
+ "Your PHP version is outdated" : "La versión de PHP nun ta anovada",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "La versión de PHP caducó. Suxerímose que l'anueves a 5.3.8 o a una más nueva porque davezu, les versiones vieyes nun funcionen bien. Puede ser qu'esta instalación nun tea funcionando bien.",
+ "PHP charset is not set to UTF-8" : "El xuegu de caracteres de PHP nun ta afitáu pa UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "El xuegu de caracteres de PHP nun ta afitáu pa UTF-8. Esto pue causar problemes graves con nomes d'archivos que nun contengan caracteres ASCII. Encamentamos camudar el valor de 'default_charset' a 'UTF-8'.",
+ "Locale not working" : "La configuración rexonal nun ta funcionando",
+ "System locale can not be set to a one which supports UTF-8." : "Nun se pue escoyer una configuración rexonal que sofite UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Esto significa que pue haber problemes con ciertos caráuteres nos nomes de los ficheros.",
+ "URL generation in notification emails" : "Xeneración d'URL en mensaxes de notificación",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si la so instalación nun ta asitiada nel raigañu del dominiu y uses el cron del sistema, pues atopar problemas cola xeneración d'URL. Pa evitar estos problemes, afita la opción \"overwritewebroot\" nel tu ficheru config.php pa qu'use'l camín del raigañu la so instalación (Suxerencia: \"%s\")",
+ "Please double check the installation guides ." : "Por favor, comprueba les guíes d'instalación .",
+ "Last cron was executed at %s." : "Cron executóse per cabera vegada a les %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Cron executóse per cabera vegada a les %s. Esto foi hai más d'una hora, daqué anda mal.",
+ "Cron was not executed yet!" : "¡Cron entá nun s'executó!",
+ "Execute one task with each page loaded" : "Executar una xera con cada páxina cargada",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php rexístrase nun serviciu webcron pa llamar a cron.php cada 15 minutos al traviés de HTTP.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el serviciu cron del sistema pa llamar al ficheru cron.php cada 15 mins.",
+ "Allow apps to use the Share API" : "Permitir a les aplicaciones usar la API de Compartición",
+ "Allow users to share via link" : "Permitir a los usuarios compartir vía enllaz",
+ "Enforce password protection" : "Ameyora la proteición por contraseña.",
+ "Allow public uploads" : "Permitir xubes públiques",
+ "Set default expiration date" : "Afitar la data d'espiración predeterminada",
+ "Expire after " : "Caduca dempués de",
+ "days" : "díes",
+ "Enforce expiration date" : "Facer cumplir la data de caducidá",
+ "Allow resharing" : "Permitir re-compartición",
+ "Restrict users to only share with users in their groups" : "Restrinxir a los usuarios a compartir namái con otros usuarios nos sos grupos",
+ "Allow users to send mail notification for shared files" : "Permitir a los usuarios unviar mensaxes de notificación pa ficheros compartíos",
+ "Exclude groups from sharing" : "Esclúi grupos de compartir",
+ "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos van poder siguir recibiendo conteníos compartíos, pero nun van poder anicialos",
+ "Enforce HTTPS" : "Forciar HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Forciar a los veceros a coneutase a %s per duana d'una conexón cifrada.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Por favor, conéutate a %s al traviés de HTTPS p'habilitar o deshabilitar l'aplicación de SSL.",
+ "This is used for sending out notifications." : "Esto úsase pa unviar notificaciones.",
+ "Send mode" : "Mou d'unviu",
+ "From address" : "Dende la direición",
+ "mail" : "corréu",
+ "Authentication method" : "Métodu d'autenticación",
+ "Authentication required" : "Necesítase autenticación",
+ "Server address" : "Direición del sirvidor",
+ "Port" : "Puertu",
+ "Credentials" : "Credenciales",
+ "SMTP Username" : "Nome d'usuariu SMTP",
+ "SMTP Password" : "Contraseña SMTP",
+ "Test email settings" : "Probar configuración de corréu electrónicu",
+ "Send email" : "Unviar mensaxe",
+ "Log level" : "Nivel de rexistru",
+ "More" : "Más",
+ "Less" : "Menos",
+ "Version" : "Versión",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Desendolcáu pola comunidad ownCloud , el códigu fonte ta baxo llicencia AGPL .",
+ "by" : "por",
+ "Documentation:" : "Documentación:",
+ "User Documentation" : "Documentación d'usuariu",
+ "Admin Documentation" : "Documentación p'alministradores",
+ "Enable only for specific groups" : "Habilitar namái pa grupos específicos",
+ "Uninstall App" : "Desinstalar aplicación",
+ "Administrator Documentation" : "Documentación d'alministrador",
+ "Online Documentation" : "Documentación en llinia",
+ "Forum" : "Foru",
+ "Bugtracker" : "Rastrexador de fallos",
+ "Commercial Support" : "Sofitu comercial",
+ "Get the apps to sync your files" : "Obtener les aplicaciones pa sincronizar ficheros",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Si quies sofitar el proyeutu\n\t\txúnite al desendolcu \n\t\to\n\t\t¡espardi la pallabra! !",
+ "Show First Run Wizard again" : "Amosar nuevamente l'Encontu d'execución inicial",
+ "You have used %s of the available %s " : "Usasti %s de los %s disponibles",
+ "Password" : "Contraseña",
+ "Your password was changed" : "Camudóse la contraseña",
+ "Unable to change your password" : "Nun pudo camudase la contraseña",
+ "Current password" : "Contraseña actual",
+ "New password" : "Contraseña nueva",
+ "Change password" : "Camudar contraseña",
+ "Full Name" : "Nome completu",
+ "Email" : "Corréu-e",
+ "Your email address" : "Direición de corréu-e",
+ "Fill in an email address to enable password recovery and receive notifications" : "Introducir una direición de corréu-e p'activar la recuperación de contraseñes y recibir notificaciones",
+ "Profile picture" : "Semeya de perfil",
+ "Upload new" : "Xubir otra",
+ "Select new from Files" : "Esbillar otra dende Ficheros",
+ "Remove image" : "Desaniciar imaxe",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Ficheru PNG o JPG. Preferiblemente cuadráu, pero vas poder retayalu.",
+ "Your avatar is provided by your original account." : "L'avatar ta proporcionáu pola to cuenta orixinal.",
+ "Cancel" : "Encaboxar",
+ "Choose as profile image" : "Esbillar como imaxe de perfil",
+ "Language" : "Llingua",
+ "Help translate" : "Ayúdanos nes traducciones",
+ "Import Root Certificate" : "Importar certificáu raíz",
+ "The encryption app is no longer enabled, please decrypt all your files" : "L'aplicación de cifráu yá nun ta activada, descifra tolos ficheros",
+ "Log-in password" : "Contraseña d'accesu",
+ "Decrypt all Files" : "Descifrar ficheros",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Les claves de cifráu van guardase nuna llocalización segura. D'esta miente, en casu de que daqué saliere mal, vas poder recuperar les claves. Desanicia dafechu les claves de cifráu namái si tas seguru de que los ficheros descifráronse correcho.",
+ "Restore Encryption Keys" : "Restaurar claves de cifráu.",
+ "Delete Encryption Keys" : "Desaniciar claves de cifráu",
+ "Username" : "Nome d'usuariu",
+ "Create" : "Crear",
+ "Admin Recovery Password" : "Recuperación de la contraseña d'alministración",
+ "Enter the recovery password in order to recover the users files during password change" : "Introduz la contraseña de recuperación col envís de recuperar los ficheros de los usuarios mientres el cambéu de contraseña.",
+ "Add Group" : "Amestar grupu",
+ "Group" : "Grupu",
+ "Everyone" : "Toos",
+ "Admins" : "Almins",
+ "Default Quota" : "Cuota predeterminada",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indica la cuota d'almacenamientu (ex: \"512 MB\" o \"12 GB\")",
+ "Unlimited" : "Non llendáu",
+ "Other" : "Otru",
+ "Quota" : "Cuota",
+ "Storage Location" : "Llocalización d'almacenamientu",
+ "Last Login" : "Caberu aniciu de sesión",
+ "change full name" : "camudar el nome completu",
+ "set new password" : "afitar nueva contraseña",
+ "Default" : "Predetermináu"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/ast.php b/settings/l10n/ast.php
deleted file mode 100644
index 61e82b0886d..00000000000
--- a/settings/l10n/ast.php
+++ /dev/null
@@ -1,224 +0,0 @@
- "Introdúxose un valor non válidu pa %s",
-"Saved" => "Guardáu",
-"test email settings" => "probar configuración de corréu",
-"If you received this email, the settings seem to be correct." => "Si recibisti esti mensaxe de corréu-e, la to configuración ta correuta.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Hebo un problema al unviar el mensaxe. Revisa la configuración.",
-"Email sent" => "Corréu-e unviáu",
-"You need to set your user email before being able to send test emails." => "Tienes de configurar la direición de corréu-e enantes de poder unviar mensaxes de prueba.",
-"Send mode" => "Mou d'unviu",
-"Encryption" => "Cifráu",
-"Authentication method" => "Métodu d'autenticación",
-"Unable to load list from App Store" => "Nun pudo cargase la llista dende'l App Store",
-"Authentication error" => "Fallu d'autenticación",
-"Your full name has been changed." => "Camudóse'l nome completu.",
-"Unable to change full name" => "Nun pue camudase'l nome completu",
-"Group already exists" => "El grupu yá esiste",
-"Unable to add group" => "Nun pudo amestase'l grupu",
-"Files decrypted successfully" => "Descifráronse los ficheros",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Nun pudieron descifrase sus ficheros. Revisa'l owncloud.log o consulta col alministrador",
-"Couldn't decrypt your files, check your password and try again" => "Nun pudieron descifrase los ficheros. Revisa la contraseña ya inténtalo dempués",
-"Encryption keys deleted permanently" => "Desaniciaes dafechu les claves de cifráu",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Nun pudieron desaniciase dafechu les tos claves de cifráu, por favor comprueba'l to owncloud.log o entruga a un alministrador",
-"Couldn't remove app." => "Nun pudo desaniciase l'aplicación.",
-"Email saved" => "Corréu-e guardáu",
-"Invalid email" => "Corréu electrónicu non válidu",
-"Unable to delete group" => "Nun pudo desaniciase'l grupu",
-"Unable to delete user" => "Nun pudo desaniciase l'usuariu",
-"Backups restored successfully" => "Copia de seguridá restaurada",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Nun pudieron restaurase dafechu les tos claves de cifráu, por favor comprueba'l to owncloud.log o entruga a un alministrador",
-"Language changed" => "Camudóse la llingua",
-"Invalid request" => "Solicitú inválida",
-"Admins can't remove themself from the admin group" => "Los alministradores nun puen desaniciase a ellos mesmos del grupu d'alministrador",
-"Unable to add user to group %s" => "Nun pudo amestase l'usuariu al grupu %s",
-"Unable to remove user from group %s" => "Nun pudo desaniciase al usuariu del grupu %s",
-"Couldn't update app." => "Nun pudo anovase l'aplicación.",
-"Wrong password" => "Contraseña incorreuta",
-"No user supplied" => "Nun s'especificó un usuariu",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Facilita una contraseña de recuperación d'alministrador, sinón podríen perdese tolos datos d'usuariu",
-"Wrong admin recovery password. Please check the password and try again." => "Contraseña de recuperación d'alministrador incorreuta. Comprueba la contraseña ya inténtalo dempués.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "El back-end nun sofita cambeos de contraseña, pero la contraseña de cifráu del usuariu anovóse afechiscamente.",
-"Unable to change password" => "Nun pudo camudase la contraseña",
-"Sending..." => "Unviando...",
-"All" => "Toos",
-"User Documentation" => "Documentación d'usuariu",
-"Admin Documentation" => "Documentación p'alministradores",
-"Update to {appversion}" => "Anovar a {appversion}",
-"Uninstall App" => "Desinstalar aplicación",
-"Disable" => "Desactivar",
-"Enable" => "Activar",
-"Please wait...." => "Espera, por favor....",
-"Error while disabling app" => "Fallu mientres se desactivaba l'aplicación",
-"Error while enabling app" => "Fallu mientres s'activaba l'aplicación",
-"Updating...." => "Anovando....",
-"Error while updating app" => "Fallu mientres s'anovaba l'aplicación",
-"Error" => "Fallu",
-"Update" => "Anovar",
-"Updated" => "Anováu",
-"Uninstalling ...." => "Desinstalando ...",
-"Error while uninstalling app" => "Fallu mientres se desinstalaba l'aplicación",
-"Uninstall" => "Desinstalar",
-"Select a profile picture" => "Esbillar una imaxe de perfil",
-"Very weak password" => "Contraseña mui feble",
-"Weak password" => "Contraseña feble",
-"So-so password" => "Contraseña pasable",
-"Good password" => "Contraseña bona",
-"Strong password" => "Contraseña mui bona",
-"Delete" => "Desaniciar",
-"Decrypting files... Please wait, this can take some time." => "Descifrando ficheros... Espera por favor, esto pue llevar daqué de tiempu.",
-"Delete encryption keys permanently." => "Desaniciar dafechu les claves de cifráu.",
-"Restore encryption keys." => "Restaurar claves de cifráu.",
-"Groups" => "Grupos",
-"Unable to delete {objName}" => "Nun pue desaniciase {objName}",
-"Error creating group" => "Fallu creando grupu",
-"A valid group name must be provided" => "Hai d'escribir un nome de grupu válidu",
-"deleted {groupName}" => "desaniciáu {groupName}",
-"undo" => "desfacer",
-"Group Admin" => "Alministrador del Grupu",
-"never" => "enxamás",
-"deleted {userName}" => "desaniciáu {userName}",
-"add group" => "amestar Grupu",
-"A valid username must be provided" => "Tien d'apurrise un nome d'usuariu válidu",
-"Error creating user" => "Fallu al crear usuariu",
-"A valid password must be provided" => "Tien d'apurrise una contraseña válida",
-"Warning: Home directory for user \"{user}\" already exists" => "Avisu: el direutoriu d'aniciu pal usuariu \"{user}\" yá esiste.",
-"__language_name__" => "Asturianu",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Too (Información, Avisos, Fallos, debug y problemes fatales)",
-"Info, warnings, errors and fatal issues" => "Información, Avisos, Fallos y problemes fatales",
-"Warnings, errors and fatal issues" => "Avisos, fallos y problemes fatales",
-"Errors and fatal issues" => "Fallos y problemes fatales",
-"Fatal issues only" => "Namái problemes fatales",
-"None" => "Dengún",
-"Login" => "Entamar sesión",
-"Plain" => "Planu",
-"NT LAN Manager" => "Xestor de NT LAN",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Avisu de seguridá",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Tas ingresando a %s vía HTTP. Encamentámoste que configures el sirvidor pa solicitar HTTPS.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "El direutoriu de datos y ficheros ye dablemente accesible dende Internet, darréu que'l ficheru .htaccess nun ta funcionando. Suxerímoste que configures el sirvidor web de mou que'l direutoriu de datos nun seya accesible o que muevas talu direutoriu fuera del raigañu de documentos del sirvidor web.",
-"Setup Warning" => "Avisu de configuración",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "PHP ta aparentemente configuráu pa desaniciar bloques de documentos en llinia. Esto va facer que delles aplicaciones principales nun tean accesibles.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Dablemente esto seya culpa d'un caché o acelerador, como por exemplu Zend OPcache o eAccelerator.",
-"Database Performance Info" => "Información de rindimientu de la base de datos",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "Ta usándose SQLite como base de datos. Pa instalaciones más grandes, recomendamos cambiar esto. Pa migrar a otra base de datos, usa la ferramienta de llinia de comandos: 'occ db:convert-type'",
-"Module 'fileinfo' missing" => "Nun s'atopó'l módulu \"fileinfo\"",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "Nun s'atopó'l módulu PHP 'fileinfo'. Encamentámoste qu'habilites esti módulu pa obtener meyores resultaos cola deteición de tribes MIME.",
-"Your PHP version is outdated" => "La versión de PHP nun ta anovada",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "La versión de PHP caducó. Suxerímose que l'anueves a 5.3.8 o a una más nueva porque davezu, les versiones vieyes nun funcionen bien. Puede ser qu'esta instalación nun tea funcionando bien.",
-"Locale not working" => "La configuración rexonal nun ta funcionando",
-"System locale can not be set to a one which supports UTF-8." => "Nun se pue escoyer una configuración rexonal que sofite UTF-8.",
-"This means that there might be problems with certain characters in file names." => "Esto significa que pue haber problemes con ciertos caráuteres nos nomes de los ficheros.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Ye enforma recomendable instalar los paquetes necesarios pa poder soportar una de les siguientes configuraciones rexonales: %s. ",
-"Please double check the installation guides ." => "Por favor, comprueba les guíes d'instalación .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Cron executóse per cabera vegada a les %s.",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Cron executóse per cabera vegada a les %s. Esto foi hai más d'una hora, daqué anda mal.",
-"Cron was not executed yet!" => "¡Cron entá nun s'executó!",
-"Execute one task with each page loaded" => "Executar una xera con cada páxina cargada",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php rexístrase nun serviciu webcron pa llamar a cron.php cada 15 minutos al traviés de HTTP.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Usar el serviciu cron del sistema pa llamar al ficheru cron.php cada 15 mins.",
-"Sharing" => "Compartiendo",
-"Allow apps to use the Share API" => "Permitir a les aplicaciones usar la API de Compartición",
-"Allow users to share via link" => "Permitir a los usuarios compartir vía enllaz",
-"Enforce password protection" => "Ameyora la proteición por contraseña.",
-"Allow public uploads" => "Permitir xubes públiques",
-"Set default expiration date" => "Afitar la data d'espiración predeterminada",
-"Expire after " => "Caduca dempués de",
-"days" => "díes",
-"Enforce expiration date" => "Facer cumplir la data de caducidá",
-"Allow resharing" => "Permitir re-compartición",
-"Restrict users to only share with users in their groups" => "Restrinxir a los usuarios a compartir namái con otros usuarios nos sos grupos",
-"Allow users to send mail notification for shared files" => "Permitir a los usuarios unviar mensaxes de notificación pa ficheros compartíos",
-"Exclude groups from sharing" => "Esclúi grupos de compartir",
-"These groups will still be able to receive shares, but not to initiate them." => "Estos grupos van poder siguir recibiendo conteníos compartíos, pero nun van poder anicialos",
-"Security" => "Seguridá",
-"Enforce HTTPS" => "Forciar HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Forciar a los veceros a coneutase a %s per duana d'una conexón cifrada.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Por favor, conéutate a %s al traviés de HTTPS p'habilitar o deshabilitar l'aplicación de SSL.",
-"Email Server" => "Sirvidor de corréu-e",
-"This is used for sending out notifications." => "Esto úsase pa unviar notificaciones.",
-"From address" => "Dende la direición",
-"mail" => "corréu",
-"Authentication required" => "Necesítase autenticación",
-"Server address" => "Direición del sirvidor",
-"Port" => "Puertu",
-"Credentials" => "Credenciales",
-"SMTP Username" => "Nome d'usuariu SMTP",
-"SMTP Password" => "Contraseña SMTP",
-"Test email settings" => "Probar configuración de corréu electrónicu",
-"Send email" => "Unviar mensaxe",
-"Log" => "Rexistru",
-"Log level" => "Nivel de rexistru",
-"More" => "Más",
-"Less" => "Menos",
-"Version" => "Versión",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Desendolcáu pola comunidad ownCloud , el códigu fonte ta baxo llicencia AGPL .",
-"Add your App" => "Amiesta la to aplicación",
-"More Apps" => "Más aplicaciones",
-"Select an App" => "Esbillar una aplicación",
-"Documentation:" => "Documentación:",
-"See application page at apps.owncloud.com" => "Ver la páxina d'aplicaciones en apps.owncloud.com",
-"See application website" => "Ver sitiu web de l'aplicación",
-" -licensed by " => " -llicencia otorgada por ",
-"Enable only for specific groups" => "Habilitar namái pa grupos específicos",
-"Administrator Documentation" => "Documentación d'alministrador",
-"Online Documentation" => "Documentación en llinia",
-"Forum" => "Foru",
-"Bugtracker" => "Rastrexador de fallos",
-"Commercial Support" => "Sofitu comercial",
-"Get the apps to sync your files" => "Obtener les aplicaciones pa sincronizar ficheros",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Si quies sofitar el proyeutu\n\t\txúnite al desendolcu \n\t\to\n\t\t¡espardi la pallabra! !",
-"Show First Run Wizard again" => "Amosar nuevamente l'Encontu d'execución inicial",
-"You have used %s of the available %s " => "Usasti %s de los %s disponibles",
-"Password" => "Contraseña",
-"Your password was changed" => "Camudóse la contraseña",
-"Unable to change your password" => "Nun pudo camudase la contraseña",
-"Current password" => "Contraseña actual",
-"New password" => "Contraseña nueva",
-"Change password" => "Camudar contraseña",
-"Full Name" => "Nome completu",
-"Email" => "Corréu-e",
-"Your email address" => "Direición de corréu-e",
-"Fill in an email address to enable password recovery and receive notifications" => "Introducir una direición de corréu-e p'activar la recuperación de contraseñes y recibir notificaciones",
-"Profile picture" => "Semeya de perfil",
-"Upload new" => "Xubir otra",
-"Select new from Files" => "Esbillar otra dende Ficheros",
-"Remove image" => "Desaniciar imaxe",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Ficheru PNG o JPG. Preferiblemente cuadráu, pero vas poder retayalu.",
-"Your avatar is provided by your original account." => "L'avatar ta proporcionáu pola to cuenta orixinal.",
-"Cancel" => "Encaboxar",
-"Choose as profile image" => "Esbillar como imaxe de perfil",
-"Language" => "Llingua",
-"Help translate" => "Ayúdanos nes traducciones",
-"SSL root certificates" => "Certificaos raíz SSL",
-"Import Root Certificate" => "Importar certificáu raíz",
-"The encryption app is no longer enabled, please decrypt all your files" => "L'aplicación de cifráu yá nun ta activada, descifra tolos ficheros",
-"Log-in password" => "Contraseña d'accesu",
-"Decrypt all Files" => "Descifrar ficheros",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Les claves de cifráu van guardase nuna llocalización segura. D'esta miente, en casu de que daqué saliere mal, vas poder recuperar les claves. Desanicia dafechu les claves de cifráu namái si tas seguru de que los ficheros descifráronse correcho.",
-"Restore Encryption Keys" => "Restaurar claves de cifráu.",
-"Delete Encryption Keys" => "Desaniciar claves de cifráu",
-"Login Name" => "Nome d'usuariu",
-"Create" => "Crear",
-"Admin Recovery Password" => "Recuperación de la contraseña d'alministración",
-"Enter the recovery password in order to recover the users files during password change" => "Introduz la contraseña de recuperación col envís de recuperar los ficheros de los usuarios mientres el cambéu de contraseña.",
-"Search Users and Groups" => "Guetar Usuarios y Grupos",
-"Add Group" => "Amestar grupu",
-"Group" => "Grupu",
-"Everyone" => "Toos",
-"Admins" => "Almins",
-"Default Quota" => "Cuota predeterminada",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Por favor indica la cuota d'almacenamientu (ex: \"512 MB\" o \"12 GB\")",
-"Unlimited" => "Non llendáu",
-"Other" => "Otru",
-"Username" => "Nome d'usuariu",
-"Quota" => "Cuota",
-"Storage Location" => "Llocalización d'almacenamientu",
-"Last Login" => "Caberu aniciu de sesión",
-"change full name" => "camudar el nome completu",
-"set new password" => "afitar nueva contraseña",
-"Default" => "Predetermináu"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/az.js b/settings/l10n/az.js
new file mode 100644
index 00000000000..1150aecda59
--- /dev/null
+++ b/settings/l10n/az.js
@@ -0,0 +1,107 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Authentication error" : "Təyinat metodikası",
+ "Your full name has been changed." : "Sizin tam adınız dəyişdirildi.",
+ "Unable to change full name" : "Tam adı dəyişmək olmur",
+ "Group already exists" : "Qrup artıq mövcuddur",
+ "Unable to add group" : "Qrupu əlavə etmək olmur",
+ "Files decrypted successfully" : "Fayllar uğurla deşifrə edildi",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Sizin faylları deşifrə etmək olmur, xahiş olunur owncloud.log faylını yoxlaya vəya inzibatçıya müraciət edəsiniz.",
+ "Couldn't decrypt your files, check your password and try again" : "Sizin faylları deşifrə etmək olmur, xahiş olunur şifrəni yoxlaya və yenidən təkrar edəsiniz.",
+ "Encryption keys deleted permanently" : "Şifrələmə açarları həmişəlik silindi",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Sizin şifrələnmə açarlarınızı həmişəlik silmək mümkün olmadı, xahış olunur owncloud.log faylını yoxlaya və ya inzibatçıya müraciət edəsiniz.",
+ "Couldn't remove app." : "Proqram təminatını silmək mümkün olmadı.",
+ "Email saved" : "Məktub yadda saxlanıldı",
+ "Invalid email" : "Yalnış məktub",
+ "Unable to delete group" : "Qrupu silmək olmur",
+ "Unable to delete user" : "İstifadəçini silmək olmur",
+ "Backups restored successfully" : "Ehtiyyat nüsxələr uğurla geri qaytarıldı",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Sizin şifrələnmə açarlarınızı geri qaytarmaq mümkün olmadı, xahış olunur owncloud.log faylını yoxlaya və ya inzibatçıya müraciət edəsiniz.",
+ "Language changed" : "Dil dəyişdirildi",
+ "Invalid request" : "Səhv müraciət",
+ "Admins can't remove themself from the admin group" : "İnzibatçılar özlərini inzibatçı qrupundan silə bilməz",
+ "Unable to add user to group %s" : "İstifadəçini %s qrupuna əlavə etmək mümkün olmadı",
+ "Unable to remove user from group %s" : "İstifadəçini %s qrupundan silmək mümkün olmadı",
+ "Couldn't update app." : "Proqram təminatını yeniləmək mümkün deyil.",
+ "Wrong password" : "Yalnış şifrə",
+ "No user supplied" : "Heç bir istifadəçiyə mənimsədilmir",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Xahış olunur inzibatçı geriyə qayıdış şifrəsini təqdim edəsiniz, əks halda bütün istfadəçi datası itəcək.",
+ "Wrong admin recovery password. Please check the password and try again." : "İnzibatçı geriyə qayıdış şifrəsi yalnışdır. Xahiş olunur şifrəni yoxlayıb yenidən təkrar edəsiniz.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "İnzibatçı mərkəzi şifrə dəyişilməsini dəstəkləmir ancaq, istifadəçi şifrələnmə açarı uğurla yeniləndi.",
+ "Unable to change password" : "Şifrəni dəyişmək olmur",
+ "Saved" : "Saxlanıldı",
+ "test email settings" : "sınaq məktubu quraşdırmaları",
+ "If you received this email, the settings seem to be correct." : "Əgər siz bu məktubu aldınızsa, demək quraşdırmalar düzgündür.",
+ "Email sent" : "Məktub göndərildi",
+ "You need to set your user email before being able to send test emails." : "Test məktubu göndərməzdən öncə, siz öz istifadəçi poçtunuzu təyiin etməlisiniz.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" adını inamlı domainlər siyahısına əlavə etməyinizdən əminsinizmi?",
+ "Add trusted domain" : "İnamlı domainlərə əlavə et",
+ "Sending..." : "Göndərilir...",
+ "Please wait...." : "Xahiş olunur gözləyəsiniz.",
+ "Error while disabling app" : "Proqram təminatını dayandırdıqda səhv baş verdi",
+ "Disable" : "Dayandır",
+ "Enable" : "İşə sal",
+ "Error while enabling app" : "Proqram təminatını işə saldıqda səhv baş verdi",
+ "Updating...." : "Yenilənir...",
+ "Error while updating app" : "Proqram təminatı yeniləndikdə səhv baş verdi",
+ "Updated" : "Yeniləndi",
+ "Uninstalling ...." : "Silinir...",
+ "Error while uninstalling app" : "Proqram təminatını sildikdə səhv baş verdi",
+ "Uninstall" : "Sil",
+ "Select a profile picture" : "Profil üçün şəkli seç",
+ "Very weak password" : "Çox asan şifrə",
+ "Weak password" : "Asan şifrə",
+ "So-so password" : "Elə-belə şifrə",
+ "Good password" : "Yaxşı şifrə",
+ "Strong password" : "Çətin şifrə",
+ "Delete" : "Sil",
+ "Decrypting files... Please wait, this can take some time." : "Fayllar deşifrə edilir... Xahiş olunur gözləyəsiniz, bu biraz vaxt alacaq.",
+ "Delete encryption keys permanently." : "Şifrələnmə açarlarını həmişəlik sil.",
+ "Restore encryption keys." : "Şifrələnmə açarlarını geri qaytar",
+ "Groups" : "Qruplar",
+ "Unable to delete {objName}" : "{objName} silmək olmur",
+ "Error creating group" : "Qrup yaranmasında səhv baş verdi",
+ "A valid group name must be provided" : "Düzgün qrup adı təyin edilməlidir",
+ "deleted {groupName}" : "{groupName} silindi",
+ "undo" : "geriyə",
+ "never" : "heç vaxt",
+ "deleted {userName}" : "{userName} silindi",
+ "add group" : "qrupu əlavə et",
+ "A valid username must be provided" : "Düzgün istifadəçi adı daxil edilməlidir",
+ "Error creating user" : "İstifadəçi yaratdıqda səhv baş verdi",
+ "A valid password must be provided" : "Düzgün şifrə daxil edilməlidir",
+ "Warning: Home directory for user \"{user}\" already exists" : "Xəbərdarlıq: \"{user}\" istfadəçisi üçün ev qovluğu artıq mövcuddur.",
+ "__language_name__" : "__AZ_Azerbaijan__",
+ "Encryption" : "Şifrələnmə",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Hər şey(ən pis hadisələr, səhvlər, xəbərdarlıqlar, məlmat, araşdırma səhvləri)",
+ "Info, warnings, errors and fatal issues" : "Məlmat, xəbərdarlıqlar, səhvlər və ən pis hadisələr",
+ "Warnings, errors and fatal issues" : "Xəbərdarlıqlar, səhvlər və ən pis hadisələr",
+ "Errors and fatal issues" : "Səhvlər və ən pis hadisələr",
+ "Fatal issues only" : "Yalnız ən pis hadisələr",
+ "None" : "Heç bir",
+ "Login" : "Giriş",
+ "Plain" : "Adi",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Təhlükəsizlik xəbərdarlığı",
+ "Setup Warning" : "Quruluş xəbərdarlığı",
+ "Database Performance Info" : "Verilənlər bazasının davamiyyəti məlumatı",
+ "Module 'fileinfo' missing" : "'fileinfo' modulu çatışmır",
+ "Your PHP version is outdated" : "Sizin PHP versiyası köhnəlib",
+ "PHP charset is not set to UTF-8" : "PHP simvol tipi UTF-8 deyil",
+ "Send mode" : "Göndərmə rejimi",
+ "Authentication method" : "Qeydiyyat metodikası",
+ "More" : "Yenə",
+ "by" : "onunla",
+ "User Documentation" : "İstifadəçi sənədləri",
+ "Admin Documentation" : "İnzibatçı sənədləri",
+ "Uninstall App" : "Proqram təminatını sil",
+ "Get the apps to sync your files" : "Fayllarınızın sinxronizasiyası üçün proqramları götürün",
+ "Password" : "Şifrə",
+ "Change password" : "Şifrəni dəyiş",
+ "Cancel" : "Dayandır",
+ "Username" : "İstifadəçi adı"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/az.json b/settings/l10n/az.json
new file mode 100644
index 00000000000..6325a20b196
--- /dev/null
+++ b/settings/l10n/az.json
@@ -0,0 +1,105 @@
+{ "translations": {
+ "Authentication error" : "Təyinat metodikası",
+ "Your full name has been changed." : "Sizin tam adınız dəyişdirildi.",
+ "Unable to change full name" : "Tam adı dəyişmək olmur",
+ "Group already exists" : "Qrup artıq mövcuddur",
+ "Unable to add group" : "Qrupu əlavə etmək olmur",
+ "Files decrypted successfully" : "Fayllar uğurla deşifrə edildi",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Sizin faylları deşifrə etmək olmur, xahiş olunur owncloud.log faylını yoxlaya vəya inzibatçıya müraciət edəsiniz.",
+ "Couldn't decrypt your files, check your password and try again" : "Sizin faylları deşifrə etmək olmur, xahiş olunur şifrəni yoxlaya və yenidən təkrar edəsiniz.",
+ "Encryption keys deleted permanently" : "Şifrələmə açarları həmişəlik silindi",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Sizin şifrələnmə açarlarınızı həmişəlik silmək mümkün olmadı, xahış olunur owncloud.log faylını yoxlaya və ya inzibatçıya müraciət edəsiniz.",
+ "Couldn't remove app." : "Proqram təminatını silmək mümkün olmadı.",
+ "Email saved" : "Məktub yadda saxlanıldı",
+ "Invalid email" : "Yalnış məktub",
+ "Unable to delete group" : "Qrupu silmək olmur",
+ "Unable to delete user" : "İstifadəçini silmək olmur",
+ "Backups restored successfully" : "Ehtiyyat nüsxələr uğurla geri qaytarıldı",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Sizin şifrələnmə açarlarınızı geri qaytarmaq mümkün olmadı, xahış olunur owncloud.log faylını yoxlaya və ya inzibatçıya müraciət edəsiniz.",
+ "Language changed" : "Dil dəyişdirildi",
+ "Invalid request" : "Səhv müraciət",
+ "Admins can't remove themself from the admin group" : "İnzibatçılar özlərini inzibatçı qrupundan silə bilməz",
+ "Unable to add user to group %s" : "İstifadəçini %s qrupuna əlavə etmək mümkün olmadı",
+ "Unable to remove user from group %s" : "İstifadəçini %s qrupundan silmək mümkün olmadı",
+ "Couldn't update app." : "Proqram təminatını yeniləmək mümkün deyil.",
+ "Wrong password" : "Yalnış şifrə",
+ "No user supplied" : "Heç bir istifadəçiyə mənimsədilmir",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Xahış olunur inzibatçı geriyə qayıdış şifrəsini təqdim edəsiniz, əks halda bütün istfadəçi datası itəcək.",
+ "Wrong admin recovery password. Please check the password and try again." : "İnzibatçı geriyə qayıdış şifrəsi yalnışdır. Xahiş olunur şifrəni yoxlayıb yenidən təkrar edəsiniz.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "İnzibatçı mərkəzi şifrə dəyişilməsini dəstəkləmir ancaq, istifadəçi şifrələnmə açarı uğurla yeniləndi.",
+ "Unable to change password" : "Şifrəni dəyişmək olmur",
+ "Saved" : "Saxlanıldı",
+ "test email settings" : "sınaq məktubu quraşdırmaları",
+ "If you received this email, the settings seem to be correct." : "Əgər siz bu məktubu aldınızsa, demək quraşdırmalar düzgündür.",
+ "Email sent" : "Məktub göndərildi",
+ "You need to set your user email before being able to send test emails." : "Test məktubu göndərməzdən öncə, siz öz istifadəçi poçtunuzu təyiin etməlisiniz.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" adını inamlı domainlər siyahısına əlavə etməyinizdən əminsinizmi?",
+ "Add trusted domain" : "İnamlı domainlərə əlavə et",
+ "Sending..." : "Göndərilir...",
+ "Please wait...." : "Xahiş olunur gözləyəsiniz.",
+ "Error while disabling app" : "Proqram təminatını dayandırdıqda səhv baş verdi",
+ "Disable" : "Dayandır",
+ "Enable" : "İşə sal",
+ "Error while enabling app" : "Proqram təminatını işə saldıqda səhv baş verdi",
+ "Updating...." : "Yenilənir...",
+ "Error while updating app" : "Proqram təminatı yeniləndikdə səhv baş verdi",
+ "Updated" : "Yeniləndi",
+ "Uninstalling ...." : "Silinir...",
+ "Error while uninstalling app" : "Proqram təminatını sildikdə səhv baş verdi",
+ "Uninstall" : "Sil",
+ "Select a profile picture" : "Profil üçün şəkli seç",
+ "Very weak password" : "Çox asan şifrə",
+ "Weak password" : "Asan şifrə",
+ "So-so password" : "Elə-belə şifrə",
+ "Good password" : "Yaxşı şifrə",
+ "Strong password" : "Çətin şifrə",
+ "Delete" : "Sil",
+ "Decrypting files... Please wait, this can take some time." : "Fayllar deşifrə edilir... Xahiş olunur gözləyəsiniz, bu biraz vaxt alacaq.",
+ "Delete encryption keys permanently." : "Şifrələnmə açarlarını həmişəlik sil.",
+ "Restore encryption keys." : "Şifrələnmə açarlarını geri qaytar",
+ "Groups" : "Qruplar",
+ "Unable to delete {objName}" : "{objName} silmək olmur",
+ "Error creating group" : "Qrup yaranmasında səhv baş verdi",
+ "A valid group name must be provided" : "Düzgün qrup adı təyin edilməlidir",
+ "deleted {groupName}" : "{groupName} silindi",
+ "undo" : "geriyə",
+ "never" : "heç vaxt",
+ "deleted {userName}" : "{userName} silindi",
+ "add group" : "qrupu əlavə et",
+ "A valid username must be provided" : "Düzgün istifadəçi adı daxil edilməlidir",
+ "Error creating user" : "İstifadəçi yaratdıqda səhv baş verdi",
+ "A valid password must be provided" : "Düzgün şifrə daxil edilməlidir",
+ "Warning: Home directory for user \"{user}\" already exists" : "Xəbərdarlıq: \"{user}\" istfadəçisi üçün ev qovluğu artıq mövcuddur.",
+ "__language_name__" : "__AZ_Azerbaijan__",
+ "Encryption" : "Şifrələnmə",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Hər şey(ən pis hadisələr, səhvlər, xəbərdarlıqlar, məlmat, araşdırma səhvləri)",
+ "Info, warnings, errors and fatal issues" : "Məlmat, xəbərdarlıqlar, səhvlər və ən pis hadisələr",
+ "Warnings, errors and fatal issues" : "Xəbərdarlıqlar, səhvlər və ən pis hadisələr",
+ "Errors and fatal issues" : "Səhvlər və ən pis hadisələr",
+ "Fatal issues only" : "Yalnız ən pis hadisələr",
+ "None" : "Heç bir",
+ "Login" : "Giriş",
+ "Plain" : "Adi",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Təhlükəsizlik xəbərdarlığı",
+ "Setup Warning" : "Quruluş xəbərdarlığı",
+ "Database Performance Info" : "Verilənlər bazasının davamiyyəti məlumatı",
+ "Module 'fileinfo' missing" : "'fileinfo' modulu çatışmır",
+ "Your PHP version is outdated" : "Sizin PHP versiyası köhnəlib",
+ "PHP charset is not set to UTF-8" : "PHP simvol tipi UTF-8 deyil",
+ "Send mode" : "Göndərmə rejimi",
+ "Authentication method" : "Qeydiyyat metodikası",
+ "More" : "Yenə",
+ "by" : "onunla",
+ "User Documentation" : "İstifadəçi sənədləri",
+ "Admin Documentation" : "İnzibatçı sənədləri",
+ "Uninstall App" : "Proqram təminatını sil",
+ "Get the apps to sync your files" : "Fayllarınızın sinxronizasiyası üçün proqramları götürün",
+ "Password" : "Şifrə",
+ "Change password" : "Şifrəni dəyiş",
+ "Cancel" : "Dayandır",
+ "Username" : "İstifadəçi adı"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/az.php b/settings/l10n/az.php
deleted file mode 100644
index 0c17c66ba56..00000000000
--- a/settings/l10n/az.php
+++ /dev/null
@@ -1,112 +0,0 @@
- "%s üçün yalnış təyinat mənimsədildi",
-"Saved" => "Saxlanıldı",
-"test email settings" => "sınaq məktubu quraşdırmaları",
-"If you received this email, the settings seem to be correct." => "Əgər siz bu məktubu aldınızsa, demək quraşdırmalar düzgündür.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Məktubun göndərilməsində səhv baş verdi. Xahiş edirik öz configlərinizə yenidən baxasınız.",
-"Email sent" => "Məktub göndərildi",
-"You need to set your user email before being able to send test emails." => "Test məktubu göndərməzdən öncə, siz öz istifadəçi poçtunuzu təyiin etməlisiniz.",
-"Send mode" => "Göndərmə rejimi",
-"Encryption" => "Şifrələnmə",
-"Authentication method" => "Qeydiyyat metodikası",
-"Unable to load list from App Store" => "Listi App Store-dan yükləmək mümkün deyil",
-"Authentication error" => "Təyinat metodikası",
-"Your full name has been changed." => "Sizin tam adınız dəyişdirildi.",
-"Unable to change full name" => "Tam adı dəyişmək olmur",
-"Group already exists" => "Qrup artıq mövcuddur",
-"Unable to add group" => "Qrupu əlavə etmək olmur",
-"Files decrypted successfully" => "Fayllar uğurla deşifrə edildi",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Sizin faylları deşifrə etmək olmur, xahiş olunur owncloud.log faylını yoxlaya vəya inzibatçıya müraciət edəsiniz.",
-"Couldn't decrypt your files, check your password and try again" => "Sizin faylları deşifrə etmək olmur, xahiş olunur şifrəni yoxlaya və yenidən təkrar edəsiniz.",
-"Encryption keys deleted permanently" => "Şifrələmə açarları həmişəlik silindi",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Sizin şifrələnmə açarlarınızı həmişəlik silmək mümkün olmadı, xahış olunur owncloud.log faylını yoxlaya və ya inzibatçıya müraciət edəsiniz.",
-"Couldn't remove app." => "Proqram təminatını silmək mümkün olmadı.",
-"Email saved" => "Məktub yadda saxlanıldı",
-"Invalid email" => "Yalnış məktub",
-"Unable to delete group" => "Qrupu silmək olmur",
-"Unable to delete user" => "İstifadəçini silmək olmur",
-"Backups restored successfully" => "Ehtiyyat nüsxələr uğurla geri qaytarıldı",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Sizin şifrələnmə açarlarınızı geri qaytarmaq mümkün olmadı, xahış olunur owncloud.log faylını yoxlaya və ya inzibatçıya müraciət edəsiniz.",
-"Language changed" => "Dil dəyişdirildi",
-"Invalid request" => "Səhv müraciət",
-"Admins can't remove themself from the admin group" => "İnzibatçılar özlərini inzibatçı qrupundan silə bilməz",
-"Unable to add user to group %s" => "İstifadəçini %s qrupuna əlavə etmək mümkün olmadı",
-"Unable to remove user from group %s" => "İstifadəçini %s qrupundan silmək mümkün olmadı",
-"Couldn't update app." => "Proqram təminatını yeniləmək mümkün deyil.",
-"Wrong password" => "Yalnış şifrə",
-"No user supplied" => "Heç bir istifadəçiyə mənimsədilmir",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Xahış olunur inzibatçı geriyə qayıdış şifrəsini təqdim edəsiniz, əks halda bütün istfadəçi datası itəcək.",
-"Wrong admin recovery password. Please check the password and try again." => "İnzibatçı geriyə qayıdış şifrəsi yalnışdır. Xahiş olunur şifrəni yoxlayıb yenidən təkrar edəsiniz.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "İnzibatçı mərkəzi şifrə dəyişilməsini dəstəkləmir ancaq, istifadəçi şifrələnmə açarı uğurla yeniləndi.",
-"Unable to change password" => "Şifrəni dəyişmək olmur",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "\"{domain}\" adını inamlı domainlər siyahısına əlavə etməyinizdən əminsinizmi?",
-"Add trusted domain" => "İnamlı domainlərə əlavə et",
-"Sending..." => "Göndərilir...",
-"User Documentation" => "İstifadəçi sənədləri",
-"Admin Documentation" => "İnzibatçı sənədləri",
-"Update to {appversion}" => "{appversion} -a yenilə",
-"Uninstall App" => "Proqram təminatını sil",
-"Disable" => "Dayandır",
-"Enable" => "İşə sal",
-"Please wait...." => "Xahiş olunur gözləyəsiniz.",
-"Error while disabling app" => "Proqram təminatını dayandırdıqda səhv baş verdi",
-"Error while enabling app" => "Proqram təminatını işə saldıqda səhv baş verdi",
-"Updating...." => "Yenilənir...",
-"Error while updating app" => "Proqram təminatı yeniləndikdə səhv baş verdi",
-"Error" => "Səhv",
-"Update" => "Yenilənmə",
-"Updated" => "Yeniləndi",
-"Uninstalling ...." => "Silinir...",
-"Error while uninstalling app" => "Proqram təminatını sildikdə səhv baş verdi",
-"Uninstall" => "Sil",
-"Select a profile picture" => "Profil üçün şəkli seç",
-"Very weak password" => "Çox asan şifrə",
-"Weak password" => "Asan şifrə",
-"So-so password" => "Elə-belə şifrə",
-"Good password" => "Yaxşı şifrə",
-"Strong password" => "Çətin şifrə",
-"Delete" => "Sil",
-"Decrypting files... Please wait, this can take some time." => "Fayllar deşifrə edilir... Xahiş olunur gözləyəsiniz, bu biraz vaxt alacaq.",
-"Delete encryption keys permanently." => "Şifrələnmə açarlarını həmişəlik sil.",
-"Restore encryption keys." => "Şifrələnmə açarlarını geri qaytar",
-"Groups" => "Qruplar",
-"Unable to delete {objName}" => "{objName} silmək olmur",
-"Error creating group" => "Qrup yaranmasında səhv baş verdi",
-"A valid group name must be provided" => "Düzgün qrup adı təyin edilməlidir",
-"deleted {groupName}" => "{groupName} silindi",
-"undo" => "geriyə",
-"Group Admin" => "Qrup İnzibatçısı",
-"never" => "heç vaxt",
-"deleted {userName}" => "{userName} silindi",
-"add group" => "qrupu əlavə et",
-"A valid username must be provided" => "Düzgün istifadəçi adı daxil edilməlidir",
-"Error creating user" => "İstifadəçi yaratdıqda səhv baş verdi",
-"A valid password must be provided" => "Düzgün şifrə daxil edilməlidir",
-"Warning: Home directory for user \"{user}\" already exists" => "Xəbərdarlıq: \"{user}\" istfadəçisi üçün ev qovluğu artıq mövcuddur.",
-"__language_name__" => "__AZ_Azerbaijan__",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Hər şey(ən pis hadisələr, səhvlər, xəbərdarlıqlar, məlmat, araşdırma səhvləri)",
-"Info, warnings, errors and fatal issues" => "Məlmat, xəbərdarlıqlar, səhvlər və ən pis hadisələr",
-"Warnings, errors and fatal issues" => "Xəbərdarlıqlar, səhvlər və ən pis hadisələr",
-"Errors and fatal issues" => "Səhvlər və ən pis hadisələr",
-"Fatal issues only" => "Yalnız ən pis hadisələr",
-"None" => "Heç bir",
-"Login" => "Giriş",
-"Plain" => "Adi",
-"NT LAN Manager" => "NT LAN Manager",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Təhlükəsizlik xəbərdarlığı",
-"Setup Warning" => "Quruluş xəbərdarlığı",
-"Database Performance Info" => "Verilənlər bazasının davamiyyəti məlumatı",
-"Module 'fileinfo' missing" => "'fileinfo' modulu çatışmır",
-"Your PHP version is outdated" => "Sizin PHP versiyası köhnəlib",
-"PHP charset is not set to UTF-8" => "PHP simvol tipi UTF-8 deyil",
-"More" => "Yenə",
-"Get the apps to sync your files" => "Fayllarınızın sinxronizasiyası üçün proqramları götürün",
-"Password" => "Şifrə",
-"Change password" => "Şifrəni dəyiş",
-"Cancel" => "Dayandır",
-"Username" => "İstifadəçi adı"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/be.php b/settings/l10n/be.php
deleted file mode 100644
index 6a34f1fe246..00000000000
--- a/settings/l10n/be.php
+++ /dev/null
@@ -1,5 +0,0 @@
- "Памылка"
-);
-$PLURAL_FORMS = "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/settings/l10n/bg_BG.js b/settings/l10n/bg_BG.js
new file mode 100644
index 00000000000..e072dd080f8
--- /dev/null
+++ b/settings/l10n/bg_BG.js
@@ -0,0 +1,240 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Предупреждения за сигурност и настройки",
+ "Cron" : "Крон",
+ "Sharing" : "Споделяне",
+ "Security" : "Сигурност",
+ "Email Server" : "Имейл Сървър",
+ "Log" : "Доклад",
+ "Authentication error" : "Възникна проблем с идентификацията",
+ "Your full name has been changed." : "Пълното ти име е променено.",
+ "Unable to change full name" : "Неуспешна промяна на пълното име.",
+ "Group already exists" : "Групата вече съществува",
+ "Unable to add group" : "Неуспешно добавяне на група",
+ "Files decrypted successfully" : "Успешно разшифроването на файловете.",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Неуспешно разшифроване на файловете ти, моля провери owncloud.log или попитай администратора.",
+ "Couldn't decrypt your files, check your password and try again" : "Неуспешно разшифроване на файловете ти, провери паролата си и опитай отново.",
+ "Encryption keys deleted permanently" : "Ключовете за криптиране са безвъзвратно изтрити",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Неуспешно безвъзвратно изтриване на криптиращите ключове, моля провери своя owncloud.log или се свържи с админстратора.",
+ "Couldn't remove app." : "Неуспешно премахване на приложението.",
+ "Email saved" : "Имейла запазен",
+ "Invalid email" : "Невалиден имейл",
+ "Unable to delete group" : "Неуспешно изтриване на група",
+ "Unable to delete user" : "Неуспешно изтриване на потребител",
+ "Backups restored successfully" : "Резервното копие е успешно възстановено.",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Неуспешно възстановяване на криптиращите ти ключове, моля провери owncloud.log или попитай администратора.",
+ "Language changed" : "Езикът е променен",
+ "Invalid request" : "Невалидна заявка",
+ "Admins can't remove themself from the admin group" : "Админът не може да премахне себе си от админ групата.",
+ "Unable to add user to group %s" : "Неуспешно добавяне на потребител към групата %s.",
+ "Unable to remove user from group %s" : "Неуспешно премахване на потребител от групата %s.",
+ "Couldn't update app." : "Неуспешно обновяване на приложението.",
+ "Wrong password" : "Грешна парола",
+ "No user supplied" : "Липсва потребителско име",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Моля, посочете администраторската парола за възстановяване или всичката информация на потребителите ще бъде загубена.",
+ "Wrong admin recovery password. Please check the password and try again." : "Грешна администраторска парола за възстановяване. Моля, провери паролата и опитай отново.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Сървърът не позволява смяна на паролата, но ключът за криптиране беше успешно обновен.",
+ "Unable to change password" : "Неуспешна смяна на паролата.",
+ "Enabled" : "Включено",
+ "Not enabled" : "Изключено",
+ "Recommended" : "Препоръчано",
+ "Saved" : "Запис",
+ "test email settings" : "провери имейл настройките",
+ "If you received this email, the settings seem to be correct." : "Ако си получил този имейл, настройките са правилни.",
+ "A problem occurred while sending the email. Please revise your settings." : "Настъпи проблем при изпращането на имейла. Моля, провери настройките.",
+ "Email sent" : "Имейлът е изпратен",
+ "You need to set your user email before being able to send test emails." : "Трябва да зададеш своя имейл преди да можеш да изпратиш проверяващи имейли.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Сигурен ли си, че искащ да добавиш \"{domain}\" сигурен домейн?",
+ "Add trusted domain" : "Добави сигурен домейн",
+ "Sending..." : "Изпращане...",
+ "All" : "Всички",
+ "Please wait...." : "Моля изчакайте....",
+ "Error while disabling app" : "Грешка при изключването на приложението",
+ "Disable" : "Изключено",
+ "Enable" : "Включено",
+ "Error while enabling app" : "Грешка при включване на приложението",
+ "Updating...." : "Обновява се...",
+ "Error while updating app" : "Грешка при обновяване на приложението.",
+ "Updated" : "Обновено",
+ "Uninstalling ...." : "Премахване ...",
+ "Error while uninstalling app" : "Грешка при премахването на приложението.",
+ "Uninstall" : "Премахване",
+ "Select a profile picture" : "Избери аватар",
+ "Very weak password" : "Много слаба парола",
+ "Weak password" : "Слаба парола",
+ "So-so password" : "Не особено добра парола",
+ "Good password" : "Добра парола",
+ "Strong password" : "Сигурна парола",
+ "Valid until {date}" : "Валиден до {date}",
+ "Delete" : "Изтрий",
+ "Decrypting files... Please wait, this can take some time." : "Разшифроване на файловете... Моля, изчакай, това може да отнеме време...",
+ "Delete encryption keys permanently." : "Изтрий криптиращите ключове безвъзвратно.",
+ "Restore encryption keys." : "Възстанови криптиращите ключове.",
+ "Groups" : "Групи",
+ "Unable to delete {objName}" : "Неуспешно изтриване на {objName}.",
+ "Error creating group" : "Грешка при създаване на група.",
+ "A valid group name must be provided" : "Очаква се валидно име на група",
+ "deleted {groupName}" : "{groupName} изтрит",
+ "undo" : "възтановяване",
+ "no group" : "няма група",
+ "never" : "никога",
+ "deleted {userName}" : "{userName} изтрит",
+ "add group" : "нова група",
+ "A valid username must be provided" : "Валидно потребителско име трябва да бъде зададено.",
+ "Error creating user" : "Грешка при създаване на потребител.",
+ "A valid password must be provided" : "Валидна парола трябва да бъде зададена.",
+ "Warning: Home directory for user \"{user}\" already exists" : "Предупреждение: Личната директория на потребителя \"{user}\" вече съществува.",
+ "__language_name__" : "__language_name__",
+ "Personal Info" : "Лична Информация",
+ "SSL root certificates" : "SSL root сертификати",
+ "Encryption" : "Криптиране",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Всичко (фатални проблеми, грешки, предупреждения, информация, дебъгване)",
+ "Info, warnings, errors and fatal issues" : "Информация, предупреждения, грешки и фатални проблеми",
+ "Warnings, errors and fatal issues" : "Предупреждения, грешки и фатални проблеми",
+ "Errors and fatal issues" : "Грешки и фатални проблеми",
+ "Fatal issues only" : "Само фатални проблеми",
+ "None" : "Няма",
+ "Login" : "Вход",
+ "Plain" : "Не защитен",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Предупреждение за Сигурноста",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "В момента използваш HTTP, за да посетиш %s. Силно препоръчваме да настроиш съвръра си да използва HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Твоята директория за данни и файлове вероятно са достъпни от интернет. .htaccess файла не функционира. Силно препоръчваме да настроиш уебсъръра по такъв начин, че директорията за данни да не бъде достъпна или да я преместиш извън директорията корен на сървъра.",
+ "Setup Warning" : "Предупреждение за Настройките",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP е настроен да премахва inline doc блокове. Това може да превърне няколко основни приложения недостъпни.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Това може да се дължи на cache/accelerator като Zend OPache или eAccelerator.",
+ "Database Performance Info" : "Информацията за Прозиводителност на Базата Данни",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Настоящата база данни е SQLite. За по-големи инсталации препоръчваме да я смениш. За да преминеш към друга база данни използвай следната команда от командния ред: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Модулът 'fileinfo' липсва",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP модулът 'fileinfo' липсва. Силно препоръчваме този модъл да бъде добавен, за да бъдат постигнати най-добри резултати при mime-type откриването.",
+ "Your PHP version is outdated" : "PHP версията е остаряла.",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "PHP версията е остаряла. Силно препоръчваме да я обновиш на 5.3.8 или по-нова, защото по-старите версии създават проблеми. Възможно е тази инсталация да не работи правилно.",
+ "PHP charset is not set to UTF-8" : "PHP таблицата от символи не е настроена за UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP таблицата от символи не е настроена за UTF-8. Това може да предизвика големи проблеми с не ASCII символи в имена на файлове. Силно перпоръчваме да промените стойноста на 'defaul_charset' в php.ini до 'UTF-8'.",
+ "Locale not working" : "Местоположението не работи",
+ "System locale can not be set to a one which supports UTF-8." : "Системните настройки за местоположение не могат да бъдат промени на такива, подържащи UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Това означва, че може да има проблеми с определини символи в имената на файловете.",
+ "URL generation in notification emails" : "Генериране на URL в имейлите за известяване",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталацията не e инсталиранa в root на домейна и използва cron, може да има проблеми с генерирането на URL. За да избегнеш тези проблеми, моля, промени \"overwritewebroot\" в config.php с webroot пътя (Препоръчително: \"%s\")",
+ "Connectivity Checks" : "Проверки за свързаност",
+ "No problems found" : "Не са открити проблеми",
+ "Please double check the installation guides ." : "Моля, провери ръководството за инсталиране отново.",
+ "Last cron was executed at %s." : "Последният cron се изпълни в %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Последният cron се изпълни в %s. Това е преди повече от час, нещо не както трябва.",
+ "Cron was not executed yet!" : "Cron oще не е изпълнен!",
+ "Execute one task with each page loaded" : "Изпълни по едно задание с всяка заредена страница.",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php е регистриран към webcron да се свързва с cron.php всеки 15 минути по http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Изполвай системната cron service, за връзка с cron.php файла всеки 15 минути.",
+ "Allow apps to use the Share API" : "Разреши приложенията да използват Share API.",
+ "Allow users to share via link" : "Разреши потребителите да споделят с връзка",
+ "Enforce password protection" : "Изискай защита с парола.",
+ "Allow public uploads" : "Разреши общодостъпно качване",
+ "Set default expiration date" : "Заложи дата на изтичане по подразбиране",
+ "Expire after " : "Изтечи след",
+ "days" : "дена",
+ "Enforce expiration date" : "Изисквай дата на изтичане",
+ "Allow resharing" : "Разреши пресподеляне.",
+ "Restrict users to only share with users in their groups" : "Ограничи потребителите, така че да могат да споделят само с други потребители в своите групи.",
+ "Allow users to send mail notification for shared files" : "Разреши потребителите да изпращат имейл уведомления за споделени файлове.",
+ "Exclude groups from sharing" : "Забрани групи да споделят",
+ "These groups will still be able to receive shares, but not to initiate them." : "Тези групи ще могат да получават споделения, но няма да могат самите те да споделят.",
+ "Enforce HTTPS" : "Изисквай HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Задължава клиента да се свързва с %s през криптирана връзка.",
+ "Enforce HTTPS for subdomains" : "Изисквай HTTPS за под домейни",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Задължава клиента да се свързва с %s и негови под домейни през криптирана връзка.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Моля свържи се с твоя %s през HTTPS, за да включиш или изключиш SSL задължаването.",
+ "This is used for sending out notifications." : "Това се използва за изпращане на уведомления.",
+ "Send mode" : "Режим на изпращане",
+ "From address" : "От адрес",
+ "mail" : "поща",
+ "Authentication method" : "Метод за отризиране",
+ "Authentication required" : "Нужна е идентификация",
+ "Server address" : "Адрес на сървъра",
+ "Port" : "Порт",
+ "Credentials" : "Потр. име и парола",
+ "SMTP Username" : "SMTP Потребителско Име",
+ "SMTP Password" : "SMTP Парола",
+ "Store credentials" : "Запазвай креденциите",
+ "Test email settings" : "Настройки на проверяващия имейл",
+ "Send email" : "Изпрати имейл",
+ "Log level" : "Детайли на доклада",
+ "More" : "Още",
+ "Less" : "По-малко",
+ "Version" : "Версия",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Разработен от ownCloud обществото , кодът е лицензиран под AGPL .",
+ "More apps" : "Още приложения",
+ "Add your app" : "Добавете Ваше приложение",
+ "by" : "от",
+ "licensed" : "лицензирано",
+ "Documentation:" : "Документация:",
+ "User Documentation" : "Потребителска Документация",
+ "Admin Documentation" : "Админ Документация",
+ "Update to %s" : "Обнови до %s",
+ "Enable only for specific groups" : "Включи само за определени групи",
+ "Uninstall App" : "Премахни Приложението",
+ "Administrator Documentation" : "Административна Документация",
+ "Online Documentation" : "Документация в Интернет",
+ "Forum" : "Форум",
+ "Bugtracker" : "Докладвани грешки",
+ "Commercial Support" : "Платена Поддръжка",
+ "Get the apps to sync your files" : "Изтегли програми за синхронизиране на файловете ти",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Ако искаш да помогнеш на проекта:\n\t\tприсъедини се и пиши код \n\t\tили\n\t\tразпространи мълвата !",
+ "Show First Run Wizard again" : "Покажи Настройките за Първоначално Зареждане отново",
+ "You have used %s of the available %s " : "Използвал си %s от наличните %s .",
+ "Password" : "Парола",
+ "Your password was changed" : "Паролата ти е промена.",
+ "Unable to change your password" : "Неуспешна промяна на паролата.",
+ "Current password" : "Текуща парола",
+ "New password" : "Нова парола",
+ "Change password" : "Промяна на паролата",
+ "Full Name" : "Пълно Име",
+ "Email" : "Имейл",
+ "Your email address" : "Твоят имейл адрес",
+ "Fill in an email address to enable password recovery and receive notifications" : "Въведи имейл, за да включиш функцията за възстановяване на паролата и уведомления.",
+ "Profile picture" : "Аватар",
+ "Upload new" : "Качи нов",
+ "Select new from Files" : "Избери нов от Файловете",
+ "Remove image" : "Премахни изображението",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Png или jpg. Най-добре в квадратни размери, но ще имаш възможност да го изрежеш.",
+ "Your avatar is provided by your original account." : "Твоят аватар е взет от оригиналния ти профил.",
+ "Cancel" : "Отказ",
+ "Choose as profile image" : "Избери като аватар",
+ "Language" : "Език",
+ "Help translate" : "Помогни с превода",
+ "Common Name" : "Познато Име",
+ "Valid until" : "Валиден до",
+ "Issued By" : "Издаден От",
+ "Valid until %s" : "Валиден до %s",
+ "Import Root Certificate" : "Внасяне на Root Сертификат",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Приложението за криптиране вече не е включено, моля разшифрирай всичките си файлове.",
+ "Log-in password" : "Парола за вписване",
+ "Decrypt all Files" : "Разшифровай всички Файлове",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Криптиращите ти ключове са преместени на резервно място. Ако нещо се случи ще можеш да възстановиш ключовете. Изтрий ги единствено ако си сигурен, че всички файлове са успешно разшифровани.",
+ "Restore Encryption Keys" : "Възстанови Криптиращи Ключове",
+ "Delete Encryption Keys" : "Изтрий Криптиращи Ключове",
+ "Show storage location" : "Покажи място за запис",
+ "Show last log in" : "Покажи последно вписване",
+ "Username" : "Потребителско Име",
+ "Create" : "Създаване",
+ "Admin Recovery Password" : "Възстановяване на Администраторска Парола",
+ "Enter the recovery password in order to recover the users files during password change" : "Въведи паролата за възстановяване, за да възстановиш файловете на потребителите при промяна на паролата.",
+ "Add Group" : "Добави Група",
+ "Group" : "Група",
+ "Everyone" : "Всички",
+ "Admins" : "Администратори",
+ "Default Quota" : "Квота по подразбиране",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Моля, въведи квота за заделено място (пр. \"512 MB\" или \"12 GB\")",
+ "Unlimited" : "Неограничено",
+ "Other" : "Друга...",
+ "Group Admin for" : "Групов администратор за",
+ "Quota" : "Квота",
+ "Storage Location" : "Място за Запис",
+ "Last Login" : "Последно Вписване",
+ "change full name" : "промени пълното име",
+ "set new password" : "сложи нова парола",
+ "Default" : "По подразбиране"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/bg_BG.json b/settings/l10n/bg_BG.json
new file mode 100644
index 00000000000..a4eee134950
--- /dev/null
+++ b/settings/l10n/bg_BG.json
@@ -0,0 +1,238 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Предупреждения за сигурност и настройки",
+ "Cron" : "Крон",
+ "Sharing" : "Споделяне",
+ "Security" : "Сигурност",
+ "Email Server" : "Имейл Сървър",
+ "Log" : "Доклад",
+ "Authentication error" : "Възникна проблем с идентификацията",
+ "Your full name has been changed." : "Пълното ти име е променено.",
+ "Unable to change full name" : "Неуспешна промяна на пълното име.",
+ "Group already exists" : "Групата вече съществува",
+ "Unable to add group" : "Неуспешно добавяне на група",
+ "Files decrypted successfully" : "Успешно разшифроването на файловете.",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Неуспешно разшифроване на файловете ти, моля провери owncloud.log или попитай администратора.",
+ "Couldn't decrypt your files, check your password and try again" : "Неуспешно разшифроване на файловете ти, провери паролата си и опитай отново.",
+ "Encryption keys deleted permanently" : "Ключовете за криптиране са безвъзвратно изтрити",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Неуспешно безвъзвратно изтриване на криптиращите ключове, моля провери своя owncloud.log или се свържи с админстратора.",
+ "Couldn't remove app." : "Неуспешно премахване на приложението.",
+ "Email saved" : "Имейла запазен",
+ "Invalid email" : "Невалиден имейл",
+ "Unable to delete group" : "Неуспешно изтриване на група",
+ "Unable to delete user" : "Неуспешно изтриване на потребител",
+ "Backups restored successfully" : "Резервното копие е успешно възстановено.",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Неуспешно възстановяване на криптиращите ти ключове, моля провери owncloud.log или попитай администратора.",
+ "Language changed" : "Езикът е променен",
+ "Invalid request" : "Невалидна заявка",
+ "Admins can't remove themself from the admin group" : "Админът не може да премахне себе си от админ групата.",
+ "Unable to add user to group %s" : "Неуспешно добавяне на потребител към групата %s.",
+ "Unable to remove user from group %s" : "Неуспешно премахване на потребител от групата %s.",
+ "Couldn't update app." : "Неуспешно обновяване на приложението.",
+ "Wrong password" : "Грешна парола",
+ "No user supplied" : "Липсва потребителско име",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Моля, посочете администраторската парола за възстановяване или всичката информация на потребителите ще бъде загубена.",
+ "Wrong admin recovery password. Please check the password and try again." : "Грешна администраторска парола за възстановяване. Моля, провери паролата и опитай отново.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Сървърът не позволява смяна на паролата, но ключът за криптиране беше успешно обновен.",
+ "Unable to change password" : "Неуспешна смяна на паролата.",
+ "Enabled" : "Включено",
+ "Not enabled" : "Изключено",
+ "Recommended" : "Препоръчано",
+ "Saved" : "Запис",
+ "test email settings" : "провери имейл настройките",
+ "If you received this email, the settings seem to be correct." : "Ако си получил този имейл, настройките са правилни.",
+ "A problem occurred while sending the email. Please revise your settings." : "Настъпи проблем при изпращането на имейла. Моля, провери настройките.",
+ "Email sent" : "Имейлът е изпратен",
+ "You need to set your user email before being able to send test emails." : "Трябва да зададеш своя имейл преди да можеш да изпратиш проверяващи имейли.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Сигурен ли си, че искащ да добавиш \"{domain}\" сигурен домейн?",
+ "Add trusted domain" : "Добави сигурен домейн",
+ "Sending..." : "Изпращане...",
+ "All" : "Всички",
+ "Please wait...." : "Моля изчакайте....",
+ "Error while disabling app" : "Грешка при изключването на приложението",
+ "Disable" : "Изключено",
+ "Enable" : "Включено",
+ "Error while enabling app" : "Грешка при включване на приложението",
+ "Updating...." : "Обновява се...",
+ "Error while updating app" : "Грешка при обновяване на приложението.",
+ "Updated" : "Обновено",
+ "Uninstalling ...." : "Премахване ...",
+ "Error while uninstalling app" : "Грешка при премахването на приложението.",
+ "Uninstall" : "Премахване",
+ "Select a profile picture" : "Избери аватар",
+ "Very weak password" : "Много слаба парола",
+ "Weak password" : "Слаба парола",
+ "So-so password" : "Не особено добра парола",
+ "Good password" : "Добра парола",
+ "Strong password" : "Сигурна парола",
+ "Valid until {date}" : "Валиден до {date}",
+ "Delete" : "Изтрий",
+ "Decrypting files... Please wait, this can take some time." : "Разшифроване на файловете... Моля, изчакай, това може да отнеме време...",
+ "Delete encryption keys permanently." : "Изтрий криптиращите ключове безвъзвратно.",
+ "Restore encryption keys." : "Възстанови криптиращите ключове.",
+ "Groups" : "Групи",
+ "Unable to delete {objName}" : "Неуспешно изтриване на {objName}.",
+ "Error creating group" : "Грешка при създаване на група.",
+ "A valid group name must be provided" : "Очаква се валидно име на група",
+ "deleted {groupName}" : "{groupName} изтрит",
+ "undo" : "възтановяване",
+ "no group" : "няма група",
+ "never" : "никога",
+ "deleted {userName}" : "{userName} изтрит",
+ "add group" : "нова група",
+ "A valid username must be provided" : "Валидно потребителско име трябва да бъде зададено.",
+ "Error creating user" : "Грешка при създаване на потребител.",
+ "A valid password must be provided" : "Валидна парола трябва да бъде зададена.",
+ "Warning: Home directory for user \"{user}\" already exists" : "Предупреждение: Личната директория на потребителя \"{user}\" вече съществува.",
+ "__language_name__" : "__language_name__",
+ "Personal Info" : "Лична Информация",
+ "SSL root certificates" : "SSL root сертификати",
+ "Encryption" : "Криптиране",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Всичко (фатални проблеми, грешки, предупреждения, информация, дебъгване)",
+ "Info, warnings, errors and fatal issues" : "Информация, предупреждения, грешки и фатални проблеми",
+ "Warnings, errors and fatal issues" : "Предупреждения, грешки и фатални проблеми",
+ "Errors and fatal issues" : "Грешки и фатални проблеми",
+ "Fatal issues only" : "Само фатални проблеми",
+ "None" : "Няма",
+ "Login" : "Вход",
+ "Plain" : "Не защитен",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Предупреждение за Сигурноста",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "В момента използваш HTTP, за да посетиш %s. Силно препоръчваме да настроиш съвръра си да използва HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Твоята директория за данни и файлове вероятно са достъпни от интернет. .htaccess файла не функционира. Силно препоръчваме да настроиш уебсъръра по такъв начин, че директорията за данни да не бъде достъпна или да я преместиш извън директорията корен на сървъра.",
+ "Setup Warning" : "Предупреждение за Настройките",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP е настроен да премахва inline doc блокове. Това може да превърне няколко основни приложения недостъпни.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Това може да се дължи на cache/accelerator като Zend OPache или eAccelerator.",
+ "Database Performance Info" : "Информацията за Прозиводителност на Базата Данни",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Настоящата база данни е SQLite. За по-големи инсталации препоръчваме да я смениш. За да преминеш към друга база данни използвай следната команда от командния ред: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Модулът 'fileinfo' липсва",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP модулът 'fileinfo' липсва. Силно препоръчваме този модъл да бъде добавен, за да бъдат постигнати най-добри резултати при mime-type откриването.",
+ "Your PHP version is outdated" : "PHP версията е остаряла.",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "PHP версията е остаряла. Силно препоръчваме да я обновиш на 5.3.8 или по-нова, защото по-старите версии създават проблеми. Възможно е тази инсталация да не работи правилно.",
+ "PHP charset is not set to UTF-8" : "PHP таблицата от символи не е настроена за UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP таблицата от символи не е настроена за UTF-8. Това може да предизвика големи проблеми с не ASCII символи в имена на файлове. Силно перпоръчваме да промените стойноста на 'defaul_charset' в php.ini до 'UTF-8'.",
+ "Locale not working" : "Местоположението не работи",
+ "System locale can not be set to a one which supports UTF-8." : "Системните настройки за местоположение не могат да бъдат промени на такива, подържащи UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Това означва, че може да има проблеми с определини символи в имената на файловете.",
+ "URL generation in notification emails" : "Генериране на URL в имейлите за известяване",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталацията не e инсталиранa в root на домейна и използва cron, може да има проблеми с генерирането на URL. За да избегнеш тези проблеми, моля, промени \"overwritewebroot\" в config.php с webroot пътя (Препоръчително: \"%s\")",
+ "Connectivity Checks" : "Проверки за свързаност",
+ "No problems found" : "Не са открити проблеми",
+ "Please double check the installation guides ." : "Моля, провери ръководството за инсталиране отново.",
+ "Last cron was executed at %s." : "Последният cron се изпълни в %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Последният cron се изпълни в %s. Това е преди повече от час, нещо не както трябва.",
+ "Cron was not executed yet!" : "Cron oще не е изпълнен!",
+ "Execute one task with each page loaded" : "Изпълни по едно задание с всяка заредена страница.",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php е регистриран към webcron да се свързва с cron.php всеки 15 минути по http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Изполвай системната cron service, за връзка с cron.php файла всеки 15 минути.",
+ "Allow apps to use the Share API" : "Разреши приложенията да използват Share API.",
+ "Allow users to share via link" : "Разреши потребителите да споделят с връзка",
+ "Enforce password protection" : "Изискай защита с парола.",
+ "Allow public uploads" : "Разреши общодостъпно качване",
+ "Set default expiration date" : "Заложи дата на изтичане по подразбиране",
+ "Expire after " : "Изтечи след",
+ "days" : "дена",
+ "Enforce expiration date" : "Изисквай дата на изтичане",
+ "Allow resharing" : "Разреши пресподеляне.",
+ "Restrict users to only share with users in their groups" : "Ограничи потребителите, така че да могат да споделят само с други потребители в своите групи.",
+ "Allow users to send mail notification for shared files" : "Разреши потребителите да изпращат имейл уведомления за споделени файлове.",
+ "Exclude groups from sharing" : "Забрани групи да споделят",
+ "These groups will still be able to receive shares, but not to initiate them." : "Тези групи ще могат да получават споделения, но няма да могат самите те да споделят.",
+ "Enforce HTTPS" : "Изисквай HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Задължава клиента да се свързва с %s през криптирана връзка.",
+ "Enforce HTTPS for subdomains" : "Изисквай HTTPS за под домейни",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Задължава клиента да се свързва с %s и негови под домейни през криптирана връзка.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Моля свържи се с твоя %s през HTTPS, за да включиш или изключиш SSL задължаването.",
+ "This is used for sending out notifications." : "Това се използва за изпращане на уведомления.",
+ "Send mode" : "Режим на изпращане",
+ "From address" : "От адрес",
+ "mail" : "поща",
+ "Authentication method" : "Метод за отризиране",
+ "Authentication required" : "Нужна е идентификация",
+ "Server address" : "Адрес на сървъра",
+ "Port" : "Порт",
+ "Credentials" : "Потр. име и парола",
+ "SMTP Username" : "SMTP Потребителско Име",
+ "SMTP Password" : "SMTP Парола",
+ "Store credentials" : "Запазвай креденциите",
+ "Test email settings" : "Настройки на проверяващия имейл",
+ "Send email" : "Изпрати имейл",
+ "Log level" : "Детайли на доклада",
+ "More" : "Още",
+ "Less" : "По-малко",
+ "Version" : "Версия",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Разработен от ownCloud обществото , кодът е лицензиран под AGPL .",
+ "More apps" : "Още приложения",
+ "Add your app" : "Добавете Ваше приложение",
+ "by" : "от",
+ "licensed" : "лицензирано",
+ "Documentation:" : "Документация:",
+ "User Documentation" : "Потребителска Документация",
+ "Admin Documentation" : "Админ Документация",
+ "Update to %s" : "Обнови до %s",
+ "Enable only for specific groups" : "Включи само за определени групи",
+ "Uninstall App" : "Премахни Приложението",
+ "Administrator Documentation" : "Административна Документация",
+ "Online Documentation" : "Документация в Интернет",
+ "Forum" : "Форум",
+ "Bugtracker" : "Докладвани грешки",
+ "Commercial Support" : "Платена Поддръжка",
+ "Get the apps to sync your files" : "Изтегли програми за синхронизиране на файловете ти",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Ако искаш да помогнеш на проекта:\n\t\tприсъедини се и пиши код \n\t\tили\n\t\tразпространи мълвата !",
+ "Show First Run Wizard again" : "Покажи Настройките за Първоначално Зареждане отново",
+ "You have used %s of the available %s " : "Използвал си %s от наличните %s .",
+ "Password" : "Парола",
+ "Your password was changed" : "Паролата ти е промена.",
+ "Unable to change your password" : "Неуспешна промяна на паролата.",
+ "Current password" : "Текуща парола",
+ "New password" : "Нова парола",
+ "Change password" : "Промяна на паролата",
+ "Full Name" : "Пълно Име",
+ "Email" : "Имейл",
+ "Your email address" : "Твоят имейл адрес",
+ "Fill in an email address to enable password recovery and receive notifications" : "Въведи имейл, за да включиш функцията за възстановяване на паролата и уведомления.",
+ "Profile picture" : "Аватар",
+ "Upload new" : "Качи нов",
+ "Select new from Files" : "Избери нов от Файловете",
+ "Remove image" : "Премахни изображението",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Png или jpg. Най-добре в квадратни размери, но ще имаш възможност да го изрежеш.",
+ "Your avatar is provided by your original account." : "Твоят аватар е взет от оригиналния ти профил.",
+ "Cancel" : "Отказ",
+ "Choose as profile image" : "Избери като аватар",
+ "Language" : "Език",
+ "Help translate" : "Помогни с превода",
+ "Common Name" : "Познато Име",
+ "Valid until" : "Валиден до",
+ "Issued By" : "Издаден От",
+ "Valid until %s" : "Валиден до %s",
+ "Import Root Certificate" : "Внасяне на Root Сертификат",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Приложението за криптиране вече не е включено, моля разшифрирай всичките си файлове.",
+ "Log-in password" : "Парола за вписване",
+ "Decrypt all Files" : "Разшифровай всички Файлове",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Криптиращите ти ключове са преместени на резервно място. Ако нещо се случи ще можеш да възстановиш ключовете. Изтрий ги единствено ако си сигурен, че всички файлове са успешно разшифровани.",
+ "Restore Encryption Keys" : "Възстанови Криптиращи Ключове",
+ "Delete Encryption Keys" : "Изтрий Криптиращи Ключове",
+ "Show storage location" : "Покажи място за запис",
+ "Show last log in" : "Покажи последно вписване",
+ "Username" : "Потребителско Име",
+ "Create" : "Създаване",
+ "Admin Recovery Password" : "Възстановяване на Администраторска Парола",
+ "Enter the recovery password in order to recover the users files during password change" : "Въведи паролата за възстановяване, за да възстановиш файловете на потребителите при промяна на паролата.",
+ "Add Group" : "Добави Група",
+ "Group" : "Група",
+ "Everyone" : "Всички",
+ "Admins" : "Администратори",
+ "Default Quota" : "Квота по подразбиране",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Моля, въведи квота за заделено място (пр. \"512 MB\" или \"12 GB\")",
+ "Unlimited" : "Неограничено",
+ "Other" : "Друга...",
+ "Group Admin for" : "Групов администратор за",
+ "Quota" : "Квота",
+ "Storage Location" : "Място за Запис",
+ "Last Login" : "Последно Вписване",
+ "change full name" : "промени пълното име",
+ "set new password" : "сложи нова парола",
+ "Default" : "По подразбиране"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/bg_BG.php b/settings/l10n/bg_BG.php
deleted file mode 100644
index 335c81f81f0..00000000000
--- a/settings/l10n/bg_BG.php
+++ /dev/null
@@ -1,239 +0,0 @@
- "Зададена е невалидна стойност за %s.",
-"Saved" => "Запис",
-"test email settings" => "провери имейл настройките",
-"If you received this email, the settings seem to be correct." => "Ако си получил този имейл, настройките са правилни.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Настъпи проблем при изпращането на имейла. Моля, провери настройките.",
-"Email sent" => "Имейлът е изпратен",
-"You need to set your user email before being able to send test emails." => "Трябва да зададеш своя имейл преди да можеш да изпратиш проверяващи имейли.",
-"Send mode" => "Режим на изпращане",
-"Encryption" => "Криптиране",
-"Authentication method" => "Метод за отризиране",
-"Unable to load list from App Store" => "Неуспешен опит за зареждане на списъка от Магазина за Програми.",
-"Authentication error" => "Възникна проблем с идентификацията",
-"Your full name has been changed." => "Пълното ти име е променено.",
-"Unable to change full name" => "Неуспешна промяна на пълното име.",
-"Group already exists" => "Групата вече съществува",
-"Unable to add group" => "Неуспешно добавяне на група",
-"Files decrypted successfully" => "Успешно разшифроването на файловете.",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Неуспешно разшифроване на файловете ти, моля провери owncloud.log или попитай администратора.",
-"Couldn't decrypt your files, check your password and try again" => "Неуспешно разшифроване на файловете ти, провери паролата си и опитай отново.",
-"Encryption keys deleted permanently" => "Ключовете за криптиране са безвъзвратно изтрити",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Неуспешно безвъзвратно изтриване на криптиращите ключове, моля провери своя owncloud.log или се свържи с админстратора.",
-"Couldn't remove app." => "Неуспешно премахване на приложението.",
-"Email saved" => "Имейла запазен",
-"Invalid email" => "Невалиден имейл",
-"Unable to delete group" => "Неуспешно изтриване на група",
-"Unable to delete user" => "Неуспешно изтриване на потребител",
-"Backups restored successfully" => "Резервното копие е успешно възстановено.",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Неуспешно възстановяване на криптиращите ти ключове, моля провери owncloud.log или попитай администратора.",
-"Language changed" => "Езикът е променен",
-"Invalid request" => "Невалидна заявка",
-"Admins can't remove themself from the admin group" => "Админът не може да премахне себе си от админ групата.",
-"Unable to add user to group %s" => "Неуспешно добавяне на потребител към групата %s.",
-"Unable to remove user from group %s" => "Неуспешно премахване на потребител от групата %s.",
-"Couldn't update app." => "Неуспешно обновяване на приложението.",
-"Wrong password" => "Грешна парола",
-"No user supplied" => "Липсва потребителско име",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Моля, посочете администраторската парола за възстановяване или всичката информация на потребителите ще бъде загубена.",
-"Wrong admin recovery password. Please check the password and try again." => "Грешна администраторска парола за възстановяване. Моля, провери паролата и опитай отново.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Сървърът не позволява смяна на паролата, но ключът за криптиране беше успешно обновен.",
-"Unable to change password" => "Неуспешна смяна на паролата.",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "Сигурен ли си, че искащ да добавиш \"{domain}\" сигурен домейн?",
-"Add trusted domain" => "Добави сигурен домейн",
-"Sending..." => "Изпращане...",
-"All" => "Всички",
-"User Documentation" => "Потребителска Документация",
-"Admin Documentation" => "Админ Документация",
-"Update to {appversion}" => "Обновяване до {appversion}.",
-"Uninstall App" => "Премахни Приложението",
-"Disable" => "Изключено",
-"Enable" => "Включено",
-"Please wait...." => "Моля изчакайте....",
-"Error while disabling app" => "Грешка при изключването на приложението",
-"Error while enabling app" => "Грешка при включване на приложението",
-"Updating...." => "Обновява се...",
-"Error while updating app" => "Грешка при обновяване на приложението.",
-"Error" => "Грешка",
-"Update" => "Обновяване",
-"Updated" => "Обновено",
-"Uninstalling ...." => "Премахване ...",
-"Error while uninstalling app" => "Грешка при премахването на приложението.",
-"Uninstall" => "Премахване",
-"Select a profile picture" => "Избери аватар",
-"Very weak password" => "Много слаба парола",
-"Weak password" => "Слаба парола",
-"So-so password" => "Не особено добра парола",
-"Good password" => "Добра парола",
-"Strong password" => "Сигурна парола",
-"Valid until {date}" => "Валиден до {date}",
-"Delete" => "Изтрий",
-"Decrypting files... Please wait, this can take some time." => "Разшифроване на файловете... Моля, изчакай, това може да отнеме време...",
-"Delete encryption keys permanently." => "Изтрий криптиращите ключове безвъзвратно.",
-"Restore encryption keys." => "Възстанови криптиращите ключове.",
-"Groups" => "Групи",
-"Unable to delete {objName}" => "Неуспешно изтриване на {objName}.",
-"Error creating group" => "Грешка при създаване на група.",
-"A valid group name must be provided" => "Очаква се валидно име на група",
-"deleted {groupName}" => "{groupName} изтрит",
-"undo" => "възтановяване",
-"Group Admin" => "Админ Група",
-"never" => "никога",
-"deleted {userName}" => "{userName} изтрит",
-"add group" => "нова група",
-"A valid username must be provided" => "Валидно потребителско име трябва да бъде зададено.",
-"Error creating user" => "Грешка при създаване на потребител.",
-"A valid password must be provided" => "Валидна парола трябва да бъде зададена.",
-"Warning: Home directory for user \"{user}\" already exists" => "Предупреждение: Личната директория на потребителя \"{user}\" вече съществува.",
-"__language_name__" => "__language_name__",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Всичко (фатални проблеми, грешки, предупреждения, информация, дебъгване)",
-"Info, warnings, errors and fatal issues" => "Информация, предупреждения, грешки и фатални проблеми",
-"Warnings, errors and fatal issues" => "Предупреждения, грешки и фатални проблеми",
-"Errors and fatal issues" => "Грешки и фатални проблеми",
-"Fatal issues only" => "Само фатални проблеми",
-"None" => "Няма",
-"Login" => "Вход",
-"Plain" => "Не защитен",
-"NT LAN Manager" => "NT LAN Manager",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Предупреждение за Сигурноста",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "В момента използваш HTTP, за да посетиш %s. Силно препоръчваме да настроиш съвръра си да използва HTTPS.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Твоята директория за данни и файлове вероятно са достъпни от интернет. .htaccess файла не функционира. Силно препоръчваме да настроиш уебсъръра по такъв начин, че директорията за данни да не бъде достъпна или да я преместиш извън директорията корен на сървъра.",
-"Setup Warning" => "Предупреждение за Настройките",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "PHP е настроен да премахва inline doc блокове. Това може да превърне няколко основни приложения недостъпни.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Това може да се дължи на cache/accelerator като Zend OPache или eAccelerator.",
-"Database Performance Info" => "Информацията за Прозиводителност на Базата Данни",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "Настоящата база данни е SQLite. За по-големи инсталации препоръчваме да я смениш. За да преминеш към друга база данни използвай следната команда от командния ред: 'occ db:convert-type'",
-"Module 'fileinfo' missing" => "Модулът 'fileinfo' липсва",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "PHP модулът 'fileinfo' липсва. Силно препоръчваме този модъл да бъде добавен, за да бъдат постигнати най-добри резултати при mime-type откриването.",
-"Your PHP version is outdated" => "PHP версията е остаряла.",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "PHP версията е остаряла. Силно препоръчваме да я обновиш на 5.3.8 или по-нова, защото по-старите версии създават проблеми. Възможно е тази инсталация да не работи правилно.",
-"PHP charset is not set to UTF-8" => "PHP таблицата от символи не е настроена за UTF-8",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "PHP таблицата от символи не е настроена за UTF-8. Това може да предизвика големи проблеми с не ASCII символи в имена на файлове. Силно перпоръчваме да промените стойноста на 'defaul_charset' в php.ini до 'UTF-8'.",
-"Locale not working" => "Местоположението не работи",
-"System locale can not be set to a one which supports UTF-8." => "Системните настройки за местоположение не могат да бъдат промени на такива, подържащи UTF-8.",
-"This means that there might be problems with certain characters in file names." => "Това означва, че може да има проблеми с определини символи в имената на файловете.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Силно препоръчваме да инсталираш на сървъра пакетите, които подържат следните местоположения: %s.",
-"URL generation in notification emails" => "Генериране на URL в имейлите за известяване",
-"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "Ако инсталацията не e инсталиранa в root на домейна и използва cron, може да има проблеми с генерирането на URL. За да избегнеш тези проблеми, моля, промени \"overwritewebroot\" в config.php с webroot пътя (Препоръчително: \"%s\")",
-"Connectivity checks" => "Проверка за свързаност",
-"No problems found" => "Не са открити проблеми",
-"Please double check the installation guides ." => "Моля, провери ръководството за инсталиране отново.",
-"Cron" => "Крон",
-"Last cron was executed at %s." => "Последният cron се изпълни в %s.",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Последният cron се изпълни в %s. Това е преди повече от час, нещо не както трябва.",
-"Cron was not executed yet!" => "Cron oще не е изпълнен!",
-"Execute one task with each page loaded" => "Изпълни по едно задание с всяка заредена страница.",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php е регистриран към webcron да се свързва с cron.php всеки 15 минути по http.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Изполвай системната cron service, за връзка с cron.php файла всеки 15 минути.",
-"Sharing" => "Споделяне",
-"Allow apps to use the Share API" => "Разреши приложенията да използват Share API.",
-"Allow users to share via link" => "Разреши потребителите да споделят с връзка",
-"Enforce password protection" => "Изискай защита с парола.",
-"Allow public uploads" => "Разреши общодостъпно качване",
-"Set default expiration date" => "Заложи дата на изтичане по подразбиране",
-"Expire after " => "Изтечи след",
-"days" => "дена",
-"Enforce expiration date" => "Изисквай дата на изтичане",
-"Allow resharing" => "Разреши пресподеляне.",
-"Restrict users to only share with users in their groups" => "Ограничи потребителите, така че да могат да споделят само с други потребители в своите групи.",
-"Allow users to send mail notification for shared files" => "Разреши потребителите да изпращат имейл уведомления за споделени файлове.",
-"Exclude groups from sharing" => "Забрани групи да споделят",
-"These groups will still be able to receive shares, but not to initiate them." => "Тези групи ще могат да получават споделения, но няма да могат самите те да споделят.",
-"Security" => "Сигурност",
-"Enforce HTTPS" => "Изисквай HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Задължава клиента да се свързва с %s през криптирана връзка.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Моля свържи се с твоя %s през HTTPS, за да включиш или изключиш SSL задължаването.",
-"Email Server" => "Имейл Сървър",
-"This is used for sending out notifications." => "Това се използва за изпращане на уведомления.",
-"From address" => "От адрес",
-"mail" => "поща",
-"Authentication required" => "Нужна е идентификация",
-"Server address" => "Адрес на сървъра",
-"Port" => "Порт",
-"Credentials" => "Потр. име и парола",
-"SMTP Username" => "SMTP Потребителско Име",
-"SMTP Password" => "SMTP Парола",
-"Test email settings" => "Настройки на проверяващия имейл",
-"Send email" => "Изпрати имейл",
-"Log" => "Доклад",
-"Log level" => "Детайли на доклада",
-"More" => "Още",
-"Less" => "По-малко",
-"Version" => "Версия",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Разработен от ownCloud обществото , кодът е лицензиран под AGPL .",
-"Add your App" => "Дабави свое Приложение",
-"More Apps" => "Още Приложения",
-"Select an App" => "Избери Приложение",
-"Documentation:" => "Документация:",
-"See application page at apps.owncloud.com" => "Виж страницата на приложението на apps.owncloud.com.",
-"See application website" => "Виж страницата на приложението",
-" -licensed by " => " -лицензиран от ",
-"Enable only for specific groups" => "Включи само за определени групи",
-"Administrator Documentation" => "Административна Документация",
-"Online Documentation" => "Документация в Интернет",
-"Forum" => "Форум",
-"Bugtracker" => "Докладвани грешки",
-"Commercial Support" => "Платена Поддръжка",
-"Get the apps to sync your files" => "Изтегли програми за синхронизиране на файловете ти",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Ако искаш да помогнеш на проекта:\n\t\tприсъедини се и пиши код \n\t\tили\n\t\tразпространи мълвата !",
-"Show First Run Wizard again" => "Покажи Настройките за Първоначално Зареждане отново",
-"You have used %s of the available %s " => "Използвал си %s от наличните %s .",
-"Password" => "Парола",
-"Your password was changed" => "Паролата ти е промена.",
-"Unable to change your password" => "Неуспешна промяна на паролата.",
-"Current password" => "Текуща парола",
-"New password" => "Нова парола",
-"Change password" => "Промяна на паролата",
-"Full Name" => "Пълно Име",
-"Email" => "Имейл",
-"Your email address" => "Твоят имейл адрес",
-"Fill in an email address to enable password recovery and receive notifications" => "Въведи имейл, за да включиш функцията за възстановяване на паролата и уведомления.",
-"Profile picture" => "Аватар",
-"Upload new" => "Качи нов",
-"Select new from Files" => "Избери нов от Файловете",
-"Remove image" => "Премахни изображението",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Png или jpg. Най-добре в квадратни размери, но ще имаш възможност да го изрежеш.",
-"Your avatar is provided by your original account." => "Твоят аватар е взет от оригиналния ти профил.",
-"Cancel" => "Отказ",
-"Choose as profile image" => "Избери като аватар",
-"Language" => "Език",
-"Help translate" => "Помогни с превода",
-"SSL root certificates" => "SSL root сертификати",
-"Common Name" => "Познато Име",
-"Valid until" => "Валиден до",
-"Issued By" => "Издаден От",
-"Valid until %s" => "Валиден до %s",
-"Import Root Certificate" => "Внасяне на Root Сертификат",
-"The encryption app is no longer enabled, please decrypt all your files" => "Приложението за криптиране вече не е включено, моля разшифрирай всичките си файлове.",
-"Log-in password" => "Парола за вписване",
-"Decrypt all Files" => "Разшифровай всички Файлове",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Криптиращите ти ключове са преместени на резервно място. Ако нещо се случи ще можеш да възстановиш ключовете. Изтрий ги единствено ако си сигурен, че всички файлове са успешно разшифровани.",
-"Restore Encryption Keys" => "Възстанови Криптиращи Ключове",
-"Delete Encryption Keys" => "Изтрий Криптиращи Ключове",
-"Show storage location" => "Покажи място за запис",
-"Show last log in" => "Покажи последно вписване",
-"Login Name" => "Потребителско Име",
-"Create" => "Създаване",
-"Admin Recovery Password" => "Възстановяване на Администраторска Парола",
-"Enter the recovery password in order to recover the users files during password change" => "Въведи паролата за възстановяване, за да възстановиш файловете на потребителите при промяна на паролата.",
-"Search Users and Groups" => "Търси Потребители и Групи",
-"Add Group" => "Добави Група",
-"Group" => "Група",
-"Everyone" => "Всички",
-"Admins" => "Администратори",
-"Default Quota" => "Квота по подразбиране",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Моля, въведи квота за заделено място (пр. \"512 MB\" или \"12 GB\")",
-"Unlimited" => "Неограничено",
-"Other" => "Друга...",
-"Username" => "Потребителско Име",
-"Quota" => "Квота",
-"Storage Location" => "Място за Запис",
-"Last Login" => "Последно Вписване",
-"change full name" => "промени пълното име",
-"set new password" => "сложи нова парола",
-"Default" => "По подразбиране"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/bn_BD.js b/settings/l10n/bn_BD.js
new file mode 100644
index 00000000000..8d841f08b89
--- /dev/null
+++ b/settings/l10n/bn_BD.js
@@ -0,0 +1,106 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Sharing" : "ভাগাভাগিরত",
+ "Security" : "নিরাপত্তা",
+ "Email Server" : "ইমেইল সার্ভার",
+ "Authentication error" : "অনুমোদন ঘটিত সমস্যা",
+ "Your full name has been changed." : "আপনার পূর্ণ নাম পরিবর্তন করা হয়েছে।",
+ "Group already exists" : "গোষ্ঠীটি পূর্ব থেকেই বিদ্যমান",
+ "Unable to add group" : "গোষ্ঠী যোগ করা সম্ভব হলো না",
+ "Files decrypted successfully" : "সার্থকভাবে ফাইল ডিক্রিপ্ট করা হয়েছে",
+ "Couldn't remove app." : "অ্যাপ অপসারণ করা গেলনা",
+ "Email saved" : "ই-মেইল সংরক্ষন করা হয়েছে",
+ "Invalid email" : "ই-মেইলটি সঠিক নয়",
+ "Unable to delete group" : "গোষ্ঠী মুছে ফেলা সম্ভব হলো না ",
+ "Unable to delete user" : "ব্যবহারকারী মুছে ফেলা সম্ভব হলো না ",
+ "Backups restored successfully" : "ব্যাকআপ পূণঃস্থাপন সুসম্পন্ন",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "িআপনার এনক্রিপসন কি পূনর্বাসন করা গেলনা, আপনার owncloud.log পিরীক্ষা করুন বা প্রশাসককে জিজ্ঞাসা করুন",
+ "Language changed" : "ভাষা পরিবর্তন করা হয়েছে",
+ "Invalid request" : "অনুরোধটি সঠিক নয়",
+ "Admins can't remove themself from the admin group" : "প্রশাসকবৃন্দ তাদেরকে প্রশাসক গোষ্ঠী থেকে মুছে ফেলতে পারবেন না",
+ "Unable to add user to group %s" : " %s গোষ্ঠীতে ব্যবহারকারী যোগ করা সম্ভব হলো না ",
+ "Unable to remove user from group %s" : "%s গোষ্ঠী থেকে ব্যবহারকারীকে অপসারণ করা সম্ভব হলো না",
+ "Couldn't update app." : "অ্যাপ নবায়ন করা গেলনা।",
+ "Wrong password" : "ভুল কুটশব্দ",
+ "No user supplied" : "ব্যবহারকারী দেয়া হয়নি",
+ "Enabled" : "কার্যকর",
+ "Saved" : "সংরক্ষণ করা হলো",
+ "test email settings" : "ইমেইল নিয়ামকসমূহ পরীক্ষা করুন",
+ "If you received this email, the settings seem to be correct." : "এই ইমেইলের অর্থ নিয়ামকসমূহ সঠিক।",
+ "Email sent" : "ই-মেইল পাঠানো হয়েছে",
+ "All" : "সবাই",
+ "Error while disabling app" : "অ্যাপ অকার্যকর করতে সমস্যা দেখা দিয়েছে ",
+ "Disable" : "নিষ্ক্রিয়",
+ "Enable" : "সক্রিয় ",
+ "Error while enabling app" : "অ্যাপ কার্যকর করতে সমস্যা দেখা দিয়েছে ",
+ "Updating...." : "নবায়ন করা হচ্ছে....",
+ "Error while updating app" : "অ্যাপ নবায়ন করতে সমস্যা দেখা দিয়েছে ",
+ "Updated" : "নবায়নকৃত",
+ "Strong password" : "শক্তিশালী কুটশব্দ",
+ "Valid until {date}" : "বৈধতা বলবৎ আছে {তারিখ} অবধি ",
+ "Delete" : "মুছে",
+ "Groups" : "গোষ্ঠীসমূহ",
+ "undo" : "ক্রিয়া প্রত্যাহার",
+ "never" : "কখনোই নয়",
+ "__language_name__" : "__language_name__",
+ "SSL root certificates" : "SSL রুট সনদপত্র",
+ "Encryption" : "সংকেতায়ন",
+ "None" : "কোনটিই নয়",
+ "Login" : "প্রবেশ",
+ "Security Warning" : "নিরাপত্তাজনিত সতর্কতা",
+ "Module 'fileinfo' missing" : "'fileinfo' মডিউল নেই",
+ "No problems found" : "কোন সমস্যা পাওয়া গেল না",
+ "Please double check the installation guides ." : "দয়া করে installation guides দ্বিতীয়বার দেখুন।",
+ "Expire after " : "এরপর মেয়াদোত্তীর্ণ হও",
+ "days" : "দিনগুলি",
+ "Enforce expiration date" : "মেয়াদোত্তীর্ণ হওয়ার তারিখ কার্যকর করুন",
+ "Send mode" : "পাঠানো মোড",
+ "From address" : "হইতে ঠিকানা",
+ "mail" : "মেইল",
+ "Server address" : "সার্ভার ঠিকানা",
+ "Port" : "পোর্ট",
+ "Send email" : "ইমেইল পাঠান ",
+ "More" : "বেশী",
+ "Less" : "কম",
+ "Version" : "ভার্সন",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "তৈলী করেছেন ownCloud সম্প্রদায় , যার উৎস কোডটি AGPL এর অধীনে লাইসেন্সকৃত।",
+ "by" : "কর্তৃক",
+ "User Documentation" : "ব্যবহারকারী সহায়িকা",
+ "Administrator Documentation" : "প্রশাসক সহায়িকা",
+ "Online Documentation" : "অনলাইন সহায়িকা",
+ "Forum" : "ফোরাম",
+ "Bugtracker" : "বাগট্র্যাকার",
+ "Commercial Support" : "বাণিজ্যিক সাপোর্ট",
+ "Get the apps to sync your files" : "আপনার ফাইলসমূহ সিংক করতে অ্যাপস নিন",
+ "Show First Run Wizard again" : "প্রথমবার চালানোর যাদুকর পূনরায় প্রদর্শন কর",
+ "You have used %s of the available %s " : "আপনি ব্যবহার করছেন %s , সুলভ %s এর মধ্যে।",
+ "Password" : "কূটশব্দ",
+ "Your password was changed" : "আপনার কূটশব্দটি পরিবর্তন করা হয়েছে ",
+ "Unable to change your password" : "আপনার কূটশব্দটি পরিবর্তন করতে সক্ষম নয়",
+ "Current password" : "বর্তমান কূটশব্দ",
+ "New password" : "নতুন কূটশব্দ",
+ "Change password" : "কূটশব্দ পরিবর্তন করুন",
+ "Email" : "ইমেইল",
+ "Your email address" : "আপনার ই-মেইল ঠিকানা",
+ "Cancel" : "বাতির",
+ "Language" : "ভাষা",
+ "Help translate" : "অনুবাদ করতে সহায়তা করুন",
+ "Import Root Certificate" : "রুট সনদপত্রটি আমদানি করুন",
+ "Username" : "ব্যবহারকারী",
+ "Create" : "তৈরী কর",
+ "Admin Recovery Password" : "প্রশাসক পূণরূদ্ধার কুটশব্দ",
+ "Add Group" : "গ্রুপ যোগ কর",
+ "Group" : "গোষ্ঠীসমূহ",
+ "Everyone" : "সকলে",
+ "Admins" : "প্রশাসন",
+ "Unlimited" : "অসীম",
+ "Other" : "অন্যান্য",
+ "Quota" : "কোটা",
+ "Storage Location" : "সংরক্ষণাগার এর অবস্থান",
+ "Last Login" : "শেষ লগইন",
+ "change full name" : "পুরোনাম পরিবর্তন করুন",
+ "set new password" : "নতুন কূটশব্দ নির্ধারণ করুন",
+ "Default" : "পূর্বনির্ধারিত"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/bn_BD.json b/settings/l10n/bn_BD.json
new file mode 100644
index 00000000000..3c73fdcfd00
--- /dev/null
+++ b/settings/l10n/bn_BD.json
@@ -0,0 +1,104 @@
+{ "translations": {
+ "Sharing" : "ভাগাভাগিরত",
+ "Security" : "নিরাপত্তা",
+ "Email Server" : "ইমেইল সার্ভার",
+ "Authentication error" : "অনুমোদন ঘটিত সমস্যা",
+ "Your full name has been changed." : "আপনার পূর্ণ নাম পরিবর্তন করা হয়েছে।",
+ "Group already exists" : "গোষ্ঠীটি পূর্ব থেকেই বিদ্যমান",
+ "Unable to add group" : "গোষ্ঠী যোগ করা সম্ভব হলো না",
+ "Files decrypted successfully" : "সার্থকভাবে ফাইল ডিক্রিপ্ট করা হয়েছে",
+ "Couldn't remove app." : "অ্যাপ অপসারণ করা গেলনা",
+ "Email saved" : "ই-মেইল সংরক্ষন করা হয়েছে",
+ "Invalid email" : "ই-মেইলটি সঠিক নয়",
+ "Unable to delete group" : "গোষ্ঠী মুছে ফেলা সম্ভব হলো না ",
+ "Unable to delete user" : "ব্যবহারকারী মুছে ফেলা সম্ভব হলো না ",
+ "Backups restored successfully" : "ব্যাকআপ পূণঃস্থাপন সুসম্পন্ন",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "িআপনার এনক্রিপসন কি পূনর্বাসন করা গেলনা, আপনার owncloud.log পিরীক্ষা করুন বা প্রশাসককে জিজ্ঞাসা করুন",
+ "Language changed" : "ভাষা পরিবর্তন করা হয়েছে",
+ "Invalid request" : "অনুরোধটি সঠিক নয়",
+ "Admins can't remove themself from the admin group" : "প্রশাসকবৃন্দ তাদেরকে প্রশাসক গোষ্ঠী থেকে মুছে ফেলতে পারবেন না",
+ "Unable to add user to group %s" : " %s গোষ্ঠীতে ব্যবহারকারী যোগ করা সম্ভব হলো না ",
+ "Unable to remove user from group %s" : "%s গোষ্ঠী থেকে ব্যবহারকারীকে অপসারণ করা সম্ভব হলো না",
+ "Couldn't update app." : "অ্যাপ নবায়ন করা গেলনা।",
+ "Wrong password" : "ভুল কুটশব্দ",
+ "No user supplied" : "ব্যবহারকারী দেয়া হয়নি",
+ "Enabled" : "কার্যকর",
+ "Saved" : "সংরক্ষণ করা হলো",
+ "test email settings" : "ইমেইল নিয়ামকসমূহ পরীক্ষা করুন",
+ "If you received this email, the settings seem to be correct." : "এই ইমেইলের অর্থ নিয়ামকসমূহ সঠিক।",
+ "Email sent" : "ই-মেইল পাঠানো হয়েছে",
+ "All" : "সবাই",
+ "Error while disabling app" : "অ্যাপ অকার্যকর করতে সমস্যা দেখা দিয়েছে ",
+ "Disable" : "নিষ্ক্রিয়",
+ "Enable" : "সক্রিয় ",
+ "Error while enabling app" : "অ্যাপ কার্যকর করতে সমস্যা দেখা দিয়েছে ",
+ "Updating...." : "নবায়ন করা হচ্ছে....",
+ "Error while updating app" : "অ্যাপ নবায়ন করতে সমস্যা দেখা দিয়েছে ",
+ "Updated" : "নবায়নকৃত",
+ "Strong password" : "শক্তিশালী কুটশব্দ",
+ "Valid until {date}" : "বৈধতা বলবৎ আছে {তারিখ} অবধি ",
+ "Delete" : "মুছে",
+ "Groups" : "গোষ্ঠীসমূহ",
+ "undo" : "ক্রিয়া প্রত্যাহার",
+ "never" : "কখনোই নয়",
+ "__language_name__" : "__language_name__",
+ "SSL root certificates" : "SSL রুট সনদপত্র",
+ "Encryption" : "সংকেতায়ন",
+ "None" : "কোনটিই নয়",
+ "Login" : "প্রবেশ",
+ "Security Warning" : "নিরাপত্তাজনিত সতর্কতা",
+ "Module 'fileinfo' missing" : "'fileinfo' মডিউল নেই",
+ "No problems found" : "কোন সমস্যা পাওয়া গেল না",
+ "Please double check the installation guides ." : "দয়া করে installation guides দ্বিতীয়বার দেখুন।",
+ "Expire after " : "এরপর মেয়াদোত্তীর্ণ হও",
+ "days" : "দিনগুলি",
+ "Enforce expiration date" : "মেয়াদোত্তীর্ণ হওয়ার তারিখ কার্যকর করুন",
+ "Send mode" : "পাঠানো মোড",
+ "From address" : "হইতে ঠিকানা",
+ "mail" : "মেইল",
+ "Server address" : "সার্ভার ঠিকানা",
+ "Port" : "পোর্ট",
+ "Send email" : "ইমেইল পাঠান ",
+ "More" : "বেশী",
+ "Less" : "কম",
+ "Version" : "ভার্সন",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "তৈলী করেছেন ownCloud সম্প্রদায় , যার উৎস কোডটি AGPL এর অধীনে লাইসেন্সকৃত।",
+ "by" : "কর্তৃক",
+ "User Documentation" : "ব্যবহারকারী সহায়িকা",
+ "Administrator Documentation" : "প্রশাসক সহায়িকা",
+ "Online Documentation" : "অনলাইন সহায়িকা",
+ "Forum" : "ফোরাম",
+ "Bugtracker" : "বাগট্র্যাকার",
+ "Commercial Support" : "বাণিজ্যিক সাপোর্ট",
+ "Get the apps to sync your files" : "আপনার ফাইলসমূহ সিংক করতে অ্যাপস নিন",
+ "Show First Run Wizard again" : "প্রথমবার চালানোর যাদুকর পূনরায় প্রদর্শন কর",
+ "You have used %s of the available %s " : "আপনি ব্যবহার করছেন %s , সুলভ %s এর মধ্যে।",
+ "Password" : "কূটশব্দ",
+ "Your password was changed" : "আপনার কূটশব্দটি পরিবর্তন করা হয়েছে ",
+ "Unable to change your password" : "আপনার কূটশব্দটি পরিবর্তন করতে সক্ষম নয়",
+ "Current password" : "বর্তমান কূটশব্দ",
+ "New password" : "নতুন কূটশব্দ",
+ "Change password" : "কূটশব্দ পরিবর্তন করুন",
+ "Email" : "ইমেইল",
+ "Your email address" : "আপনার ই-মেইল ঠিকানা",
+ "Cancel" : "বাতির",
+ "Language" : "ভাষা",
+ "Help translate" : "অনুবাদ করতে সহায়তা করুন",
+ "Import Root Certificate" : "রুট সনদপত্রটি আমদানি করুন",
+ "Username" : "ব্যবহারকারী",
+ "Create" : "তৈরী কর",
+ "Admin Recovery Password" : "প্রশাসক পূণরূদ্ধার কুটশব্দ",
+ "Add Group" : "গ্রুপ যোগ কর",
+ "Group" : "গোষ্ঠীসমূহ",
+ "Everyone" : "সকলে",
+ "Admins" : "প্রশাসন",
+ "Unlimited" : "অসীম",
+ "Other" : "অন্যান্য",
+ "Quota" : "কোটা",
+ "Storage Location" : "সংরক্ষণাগার এর অবস্থান",
+ "Last Login" : "শেষ লগইন",
+ "change full name" : "পুরোনাম পরিবর্তন করুন",
+ "set new password" : "নতুন কূটশব্দ নির্ধারণ করুন",
+ "Default" : "পূর্বনির্ধারিত"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/bn_BD.php b/settings/l10n/bn_BD.php
deleted file mode 100644
index 58b2a245e32..00000000000
--- a/settings/l10n/bn_BD.php
+++ /dev/null
@@ -1,114 +0,0 @@
- "%s এর জন্য অবৈধ ভ্যাল্যু প্রদান করা হয়েছৈ",
-"Saved" => "সংরক্ষণ করা হলো",
-"test email settings" => "ইমেইল নিয়ামকসমূহ পরীক্ষা করুন",
-"If you received this email, the settings seem to be correct." => "এই ইমেইলের অর্থ নিয়ামকসমূহ সঠিক।",
-"Email sent" => "ই-মেইল পাঠানো হয়েছে",
-"Send mode" => "পাঠানো মোড",
-"Encryption" => "সংকেতায়ন",
-"Unable to load list from App Store" => "অ্যাপস্টোর থেকে তালিকা লোড করতে সক্ষম নয়",
-"Authentication error" => "অনুমোদন ঘটিত সমস্যা",
-"Your full name has been changed." => "আপনার পূর্ণ নাম পরিবর্তন করা হয়েছে।",
-"Group already exists" => "গোষ্ঠীটি পূর্ব থেকেই বিদ্যমান",
-"Unable to add group" => "গোষ্ঠী যোগ করা সম্ভব হলো না",
-"Files decrypted successfully" => "সার্থকভাবে ফাইল ডিক্রিপ্ট করা হয়েছে",
-"Couldn't remove app." => "অ্যাপ অপসারণ করা গেলনা",
-"Email saved" => "ই-মেইল সংরক্ষন করা হয়েছে",
-"Invalid email" => "ই-মেইলটি সঠিক নয়",
-"Unable to delete group" => "গোষ্ঠী মুছে ফেলা সম্ভব হলো না ",
-"Unable to delete user" => "ব্যবহারকারী মুছে ফেলা সম্ভব হলো না ",
-"Backups restored successfully" => "ব্যাকআপ পূণঃস্থাপন সুসম্পন্ন",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "িআপনার এনক্রিপসন কি পূনর্বাসন করা গেলনা, আপনার owncloud.log পিরীক্ষা করুন বা প্রশাসককে জিজ্ঞাসা করুন",
-"Language changed" => "ভাষা পরিবর্তন করা হয়েছে",
-"Invalid request" => "অনুরোধটি সঠিক নয়",
-"Admins can't remove themself from the admin group" => "প্রশাসকবৃন্দ তাদেরকে প্রশাসক গোষ্ঠী থেকে মুছে ফেলতে পারবেন না",
-"Unable to add user to group %s" => " %s গোষ্ঠীতে ব্যবহারকারী যোগ করা সম্ভব হলো না ",
-"Unable to remove user from group %s" => "%s গোষ্ঠী থেকে ব্যবহারকারীকে অপসারণ করা সম্ভব হলো না",
-"Couldn't update app." => "অ্যাপ নবায়ন করা গেলনা।",
-"Wrong password" => "ভুল কুটশব্দ",
-"No user supplied" => "ব্যবহারকারী দেয়া হয়নি",
-"All" => "সবাই",
-"User Documentation" => "ব্যবহারকারী সহায়িকা",
-"Disable" => "নিষ্ক্রিয়",
-"Enable" => "সক্রিয় ",
-"Error while disabling app" => "অ্যাপ অকার্যকর করতে সমস্যা দেখা দিয়েছে ",
-"Error while enabling app" => "অ্যাপ কার্যকর করতে সমস্যা দেখা দিয়েছে ",
-"Updating...." => "নবায়ন করা হচ্ছে....",
-"Error while updating app" => "অ্যাপ নবায়ন করতে সমস্যা দেখা দিয়েছে ",
-"Error" => "সমস্যা",
-"Update" => "পরিবর্ধন",
-"Updated" => "নবায়নকৃত",
-"Strong password" => "শক্তিশালী কুটশব্দ",
-"Valid until {date}" => "বৈধতা বলবৎ আছে {তারিখ} অবধি ",
-"Delete" => "মুছে",
-"Groups" => "গোষ্ঠীসমূহ",
-"undo" => "ক্রিয়া প্রত্যাহার",
-"Group Admin" => "গোষ্ঠী প্রশাসক",
-"never" => "কখনোই নয়",
-"__language_name__" => "__language_name__",
-"None" => "কোনটিই নয়",
-"Login" => "প্রবেশ",
-"Security Warning" => "নিরাপত্তাজনিত সতর্কতা",
-"Module 'fileinfo' missing" => "'fileinfo' মডিউল নেই",
-"No problems found" => "কোন সমস্যা পাওয়া গেল না",
-"Please double check the installation guides ." => "দয়া করে installation guides দ্বিতীয়বার দেখুন।",
-"Sharing" => "ভাগাভাগিরত",
-"Expire after " => "এরপর মেয়াদোত্তীর্ণ হও",
-"days" => "দিনগুলি",
-"Enforce expiration date" => "মেয়াদোত্তীর্ণ হওয়ার তারিখ কার্যকর করুন",
-"Security" => "নিরাপত্তা",
-"Email Server" => "ইমেইল সার্ভার",
-"From address" => "হইতে ঠিকানা",
-"mail" => "মেইল",
-"Server address" => "সার্ভার ঠিকানা",
-"Port" => "পোর্ট",
-"Send email" => "ইমেইল পাঠান ",
-"More" => "বেশী",
-"Less" => "কম",
-"Version" => "ভার্সন",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "তৈলী করেছেন ownCloud সম্প্রদায় , যার উৎস কোডটি AGPL এর অধীনে লাইসেন্সকৃত।",
-"Add your App" => "আপনার অ্যাপটি যোগ করুন",
-"More Apps" => "আরও অ্যাপ",
-"Select an App" => "অ্যাপ নির্বাচন করুন",
-"See application page at apps.owncloud.com" => "apps.owncloud.com এ অ্যাপ্লিকেসন পৃষ্ঠা দেখুন",
-" -licensed by " => " -লাইসেন্সধারী ",
-"Administrator Documentation" => "প্রশাসক সহায়িকা",
-"Online Documentation" => "অনলাইন সহায়িকা",
-"Forum" => "ফোরাম",
-"Bugtracker" => "বাগট্র্যাকার",
-"Commercial Support" => "বাণিজ্যিক সাপোর্ট",
-"Get the apps to sync your files" => "আপনার ফাইলসমূহ সিংক করতে অ্যাপস নিন",
-"Show First Run Wizard again" => "প্রথমবার চালানোর যাদুকর পূনরায় প্রদর্শন কর",
-"You have used %s of the available %s " => "আপনি ব্যবহার করছেন %s , সুলভ %s এর মধ্যে।",
-"Password" => "কূটশব্দ",
-"Your password was changed" => "আপনার কূটশব্দটি পরিবর্তন করা হয়েছে ",
-"Unable to change your password" => "আপনার কূটশব্দটি পরিবর্তন করতে সক্ষম নয়",
-"Current password" => "বর্তমান কূটশব্দ",
-"New password" => "নতুন কূটশব্দ",
-"Change password" => "কূটশব্দ পরিবর্তন করুন",
-"Email" => "ইমেইল",
-"Your email address" => "আপনার ই-মেইল ঠিকানা",
-"Cancel" => "বাতির",
-"Language" => "ভাষা",
-"Help translate" => "অনুবাদ করতে সহায়তা করুন",
-"SSL root certificates" => "SSL রুট সনদপত্র",
-"Import Root Certificate" => "রুট সনদপত্রটি আমদানি করুন",
-"Login Name" => "প্রবেশ",
-"Create" => "তৈরী কর",
-"Admin Recovery Password" => "প্রশাসক পূণরূদ্ধার কুটশব্দ",
-"Add Group" => "গ্রুপ যোগ কর",
-"Group" => "গোষ্ঠীসমূহ",
-"Everyone" => "সকলে",
-"Admins" => "প্রশাসন",
-"Unlimited" => "অসীম",
-"Other" => "অন্যান্য",
-"Username" => "ব্যবহারকারী",
-"Quota" => "কোটা",
-"Storage Location" => "সংরক্ষণাগার এর অবস্থান",
-"Last Login" => "শেষ লগইন",
-"change full name" => "পুরোনাম পরিবর্তন করুন",
-"set new password" => "নতুন কূটশব্দ নির্ধারণ করুন",
-"Default" => "পূর্বনির্ধারিত"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/bn_IN.js b/settings/l10n/bn_IN.js
new file mode 100644
index 00000000000..7552436f21f
--- /dev/null
+++ b/settings/l10n/bn_IN.js
@@ -0,0 +1,11 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Saved" : "সংরক্ষিত",
+ "Delete" : "মুছে ফেলা",
+ "by" : "দ্বারা",
+ "Get the apps to sync your files" : "আপনার ফাইল সিঙ্ক করার অ্যাপ পান",
+ "Cancel" : "বাতিল করা",
+ "Username" : "ইউজারনেম"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/bn_IN.json b/settings/l10n/bn_IN.json
new file mode 100644
index 00000000000..7ec4ea67aa4
--- /dev/null
+++ b/settings/l10n/bn_IN.json
@@ -0,0 +1,9 @@
+{ "translations": {
+ "Saved" : "সংরক্ষিত",
+ "Delete" : "মুছে ফেলা",
+ "by" : "দ্বারা",
+ "Get the apps to sync your files" : "আপনার ফাইল সিঙ্ক করার অ্যাপ পান",
+ "Cancel" : "বাতিল করা",
+ "Username" : "ইউজারনেম"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/bn_IN.php b/settings/l10n/bn_IN.php
deleted file mode 100644
index 9e3ce7f906b..00000000000
--- a/settings/l10n/bn_IN.php
+++ /dev/null
@@ -1,10 +0,0 @@
- "সংরক্ষিত",
-"Error" => "ভুল",
-"Delete" => "মুছে ফেলা",
-"Get the apps to sync your files" => "আপনার ফাইল সিঙ্ক করার অ্যাপ পান",
-"Cancel" => "বাতিল করা",
-"Username" => "ইউজারনেম"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/bs.php b/settings/l10n/bs.php
deleted file mode 100644
index 708e045adeb..00000000000
--- a/settings/l10n/bs.php
+++ /dev/null
@@ -1,5 +0,0 @@
- "Spašavam..."
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/settings/l10n/ca.js b/settings/l10n/ca.js
new file mode 100644
index 00000000000..8c85f381dd7
--- /dev/null
+++ b/settings/l10n/ca.js
@@ -0,0 +1,241 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Avisos de seguretat i configuració",
+ "Cron" : "Cron",
+ "Sharing" : "Compartir",
+ "Security" : "Seguretat",
+ "Email Server" : "Servidor de correu",
+ "Log" : "Registre",
+ "Authentication error" : "Error d'autenticació",
+ "Your full name has been changed." : "El vostre nom complet ha canviat.",
+ "Unable to change full name" : "No s'ha pogut canviar el nom complet",
+ "Group already exists" : "El grup ja existeix",
+ "Unable to add group" : "No es pot afegir el grup",
+ "Files decrypted successfully" : "Els fitxers s'han desencriptat amb èxit",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "No es poden desencriptar els fitxers. Comproveu owncloud.log o demaneu-ho a l'administrador.",
+ "Couldn't decrypt your files, check your password and try again" : "No s'han pogut desencriptar els fitxers, comproveu la contrasenya i proveu-ho de nou",
+ "Encryption keys deleted permanently" : "Les claus d'encriptació s'han esborrat permanentment",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "No es poden esborrar les claus d'encriptació. Comproveu owncloud.log o demaneu-ho a l'administrador.",
+ "Couldn't remove app." : "No s'ha pogut eliminar l'aplicació",
+ "Email saved" : "S'ha desat el correu electrònic",
+ "Invalid email" : "El correu electrònic no és vàlid",
+ "Unable to delete group" : "No es pot eliminar el grup",
+ "Unable to delete user" : "No es pot eliminar l'usuari",
+ "Backups restored successfully" : "Les còpies de seguretat s'han restablert correctament",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "No es poden restablir les claus d'encriptació. Comproveu owncloud.log o demaneu-ho a l'administrador.",
+ "Language changed" : "S'ha canviat l'idioma",
+ "Invalid request" : "Sol·licitud no vàlida",
+ "Admins can't remove themself from the admin group" : "Els administradors no es poden eliminar del grup admin",
+ "Unable to add user to group %s" : "No es pot afegir l'usuari al grup %s",
+ "Unable to remove user from group %s" : "No es pot eliminar l'usuari del grup %s",
+ "Couldn't update app." : "No s'ha pogut actualitzar l'aplicació.",
+ "Wrong password" : "Contrasenya incorrecta",
+ "No user supplied" : "No heu proporcionat cap usuari",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Sisplau, proporcioneu una contrasenya de recuperació d'administrador, altrament totes les dades d'usuari es perdran",
+ "Wrong admin recovery password. Please check the password and try again." : "La contrasenya de recuperació d'administrador és incorrecta. Comproveu-la i torneu-ho a intentar.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "El dorsal no permet canviar la contrasenya, però la clau d'encripació d'usuaris s'ha actualitzat correctament.",
+ "Unable to change password" : "No es pot canviar la contrasenya",
+ "Enabled" : "Activat",
+ "Not enabled" : "Desactivat",
+ "Recommended" : "Recomanat",
+ "Saved" : "Desat",
+ "test email settings" : "prova l'arranjament del correu",
+ "If you received this email, the settings seem to be correct." : "Si rebeu aquest correu sembla que l'arranjament del correu és correcte.",
+ "A problem occurred while sending the email. Please revise your settings." : "Hi ha hagut un problema enviant el correu. Reviseu la configuració.",
+ "Email sent" : "El correu electrónic s'ha enviat",
+ "You need to set your user email before being able to send test emails." : "Heu d'establir un nom d'usuari abans de poder enviar correus de prova.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Esteu seguir que voleu afegir \"{domain}\" com a un domini de confiança?",
+ "Add trusted domain" : "Afegir domini de confiança",
+ "Sending..." : "Enviant...",
+ "All" : "Tots",
+ "Please wait...." : "Espereu...",
+ "Error while disabling app" : "Error en desactivar l'aplicació",
+ "Disable" : "Desactiva",
+ "Enable" : "Habilita",
+ "Error while enabling app" : "Error en activar l'aplicació",
+ "Updating...." : "Actualitzant...",
+ "Error while updating app" : "Error en actualitzar l'aplicació",
+ "Updated" : "Actualitzada",
+ "Uninstalling ...." : "Desintal·lant ...",
+ "Error while uninstalling app" : "Error en desinstal·lar l'aplicació",
+ "Uninstall" : "Desinstal·la",
+ "Select a profile picture" : "Seleccioneu una imatge de perfil",
+ "Very weak password" : "Contrasenya massa feble",
+ "Weak password" : "Contrasenya feble",
+ "So-so password" : "Contrasenya passable",
+ "Good password" : "Contrasenya bona",
+ "Strong password" : "Contrasenya forta",
+ "Valid until {date}" : "Vàlid fins {date}",
+ "Delete" : "Esborra",
+ "Decrypting files... Please wait, this can take some time." : "Desencriptant fitxers... Espereu, això pot trigar una estona.",
+ "Delete encryption keys permanently." : "Esborra les claus d'encriptació permanentment.",
+ "Restore encryption keys." : "Esborra les claus d'encripació.",
+ "Groups" : "Grups",
+ "Unable to delete {objName}" : "No es pot eliminar {objName}",
+ "Error creating group" : "Error en crear el grup",
+ "A valid group name must be provided" : "Heu de facilitar un nom de grup vàlid",
+ "deleted {groupName}" : "eliminat {groupName}",
+ "undo" : "desfés",
+ "no group" : "sense grup",
+ "never" : "mai",
+ "deleted {userName}" : "eliminat {userName}",
+ "add group" : "afegeix grup",
+ "A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid",
+ "Error creating user" : "Error en crear l'usuari",
+ "A valid password must be provided" : "Heu de facilitar una contrasenya vàlida",
+ "Warning: Home directory for user \"{user}\" already exists" : "Avís: la carpeta Home per l'usuari \"{user}\" ja existeix",
+ "__language_name__" : "Català",
+ "Personal Info" : "Informació personal",
+ "SSL root certificates" : "Certificats SSL root",
+ "Encryption" : "Xifrat",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Tot (problemes fatals, errors, avisos, informació, depuració)",
+ "Info, warnings, errors and fatal issues" : "Informació, avisos, errors i problemes fatals",
+ "Warnings, errors and fatal issues" : "Avisos, errors i problemes fatals",
+ "Errors and fatal issues" : "Errors i problemes fatals",
+ "Fatal issues only" : "Només problemes fatals",
+ "None" : "Cap",
+ "Login" : "Inici de sessió",
+ "Plain" : "Pla",
+ "NT LAN Manager" : "Gestor NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Avís de seguretat",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Esteu accedint a %s a través de HTTP. Us recomanem fermament que configureu el servidor perquè requereixi HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "La carpeta de dades i els vostres fitxersprobablement són accessibles des d'Internet. La fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.",
+ "Setup Warning" : "Avís de configuració",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Aparentment PHP està configurat per mostrar blocs en línia de documentació. Això farà que algunes aplicacions core siguin inaccessibles.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.",
+ "Database Performance Info" : "Informació del rendiment de la base de dades",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "S'utilitza SQLite com a base de dades. Per instal·lacions grans recomanem que la canvieu. Per migrar a una altra base de dades useu l'eina d'intèrpret d'ordres 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "No s'ha trobat el mòdul 'fileinfo'",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El mòdul de PHP 'fileinfo' no s'ha trobat. Us recomanem que habiliteu aquest mòdul per obtenir millors resultats amb la detecció mime-type.",
+ "Your PHP version is outdated" : "La versió de PHP és obsoleta",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "La versió de PHP és obsoleta. Us recomanem fermament que actualitzeu a la versió 5.3.8 o superior perquè les versions anteriors no funcionen. La instal·lació podria no funcionar correctament.",
+ "PHP charset is not set to UTF-8" : "El codi de caràcters del php no és UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "El codi de caràcters del php no és UTF-8. Això pot provocar greus problemes amb caràcter no-ASCII. Recomanem fermament canviar el valor del 'default_charset' del php.ini a 'UTF-8'",
+ "Locale not working" : "Locale no funciona",
+ "System locale can not be set to a one which supports UTF-8." : "No s'ha pogut establir cap localització del sistema amb suport per UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Això podria comportar problemes amb alguns caràcters en els noms dels fitxer.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Recomanem fermament que instal·leu els paquets requerits en el vostre sistema per suportar un dels següents idiomes: %s",
+ "URL generation in notification emails" : "Generar URL en els correus de notificació",
+ "Connectivity Checks" : "Verificacions de connectivitat",
+ "No problems found" : "No hem trovat problemes",
+ "Please double check the installation guides ." : "Comproveu les guies d'instal·lació .",
+ "Last cron was executed at %s." : "L'últim cron s'ha executat el %s",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "L'últim cron es va executar a %s. Fa més d'una hora, alguna cosa sembla que va malament.",
+ "Cron was not executed yet!" : "El cron encara no s'ha executat!",
+ "Execute one task with each page loaded" : "Executa una tasca per cada paquet carregat",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php està registrat en un servei webcron que fa una crida a cron.php cada 15 minuts a través de http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Fer servir el cron del sistema per cridar el cron.php cada 15 minuts.",
+ "Allow apps to use the Share API" : "Permet que les aplicacions utilitzin l'API de compartir",
+ "Allow users to share via link" : "Permet als usuaris compartir a través d'enllaços",
+ "Enforce password protection" : "Reforça la protecció amb contrasenya",
+ "Allow public uploads" : "Permet pujada pública",
+ "Set default expiration date" : "Estableix la data de venciment",
+ "Expire after " : "Venciment després de",
+ "days" : "dies",
+ "Enforce expiration date" : "Força la data de venciment",
+ "Allow resharing" : "Permet compartir de nou",
+ "Restrict users to only share with users in their groups" : "Permet als usuaris compartir només amb usuaris del seu grup",
+ "Allow users to send mail notification for shared files" : "Permet als usuaris enviar notificacions de fitxers compartits per correu ",
+ "Exclude groups from sharing" : "Exclou grups de compartició",
+ "These groups will still be able to receive shares, but not to initiate them." : "Aquests fitxers encara podran rebre compartits, però no podran iniciar-los.",
+ "Enforce HTTPS" : "Força HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Força la connexió dels clients a %s a través d'una connexió encriptada.",
+ "Enforce HTTPS for subdomains" : "Forçar HTTPS per subdominis",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Força els clients a connectar-se a %s i els subdominis amb una connexió xifrada.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Connecteu a %s a través de HTTPS per habilitar o inhabilitar l'accés SSL.",
+ "This is used for sending out notifications." : "S'usa per enviar notificacions.",
+ "Send mode" : "Mode d'enviament",
+ "From address" : "Des de l'adreça",
+ "mail" : "correu electrònic",
+ "Authentication method" : "Mètode d'autenticació",
+ "Authentication required" : "Es requereix autenticació",
+ "Server address" : "Adreça del servidor",
+ "Port" : "Port",
+ "Credentials" : "Credencials",
+ "SMTP Username" : "Nom d'usuari SMTP",
+ "SMTP Password" : "Contrasenya SMTP",
+ "Store credentials" : "Emmagatzemar credencials",
+ "Test email settings" : "Prova l'arranjament del correu",
+ "Send email" : "Envia correu",
+ "Log level" : "Nivell de registre",
+ "More" : "Més",
+ "Less" : "Menys",
+ "Version" : "Versió",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Desenvolupat per la comunitat ownCloud , el codi font té llicència AGPL .",
+ "More apps" : "Més aplicacions",
+ "Add your app" : "Afegiu la vostra app",
+ "by" : "per",
+ "licensed" : "llicenciat/da",
+ "Documentation:" : "Documentació:",
+ "User Documentation" : "Documentació d'usuari",
+ "Admin Documentation" : "Documentació d'administrador",
+ "Update to %s" : "Actualitzar a %s",
+ "Enable only for specific groups" : "Activa només per grups específics",
+ "Uninstall App" : "Desinstal·la l'aplicació",
+ "Administrator Documentation" : "Documentació d'administrador",
+ "Online Documentation" : "Documentació en línia",
+ "Forum" : "Fòrum",
+ "Bugtracker" : "Seguiment d'errors",
+ "Commercial Support" : "Suport comercial",
+ "Get the apps to sync your files" : "Obtingueu les aplicacions per sincronitzar els vostres fitxers",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Si voleu ajudar al projecte \n\t\tuniu-vos al seu desenvolupament \n\t\to\n\t\tpromoveu-lo !",
+ "Show First Run Wizard again" : "Torna a mostrar l'assistent de primera execució",
+ "You have used %s of the available %s " : "Heu utilitzat %s d'un total disponible de %s ",
+ "Password" : "Contrasenya",
+ "Your password was changed" : "La seva contrasenya s'ha canviat",
+ "Unable to change your password" : "No s'ha pogut canviar la contrasenya",
+ "Current password" : "Contrasenya actual",
+ "New password" : "Contrasenya nova",
+ "Change password" : "Canvia la contrasenya",
+ "Full Name" : "Nom complet",
+ "Email" : "Correu electrònic",
+ "Your email address" : "Correu electrònic",
+ "Fill in an email address to enable password recovery and receive notifications" : "Ompliu una adreça de correu per poder recuperar la contrasenya i rebre notificacions",
+ "Profile picture" : "Foto de perfil",
+ "Upload new" : "Puja'n una de nova",
+ "Select new from Files" : "Selecciona'n una de nova dels fitxers",
+ "Remove image" : "Elimina imatge",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Pot ser png o jpg. Idealment quadrada, però podreu retallar-la.",
+ "Your avatar is provided by your original account." : "El vostre compte original proporciona l'avatar.",
+ "Cancel" : "Cancel·la",
+ "Choose as profile image" : "Selecciona com a imatge de perfil",
+ "Language" : "Idioma",
+ "Help translate" : "Ajudeu-nos amb la traducció",
+ "Common Name" : "Nom comú",
+ "Valid until" : "Valid fins",
+ "Issued By" : "Emès Per",
+ "Valid until %s" : "Vàlid fins %s",
+ "Import Root Certificate" : "Importa certificat root",
+ "The encryption app is no longer enabled, please decrypt all your files" : "L'aplicació d'encriptació ja no està activada, desencripteu tots els vostres fitxers",
+ "Log-in password" : "Contrasenya d'accés",
+ "Decrypt all Files" : "Desencripta tots els fitxers",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Les claus d'encriptació s'han mogut a una còpia de seguretat. Si alguna cosa va malament les podreu restablir. Esborreu-les permanentment només si esteu segur que tots els fitxers es desencripten correctament.",
+ "Restore Encryption Keys" : "Restableix les claus d'encriptació",
+ "Delete Encryption Keys" : "Esborra les claus d'encriptació",
+ "Show storage location" : "Mostra la ubicació del magatzem",
+ "Show last log in" : "Mostrar l'últim accés",
+ "Username" : "Nom d'usuari",
+ "Create" : "Crea",
+ "Admin Recovery Password" : "Recuperació de contrasenya d'administrador",
+ "Enter the recovery password in order to recover the users files during password change" : "Escriviu la contrasenya de recuperació per a poder recuperar els fitxers dels usuaris en canviar la contrasenya",
+ "Search Users" : "Buscar usuaris",
+ "Add Group" : "Afegeix grup",
+ "Group" : "Grup",
+ "Everyone" : "Tothom",
+ "Admins" : "Administradors",
+ "Default Quota" : "Quota per defecte",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Escriviu la quota d'emmagatzemament (per ex.: \"512 MB\" o \"12 GB\")",
+ "Unlimited" : "Il·limitat",
+ "Other" : "Un altre",
+ "Group Admin for" : "Grup Admin per",
+ "Quota" : "Quota",
+ "Storage Location" : "Ubicació de l'emmagatzemament",
+ "Last Login" : "Últim accés",
+ "change full name" : "canvia el nom complet",
+ "set new password" : "estableix nova contrasenya",
+ "Default" : "Per defecte"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json
new file mode 100644
index 00000000000..44a1ce6251e
--- /dev/null
+++ b/settings/l10n/ca.json
@@ -0,0 +1,239 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Avisos de seguretat i configuració",
+ "Cron" : "Cron",
+ "Sharing" : "Compartir",
+ "Security" : "Seguretat",
+ "Email Server" : "Servidor de correu",
+ "Log" : "Registre",
+ "Authentication error" : "Error d'autenticació",
+ "Your full name has been changed." : "El vostre nom complet ha canviat.",
+ "Unable to change full name" : "No s'ha pogut canviar el nom complet",
+ "Group already exists" : "El grup ja existeix",
+ "Unable to add group" : "No es pot afegir el grup",
+ "Files decrypted successfully" : "Els fitxers s'han desencriptat amb èxit",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "No es poden desencriptar els fitxers. Comproveu owncloud.log o demaneu-ho a l'administrador.",
+ "Couldn't decrypt your files, check your password and try again" : "No s'han pogut desencriptar els fitxers, comproveu la contrasenya i proveu-ho de nou",
+ "Encryption keys deleted permanently" : "Les claus d'encriptació s'han esborrat permanentment",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "No es poden esborrar les claus d'encriptació. Comproveu owncloud.log o demaneu-ho a l'administrador.",
+ "Couldn't remove app." : "No s'ha pogut eliminar l'aplicació",
+ "Email saved" : "S'ha desat el correu electrònic",
+ "Invalid email" : "El correu electrònic no és vàlid",
+ "Unable to delete group" : "No es pot eliminar el grup",
+ "Unable to delete user" : "No es pot eliminar l'usuari",
+ "Backups restored successfully" : "Les còpies de seguretat s'han restablert correctament",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "No es poden restablir les claus d'encriptació. Comproveu owncloud.log o demaneu-ho a l'administrador.",
+ "Language changed" : "S'ha canviat l'idioma",
+ "Invalid request" : "Sol·licitud no vàlida",
+ "Admins can't remove themself from the admin group" : "Els administradors no es poden eliminar del grup admin",
+ "Unable to add user to group %s" : "No es pot afegir l'usuari al grup %s",
+ "Unable to remove user from group %s" : "No es pot eliminar l'usuari del grup %s",
+ "Couldn't update app." : "No s'ha pogut actualitzar l'aplicació.",
+ "Wrong password" : "Contrasenya incorrecta",
+ "No user supplied" : "No heu proporcionat cap usuari",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Sisplau, proporcioneu una contrasenya de recuperació d'administrador, altrament totes les dades d'usuari es perdran",
+ "Wrong admin recovery password. Please check the password and try again." : "La contrasenya de recuperació d'administrador és incorrecta. Comproveu-la i torneu-ho a intentar.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "El dorsal no permet canviar la contrasenya, però la clau d'encripació d'usuaris s'ha actualitzat correctament.",
+ "Unable to change password" : "No es pot canviar la contrasenya",
+ "Enabled" : "Activat",
+ "Not enabled" : "Desactivat",
+ "Recommended" : "Recomanat",
+ "Saved" : "Desat",
+ "test email settings" : "prova l'arranjament del correu",
+ "If you received this email, the settings seem to be correct." : "Si rebeu aquest correu sembla que l'arranjament del correu és correcte.",
+ "A problem occurred while sending the email. Please revise your settings." : "Hi ha hagut un problema enviant el correu. Reviseu la configuració.",
+ "Email sent" : "El correu electrónic s'ha enviat",
+ "You need to set your user email before being able to send test emails." : "Heu d'establir un nom d'usuari abans de poder enviar correus de prova.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Esteu seguir que voleu afegir \"{domain}\" com a un domini de confiança?",
+ "Add trusted domain" : "Afegir domini de confiança",
+ "Sending..." : "Enviant...",
+ "All" : "Tots",
+ "Please wait...." : "Espereu...",
+ "Error while disabling app" : "Error en desactivar l'aplicació",
+ "Disable" : "Desactiva",
+ "Enable" : "Habilita",
+ "Error while enabling app" : "Error en activar l'aplicació",
+ "Updating...." : "Actualitzant...",
+ "Error while updating app" : "Error en actualitzar l'aplicació",
+ "Updated" : "Actualitzada",
+ "Uninstalling ...." : "Desintal·lant ...",
+ "Error while uninstalling app" : "Error en desinstal·lar l'aplicació",
+ "Uninstall" : "Desinstal·la",
+ "Select a profile picture" : "Seleccioneu una imatge de perfil",
+ "Very weak password" : "Contrasenya massa feble",
+ "Weak password" : "Contrasenya feble",
+ "So-so password" : "Contrasenya passable",
+ "Good password" : "Contrasenya bona",
+ "Strong password" : "Contrasenya forta",
+ "Valid until {date}" : "Vàlid fins {date}",
+ "Delete" : "Esborra",
+ "Decrypting files... Please wait, this can take some time." : "Desencriptant fitxers... Espereu, això pot trigar una estona.",
+ "Delete encryption keys permanently." : "Esborra les claus d'encriptació permanentment.",
+ "Restore encryption keys." : "Esborra les claus d'encripació.",
+ "Groups" : "Grups",
+ "Unable to delete {objName}" : "No es pot eliminar {objName}",
+ "Error creating group" : "Error en crear el grup",
+ "A valid group name must be provided" : "Heu de facilitar un nom de grup vàlid",
+ "deleted {groupName}" : "eliminat {groupName}",
+ "undo" : "desfés",
+ "no group" : "sense grup",
+ "never" : "mai",
+ "deleted {userName}" : "eliminat {userName}",
+ "add group" : "afegeix grup",
+ "A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid",
+ "Error creating user" : "Error en crear l'usuari",
+ "A valid password must be provided" : "Heu de facilitar una contrasenya vàlida",
+ "Warning: Home directory for user \"{user}\" already exists" : "Avís: la carpeta Home per l'usuari \"{user}\" ja existeix",
+ "__language_name__" : "Català",
+ "Personal Info" : "Informació personal",
+ "SSL root certificates" : "Certificats SSL root",
+ "Encryption" : "Xifrat",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Tot (problemes fatals, errors, avisos, informació, depuració)",
+ "Info, warnings, errors and fatal issues" : "Informació, avisos, errors i problemes fatals",
+ "Warnings, errors and fatal issues" : "Avisos, errors i problemes fatals",
+ "Errors and fatal issues" : "Errors i problemes fatals",
+ "Fatal issues only" : "Només problemes fatals",
+ "None" : "Cap",
+ "Login" : "Inici de sessió",
+ "Plain" : "Pla",
+ "NT LAN Manager" : "Gestor NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Avís de seguretat",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Esteu accedint a %s a través de HTTP. Us recomanem fermament que configureu el servidor perquè requereixi HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "La carpeta de dades i els vostres fitxersprobablement són accessibles des d'Internet. La fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.",
+ "Setup Warning" : "Avís de configuració",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Aparentment PHP està configurat per mostrar blocs en línia de documentació. Això farà que algunes aplicacions core siguin inaccessibles.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.",
+ "Database Performance Info" : "Informació del rendiment de la base de dades",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "S'utilitza SQLite com a base de dades. Per instal·lacions grans recomanem que la canvieu. Per migrar a una altra base de dades useu l'eina d'intèrpret d'ordres 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "No s'ha trobat el mòdul 'fileinfo'",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El mòdul de PHP 'fileinfo' no s'ha trobat. Us recomanem que habiliteu aquest mòdul per obtenir millors resultats amb la detecció mime-type.",
+ "Your PHP version is outdated" : "La versió de PHP és obsoleta",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "La versió de PHP és obsoleta. Us recomanem fermament que actualitzeu a la versió 5.3.8 o superior perquè les versions anteriors no funcionen. La instal·lació podria no funcionar correctament.",
+ "PHP charset is not set to UTF-8" : "El codi de caràcters del php no és UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "El codi de caràcters del php no és UTF-8. Això pot provocar greus problemes amb caràcter no-ASCII. Recomanem fermament canviar el valor del 'default_charset' del php.ini a 'UTF-8'",
+ "Locale not working" : "Locale no funciona",
+ "System locale can not be set to a one which supports UTF-8." : "No s'ha pogut establir cap localització del sistema amb suport per UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Això podria comportar problemes amb alguns caràcters en els noms dels fitxer.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Recomanem fermament que instal·leu els paquets requerits en el vostre sistema per suportar un dels següents idiomes: %s",
+ "URL generation in notification emails" : "Generar URL en els correus de notificació",
+ "Connectivity Checks" : "Verificacions de connectivitat",
+ "No problems found" : "No hem trovat problemes",
+ "Please double check the installation guides ." : "Comproveu les guies d'instal·lació .",
+ "Last cron was executed at %s." : "L'últim cron s'ha executat el %s",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "L'últim cron es va executar a %s. Fa més d'una hora, alguna cosa sembla que va malament.",
+ "Cron was not executed yet!" : "El cron encara no s'ha executat!",
+ "Execute one task with each page loaded" : "Executa una tasca per cada paquet carregat",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php està registrat en un servei webcron que fa una crida a cron.php cada 15 minuts a través de http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Fer servir el cron del sistema per cridar el cron.php cada 15 minuts.",
+ "Allow apps to use the Share API" : "Permet que les aplicacions utilitzin l'API de compartir",
+ "Allow users to share via link" : "Permet als usuaris compartir a través d'enllaços",
+ "Enforce password protection" : "Reforça la protecció amb contrasenya",
+ "Allow public uploads" : "Permet pujada pública",
+ "Set default expiration date" : "Estableix la data de venciment",
+ "Expire after " : "Venciment després de",
+ "days" : "dies",
+ "Enforce expiration date" : "Força la data de venciment",
+ "Allow resharing" : "Permet compartir de nou",
+ "Restrict users to only share with users in their groups" : "Permet als usuaris compartir només amb usuaris del seu grup",
+ "Allow users to send mail notification for shared files" : "Permet als usuaris enviar notificacions de fitxers compartits per correu ",
+ "Exclude groups from sharing" : "Exclou grups de compartició",
+ "These groups will still be able to receive shares, but not to initiate them." : "Aquests fitxers encara podran rebre compartits, però no podran iniciar-los.",
+ "Enforce HTTPS" : "Força HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Força la connexió dels clients a %s a través d'una connexió encriptada.",
+ "Enforce HTTPS for subdomains" : "Forçar HTTPS per subdominis",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Força els clients a connectar-se a %s i els subdominis amb una connexió xifrada.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Connecteu a %s a través de HTTPS per habilitar o inhabilitar l'accés SSL.",
+ "This is used for sending out notifications." : "S'usa per enviar notificacions.",
+ "Send mode" : "Mode d'enviament",
+ "From address" : "Des de l'adreça",
+ "mail" : "correu electrònic",
+ "Authentication method" : "Mètode d'autenticació",
+ "Authentication required" : "Es requereix autenticació",
+ "Server address" : "Adreça del servidor",
+ "Port" : "Port",
+ "Credentials" : "Credencials",
+ "SMTP Username" : "Nom d'usuari SMTP",
+ "SMTP Password" : "Contrasenya SMTP",
+ "Store credentials" : "Emmagatzemar credencials",
+ "Test email settings" : "Prova l'arranjament del correu",
+ "Send email" : "Envia correu",
+ "Log level" : "Nivell de registre",
+ "More" : "Més",
+ "Less" : "Menys",
+ "Version" : "Versió",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Desenvolupat per la comunitat ownCloud , el codi font té llicència AGPL .",
+ "More apps" : "Més aplicacions",
+ "Add your app" : "Afegiu la vostra app",
+ "by" : "per",
+ "licensed" : "llicenciat/da",
+ "Documentation:" : "Documentació:",
+ "User Documentation" : "Documentació d'usuari",
+ "Admin Documentation" : "Documentació d'administrador",
+ "Update to %s" : "Actualitzar a %s",
+ "Enable only for specific groups" : "Activa només per grups específics",
+ "Uninstall App" : "Desinstal·la l'aplicació",
+ "Administrator Documentation" : "Documentació d'administrador",
+ "Online Documentation" : "Documentació en línia",
+ "Forum" : "Fòrum",
+ "Bugtracker" : "Seguiment d'errors",
+ "Commercial Support" : "Suport comercial",
+ "Get the apps to sync your files" : "Obtingueu les aplicacions per sincronitzar els vostres fitxers",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Si voleu ajudar al projecte \n\t\tuniu-vos al seu desenvolupament \n\t\to\n\t\tpromoveu-lo !",
+ "Show First Run Wizard again" : "Torna a mostrar l'assistent de primera execució",
+ "You have used %s of the available %s " : "Heu utilitzat %s d'un total disponible de %s ",
+ "Password" : "Contrasenya",
+ "Your password was changed" : "La seva contrasenya s'ha canviat",
+ "Unable to change your password" : "No s'ha pogut canviar la contrasenya",
+ "Current password" : "Contrasenya actual",
+ "New password" : "Contrasenya nova",
+ "Change password" : "Canvia la contrasenya",
+ "Full Name" : "Nom complet",
+ "Email" : "Correu electrònic",
+ "Your email address" : "Correu electrònic",
+ "Fill in an email address to enable password recovery and receive notifications" : "Ompliu una adreça de correu per poder recuperar la contrasenya i rebre notificacions",
+ "Profile picture" : "Foto de perfil",
+ "Upload new" : "Puja'n una de nova",
+ "Select new from Files" : "Selecciona'n una de nova dels fitxers",
+ "Remove image" : "Elimina imatge",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Pot ser png o jpg. Idealment quadrada, però podreu retallar-la.",
+ "Your avatar is provided by your original account." : "El vostre compte original proporciona l'avatar.",
+ "Cancel" : "Cancel·la",
+ "Choose as profile image" : "Selecciona com a imatge de perfil",
+ "Language" : "Idioma",
+ "Help translate" : "Ajudeu-nos amb la traducció",
+ "Common Name" : "Nom comú",
+ "Valid until" : "Valid fins",
+ "Issued By" : "Emès Per",
+ "Valid until %s" : "Vàlid fins %s",
+ "Import Root Certificate" : "Importa certificat root",
+ "The encryption app is no longer enabled, please decrypt all your files" : "L'aplicació d'encriptació ja no està activada, desencripteu tots els vostres fitxers",
+ "Log-in password" : "Contrasenya d'accés",
+ "Decrypt all Files" : "Desencripta tots els fitxers",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Les claus d'encriptació s'han mogut a una còpia de seguretat. Si alguna cosa va malament les podreu restablir. Esborreu-les permanentment només si esteu segur que tots els fitxers es desencripten correctament.",
+ "Restore Encryption Keys" : "Restableix les claus d'encriptació",
+ "Delete Encryption Keys" : "Esborra les claus d'encriptació",
+ "Show storage location" : "Mostra la ubicació del magatzem",
+ "Show last log in" : "Mostrar l'últim accés",
+ "Username" : "Nom d'usuari",
+ "Create" : "Crea",
+ "Admin Recovery Password" : "Recuperació de contrasenya d'administrador",
+ "Enter the recovery password in order to recover the users files during password change" : "Escriviu la contrasenya de recuperació per a poder recuperar els fitxers dels usuaris en canviar la contrasenya",
+ "Search Users" : "Buscar usuaris",
+ "Add Group" : "Afegeix grup",
+ "Group" : "Grup",
+ "Everyone" : "Tothom",
+ "Admins" : "Administradors",
+ "Default Quota" : "Quota per defecte",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Escriviu la quota d'emmagatzemament (per ex.: \"512 MB\" o \"12 GB\")",
+ "Unlimited" : "Il·limitat",
+ "Other" : "Un altre",
+ "Group Admin for" : "Grup Admin per",
+ "Quota" : "Quota",
+ "Storage Location" : "Ubicació de l'emmagatzemament",
+ "Last Login" : "Últim accés",
+ "change full name" : "canvia el nom complet",
+ "set new password" : "estableix nova contrasenya",
+ "Default" : "Per defecte"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/ca.php b/settings/l10n/ca.php
deleted file mode 100644
index 8a488402b48..00000000000
--- a/settings/l10n/ca.php
+++ /dev/null
@@ -1,223 +0,0 @@
- "El valor proporcionat no és vàlid per %s",
-"Saved" => "Desat",
-"test email settings" => "prova l'arranjament del correu",
-"If you received this email, the settings seem to be correct." => "Si rebeu aquest correu sembla que l'arranjament del correu és correcte.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Hi ha hagut un problema en enviar el correu. Comproveu-ne l'arranjament.",
-"Email sent" => "El correu electrónic s'ha enviat",
-"You need to set your user email before being able to send test emails." => "Heu d'establir un nom d'usuari abans de poder enviar correus de prova.",
-"Send mode" => "Mode d'enviament",
-"Encryption" => "Xifrat",
-"Authentication method" => "Mètode d'autenticació",
-"Unable to load list from App Store" => "No s'ha pogut carregar la llista des de l'App Store",
-"Authentication error" => "Error d'autenticació",
-"Your full name has been changed." => "El vostre nom complet ha canviat.",
-"Unable to change full name" => "No s'ha pogut canviar el nom complet",
-"Group already exists" => "El grup ja existeix",
-"Unable to add group" => "No es pot afegir el grup",
-"Files decrypted successfully" => "Els fitxers s'han desencriptat amb èxit",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "No es poden desencriptar els fitxers. Comproveu owncloud.log o demaneu-ho a l'administrador.",
-"Couldn't decrypt your files, check your password and try again" => "No s'han pogut desencriptar els fitxers, comproveu la contrasenya i proveu-ho de nou",
-"Encryption keys deleted permanently" => "Les claus d'encriptació s'han esborrat permanentment",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "No es poden esborrar les claus d'encriptació. Comproveu owncloud.log o demaneu-ho a l'administrador.",
-"Couldn't remove app." => "No s'ha pogut eliminar l'aplicació",
-"Email saved" => "S'ha desat el correu electrònic",
-"Invalid email" => "El correu electrònic no és vàlid",
-"Unable to delete group" => "No es pot eliminar el grup",
-"Unable to delete user" => "No es pot eliminar l'usuari",
-"Backups restored successfully" => "Les còpies de seguretat s'han restablert correctament",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "No es poden restablir les claus d'encriptació. Comproveu owncloud.log o demaneu-ho a l'administrador.",
-"Language changed" => "S'ha canviat l'idioma",
-"Invalid request" => "Sol·licitud no vàlida",
-"Admins can't remove themself from the admin group" => "Els administradors no es poden eliminar del grup admin",
-"Unable to add user to group %s" => "No es pot afegir l'usuari al grup %s",
-"Unable to remove user from group %s" => "No es pot eliminar l'usuari del grup %s",
-"Couldn't update app." => "No s'ha pogut actualitzar l'aplicació.",
-"Wrong password" => "Contrasenya incorrecta",
-"No user supplied" => "No heu proporcionat cap usuari",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Sisplau, proporcioneu una contrasenya de recuperació d'administrador, altrament totes les dades d'usuari es perdran",
-"Wrong admin recovery password. Please check the password and try again." => "La contrasenya de recuperació d'administrador és incorrecta. Comproveu-la i torneu-ho a intentar.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "El dorsal no permet canviar la contrasenya, però la clau d'encripació d'usuaris s'ha actualitzat correctament.",
-"Unable to change password" => "No es pot canviar la contrasenya",
-"Sending..." => "Enviant...",
-"All" => "Tots",
-"User Documentation" => "Documentació d'usuari",
-"Admin Documentation" => "Documentació d'administrador",
-"Update to {appversion}" => "Actualitza a {appversion}",
-"Uninstall App" => "Desinstal·la l'aplicació",
-"Disable" => "Desactiva",
-"Enable" => "Habilita",
-"Please wait...." => "Espereu...",
-"Error while disabling app" => "Error en desactivar l'aplicació",
-"Error while enabling app" => "Error en activar l'aplicació",
-"Updating...." => "Actualitzant...",
-"Error while updating app" => "Error en actualitzar l'aplicació",
-"Error" => "Error",
-"Update" => "Actualitza",
-"Updated" => "Actualitzada",
-"Uninstalling ...." => "Desintal·lant ...",
-"Error while uninstalling app" => "Error en desinstal·lar l'aplicació",
-"Uninstall" => "Desinstal·la",
-"Select a profile picture" => "Seleccioneu una imatge de perfil",
-"Very weak password" => "Contrasenya massa feble",
-"Weak password" => "Contrasenya feble",
-"So-so password" => "Contrasenya passable",
-"Good password" => "Contrasenya bona",
-"Strong password" => "Contrasenya forta",
-"Delete" => "Esborra",
-"Decrypting files... Please wait, this can take some time." => "Desencriptant fitxers... Espereu, això pot trigar una estona.",
-"Delete encryption keys permanently." => "Esborra les claus d'encriptació permanentment.",
-"Restore encryption keys." => "Esborra les claus d'encripació.",
-"Groups" => "Grups",
-"Unable to delete {objName}" => "No es pot eliminar {objName}",
-"Error creating group" => "Error en crear el grup",
-"A valid group name must be provided" => "Heu de facilitar un nom de grup vàlid",
-"deleted {groupName}" => "eliminat {groupName}",
-"undo" => "desfés",
-"Group Admin" => "Grup Admin",
-"never" => "mai",
-"deleted {userName}" => "eliminat {userName}",
-"add group" => "afegeix grup",
-"A valid username must be provided" => "Heu de facilitar un nom d'usuari vàlid",
-"Error creating user" => "Error en crear l'usuari",
-"A valid password must be provided" => "Heu de facilitar una contrasenya vàlida",
-"Warning: Home directory for user \"{user}\" already exists" => "Avís: la carpeta Home per l'usuari \"{user}\" ja existeix",
-"__language_name__" => "Català",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Tot (problemes fatals, errors, avisos, informació, depuració)",
-"Info, warnings, errors and fatal issues" => "Informació, avisos, errors i problemes fatals",
-"Warnings, errors and fatal issues" => "Avisos, errors i problemes fatals",
-"Errors and fatal issues" => "Errors i problemes fatals",
-"Fatal issues only" => "Només problemes fatals",
-"None" => "Cap",
-"Login" => "Inici de sessió",
-"Plain" => "Pla",
-"NT LAN Manager" => "Gestor NT LAN",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Avís de seguretat",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Esteu accedint %s a través de HTTP. Us recomanem fermament que configureu el servidor perquè requereixi HTTPS.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "La carpeta de dades i els vostres fitxersprobablement són accessibles des d'Internet. La fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.",
-"Setup Warning" => "Avís de configuració",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "Aparentment PHP està configurat per mostrar blocs en línia de documentació. Això farà que algunes aplicacions core siguin inaccessibles.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.",
-"Database Performance Info" => "Informació del rendiment de la base de dades",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "S'utilitza SQLite com a base de dades. Per instal·lacions grans recomanem que la canvieu. Per migrar a una altra base de dades useu l'eina d'intèrpret d'ordres 'occ db:convert-type'",
-"Module 'fileinfo' missing" => "No s'ha trobat el mòdul 'fileinfo'",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "El mòdul de PHP 'fileinfo' no s'ha trobat. Us recomanem que habiliteu aquest mòdul per obtenir millors resultats amb la detecció mime-type.",
-"Your PHP version is outdated" => "La versió de PHP és obsoleta",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "La versió de PHP és obsoleta. Us recomanem fermament que actualitzeu a la versió 5.3.8 o superior perquè les versions anteriors no funcionen. La instal·lació podria no funcionar correctament.",
-"Locale not working" => "Locale no funciona",
-"System locale can not be set to a one which supports UTF-8." => "No s'ha pogut establir cap localització del sistema amb suport per UTF-8.",
-"This means that there might be problems with certain characters in file names." => "Això podria comportar problemes amb alguns caràcters en els noms dels fitxer.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Us recomanem que instal·leu els paquets necessaris en el sistema per donar suport a alguna de les localitzacions següents: %s",
-"Please double check the installation guides ." => "Comproveu les guies d'instal·lació .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "L'últim cron s'ha executat el %s",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "L'últim cron es va executar a %s. Fa més d'una hora, alguna cosa sembla que va malament.",
-"Cron was not executed yet!" => "El cron encara no s'ha executat!",
-"Execute one task with each page loaded" => "Executa una tasca per cada paquet carregat",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php està registrat en un servei webcron que fa una crida a cron.php cada 15 minuts a través de http.",
-"Sharing" => "Compartir",
-"Allow apps to use the Share API" => "Permet que les aplicacions utilitzin l'API de compartir",
-"Allow users to share via link" => "Permet als usuaris compartir a través d'enllaços",
-"Enforce password protection" => "Reforça la protecció amb contrasenya",
-"Allow public uploads" => "Permet pujada pública",
-"Set default expiration date" => "Estableix la data de venciment",
-"Expire after " => "Venciment després de",
-"days" => "dies",
-"Enforce expiration date" => "Força la data de venciment",
-"Allow resharing" => "Permet compartir de nou",
-"Restrict users to only share with users in their groups" => "Permet als usuaris compartir només amb usuaris del seu grup",
-"Allow users to send mail notification for shared files" => "Permet als usuaris enviar notificacions de fitxers compartits per correu ",
-"Exclude groups from sharing" => "Exclou grups de compartició",
-"These groups will still be able to receive shares, but not to initiate them." => "Aquests fitxers encara podran rebre compartits, però no podran iniciar-los.",
-"Security" => "Seguretat",
-"Enforce HTTPS" => "Força HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Força la connexió dels clients a %s a través d'una connexió encriptada.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Connecteu a %s a través de HTTPS per habilitar o inhabilitar l'accés SSL.",
-"Email Server" => "Servidor de correu",
-"This is used for sending out notifications." => "S'usa per enviar notificacions.",
-"From address" => "Des de l'adreça",
-"mail" => "correu electrònic",
-"Authentication required" => "Es requereix autenticació",
-"Server address" => "Adreça del servidor",
-"Port" => "Port",
-"Credentials" => "Credencials",
-"SMTP Username" => "Nom d'usuari SMTP",
-"SMTP Password" => "Contrasenya SMTP",
-"Test email settings" => "Prova l'arranjament del correu",
-"Send email" => "Envia correu",
-"Log" => "Registre",
-"Log level" => "Nivell de registre",
-"More" => "Més",
-"Less" => "Menys",
-"Version" => "Versió",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Desenvolupat per la comunitat ownCloud , el codi font té llicència AGPL .",
-"Add your App" => "Afegiu la vostra aplicació",
-"More Apps" => "Més aplicacions",
-"Select an App" => "Seleccioneu una aplicació",
-"Documentation:" => "Documentació:",
-"See application page at apps.owncloud.com" => "Mireu la pàgina d'aplicacions a apps.owncloud.com",
-"See application website" => "Mostra la web de l'aplicació",
-" -licensed by " => " -propietat de ",
-"Enable only for specific groups" => "Activa només per grups específics",
-"Administrator Documentation" => "Documentació d'administrador",
-"Online Documentation" => "Documentació en línia",
-"Forum" => "Fòrum",
-"Bugtracker" => "Seguiment d'errors",
-"Commercial Support" => "Suport comercial",
-"Get the apps to sync your files" => "Obtingueu les aplicacions per sincronitzar els vostres fitxers",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Si voleu ajudar al projecte \n\t\tuniu-vos al seu desenvolupament \n\t\to\n\t\tpromoveu-lo !",
-"Show First Run Wizard again" => "Torna a mostrar l'assistent de primera execució",
-"You have used %s of the available %s " => "Heu utilitzat %s d'un total disponible de %s ",
-"Password" => "Contrasenya",
-"Your password was changed" => "La seva contrasenya s'ha canviat",
-"Unable to change your password" => "No s'ha pogut canviar la contrasenya",
-"Current password" => "Contrasenya actual",
-"New password" => "Contrasenya nova",
-"Change password" => "Canvia la contrasenya",
-"Full Name" => "Nom complet",
-"Email" => "Correu electrònic",
-"Your email address" => "Correu electrònic",
-"Fill in an email address to enable password recovery and receive notifications" => "Ompliu una adreça de correu per poder recuperar la contrasenya i rebre notificacions",
-"Profile picture" => "Foto de perfil",
-"Upload new" => "Puja'n una de nova",
-"Select new from Files" => "Selecciona'n una de nova dels fitxers",
-"Remove image" => "Elimina imatge",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Pot ser png o jpg. Idealment quadrada, però podreu retallar-la.",
-"Your avatar is provided by your original account." => "El vostre compte original proporciona l'avatar.",
-"Cancel" => "Cancel·la",
-"Choose as profile image" => "Selecciona com a imatge de perfil",
-"Language" => "Idioma",
-"Help translate" => "Ajudeu-nos amb la traducció",
-"SSL root certificates" => "Certificats SSL root",
-"Import Root Certificate" => "Importa certificat root",
-"The encryption app is no longer enabled, please decrypt all your files" => "L'aplicació d'encriptació ja no està activada, desencripteu tots els vostres fitxers",
-"Log-in password" => "Contrasenya d'accés",
-"Decrypt all Files" => "Desencripta tots els fitxers",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Les claus d'encriptació s'han mogut a una còpia de seguretat. Si alguna cosa va malament les podreu restablir. Esborreu-les permanentment només si esteu segur que tots els fitxers es desencripten correctament.",
-"Restore Encryption Keys" => "Restableix les claus d'encriptació",
-"Delete Encryption Keys" => "Esborra les claus d'encriptació",
-"Login Name" => "Nom d'accés",
-"Create" => "Crea",
-"Admin Recovery Password" => "Recuperació de contrasenya d'administrador",
-"Enter the recovery password in order to recover the users files during password change" => "Escriviu la contrasenya de recuperació per a poder recuperar els fitxers dels usuaris en canviar la contrasenya",
-"Search Users and Groups" => "Cerca usuaris i grups",
-"Add Group" => "Afegeix grup",
-"Group" => "Grup",
-"Everyone" => "Tothom",
-"Admins" => "Administradors",
-"Default Quota" => "Quota per defecte",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Escriviu la quota d'emmagatzemament (per ex.: \"512 MB\" o \"12 GB\")",
-"Unlimited" => "Il·limitat",
-"Other" => "Un altre",
-"Username" => "Nom d'usuari",
-"Quota" => "Quota",
-"Storage Location" => "Ubicació de l'emmagatzemament",
-"Last Login" => "Últim accés",
-"change full name" => "canvia el nom complet",
-"set new password" => "estableix nova contrasenya",
-"Default" => "Per defecte"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js
new file mode 100644
index 00000000000..67e97e62e55
--- /dev/null
+++ b/settings/l10n/cs_CZ.js
@@ -0,0 +1,244 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Upozornění zabezpečení a nastavení",
+ "Cron" : "Cron",
+ "Sharing" : "Sdílení",
+ "Security" : "Zabezpečení",
+ "Email Server" : "E-mailový server",
+ "Log" : "Záznam",
+ "Authentication error" : "Chyba přihlášení",
+ "Your full name has been changed." : "Vaše celé jméno bylo změněno.",
+ "Unable to change full name" : "Nelze změnit celé jméno",
+ "Group already exists" : "Skupina již existuje",
+ "Unable to add group" : "Nelze přidat skupinu",
+ "Files decrypted successfully" : "Soubory úspěšně dešifrovány",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nebylo možno dešifrovat soubory, zkontroluje prosím owncloud.log nebo kontaktujte svého správce systému",
+ "Couldn't decrypt your files, check your password and try again" : "Nebylo možno dešifrovat soubory, zkontrolujte své heslo a zkuste znovu",
+ "Encryption keys deleted permanently" : "Šifrovací klíče trvale smazány",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Nebylo možno trvale smazat vaše šifrovací klíče, zkontrolujte prosím owncloud.log nebo kontaktujte svého správce systému",
+ "Couldn't remove app." : "Nepodařilo se odebrat aplikaci.",
+ "Email saved" : "E-mail uložen",
+ "Invalid email" : "Neplatný e-mail",
+ "Unable to delete group" : "Nelze smazat skupinu",
+ "Unable to delete user" : "Nelze smazat uživatele",
+ "Backups restored successfully" : "Zálohy úspěšně obnoveny",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nebylo možno obnovit vaše šifrovací klíče, zkontrolujte prosím owncloud.log nebo kontaktujte svého správce systému",
+ "Language changed" : "Jazyk byl změněn",
+ "Invalid request" : "Neplatný požadavek",
+ "Admins can't remove themself from the admin group" : "Správci se nemohou odebrat sami ze skupiny správců",
+ "Unable to add user to group %s" : "Nelze přidat uživatele do skupiny %s",
+ "Unable to remove user from group %s" : "Nelze odebrat uživatele ze skupiny %s",
+ "Couldn't update app." : "Nelze aktualizovat aplikaci.",
+ "Wrong password" : "Nesprávné heslo",
+ "No user supplied" : "Nebyl uveden uživatel",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Zadejte prosím administrátorské heslo pro obnovu, jinak budou všechna data ztracena",
+ "Wrong admin recovery password. Please check the password and try again." : "Chybné administrátorské heslo pro obnovu. Překontrolujte správnost hesla a zkuste to znovu.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Úložiště nepodporuje změnu hesla, ale šifrovací klíč uživatelů byl úspěšně změněn.",
+ "Unable to change password" : "Změna hesla se nezdařila",
+ "Enabled" : "Povoleno",
+ "Not enabled" : "Vypnuto",
+ "Recommended" : "Doporučeno",
+ "Saved" : "Uloženo",
+ "test email settings" : "otestovat nastavení e-mailu",
+ "If you received this email, the settings seem to be correct." : "Pokud jste obdrželi tento e-mail, nastavení se zdají být v pořádku.",
+ "A problem occurred while sending the email. Please revise your settings." : "Při odesílání e-mailu nastala chyba. Překontrolujte prosím svá nastavení.",
+ "Email sent" : "E-mail odeslán",
+ "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních e-mailů musíte nejprve nastavit svou e-mailovou adresu.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Jste si jisti, že chcete přidat \"{domain}\" mezi důvěryhodné domény?",
+ "Add trusted domain" : "Přidat důvěryhodnou doménu",
+ "Sending..." : "Odesílání...",
+ "All" : "Vše",
+ "Please wait...." : "Čekejte prosím...",
+ "Error while disabling app" : "Chyba při zakazování aplikace",
+ "Disable" : "Zakázat",
+ "Enable" : "Povolit",
+ "Error while enabling app" : "Chyba při povolování aplikace",
+ "Updating...." : "Aktualizuji...",
+ "Error while updating app" : "Chyba při aktualizaci aplikace",
+ "Updated" : "Aktualizováno",
+ "Uninstalling ...." : "Probíhá odinstalace ...",
+ "Error while uninstalling app" : "Chyba při odinstalaci aplikace",
+ "Uninstall" : "Odinstalovat",
+ "Select a profile picture" : "Vyberte profilový obrázek",
+ "Very weak password" : "Velmi slabé heslo",
+ "Weak password" : "Slabé heslo",
+ "So-so password" : "Středně silné heslo",
+ "Good password" : "Dobré heslo",
+ "Strong password" : "Silné heslo",
+ "Valid until {date}" : "Platný do {date}",
+ "Delete" : "Smazat",
+ "Decrypting files... Please wait, this can take some time." : "Probíhá dešifrování souborů... Čekejte prosím, tato operace může trvat nějakou dobu.",
+ "Delete encryption keys permanently." : "Trvale smazat šifrovací klíče.",
+ "Restore encryption keys." : "Obnovit šifrovací klíče.",
+ "Groups" : "Skupiny",
+ "Unable to delete {objName}" : "Nelze smazat {objName}",
+ "Error creating group" : "Chyba při vytváření skupiny",
+ "A valid group name must be provided" : "Musíte zadat platný název skupiny",
+ "deleted {groupName}" : "smazána {groupName}",
+ "undo" : "vrátit zpět",
+ "no group" : "není ve skupině",
+ "never" : "nikdy",
+ "deleted {userName}" : "smazán {userName}",
+ "add group" : "přidat skupinu",
+ "A valid username must be provided" : "Musíte zadat platné uživatelské jméno",
+ "Error creating user" : "Chyba při vytváření užiatele",
+ "A valid password must be provided" : "Musíte zadat platné heslo",
+ "Warning: Home directory for user \"{user}\" already exists" : "Varování: Osobní složka uživatele \"{user}\" již existuje.",
+ "__language_name__" : "Česky",
+ "Personal Info" : "Osobní informace",
+ "SSL root certificates" : "Kořenové certifikáty SSL",
+ "Encryption" : "Šifrování",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Vše (fatální problémy, chyby, varování, informační, ladící)",
+ "Info, warnings, errors and fatal issues" : "Informace, varování, chyby a fatální problémy",
+ "Warnings, errors and fatal issues" : "Varování, chyby a fatální problémy",
+ "Errors and fatal issues" : "Chyby a fatální problémy",
+ "Fatal issues only" : "Pouze fatální problémy",
+ "None" : "Žádné",
+ "Login" : "Přihlásit",
+ "Plain" : "Čistý text",
+ "NT LAN Manager" : "Správce NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Bezpečnostní upozornění",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Přistupujete na %s protokolem HTTP. Důrazně doporučujeme nakonfigurovat server pro použití HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Váš datový adresář i vaše soubory jsou pravděpodobně přístupné z internetu. Soubor .htaccess nefunguje. Důrazně doporučujeme nakonfigurovat webový server tak, aby datový adresář nebyl nadále přístupný, nebo přesunout datový adresář mimo prostor zpřístupňovaný webovým serverem.",
+ "Read-Only config enabled" : "Konfigurační soubor pouze pro čtení",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfigurační soubor je pouze pro čtení. Toto omezuje možnost nastavení přes webové rozhraní. Dále musí být pro každou změnu povolen zápis do souboru ručně.",
+ "Setup Warning" : "Upozornění nastavení",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek nedostupnost množství hlavních aplikací.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.",
+ "Database Performance Info" : "Informace o výkonu databáze",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Je použita databáze SQLite. Pro větší instalace doporučujeme toto změnit. Pro migraci na jiný typ databáze lze použít nástroj pro příkazový řádek: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Schází modul 'fileinfo'",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Schází PHP modul 'fileinfo'. Doporučujeme jej povolit pro nejlepší výsledky detekce typů MIME.",
+ "Your PHP version is outdated" : "Vaše verze PHP je zastaralá",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Vámi používaná verze PHP je zastaralá. Důrazně doporučujeme aktualizovat na verzi 5.3.8 nebo novější, protože starší verze obsahují chyby. Je možné, že tato instalace nebude fungovat správně.",
+ "PHP charset is not set to UTF-8" : "Znaková sada PHP není nastavena na UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "Znaková sada PHP není nastavena na UTF-8. To může způsobit závažné problémy se jmény souborů se znaky neobsaženými v ASCII. Důrazně doporučujeme změnit hodnotu 'default_charset' v php.ini na 'UTF-8'.",
+ "Locale not working" : "Lokalizace nefunguje",
+ "System locale can not be set to a one which supports UTF-8." : "Není možné nastavit znakovou sadu, která podporuje UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "To znamená, že se mohou vyskytnout problémy s určitými znaky v názvech souborů.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Velmi doporučujeme nainstalovat požadované balíčky do systému, pro podporu jednoho z následujících národních prostředí: %s.",
+ "URL generation in notification emails" : "Generování adresy URL v oznamovacích e-mailech",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwritewebroot\" (Doporučujeme: \"%s\")",
+ "Connectivity Checks" : "Ověřování připojení",
+ "No problems found" : "Nebyly nalezeny žádné problémy",
+ "Please double check the installation guides ." : "Zkonzultujte, prosím, průvodce instalací .",
+ "Last cron was executed at %s." : "Poslední cron byl spuštěn v %s",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Poslední cron byl spuštěn v %s. To je více než před hodinou. Vypadá to, že není něco v pořádku.",
+ "Cron was not executed yet!" : "Cron ještě nebyl spuštěn!",
+ "Execute one task with each page loaded" : "Spustit jednu úlohu s každým načtením stránky",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php je registrován u služby webcron, aby volal cron.php jednou za 15 minut přes http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Použít systémovou službu cron pro volání cron.php každých 15 minut.",
+ "Allow apps to use the Share API" : "Povolit aplikacím používat API sdílení",
+ "Allow users to share via link" : "Povolit uživatelům sdílení pomocí odkazů",
+ "Enforce password protection" : "Vynutit ochranu heslem",
+ "Allow public uploads" : "Povolit veřejné nahrávání souborů",
+ "Set default expiration date" : "Nastavit výchozí datum vypršení platnosti",
+ "Expire after " : "Vyprší po",
+ "days" : "dnech",
+ "Enforce expiration date" : "Vynutit datum vypršení",
+ "Allow resharing" : "Povolit znovu-sdílení",
+ "Restrict users to only share with users in their groups" : "Povolit sdílení pouze mezi uživateli v rámci skupiny",
+ "Allow users to send mail notification for shared files" : "Povolit uživatelům odesílat e-mailová upozornění pro sdílené soubory",
+ "Exclude groups from sharing" : "Vyjmout skupiny ze sdílení",
+ "These groups will still be able to receive shares, but not to initiate them." : "Těmto skupinám bude stále možno sdílet, nemohou ale sami sdílet ostatním.",
+ "Enforce HTTPS" : "Vynutit HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Vynutí připojování klientů k %s šifrovaným spojením.",
+ "Enforce HTTPS for subdomains" : "Vynutit HTTPS pro subdomény",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Vynutí připojování klientů k %s a subdoménám šifrovaným spojením.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Připojte se k %s přes HTTPS pro povolení nebo zakázání vynucení SSL.",
+ "This is used for sending out notifications." : "Toto se používá pro odesílání upozornění.",
+ "Send mode" : "Mód odesílání",
+ "From address" : "Adresa odesílatele",
+ "mail" : "e-mail",
+ "Authentication method" : "Metoda ověření",
+ "Authentication required" : "Vyžadováno ověření",
+ "Server address" : "Adresa serveru",
+ "Port" : "Port",
+ "Credentials" : "Přihlašovací údaje",
+ "SMTP Username" : "SMTP uživatelské jméno ",
+ "SMTP Password" : "SMTP heslo",
+ "Store credentials" : "Ukládat přihlašovací údaje",
+ "Test email settings" : "Otestovat nastavení e-mailu",
+ "Send email" : "Odeslat e-mail",
+ "Log level" : "Úroveň zaznamenávání",
+ "More" : "Více",
+ "Less" : "Méně",
+ "Version" : "Verze",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Vyvinuto komunitou ownCloud , zdrojový kód je licencován pod AGPL .",
+ "More apps" : "Více aplikací",
+ "Add your app" : "Přidat vlastní aplikaci",
+ "by" : "sdílí",
+ "licensed" : "licencováno",
+ "Documentation:" : "Dokumentace:",
+ "User Documentation" : "Uživatelská dokumentace",
+ "Admin Documentation" : "Dokumentace pro administrátory",
+ "Update to %s" : "Aktualizovat na %s",
+ "Enable only for specific groups" : "Povolit pouze pro vybrané skupiny",
+ "Uninstall App" : "Odinstalovat aplikaci",
+ "Administrator Documentation" : "Dokumentace správce",
+ "Online Documentation" : "Online dokumentace",
+ "Forum" : "Fórum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Placená podpora",
+ "Get the apps to sync your files" : "Získat aplikace pro synchronizaci vašich souborů",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Chcete-li podpořit tento projekt\n⇥⇥přidejte se k vývoji \n⇥⇥nebo\n⇥⇥šiřte osvětu !",
+ "Show First Run Wizard again" : "Znovu zobrazit průvodce prvním spuštěním",
+ "You have used %s of the available %s " : "Používáte %s z %s dostupných",
+ "Password" : "Heslo",
+ "Your password was changed" : "Vaše heslo bylo změněno",
+ "Unable to change your password" : "Změna vašeho hesla se nezdařila",
+ "Current password" : "Současné heslo",
+ "New password" : "Nové heslo",
+ "Change password" : "Změnit heslo",
+ "Full Name" : "Celé jméno",
+ "Email" : "E-mail",
+ "Your email address" : "Vaše e-mailová adresa",
+ "Fill in an email address to enable password recovery and receive notifications" : "Zadejte e-mailovou adresu pro umožnění obnovy zapomenutého hesla a pro přijímání upozornění",
+ "Profile picture" : "Profilový obrázek",
+ "Upload new" : "Nahrát nový",
+ "Select new from Files" : "Vyberte nový ze souborů",
+ "Remove image" : "Odebrat obrázek",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "png nebo jpg, nejlépe čtvercový, ale budete mít možnost jej oříznout.",
+ "Your avatar is provided by your original account." : "Váš avatar je poskytován Vaším původním účtem.",
+ "Cancel" : "Zrušit",
+ "Choose as profile image" : "Vybrat jako profilový obrázek",
+ "Language" : "Jazyk",
+ "Help translate" : "Pomoci s překladem",
+ "Common Name" : "Common Name",
+ "Valid until" : "Platný do",
+ "Issued By" : "Vydal",
+ "Valid until %s" : "Platný do %s",
+ "Import Root Certificate" : "Import kořenového certifikátu",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Šifrovací aplikace již není spuštěna, dešifrujte prosím všechny své soubory",
+ "Log-in password" : "Přihlašovací heslo",
+ "Decrypt all Files" : "Odšifrovat všechny soubory",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Vaše šifrovací klíče byly zálohovány. Pokud se něco pokazí, můžete je obnovit. Smažte je trvale pouze pokud jste jisti, že jsou všechny vaše soubory bezchybně dešifrovány.",
+ "Restore Encryption Keys" : "Obnovit šifrovací klíče",
+ "Delete Encryption Keys" : "Smazat šifrovací klíče",
+ "Show storage location" : "Zobrazit umístění úložiště",
+ "Show last log in" : "Zobrazit poslední přihlášení",
+ "Username" : "Uživatelské jméno",
+ "Create" : "Vytvořit",
+ "Admin Recovery Password" : "Heslo obnovy správce",
+ "Enter the recovery password in order to recover the users files during password change" : "Zadejte heslo obnovy pro obnovení souborů uživatele při změně hesla",
+ "Search Users" : "Hledat uživatele",
+ "Add Group" : "Přidat skupinu",
+ "Group" : "Skupina",
+ "Everyone" : "Všichni",
+ "Admins" : "Administrátoři",
+ "Default Quota" : "Výchozí kvóta",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Zvolte prosím kvótu pro úložiště (např. \"512 MB\" nebo \"12 GB\")",
+ "Unlimited" : "Neomezeně",
+ "Other" : "Jiný",
+ "Group Admin for" : "Správce skupiny ",
+ "Quota" : "Kvóta",
+ "Storage Location" : "Umístění úložiště",
+ "Last Login" : "Poslední přihlášení",
+ "change full name" : "změnit celé jméno",
+ "set new password" : "nastavit nové heslo",
+ "Default" : "Výchozí"
+},
+"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json
new file mode 100644
index 00000000000..84960c3fc7c
--- /dev/null
+++ b/settings/l10n/cs_CZ.json
@@ -0,0 +1,242 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Upozornění zabezpečení a nastavení",
+ "Cron" : "Cron",
+ "Sharing" : "Sdílení",
+ "Security" : "Zabezpečení",
+ "Email Server" : "E-mailový server",
+ "Log" : "Záznam",
+ "Authentication error" : "Chyba přihlášení",
+ "Your full name has been changed." : "Vaše celé jméno bylo změněno.",
+ "Unable to change full name" : "Nelze změnit celé jméno",
+ "Group already exists" : "Skupina již existuje",
+ "Unable to add group" : "Nelze přidat skupinu",
+ "Files decrypted successfully" : "Soubory úspěšně dešifrovány",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Nebylo možno dešifrovat soubory, zkontroluje prosím owncloud.log nebo kontaktujte svého správce systému",
+ "Couldn't decrypt your files, check your password and try again" : "Nebylo možno dešifrovat soubory, zkontrolujte své heslo a zkuste znovu",
+ "Encryption keys deleted permanently" : "Šifrovací klíče trvale smazány",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Nebylo možno trvale smazat vaše šifrovací klíče, zkontrolujte prosím owncloud.log nebo kontaktujte svého správce systému",
+ "Couldn't remove app." : "Nepodařilo se odebrat aplikaci.",
+ "Email saved" : "E-mail uložen",
+ "Invalid email" : "Neplatný e-mail",
+ "Unable to delete group" : "Nelze smazat skupinu",
+ "Unable to delete user" : "Nelze smazat uživatele",
+ "Backups restored successfully" : "Zálohy úspěšně obnoveny",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Nebylo možno obnovit vaše šifrovací klíče, zkontrolujte prosím owncloud.log nebo kontaktujte svého správce systému",
+ "Language changed" : "Jazyk byl změněn",
+ "Invalid request" : "Neplatný požadavek",
+ "Admins can't remove themself from the admin group" : "Správci se nemohou odebrat sami ze skupiny správců",
+ "Unable to add user to group %s" : "Nelze přidat uživatele do skupiny %s",
+ "Unable to remove user from group %s" : "Nelze odebrat uživatele ze skupiny %s",
+ "Couldn't update app." : "Nelze aktualizovat aplikaci.",
+ "Wrong password" : "Nesprávné heslo",
+ "No user supplied" : "Nebyl uveden uživatel",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Zadejte prosím administrátorské heslo pro obnovu, jinak budou všechna data ztracena",
+ "Wrong admin recovery password. Please check the password and try again." : "Chybné administrátorské heslo pro obnovu. Překontrolujte správnost hesla a zkuste to znovu.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Úložiště nepodporuje změnu hesla, ale šifrovací klíč uživatelů byl úspěšně změněn.",
+ "Unable to change password" : "Změna hesla se nezdařila",
+ "Enabled" : "Povoleno",
+ "Not enabled" : "Vypnuto",
+ "Recommended" : "Doporučeno",
+ "Saved" : "Uloženo",
+ "test email settings" : "otestovat nastavení e-mailu",
+ "If you received this email, the settings seem to be correct." : "Pokud jste obdrželi tento e-mail, nastavení se zdají být v pořádku.",
+ "A problem occurred while sending the email. Please revise your settings." : "Při odesílání e-mailu nastala chyba. Překontrolujte prosím svá nastavení.",
+ "Email sent" : "E-mail odeslán",
+ "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních e-mailů musíte nejprve nastavit svou e-mailovou adresu.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Jste si jisti, že chcete přidat \"{domain}\" mezi důvěryhodné domény?",
+ "Add trusted domain" : "Přidat důvěryhodnou doménu",
+ "Sending..." : "Odesílání...",
+ "All" : "Vše",
+ "Please wait...." : "Čekejte prosím...",
+ "Error while disabling app" : "Chyba při zakazování aplikace",
+ "Disable" : "Zakázat",
+ "Enable" : "Povolit",
+ "Error while enabling app" : "Chyba při povolování aplikace",
+ "Updating...." : "Aktualizuji...",
+ "Error while updating app" : "Chyba při aktualizaci aplikace",
+ "Updated" : "Aktualizováno",
+ "Uninstalling ...." : "Probíhá odinstalace ...",
+ "Error while uninstalling app" : "Chyba při odinstalaci aplikace",
+ "Uninstall" : "Odinstalovat",
+ "Select a profile picture" : "Vyberte profilový obrázek",
+ "Very weak password" : "Velmi slabé heslo",
+ "Weak password" : "Slabé heslo",
+ "So-so password" : "Středně silné heslo",
+ "Good password" : "Dobré heslo",
+ "Strong password" : "Silné heslo",
+ "Valid until {date}" : "Platný do {date}",
+ "Delete" : "Smazat",
+ "Decrypting files... Please wait, this can take some time." : "Probíhá dešifrování souborů... Čekejte prosím, tato operace může trvat nějakou dobu.",
+ "Delete encryption keys permanently." : "Trvale smazat šifrovací klíče.",
+ "Restore encryption keys." : "Obnovit šifrovací klíče.",
+ "Groups" : "Skupiny",
+ "Unable to delete {objName}" : "Nelze smazat {objName}",
+ "Error creating group" : "Chyba při vytváření skupiny",
+ "A valid group name must be provided" : "Musíte zadat platný název skupiny",
+ "deleted {groupName}" : "smazána {groupName}",
+ "undo" : "vrátit zpět",
+ "no group" : "není ve skupině",
+ "never" : "nikdy",
+ "deleted {userName}" : "smazán {userName}",
+ "add group" : "přidat skupinu",
+ "A valid username must be provided" : "Musíte zadat platné uživatelské jméno",
+ "Error creating user" : "Chyba při vytváření užiatele",
+ "A valid password must be provided" : "Musíte zadat platné heslo",
+ "Warning: Home directory for user \"{user}\" already exists" : "Varování: Osobní složka uživatele \"{user}\" již existuje.",
+ "__language_name__" : "Česky",
+ "Personal Info" : "Osobní informace",
+ "SSL root certificates" : "Kořenové certifikáty SSL",
+ "Encryption" : "Šifrování",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Vše (fatální problémy, chyby, varování, informační, ladící)",
+ "Info, warnings, errors and fatal issues" : "Informace, varování, chyby a fatální problémy",
+ "Warnings, errors and fatal issues" : "Varování, chyby a fatální problémy",
+ "Errors and fatal issues" : "Chyby a fatální problémy",
+ "Fatal issues only" : "Pouze fatální problémy",
+ "None" : "Žádné",
+ "Login" : "Přihlásit",
+ "Plain" : "Čistý text",
+ "NT LAN Manager" : "Správce NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Bezpečnostní upozornění",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Přistupujete na %s protokolem HTTP. Důrazně doporučujeme nakonfigurovat server pro použití HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Váš datový adresář i vaše soubory jsou pravděpodobně přístupné z internetu. Soubor .htaccess nefunguje. Důrazně doporučujeme nakonfigurovat webový server tak, aby datový adresář nebyl nadále přístupný, nebo přesunout datový adresář mimo prostor zpřístupňovaný webovým serverem.",
+ "Read-Only config enabled" : "Konfigurační soubor pouze pro čtení",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfigurační soubor je pouze pro čtení. Toto omezuje možnost nastavení přes webové rozhraní. Dále musí být pro každou změnu povolen zápis do souboru ručně.",
+ "Setup Warning" : "Upozornění nastavení",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek nedostupnost množství hlavních aplikací.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.",
+ "Database Performance Info" : "Informace o výkonu databáze",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Je použita databáze SQLite. Pro větší instalace doporučujeme toto změnit. Pro migraci na jiný typ databáze lze použít nástroj pro příkazový řádek: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Schází modul 'fileinfo'",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Schází PHP modul 'fileinfo'. Doporučujeme jej povolit pro nejlepší výsledky detekce typů MIME.",
+ "Your PHP version is outdated" : "Vaše verze PHP je zastaralá",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Vámi používaná verze PHP je zastaralá. Důrazně doporučujeme aktualizovat na verzi 5.3.8 nebo novější, protože starší verze obsahují chyby. Je možné, že tato instalace nebude fungovat správně.",
+ "PHP charset is not set to UTF-8" : "Znaková sada PHP není nastavena na UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "Znaková sada PHP není nastavena na UTF-8. To může způsobit závažné problémy se jmény souborů se znaky neobsaženými v ASCII. Důrazně doporučujeme změnit hodnotu 'default_charset' v php.ini na 'UTF-8'.",
+ "Locale not working" : "Lokalizace nefunguje",
+ "System locale can not be set to a one which supports UTF-8." : "Není možné nastavit znakovou sadu, která podporuje UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "To znamená, že se mohou vyskytnout problémy s určitými znaky v názvech souborů.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Velmi doporučujeme nainstalovat požadované balíčky do systému, pro podporu jednoho z následujících národních prostředí: %s.",
+ "URL generation in notification emails" : "Generování adresy URL v oznamovacích e-mailech",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwritewebroot\" (Doporučujeme: \"%s\")",
+ "Connectivity Checks" : "Ověřování připojení",
+ "No problems found" : "Nebyly nalezeny žádné problémy",
+ "Please double check the installation guides ." : "Zkonzultujte, prosím, průvodce instalací .",
+ "Last cron was executed at %s." : "Poslední cron byl spuštěn v %s",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Poslední cron byl spuštěn v %s. To je více než před hodinou. Vypadá to, že není něco v pořádku.",
+ "Cron was not executed yet!" : "Cron ještě nebyl spuštěn!",
+ "Execute one task with each page loaded" : "Spustit jednu úlohu s každým načtením stránky",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php je registrován u služby webcron, aby volal cron.php jednou za 15 minut přes http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Použít systémovou službu cron pro volání cron.php každých 15 minut.",
+ "Allow apps to use the Share API" : "Povolit aplikacím používat API sdílení",
+ "Allow users to share via link" : "Povolit uživatelům sdílení pomocí odkazů",
+ "Enforce password protection" : "Vynutit ochranu heslem",
+ "Allow public uploads" : "Povolit veřejné nahrávání souborů",
+ "Set default expiration date" : "Nastavit výchozí datum vypršení platnosti",
+ "Expire after " : "Vyprší po",
+ "days" : "dnech",
+ "Enforce expiration date" : "Vynutit datum vypršení",
+ "Allow resharing" : "Povolit znovu-sdílení",
+ "Restrict users to only share with users in their groups" : "Povolit sdílení pouze mezi uživateli v rámci skupiny",
+ "Allow users to send mail notification for shared files" : "Povolit uživatelům odesílat e-mailová upozornění pro sdílené soubory",
+ "Exclude groups from sharing" : "Vyjmout skupiny ze sdílení",
+ "These groups will still be able to receive shares, but not to initiate them." : "Těmto skupinám bude stále možno sdílet, nemohou ale sami sdílet ostatním.",
+ "Enforce HTTPS" : "Vynutit HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Vynutí připojování klientů k %s šifrovaným spojením.",
+ "Enforce HTTPS for subdomains" : "Vynutit HTTPS pro subdomény",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Vynutí připojování klientů k %s a subdoménám šifrovaným spojením.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Připojte se k %s přes HTTPS pro povolení nebo zakázání vynucení SSL.",
+ "This is used for sending out notifications." : "Toto se používá pro odesílání upozornění.",
+ "Send mode" : "Mód odesílání",
+ "From address" : "Adresa odesílatele",
+ "mail" : "e-mail",
+ "Authentication method" : "Metoda ověření",
+ "Authentication required" : "Vyžadováno ověření",
+ "Server address" : "Adresa serveru",
+ "Port" : "Port",
+ "Credentials" : "Přihlašovací údaje",
+ "SMTP Username" : "SMTP uživatelské jméno ",
+ "SMTP Password" : "SMTP heslo",
+ "Store credentials" : "Ukládat přihlašovací údaje",
+ "Test email settings" : "Otestovat nastavení e-mailu",
+ "Send email" : "Odeslat e-mail",
+ "Log level" : "Úroveň zaznamenávání",
+ "More" : "Více",
+ "Less" : "Méně",
+ "Version" : "Verze",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Vyvinuto komunitou ownCloud , zdrojový kód je licencován pod AGPL .",
+ "More apps" : "Více aplikací",
+ "Add your app" : "Přidat vlastní aplikaci",
+ "by" : "sdílí",
+ "licensed" : "licencováno",
+ "Documentation:" : "Dokumentace:",
+ "User Documentation" : "Uživatelská dokumentace",
+ "Admin Documentation" : "Dokumentace pro administrátory",
+ "Update to %s" : "Aktualizovat na %s",
+ "Enable only for specific groups" : "Povolit pouze pro vybrané skupiny",
+ "Uninstall App" : "Odinstalovat aplikaci",
+ "Administrator Documentation" : "Dokumentace správce",
+ "Online Documentation" : "Online dokumentace",
+ "Forum" : "Fórum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Placená podpora",
+ "Get the apps to sync your files" : "Získat aplikace pro synchronizaci vašich souborů",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Chcete-li podpořit tento projekt\n⇥⇥přidejte se k vývoji \n⇥⇥nebo\n⇥⇥šiřte osvětu !",
+ "Show First Run Wizard again" : "Znovu zobrazit průvodce prvním spuštěním",
+ "You have used %s of the available %s " : "Používáte %s z %s dostupných",
+ "Password" : "Heslo",
+ "Your password was changed" : "Vaše heslo bylo změněno",
+ "Unable to change your password" : "Změna vašeho hesla se nezdařila",
+ "Current password" : "Současné heslo",
+ "New password" : "Nové heslo",
+ "Change password" : "Změnit heslo",
+ "Full Name" : "Celé jméno",
+ "Email" : "E-mail",
+ "Your email address" : "Vaše e-mailová adresa",
+ "Fill in an email address to enable password recovery and receive notifications" : "Zadejte e-mailovou adresu pro umožnění obnovy zapomenutého hesla a pro přijímání upozornění",
+ "Profile picture" : "Profilový obrázek",
+ "Upload new" : "Nahrát nový",
+ "Select new from Files" : "Vyberte nový ze souborů",
+ "Remove image" : "Odebrat obrázek",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "png nebo jpg, nejlépe čtvercový, ale budete mít možnost jej oříznout.",
+ "Your avatar is provided by your original account." : "Váš avatar je poskytován Vaším původním účtem.",
+ "Cancel" : "Zrušit",
+ "Choose as profile image" : "Vybrat jako profilový obrázek",
+ "Language" : "Jazyk",
+ "Help translate" : "Pomoci s překladem",
+ "Common Name" : "Common Name",
+ "Valid until" : "Platný do",
+ "Issued By" : "Vydal",
+ "Valid until %s" : "Platný do %s",
+ "Import Root Certificate" : "Import kořenového certifikátu",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Šifrovací aplikace již není spuštěna, dešifrujte prosím všechny své soubory",
+ "Log-in password" : "Přihlašovací heslo",
+ "Decrypt all Files" : "Odšifrovat všechny soubory",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Vaše šifrovací klíče byly zálohovány. Pokud se něco pokazí, můžete je obnovit. Smažte je trvale pouze pokud jste jisti, že jsou všechny vaše soubory bezchybně dešifrovány.",
+ "Restore Encryption Keys" : "Obnovit šifrovací klíče",
+ "Delete Encryption Keys" : "Smazat šifrovací klíče",
+ "Show storage location" : "Zobrazit umístění úložiště",
+ "Show last log in" : "Zobrazit poslední přihlášení",
+ "Username" : "Uživatelské jméno",
+ "Create" : "Vytvořit",
+ "Admin Recovery Password" : "Heslo obnovy správce",
+ "Enter the recovery password in order to recover the users files during password change" : "Zadejte heslo obnovy pro obnovení souborů uživatele při změně hesla",
+ "Search Users" : "Hledat uživatele",
+ "Add Group" : "Přidat skupinu",
+ "Group" : "Skupina",
+ "Everyone" : "Všichni",
+ "Admins" : "Administrátoři",
+ "Default Quota" : "Výchozí kvóta",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Zvolte prosím kvótu pro úložiště (např. \"512 MB\" nebo \"12 GB\")",
+ "Unlimited" : "Neomezeně",
+ "Other" : "Jiný",
+ "Group Admin for" : "Správce skupiny ",
+ "Quota" : "Kvóta",
+ "Storage Location" : "Umístění úložiště",
+ "Last Login" : "Poslední přihlášení",
+ "change full name" : "změnit celé jméno",
+ "set new password" : "nastavit nové heslo",
+ "Default" : "Výchozí"
+},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+}
\ No newline at end of file
diff --git a/settings/l10n/cs_CZ.php b/settings/l10n/cs_CZ.php
deleted file mode 100644
index dbbabb4a10f..00000000000
--- a/settings/l10n/cs_CZ.php
+++ /dev/null
@@ -1,239 +0,0 @@
- "Uvedena nesprávná hodnota pro %s",
-"Saved" => "Uloženo",
-"test email settings" => "otestovat nastavení e-mailu",
-"If you received this email, the settings seem to be correct." => "Pokud jste obdrželi tento e-mail, nastavení se zdají být v pořádku.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Při odesílání e-mailu nastala chyba. Překontrolujte vaše nastavení.",
-"Email sent" => "E-mail odeslán",
-"You need to set your user email before being able to send test emails." => "Pro možnost odeslání zkušebních e-mailů musíte nejprve nastavit svou e-mailovou adresu.",
-"Send mode" => "Mód odesílání",
-"Encryption" => "Šifrování",
-"Authentication method" => "Metoda ověření",
-"Unable to load list from App Store" => "Nelze načíst seznam z App Store",
-"Authentication error" => "Chyba přihlášení",
-"Your full name has been changed." => "Vaše celé jméno bylo změněno.",
-"Unable to change full name" => "Nelze změnit celé jméno",
-"Group already exists" => "Skupina již existuje",
-"Unable to add group" => "Nelze přidat skupinu",
-"Files decrypted successfully" => "Soubory úspěšně dešifrovány",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Nebylo možno dešifrovat soubory, zkontroluje prosím owncloud.log nebo kontaktujte svého administrátora",
-"Couldn't decrypt your files, check your password and try again" => "Nebylo možno dešifrovat soubory, zkontrolujte své heslo a zkuste znovu",
-"Encryption keys deleted permanently" => "Šifrovací klíče trvale smazány",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Nebylo možno trvale smazat vaše šifrovací klíče, zkontrolujte prosím owncloud.log nebo kontaktujte svého administrátora",
-"Couldn't remove app." => "Nepodařilo se odebrat aplikaci.",
-"Email saved" => "E-mail uložen",
-"Invalid email" => "Neplatný e-mail",
-"Unable to delete group" => "Nelze smazat skupinu",
-"Unable to delete user" => "Nelze smazat uživatele",
-"Backups restored successfully" => "Zálohy úspěšně obnoveny",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Nebylo možno obnovit vaše šifrovací klíče, zkontrolujte prosím owncloud.log nebo kontaktujte svého administrátora",
-"Language changed" => "Jazyk byl změněn",
-"Invalid request" => "Neplatný požadavek",
-"Admins can't remove themself from the admin group" => "Správci se nemohou odebrat sami ze skupiny správců",
-"Unable to add user to group %s" => "Nelze přidat uživatele do skupiny %s",
-"Unable to remove user from group %s" => "Nelze odebrat uživatele ze skupiny %s",
-"Couldn't update app." => "Nelze aktualizovat aplikaci.",
-"Wrong password" => "Nesprávné heslo",
-"No user supplied" => "Nebyl uveden uživatel",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Zadejte prosím administrátorské heslo pro obnovu, jinak budou všechna data ztracena",
-"Wrong admin recovery password. Please check the password and try again." => "Chybné administrátorské heslo pro obnovu. Překontrolujte správnost hesla a zkuste to znovu.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Úložiště nepodporuje změnu hesla, ale šifrovací klíč uživatelů byl úspěšně změněn.",
-"Unable to change password" => "Změna hesla se nezdařila",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "Jste si jisti, že chcete přidat \"{domain}\" mezi důvěryhodné domény?",
-"Add trusted domain" => "Přidat důvěryhodnou doménu",
-"Sending..." => "Odesílání...",
-"All" => "Vše",
-"User Documentation" => "Uživatelská dokumentace",
-"Admin Documentation" => "Dokumentace pro administrátory",
-"Update to {appversion}" => "Aktualizovat na {appversion}",
-"Uninstall App" => "Odinstalovat aplikaci",
-"Disable" => "Zakázat",
-"Enable" => "Povolit",
-"Please wait...." => "Čekejte prosím...",
-"Error while disabling app" => "Chyba při zakazování aplikace",
-"Error while enabling app" => "Chyba při povolování aplikace",
-"Updating...." => "Aktualizuji...",
-"Error while updating app" => "Chyba při aktualizaci aplikace",
-"Error" => "Chyba",
-"Update" => "Aktualizovat",
-"Updated" => "Aktualizováno",
-"Uninstalling ...." => "Probíhá odinstalace ...",
-"Error while uninstalling app" => "Chyba při odinstalaci aplikace",
-"Uninstall" => "Odinstalovat",
-"Select a profile picture" => "Vyberte profilový obrázek",
-"Very weak password" => "Velmi slabé heslo",
-"Weak password" => "Slabé heslo",
-"So-so password" => "Středně silné heslo",
-"Good password" => "Dobré heslo",
-"Strong password" => "Silné heslo",
-"Valid until {date}" => "Platný do {date}",
-"Delete" => "Smazat",
-"Decrypting files... Please wait, this can take some time." => "Probíhá dešifrování souborů... Čekejte prosím, tato operace může trvat nějakou dobu.",
-"Delete encryption keys permanently." => "Trvale smazat šifrovací klíče.",
-"Restore encryption keys." => "Obnovit šifrovací klíče.",
-"Groups" => "Skupiny",
-"Unable to delete {objName}" => "Nelze smazat {objName}",
-"Error creating group" => "Chyba při vytváření skupiny",
-"A valid group name must be provided" => "Musíte zadat platný název skupiny",
-"deleted {groupName}" => "smazána {groupName}",
-"undo" => "vrátit zpět",
-"Group Admin" => "Správa skupiny",
-"never" => "nikdy",
-"deleted {userName}" => "smazán {userName}",
-"add group" => "přidat skupinu",
-"A valid username must be provided" => "Musíte zadat platné uživatelské jméno",
-"Error creating user" => "Chyba při vytváření užiatele",
-"A valid password must be provided" => "Musíte zadat platné heslo",
-"Warning: Home directory for user \"{user}\" already exists" => "Varování: Osobní složka uživatele \"{user}\" již existuje.",
-"__language_name__" => "Česky",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Vše (fatální problémy, chyby, varování, informační, ladící)",
-"Info, warnings, errors and fatal issues" => "Informace, varování, chyby a fatální problémy",
-"Warnings, errors and fatal issues" => "Varování, chyby a fatální problémy",
-"Errors and fatal issues" => "Chyby a fatální problémy",
-"Fatal issues only" => "Pouze fatální problémy",
-"None" => "Žádné",
-"Login" => "Přihlásit",
-"Plain" => "Čistý text",
-"NT LAN Manager" => "Správce NT LAN",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Bezpečnostní upozornění",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Přistupujete na %s protokolem HTTP. Důrazně doporučujeme nakonfigurovat server pro použití HTTPS.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Váš datový adresář i vaše soubory jsou pravděpodobně přístupné z internetu. Soubor .htaccess nefunguje. Důrazně doporučujeme nakonfigurovat webový server tak, aby datový adresář nebyl nadále přístupný, nebo přesunout datový adresář mimo prostor zpřístupňovaný webovým serverem.",
-"Setup Warning" => "Upozornění nastavení",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek nedostupnost množství hlavních aplikací.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.",
-"Database Performance Info" => "Informace o výkonu databáze",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "Je použita databáze SQLite. Pro větší instalace doporučujeme toto změnit. Pro migraci na jiný typ databáze lze použít nástroj pro příkazový řádek: 'occ db:convert-type'",
-"Module 'fileinfo' missing" => "Schází modul 'fileinfo'",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "Schází PHP modul 'fileinfo'. Doporučujeme jej povolit pro nejlepší výsledky detekce typů MIME.",
-"Your PHP version is outdated" => "Vaše verze PHP je zastaralá",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Vámi používaná verze PHP je zastaralá. Důrazně doporučujeme aktualizovat na verzi 5.3.8 nebo novější, protože starší verze obsahují chyby. Je možné, že tato instalace nebude fungovat správně.",
-"PHP charset is not set to UTF-8" => "Znaková sada PHP není nastavena na UTF-8",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "Znaková sada PHP není nastavena na UTF-8. To může způsobit závažné problémy se jmény souborů se znaky neobsaženými v ASCII. Důrazně doporučujeme změnit hodnotu 'default_charset' v php.ini na 'UTF-8'.",
-"Locale not working" => "Lokalizace nefunguje",
-"System locale can not be set to a one which supports UTF-8." => "Není možné nastavit znakovou sadu, která podporuje UTF-8.",
-"This means that there might be problems with certain characters in file names." => "To znamená, že se mohou vyskytnout problémy s určitými znaky v názvech souborů.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Důrazně doporučujeme nainstalovat do vašeho systém balíčky nutné pro podporu některé z následujících znakových sad: %s.",
-"URL generation in notification emails" => "Generování adresy URL v oznamovacích e-mailech",
-"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwritewebroot\" (Doporučujeme: \"%s\")",
-"Connectivity checks" => "Ověřování připojení",
-"No problems found" => "Nebyly nalezeny žádné problémy",
-"Please double check the installation guides ." => "Zkonzultujte, prosím, průvodce instalací .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Poslední cron byl spuštěn v %s",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Poslední cron byl spuštěn v %s. To je více než před hodinou. Vypadá to, že není něco v pořádku.",
-"Cron was not executed yet!" => "Cron ještě nebyl spuštěn!",
-"Execute one task with each page loaded" => "Spustit jednu úlohu s každým načtením stránky",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php je registrován u služby webcron, aby volal cron.php jednou za 15 minut přes http.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Použít systémovou službu cron pro volání cron.php každých 15 minut.",
-"Sharing" => "Sdílení",
-"Allow apps to use the Share API" => "Povolit aplikacím používat API sdílení",
-"Allow users to share via link" => "Povolit uživatelům sdílení pomocí odkazů",
-"Enforce password protection" => "Vynutit ochranu heslem",
-"Allow public uploads" => "Povolit veřejné nahrávání souborů",
-"Set default expiration date" => "Nastavit výchozí datum vypršení platnosti",
-"Expire after " => "Vyprší po",
-"days" => "dnech",
-"Enforce expiration date" => "Vynutit datum vypršení",
-"Allow resharing" => "Povolit znovu-sdílení",
-"Restrict users to only share with users in their groups" => "Povolit sdílení pouze mezi uživateli v rámci skupiny",
-"Allow users to send mail notification for shared files" => "Povolit uživatelům odesílat e-mailová upozornění pro sdílené soubory",
-"Exclude groups from sharing" => "Vyjmout skupiny ze sdílení",
-"These groups will still be able to receive shares, but not to initiate them." => "Těmto skupinám bude stále možno sdílet, nemohou ale sami sdílet ostatním.",
-"Security" => "Zabezpečení",
-"Enforce HTTPS" => "Vynutit HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Vynutí připojování klientů k %s šifrovaným spojením.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Připojte se k %s skrze HTTPS pro povolení nebo zakázání vynucování SSL.",
-"Email Server" => "E-mailový server",
-"This is used for sending out notifications." => "Toto se používá pro odesílání upozornění.",
-"From address" => "Adresa odesílatele",
-"mail" => "e-mail",
-"Authentication required" => "Vyžadováno ověření",
-"Server address" => "Adresa serveru",
-"Port" => "Port",
-"Credentials" => "Přihlašovací údaje",
-"SMTP Username" => "SMTP uživatelské jméno ",
-"SMTP Password" => "SMTP heslo",
-"Test email settings" => "Otestovat nastavení e-mailu",
-"Send email" => "Odeslat e-mail",
-"Log" => "Záznam",
-"Log level" => "Úroveň zaznamenávání",
-"More" => "Více",
-"Less" => "Méně",
-"Version" => "Verze",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Vyvinuto komunitou ownCloud , zdrojový kód je licencován pod AGPL .",
-"Add your App" => "Přidat Vaši aplikaci",
-"More Apps" => "Více aplikací",
-"Select an App" => "Vyberte aplikaci",
-"Documentation:" => "Dokumentace:",
-"See application page at apps.owncloud.com" => "Více na stránce s aplikacemi na apps.owncloud.com",
-"See application website" => "Prohlédněte si webovou stránku aplikace",
-" -licensed by " => " -licencováno ",
-"Enable only for specific groups" => "Povolit pouze pro vybrané skupiny",
-"Administrator Documentation" => "Dokumentace správce",
-"Online Documentation" => "Online dokumentace",
-"Forum" => "Fórum",
-"Bugtracker" => "Bugtracker",
-"Commercial Support" => "Placená podpora",
-"Get the apps to sync your files" => "Získat aplikace pro synchronizaci vašich souborů",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Chcete-li podpořit tento projekt\n⇥⇥přidejte se k vývoji \n⇥⇥nebo\n⇥⇥šiřte osvětu !",
-"Show First Run Wizard again" => "Znovu zobrazit průvodce prvním spuštěním",
-"You have used %s of the available %s " => "Používáte %s z %s dostupných",
-"Password" => "Heslo",
-"Your password was changed" => "Vaše heslo bylo změněno",
-"Unable to change your password" => "Změna vašeho hesla se nezdařila",
-"Current password" => "Současné heslo",
-"New password" => "Nové heslo",
-"Change password" => "Změnit heslo",
-"Full Name" => "Celé jméno",
-"Email" => "E-mail",
-"Your email address" => "Vaše e-mailová adresa",
-"Fill in an email address to enable password recovery and receive notifications" => "Zadejte e-mailovou adresu pro umožnění obnovy zapomenutého hesla a pro přijímání upozornění",
-"Profile picture" => "Profilový obrázek",
-"Upload new" => "Nahrát nový",
-"Select new from Files" => "Vyberte nový ze souborů",
-"Remove image" => "Odebrat obrázek",
-"Either png or jpg. Ideally square but you will be able to crop it." => "png nebo jpg, nejlépe čtvercový, ale budete mít možnost jej oříznout.",
-"Your avatar is provided by your original account." => "Váš avatar je poskytován Vaším původním účtem.",
-"Cancel" => "Zrušit",
-"Choose as profile image" => "Vybrat jako profilový obrázek",
-"Language" => "Jazyk",
-"Help translate" => "Pomoci s překladem",
-"SSL root certificates" => "Kořenové certifikáty SSL",
-"Common Name" => "Common Name",
-"Valid until" => "Platný do",
-"Issued By" => "Vydal",
-"Valid until %s" => "Platný do %s",
-"Import Root Certificate" => "Import kořenového certifikátu",
-"The encryption app is no longer enabled, please decrypt all your files" => "Šifrovací aplikace již není spuštěna, dešifrujte prosím všechny své soubory",
-"Log-in password" => "Přihlašovací heslo",
-"Decrypt all Files" => "Odšifrovat všechny soubory",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Vaše šifrovací klíče byly zálohovány. Pokud se něco pokazí, můžete je obnovit. Smažte je trvale pouze pokud jste jisti, že jsou všechny vaše soubory bezchybně dešifrovány.",
-"Restore Encryption Keys" => "Obnovit šifrovací klíče",
-"Delete Encryption Keys" => "Smazat šifrovací klíče",
-"Show storage location" => "Zobrazit umístění úložiště",
-"Show last log in" => "Zobrazit poslední přihlášení",
-"Login Name" => "Přihlašovací jméno",
-"Create" => "Vytvořit",
-"Admin Recovery Password" => "Heslo obnovy správce",
-"Enter the recovery password in order to recover the users files during password change" => "Zadejte heslo obnovy pro obnovení souborů uživatele při změně hesla",
-"Search Users and Groups" => "Prohledat uživatele a skupiny",
-"Add Group" => "Přidat skupinu",
-"Group" => "Skupina",
-"Everyone" => "Všichni",
-"Admins" => "Administrátoři",
-"Default Quota" => "Výchozí kvóta",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Zvolte prosím kvótu pro úložiště (např. \"512 MB\" nebo \"12 GB\")",
-"Unlimited" => "Neomezeně",
-"Other" => "Jiný",
-"Username" => "Uživatelské jméno",
-"Quota" => "Kvóta",
-"Storage Location" => "Umístění úložiště",
-"Last Login" => "Poslední přihlášení",
-"change full name" => "změnit celé jméno",
-"set new password" => "nastavit nové heslo",
-"Default" => "Výchozí"
-);
-$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/settings/l10n/cy_GB.js b/settings/l10n/cy_GB.js
new file mode 100644
index 00000000000..41a1b01d085
--- /dev/null
+++ b/settings/l10n/cy_GB.js
@@ -0,0 +1,24 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Authentication error" : "Gwall dilysu",
+ "Invalid request" : "Cais annilys",
+ "Email sent" : "Anfonwyd yr e-bost",
+ "Delete" : "Dileu",
+ "Groups" : "Grwpiau",
+ "undo" : "dadwneud",
+ "never" : "byth",
+ "Encryption" : "Amgryptiad",
+ "None" : "Dim",
+ "Login" : "Mewngofnodi",
+ "Security Warning" : "Rhybudd Diogelwch",
+ "Please double check the installation guides ." : "Gwiriwch y canllawiau gosod eto.",
+ "by" : "gan",
+ "Password" : "Cyfrinair",
+ "New password" : "Cyfrinair newydd",
+ "Email" : "E-bost",
+ "Cancel" : "Diddymu",
+ "Username" : "Enw defnyddiwr",
+ "Other" : "Arall"
+},
+"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/settings/l10n/cy_GB.json b/settings/l10n/cy_GB.json
new file mode 100644
index 00000000000..5b65f09abaa
--- /dev/null
+++ b/settings/l10n/cy_GB.json
@@ -0,0 +1,22 @@
+{ "translations": {
+ "Authentication error" : "Gwall dilysu",
+ "Invalid request" : "Cais annilys",
+ "Email sent" : "Anfonwyd yr e-bost",
+ "Delete" : "Dileu",
+ "Groups" : "Grwpiau",
+ "undo" : "dadwneud",
+ "never" : "byth",
+ "Encryption" : "Amgryptiad",
+ "None" : "Dim",
+ "Login" : "Mewngofnodi",
+ "Security Warning" : "Rhybudd Diogelwch",
+ "Please double check the installation guides ." : "Gwiriwch y canllawiau gosod eto.",
+ "by" : "gan",
+ "Password" : "Cyfrinair",
+ "New password" : "Cyfrinair newydd",
+ "Email" : "E-bost",
+ "Cancel" : "Diddymu",
+ "Username" : "Enw defnyddiwr",
+ "Other" : "Arall"
+},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
+}
\ No newline at end of file
diff --git a/settings/l10n/cy_GB.php b/settings/l10n/cy_GB.php
deleted file mode 100644
index 4fcfa2cfc72..00000000000
--- a/settings/l10n/cy_GB.php
+++ /dev/null
@@ -1,24 +0,0 @@
- "Anfonwyd yr e-bost",
-"Encryption" => "Amgryptiad",
-"Authentication error" => "Gwall dilysu",
-"Invalid request" => "Cais annilys",
-"Error" => "Gwall",
-"Delete" => "Dileu",
-"Groups" => "Grwpiau",
-"undo" => "dadwneud",
-"never" => "byth",
-"None" => "Dim",
-"Login" => "Mewngofnodi",
-"Security Warning" => "Rhybudd Diogelwch",
-"Please double check the installation guides ." => "Gwiriwch y canllawiau gosod eto.",
-"Password" => "Cyfrinair",
-"New password" => "Cyfrinair newydd",
-"Email" => "E-bost",
-"Cancel" => "Diddymu",
-"Login Name" => "Mewngofnodi",
-"Other" => "Arall",
-"Username" => "Enw defnyddiwr"
-);
-$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;";
diff --git a/settings/l10n/da.js b/settings/l10n/da.js
new file mode 100644
index 00000000000..4866e824a47
--- /dev/null
+++ b/settings/l10n/da.js
@@ -0,0 +1,244 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Advarsler om sikkerhed og opsætning",
+ "Cron" : "Cron",
+ "Sharing" : "Deling",
+ "Security" : "Sikkerhed",
+ "Email Server" : "E-mailserver",
+ "Log" : "Log",
+ "Authentication error" : "Adgangsfejl",
+ "Your full name has been changed." : "Dit fulde navn er blevet ændret.",
+ "Unable to change full name" : "Ikke i stand til at ændre dit fulde navn",
+ "Group already exists" : "Gruppen findes allerede",
+ "Unable to add group" : "Gruppen kan ikke oprettes",
+ "Files decrypted successfully" : "Filer dekrypteret med succes",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dine filer kunne ikke dekrypteres. Gennemse din owncloud log eller spørg din administrator",
+ "Couldn't decrypt your files, check your password and try again" : "Dine filer kunne ikke dekrypteres. Check din adgangskode og forsøg igen",
+ "Encryption keys deleted permanently" : "Krypteringsnøgle slettet permanent",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Kunne ikke slette dine nøgler til kryptering permanent, tjek venligst din owncloud.log eller spørg din administrator",
+ "Couldn't remove app." : "Kunne ikke fjerne app'en.",
+ "Email saved" : "E-mailadressen er gemt",
+ "Invalid email" : "Ugyldig e-mailadresse",
+ "Unable to delete group" : "Gruppen kan ikke slettes",
+ "Unable to delete user" : "Bruger kan ikke slettes",
+ "Backups restored successfully" : "Genskabelsen af sikkerhedskopierne blev gennemført",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Kunne ikke genskabe din krypyterings nøgle, se logfilen owncloud.log eller spørg en administrator",
+ "Language changed" : "Sprog ændret",
+ "Invalid request" : "Ugyldig forespørgsel",
+ "Admins can't remove themself from the admin group" : "Administratorer kan ikke fjerne dem selv fra admin gruppen",
+ "Unable to add user to group %s" : "Brugeren kan ikke tilføjes til gruppen %s",
+ "Unable to remove user from group %s" : "Brugeren kan ikke fjernes fra gruppen %s",
+ "Couldn't update app." : "Kunne ikke opdatere app'en.",
+ "Wrong password" : "Forkert kodeord",
+ "No user supplied" : "Intet brugernavn givet",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Angiv venligst en admininstrator gendannelseskode, ellers vil alt brugerdata gå tabt",
+ "Wrong admin recovery password. Please check the password and try again." : "Forkert admin gendannelseskode. Se venligst koden efter og prøv igen.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Serveren understøtter ikke kodeordsskifte, men brugernes krypteringsnøgle blev opdateret.",
+ "Unable to change password" : "Kunne ikke ændre kodeord",
+ "Enabled" : "Aktiveret",
+ "Not enabled" : "Slået fra",
+ "Recommended" : "Anbefalet",
+ "Saved" : "Gemt",
+ "test email settings" : "test e-mailindstillinger",
+ "If you received this email, the settings seem to be correct." : "Hvis du har modtaget denne e-mail, så lader indstillinger til at være korrekte.",
+ "A problem occurred while sending the email. Please revise your settings." : "Der opstod en fejl under afsendelse af e-mailen. Gennemse venligst dine indstillinger.",
+ "Email sent" : "E-mail afsendt",
+ "You need to set your user email before being able to send test emails." : "Du skal angive din bruger-e-mail før der kan sendes test-e-mail.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Sikker på at du vil tilføje \"{domain}\" som et domæne du har tiilid til?",
+ "Add trusted domain" : "Tilføj et domæne som du har tillid til",
+ "Sending..." : "Sender...",
+ "All" : "Alle",
+ "Please wait...." : "Vent venligst...",
+ "Error while disabling app" : "Kunne ikke deaktivere app",
+ "Disable" : "Deaktiver",
+ "Enable" : "Aktiver",
+ "Error while enabling app" : "Kunne ikke aktivere app",
+ "Updating...." : "Opdaterer....",
+ "Error while updating app" : "Der opstod en fejl under app opgraderingen",
+ "Updated" : "Opdateret",
+ "Uninstalling ...." : "Afinstallerer...",
+ "Error while uninstalling app" : "Fejl under afinstallering af app",
+ "Uninstall" : "Afinstallér",
+ "Select a profile picture" : "Vælg et profilbillede",
+ "Very weak password" : "Meget svagt kodeord",
+ "Weak password" : "Svagt kodeord",
+ "So-so password" : "Jævnt kodeord",
+ "Good password" : "Godt kodeord",
+ "Strong password" : "Stærkt kodeord",
+ "Valid until {date}" : "Gyldig indtil {date}",
+ "Delete" : "Slet",
+ "Decrypting files... Please wait, this can take some time." : "Dekryptere filer... Vent venligst, dette kan tage lang tid. ",
+ "Delete encryption keys permanently." : "Slet krypteringsnøgler permanent.",
+ "Restore encryption keys." : "Genopret krypteringsnøgler.",
+ "Groups" : "Grupper",
+ "Unable to delete {objName}" : "Kunne ikke slette {objName}",
+ "Error creating group" : "Fejl ved oprettelse af gruppe",
+ "A valid group name must be provided" : "Et gyldigt gruppenavn skal angives ",
+ "deleted {groupName}" : "slettede {groupName}",
+ "undo" : "fortryd",
+ "no group" : "ingen gruppe",
+ "never" : "aldrig",
+ "deleted {userName}" : "slettede {userName}",
+ "add group" : "Tilføj gruppe",
+ "A valid username must be provided" : "Et gyldigt brugernavn skal angives",
+ "Error creating user" : "Fejl ved oprettelse af bruger",
+ "A valid password must be provided" : "En gyldig adgangskode skal angives",
+ "Warning: Home directory for user \"{user}\" already exists" : "Advarsel: Hjemmemappen for bruger \"{user}\" findes allerede",
+ "__language_name__" : "Dansk",
+ "Personal Info" : "Personlige oplysninger",
+ "SSL root certificates" : "SSL-rodcertifikater",
+ "Encryption" : "Kryptering",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Alt (alvorlige fejl, fejl, advarsler, info, debug)",
+ "Info, warnings, errors and fatal issues" : "Info, advarsler, fejl og alvorlige fejl",
+ "Warnings, errors and fatal issues" : "Advarsler, fejl og alvorlige fejl",
+ "Errors and fatal issues" : "Fejl og alvorlige fejl",
+ "Fatal issues only" : "Kun alvorlige fejl",
+ "None" : "Ingen",
+ "Login" : "Login",
+ "Plain" : "Klartekst",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Sikkerhedsadvarsel",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du tilgår %s via HTTP. Vi anbefaler at du konfigurerer din server til i stedet at kræve HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver så data mappen ikke længere er tilgængelig, eller at du flytter data mappen uden for webserverens dokument rod. ",
+ "Read-Only config enabled" : "Skrivebeskyttet konfig. slået til",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Den skrivebeskyttede konfiguration er blevet slået til. Dette forhindrer indstillinger af nogle konfigurationer via webgrænsefladen. I tillæg skal filen gøres skrivbar manuelt for hver opdatering.",
+ "Setup Warning" : "Opsætnings Advarsel",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP opsætning blokere \"inline doc blocks\". dette gør at flere grundlæggende apps utilgængelige",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette er sansynligvis forårsaget af et accelerator eller cache som Zend OPcache eller eAccelerator",
+ "Database Performance Info" : "Database Performance Oplysninger",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite er benyttet som database. Ved store installationer anbefaler vi at ændre dette. For at migrere til en anden database benyt 'occ db:convert-type' værktøjet i et kommandovindue.",
+ "Module 'fileinfo' missing" : "Module 'fileinfo' mangler",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP modulet 'fileinfo' mangler. Vi anbefaler stærkt at aktivere dette modul til at få de bedste resultater med mime-type detektion.",
+ "Your PHP version is outdated" : "Din PHP-version er forældet",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Din PHP-version er forældet. Vi anbefaler at du opgraderer til 5.3.8 eller nyere, fordi ældre versioner har kendte fejl. Det er derfor muligt at installationen ikke fungerer korrekt.",
+ "PHP charset is not set to UTF-8" : "PHP-tegnsættet er ikke angivet til UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP-tegnsættet er ikke angivet til UTF-8. Denne kan føre til store problemer med tegn som ikke er af typen ASCII i filnavne. Vi anbefaler kraftigt at ændre værdien for 'default_charset' i php.ini til 'UTF-8'.",
+ "Locale not working" : "Landestandard fungerer ikke",
+ "System locale can not be set to a one which supports UTF-8." : "Systemets locale kan ikke sættes til et der bruger UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Det betyder at der kan være problemer med visse tegn i filnavne.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Vi anbefaler kraftigt, at du installerer den krævede pakke på dit system, for at understøtte følgende lokaliteter: %s.",
+ "URL generation in notification emails" : "URL-oprettelse i e-mailnotifikationer.",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Hvis din installation ikke er installeret i roden af domænet, og bruger systemets cron, så kan der være problemer med URL-oprettelsen. For at undgå disse problemer, så angiv tilvalget \"overwritewebroot\" i din fil config.php til webrodens sti for din installation (foreslået værdi: \"%s\")",
+ "Connectivity Checks" : "Forbindelsestjek",
+ "No problems found" : "Der blev ikke fundet problemer",
+ "Please double check the installation guides ." : "Dobbelttjek venligst installations vejledningerne .",
+ "Last cron was executed at %s." : "Seneste 'cron' blev kørt %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Seneste 'cron' blev kørt %s. Dette er over en time siden - noget må være galt.",
+ "Cron was not executed yet!" : "Cron har ikke kørt endnu!",
+ "Execute one task with each page loaded" : "Udføre en opgave med hver side indlæst",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php er registreret til at en webcron service skal kalde cron.php hvert 15 minut over http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Brug systemets cron service til at kalde cron.php hver 15. minut",
+ "Allow apps to use the Share API" : "Tillad apps til at bruge Share API",
+ "Allow users to share via link" : "Tillad brugere at dele via link",
+ "Enforce password protection" : "tving kodeords beskyttelse",
+ "Allow public uploads" : "Tillad offentlig upload",
+ "Set default expiration date" : "Vælg standard udløbsdato",
+ "Expire after " : "Udløber efter",
+ "days" : "dage",
+ "Enforce expiration date" : "Påtving udløbsdato",
+ "Allow resharing" : "Tillad videredeling",
+ "Restrict users to only share with users in their groups" : "Begræns brugere til deling med brugere i deres gruppe",
+ "Allow users to send mail notification for shared files" : "Tillad brugere at sende mail underretninger for delte filer",
+ "Exclude groups from sharing" : "Ekskluder grupper fra at dele",
+ "These groups will still be able to receive shares, but not to initiate them." : "Disse grupper vil stadig kunne modtage delefiler, dog ikke skabe dem.",
+ "Enforce HTTPS" : "Gennemtving HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Tving klienten til at forbinde til %s via en kryptetet forbindelse.",
+ "Enforce HTTPS for subdomains" : "Gennemtving HTTPS for subdomæner",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Tving klienterne til at tilslutte til %s og subdomæner via en krypteret forbindelse.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Forbind venligst til din %s via HTTPS for at aktivere eller deaktivere SSL tvang.",
+ "This is used for sending out notifications." : "Dette anvendes til udsendelse af notifikationer.",
+ "Send mode" : "Tilstand for afsendelse",
+ "From address" : "Fra adresse",
+ "mail" : "mail",
+ "Authentication method" : "Godkendelsesmetode",
+ "Authentication required" : "Godkendelse påkrævet",
+ "Server address" : "Serveradresse",
+ "Port" : "Port",
+ "Credentials" : "Brugeroplysninger",
+ "SMTP Username" : "SMTP Brugernavn",
+ "SMTP Password" : "SMTP Kodeord",
+ "Store credentials" : "Gem brugeroplysninger",
+ "Test email settings" : "Test e-mail-indstillinger",
+ "Send email" : "Send e-mail",
+ "Log level" : "Log niveau",
+ "More" : "Mere",
+ "Less" : "Mindre",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Udviklet af ownClouds community , og kildekoden er underlagt licensen AGPL .",
+ "More apps" : "Flere programmer",
+ "Add your app" : "Tilføj din app",
+ "by" : "af",
+ "licensed" : "licenseret",
+ "Documentation:" : "Dokumentation:",
+ "User Documentation" : "Brugerdokumentation",
+ "Admin Documentation" : "Administrator Dokumentation",
+ "Update to %s" : "Opdatér til %s",
+ "Enable only for specific groups" : "Aktivér kun for udvalgte grupper",
+ "Uninstall App" : "Afinstallér app",
+ "Administrator Documentation" : "Administrator Dokumentation",
+ "Online Documentation" : "Online dokumentation",
+ "Forum" : "Forum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Kommerciel support",
+ "Get the apps to sync your files" : "Hent applikationerne for at synkronisere dine filer",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Hvis du vil støtte projektet\n\t\tdeltag i udviklingen \n\t\teller\n\t\tspred budskabet !",
+ "Show First Run Wizard again" : "Vis guiden for første kørsel igen.",
+ "You have used %s of the available %s " : "Du har brugt %s af den tilgængelige %s ",
+ "Password" : "Kodeord",
+ "Your password was changed" : "Din adgangskode blev ændret",
+ "Unable to change your password" : "Ude af stand til at ændre dit kodeord",
+ "Current password" : "Nuværende adgangskode",
+ "New password" : "Nyt kodeord",
+ "Change password" : "Skift kodeord",
+ "Full Name" : "Fulde navn",
+ "Email" : "E-mail",
+ "Your email address" : "Din e-mailadresse",
+ "Fill in an email address to enable password recovery and receive notifications" : "Angiv en e-mailadresse for at aktivere gendannelse af adgangskode og modtage notifikationer",
+ "Profile picture" : "Profilbillede",
+ "Upload new" : "Upload nyt",
+ "Select new from Files" : "Vælg nyt fra Filer",
+ "Remove image" : "Fjern billede",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Enten png eller jpg. Ideelt firkantet men du har mulighed for at beskære det. ",
+ "Your avatar is provided by your original account." : "Din avatar kommer fra din oprindelige konto.",
+ "Cancel" : "Annuller",
+ "Choose as profile image" : "Vælg som profilbillede",
+ "Language" : "Sprog",
+ "Help translate" : "Hjælp med oversættelsen",
+ "Common Name" : "Almindeligt navn",
+ "Valid until" : "Gyldig indtil",
+ "Issued By" : "Udstedt af",
+ "Valid until %s" : "Gyldig indtil %s",
+ "Import Root Certificate" : "Importer rodcertifikat",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Krypteringsprogrammet er ikke længere aktiveret. Dekrypter venligst alle dine filer",
+ "Log-in password" : "Log-in kodeord",
+ "Decrypt all Files" : "Dekrypter alle Filer ",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Din krypteringsmøgler er flyttet til et sted med sikkerhedskopier. Hvis noget gik galt kan du genskabe nøglerne. Slet kun nøgler permanent, hvis du er sikker på at alle filer er blevet dekrypteret korrekt.",
+ "Restore Encryption Keys" : "Genopret Krypteringsnøgler",
+ "Delete Encryption Keys" : "Slet Krypteringsnøgler",
+ "Show storage location" : "Vis placering af lageret",
+ "Show last log in" : "Vis seneste login",
+ "Username" : "Brugernavn",
+ "Create" : "Ny",
+ "Admin Recovery Password" : "Administrator gendannelse kodeord",
+ "Enter the recovery password in order to recover the users files during password change" : "Indtast et gendannelse kodeord for, at kunne gendanne brugerens filer ved ændring af kodeord",
+ "Search Users" : "Søg efter brugere",
+ "Add Group" : "Tilføj Gruppe",
+ "Group" : "Gruppe",
+ "Everyone" : "Alle",
+ "Admins" : "Administratore",
+ "Default Quota" : "Standard kvote",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Indtast venligst lagerkvote (f.eks. \"512 MB\" eller \"12 GB\")",
+ "Unlimited" : "Ubegrænset",
+ "Other" : "Andet",
+ "Group Admin for" : "Gruppeadministrator for",
+ "Quota" : "Kvote",
+ "Storage Location" : "Placering af lageret",
+ "Last Login" : "Seneste login",
+ "change full name" : "ændre fulde navn",
+ "set new password" : "skift kodeord",
+ "Default" : "Standard"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/da.json b/settings/l10n/da.json
new file mode 100644
index 00000000000..6ad39cf6a2f
--- /dev/null
+++ b/settings/l10n/da.json
@@ -0,0 +1,242 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Advarsler om sikkerhed og opsætning",
+ "Cron" : "Cron",
+ "Sharing" : "Deling",
+ "Security" : "Sikkerhed",
+ "Email Server" : "E-mailserver",
+ "Log" : "Log",
+ "Authentication error" : "Adgangsfejl",
+ "Your full name has been changed." : "Dit fulde navn er blevet ændret.",
+ "Unable to change full name" : "Ikke i stand til at ændre dit fulde navn",
+ "Group already exists" : "Gruppen findes allerede",
+ "Unable to add group" : "Gruppen kan ikke oprettes",
+ "Files decrypted successfully" : "Filer dekrypteret med succes",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dine filer kunne ikke dekrypteres. Gennemse din owncloud log eller spørg din administrator",
+ "Couldn't decrypt your files, check your password and try again" : "Dine filer kunne ikke dekrypteres. Check din adgangskode og forsøg igen",
+ "Encryption keys deleted permanently" : "Krypteringsnøgle slettet permanent",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Kunne ikke slette dine nøgler til kryptering permanent, tjek venligst din owncloud.log eller spørg din administrator",
+ "Couldn't remove app." : "Kunne ikke fjerne app'en.",
+ "Email saved" : "E-mailadressen er gemt",
+ "Invalid email" : "Ugyldig e-mailadresse",
+ "Unable to delete group" : "Gruppen kan ikke slettes",
+ "Unable to delete user" : "Bruger kan ikke slettes",
+ "Backups restored successfully" : "Genskabelsen af sikkerhedskopierne blev gennemført",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Kunne ikke genskabe din krypyterings nøgle, se logfilen owncloud.log eller spørg en administrator",
+ "Language changed" : "Sprog ændret",
+ "Invalid request" : "Ugyldig forespørgsel",
+ "Admins can't remove themself from the admin group" : "Administratorer kan ikke fjerne dem selv fra admin gruppen",
+ "Unable to add user to group %s" : "Brugeren kan ikke tilføjes til gruppen %s",
+ "Unable to remove user from group %s" : "Brugeren kan ikke fjernes fra gruppen %s",
+ "Couldn't update app." : "Kunne ikke opdatere app'en.",
+ "Wrong password" : "Forkert kodeord",
+ "No user supplied" : "Intet brugernavn givet",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Angiv venligst en admininstrator gendannelseskode, ellers vil alt brugerdata gå tabt",
+ "Wrong admin recovery password. Please check the password and try again." : "Forkert admin gendannelseskode. Se venligst koden efter og prøv igen.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Serveren understøtter ikke kodeordsskifte, men brugernes krypteringsnøgle blev opdateret.",
+ "Unable to change password" : "Kunne ikke ændre kodeord",
+ "Enabled" : "Aktiveret",
+ "Not enabled" : "Slået fra",
+ "Recommended" : "Anbefalet",
+ "Saved" : "Gemt",
+ "test email settings" : "test e-mailindstillinger",
+ "If you received this email, the settings seem to be correct." : "Hvis du har modtaget denne e-mail, så lader indstillinger til at være korrekte.",
+ "A problem occurred while sending the email. Please revise your settings." : "Der opstod en fejl under afsendelse af e-mailen. Gennemse venligst dine indstillinger.",
+ "Email sent" : "E-mail afsendt",
+ "You need to set your user email before being able to send test emails." : "Du skal angive din bruger-e-mail før der kan sendes test-e-mail.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Sikker på at du vil tilføje \"{domain}\" som et domæne du har tiilid til?",
+ "Add trusted domain" : "Tilføj et domæne som du har tillid til",
+ "Sending..." : "Sender...",
+ "All" : "Alle",
+ "Please wait...." : "Vent venligst...",
+ "Error while disabling app" : "Kunne ikke deaktivere app",
+ "Disable" : "Deaktiver",
+ "Enable" : "Aktiver",
+ "Error while enabling app" : "Kunne ikke aktivere app",
+ "Updating...." : "Opdaterer....",
+ "Error while updating app" : "Der opstod en fejl under app opgraderingen",
+ "Updated" : "Opdateret",
+ "Uninstalling ...." : "Afinstallerer...",
+ "Error while uninstalling app" : "Fejl under afinstallering af app",
+ "Uninstall" : "Afinstallér",
+ "Select a profile picture" : "Vælg et profilbillede",
+ "Very weak password" : "Meget svagt kodeord",
+ "Weak password" : "Svagt kodeord",
+ "So-so password" : "Jævnt kodeord",
+ "Good password" : "Godt kodeord",
+ "Strong password" : "Stærkt kodeord",
+ "Valid until {date}" : "Gyldig indtil {date}",
+ "Delete" : "Slet",
+ "Decrypting files... Please wait, this can take some time." : "Dekryptere filer... Vent venligst, dette kan tage lang tid. ",
+ "Delete encryption keys permanently." : "Slet krypteringsnøgler permanent.",
+ "Restore encryption keys." : "Genopret krypteringsnøgler.",
+ "Groups" : "Grupper",
+ "Unable to delete {objName}" : "Kunne ikke slette {objName}",
+ "Error creating group" : "Fejl ved oprettelse af gruppe",
+ "A valid group name must be provided" : "Et gyldigt gruppenavn skal angives ",
+ "deleted {groupName}" : "slettede {groupName}",
+ "undo" : "fortryd",
+ "no group" : "ingen gruppe",
+ "never" : "aldrig",
+ "deleted {userName}" : "slettede {userName}",
+ "add group" : "Tilføj gruppe",
+ "A valid username must be provided" : "Et gyldigt brugernavn skal angives",
+ "Error creating user" : "Fejl ved oprettelse af bruger",
+ "A valid password must be provided" : "En gyldig adgangskode skal angives",
+ "Warning: Home directory for user \"{user}\" already exists" : "Advarsel: Hjemmemappen for bruger \"{user}\" findes allerede",
+ "__language_name__" : "Dansk",
+ "Personal Info" : "Personlige oplysninger",
+ "SSL root certificates" : "SSL-rodcertifikater",
+ "Encryption" : "Kryptering",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Alt (alvorlige fejl, fejl, advarsler, info, debug)",
+ "Info, warnings, errors and fatal issues" : "Info, advarsler, fejl og alvorlige fejl",
+ "Warnings, errors and fatal issues" : "Advarsler, fejl og alvorlige fejl",
+ "Errors and fatal issues" : "Fejl og alvorlige fejl",
+ "Fatal issues only" : "Kun alvorlige fejl",
+ "None" : "Ingen",
+ "Login" : "Login",
+ "Plain" : "Klartekst",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Sikkerhedsadvarsel",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du tilgår %s via HTTP. Vi anbefaler at du konfigurerer din server til i stedet at kræve HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver så data mappen ikke længere er tilgængelig, eller at du flytter data mappen uden for webserverens dokument rod. ",
+ "Read-Only config enabled" : "Skrivebeskyttet konfig. slået til",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Den skrivebeskyttede konfiguration er blevet slået til. Dette forhindrer indstillinger af nogle konfigurationer via webgrænsefladen. I tillæg skal filen gøres skrivbar manuelt for hver opdatering.",
+ "Setup Warning" : "Opsætnings Advarsel",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP opsætning blokere \"inline doc blocks\". dette gør at flere grundlæggende apps utilgængelige",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette er sansynligvis forårsaget af et accelerator eller cache som Zend OPcache eller eAccelerator",
+ "Database Performance Info" : "Database Performance Oplysninger",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite er benyttet som database. Ved store installationer anbefaler vi at ændre dette. For at migrere til en anden database benyt 'occ db:convert-type' værktøjet i et kommandovindue.",
+ "Module 'fileinfo' missing" : "Module 'fileinfo' mangler",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP modulet 'fileinfo' mangler. Vi anbefaler stærkt at aktivere dette modul til at få de bedste resultater med mime-type detektion.",
+ "Your PHP version is outdated" : "Din PHP-version er forældet",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Din PHP-version er forældet. Vi anbefaler at du opgraderer til 5.3.8 eller nyere, fordi ældre versioner har kendte fejl. Det er derfor muligt at installationen ikke fungerer korrekt.",
+ "PHP charset is not set to UTF-8" : "PHP-tegnsættet er ikke angivet til UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP-tegnsættet er ikke angivet til UTF-8. Denne kan føre til store problemer med tegn som ikke er af typen ASCII i filnavne. Vi anbefaler kraftigt at ændre værdien for 'default_charset' i php.ini til 'UTF-8'.",
+ "Locale not working" : "Landestandard fungerer ikke",
+ "System locale can not be set to a one which supports UTF-8." : "Systemets locale kan ikke sættes til et der bruger UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Det betyder at der kan være problemer med visse tegn i filnavne.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Vi anbefaler kraftigt, at du installerer den krævede pakke på dit system, for at understøtte følgende lokaliteter: %s.",
+ "URL generation in notification emails" : "URL-oprettelse i e-mailnotifikationer.",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Hvis din installation ikke er installeret i roden af domænet, og bruger systemets cron, så kan der være problemer med URL-oprettelsen. For at undgå disse problemer, så angiv tilvalget \"overwritewebroot\" i din fil config.php til webrodens sti for din installation (foreslået værdi: \"%s\")",
+ "Connectivity Checks" : "Forbindelsestjek",
+ "No problems found" : "Der blev ikke fundet problemer",
+ "Please double check the installation guides ." : "Dobbelttjek venligst installations vejledningerne .",
+ "Last cron was executed at %s." : "Seneste 'cron' blev kørt %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Seneste 'cron' blev kørt %s. Dette er over en time siden - noget må være galt.",
+ "Cron was not executed yet!" : "Cron har ikke kørt endnu!",
+ "Execute one task with each page loaded" : "Udføre en opgave med hver side indlæst",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php er registreret til at en webcron service skal kalde cron.php hvert 15 minut over http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Brug systemets cron service til at kalde cron.php hver 15. minut",
+ "Allow apps to use the Share API" : "Tillad apps til at bruge Share API",
+ "Allow users to share via link" : "Tillad brugere at dele via link",
+ "Enforce password protection" : "tving kodeords beskyttelse",
+ "Allow public uploads" : "Tillad offentlig upload",
+ "Set default expiration date" : "Vælg standard udløbsdato",
+ "Expire after " : "Udløber efter",
+ "days" : "dage",
+ "Enforce expiration date" : "Påtving udløbsdato",
+ "Allow resharing" : "Tillad videredeling",
+ "Restrict users to only share with users in their groups" : "Begræns brugere til deling med brugere i deres gruppe",
+ "Allow users to send mail notification for shared files" : "Tillad brugere at sende mail underretninger for delte filer",
+ "Exclude groups from sharing" : "Ekskluder grupper fra at dele",
+ "These groups will still be able to receive shares, but not to initiate them." : "Disse grupper vil stadig kunne modtage delefiler, dog ikke skabe dem.",
+ "Enforce HTTPS" : "Gennemtving HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Tving klienten til at forbinde til %s via en kryptetet forbindelse.",
+ "Enforce HTTPS for subdomains" : "Gennemtving HTTPS for subdomæner",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Tving klienterne til at tilslutte til %s og subdomæner via en krypteret forbindelse.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Forbind venligst til din %s via HTTPS for at aktivere eller deaktivere SSL tvang.",
+ "This is used for sending out notifications." : "Dette anvendes til udsendelse af notifikationer.",
+ "Send mode" : "Tilstand for afsendelse",
+ "From address" : "Fra adresse",
+ "mail" : "mail",
+ "Authentication method" : "Godkendelsesmetode",
+ "Authentication required" : "Godkendelse påkrævet",
+ "Server address" : "Serveradresse",
+ "Port" : "Port",
+ "Credentials" : "Brugeroplysninger",
+ "SMTP Username" : "SMTP Brugernavn",
+ "SMTP Password" : "SMTP Kodeord",
+ "Store credentials" : "Gem brugeroplysninger",
+ "Test email settings" : "Test e-mail-indstillinger",
+ "Send email" : "Send e-mail",
+ "Log level" : "Log niveau",
+ "More" : "Mere",
+ "Less" : "Mindre",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Udviklet af ownClouds community , og kildekoden er underlagt licensen AGPL .",
+ "More apps" : "Flere programmer",
+ "Add your app" : "Tilføj din app",
+ "by" : "af",
+ "licensed" : "licenseret",
+ "Documentation:" : "Dokumentation:",
+ "User Documentation" : "Brugerdokumentation",
+ "Admin Documentation" : "Administrator Dokumentation",
+ "Update to %s" : "Opdatér til %s",
+ "Enable only for specific groups" : "Aktivér kun for udvalgte grupper",
+ "Uninstall App" : "Afinstallér app",
+ "Administrator Documentation" : "Administrator Dokumentation",
+ "Online Documentation" : "Online dokumentation",
+ "Forum" : "Forum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Kommerciel support",
+ "Get the apps to sync your files" : "Hent applikationerne for at synkronisere dine filer",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Hvis du vil støtte projektet\n\t\tdeltag i udviklingen \n\t\teller\n\t\tspred budskabet !",
+ "Show First Run Wizard again" : "Vis guiden for første kørsel igen.",
+ "You have used %s of the available %s " : "Du har brugt %s af den tilgængelige %s ",
+ "Password" : "Kodeord",
+ "Your password was changed" : "Din adgangskode blev ændret",
+ "Unable to change your password" : "Ude af stand til at ændre dit kodeord",
+ "Current password" : "Nuværende adgangskode",
+ "New password" : "Nyt kodeord",
+ "Change password" : "Skift kodeord",
+ "Full Name" : "Fulde navn",
+ "Email" : "E-mail",
+ "Your email address" : "Din e-mailadresse",
+ "Fill in an email address to enable password recovery and receive notifications" : "Angiv en e-mailadresse for at aktivere gendannelse af adgangskode og modtage notifikationer",
+ "Profile picture" : "Profilbillede",
+ "Upload new" : "Upload nyt",
+ "Select new from Files" : "Vælg nyt fra Filer",
+ "Remove image" : "Fjern billede",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Enten png eller jpg. Ideelt firkantet men du har mulighed for at beskære det. ",
+ "Your avatar is provided by your original account." : "Din avatar kommer fra din oprindelige konto.",
+ "Cancel" : "Annuller",
+ "Choose as profile image" : "Vælg som profilbillede",
+ "Language" : "Sprog",
+ "Help translate" : "Hjælp med oversættelsen",
+ "Common Name" : "Almindeligt navn",
+ "Valid until" : "Gyldig indtil",
+ "Issued By" : "Udstedt af",
+ "Valid until %s" : "Gyldig indtil %s",
+ "Import Root Certificate" : "Importer rodcertifikat",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Krypteringsprogrammet er ikke længere aktiveret. Dekrypter venligst alle dine filer",
+ "Log-in password" : "Log-in kodeord",
+ "Decrypt all Files" : "Dekrypter alle Filer ",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Din krypteringsmøgler er flyttet til et sted med sikkerhedskopier. Hvis noget gik galt kan du genskabe nøglerne. Slet kun nøgler permanent, hvis du er sikker på at alle filer er blevet dekrypteret korrekt.",
+ "Restore Encryption Keys" : "Genopret Krypteringsnøgler",
+ "Delete Encryption Keys" : "Slet Krypteringsnøgler",
+ "Show storage location" : "Vis placering af lageret",
+ "Show last log in" : "Vis seneste login",
+ "Username" : "Brugernavn",
+ "Create" : "Ny",
+ "Admin Recovery Password" : "Administrator gendannelse kodeord",
+ "Enter the recovery password in order to recover the users files during password change" : "Indtast et gendannelse kodeord for, at kunne gendanne brugerens filer ved ændring af kodeord",
+ "Search Users" : "Søg efter brugere",
+ "Add Group" : "Tilføj Gruppe",
+ "Group" : "Gruppe",
+ "Everyone" : "Alle",
+ "Admins" : "Administratore",
+ "Default Quota" : "Standard kvote",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Indtast venligst lagerkvote (f.eks. \"512 MB\" eller \"12 GB\")",
+ "Unlimited" : "Ubegrænset",
+ "Other" : "Andet",
+ "Group Admin for" : "Gruppeadministrator for",
+ "Quota" : "Kvote",
+ "Storage Location" : "Placering af lageret",
+ "Last Login" : "Seneste login",
+ "change full name" : "ændre fulde navn",
+ "set new password" : "skift kodeord",
+ "Default" : "Standard"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/da.php b/settings/l10n/da.php
deleted file mode 100644
index 78f34de1c24..00000000000
--- a/settings/l10n/da.php
+++ /dev/null
@@ -1,239 +0,0 @@
- "Ugyldig værdi anført for %s",
-"Saved" => "Gemt",
-"test email settings" => "test e-mailindstillinger",
-"If you received this email, the settings seem to be correct." => "Hvis du har modtaget denne e-mail, så lader indstillinger til at være korrekte.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Der opstod et problem under afsendelse af e-mailen. Gennemse venligst dine indstillinger påny.",
-"Email sent" => "E-mail afsendt",
-"You need to set your user email before being able to send test emails." => "Du skal angive din bruger-e-mail før der kan sendes test-e-mail.",
-"Send mode" => "Tilstand for afsendelse",
-"Encryption" => "Kryptering",
-"Authentication method" => "Godkendelsesmetode",
-"Unable to load list from App Store" => "Kunne ikke indlæse listen fra App Store",
-"Authentication error" => "Adgangsfejl",
-"Your full name has been changed." => "Dit fulde navn er blevet ændret.",
-"Unable to change full name" => "Ikke i stand til at ændre dit fulde navn",
-"Group already exists" => "Gruppen findes allerede",
-"Unable to add group" => "Gruppen kan ikke oprettes",
-"Files decrypted successfully" => "Filer dekrypteret med succes",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Dine filer kunne ikke dekrypteres. Gennemse din owncloud log eller spørg din administrator",
-"Couldn't decrypt your files, check your password and try again" => "Dine filer kunne ikke dekrypteres. Check din adgangskode og forsøg igen",
-"Encryption keys deleted permanently" => "Krypteringsnøgle slettet permanent",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Kunne ikke slette dine nøgler til kryptering permanent, tjek venligst din owncloud.log eller spørg din administrator",
-"Couldn't remove app." => "Kunne ikke fjerne app'en.",
-"Email saved" => "E-mailadressen er gemt",
-"Invalid email" => "Ugyldig e-mailadresse",
-"Unable to delete group" => "Gruppen kan ikke slettes",
-"Unable to delete user" => "Bruger kan ikke slettes",
-"Backups restored successfully" => "Backups succesfuld genskabt ",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Kunne ikke genskabe din krypyterings nøgle, se logfilen owncloud.log eller spørg en administrator",
-"Language changed" => "Sprog ændret",
-"Invalid request" => "Ugyldig forespørgsel",
-"Admins can't remove themself from the admin group" => "Administratorer kan ikke fjerne dem selv fra admin gruppen",
-"Unable to add user to group %s" => "Brugeren kan ikke tilføjes til gruppen %s",
-"Unable to remove user from group %s" => "Brugeren kan ikke fjernes fra gruppen %s",
-"Couldn't update app." => "Kunne ikke opdatere app'en.",
-"Wrong password" => "Forkert kodeord",
-"No user supplied" => "Intet brugernavn givet",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Angiv venligst en admininstrator gendannelseskode, ellers vil alt brugerdata gå tabt",
-"Wrong admin recovery password. Please check the password and try again." => "Forkert admin gendannelseskode. Se venligst koden efter og prøv igen.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Serveren understøtter ikke kodeordsskifte, men brugernes krypteringsnøgle blev opdateret.",
-"Unable to change password" => "Kunne ikke ændre kodeord",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "Sikker på at du vil tilføje \"{domain}\" som et domæne du har tiilid til?",
-"Add trusted domain" => "Tilføj et domæne som du har tillid til",
-"Sending..." => "Sender...",
-"All" => "Alle",
-"User Documentation" => "Brugerdokumentation",
-"Admin Documentation" => "Administrator Dokumentation",
-"Update to {appversion}" => "Opdatér til {appversion}",
-"Uninstall App" => "Afinstallér app",
-"Disable" => "Deaktiver",
-"Enable" => "Aktiver",
-"Please wait...." => "Vent venligst...",
-"Error while disabling app" => "Kunne ikke deaktivere app",
-"Error while enabling app" => "Kunne ikke aktivere app",
-"Updating...." => "Opdaterer....",
-"Error while updating app" => "Der opstod en fejl under app opgraderingen",
-"Error" => "Fejl",
-"Update" => "Opdater",
-"Updated" => "Opdateret",
-"Uninstalling ...." => "Afinstallerer...",
-"Error while uninstalling app" => "Fejl under afinstallering af app",
-"Uninstall" => "Afinstallér",
-"Select a profile picture" => "Vælg et profilbillede",
-"Very weak password" => "Meget svagt kodeord",
-"Weak password" => "Svagt kodeord",
-"So-so password" => "Jævnt kodeord",
-"Good password" => "Godt kodeord",
-"Strong password" => "Stærkt kodeord",
-"Valid until {date}" => "Gyldig indtil {date}",
-"Delete" => "Slet",
-"Decrypting files... Please wait, this can take some time." => "Dekryptere filer... Vent venligst, dette kan tage lang tid. ",
-"Delete encryption keys permanently." => "Slet krypteringsnøgler permanent.",
-"Restore encryption keys." => "Genopret krypteringsnøgler.",
-"Groups" => "Grupper",
-"Unable to delete {objName}" => "Kunne ikke slette {objName}",
-"Error creating group" => "Fejl ved oprettelse af gruppe",
-"A valid group name must be provided" => "Et gyldigt gruppenavn skal angives ",
-"deleted {groupName}" => "slettede {groupName}",
-"undo" => "fortryd",
-"Group Admin" => "Gruppe Administrator",
-"never" => "aldrig",
-"deleted {userName}" => "slettede {userName}",
-"add group" => "Tilføj gruppe",
-"A valid username must be provided" => "Et gyldigt brugernavn skal angives",
-"Error creating user" => "Fejl ved oprettelse af bruger",
-"A valid password must be provided" => "En gyldig adgangskode skal angives",
-"Warning: Home directory for user \"{user}\" already exists" => "Advarsel: Hjemmemappen for bruger \"{user}\" findes allerede",
-"__language_name__" => "Dansk",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Alt (alvorlige fejl, fejl, advarsler, info, debug)",
-"Info, warnings, errors and fatal issues" => "Info, advarsler, fejl og alvorlige fejl",
-"Warnings, errors and fatal issues" => "Advarsler, fejl og alvorlige fejl",
-"Errors and fatal issues" => "Fejl og alvorlige fejl",
-"Fatal issues only" => "Kun alvorlige fejl",
-"None" => "Ingen",
-"Login" => "Login",
-"Plain" => "Klartekst",
-"NT LAN Manager" => "NT LAN Manager",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Sikkerhedsadvarsel",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Du tilgår %s via HTTP. Vi anbefaler at du konfigurerer din server til i stedet at kræve HTTPS.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver så data mappen ikke længere er tilgængelig, eller at du flytter data mappen uden for webserverens dokument rod. ",
-"Setup Warning" => "Opsætnings Advarsel",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "PHP opsætning blokere \"inline doc blocks\". dette gør at flere grundlæggende apps utilgængelige",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Dette er sansynligvis forårsaget af et accelerator eller cache som Zend OPcache eller eAccelerator",
-"Database Performance Info" => "Database Performance Oplysninger",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "SQLite er benyttet som database. Ved store installationer anbefaler vi at ændre dette. For at migrere til en anden database benyt 'occ db:convert-type' værktøjet i et kommandovindue.",
-"Module 'fileinfo' missing" => "Module 'fileinfo' mangler",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "PHP modulet 'fileinfo' mangler. Vi anbefaler stærkt at aktivere dette modul til at få de bedste resultater med mime-type detektion.",
-"Your PHP version is outdated" => "Din PHP-version er forældet",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Din PHP-version er forældet. Vi anbefaler at du opgraderer til 5.3.8 eller nyere, fordi ældre versioner har kendte fejl. Det er derfor muligt at installationen ikke fungerer korrekt.",
-"PHP charset is not set to UTF-8" => "PHP-tegnsættet er ikke angivet til UTF-8",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "PHP-tegnsættet er ikke angivet til UTF-8. Denne kan føre til store problemer med tegn som ikke er af typen ASCII i filnavne. Vi anbefaler kraftigt at ændre værdien for 'default_charset' i php.ini til 'UTF-8'.",
-"Locale not working" => "Landestandard fungerer ikke",
-"System locale can not be set to a one which supports UTF-8." => "Systemets locale kan ikke sættes til et der bruger UTF-8.",
-"This means that there might be problems with certain characters in file names." => "Det betyder at der kan være problemer med visse tegn i filnavne.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Vi anbefaler at du installerer den krævede pakke på dit system, for at understøtte følgende locales: %s.",
-"URL generation in notification emails" => "URL-oprettelse i e-mailnotifikationer.",
-"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "Hvis din installation ikke er installeret i roden af domænet, og bruger systemets cron, så kan der være problemer med URL-oprettelsen. For at undgå disse problemer, så angiv tilvalget \"overwritewebroot\" i din fil config.php til webrodens sti for din installation (foreslået værdi: \"%s\")",
-"Connectivity checks" => "Tjek for forbindelsen",
-"No problems found" => "Der blev ikke fundet problemer",
-"Please double check the installation guides ." => "Dobbelttjek venligst installations vejledningerne .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Seneste 'cron' blev kørt %s.",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Seneste 'cron' blev kørt %s. Dette er over en time siden - noget må være galt.",
-"Cron was not executed yet!" => "Cron har ikke kørt endnu!",
-"Execute one task with each page loaded" => "Udføre en opgave med hver side indlæst",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php er registreret til at en webcron service skal kalde cron.php hvert 15 minut over http.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Brug systemets cron service til at kalde cron.php hver 15. minut",
-"Sharing" => "Deling",
-"Allow apps to use the Share API" => "Tillad apps til at bruge Share API",
-"Allow users to share via link" => "Tillad brugere at dele via link",
-"Enforce password protection" => "tving kodeords beskyttelse",
-"Allow public uploads" => "Tillad offentlig upload",
-"Set default expiration date" => "Vælg standard udløbsdato",
-"Expire after " => "Udløber efter",
-"days" => "dage",
-"Enforce expiration date" => "Påtving udløbsdato",
-"Allow resharing" => "Tillad videredeling",
-"Restrict users to only share with users in their groups" => "Begræns brugere til deling med brugere i deres gruppe",
-"Allow users to send mail notification for shared files" => "Tillad brugere at sende mail underretninger for delte filer",
-"Exclude groups from sharing" => "Ekskluder grupper fra at dele",
-"These groups will still be able to receive shares, but not to initiate them." => "Disse grupper vil stadig kunne modtage delefiler, dog ikke skabe dem.",
-"Security" => "Sikkerhed",
-"Enforce HTTPS" => "Gennemtving HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Tving klienten til at forbinde til %s via en kryptetet forbindelse.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Forbind venligst til din %s via HTTPS for at aktivere eller deaktivere SSL tvang.",
-"Email Server" => "E-mailserver",
-"This is used for sending out notifications." => "Dette anvendes til udsendelse af notifikationer.",
-"From address" => "Fra adresse",
-"mail" => "mail",
-"Authentication required" => "Godkendelse påkrævet",
-"Server address" => "Serveradresse",
-"Port" => "Port",
-"Credentials" => "Brugeroplysninger",
-"SMTP Username" => "SMTP Brugernavn",
-"SMTP Password" => "SMTP Kodeord",
-"Test email settings" => "Test e-mail-indstillinger",
-"Send email" => "Send e-mail",
-"Log" => "Log",
-"Log level" => "Log niveau",
-"More" => "Mere",
-"Less" => "Mindre",
-"Version" => "Version",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Udviklet af ownClouds community , og kildekoden er underlagt licensen AGPL .",
-"Add your App" => "Tilføj din App",
-"More Apps" => "Flere Apps",
-"Select an App" => "Vælg en App",
-"Documentation:" => "Dokumentation:",
-"See application page at apps.owncloud.com" => "Se applikationens side på apps.owncloud.com",
-"See application website" => "Se programmets websted",
-" -licensed by " => " -licenseret af ",
-"Enable only for specific groups" => "Aktivér kun for udvalgte grupper",
-"Administrator Documentation" => "Administrator Dokumentation",
-"Online Documentation" => "Online dokumentation",
-"Forum" => "Forum",
-"Bugtracker" => "Bugtracker",
-"Commercial Support" => "Kommerciel support",
-"Get the apps to sync your files" => "Hent applikationerne for at synkronisere dine filer",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Hvis du vil støtte projektet\n\t\tdeltag i udviklingen \n\t\teller\n\t\tspred budskabet !",
-"Show First Run Wizard again" => "Vis Første Kørsels Guiden igen.",
-"You have used %s of the available %s " => "Du har brugt %s af den tilgængelige %s ",
-"Password" => "Kodeord",
-"Your password was changed" => "Din adgangskode blev ændret",
-"Unable to change your password" => "Ude af stand til at ændre dit kodeord",
-"Current password" => "Nuværende adgangskode",
-"New password" => "Nyt kodeord",
-"Change password" => "Skift kodeord",
-"Full Name" => "Fulde navn",
-"Email" => "E-mail",
-"Your email address" => "Din e-mailadresse",
-"Fill in an email address to enable password recovery and receive notifications" => "Angiv en e-mailadresse for at aktivere gendannelse af adgangskode og modtage notifikationer",
-"Profile picture" => "Profilbillede",
-"Upload new" => "Upload nyt",
-"Select new from Files" => "Vælg nyt fra Filer",
-"Remove image" => "Fjern billede",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Enten png eller jpg. Ideelt firkantet men du har mulighed for at beskære det. ",
-"Your avatar is provided by your original account." => "Din avatar kommer fra din oprindelige konto.",
-"Cancel" => "Annuller",
-"Choose as profile image" => "Vælg som profilbillede",
-"Language" => "Sprog",
-"Help translate" => "Hjælp med oversættelsen",
-"SSL root certificates" => "SSL-rodcertifikater",
-"Common Name" => "Almindeligt navn",
-"Valid until" => "Gyldig indtil",
-"Issued By" => "Udstedt af",
-"Valid until %s" => "Gyldig indtil %s",
-"Import Root Certificate" => "Importer rodcertifikat",
-"The encryption app is no longer enabled, please decrypt all your files" => "Krypteringsprogrammet er ikke længere aktiveret. Dekrypter venligst alle dine filer",
-"Log-in password" => "Log-in kodeord",
-"Decrypt all Files" => "Dekrypter alle Filer ",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Din krypteringsmøgler er flyttet til en backup lokation . hvis noget gik galt kan du genskabe nøglerne. Slet kun nøgler permanent hvis du er sikker på at alle filer er dekrypteret korrekt.",
-"Restore Encryption Keys" => "Genopret Krypteringsnøgler",
-"Delete Encryption Keys" => "Slet Krypteringsnøgler",
-"Show storage location" => "Vis placering af lageret",
-"Show last log in" => "Vis seneste login",
-"Login Name" => "Loginnavn",
-"Create" => "Ny",
-"Admin Recovery Password" => "Administrator gendannelse kodeord",
-"Enter the recovery password in order to recover the users files during password change" => "Indtast et gendannelse kodeord for, at kunne gendanne brugerens filer ved ændring af kodeord",
-"Search Users and Groups" => "Søg efter brugere og grupper",
-"Add Group" => "Tilføj Gruppe",
-"Group" => "Gruppe",
-"Everyone" => "Alle",
-"Admins" => "Administratore",
-"Default Quota" => "Standard kvote",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Indtast venligst lagerkvote (f.eks. \"512 MB\" eller \"12 GB\")",
-"Unlimited" => "Ubegrænset",
-"Other" => "Andet",
-"Username" => "Brugernavn",
-"Quota" => "Kvote",
-"Storage Location" => "Placering af lageret",
-"Last Login" => "Seneste login",
-"change full name" => "ændre fulde navn",
-"set new password" => "skift kodeord",
-"Default" => "Standard"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
new file mode 100644
index 00000000000..759c9e6bbb2
--- /dev/null
+++ b/settings/l10n/de.js
@@ -0,0 +1,244 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Sicherheits- & Einrichtungswarnungen",
+ "Cron" : "Cron",
+ "Sharing" : "Teilen",
+ "Security" : "Sicherheit",
+ "Email Server" : "E-Mail-Server",
+ "Log" : "Log",
+ "Authentication error" : "Fehler bei der Anmeldung",
+ "Your full name has been changed." : "Dein vollständiger Name ist geändert worden.",
+ "Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
+ "Group already exists" : "Gruppe existiert bereits",
+ "Unable to add group" : "Gruppe konnte nicht angelegt werden",
+ "Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dateien konnten nicht entschlüsselt werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
+ "Couldn't decrypt your files, check your password and try again" : "Dateien konnten nicht entschlüsselt werden, bitte prüfe Dein Passwort und versuche es erneut.",
+ "Encryption keys deleted permanently" : "Verschlüsselungsschlüssel dauerhaft gelöscht",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht dauerhaft gelöscht werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
+ "Couldn't remove app." : "Die App konnte nicht entfernt werden.",
+ "Email saved" : "E-Mail Adresse gespeichert",
+ "Invalid email" : "Ungültige E-Mail Adresse",
+ "Unable to delete group" : "Gruppe konnte nicht gelöscht werden",
+ "Unable to delete user" : "Benutzer konnte nicht gelöscht werden",
+ "Backups restored successfully" : "Backups erfolgreich wiederhergestellt",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht wiederhergestellt werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
+ "Language changed" : "Sprache geändert",
+ "Invalid request" : "Fehlerhafte Anfrage",
+ "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der Admin-Gruppe löschen.",
+ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
+ "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
+ "Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
+ "Wrong password" : "Falsches Passwort",
+ "No user supplied" : "Keinen Benutzer übermittelt",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Bitte gib ein Wiederherstellungspasswort für das Admin-Konto an, da sonst alle Benutzer Daten verloren gehen können",
+ "Wrong admin recovery password. Please check the password and try again." : "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfe das Passwort und versuche es erneut.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Das Back-End unterstützt die Passwortänderung nicht, aber der Benutzerschlüssel wurde erfolgreich aktualisiert.",
+ "Unable to change password" : "Passwort konnte nicht geändert werden",
+ "Enabled" : "Aktiviert",
+ "Not enabled" : "Nicht aktiviert",
+ "Recommended" : "Empfohlen",
+ "Saved" : "Gespeichert",
+ "test email settings" : "E-Mail-Einstellungen testen",
+ "If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, sind die Einstellungen korrekt.",
+ "A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfe deine Einstellungen.",
+ "Email sent" : "E-Mail wurde verschickt",
+ "You need to set your user email before being able to send test emails." : "Du musst zunächst deine Benutzer-E-Mail-Adresse setzen, bevor du Test-E-Mail verschicken kannst.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist Du dir wirklich sicher, dass Du \"{domain}\" als vertrauenswürdige Domain hinzufügen möchtest?",
+ "Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
+ "Sending..." : "Sende...",
+ "All" : "Alle",
+ "Please wait...." : "Bitte warten...",
+ "Error while disabling app" : "Beim Deaktivieren der Applikation ist ein Fehler aufgetreten",
+ "Disable" : "Deaktivieren",
+ "Enable" : "Aktivieren",
+ "Error while enabling app" : "Beim Aktivieren der Applikation ist ein Fehler aufgetreten",
+ "Updating...." : "Aktualisierung...",
+ "Error while updating app" : "Fehler beim Aktualisieren der App",
+ "Updated" : "Aktualisiert",
+ "Uninstalling ...." : "Deinstalliere ....",
+ "Error while uninstalling app" : "Fehler beim Deinstallieren der App",
+ "Uninstall" : "Deinstallieren",
+ "Select a profile picture" : "Wähle ein Profilbild",
+ "Very weak password" : "Sehr schwaches Passwort",
+ "Weak password" : "Schwaches Passwort",
+ "So-so password" : "Durchschnittliches Passwort",
+ "Good password" : "Gutes Passwort",
+ "Strong password" : "Starkes Passwort",
+ "Valid until {date}" : "Gültig bis {date}",
+ "Delete" : "Löschen",
+ "Decrypting files... Please wait, this can take some time." : "Entschlüssle Dateien ... Bitte warten, denn dieser Vorgang kann einige Zeit beanspruchen.",
+ "Delete encryption keys permanently." : "Verschlüsselungsschlüssel dauerhaft löschen.",
+ "Restore encryption keys." : "Verschlüsselungsschlüssel wiederherstellen.",
+ "Groups" : "Gruppen",
+ "Unable to delete {objName}" : "Löschen von {objName} nicht möglich",
+ "Error creating group" : "Fehler beim Erstellen der Gruppe",
+ "A valid group name must be provided" : "Ein gültiger Gruppenname muss angegeben werden",
+ "deleted {groupName}" : "{groupName} gelöscht",
+ "undo" : "rückgängig machen",
+ "no group" : "Keine Gruppe",
+ "never" : "niemals",
+ "deleted {userName}" : "{userName} gelöscht",
+ "add group" : "Gruppe hinzufügen",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "Error creating user" : "Beim Anlegen des Benutzers ist ein Fehler aufgetreten",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
+ "Warning: Home directory for user \"{user}\" already exists" : "Warnung: Das Benutzerverzeichnis für den Benutzer \"{user}\" existiert bereits",
+ "__language_name__" : "Deutsch (Persönlich)",
+ "Personal Info" : "Persönliche Informationen",
+ "SSL root certificates" : "SSL-Root-Zertifikate",
+ "Encryption" : "Verschlüsselung",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Alles (fatale Probleme, Fehler, Warnungen, Infos, Debug-Meldungen)",
+ "Info, warnings, errors and fatal issues" : "Infos, Warnungen, Fehler und fatale Probleme",
+ "Warnings, errors and fatal issues" : "Warnungen, Fehler und fatale Probleme",
+ "Errors and fatal issues" : "Fehler und fatale Probleme",
+ "Fatal issues only" : "Nur fatale Probleme",
+ "None" : "Nichts",
+ "Login" : "Anmelden",
+ "Plain" : "Plain",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Sicherheitswarnung",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du greifst auf %s via HTTP zu. Wir empfehlen Dir dringend, Deinen Server so konfigurieren, dass stattdessen HTTPS verlangt wird.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Dein Datenverzeichnis und deine Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten dir dringend, dass du deinen Webserver dahingehend konfigurierst, dass dein Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder du verschiebst das Datenverzeichnis ausserhalb des Wurzelverzeichnisses des Webservers.",
+ "Read-Only config enabled" : "Schreibgeschützte Konfiguration aktiviert",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Die schreibgeschützte Konfiguration wurde aktiviert. Dies schützt die Änderung einiger Konfigurationen über die Web-Schnittstelle. Weiterhin muss für die Datei der Schreibzugriff bei jedem Update händisch aktiviert werden.",
+ "Setup Warning" : "Einrichtungswarnung",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie z.B. OPcache oder eAccelerator verursacht.",
+ "Database Performance Info" : "Info zur Datenbankperformance",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite wird als Datenbank verwendet. Für größere Installationen muss dies geändert werden. Zur Migration in eine andere Datenbank muss der Komandozeilenbefehl: 'occ db:convert-type' verwendet werden.",
+ "Module 'fileinfo' missing" : "Modul 'fileinfo' fehlt ",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen dieses Modul zu aktivieren um die besten Resultate bei der Erkennung der Dateitypen zu erreichen.",
+ "Your PHP version is outdated" : "Deine PHP-Version ist veraltet",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Deine PHP-Version ist veraltet. Wir empfehlen dringend auf die Version 5.3.8 oder neuer zu aktualisieren, da ältere Versionen kompromittiert werden können. Es ist möglich, dass diese Installation nicht richtig funktioniert.",
+ "PHP charset is not set to UTF-8" : "PHP-Zeichensatz ist nicht auf UTF-8 gesetzt",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP-Zeichensatz ist nicht auf UTF-8 gesetzt. Dies kann Fehler mit Nicht-ASCII Zeichen in Dateinamen verursachen. Wir empfehlen daher den Wert von 'default_charset' in der php.ini auf 'UTF-8' zu ändern.",
+ "Locale not working" : "Ländereinstellung funktioniert nicht",
+ "System locale can not be set to a one which supports UTF-8." : "Systemgebietsschema kann nicht auf eine UTF-8 unterstützende eingestellt werden.",
+ "This means that there might be problems with certain characters in file names." : "Dies bedeutet, dass Probleme mit bestimmten Zeichen in den Dateinamen geben kann.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.",
+ "URL generation in notification emails" : "URL-Generierung in Mail-Benachrichtungen",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Deine Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setze bitte die \"overwritewebroot\"-Option in Deiner config.php auf das Web-Wurzelverzeichnis Deiner Installation (Vorschlag: \"%s\").",
+ "Connectivity Checks" : "Verbindungsüberprüfungen",
+ "No problems found" : "Keine Probleme gefunden",
+ "Please double check the installation guides ." : "Bitte prüfe die Installationsanleitungen .",
+ "Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Letzter Cron wurde um %s ausgeführt. Dies ist mehr als eine Stunde her, möglicherweise liegt ein Fehler vor.",
+ "Cron was not executed yet!" : "Cron wurde bis jetzt noch nicht ausgeführt!",
+ "Execute one task with each page loaded" : "Führe eine Aufgabe mit jeder geladenen Seite aus",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den System-Crondienst, um die cron.php alle 15 Minuten aufzurufen.",
+ "Allow apps to use the Share API" : "Erlaubt Apps die Nutzung der Share-API",
+ "Allow users to share via link" : "Erlaube Nutzern, mithilfe von Links zu teilen",
+ "Enforce password protection" : "Passwortschutz erzwingen",
+ "Allow public uploads" : "Öffentliches Hochladen erlauben",
+ "Set default expiration date" : "Setze Ablaufdatum",
+ "Expire after " : "Ablauf nach ",
+ "days" : "Tagen",
+ "Enforce expiration date" : "Ablaufdatum erzwingen",
+ "Allow resharing" : "Erlaubt erneutes Teilen",
+ "Restrict users to only share with users in their groups" : "Erlaube Nutzern nur das Teilen in ihrer Gruppe",
+ "Allow users to send mail notification for shared files" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien zu senden",
+ "Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
+ "These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
+ "Enforce HTTPS" : "Erzwinge HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Zwingt die clientseitigen Anwendungen, verschlüsselte Verbindungen zu %s herzustellen.",
+ "Enforce HTTPS for subdomains" : "HTTPS für Subdomains erzwingen",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Zwingt die Clients, sich über eine verschlüsselte Verbindung zu %s und Subdomains zu verbinden.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Bitte verbinde dich zu deinem %s über HTTPS um die SSL-Erzwingung zu aktivieren oder zu deaktivieren.",
+ "This is used for sending out notifications." : "Dies wird zum Senden von Benachrichtigungen verwendet.",
+ "Send mode" : "Sende-Modus",
+ "From address" : "Absender-Adresse",
+ "mail" : "Mail",
+ "Authentication method" : "Authentifizierungsmethode",
+ "Authentication required" : "Authentifizierung benötigt",
+ "Server address" : "Adresse des Servers",
+ "Port" : "Port",
+ "Credentials" : "Zugangsdaten",
+ "SMTP Username" : "SMTP Benutzername",
+ "SMTP Password" : "SMTP Passwort",
+ "Store credentials" : "Anmeldeinformationen speichern",
+ "Test email settings" : "Teste E-Mail-Einstellungen",
+ "Send email" : "Sende E-Mail",
+ "Log level" : "Loglevel",
+ "More" : "Mehr",
+ "Less" : "Weniger",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Entwickelt von der ownCloud-Community , der Quellcode ist unter der AGPL lizenziert.",
+ "More apps" : "Mehr Apps",
+ "Add your app" : "Deine App hinzufügen",
+ "by" : "von",
+ "licensed" : "Lizenziert",
+ "Documentation:" : "Dokumentation:",
+ "User Documentation" : "Dokumentation für Benutzer",
+ "Admin Documentation" : "Admin-Dokumentation",
+ "Update to %s" : "Aktualisierung auf %s",
+ "Enable only for specific groups" : "Nur für spezifizierte Gruppen aktivieren",
+ "Uninstall App" : "App deinstallieren",
+ "Administrator Documentation" : "Dokumentation für Administratoren",
+ "Online Documentation" : "Online-Dokumentation",
+ "Forum" : "Forum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Kommerzieller Support",
+ "Get the apps to sync your files" : "Lade die Apps zur Synchronisierung Deiner Daten herunter",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Wenn Du das Projekt unterstützen möchtest\n\t\tnimm an der Entwicklung teil \n\t\toder\n\t\terreiche die Welt !",
+ "Show First Run Wizard again" : "Erstinstallation erneut durchführen",
+ "You have used %s of the available %s " : "Du verwendest %s der verfügbaren %s ",
+ "Password" : "Passwort",
+ "Your password was changed" : "Dein Passwort wurde geändert.",
+ "Unable to change your password" : "Passwort konnte nicht geändert werden",
+ "Current password" : "Aktuelles Passwort",
+ "New password" : "Neues Passwort",
+ "Change password" : "Passwort ändern",
+ "Full Name" : "Vollständiger Name",
+ "Email" : "E-Mail",
+ "Your email address" : "Deine E-Mail-Adresse",
+ "Fill in an email address to enable password recovery and receive notifications" : "Gib eine E-Mail-Adresse an, um eine Wiederherstellung des Passworts zu ermöglichen und Benachrichtigungen zu empfangen",
+ "Profile picture" : "Profilbild",
+ "Upload new" : "Neues hochladen",
+ "Select new from Files" : "Neues aus den Dateien wählen",
+ "Remove image" : "Bild entfernen",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Entweder PNG oder JPG. Im Idealfall quadratisch, aber du kannst es zuschneiden.",
+ "Your avatar is provided by your original account." : "Dein Avatar wird von Deinem ursprünglichenKonto verwendet.",
+ "Cancel" : "Abbrechen",
+ "Choose as profile image" : "Als Profilbild wählen",
+ "Language" : "Sprache",
+ "Help translate" : "Hilf bei der Übersetzung",
+ "Common Name" : "Zuname",
+ "Valid until" : "Gültig bis",
+ "Issued By" : "Ausgestellt von:",
+ "Valid until %s" : "Gültig bis %s",
+ "Import Root Certificate" : "Root-Zertifikate importieren",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Die Verschlüsselungsanwendung ist nicht länger aktiviert, bitte entschlüsseln Sie alle ihre Daten.",
+ "Log-in password" : "Login-Passwort",
+ "Decrypt all Files" : "Alle Dateien entschlüsseln",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Deine Verschlüsselungsschlüssel wiederherstellen wurden zu einem Backup-Speicherort verschoben. Wenn irgendetwas schief läuft können die Schlüssel wiederhergestellt werden. Lösche diese nur dann dauerhaft, wenn Du dir sicher bist, dass alle Dateien korrekt entschlüsselt wurden.",
+ "Restore Encryption Keys" : "Verschlüsselungsschlüssel wiederherstellen",
+ "Delete Encryption Keys" : "Verschlüsselungsschlüssel löschen",
+ "Show storage location" : "Speicherort anzeigen",
+ "Show last log in" : "Letzte Anmeldung anzeigen",
+ "Username" : "Benutzername",
+ "Create" : "Anlegen",
+ "Admin Recovery Password" : "Admin-Wiederherstellungspasswort",
+ "Enter the recovery password in order to recover the users files during password change" : "Gib das Wiederherstellungspasswort ein, um die Benutzerdateien während Passwortänderung wiederherzustellen",
+ "Search Users" : "Nutzer suchen",
+ "Add Group" : "Gruppe hinzufügen",
+ "Group" : "Gruppe",
+ "Everyone" : "Jeder",
+ "Admins" : "Administratoren",
+ "Default Quota" : "Standard-Quota",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Bitte Speicherkontingent eingeben (z.B.: \"512 MB\" oder \"12 GB\")",
+ "Unlimited" : "Unbegrenzt",
+ "Other" : "Andere",
+ "Group Admin for" : "Gruppenadministrator für",
+ "Quota" : "Quota",
+ "Storage Location" : "Speicherort",
+ "Last Login" : "Letzte Anmeldung",
+ "change full name" : "Vollständigen Namen ändern",
+ "set new password" : "Neues Passwort setzen",
+ "Default" : "Standard"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
new file mode 100644
index 00000000000..10474ed6463
--- /dev/null
+++ b/settings/l10n/de.json
@@ -0,0 +1,242 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Sicherheits- & Einrichtungswarnungen",
+ "Cron" : "Cron",
+ "Sharing" : "Teilen",
+ "Security" : "Sicherheit",
+ "Email Server" : "E-Mail-Server",
+ "Log" : "Log",
+ "Authentication error" : "Fehler bei der Anmeldung",
+ "Your full name has been changed." : "Dein vollständiger Name ist geändert worden.",
+ "Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
+ "Group already exists" : "Gruppe existiert bereits",
+ "Unable to add group" : "Gruppe konnte nicht angelegt werden",
+ "Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dateien konnten nicht entschlüsselt werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
+ "Couldn't decrypt your files, check your password and try again" : "Dateien konnten nicht entschlüsselt werden, bitte prüfe Dein Passwort und versuche es erneut.",
+ "Encryption keys deleted permanently" : "Verschlüsselungsschlüssel dauerhaft gelöscht",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht dauerhaft gelöscht werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
+ "Couldn't remove app." : "Die App konnte nicht entfernt werden.",
+ "Email saved" : "E-Mail Adresse gespeichert",
+ "Invalid email" : "Ungültige E-Mail Adresse",
+ "Unable to delete group" : "Gruppe konnte nicht gelöscht werden",
+ "Unable to delete user" : "Benutzer konnte nicht gelöscht werden",
+ "Backups restored successfully" : "Backups erfolgreich wiederhergestellt",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht wiederhergestellt werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
+ "Language changed" : "Sprache geändert",
+ "Invalid request" : "Fehlerhafte Anfrage",
+ "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der Admin-Gruppe löschen.",
+ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
+ "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
+ "Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
+ "Wrong password" : "Falsches Passwort",
+ "No user supplied" : "Keinen Benutzer übermittelt",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Bitte gib ein Wiederherstellungspasswort für das Admin-Konto an, da sonst alle Benutzer Daten verloren gehen können",
+ "Wrong admin recovery password. Please check the password and try again." : "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfe das Passwort und versuche es erneut.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Das Back-End unterstützt die Passwortänderung nicht, aber der Benutzerschlüssel wurde erfolgreich aktualisiert.",
+ "Unable to change password" : "Passwort konnte nicht geändert werden",
+ "Enabled" : "Aktiviert",
+ "Not enabled" : "Nicht aktiviert",
+ "Recommended" : "Empfohlen",
+ "Saved" : "Gespeichert",
+ "test email settings" : "E-Mail-Einstellungen testen",
+ "If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, sind die Einstellungen korrekt.",
+ "A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfe deine Einstellungen.",
+ "Email sent" : "E-Mail wurde verschickt",
+ "You need to set your user email before being able to send test emails." : "Du musst zunächst deine Benutzer-E-Mail-Adresse setzen, bevor du Test-E-Mail verschicken kannst.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist Du dir wirklich sicher, dass Du \"{domain}\" als vertrauenswürdige Domain hinzufügen möchtest?",
+ "Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
+ "Sending..." : "Sende...",
+ "All" : "Alle",
+ "Please wait...." : "Bitte warten...",
+ "Error while disabling app" : "Beim Deaktivieren der Applikation ist ein Fehler aufgetreten",
+ "Disable" : "Deaktivieren",
+ "Enable" : "Aktivieren",
+ "Error while enabling app" : "Beim Aktivieren der Applikation ist ein Fehler aufgetreten",
+ "Updating...." : "Aktualisierung...",
+ "Error while updating app" : "Fehler beim Aktualisieren der App",
+ "Updated" : "Aktualisiert",
+ "Uninstalling ...." : "Deinstalliere ....",
+ "Error while uninstalling app" : "Fehler beim Deinstallieren der App",
+ "Uninstall" : "Deinstallieren",
+ "Select a profile picture" : "Wähle ein Profilbild",
+ "Very weak password" : "Sehr schwaches Passwort",
+ "Weak password" : "Schwaches Passwort",
+ "So-so password" : "Durchschnittliches Passwort",
+ "Good password" : "Gutes Passwort",
+ "Strong password" : "Starkes Passwort",
+ "Valid until {date}" : "Gültig bis {date}",
+ "Delete" : "Löschen",
+ "Decrypting files... Please wait, this can take some time." : "Entschlüssle Dateien ... Bitte warten, denn dieser Vorgang kann einige Zeit beanspruchen.",
+ "Delete encryption keys permanently." : "Verschlüsselungsschlüssel dauerhaft löschen.",
+ "Restore encryption keys." : "Verschlüsselungsschlüssel wiederherstellen.",
+ "Groups" : "Gruppen",
+ "Unable to delete {objName}" : "Löschen von {objName} nicht möglich",
+ "Error creating group" : "Fehler beim Erstellen der Gruppe",
+ "A valid group name must be provided" : "Ein gültiger Gruppenname muss angegeben werden",
+ "deleted {groupName}" : "{groupName} gelöscht",
+ "undo" : "rückgängig machen",
+ "no group" : "Keine Gruppe",
+ "never" : "niemals",
+ "deleted {userName}" : "{userName} gelöscht",
+ "add group" : "Gruppe hinzufügen",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "Error creating user" : "Beim Anlegen des Benutzers ist ein Fehler aufgetreten",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
+ "Warning: Home directory for user \"{user}\" already exists" : "Warnung: Das Benutzerverzeichnis für den Benutzer \"{user}\" existiert bereits",
+ "__language_name__" : "Deutsch (Persönlich)",
+ "Personal Info" : "Persönliche Informationen",
+ "SSL root certificates" : "SSL-Root-Zertifikate",
+ "Encryption" : "Verschlüsselung",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Alles (fatale Probleme, Fehler, Warnungen, Infos, Debug-Meldungen)",
+ "Info, warnings, errors and fatal issues" : "Infos, Warnungen, Fehler und fatale Probleme",
+ "Warnings, errors and fatal issues" : "Warnungen, Fehler und fatale Probleme",
+ "Errors and fatal issues" : "Fehler und fatale Probleme",
+ "Fatal issues only" : "Nur fatale Probleme",
+ "None" : "Nichts",
+ "Login" : "Anmelden",
+ "Plain" : "Plain",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Sicherheitswarnung",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Du greifst auf %s via HTTP zu. Wir empfehlen Dir dringend, Deinen Server so konfigurieren, dass stattdessen HTTPS verlangt wird.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Dein Datenverzeichnis und deine Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten dir dringend, dass du deinen Webserver dahingehend konfigurierst, dass dein Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder du verschiebst das Datenverzeichnis ausserhalb des Wurzelverzeichnisses des Webservers.",
+ "Read-Only config enabled" : "Schreibgeschützte Konfiguration aktiviert",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Die schreibgeschützte Konfiguration wurde aktiviert. Dies schützt die Änderung einiger Konfigurationen über die Web-Schnittstelle. Weiterhin muss für die Datei der Schreibzugriff bei jedem Update händisch aktiviert werden.",
+ "Setup Warning" : "Einrichtungswarnung",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie z.B. OPcache oder eAccelerator verursacht.",
+ "Database Performance Info" : "Info zur Datenbankperformance",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite wird als Datenbank verwendet. Für größere Installationen muss dies geändert werden. Zur Migration in eine andere Datenbank muss der Komandozeilenbefehl: 'occ db:convert-type' verwendet werden.",
+ "Module 'fileinfo' missing" : "Modul 'fileinfo' fehlt ",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen dieses Modul zu aktivieren um die besten Resultate bei der Erkennung der Dateitypen zu erreichen.",
+ "Your PHP version is outdated" : "Deine PHP-Version ist veraltet",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Deine PHP-Version ist veraltet. Wir empfehlen dringend auf die Version 5.3.8 oder neuer zu aktualisieren, da ältere Versionen kompromittiert werden können. Es ist möglich, dass diese Installation nicht richtig funktioniert.",
+ "PHP charset is not set to UTF-8" : "PHP-Zeichensatz ist nicht auf UTF-8 gesetzt",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP-Zeichensatz ist nicht auf UTF-8 gesetzt. Dies kann Fehler mit Nicht-ASCII Zeichen in Dateinamen verursachen. Wir empfehlen daher den Wert von 'default_charset' in der php.ini auf 'UTF-8' zu ändern.",
+ "Locale not working" : "Ländereinstellung funktioniert nicht",
+ "System locale can not be set to a one which supports UTF-8." : "Systemgebietsschema kann nicht auf eine UTF-8 unterstützende eingestellt werden.",
+ "This means that there might be problems with certain characters in file names." : "Dies bedeutet, dass Probleme mit bestimmten Zeichen in den Dateinamen geben kann.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.",
+ "URL generation in notification emails" : "URL-Generierung in Mail-Benachrichtungen",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Deine Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setze bitte die \"overwritewebroot\"-Option in Deiner config.php auf das Web-Wurzelverzeichnis Deiner Installation (Vorschlag: \"%s\").",
+ "Connectivity Checks" : "Verbindungsüberprüfungen",
+ "No problems found" : "Keine Probleme gefunden",
+ "Please double check the installation guides ." : "Bitte prüfe die Installationsanleitungen .",
+ "Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Letzter Cron wurde um %s ausgeführt. Dies ist mehr als eine Stunde her, möglicherweise liegt ein Fehler vor.",
+ "Cron was not executed yet!" : "Cron wurde bis jetzt noch nicht ausgeführt!",
+ "Execute one task with each page loaded" : "Führe eine Aufgabe mit jeder geladenen Seite aus",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den System-Crondienst, um die cron.php alle 15 Minuten aufzurufen.",
+ "Allow apps to use the Share API" : "Erlaubt Apps die Nutzung der Share-API",
+ "Allow users to share via link" : "Erlaube Nutzern, mithilfe von Links zu teilen",
+ "Enforce password protection" : "Passwortschutz erzwingen",
+ "Allow public uploads" : "Öffentliches Hochladen erlauben",
+ "Set default expiration date" : "Setze Ablaufdatum",
+ "Expire after " : "Ablauf nach ",
+ "days" : "Tagen",
+ "Enforce expiration date" : "Ablaufdatum erzwingen",
+ "Allow resharing" : "Erlaubt erneutes Teilen",
+ "Restrict users to only share with users in their groups" : "Erlaube Nutzern nur das Teilen in ihrer Gruppe",
+ "Allow users to send mail notification for shared files" : "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien zu senden",
+ "Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
+ "These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
+ "Enforce HTTPS" : "Erzwinge HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Zwingt die clientseitigen Anwendungen, verschlüsselte Verbindungen zu %s herzustellen.",
+ "Enforce HTTPS for subdomains" : "HTTPS für Subdomains erzwingen",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Zwingt die Clients, sich über eine verschlüsselte Verbindung zu %s und Subdomains zu verbinden.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Bitte verbinde dich zu deinem %s über HTTPS um die SSL-Erzwingung zu aktivieren oder zu deaktivieren.",
+ "This is used for sending out notifications." : "Dies wird zum Senden von Benachrichtigungen verwendet.",
+ "Send mode" : "Sende-Modus",
+ "From address" : "Absender-Adresse",
+ "mail" : "Mail",
+ "Authentication method" : "Authentifizierungsmethode",
+ "Authentication required" : "Authentifizierung benötigt",
+ "Server address" : "Adresse des Servers",
+ "Port" : "Port",
+ "Credentials" : "Zugangsdaten",
+ "SMTP Username" : "SMTP Benutzername",
+ "SMTP Password" : "SMTP Passwort",
+ "Store credentials" : "Anmeldeinformationen speichern",
+ "Test email settings" : "Teste E-Mail-Einstellungen",
+ "Send email" : "Sende E-Mail",
+ "Log level" : "Loglevel",
+ "More" : "Mehr",
+ "Less" : "Weniger",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Entwickelt von der ownCloud-Community , der Quellcode ist unter der AGPL lizenziert.",
+ "More apps" : "Mehr Apps",
+ "Add your app" : "Deine App hinzufügen",
+ "by" : "von",
+ "licensed" : "Lizenziert",
+ "Documentation:" : "Dokumentation:",
+ "User Documentation" : "Dokumentation für Benutzer",
+ "Admin Documentation" : "Admin-Dokumentation",
+ "Update to %s" : "Aktualisierung auf %s",
+ "Enable only for specific groups" : "Nur für spezifizierte Gruppen aktivieren",
+ "Uninstall App" : "App deinstallieren",
+ "Administrator Documentation" : "Dokumentation für Administratoren",
+ "Online Documentation" : "Online-Dokumentation",
+ "Forum" : "Forum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Kommerzieller Support",
+ "Get the apps to sync your files" : "Lade die Apps zur Synchronisierung Deiner Daten herunter",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Wenn Du das Projekt unterstützen möchtest\n\t\tnimm an der Entwicklung teil \n\t\toder\n\t\terreiche die Welt !",
+ "Show First Run Wizard again" : "Erstinstallation erneut durchführen",
+ "You have used %s of the available %s " : "Du verwendest %s der verfügbaren %s ",
+ "Password" : "Passwort",
+ "Your password was changed" : "Dein Passwort wurde geändert.",
+ "Unable to change your password" : "Passwort konnte nicht geändert werden",
+ "Current password" : "Aktuelles Passwort",
+ "New password" : "Neues Passwort",
+ "Change password" : "Passwort ändern",
+ "Full Name" : "Vollständiger Name",
+ "Email" : "E-Mail",
+ "Your email address" : "Deine E-Mail-Adresse",
+ "Fill in an email address to enable password recovery and receive notifications" : "Gib eine E-Mail-Adresse an, um eine Wiederherstellung des Passworts zu ermöglichen und Benachrichtigungen zu empfangen",
+ "Profile picture" : "Profilbild",
+ "Upload new" : "Neues hochladen",
+ "Select new from Files" : "Neues aus den Dateien wählen",
+ "Remove image" : "Bild entfernen",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Entweder PNG oder JPG. Im Idealfall quadratisch, aber du kannst es zuschneiden.",
+ "Your avatar is provided by your original account." : "Dein Avatar wird von Deinem ursprünglichenKonto verwendet.",
+ "Cancel" : "Abbrechen",
+ "Choose as profile image" : "Als Profilbild wählen",
+ "Language" : "Sprache",
+ "Help translate" : "Hilf bei der Übersetzung",
+ "Common Name" : "Zuname",
+ "Valid until" : "Gültig bis",
+ "Issued By" : "Ausgestellt von:",
+ "Valid until %s" : "Gültig bis %s",
+ "Import Root Certificate" : "Root-Zertifikate importieren",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Die Verschlüsselungsanwendung ist nicht länger aktiviert, bitte entschlüsseln Sie alle ihre Daten.",
+ "Log-in password" : "Login-Passwort",
+ "Decrypt all Files" : "Alle Dateien entschlüsseln",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Deine Verschlüsselungsschlüssel wiederherstellen wurden zu einem Backup-Speicherort verschoben. Wenn irgendetwas schief läuft können die Schlüssel wiederhergestellt werden. Lösche diese nur dann dauerhaft, wenn Du dir sicher bist, dass alle Dateien korrekt entschlüsselt wurden.",
+ "Restore Encryption Keys" : "Verschlüsselungsschlüssel wiederherstellen",
+ "Delete Encryption Keys" : "Verschlüsselungsschlüssel löschen",
+ "Show storage location" : "Speicherort anzeigen",
+ "Show last log in" : "Letzte Anmeldung anzeigen",
+ "Username" : "Benutzername",
+ "Create" : "Anlegen",
+ "Admin Recovery Password" : "Admin-Wiederherstellungspasswort",
+ "Enter the recovery password in order to recover the users files during password change" : "Gib das Wiederherstellungspasswort ein, um die Benutzerdateien während Passwortänderung wiederherzustellen",
+ "Search Users" : "Nutzer suchen",
+ "Add Group" : "Gruppe hinzufügen",
+ "Group" : "Gruppe",
+ "Everyone" : "Jeder",
+ "Admins" : "Administratoren",
+ "Default Quota" : "Standard-Quota",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Bitte Speicherkontingent eingeben (z.B.: \"512 MB\" oder \"12 GB\")",
+ "Unlimited" : "Unbegrenzt",
+ "Other" : "Andere",
+ "Group Admin for" : "Gruppenadministrator für",
+ "Quota" : "Quota",
+ "Storage Location" : "Speicherort",
+ "Last Login" : "Letzte Anmeldung",
+ "change full name" : "Vollständigen Namen ändern",
+ "set new password" : "Neues Passwort setzen",
+ "Default" : "Standard"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/de.php b/settings/l10n/de.php
deleted file mode 100644
index a6ce83fc552..00000000000
--- a/settings/l10n/de.php
+++ /dev/null
@@ -1,239 +0,0 @@
- "Ungültiger Wert für %s übermittelt",
-"Saved" => "Gespeichert",
-"test email settings" => "E-Mail-Einstellungen testen",
-"If you received this email, the settings seem to be correct." => "Wenn Sie diese E-Mail erhalten haben, sind die Einstellungen korrekt.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfe deine Einstellungen",
-"Email sent" => "E-Mail wurde verschickt",
-"You need to set your user email before being able to send test emails." => "Du musst zunächst deine Benutzer-E-Mail-Adresse setzen, bevor du Test-E-Mail verschicken kannst.",
-"Send mode" => "Sende-Modus",
-"Encryption" => "Verschlüsselung",
-"Authentication method" => "Authentifizierungsmethode",
-"Unable to load list from App Store" => "Die Liste der Anwendungen im Store konnte nicht geladen werden.",
-"Authentication error" => "Fehler bei der Anmeldung",
-"Your full name has been changed." => "Dein vollständiger Name ist geändert worden.",
-"Unable to change full name" => "Der vollständige Name konnte nicht geändert werden",
-"Group already exists" => "Gruppe existiert bereits",
-"Unable to add group" => "Gruppe konnte nicht angelegt werden",
-"Files decrypted successfully" => "Dateien erfolgreich entschlüsselt",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Dateien konnten nicht entschlüsselt werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
-"Couldn't decrypt your files, check your password and try again" => "Dateien konnten nicht entschlüsselt werden, bitte prüfe Dein Passwort und versuche es erneut.",
-"Encryption keys deleted permanently" => "Verschlüsselungsschlüssel dauerhaft gelöscht",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Verschlüsselungsschlüssel konnten nicht dauerhaft gelöscht werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
-"Couldn't remove app." => "Die App konnte nicht entfernt werden.",
-"Email saved" => "E-Mail Adresse gespeichert",
-"Invalid email" => "Ungültige E-Mail Adresse",
-"Unable to delete group" => "Gruppe konnte nicht gelöscht werden",
-"Unable to delete user" => "Benutzer konnte nicht gelöscht werden",
-"Backups restored successfully" => "Backups erfolgreich wiederhergestellt",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Verschlüsselungsschlüssel konnten nicht wiederhergestellt werden, prüfe bitte Dein owncloud.log oder frage Deinen Administrator",
-"Language changed" => "Sprache geändert",
-"Invalid request" => "Fehlerhafte Anfrage",
-"Admins can't remove themself from the admin group" => "Administratoren können sich nicht selbst aus der Admin-Gruppe löschen.",
-"Unable to add user to group %s" => "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
-"Unable to remove user from group %s" => "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
-"Couldn't update app." => "Die App konnte nicht aktualisiert werden.",
-"Wrong password" => "Falsches Passwort",
-"No user supplied" => "Keinen Benutzer übermittelt",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Bitte gib ein Wiederherstellungspasswort für das Admin-Konto an, da sonst alle Benutzer Daten verloren gehen können",
-"Wrong admin recovery password. Please check the password and try again." => "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfe das Passwort und versuche es erneut.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Das Back-End unterstützt die Passwortänderung nicht, aber der Benutzerschlüssel wurde erfolgreich aktualisiert.",
-"Unable to change password" => "Passwort konnte nicht geändert werden",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "Bist Du dir wirklich sicher, dass Du \"{domain}\" als vertrauenswürdige Domain hinzufügen möchtest?",
-"Add trusted domain" => "Vertrauenswürdige Domain hinzufügen",
-"Sending..." => "Sende...",
-"All" => "Alle",
-"User Documentation" => "Dokumentation für Benutzer",
-"Admin Documentation" => "Admin-Dokumentation",
-"Update to {appversion}" => "Aktualisiere zu {appversion}",
-"Uninstall App" => "App deinstallieren",
-"Disable" => "Deaktivieren",
-"Enable" => "Aktivieren",
-"Please wait...." => "Bitte warten...",
-"Error while disabling app" => "Beim Deaktivieren der Applikation ist ein Fehler aufgetreten",
-"Error while enabling app" => "Beim Aktivieren der Applikation ist ein Fehler aufgetreten",
-"Updating...." => "Aktualisierung...",
-"Error while updating app" => "Fehler beim Aktualisieren der App",
-"Error" => "Fehler",
-"Update" => "Aktualisierung durchführen",
-"Updated" => "Aktualisiert",
-"Uninstalling ...." => "Deinstalliere ....",
-"Error while uninstalling app" => "Fehler beim Deinstallieren der App",
-"Uninstall" => "Deinstallieren",
-"Select a profile picture" => "Wähle ein Profilbild",
-"Very weak password" => "Sehr schwaches Passwort",
-"Weak password" => "Schwaches Passwort",
-"So-so password" => "Durchschnittliches Passwort",
-"Good password" => "Gutes Passwort",
-"Strong password" => "Starkes Passwort",
-"Valid until {date}" => "Gültig bis {date}",
-"Delete" => "Löschen",
-"Decrypting files... Please wait, this can take some time." => "Entschlüssle Dateien ... Bitte warten, denn dieser Vorgang kann einige Zeit beanspruchen.",
-"Delete encryption keys permanently." => "Verschlüsselungsschlüssel dauerhaft löschen.",
-"Restore encryption keys." => "Verschlüsselungsschlüssel wiederherstellen.",
-"Groups" => "Gruppen",
-"Unable to delete {objName}" => "Löschen von {objName} nicht möglich",
-"Error creating group" => "Fehler beim Erstellen der Gruppe",
-"A valid group name must be provided" => "Ein gültiger Gruppenname muss angegeben werden",
-"deleted {groupName}" => "{groupName} gelöscht",
-"undo" => "rückgängig machen",
-"Group Admin" => "Gruppenadministrator",
-"never" => "niemals",
-"deleted {userName}" => "{userName} gelöscht",
-"add group" => "Gruppe hinzufügen",
-"A valid username must be provided" => "Es muss ein gültiger Benutzername angegeben werden",
-"Error creating user" => "Beim Anlegen des Benutzers ist ein Fehler aufgetreten",
-"A valid password must be provided" => "Es muss ein gültiges Passwort angegeben werden",
-"Warning: Home directory for user \"{user}\" already exists" => "Warnung: Das Benutzerverzeichnis für den Benutzer \"{user}\" existiert bereits",
-"__language_name__" => "Deutsch (Persönlich)",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Alles (fatale Probleme, Fehler, Warnungen, Infos, Debug-Meldungen)",
-"Info, warnings, errors and fatal issues" => "Infos, Warnungen, Fehler und fatale Probleme",
-"Warnings, errors and fatal issues" => "Warnungen, Fehler und fatale Probleme",
-"Errors and fatal issues" => "Fehler und fatale Probleme",
-"Fatal issues only" => "Nur fatale Probleme",
-"None" => "Nichts",
-"Login" => "Anmelden",
-"Plain" => "Plain",
-"NT LAN Manager" => "NT LAN Manager",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Sicherheitswarnung",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Du greifst auf %s via HTTP zu. Wir empfehlen Dir dringend, Deinen Server so konfigurieren, dass stattdessen HTTPS verlangt wird.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Dein Datenverzeichnis und deine Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten dir dringend, dass du deinen Webserver dahingehend konfigurierst, dass dein Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder du verschiebst das Datenverzeichnis ausserhalb des Wurzelverzeichnisses des Webservers.",
-"Setup Warning" => "Einrichtungswarnung",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie z.B. OPcache oder eAccelerator verursacht.",
-"Database Performance Info" => "Info zur Datenbankperformance",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "SQLite wird als Datenbank verwendet. Für größere Installationen muss dies geändert werden. Zur Migration in eine andere Datenbank muss der Komandozeilenbefehl: 'occ db:convert-type' verwendet werden.",
-"Module 'fileinfo' missing" => "Modul 'fileinfo' fehlt ",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen dieses Modul zu aktivieren um die besten Resultate bei der Erkennung der Dateitypen zu erreichen.",
-"Your PHP version is outdated" => "Deine PHP-Version ist veraltet",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Deine PHP-Version ist veraltet. Wir empfehlen dringend auf die Version 5.3.8 oder neuer zu aktualisieren, da ältere Versionen kompromittiert werden können. Es ist möglich, dass diese Installation nicht richtig funktioniert.",
-"PHP charset is not set to UTF-8" => "PHP-Zeichensatz ist nicht auf UTF-8 gesetzt",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "PHP-Zeichensatz ist nicht auf UTF-8 gesetzt. Dies kann Fehler mit Nicht-ASCII Zeichen in Dateinamen verursachen. Wir empfehlen daher den Wert von 'default_charset' in der php.ini auf 'UTF-8' zu ändern.",
-"Locale not working" => "Ländereinstellung funktioniert nicht",
-"System locale can not be set to a one which supports UTF-8." => "Systemgebietsschema kann nicht auf eine UTF-8 unterstützende eingestellt werden.",
-"This means that there might be problems with certain characters in file names." => "Dies bedeutet, dass Probleme mit bestimmten Zeichen in den Dateinamen geben kann.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.",
-"URL generation in notification emails" => "URL-Generierung in Mail-Benachrichtungen",
-"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "Wenn sich Deine Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setze bitte die \"overwritewebroot\"-Option in Deiner config.php auf das Web-Wurzelverzeichnis Deiner Installation (Vorschlag: \"%s\").",
-"Connectivity checks" => "Verbindungsüberprüfungen",
-"No problems found" => "Keine Probleme gefunden",
-"Please double check the installation guides ." => "Bitte prüfe die Installationsanleitungen .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Letzter Cron wurde um %s ausgeführt.",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Letzter Cron wurde um %s ausgeführt. Dies ist mehr als eine Stunde her, möglicherweise liegt ein Fehler vor.",
-"Cron was not executed yet!" => "Cron wurde bis jetzt noch nicht ausgeführt!",
-"Execute one task with each page loaded" => "Führe eine Aufgabe mit jeder geladenen Seite aus",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Benutzen Sie den System-Crondienst, um die cron.php alle 15 Minuten aufzurufen.",
-"Sharing" => "Teilen",
-"Allow apps to use the Share API" => "Erlaubt Apps die Nutzung der Share-API",
-"Allow users to share via link" => "Erlaube Nutzern, mithilfe von Links zu teilen",
-"Enforce password protection" => "Passwortschutz erzwingen",
-"Allow public uploads" => "Öffentliches Hochladen erlauben",
-"Set default expiration date" => "Setze Ablaufdatum",
-"Expire after " => "Ablauf nach ",
-"days" => "Tagen",
-"Enforce expiration date" => "Ablaufdatum erzwingen",
-"Allow resharing" => "Erlaubt erneutes Teilen",
-"Restrict users to only share with users in their groups" => "Erlaube Nutzern nur das Teilen in ihrer Gruppe",
-"Allow users to send mail notification for shared files" => "Benutzern erlauben Mail-Benachrichtigungen für freigegebene Dateien zu senden",
-"Exclude groups from sharing" => "Gruppen von Freigaben ausschließen",
-"These groups will still be able to receive shares, but not to initiate them." => "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
-"Security" => "Sicherheit",
-"Enforce HTTPS" => "Erzwinge HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Zwingt die clientseitigen Anwendungen, verschlüsselte Verbindungen zu %s herzustellen.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Bitte verbinde dich zu deinem %s über HTTPS um die SSL-Erzwingung zu aktivieren oder zu deaktivieren.",
-"Email Server" => "E-Mail-Server",
-"This is used for sending out notifications." => "Dies wird zum Senden von Benachrichtigungen verwendet.",
-"From address" => "Absender-Adresse",
-"mail" => "Mail",
-"Authentication required" => "Authentifizierung benötigt",
-"Server address" => "Adresse des Servers",
-"Port" => "Port",
-"Credentials" => "Zugangsdaten",
-"SMTP Username" => "SMTP Benutzername",
-"SMTP Password" => "SMTP Passwort",
-"Test email settings" => "Teste E-Mail-Einstellungen",
-"Send email" => "Sende E-Mail",
-"Log" => "Log",
-"Log level" => "Loglevel",
-"More" => "Mehr",
-"Less" => "Weniger",
-"Version" => "Version",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Entwickelt von der ownCloud-Community , der Quellcode ist unter der AGPL lizenziert.",
-"Add your App" => "Füge Deine Anwendung hinzu",
-"More Apps" => "Weitere Anwendungen",
-"Select an App" => "Wähle eine Anwendung aus",
-"Documentation:" => "Dokumentation:",
-"See application page at apps.owncloud.com" => "Weitere Anwendungen findest Du auf apps.owncloud.com",
-"See application website" => "Siehe Anwendungs-Website",
-" -licensed by " => " -lizenziert von ",
-"Enable only for specific groups" => "Nur für spezifizierte Gruppen aktivieren",
-"Administrator Documentation" => "Dokumentation für Administratoren",
-"Online Documentation" => "Online-Dokumentation",
-"Forum" => "Forum",
-"Bugtracker" => "Bugtracker",
-"Commercial Support" => "Kommerzieller Support",
-"Get the apps to sync your files" => "Lade die Apps zur Synchronisierung Deiner Daten herunter",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Wenn Du das Projekt unterstützen möchtest\n\t\tnimm an der Entwicklung teil \n\t\toder\n\t\terreiche die Welt !",
-"Show First Run Wizard again" => "Erstinstallation erneut durchführen",
-"You have used %s of the available %s " => "Du verwendest %s der verfügbaren %s ",
-"Password" => "Passwort",
-"Your password was changed" => "Dein Passwort wurde geändert.",
-"Unable to change your password" => "Passwort konnte nicht geändert werden",
-"Current password" => "Aktuelles Passwort",
-"New password" => "Neues Passwort",
-"Change password" => "Passwort ändern",
-"Full Name" => "Vollständiger Name",
-"Email" => "E-Mail",
-"Your email address" => "Deine E-Mail-Adresse",
-"Fill in an email address to enable password recovery and receive notifications" => "Gib eine E-Mail-Adresse an, um eine Wiederherstellung des Passworts zu ermöglichen und Benachrichtigungen zu empfangen",
-"Profile picture" => "Profilbild",
-"Upload new" => "Neues hochladen",
-"Select new from Files" => "Neues aus den Dateien wählen",
-"Remove image" => "Bild entfernen",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Entweder PNG oder JPG. Im Idealfall quadratisch, aber du kannst es zuschneiden.",
-"Your avatar is provided by your original account." => "Dein Avatar wird von Deinem ursprünglichenKonto verwendet.",
-"Cancel" => "Abbrechen",
-"Choose as profile image" => "Als Profilbild wählen",
-"Language" => "Sprache",
-"Help translate" => "Hilf bei der Übersetzung",
-"SSL root certificates" => "SSL-Root-Zertifikate",
-"Common Name" => "Zuname",
-"Valid until" => "Gültig bis",
-"Issued By" => "Ausgestellt von:",
-"Valid until %s" => "Gültig bis %s",
-"Import Root Certificate" => "Root-Zertifikate importieren",
-"The encryption app is no longer enabled, please decrypt all your files" => "Die Verschlüsselungsanwendung ist nicht länger aktiviert, bitte entschlüsseln Sie alle ihre Daten.",
-"Log-in password" => "Login-Passwort",
-"Decrypt all Files" => "Alle Dateien entschlüsseln",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Deine Verschlüsselungsschlüssel wiederherstellen wurden zu einem Backup-Speicherort verschoben. Wenn irgendetwas schief läuft können die Schlüssel wiederhergestellt werden. Lösche diese nur dann dauerhaft, wenn Du dir sicher bist, dass alle Dateien korrekt entschlüsselt wurden.",
-"Restore Encryption Keys" => "Verschlüsselungsschlüssel wiederherstellen",
-"Delete Encryption Keys" => "Verschlüsselungsschlüssel löschen",
-"Show storage location" => "Speicherort anzeigen",
-"Show last log in" => "Letzte Anmeldung anzeigen",
-"Login Name" => "Loginname",
-"Create" => "Anlegen",
-"Admin Recovery Password" => "Admin-Wiederherstellungspasswort",
-"Enter the recovery password in order to recover the users files during password change" => "Gib das Wiederherstellungspasswort ein, um die Benutzerdateien während Passwortänderung wiederherzustellen",
-"Search Users and Groups" => "Nutzer und Gruppen suchen",
-"Add Group" => "Gruppe hinzufügen",
-"Group" => "Gruppe",
-"Everyone" => "Jeder",
-"Admins" => "Administratoren",
-"Default Quota" => "Standard-Quota",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Bitte Speicherkontingent eingeben (z.B.: \"512 MB\" oder \"12 GB\")",
-"Unlimited" => "Unbegrenzt",
-"Other" => "Andere",
-"Username" => "Benutzername",
-"Quota" => "Quota",
-"Storage Location" => "Speicherort",
-"Last Login" => "Letzte Anmeldung",
-"change full name" => "Vollständigen Namen ändern",
-"set new password" => "Neues Passwort setzen",
-"Default" => "Standard"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/de_AT.js b/settings/l10n/de_AT.js
new file mode 100644
index 00000000000..cbec5214387
--- /dev/null
+++ b/settings/l10n/de_AT.js
@@ -0,0 +1,17 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Invalid request" : "Fehlerhafte Anfrage",
+ "Delete" : "Löschen",
+ "never" : "niemals",
+ "__language_name__" : "Deutsch (Österreich)",
+ "Server address" : "Adresse des Servers",
+ "Port" : "Port",
+ "More apps" : "Mehr Apps",
+ "by" : "von",
+ "Password" : "Passwort",
+ "Email" : "E-Mail",
+ "Cancel" : "Abbrechen",
+ "Other" : "Anderes"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/de_AT.json b/settings/l10n/de_AT.json
new file mode 100644
index 00000000000..c47cd69e340
--- /dev/null
+++ b/settings/l10n/de_AT.json
@@ -0,0 +1,15 @@
+{ "translations": {
+ "Invalid request" : "Fehlerhafte Anfrage",
+ "Delete" : "Löschen",
+ "never" : "niemals",
+ "__language_name__" : "Deutsch (Österreich)",
+ "Server address" : "Adresse des Servers",
+ "Port" : "Port",
+ "More apps" : "Mehr Apps",
+ "by" : "von",
+ "Password" : "Passwort",
+ "Email" : "E-Mail",
+ "Cancel" : "Abbrechen",
+ "Other" : "Anderes"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/de_AT.php b/settings/l10n/de_AT.php
deleted file mode 100644
index 34177f8053c..00000000000
--- a/settings/l10n/de_AT.php
+++ /dev/null
@@ -1,15 +0,0 @@
- "Fehlerhafte Anfrage",
-"Error" => "Fehler",
-"Delete" => "Löschen",
-"never" => "niemals",
-"__language_name__" => "Deutsch (Österreich)",
-"Server address" => "Adresse des Servers",
-"Port" => "Port",
-"Password" => "Passwort",
-"Email" => "E-Mail",
-"Cancel" => "Abbrechen",
-"Other" => "Anderes"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/de_CH.js b/settings/l10n/de_CH.js
new file mode 100644
index 00000000000..af913b8d81e
--- /dev/null
+++ b/settings/l10n/de_CH.js
@@ -0,0 +1,102 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Enabled" : "Aktiviert",
+ "Authentication error" : "Authentifizierungs-Fehler",
+ "Group already exists" : "Die Gruppe existiert bereits",
+ "Unable to add group" : "Die Gruppe konnte nicht angelegt werden",
+ "Email saved" : "E-Mail-Adresse gespeichert",
+ "Invalid email" : "Ungültige E-Mail-Adresse",
+ "Unable to delete group" : "Die Gruppe konnte nicht gelöscht werden",
+ "Unable to delete user" : "Der Benutzer konnte nicht gelöscht werden",
+ "Language changed" : "Sprache geändert",
+ "Invalid request" : "Ungültige Anforderung",
+ "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der admin-Gruppe löschen",
+ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
+ "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
+ "Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
+ "Saved" : "Gespeichert",
+ "Email sent" : "Email gesendet",
+ "All" : "Alle",
+ "Please wait...." : "Bitte warten....",
+ "Error while disabling app" : "Fehler während der Deaktivierung der Anwendung",
+ "Disable" : "Deaktivieren",
+ "Enable" : "Aktivieren",
+ "Error while enabling app" : "Fehler während der Aktivierung der Anwendung",
+ "Updating...." : "Update...",
+ "Error while updating app" : "Es ist ein Fehler während des Updates aufgetreten",
+ "Updated" : "Aktualisiert",
+ "Delete" : "Löschen",
+ "Decrypting files... Please wait, this can take some time." : "Entschlüssel Dateien ... Bitte warten Sie, denn dieser Vorgang kann einige Zeit beanspruchen.",
+ "Groups" : "Gruppen",
+ "undo" : "rückgängig machen",
+ "never" : "niemals",
+ "add group" : "Gruppe hinzufügen",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "Error creating user" : "Beim Erstellen des Benutzers ist ein Fehler aufgetreten",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
+ "__language_name__" : "Deutsch (Schweiz)",
+ "SSL root certificates" : "SSL-Root-Zertifikate",
+ "Encryption" : "Verschlüsselung",
+ "Login" : "Anmelden",
+ "Security Warning" : "Sicherheitshinweis",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ihr Datenverzeichnis und Ihre Dateien sind möglicher Weise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis ausserhalb des Wurzelverzeichnisses des Webservers.",
+ "Setup Warning" : "Einrichtungswarnung",
+ "Module 'fileinfo' missing" : "Das Modul 'fileinfo' fehlt",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen Ihnen dieses Modul zu aktivieren, um die besten Resultate bei der Bestimmung der Dateitypen zu erzielen.",
+ "Locale not working" : "Die Lokalisierung funktioniert nicht",
+ "Please double check the installation guides ." : "Bitte prüfen Sie die Installationsanleitungen .",
+ "Cron" : "Cron",
+ "Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden der Seite ausführen",
+ "Sharing" : "Teilen",
+ "Allow apps to use the Share API" : "Anwendungen erlauben, die Share-API zu benutzen",
+ "Allow public uploads" : "Erlaube öffentliches hochladen",
+ "Allow resharing" : "Erlaube Weiterverteilen",
+ "Security" : "Sicherheit",
+ "Enforce HTTPS" : "HTTPS erzwingen",
+ "Forces the clients to connect to %s via an encrypted connection." : "Zwingt die Clients, sich über eine verschlüsselte Verbindung zu %s zu verbinden.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Bitte verbinden Sie sich zu Ihrem %s über HTTPS um die SSL-Erzwingung zu aktivieren oder zu deaktivieren.",
+ "Server address" : "Adresse des Servers",
+ "Port" : "Port",
+ "Log" : "Log",
+ "Log level" : "Log-Level",
+ "More" : "Mehr",
+ "Less" : "Weniger",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Entwickelt von der ownCloud-Community . Der Quellcode ist unter der AGPL lizenziert.",
+ "More apps" : "Mehr Apps",
+ "by" : "von",
+ "User Documentation" : "Dokumentation für Benutzer",
+ "Administrator Documentation" : "Dokumentation für Administratoren",
+ "Online Documentation" : "Online-Dokumentation",
+ "Forum" : "Forum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Kommerzieller Support",
+ "Get the apps to sync your files" : "Installieren Sie die Anwendungen, um Ihre Dateien zu synchronisieren",
+ "Show First Run Wizard again" : "Den Einrichtungsassistenten erneut anzeigen",
+ "You have used %s of the available %s " : "Sie verwenden %s der verfügbaren %s ",
+ "Password" : "Passwort",
+ "Your password was changed" : "Ihr Passwort wurde geändert.",
+ "Unable to change your password" : "Das Passwort konnte nicht geändert werden",
+ "Current password" : "Aktuelles Passwort",
+ "New password" : "Neues Passwort",
+ "Change password" : "Passwort ändern",
+ "Email" : "E-Mail",
+ "Your email address" : "Ihre E-Mail-Adresse",
+ "Cancel" : "Abbrechen",
+ "Language" : "Sprache",
+ "Help translate" : "Helfen Sie bei der Übersetzung",
+ "Import Root Certificate" : "Root-Zertifikate importieren",
+ "Log-in password" : "Login-Passwort",
+ "Decrypt all Files" : "Alle Dateien entschlüsseln",
+ "Login Name" : "Loginname",
+ "Create" : "Erstellen",
+ "Admin Recovery Password" : "Admin-Passwort-Wiederherstellung",
+ "Enter the recovery password in order to recover the users files during password change" : "Geben Sie das Wiederherstellungspasswort ein, um die Benutzerdateien während Passwortänderung wiederherzustellen",
+ "Unlimited" : "Unbegrenzt",
+ "Other" : "Andere",
+ "Username" : "Benutzername",
+ "set new password" : "Neues Passwort setzen",
+ "Default" : "Standard"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/de_CH.json b/settings/l10n/de_CH.json
new file mode 100644
index 00000000000..ad7338d33b1
--- /dev/null
+++ b/settings/l10n/de_CH.json
@@ -0,0 +1,100 @@
+{ "translations": {
+ "Enabled" : "Aktiviert",
+ "Authentication error" : "Authentifizierungs-Fehler",
+ "Group already exists" : "Die Gruppe existiert bereits",
+ "Unable to add group" : "Die Gruppe konnte nicht angelegt werden",
+ "Email saved" : "E-Mail-Adresse gespeichert",
+ "Invalid email" : "Ungültige E-Mail-Adresse",
+ "Unable to delete group" : "Die Gruppe konnte nicht gelöscht werden",
+ "Unable to delete user" : "Der Benutzer konnte nicht gelöscht werden",
+ "Language changed" : "Sprache geändert",
+ "Invalid request" : "Ungültige Anforderung",
+ "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der admin-Gruppe löschen",
+ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
+ "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
+ "Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
+ "Saved" : "Gespeichert",
+ "Email sent" : "Email gesendet",
+ "All" : "Alle",
+ "Please wait...." : "Bitte warten....",
+ "Error while disabling app" : "Fehler während der Deaktivierung der Anwendung",
+ "Disable" : "Deaktivieren",
+ "Enable" : "Aktivieren",
+ "Error while enabling app" : "Fehler während der Aktivierung der Anwendung",
+ "Updating...." : "Update...",
+ "Error while updating app" : "Es ist ein Fehler während des Updates aufgetreten",
+ "Updated" : "Aktualisiert",
+ "Delete" : "Löschen",
+ "Decrypting files... Please wait, this can take some time." : "Entschlüssel Dateien ... Bitte warten Sie, denn dieser Vorgang kann einige Zeit beanspruchen.",
+ "Groups" : "Gruppen",
+ "undo" : "rückgängig machen",
+ "never" : "niemals",
+ "add group" : "Gruppe hinzufügen",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "Error creating user" : "Beim Erstellen des Benutzers ist ein Fehler aufgetreten",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
+ "__language_name__" : "Deutsch (Schweiz)",
+ "SSL root certificates" : "SSL-Root-Zertifikate",
+ "Encryption" : "Verschlüsselung",
+ "Login" : "Anmelden",
+ "Security Warning" : "Sicherheitshinweis",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ihr Datenverzeichnis und Ihre Dateien sind möglicher Weise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis ausserhalb des Wurzelverzeichnisses des Webservers.",
+ "Setup Warning" : "Einrichtungswarnung",
+ "Module 'fileinfo' missing" : "Das Modul 'fileinfo' fehlt",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen Ihnen dieses Modul zu aktivieren, um die besten Resultate bei der Bestimmung der Dateitypen zu erzielen.",
+ "Locale not working" : "Die Lokalisierung funktioniert nicht",
+ "Please double check the installation guides ." : "Bitte prüfen Sie die Installationsanleitungen .",
+ "Cron" : "Cron",
+ "Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden der Seite ausführen",
+ "Sharing" : "Teilen",
+ "Allow apps to use the Share API" : "Anwendungen erlauben, die Share-API zu benutzen",
+ "Allow public uploads" : "Erlaube öffentliches hochladen",
+ "Allow resharing" : "Erlaube Weiterverteilen",
+ "Security" : "Sicherheit",
+ "Enforce HTTPS" : "HTTPS erzwingen",
+ "Forces the clients to connect to %s via an encrypted connection." : "Zwingt die Clients, sich über eine verschlüsselte Verbindung zu %s zu verbinden.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Bitte verbinden Sie sich zu Ihrem %s über HTTPS um die SSL-Erzwingung zu aktivieren oder zu deaktivieren.",
+ "Server address" : "Adresse des Servers",
+ "Port" : "Port",
+ "Log" : "Log",
+ "Log level" : "Log-Level",
+ "More" : "Mehr",
+ "Less" : "Weniger",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Entwickelt von der ownCloud-Community . Der Quellcode ist unter der AGPL lizenziert.",
+ "More apps" : "Mehr Apps",
+ "by" : "von",
+ "User Documentation" : "Dokumentation für Benutzer",
+ "Administrator Documentation" : "Dokumentation für Administratoren",
+ "Online Documentation" : "Online-Dokumentation",
+ "Forum" : "Forum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Kommerzieller Support",
+ "Get the apps to sync your files" : "Installieren Sie die Anwendungen, um Ihre Dateien zu synchronisieren",
+ "Show First Run Wizard again" : "Den Einrichtungsassistenten erneut anzeigen",
+ "You have used %s of the available %s " : "Sie verwenden %s der verfügbaren %s ",
+ "Password" : "Passwort",
+ "Your password was changed" : "Ihr Passwort wurde geändert.",
+ "Unable to change your password" : "Das Passwort konnte nicht geändert werden",
+ "Current password" : "Aktuelles Passwort",
+ "New password" : "Neues Passwort",
+ "Change password" : "Passwort ändern",
+ "Email" : "E-Mail",
+ "Your email address" : "Ihre E-Mail-Adresse",
+ "Cancel" : "Abbrechen",
+ "Language" : "Sprache",
+ "Help translate" : "Helfen Sie bei der Übersetzung",
+ "Import Root Certificate" : "Root-Zertifikate importieren",
+ "Log-in password" : "Login-Passwort",
+ "Decrypt all Files" : "Alle Dateien entschlüsseln",
+ "Login Name" : "Loginname",
+ "Create" : "Erstellen",
+ "Admin Recovery Password" : "Admin-Passwort-Wiederherstellung",
+ "Enter the recovery password in order to recover the users files during password change" : "Geben Sie das Wiederherstellungspasswort ein, um die Benutzerdateien während Passwortänderung wiederherzustellen",
+ "Unlimited" : "Unbegrenzt",
+ "Other" : "Andere",
+ "Username" : "Benutzername",
+ "set new password" : "Neues Passwort setzen",
+ "Default" : "Standard"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/de_CH.php b/settings/l10n/de_CH.php
deleted file mode 100644
index 154a3799f7e..00000000000
--- a/settings/l10n/de_CH.php
+++ /dev/null
@@ -1,108 +0,0 @@
- "Gespeichert",
-"Email sent" => "Email gesendet",
-"Encryption" => "Verschlüsselung",
-"Unable to load list from App Store" => "Die Liste der Anwendungen im Store konnte nicht geladen werden.",
-"Authentication error" => "Authentifizierungs-Fehler",
-"Group already exists" => "Die Gruppe existiert bereits",
-"Unable to add group" => "Die Gruppe konnte nicht angelegt werden",
-"Email saved" => "E-Mail-Adresse gespeichert",
-"Invalid email" => "Ungültige E-Mail-Adresse",
-"Unable to delete group" => "Die Gruppe konnte nicht gelöscht werden",
-"Unable to delete user" => "Der Benutzer konnte nicht gelöscht werden",
-"Language changed" => "Sprache geändert",
-"Invalid request" => "Ungültige Anforderung",
-"Admins can't remove themself from the admin group" => "Administratoren können sich nicht selbst aus der admin-Gruppe löschen",
-"Unable to add user to group %s" => "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
-"Unable to remove user from group %s" => "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
-"Couldn't update app." => "Die App konnte nicht aktualisiert werden.",
-"All" => "Alle",
-"User Documentation" => "Dokumentation für Benutzer",
-"Update to {appversion}" => "Update zu {appversion}",
-"Disable" => "Deaktivieren",
-"Enable" => "Aktivieren",
-"Please wait...." => "Bitte warten....",
-"Error while disabling app" => "Fehler während der Deaktivierung der Anwendung",
-"Error while enabling app" => "Fehler während der Aktivierung der Anwendung",
-"Updating...." => "Update...",
-"Error while updating app" => "Es ist ein Fehler während des Updates aufgetreten",
-"Error" => "Fehler",
-"Update" => "Update durchführen",
-"Updated" => "Aktualisiert",
-"Delete" => "Löschen",
-"Decrypting files... Please wait, this can take some time." => "Entschlüssel Dateien ... Bitte warten Sie, denn dieser Vorgang kann einige Zeit beanspruchen.",
-"Groups" => "Gruppen",
-"undo" => "rückgängig machen",
-"Group Admin" => "Gruppenadministrator",
-"never" => "niemals",
-"add group" => "Gruppe hinzufügen",
-"A valid username must be provided" => "Es muss ein gültiger Benutzername angegeben werden",
-"Error creating user" => "Beim Erstellen des Benutzers ist ein Fehler aufgetreten",
-"A valid password must be provided" => "Es muss ein gültiges Passwort angegeben werden",
-"__language_name__" => "Deutsch (Schweiz)",
-"Login" => "Anmelden",
-"Security Warning" => "Sicherheitshinweis",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Ihr Datenverzeichnis und Ihre Dateien sind möglicher Weise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis ausserhalb des Wurzelverzeichnisses des Webservers.",
-"Setup Warning" => "Einrichtungswarnung",
-"Module 'fileinfo' missing" => "Das Modul 'fileinfo' fehlt",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen Ihnen dieses Modul zu aktivieren, um die besten Resultate bei der Bestimmung der Dateitypen zu erzielen.",
-"Locale not working" => "Die Lokalisierung funktioniert nicht",
-"Please double check the installation guides ." => "Bitte prüfen Sie die Installationsanleitungen .",
-"Cron" => "Cron",
-"Execute one task with each page loaded" => "Eine Aufgabe bei jedem Laden der Seite ausführen",
-"Sharing" => "Teilen",
-"Allow apps to use the Share API" => "Anwendungen erlauben, die Share-API zu benutzen",
-"Allow public uploads" => "Erlaube öffentliches hochladen",
-"Allow resharing" => "Erlaube Weiterverteilen",
-"Security" => "Sicherheit",
-"Enforce HTTPS" => "HTTPS erzwingen",
-"Forces the clients to connect to %s via an encrypted connection." => "Zwingt die Clients, sich über eine verschlüsselte Verbindung zu %s zu verbinden.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Bitte verbinden Sie sich zu Ihrem %s über HTTPS um die SSL-Erzwingung zu aktivieren oder zu deaktivieren.",
-"Server address" => "Adresse des Servers",
-"Port" => "Port",
-"Log" => "Log",
-"Log level" => "Log-Level",
-"More" => "Mehr",
-"Less" => "Weniger",
-"Version" => "Version",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Entwickelt von der ownCloud-Community . Der Quellcode ist unter der AGPL lizenziert.",
-"Add your App" => "Fügen Sie Ihre Anwendung hinzu",
-"More Apps" => "Weitere Anwendungen",
-"Select an App" => "Wählen Sie eine Anwendung aus",
-"See application page at apps.owncloud.com" => "Weitere Anwendungen finden Sie auf apps.owncloud.com",
-" -licensed by " => " -lizenziert von ",
-"Administrator Documentation" => "Dokumentation für Administratoren",
-"Online Documentation" => "Online-Dokumentation",
-"Forum" => "Forum",
-"Bugtracker" => "Bugtracker",
-"Commercial Support" => "Kommerzieller Support",
-"Get the apps to sync your files" => "Installieren Sie die Anwendungen, um Ihre Dateien zu synchronisieren",
-"Show First Run Wizard again" => "Den Einrichtungsassistenten erneut anzeigen",
-"You have used %s of the available %s " => "Sie verwenden %s der verfügbaren %s ",
-"Password" => "Passwort",
-"Your password was changed" => "Ihr Passwort wurde geändert.",
-"Unable to change your password" => "Das Passwort konnte nicht geändert werden",
-"Current password" => "Aktuelles Passwort",
-"New password" => "Neues Passwort",
-"Change password" => "Passwort ändern",
-"Email" => "E-Mail",
-"Your email address" => "Ihre E-Mail-Adresse",
-"Cancel" => "Abbrechen",
-"Language" => "Sprache",
-"Help translate" => "Helfen Sie bei der Übersetzung",
-"SSL root certificates" => "SSL-Root-Zertifikate",
-"Import Root Certificate" => "Root-Zertifikate importieren",
-"Log-in password" => "Login-Passwort",
-"Decrypt all Files" => "Alle Dateien entschlüsseln",
-"Login Name" => "Loginname",
-"Create" => "Erstellen",
-"Admin Recovery Password" => "Admin-Passwort-Wiederherstellung",
-"Enter the recovery password in order to recover the users files during password change" => "Geben Sie das Wiederherstellungspasswort ein, um die Benutzerdateien während Passwortänderung wiederherzustellen",
-"Unlimited" => "Unbegrenzt",
-"Other" => "Andere",
-"Username" => "Benutzername",
-"set new password" => "Neues Passwort setzen",
-"Default" => "Standard"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
new file mode 100644
index 00000000000..8edd91d4c5e
--- /dev/null
+++ b/settings/l10n/de_DE.js
@@ -0,0 +1,244 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Sicherheits- & Einrichtungswarnungen",
+ "Cron" : "Cron",
+ "Sharing" : "Teilen",
+ "Security" : "Sicherheit",
+ "Email Server" : "E-Mail-Server",
+ "Log" : "Log",
+ "Authentication error" : "Authentifizierungs-Fehler",
+ "Your full name has been changed." : "Ihr vollständiger Name ist geändert worden.",
+ "Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
+ "Group already exists" : "Die Gruppe existiert bereits",
+ "Unable to add group" : "Die Gruppe konnte nicht angelegt werden",
+ "Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dateien konnten nicht entschlüsselt werden, prüfen Sie bitte Ihre owncloud.log oder fragen Sie Ihren Administrator",
+ "Couldn't decrypt your files, check your password and try again" : "Dateien konnten nicht entschlüsselt werden, bitte prüfen Sie Ihr Passwort und versuchen Sie es erneut.",
+ "Encryption keys deleted permanently" : "Verschlüsselungsschlüssel dauerhaft gelöscht",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht dauerhaft gelöscht werden, prüfen Sie bitte Ihre owncloud.log oder frage Deinen Administrator",
+ "Couldn't remove app." : "Die App konnte nicht entfernt werden.",
+ "Email saved" : "E-Mail-Adresse gespeichert",
+ "Invalid email" : "Ungültige E-Mail-Adresse",
+ "Unable to delete group" : "Die Gruppe konnte nicht gelöscht werden",
+ "Unable to delete user" : "Der Benutzer konnte nicht gelöscht werden",
+ "Backups restored successfully" : "Sicherungen erfolgreich wiederhergestellt",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht wiederhergestellt werden, prüfen Sie bitte Ihre owncloud.log oder fragen Sie Ihren Administrator",
+ "Language changed" : "Sprache geändert",
+ "Invalid request" : "Ungültige Anforderung",
+ "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der admin-Gruppe löschen",
+ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
+ "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
+ "Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
+ "Wrong password" : "Falsches Passwort",
+ "No user supplied" : "Keinen Benutzer angegeben",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Bitte geben Sie ein Wiederherstellungspasswort für das Admin-Konto an, da sonst alle Benutzerdaten verloren gehen können",
+ "Wrong admin recovery password. Please check the password and try again." : "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfen Sie das Passwort und versuchen Sie es erneut.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Das Hintergrundprogramm unterstützt die Passwortänderung nicht, aber der Benutzerschlüssel wurde erfolgreich aktualisiert.",
+ "Unable to change password" : "Passwort konnte nicht geändert werden",
+ "Enabled" : "Aktiviert",
+ "Not enabled" : "Nicht aktiviert",
+ "Recommended" : "Empfohlen",
+ "Saved" : "Gespeichert",
+ "test email settings" : "E-Mail-Einstellungen testen",
+ "If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, scheinen die Einstellungen richtig zu sein.",
+ "A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfen Sie Ihre Einstellungen.",
+ "Email sent" : "E-Mail gesendet",
+ "You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?",
+ "Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
+ "Sending..." : "Wird gesendet …",
+ "All" : "Alle",
+ "Please wait...." : "Bitte warten....",
+ "Error while disabling app" : "Beim Deaktivieren der Applikation ist ein Fehler aufgetreten",
+ "Disable" : "Deaktivieren",
+ "Enable" : "Aktivieren",
+ "Error while enabling app" : "Beim Aktivieren der Applikation ist ein Fehler aufgetreten",
+ "Updating...." : "Update...",
+ "Error while updating app" : "Es ist ein Fehler während des Updates aufgetreten",
+ "Updated" : "Aktualisiert",
+ "Uninstalling ...." : "Wird deinstalliert …",
+ "Error while uninstalling app" : "Fehler beim Deinstallieren der App",
+ "Uninstall" : "Deinstallieren",
+ "Select a profile picture" : "Wählen Sie ein Profilbild",
+ "Very weak password" : "Sehr schwaches Passwort",
+ "Weak password" : "Schwaches Passwort",
+ "So-so password" : "Passables Passwort",
+ "Good password" : "Gutes Passwort",
+ "Strong password" : "Starkes Passwort",
+ "Valid until {date}" : "Gültig bis {date}",
+ "Delete" : "Löschen",
+ "Decrypting files... Please wait, this can take some time." : "Entschlüssle Dateien ... Bitte warten Sie, denn dieser Vorgang kann einige Zeit beanspruchen.",
+ "Delete encryption keys permanently." : "Verschlüsselungsschlüssel dauerhaft löschen.",
+ "Restore encryption keys." : "Verschlüsselungsschlüssel wiederherstellen.",
+ "Groups" : "Gruppen",
+ "Unable to delete {objName}" : "Löschen von {objName} nicht möglich",
+ "Error creating group" : "Fehler beim Erstellen der Gruppe",
+ "A valid group name must be provided" : "Ein gültiger Gruppenname muss angegeben werden",
+ "deleted {groupName}" : "{groupName} gelöscht",
+ "undo" : "rückgängig machen",
+ "no group" : "Keine Gruppe",
+ "never" : "niemals",
+ "deleted {userName}" : "{userName} gelöscht",
+ "add group" : "Gruppe hinzufügen",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "Error creating user" : "Beim Erstellen des Benutzers ist ein Fehler aufgetreten",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
+ "Warning: Home directory for user \"{user}\" already exists" : "Warnung: Das Benutzerverzeichnis für den Benutzer \"{user}\" existiert bereits",
+ "__language_name__" : "Deutsch (Förmlich: Sie)",
+ "Personal Info" : "Persönliche Informationen",
+ "SSL root certificates" : "SSL-Root-Zertifikate",
+ "Encryption" : "Verschlüsselung",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Alles (fatale Probleme, Fehler, Warnungen, Infos, Fehlerdiagnose)",
+ "Info, warnings, errors and fatal issues" : "Infos, Warnungen, Fehler und fatale Probleme",
+ "Warnings, errors and fatal issues" : "Warnungen, Fehler und fatale Probleme",
+ "Errors and fatal issues" : "Fehler und fatale Probleme",
+ "Fatal issues only" : "Nur kritische Fehler",
+ "None" : "Keine",
+ "Login" : "Anmelden",
+ "Plain" : "Plain",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Sicherheitshinweis",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Sie greifen auf %s via HTTP zu. Wir empfehlen Ihnen dringend, Ihren Server so konfigurieren, dass stattdessen HTTPS verlangt wird.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ihr Datenverzeichnis und Ihre Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis außerhalb des Wurzelverzeichnisses des Webservers.",
+ "Read-Only config enabled" : "Schreibgeschützte Konfiguration aktiviert",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Die schreibgeschützte Konfiguration wurde aktiviert. Dies schützt die Änderung einiger Konfigurationen über die Web-Schnittstelle. Weiterhin muss für die Datei der Schreibzugriff bei jedem Update händisch aktiviert werden.",
+ "Setup Warning" : "Einrichtungswarnung",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie z.B. OPcache oder eAccelerator verursacht.",
+ "Database Performance Info" : "Info zur Datenbankleistung",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite wird als Datenbank verwendet. Für größere Installationen muss das geändert werden. Zur Migration in eine andere Datenbank muss in der Befehlszeile »occ db:convert-type« verwendet werden.",
+ "Module 'fileinfo' missing" : "Das Modul 'fileinfo' fehlt",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen Ihnen dieses Modul zu aktivieren, um die besten Resultate bei der Bestimmung der Dateitypen zu erzielen.",
+ "Your PHP version is outdated" : "Ihre PHP-Version ist veraltet",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Ihre PHP-Version ist veraltet. Wir empfehlen dringend auf die Version 5.3.8 oder neuer zu aktualisieren, da ältere Versionen kompromittiert werden können. Es ist möglich, dass diese Installation nicht richtig funktioniert.",
+ "PHP charset is not set to UTF-8" : "PHP-Zeichensatz ist nicht auf UTF-8 eingestellt",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP-Zeichensatz ist nicht auf UTF-8 eingestellt. Das kann Fehler mit Nicht-ASCII-Zeichen in Dateinamen verursachen. Wir empfehlen daher den Wert von »default_charset« in der php.ini auf »UTF-8« zu ändern.",
+ "Locale not working" : "Die Lokalisierung funktioniert nicht",
+ "System locale can not be set to a one which supports UTF-8." : "Systemgebietsschema kann nicht auf eine UTF-8 unterstützende eingestellt werden.",
+ "This means that there might be problems with certain characters in file names." : "Dieses bedeutet, dass es Probleme mit bestimmten Zeichen in den Dateinamen geben kann.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.",
+ "URL generation in notification emails" : "Adresserstellung in E-Mail-Benachrichtungen",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Ihre Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der Adresserstellung kommen. Um dieses zu verhindern, stellen Sie bitte die »overwritewebroot«-Option in Ihrer config.php auf das Internetwurzelverzeichnis Ihrer Installation (Vorschlag: »%s«).",
+ "Connectivity Checks" : "Verbindungsüberprüfungen",
+ "No problems found" : "Keine Probleme gefunden",
+ "Please double check the installation guides ." : "Bitte prüfen Sie die Installationsanleitungen .",
+ "Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Letzter Cron wurde um %s ausgeführt. Dies ist mehr als eine Stunde her, möglicherweise liegt ein Fehler vor.",
+ "Cron was not executed yet!" : "Cron wurde bis jetzt noch nicht ausgeführt!",
+ "Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden der Seite ausführen",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den System-Crondienst, um die cron.php alle 15 Minuten aufzurufen.",
+ "Allow apps to use the Share API" : "Anwendungen erlauben, die Share-API zu benutzen",
+ "Allow users to share via link" : "Benutzern erlauben, über Links Inhalte freizugeben",
+ "Enforce password protection" : "Passwortschutz erzwingen",
+ "Allow public uploads" : "Öffentliches Hochladen erlauben",
+ "Set default expiration date" : "Standardablaufdatum einstellen",
+ "Expire after " : "Ablauf nach ",
+ "days" : "Tagen",
+ "Enforce expiration date" : "Ablaufdatum erzwingen",
+ "Allow resharing" : "Erlaube Weiterverteilen",
+ "Restrict users to only share with users in their groups" : "Nutzer nur auf das Teilen in ihren Gruppen beschränken",
+ "Allow users to send mail notification for shared files" : "Benutzern erlauben E-Mail-Benachrichtigungen für freigegebene Dateien zu senden",
+ "Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
+ "These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
+ "Enforce HTTPS" : "HTTPS erzwingen",
+ "Forces the clients to connect to %s via an encrypted connection." : "Zwingt die clientseitigen Anwendungen, verschlüsselte Verbindungen zu %s herzustellen.",
+ "Enforce HTTPS for subdomains" : "HTTPS für Subdomains erzwingen",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Zwingt die Clients, sich über eine verschlüsselte Verbindung zu %s und Subdomains zu verbinden.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Bitte verbinden Sie sich zu Ihrem %s über HTTPS um die SSL-Erzwingung zu aktivieren oder zu deaktivieren.",
+ "This is used for sending out notifications." : "Dies wird für das Senden von Benachrichtigungen verwendet.",
+ "Send mode" : "Sendemodus",
+ "From address" : "Absender-Adresse",
+ "mail" : "Mail",
+ "Authentication method" : "Legitimierungsmethode",
+ "Authentication required" : "Authentifizierung benötigt",
+ "Server address" : "Adresse des Servers",
+ "Port" : "Port",
+ "Credentials" : "Zugangsdaten",
+ "SMTP Username" : "SMTP Benutzername",
+ "SMTP Password" : "SMTP Passwort",
+ "Store credentials" : "Anmeldeinformationen speichern",
+ "Test email settings" : "E-Mail-Einstellungen testen",
+ "Send email" : "E-Mail senden",
+ "Log level" : "Log-Level",
+ "More" : "Mehr",
+ "Less" : "Weniger",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Entwickelt von der ownCloud-Community . Der Quellcode ist unter der AGPL lizenziert.",
+ "More apps" : "Mehr Apps",
+ "Add your app" : "Ihre App hinzufügen",
+ "by" : "von",
+ "licensed" : "Lizenziert",
+ "Documentation:" : "Dokumentation:",
+ "User Documentation" : "Dokumentation für Benutzer",
+ "Admin Documentation" : "Dokumentation für Administratoren",
+ "Update to %s" : "Aktualisierung auf %s",
+ "Enable only for specific groups" : "Nur für bestimmte Gruppen aktivieren",
+ "Uninstall App" : "App deinstallieren",
+ "Administrator Documentation" : "Dokumentation für Administratoren",
+ "Online Documentation" : "Online-Dokumentation",
+ "Forum" : "Forum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Kommerzieller Support",
+ "Get the apps to sync your files" : "Installieren Sie die Anwendungen, um Ihre Dateien zu synchronisieren",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Wenn Sie das Projekt unterstützen wollen,\n\t\tkönnen Sie an der Entwicklung teilnehmen \n\t\toder\n\t\tanderen von diesem Projekt berichten !",
+ "Show First Run Wizard again" : "Den Einrichtungsassistenten erneut anzeigen",
+ "You have used %s of the available %s " : "Sie verwenden %s der verfügbaren %s ",
+ "Password" : "Passwort",
+ "Your password was changed" : "Ihr Passwort wurde geändert.",
+ "Unable to change your password" : "Das Passwort konnte nicht geändert werden",
+ "Current password" : "Aktuelles Passwort",
+ "New password" : "Neues Passwort",
+ "Change password" : "Passwort ändern",
+ "Full Name" : "Vollständiger Name",
+ "Email" : "E-Mail",
+ "Your email address" : "Ihre E-Mail-Adresse",
+ "Fill in an email address to enable password recovery and receive notifications" : "Geben Sie eine E-Mail-Adresse an, um eine Wiederherstellung des Passworts zu ermöglichen und Benachrichtigungen zu empfangen",
+ "Profile picture" : "Profilbild",
+ "Upload new" : "Neues hochladen",
+ "Select new from Files" : "Neues aus Dateien wählen",
+ "Remove image" : "Bild entfernen",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Entweder PNG oder JPG. Im Idealfall quadratisch, aber Sie können es zuschneiden.",
+ "Your avatar is provided by your original account." : "Ihr Avatar wird von Ihrem Ursprungskonto verwendet.",
+ "Cancel" : "Abbrechen",
+ "Choose as profile image" : "Als Profilbild wählen",
+ "Language" : "Sprache",
+ "Help translate" : "Helfen Sie bei der Übersetzung",
+ "Common Name" : "Zuname",
+ "Valid until" : "Gültig bis",
+ "Issued By" : "Ausgestellt von:",
+ "Valid until %s" : "Gültig bis %s",
+ "Import Root Certificate" : "Root-Zertifikate importieren",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Die Verschlüsselungsanwendung ist nicht länger aktiv, bitte entschlüsseln Sie alle ihre Daten",
+ "Log-in password" : "Login-Passwort",
+ "Decrypt all Files" : "Alle Dateien entschlüsseln",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Ihre Verschlüsselungsschlüssel wiederherstellen wurden zu einem Backup-Speicherort verschoben. Wenn irgendetwas schief läuft können die Schlüssel wiederhergestellt werden. Löschen Sie diese nur dann dauerhaft, wenn Sie sich sicher sind, dass alle Dateien korrekt entschlüsselt wurden.",
+ "Restore Encryption Keys" : "Verschlüsselungsschlüssel wiederherstellen",
+ "Delete Encryption Keys" : "Verschlüsselungsschlüssel löschen",
+ "Show storage location" : "Speicherort anzeigen",
+ "Show last log in" : "Letzte Anmeldung anzeigen",
+ "Username" : "Benutzername",
+ "Create" : "Erstellen",
+ "Admin Recovery Password" : "Admin-Passwort-Wiederherstellung",
+ "Enter the recovery password in order to recover the users files during password change" : "Geben Sie das Wiederherstellungspasswort ein, um die Benutzerdateien während Passwortänderung wiederherzustellen",
+ "Search Users" : "Nutzer suchen",
+ "Add Group" : "Gruppe hinzufügen",
+ "Group" : "Gruppe",
+ "Everyone" : "Jeder",
+ "Admins" : "Administratoren",
+ "Default Quota" : "Standardkontingent",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Bitte Speicherkontingent eingeben (z.B.: „512 MB“ oder „12 GB“)",
+ "Unlimited" : "Unbegrenzt",
+ "Other" : "Andere",
+ "Group Admin for" : "Gruppenadministrator für",
+ "Quota" : "Kontingent",
+ "Storage Location" : "Speicherort",
+ "Last Login" : "Letzte Anmeldung",
+ "change full name" : "Vollständigen Namen ändern",
+ "set new password" : "Neues Passwort setzen",
+ "Default" : "Standard"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
new file mode 100644
index 00000000000..0259fc2394e
--- /dev/null
+++ b/settings/l10n/de_DE.json
@@ -0,0 +1,242 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Sicherheits- & Einrichtungswarnungen",
+ "Cron" : "Cron",
+ "Sharing" : "Teilen",
+ "Security" : "Sicherheit",
+ "Email Server" : "E-Mail-Server",
+ "Log" : "Log",
+ "Authentication error" : "Authentifizierungs-Fehler",
+ "Your full name has been changed." : "Ihr vollständiger Name ist geändert worden.",
+ "Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
+ "Group already exists" : "Die Gruppe existiert bereits",
+ "Unable to add group" : "Die Gruppe konnte nicht angelegt werden",
+ "Files decrypted successfully" : "Dateien erfolgreich entschlüsselt",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Dateien konnten nicht entschlüsselt werden, prüfen Sie bitte Ihre owncloud.log oder fragen Sie Ihren Administrator",
+ "Couldn't decrypt your files, check your password and try again" : "Dateien konnten nicht entschlüsselt werden, bitte prüfen Sie Ihr Passwort und versuchen Sie es erneut.",
+ "Encryption keys deleted permanently" : "Verschlüsselungsschlüssel dauerhaft gelöscht",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht dauerhaft gelöscht werden, prüfen Sie bitte Ihre owncloud.log oder frage Deinen Administrator",
+ "Couldn't remove app." : "Die App konnte nicht entfernt werden.",
+ "Email saved" : "E-Mail-Adresse gespeichert",
+ "Invalid email" : "Ungültige E-Mail-Adresse",
+ "Unable to delete group" : "Die Gruppe konnte nicht gelöscht werden",
+ "Unable to delete user" : "Der Benutzer konnte nicht gelöscht werden",
+ "Backups restored successfully" : "Sicherungen erfolgreich wiederhergestellt",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Verschlüsselungsschlüssel konnten nicht wiederhergestellt werden, prüfen Sie bitte Ihre owncloud.log oder fragen Sie Ihren Administrator",
+ "Language changed" : "Sprache geändert",
+ "Invalid request" : "Ungültige Anforderung",
+ "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der admin-Gruppe löschen",
+ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
+ "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
+ "Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
+ "Wrong password" : "Falsches Passwort",
+ "No user supplied" : "Keinen Benutzer angegeben",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Bitte geben Sie ein Wiederherstellungspasswort für das Admin-Konto an, da sonst alle Benutzerdaten verloren gehen können",
+ "Wrong admin recovery password. Please check the password and try again." : "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfen Sie das Passwort und versuchen Sie es erneut.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Das Hintergrundprogramm unterstützt die Passwortänderung nicht, aber der Benutzerschlüssel wurde erfolgreich aktualisiert.",
+ "Unable to change password" : "Passwort konnte nicht geändert werden",
+ "Enabled" : "Aktiviert",
+ "Not enabled" : "Nicht aktiviert",
+ "Recommended" : "Empfohlen",
+ "Saved" : "Gespeichert",
+ "test email settings" : "E-Mail-Einstellungen testen",
+ "If you received this email, the settings seem to be correct." : "Wenn Sie diese E-Mail erhalten haben, scheinen die Einstellungen richtig zu sein.",
+ "A problem occurred while sending the email. Please revise your settings." : "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfen Sie Ihre Einstellungen.",
+ "Email sent" : "E-Mail gesendet",
+ "You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?",
+ "Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
+ "Sending..." : "Wird gesendet …",
+ "All" : "Alle",
+ "Please wait...." : "Bitte warten....",
+ "Error while disabling app" : "Beim Deaktivieren der Applikation ist ein Fehler aufgetreten",
+ "Disable" : "Deaktivieren",
+ "Enable" : "Aktivieren",
+ "Error while enabling app" : "Beim Aktivieren der Applikation ist ein Fehler aufgetreten",
+ "Updating...." : "Update...",
+ "Error while updating app" : "Es ist ein Fehler während des Updates aufgetreten",
+ "Updated" : "Aktualisiert",
+ "Uninstalling ...." : "Wird deinstalliert …",
+ "Error while uninstalling app" : "Fehler beim Deinstallieren der App",
+ "Uninstall" : "Deinstallieren",
+ "Select a profile picture" : "Wählen Sie ein Profilbild",
+ "Very weak password" : "Sehr schwaches Passwort",
+ "Weak password" : "Schwaches Passwort",
+ "So-so password" : "Passables Passwort",
+ "Good password" : "Gutes Passwort",
+ "Strong password" : "Starkes Passwort",
+ "Valid until {date}" : "Gültig bis {date}",
+ "Delete" : "Löschen",
+ "Decrypting files... Please wait, this can take some time." : "Entschlüssle Dateien ... Bitte warten Sie, denn dieser Vorgang kann einige Zeit beanspruchen.",
+ "Delete encryption keys permanently." : "Verschlüsselungsschlüssel dauerhaft löschen.",
+ "Restore encryption keys." : "Verschlüsselungsschlüssel wiederherstellen.",
+ "Groups" : "Gruppen",
+ "Unable to delete {objName}" : "Löschen von {objName} nicht möglich",
+ "Error creating group" : "Fehler beim Erstellen der Gruppe",
+ "A valid group name must be provided" : "Ein gültiger Gruppenname muss angegeben werden",
+ "deleted {groupName}" : "{groupName} gelöscht",
+ "undo" : "rückgängig machen",
+ "no group" : "Keine Gruppe",
+ "never" : "niemals",
+ "deleted {userName}" : "{userName} gelöscht",
+ "add group" : "Gruppe hinzufügen",
+ "A valid username must be provided" : "Es muss ein gültiger Benutzername angegeben werden",
+ "Error creating user" : "Beim Erstellen des Benutzers ist ein Fehler aufgetreten",
+ "A valid password must be provided" : "Es muss ein gültiges Passwort angegeben werden",
+ "Warning: Home directory for user \"{user}\" already exists" : "Warnung: Das Benutzerverzeichnis für den Benutzer \"{user}\" existiert bereits",
+ "__language_name__" : "Deutsch (Förmlich: Sie)",
+ "Personal Info" : "Persönliche Informationen",
+ "SSL root certificates" : "SSL-Root-Zertifikate",
+ "Encryption" : "Verschlüsselung",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Alles (fatale Probleme, Fehler, Warnungen, Infos, Fehlerdiagnose)",
+ "Info, warnings, errors and fatal issues" : "Infos, Warnungen, Fehler und fatale Probleme",
+ "Warnings, errors and fatal issues" : "Warnungen, Fehler und fatale Probleme",
+ "Errors and fatal issues" : "Fehler und fatale Probleme",
+ "Fatal issues only" : "Nur kritische Fehler",
+ "None" : "Keine",
+ "Login" : "Anmelden",
+ "Plain" : "Plain",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Sicherheitshinweis",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Sie greifen auf %s via HTTP zu. Wir empfehlen Ihnen dringend, Ihren Server so konfigurieren, dass stattdessen HTTPS verlangt wird.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ihr Datenverzeichnis und Ihre Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis außerhalb des Wurzelverzeichnisses des Webservers.",
+ "Read-Only config enabled" : "Schreibgeschützte Konfiguration aktiviert",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Die schreibgeschützte Konfiguration wurde aktiviert. Dies schützt die Änderung einiger Konfigurationen über die Web-Schnittstelle. Weiterhin muss für die Datei der Schreibzugriff bei jedem Update händisch aktiviert werden.",
+ "Setup Warning" : "Einrichtungswarnung",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie z.B. OPcache oder eAccelerator verursacht.",
+ "Database Performance Info" : "Info zur Datenbankleistung",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite wird als Datenbank verwendet. Für größere Installationen muss das geändert werden. Zur Migration in eine andere Datenbank muss in der Befehlszeile »occ db:convert-type« verwendet werden.",
+ "Module 'fileinfo' missing" : "Das Modul 'fileinfo' fehlt",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen Ihnen dieses Modul zu aktivieren, um die besten Resultate bei der Bestimmung der Dateitypen zu erzielen.",
+ "Your PHP version is outdated" : "Ihre PHP-Version ist veraltet",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Ihre PHP-Version ist veraltet. Wir empfehlen dringend auf die Version 5.3.8 oder neuer zu aktualisieren, da ältere Versionen kompromittiert werden können. Es ist möglich, dass diese Installation nicht richtig funktioniert.",
+ "PHP charset is not set to UTF-8" : "PHP-Zeichensatz ist nicht auf UTF-8 eingestellt",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP-Zeichensatz ist nicht auf UTF-8 eingestellt. Das kann Fehler mit Nicht-ASCII-Zeichen in Dateinamen verursachen. Wir empfehlen daher den Wert von »default_charset« in der php.ini auf »UTF-8« zu ändern.",
+ "Locale not working" : "Die Lokalisierung funktioniert nicht",
+ "System locale can not be set to a one which supports UTF-8." : "Systemgebietsschema kann nicht auf eine UTF-8 unterstützende eingestellt werden.",
+ "This means that there might be problems with certain characters in file names." : "Dieses bedeutet, dass es Probleme mit bestimmten Zeichen in den Dateinamen geben kann.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.",
+ "URL generation in notification emails" : "Adresserstellung in E-Mail-Benachrichtungen",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Ihre Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der Adresserstellung kommen. Um dieses zu verhindern, stellen Sie bitte die »overwritewebroot«-Option in Ihrer config.php auf das Internetwurzelverzeichnis Ihrer Installation (Vorschlag: »%s«).",
+ "Connectivity Checks" : "Verbindungsüberprüfungen",
+ "No problems found" : "Keine Probleme gefunden",
+ "Please double check the installation guides ." : "Bitte prüfen Sie die Installationsanleitungen .",
+ "Last cron was executed at %s." : "Letzter Cron wurde um %s ausgeführt.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Letzter Cron wurde um %s ausgeführt. Dies ist mehr als eine Stunde her, möglicherweise liegt ein Fehler vor.",
+ "Cron was not executed yet!" : "Cron wurde bis jetzt noch nicht ausgeführt!",
+ "Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden der Seite ausführen",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den System-Crondienst, um die cron.php alle 15 Minuten aufzurufen.",
+ "Allow apps to use the Share API" : "Anwendungen erlauben, die Share-API zu benutzen",
+ "Allow users to share via link" : "Benutzern erlauben, über Links Inhalte freizugeben",
+ "Enforce password protection" : "Passwortschutz erzwingen",
+ "Allow public uploads" : "Öffentliches Hochladen erlauben",
+ "Set default expiration date" : "Standardablaufdatum einstellen",
+ "Expire after " : "Ablauf nach ",
+ "days" : "Tagen",
+ "Enforce expiration date" : "Ablaufdatum erzwingen",
+ "Allow resharing" : "Erlaube Weiterverteilen",
+ "Restrict users to only share with users in their groups" : "Nutzer nur auf das Teilen in ihren Gruppen beschränken",
+ "Allow users to send mail notification for shared files" : "Benutzern erlauben E-Mail-Benachrichtigungen für freigegebene Dateien zu senden",
+ "Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
+ "These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
+ "Enforce HTTPS" : "HTTPS erzwingen",
+ "Forces the clients to connect to %s via an encrypted connection." : "Zwingt die clientseitigen Anwendungen, verschlüsselte Verbindungen zu %s herzustellen.",
+ "Enforce HTTPS for subdomains" : "HTTPS für Subdomains erzwingen",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Zwingt die Clients, sich über eine verschlüsselte Verbindung zu %s und Subdomains zu verbinden.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Bitte verbinden Sie sich zu Ihrem %s über HTTPS um die SSL-Erzwingung zu aktivieren oder zu deaktivieren.",
+ "This is used for sending out notifications." : "Dies wird für das Senden von Benachrichtigungen verwendet.",
+ "Send mode" : "Sendemodus",
+ "From address" : "Absender-Adresse",
+ "mail" : "Mail",
+ "Authentication method" : "Legitimierungsmethode",
+ "Authentication required" : "Authentifizierung benötigt",
+ "Server address" : "Adresse des Servers",
+ "Port" : "Port",
+ "Credentials" : "Zugangsdaten",
+ "SMTP Username" : "SMTP Benutzername",
+ "SMTP Password" : "SMTP Passwort",
+ "Store credentials" : "Anmeldeinformationen speichern",
+ "Test email settings" : "E-Mail-Einstellungen testen",
+ "Send email" : "E-Mail senden",
+ "Log level" : "Log-Level",
+ "More" : "Mehr",
+ "Less" : "Weniger",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Entwickelt von der ownCloud-Community . Der Quellcode ist unter der AGPL lizenziert.",
+ "More apps" : "Mehr Apps",
+ "Add your app" : "Ihre App hinzufügen",
+ "by" : "von",
+ "licensed" : "Lizenziert",
+ "Documentation:" : "Dokumentation:",
+ "User Documentation" : "Dokumentation für Benutzer",
+ "Admin Documentation" : "Dokumentation für Administratoren",
+ "Update to %s" : "Aktualisierung auf %s",
+ "Enable only for specific groups" : "Nur für bestimmte Gruppen aktivieren",
+ "Uninstall App" : "App deinstallieren",
+ "Administrator Documentation" : "Dokumentation für Administratoren",
+ "Online Documentation" : "Online-Dokumentation",
+ "Forum" : "Forum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Kommerzieller Support",
+ "Get the apps to sync your files" : "Installieren Sie die Anwendungen, um Ihre Dateien zu synchronisieren",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Wenn Sie das Projekt unterstützen wollen,\n\t\tkönnen Sie an der Entwicklung teilnehmen \n\t\toder\n\t\tanderen von diesem Projekt berichten !",
+ "Show First Run Wizard again" : "Den Einrichtungsassistenten erneut anzeigen",
+ "You have used %s of the available %s " : "Sie verwenden %s der verfügbaren %s ",
+ "Password" : "Passwort",
+ "Your password was changed" : "Ihr Passwort wurde geändert.",
+ "Unable to change your password" : "Das Passwort konnte nicht geändert werden",
+ "Current password" : "Aktuelles Passwort",
+ "New password" : "Neues Passwort",
+ "Change password" : "Passwort ändern",
+ "Full Name" : "Vollständiger Name",
+ "Email" : "E-Mail",
+ "Your email address" : "Ihre E-Mail-Adresse",
+ "Fill in an email address to enable password recovery and receive notifications" : "Geben Sie eine E-Mail-Adresse an, um eine Wiederherstellung des Passworts zu ermöglichen und Benachrichtigungen zu empfangen",
+ "Profile picture" : "Profilbild",
+ "Upload new" : "Neues hochladen",
+ "Select new from Files" : "Neues aus Dateien wählen",
+ "Remove image" : "Bild entfernen",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Entweder PNG oder JPG. Im Idealfall quadratisch, aber Sie können es zuschneiden.",
+ "Your avatar is provided by your original account." : "Ihr Avatar wird von Ihrem Ursprungskonto verwendet.",
+ "Cancel" : "Abbrechen",
+ "Choose as profile image" : "Als Profilbild wählen",
+ "Language" : "Sprache",
+ "Help translate" : "Helfen Sie bei der Übersetzung",
+ "Common Name" : "Zuname",
+ "Valid until" : "Gültig bis",
+ "Issued By" : "Ausgestellt von:",
+ "Valid until %s" : "Gültig bis %s",
+ "Import Root Certificate" : "Root-Zertifikate importieren",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Die Verschlüsselungsanwendung ist nicht länger aktiv, bitte entschlüsseln Sie alle ihre Daten",
+ "Log-in password" : "Login-Passwort",
+ "Decrypt all Files" : "Alle Dateien entschlüsseln",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Ihre Verschlüsselungsschlüssel wiederherstellen wurden zu einem Backup-Speicherort verschoben. Wenn irgendetwas schief läuft können die Schlüssel wiederhergestellt werden. Löschen Sie diese nur dann dauerhaft, wenn Sie sich sicher sind, dass alle Dateien korrekt entschlüsselt wurden.",
+ "Restore Encryption Keys" : "Verschlüsselungsschlüssel wiederherstellen",
+ "Delete Encryption Keys" : "Verschlüsselungsschlüssel löschen",
+ "Show storage location" : "Speicherort anzeigen",
+ "Show last log in" : "Letzte Anmeldung anzeigen",
+ "Username" : "Benutzername",
+ "Create" : "Erstellen",
+ "Admin Recovery Password" : "Admin-Passwort-Wiederherstellung",
+ "Enter the recovery password in order to recover the users files during password change" : "Geben Sie das Wiederherstellungspasswort ein, um die Benutzerdateien während Passwortänderung wiederherzustellen",
+ "Search Users" : "Nutzer suchen",
+ "Add Group" : "Gruppe hinzufügen",
+ "Group" : "Gruppe",
+ "Everyone" : "Jeder",
+ "Admins" : "Administratoren",
+ "Default Quota" : "Standardkontingent",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Bitte Speicherkontingent eingeben (z.B.: „512 MB“ oder „12 GB“)",
+ "Unlimited" : "Unbegrenzt",
+ "Other" : "Andere",
+ "Group Admin for" : "Gruppenadministrator für",
+ "Quota" : "Kontingent",
+ "Storage Location" : "Speicherort",
+ "Last Login" : "Letzte Anmeldung",
+ "change full name" : "Vollständigen Namen ändern",
+ "set new password" : "Neues Passwort setzen",
+ "Default" : "Standard"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/de_DE.php b/settings/l10n/de_DE.php
deleted file mode 100644
index 9435dcf30a9..00000000000
--- a/settings/l10n/de_DE.php
+++ /dev/null
@@ -1,239 +0,0 @@
- "Ungültiger Wert für %s übermittelt",
-"Saved" => "Gespeichert",
-"test email settings" => "E-Mail-Einstellungen testen",
-"If you received this email, the settings seem to be correct." => "Wenn Sie diese E-Mail erhalten haben, scheinen die Einstellungen richtig zu sein.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Ein Problem ist beim Senden der E-Mail aufgetreten. Bitte überprüfen Sie Ihre Einstellungen.",
-"Email sent" => "E-Mail gesendet",
-"You need to set your user email before being able to send test emails." => "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
-"Send mode" => "Sendemodus",
-"Encryption" => "Verschlüsselung",
-"Authentication method" => "Legitimierungsmethode",
-"Unable to load list from App Store" => "Die Liste der Anwendungen im Store konnte nicht geladen werden.",
-"Authentication error" => "Authentifizierungs-Fehler",
-"Your full name has been changed." => "Ihr vollständiger Name ist geändert worden.",
-"Unable to change full name" => "Der vollständige Name konnte nicht geändert werden",
-"Group already exists" => "Die Gruppe existiert bereits",
-"Unable to add group" => "Die Gruppe konnte nicht angelegt werden",
-"Files decrypted successfully" => "Dateien erfolgreich entschlüsselt",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Dateien konnten nicht entschlüsselt werden, prüfen Sie bitte Ihre owncloud.log oder fragen Sie Ihren Administrator",
-"Couldn't decrypt your files, check your password and try again" => "Dateien konnten nicht entschlüsselt werden, bitte prüfen Sie Ihr Passwort und versuchen Sie es erneut.",
-"Encryption keys deleted permanently" => "Verschlüsselungsschlüssel dauerhaft gelöscht",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Verschlüsselungsschlüssel konnten nicht dauerhaft gelöscht werden, prüfen Sie bitte Ihre owncloud.log oder frage Deinen Administrator",
-"Couldn't remove app." => "Die App konnte nicht entfernt werden.",
-"Email saved" => "E-Mail-Adresse gespeichert",
-"Invalid email" => "Ungültige E-Mail-Adresse",
-"Unable to delete group" => "Die Gruppe konnte nicht gelöscht werden",
-"Unable to delete user" => "Der Benutzer konnte nicht gelöscht werden",
-"Backups restored successfully" => "Sicherungen erfolgreich wiederhergestellt",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Verschlüsselungsschlüssel konnten nicht wiederhergestellt werden, prüfen Sie bitte Ihre owncloud.log oder fragen Sie Ihren Administrator",
-"Language changed" => "Sprache geändert",
-"Invalid request" => "Ungültige Anforderung",
-"Admins can't remove themself from the admin group" => "Administratoren können sich nicht selbst aus der admin-Gruppe löschen",
-"Unable to add user to group %s" => "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
-"Unable to remove user from group %s" => "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
-"Couldn't update app." => "Die App konnte nicht aktualisiert werden.",
-"Wrong password" => "Falsches Passwort",
-"No user supplied" => "Keinen Benutzer angegeben",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Bitte geben Sie ein Wiederherstellungspasswort für das Admin-Konto an, da sonst alle Benutzerdaten verloren gehen können",
-"Wrong admin recovery password. Please check the password and try again." => "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfen Sie das Passwort und versuchen Sie es erneut.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Das Hintergrundprogramm unterstützt die Passwortänderung nicht, aber der Benutzerschlüssel wurde erfolgreich aktualisiert.",
-"Unable to change password" => "Passwort konnte nicht geändert werden",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?",
-"Add trusted domain" => "Vertrauenswürdige Domain hinzufügen",
-"Sending..." => "Wird gesendet …",
-"All" => "Alle",
-"User Documentation" => "Dokumentation für Benutzer",
-"Admin Documentation" => "Dokumentation für Administratoren",
-"Update to {appversion}" => "Update zu {appversion}",
-"Uninstall App" => "App deinstallieren",
-"Disable" => "Deaktivieren",
-"Enable" => "Aktivieren",
-"Please wait...." => "Bitte warten....",
-"Error while disabling app" => "Beim Deaktivieren der Applikation ist ein Fehler aufgetreten",
-"Error while enabling app" => "Beim Aktivieren der Applikation ist ein Fehler aufgetreten",
-"Updating...." => "Update...",
-"Error while updating app" => "Es ist ein Fehler während des Updates aufgetreten",
-"Error" => "Fehler",
-"Update" => "Update durchführen",
-"Updated" => "Aktualisiert",
-"Uninstalling ...." => "Wird deinstalliert …",
-"Error while uninstalling app" => "Fehler beim Deinstallieren der App",
-"Uninstall" => "Deinstallieren",
-"Select a profile picture" => "Wählen Sie ein Profilbild",
-"Very weak password" => "Sehr schwaches Passwort",
-"Weak password" => "Schwaches Passwort",
-"So-so password" => "Passables Passwort",
-"Good password" => "Gutes Passwort",
-"Strong password" => "Starkes Passwort",
-"Valid until {date}" => "Gültig bis {date}",
-"Delete" => "Löschen",
-"Decrypting files... Please wait, this can take some time." => "Entschlüssle Dateien ... Bitte warten Sie, denn dieser Vorgang kann einige Zeit beanspruchen.",
-"Delete encryption keys permanently." => "Verschlüsselungsschlüssel dauerhaft löschen.",
-"Restore encryption keys." => "Verschlüsselungsschlüssel wiederherstellen.",
-"Groups" => "Gruppen",
-"Unable to delete {objName}" => "Löschen von {objName} nicht möglich",
-"Error creating group" => "Fehler beim Erstellen der Gruppe",
-"A valid group name must be provided" => "Ein gültiger Gruppenname muss angegeben werden",
-"deleted {groupName}" => "{groupName} gelöscht",
-"undo" => "rückgängig machen",
-"Group Admin" => "Gruppenadministrator",
-"never" => "niemals",
-"deleted {userName}" => "{userName} gelöscht",
-"add group" => "Gruppe hinzufügen",
-"A valid username must be provided" => "Es muss ein gültiger Benutzername angegeben werden",
-"Error creating user" => "Beim Erstellen des Benutzers ist ein Fehler aufgetreten",
-"A valid password must be provided" => "Es muss ein gültiges Passwort angegeben werden",
-"Warning: Home directory for user \"{user}\" already exists" => "Warnung: Das Benutzerverzeichnis für den Benutzer \"{user}\" existiert bereits",
-"__language_name__" => "Deutsch (Förmlich: Sie)",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Alles (fatale Probleme, Fehler, Warnungen, Infos, Fehlerdiagnose)",
-"Info, warnings, errors and fatal issues" => "Infos, Warnungen, Fehler und fatale Probleme",
-"Warnings, errors and fatal issues" => "Warnungen, Fehler und fatale Probleme",
-"Errors and fatal issues" => "Fehler und fatale Probleme",
-"Fatal issues only" => "Nur kritische Fehler",
-"None" => "Keine",
-"Login" => "Anmelden",
-"Plain" => "Plain",
-"NT LAN Manager" => "NT LAN Manager",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Sicherheitshinweis",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Sie greifen auf %s via HTTP zu. Wir empfehlen Ihnen dringend, Ihren Server so konfigurieren, dass stattdessen HTTPS verlangt wird.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Ihr Datenverzeichnis und Ihre Dateien sind möglicherweise aus dem Internet erreichbar. Die .htaccess-Datei funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis außerhalb des Wurzelverzeichnisses des Webservers.",
-"Setup Warning" => "Einrichtungswarnung",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie z.B. OPcache oder eAccelerator verursacht.",
-"Database Performance Info" => "Info zur Datenbankleistung",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "SQLite wird als Datenbank verwendet. Für größere Installationen muss das geändert werden. Zur Migration in eine andere Datenbank muss in der Befehlszeile »occ db:convert-type« verwendet werden.",
-"Module 'fileinfo' missing" => "Das Modul 'fileinfo' fehlt",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "Das PHP-Modul 'fileinfo' fehlt. Wir empfehlen Ihnen dieses Modul zu aktivieren, um die besten Resultate bei der Bestimmung der Dateitypen zu erzielen.",
-"Your PHP version is outdated" => "Ihre PHP-Version ist veraltet",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Ihre PHP-Version ist veraltet. Wir empfehlen dringend auf die Version 5.3.8 oder neuer zu aktualisieren, da ältere Versionen kompromittiert werden können. Es ist möglich, dass diese Installation nicht richtig funktioniert.",
-"PHP charset is not set to UTF-8" => "PHP-Zeichensatz ist nicht auf UTF-8 eingestellt",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "PHP-Zeichensatz ist nicht auf UTF-8 eingestellt. Das kann Fehler mit Nicht-ASCII-Zeichen in Dateinamen verursachen. Wir empfehlen daher den Wert von »default_charset« in der php.ini auf »UTF-8« zu ändern.",
-"Locale not working" => "Die Lokalisierung funktioniert nicht",
-"System locale can not be set to a one which supports UTF-8." => "Systemgebietsschema kann nicht auf eine UTF-8 unterstützende eingestellt werden.",
-"This means that there might be problems with certain characters in file names." => "Dieses bedeutet, dass es Probleme mit bestimmten Zeichen in den Dateinamen geben kann.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Wir empfehlen dringend, die erforderlichen Pakete auf Ihrem System zu installieren, damit eine der folgenden Gebietsschemas unterstützt wird: %s.",
-"URL generation in notification emails" => "Adresserstellung in E-Mail-Benachrichtungen",
-"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "Wenn sich Ihre Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der Adresserstellung kommen. Um dieses zu verhindern, stellen Sie bitte die »overwritewebroot«-Option in Ihrer config.php auf das Internetwurzelverzeichnis Ihrer Installation (Vorschlag: »%s«).",
-"Connectivity checks" => "Verbindungsüberprüfungen",
-"No problems found" => "Keine Probleme gefunden",
-"Please double check the installation guides ." => "Bitte prüfen Sie die Installationsanleitungen .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Letzter Cron wurde um %s ausgeführt.",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Letzter Cron wurde um %s ausgeführt. Dies ist mehr als eine Stunde her, möglicherweise liegt ein Fehler vor.",
-"Cron was not executed yet!" => "Cron wurde bis jetzt noch nicht ausgeführt!",
-"Execute one task with each page loaded" => "Eine Aufgabe bei jedem Laden der Seite ausführen",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Benutzen Sie den System-Crondienst, um die cron.php alle 15 Minuten aufzurufen.",
-"Sharing" => "Teilen",
-"Allow apps to use the Share API" => "Anwendungen erlauben, die Share-API zu benutzen",
-"Allow users to share via link" => "Benutzern erlauben, über Links Inhalte freizugeben",
-"Enforce password protection" => "Passwortschutz erzwingen",
-"Allow public uploads" => "Öffentliches Hochladen erlauben",
-"Set default expiration date" => "Standardablaufdatum einstellen",
-"Expire after " => "Ablauf nach ",
-"days" => "Tagen",
-"Enforce expiration date" => "Ablaufdatum erzwingen",
-"Allow resharing" => "Erlaube Weiterverteilen",
-"Restrict users to only share with users in their groups" => "Nutzer nur auf das Teilen in ihren Gruppen beschränken",
-"Allow users to send mail notification for shared files" => "Benutzern erlauben E-Mail-Benachrichtigungen für freigegebene Dateien zu senden",
-"Exclude groups from sharing" => "Gruppen von Freigaben ausschließen",
-"These groups will still be able to receive shares, but not to initiate them." => "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
-"Security" => "Sicherheit",
-"Enforce HTTPS" => "HTTPS erzwingen",
-"Forces the clients to connect to %s via an encrypted connection." => "Zwingt die clientseitigen Anwendungen, verschlüsselte Verbindungen zu %s herzustellen.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Bitte verbinden Sie sich zu Ihrem %s über HTTPS um die SSL-Erzwingung zu aktivieren oder zu deaktivieren.",
-"Email Server" => "E-Mail-Server",
-"This is used for sending out notifications." => "Dies wird für das Senden von Benachrichtigungen verwendet.",
-"From address" => "Absender-Adresse",
-"mail" => "Mail",
-"Authentication required" => "Authentifizierung benötigt",
-"Server address" => "Adresse des Servers",
-"Port" => "Port",
-"Credentials" => "Zugangsdaten",
-"SMTP Username" => "SMTP Benutzername",
-"SMTP Password" => "SMTP Passwort",
-"Test email settings" => "E-Mail-Einstellungen testen",
-"Send email" => "E-Mail senden",
-"Log" => "Log",
-"Log level" => "Log-Level",
-"More" => "Mehr",
-"Less" => "Weniger",
-"Version" => "Version",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Entwickelt von der ownCloud-Community . Der Quellcode ist unter der AGPL lizenziert.",
-"Add your App" => "Fügen Sie Ihre Anwendung hinzu",
-"More Apps" => "Weitere Anwendungen",
-"Select an App" => "Wählen Sie eine Anwendung aus",
-"Documentation:" => "Dokumentation:",
-"See application page at apps.owncloud.com" => "Weitere Anwendungen finden Sie auf apps.owncloud.com",
-"See application website" => "Siehe Anwendungs-Website",
-" -licensed by " => " -lizenziert von ",
-"Enable only for specific groups" => "Nur für bestimmte Gruppen aktivieren",
-"Administrator Documentation" => "Dokumentation für Administratoren",
-"Online Documentation" => "Online-Dokumentation",
-"Forum" => "Forum",
-"Bugtracker" => "Bugtracker",
-"Commercial Support" => "Kommerzieller Support",
-"Get the apps to sync your files" => "Installieren Sie die Anwendungen, um Ihre Dateien zu synchronisieren",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Wenn Sie das Projekt unterstützen wollen,\n\t\tkönnen Sie an der Entwicklung teilnehmen \n\t\toder\n\t\tanderen von diesem Projekt berichten !",
-"Show First Run Wizard again" => "Den Einrichtungsassistenten erneut anzeigen",
-"You have used %s of the available %s " => "Sie verwenden %s der verfügbaren %s ",
-"Password" => "Passwort",
-"Your password was changed" => "Ihr Passwort wurde geändert.",
-"Unable to change your password" => "Das Passwort konnte nicht geändert werden",
-"Current password" => "Aktuelles Passwort",
-"New password" => "Neues Passwort",
-"Change password" => "Passwort ändern",
-"Full Name" => "Vollständiger Name",
-"Email" => "E-Mail",
-"Your email address" => "Ihre E-Mail-Adresse",
-"Fill in an email address to enable password recovery and receive notifications" => "Geben Sie eine E-Mail-Adresse an, um eine Wiederherstellung des Passworts zu ermöglichen und Benachrichtigungen zu empfangen",
-"Profile picture" => "Profilbild",
-"Upload new" => "Neues hochladen",
-"Select new from Files" => "Neues aus Dateien wählen",
-"Remove image" => "Bild entfernen",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Entweder PNG oder JPG. Im Idealfall quadratisch, aber Sie können es zuschneiden.",
-"Your avatar is provided by your original account." => "Ihr Avatar wird von Ihrem Ursprungskonto verwendet.",
-"Cancel" => "Abbrechen",
-"Choose as profile image" => "Als Profilbild wählen",
-"Language" => "Sprache",
-"Help translate" => "Helfen Sie bei der Übersetzung",
-"SSL root certificates" => "SSL-Root-Zertifikate",
-"Common Name" => "Zuname",
-"Valid until" => "Gültig bis",
-"Issued By" => "Ausgestellt von:",
-"Valid until %s" => "Gültig bis %s",
-"Import Root Certificate" => "Root-Zertifikate importieren",
-"The encryption app is no longer enabled, please decrypt all your files" => "Die Verschlüsselungsanwendung ist nicht länger aktiv, bitte entschlüsseln Sie alle ihre Daten",
-"Log-in password" => "Login-Passwort",
-"Decrypt all Files" => "Alle Dateien entschlüsseln",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Ihre Verschlüsselungsschlüssel wiederherstellen wurden zu einem Backup-Speicherort verschoben. Wenn irgendetwas schief läuft können die Schlüssel wiederhergestellt werden. Löschen Sie diese nur dann dauerhaft, wenn Sie sich sicher sind, dass alle Dateien korrekt entschlüsselt wurden.",
-"Restore Encryption Keys" => "Verschlüsselungsschlüssel wiederherstellen",
-"Delete Encryption Keys" => "Verschlüsselungsschlüssel löschen",
-"Show storage location" => "Speicherort anzeigen",
-"Show last log in" => "Letzte Anmeldung anzeigen",
-"Login Name" => "Loginname",
-"Create" => "Erstellen",
-"Admin Recovery Password" => "Admin-Passwort-Wiederherstellung",
-"Enter the recovery password in order to recover the users files during password change" => "Geben Sie das Wiederherstellungspasswort ein, um die Benutzerdateien während Passwortänderung wiederherzustellen",
-"Search Users and Groups" => "Benutzer und Gruppen suchen",
-"Add Group" => "Gruppe hinzufügen",
-"Group" => "Gruppe",
-"Everyone" => "Jeder",
-"Admins" => "Administratoren",
-"Default Quota" => "Standardkontingent",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Bitte Speicherkontingent eingeben (z.B.: „512 MB“ oder „12 GB“)",
-"Unlimited" => "Unbegrenzt",
-"Other" => "Andere",
-"Username" => "Benutzername",
-"Quota" => "Kontingent",
-"Storage Location" => "Speicherort",
-"Last Login" => "Letzte Anmeldung",
-"change full name" => "Vollständigen Namen ändern",
-"set new password" => "Neues Passwort setzen",
-"Default" => "Standard"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/el.js b/settings/l10n/el.js
new file mode 100644
index 00000000000..149d7ffef0b
--- /dev/null
+++ b/settings/l10n/el.js
@@ -0,0 +1,235 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Προειδοποιήσεις ασφάλειας & ρυθμίσεων",
+ "Cron" : "Cron",
+ "Sharing" : "Διαμοιρασμός",
+ "Security" : "Ασφάλεια",
+ "Email Server" : "Διακομιστής Email",
+ "Log" : "Καταγραφές",
+ "Authentication error" : "Σφάλμα πιστοποίησης",
+ "Your full name has been changed." : "Το πλήρες όνομά σας άλλαξε.",
+ "Unable to change full name" : "Δεν ήταν δυνατή η αλλαγή του πλήρους ονόματός σας",
+ "Group already exists" : "Η ομάδα υπάρχει ήδη",
+ "Unable to add group" : "Αδυναμία προσθήκης ομάδας",
+ "Files decrypted successfully" : "Τα αρχεία αποκρυπτογραφήθηκαν με επιτυχία",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Δεν ήταν δυνατή η αποκρυπτογράφηση των αρχείων, παρακαλώ ελέγξτε το owncloud.log ή ενημερωθείτε από τον διαχειριστή συστημάτων σας",
+ "Couldn't decrypt your files, check your password and try again" : "Δεν ήταν δυνατή η αποκρυπτογράφηση των αρχείων σας, ελέγξτε τον κωδικό πρόσβασής σας και δοκιμάστε πάλι",
+ "Encryption keys deleted permanently" : "Τα κλειδιά κρυπτογράφησης αφαιρέθηκαν οριστικά",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Δεν ήταν δυνατή η οριστική διαγραφή των κλειδιών κρυπτογράφησής σας, παρακαλώ ελέγξτε το owncloud.log ή επικοινωνήστε με τον διαχειριστή σας",
+ "Couldn't remove app." : "Αδυναμία αφαίρεσης εφαρμογής.",
+ "Email saved" : "Το email αποθηκεύτηκε ",
+ "Invalid email" : "Μη έγκυρο email",
+ "Unable to delete group" : "Αδυναμία διαγραφής ομάδας",
+ "Unable to delete user" : "Αδυναμία διαγραφής χρήστη",
+ "Backups restored successfully" : "Η επαναφορά αντιγράφων ασφαλείας έγινε με επιτυχία",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Δεν ήταν δυνατή η επαναφορά των κλειδιών κρυπτογράφησής σας, παρακαλώ ελέγξτε το owncloud.log ή επικοινωνήστε με τον διαχειριστή σας",
+ "Language changed" : "Η γλώσσα άλλαξε",
+ "Invalid request" : "Μη έγκυρο αίτημα",
+ "Admins can't remove themself from the admin group" : "Οι διαχειριστές δεν μπορούν να αφαιρέσουν τους εαυτούς τους από την ομάδα των διαχειριστών",
+ "Unable to add user to group %s" : "Αδυναμία προσθήκη χρήστη στην ομάδα %s",
+ "Unable to remove user from group %s" : "Αδυναμία αφαίρεσης χρήστη από την ομάδα %s",
+ "Couldn't update app." : "Αδυναμία ενημέρωσης εφαρμογής",
+ "Wrong password" : "Εσφαλμένο συνθηματικό",
+ "No user supplied" : "Δεν εισήχθη χρήστης",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Παρακαλώ παρέχετε έναν κωδικό ανάκτησης διαχειριστή, διαφορετικά όλα τα δεδομένα χρήστη θα χαθούν",
+ "Wrong admin recovery password. Please check the password and try again." : "Λάθος κωδικός ανάκτησης διαχειριστή. Παρακαλώ ελέγξτε τον κωδικό και δοκιμάστε ξανά.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Το βασικό πλαίσιο δεν υποστηρίζει αλλαγή κωδικού, αλλά το κλειδί κρυπτογράφησης των χρηστών ενημερώθηκε επιτυχώς.",
+ "Unable to change password" : "Αδυναμία αλλαγής συνθηματικού",
+ "Enabled" : "Ενεργοποιημένο",
+ "Not enabled" : "Μη ενεργοποιημένο",
+ "Recommended" : "Προτείνεται",
+ "Saved" : "Αποθηκεύτηκαν",
+ "test email settings" : "δοκιμή ρυθμίσεων email",
+ "If you received this email, the settings seem to be correct." : "Εάν λάβατε αυτό το email, οι ρυθμίσεις δείχνουν να είναι σωστές.",
+ "A problem occurred while sending the email. Please revise your settings." : "Παρουσιάστηκε ένα σφάλμα κατά την αποστολή του email. Παρακαλώ αναθεωρήστε τις ρυθμίσεις σας.",
+ "Email sent" : "Το Email απεστάλη ",
+ "You need to set your user email before being able to send test emails." : "Πρέπει να ορίσετε το email του χρήστη πριν να είστε σε θέση να στείλετε δοκιμαστικά emails.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Είστε πραγματικά σίγουροι ότι θέλετε να προσθέσετε το \"{domain}\" σαν αξιόπιστη περιοχή;",
+ "Add trusted domain" : "Προσθέστε αξιόπιστη περιοχή",
+ "Sending..." : "Αποστέλεται...",
+ "All" : "Όλες",
+ "Please wait...." : "Παρακαλώ περιμένετε...",
+ "Error while disabling app" : "Σφάλμα κατά την απενεργοποίηση εισόδου",
+ "Disable" : "Απενεργοποίηση",
+ "Enable" : "Ενεργοποίηση",
+ "Error while enabling app" : "Σφάλμα κατά την ενεργοποίηση της εφαρμογής",
+ "Updating...." : "Ενημέρωση...",
+ "Error while updating app" : "Σφάλμα κατά την ενημέρωση της εφαρμογής",
+ "Updated" : "Ενημερώθηκε",
+ "Uninstalling ...." : "Απεγκατάσταση ....",
+ "Error while uninstalling app" : "Σφάλμα κατά την απεγκατάσταση της εφαρμογής",
+ "Uninstall" : "Απεγκατάσταση",
+ "Select a profile picture" : "Επιλογή εικόνας προφίλ",
+ "Very weak password" : "Πολύ αδύναμο συνθηματικό",
+ "Weak password" : "Αδύναμο συνθηματικό",
+ "So-so password" : "Μέτριο συνθηματικό",
+ "Good password" : "Καλό συνθηματικό",
+ "Strong password" : "Δυνατό συνθηματικό",
+ "Valid until {date}" : "Έγκυρο έως {date}",
+ "Delete" : "Διαγραφή",
+ "Decrypting files... Please wait, this can take some time." : "Αποκρυπτογράφηση αρχείων... Παρακαλώ περιμένετε, αυτό μπορεί να πάρει κάποιο χρόνο.",
+ "Delete encryption keys permanently." : "Οριστική διαγραφή των κλειδιων κρυπτογράφησης.",
+ "Restore encryption keys." : "Επαναφορά των κλειδιών κρυπτογράφησης.",
+ "Groups" : "Ομάδες",
+ "Unable to delete {objName}" : "Αδυναμία διαγραφής του {objName}",
+ "Error creating group" : "Σφάλμα δημιουργίας ομάδας",
+ "A valid group name must be provided" : "Πρέπει να δοθεί ένα έγκυρο όνομα ομάδας",
+ "deleted {groupName}" : "διαγραφή {groupName}",
+ "undo" : "αναίρεση",
+ "no group" : "καμια ομάδα",
+ "never" : "ποτέ",
+ "deleted {userName}" : "διαγραφή {userName}",
+ "add group" : "προσθήκη ομάδας",
+ "A valid username must be provided" : "Πρέπει να δοθεί έγκυρο όνομα χρήστη",
+ "Error creating user" : "Σφάλμα δημιουργίας χρήστη",
+ "A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό",
+ "Warning: Home directory for user \"{user}\" already exists" : "Προειδοποίηση: Ο μητρικός κατάλογος του χρήστη \"{user}\" υπάρχει ήδη",
+ "__language_name__" : "__όνομα_γλώσσας__",
+ "Personal Info" : "Προσωπικές Πληροφορίες",
+ "SSL root certificates" : "Πιστοποιητικά SSL root",
+ "Encryption" : "Κρυπτογράφηση",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Όλα (καίρια ζητήματα, σφάλματα, προειδοποιήσεις, πληροφορίες, αποσφαλμάτωση)",
+ "Info, warnings, errors and fatal issues" : "Πληροφορίες, προειδοποιήσεις, σφάλματα και καίρια ζητήματα",
+ "Warnings, errors and fatal issues" : "Προειδοποιήσεις, σφάλματα και καίρια ζητήματα",
+ "Errors and fatal issues" : "Σφάλματα και καίρια ζητήματα",
+ "Fatal issues only" : "Καίρια ζητήματα μόνο",
+ "None" : "Τίποτα",
+ "Login" : "Σύνδεση",
+ "Plain" : "Απλό",
+ "NT LAN Manager" : "Διαχειριστης NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Προειδοποίηση Ασφαλείας",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Έχετε πρόσβαση στο %s μέσω HTTP. Προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας ώστε να απαιτεί χρήση HTTPS αντ' αυτού.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ο κατάλογος δεδομένων και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος δεδομένων να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο δεδομένων έξω από τη ρίζα του καταλόγου του διακομιστή.",
+ "Setup Warning" : "Ρύθμιση Προειδοποίησης",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Ο PHP φαίνεται να είναι ρυθμισμένος ώστε να αφαιρεί μπλοκ εσωτερικών κειμένων (inline doc). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.",
+ "Database Performance Info" : "Πληροφορίες Επίδοσης Βάσης Δεδομένων",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Ως βάση δεδομένων χρησιμοποιείται η SQLite. Για μεγαλύτερες εγκαταστάσεις συνιστούμε να την αλλάξετε. Για να μετακινηθείτε σε μια άλλη βάση δεδομένων χρησιμοποιείστε το εργαλείο γραμμής εντολών: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Η ενοτητα 'fileinfo' λειπει",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Η PHP ενοτητα 'fileinfo' λειπει. Σας συνιστούμε να ενεργοποιήσετε αυτή την ενότητα για να έχετε καλύτερα αποτελέσματα με τον εντοπισμό τύπου MIME. ",
+ "Your PHP version is outdated" : "Η έκδοση PHP είναι απαρχαιωμένη",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Η έκδοση PHP είναι απαρχαιωμένη. Συνιστούμε ανεπιφύλακτα να ενημερώσετε στην 5.3.8 ή νεώτερη καθώς παλαιότερες εκδόσεις είναι γνωστό πως περιέχουν σφάλματα. Είναι πιθανόν ότι αυτή η εγκατάσταση δεν λειτουργεί σωστά.",
+ "PHP charset is not set to UTF-8" : "Το σύνολο χαρακτήρων PHP δεν έχει οριστεί στο UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "Το σύνολο χαρακτήρων PHP δεν έχει οριστεί στο UTF-8. Αυτό μπορεί να προκαλέσει τεράστια ζητήματα με χωρίς-ASCII χαρακτήρες στα ονόματα των αρχείων. Συνιστούμε ανεπιφύλακτα να αλλάξετε την αξία του 'default_charset' php.ini στο 'UTF-8'.",
+ "Locale not working" : "Η μετάφραση δεν δουλεύει",
+ "System locale can not be set to a one which supports UTF-8." : "Οι ρυθμίσεις τοποθεσίας συστήματος δεν μπορούν να οριστούν σε κάποιες που δεν υποστηρίζουν UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Αυτό σημαίνει ότι μπορεί να υπάρχουν προβλήματα με κάποιους χαρακτήρες στα ονόματα αρχείων.",
+ "URL generation in notification emails" : "Δημιουργία URL στις ειδοποιήσεις ηλεκτρονικού ταχυδρομείου",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Αν η εγκατάστασή σας δεν είναι εγκατεστημένη στη ρίζα της περιοχής και χρησιμοποιεί το cron του συστήματος, μπορεί να υπάρξουν ζητήματα με τη δημιουργία URL. Για να αποφύγετε αυτά τα προβλήματα, παρακαλώ ρυθμίστε την επιλογή \"overwritewebroot\" στον config.php φάκελό σας στη διαδρομή webroot της εγκατάστασής σας (Suggested: \"%s\")",
+ "No problems found" : "Δεν βρέθηκαν προβλήματα",
+ "Please double check the installation guides ." : "Ελέγξτε ξανά τις οδηγίες εγκατάστασης .",
+ "Last cron was executed at %s." : "Η τελευταία εκτέλεση του cron ήταν στις %s",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Η τελευταία εκτέλεση του cron ήταν στις %s. Αυτό είναι πάνω από μια ώρα πριν, ίσως κάτι δεν πάει καλά.",
+ "Cron was not executed yet!" : "Η διεργασία cron δεν έχει εκτελεστεί ακόμα!",
+ "Execute one task with each page loaded" : "Εκτελεί μια διεργασία κάθε φορά που φορτώνεται μια σελίδα",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Το cron.php είναι καταχωρημένο σε μια υπηρεσία webcron ώστε να καλεί το cron.php κάθε 15 λεπτά μέσω http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Χρησιμοποιήστε την cron υπηρεσία του συτήματος για να καλέσετε το cron.php αρχείο κάθε 15 λεπτά.",
+ "Allow apps to use the Share API" : "Επιτρέπει την χρήση του API διαμοιρασμού σε εφαρμογές ",
+ "Allow users to share via link" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μέσω συνδέσμου",
+ "Enforce password protection" : "Επιβολή προστασίας με κωδικό",
+ "Allow public uploads" : "Επιτρέπεται το κοινόχρηστο ανέβασμα",
+ "Set default expiration date" : "Ορισμός ερήμην ημερομηνίας λήξης",
+ "Expire after " : "Λήξη μετά από",
+ "days" : "ημέρες",
+ "Enforce expiration date" : "Επιβολή της ημερομηνίας λήξης",
+ "Allow resharing" : "Επιτρέπεται ο επαναδιαμοιρασμός",
+ "Restrict users to only share with users in their groups" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μόνο με χρήστες που ανήκουν στις ομάδες τους",
+ "Allow users to send mail notification for shared files" : "Επιτρέψτε στους χρήστες να στέλνουν ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου για κοινόχρηστα αρχεία",
+ "Exclude groups from sharing" : "Εξαίρεση ομάδων από τον διαμοιρασμό",
+ "These groups will still be able to receive shares, but not to initiate them." : "Αυτές οι ομάδες θα συνεχίσουν να λαμβάνουν διαμοιρασμούς, αλλά δεν θα είναι δυνατό να τους δημιουργήσουν.",
+ "Enforce HTTPS" : "Επιβολή χρήσης HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Επιβάλλει τους πελάτες να συνδέονται στο %s μέσω κρυπτογραφημένης σύνδεσης.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Παρακαλώ συνδεθείτε στο %s σας μέσω HTTPS για να ενεργοποιήσετε ή να απενεργοποιήσετε την επιβολή του SSL.",
+ "This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.",
+ "Send mode" : "Κατάσταση αποστολής",
+ "From address" : "Από τη διεύθυνση",
+ "mail" : "ταχυδρομείο",
+ "Authentication method" : "Μέθοδος πιστοποίησης",
+ "Authentication required" : "Απαιτείται πιστοποίηση",
+ "Server address" : "Διεύθυνση διακομιστή",
+ "Port" : "Θύρα",
+ "Credentials" : "Πιστοποιητικά",
+ "SMTP Username" : "Όνομα χρήστη SMTP",
+ "SMTP Password" : "Συνθηματικό SMTP",
+ "Store credentials" : "Διαπιστευτήρια αποθήκευσης",
+ "Test email settings" : "Δοκιμή ρυθμίσεων email",
+ "Send email" : "Αποστολή email",
+ "Log level" : "Επίπεδο καταγραφής",
+ "More" : "Περισσότερα",
+ "Less" : "Λιγότερα",
+ "Version" : "Έκδοση",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Αναπτύχθηκε από την κοινότητα ownCloud . Ο πηγαίος κώδικας είναι υπό άδεια χρήσης AGPL .",
+ "More apps" : "Περισσότερες εφαρμογές",
+ "Add your app" : "Προσθέστε την Εφαρμογή σας ",
+ "by" : "από",
+ "Documentation:" : "Τεκμηρίωση:",
+ "User Documentation" : "Τεκμηρίωση Χρήστη",
+ "Admin Documentation" : "Τεκμηρίωση Διαχειριστή",
+ "Update to %s" : "Ενημέρωση σε %s",
+ "Enable only for specific groups" : "Ενεργοποίηση μόνο για καθορισμένες ομάδες",
+ "Uninstall App" : "Απεγκατάσταση Εφαρμογής",
+ "Administrator Documentation" : "Τεκμηρίωση Διαχειριστή",
+ "Online Documentation" : "Τεκμηρίωση στο Διαδίκτυο",
+ "Forum" : "Φόρουμ",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Εμπορική Υποστήριξη",
+ "Get the apps to sync your files" : "Λήψη της εφαρμογής για συγχρονισμό των αρχείων σας",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Αν θέλετε να στηρίξετε το έργο\n\n⇥⇥συνησφέρετε στην ανάπτυξη \n\n⇥⇥ή\n\n⇥⇥διαδώστε το !",
+ "Show First Run Wizard again" : "Προβολή Οδηγού Πρώτης Εκτέλεσης ξανά",
+ "You have used %s of the available %s " : "Χρησιμοποιήσατε %s από τα %s διαθέσιμα",
+ "Password" : "Συνθηματικό",
+ "Your password was changed" : "Το συνθηματικό σας έχει αλλάξει",
+ "Unable to change your password" : "Δεν ήταν δυνατή η αλλαγή του κωδικού πρόσβασης",
+ "Current password" : "Τρέχων συνθηματικό",
+ "New password" : "Νέο συνθηματικό",
+ "Change password" : "Αλλαγή συνθηματικού",
+ "Full Name" : "Πλήρες όνομα",
+ "Email" : "Ηλεκτρονικό ταχυδρομείο",
+ "Your email address" : "Η διεύθυνση ηλ. ταχυδρομείου σας",
+ "Fill in an email address to enable password recovery and receive notifications" : "Συμπληρώστε μια διεύθυνση email για να ενεργοποιήσετε την επαναφορά συνθηματικού και να λαμβάνετε ειδοποιήσεις",
+ "Profile picture" : "Φωτογραφία προφίλ",
+ "Upload new" : "Μεταφόρτωση νέου",
+ "Select new from Files" : "Επιλογή νέου από τα Αρχεία",
+ "Remove image" : "Αφαίρεση εικόνας",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Είτε png ή jpg. Ιδανικά τετράγωνη αλλά θα είστε σε θέση να την περικόψετε.",
+ "Your avatar is provided by your original account." : "Το άβατάρ σας παρέχεται από τον αρχικό σας λογαριασμό.",
+ "Cancel" : "Άκυρο",
+ "Choose as profile image" : "Επιλογή εικόνας προφίλ",
+ "Language" : "Γλώσσα",
+ "Help translate" : "Βοηθήστε στη μετάφραση",
+ "Common Name" : "Κοινό Όνομα",
+ "Valid until" : "Έγκυρο έως",
+ "Issued By" : "Έκδόθηκε από",
+ "Valid until %s" : "Έγκυρο έως %s",
+ "Import Root Certificate" : "Εισαγωγή Πιστοποιητικού Root",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Η εφαρμογή κρυπτογράφησης δεν είναι πλέον ενεργοποιημένη, παρακαλώ αποκρυπτογραφήστε όλα τα αρχεία σας",
+ "Log-in password" : "Συνθηματικό εισόδου",
+ "Decrypt all Files" : "Αποκρυπτογράφηση όλων των Αρχείων",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Τα κλειδιά κρυπτογράφησής σας μεταφέρονται σε θέση αντιγράφου ασφαλείας. Αν κάτι πάει στραβά, μπορείτε να τα επαναφέρετε. Διαγράψτε τα οριστικά μόνο αν είστε βέβαιοι ότι όλα τα αρχεία αποκρυπτογραφήθηκαν σωστά.",
+ "Restore Encryption Keys" : "Επαναφορά κλειδιών κρυπτογράφησης",
+ "Delete Encryption Keys" : "Διαγραφή κλειδιών κρυπτογράφησης",
+ "Show storage location" : "Εμφάνιση τοποθεσίας αποθήκευσης",
+ "Show last log in" : "Εμφάνιση τελευταίας εισόδου",
+ "Username" : "Όνομα χρήστη",
+ "Create" : "Δημιουργία",
+ "Admin Recovery Password" : "Κωδικός Επαναφοράς Διαχειριστή ",
+ "Enter the recovery password in order to recover the users files during password change" : "Εισάγετε το συνθηματικό ανάκτησης ώστε να ανακτήσετε τα αρχεία χρηστών κατά την αλλαγή συνθηματικού",
+ "Add Group" : "Προσθήκη Ομάδας",
+ "Group" : "Ομάδα",
+ "Everyone" : "Όλοι",
+ "Admins" : "Διαχειριστές",
+ "Default Quota" : "Προεπιλεγμένο Όριο",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Παρακαλώ εισάγετε επιτρεπόμενα μερίδια αποθηκευτικού χώρου (π.χ. \"512 MB\" ή \"12 GB\")",
+ "Unlimited" : "Απεριόριστο",
+ "Other" : "Άλλο",
+ "Quota" : "Σύνολο Χώρου",
+ "Storage Location" : "Τοποθεσία αποθηκευτικού χώρου",
+ "Last Login" : "Τελευταία Σύνδεση",
+ "change full name" : "αλλαγή πλήρους ονόματος",
+ "set new password" : "επιλογή νέου κωδικού",
+ "Default" : "Προκαθορισμένο"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/el.json b/settings/l10n/el.json
new file mode 100644
index 00000000000..258846d9be3
--- /dev/null
+++ b/settings/l10n/el.json
@@ -0,0 +1,233 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Προειδοποιήσεις ασφάλειας & ρυθμίσεων",
+ "Cron" : "Cron",
+ "Sharing" : "Διαμοιρασμός",
+ "Security" : "Ασφάλεια",
+ "Email Server" : "Διακομιστής Email",
+ "Log" : "Καταγραφές",
+ "Authentication error" : "Σφάλμα πιστοποίησης",
+ "Your full name has been changed." : "Το πλήρες όνομά σας άλλαξε.",
+ "Unable to change full name" : "Δεν ήταν δυνατή η αλλαγή του πλήρους ονόματός σας",
+ "Group already exists" : "Η ομάδα υπάρχει ήδη",
+ "Unable to add group" : "Αδυναμία προσθήκης ομάδας",
+ "Files decrypted successfully" : "Τα αρχεία αποκρυπτογραφήθηκαν με επιτυχία",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Δεν ήταν δυνατή η αποκρυπτογράφηση των αρχείων, παρακαλώ ελέγξτε το owncloud.log ή ενημερωθείτε από τον διαχειριστή συστημάτων σας",
+ "Couldn't decrypt your files, check your password and try again" : "Δεν ήταν δυνατή η αποκρυπτογράφηση των αρχείων σας, ελέγξτε τον κωδικό πρόσβασής σας και δοκιμάστε πάλι",
+ "Encryption keys deleted permanently" : "Τα κλειδιά κρυπτογράφησης αφαιρέθηκαν οριστικά",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Δεν ήταν δυνατή η οριστική διαγραφή των κλειδιών κρυπτογράφησής σας, παρακαλώ ελέγξτε το owncloud.log ή επικοινωνήστε με τον διαχειριστή σας",
+ "Couldn't remove app." : "Αδυναμία αφαίρεσης εφαρμογής.",
+ "Email saved" : "Το email αποθηκεύτηκε ",
+ "Invalid email" : "Μη έγκυρο email",
+ "Unable to delete group" : "Αδυναμία διαγραφής ομάδας",
+ "Unable to delete user" : "Αδυναμία διαγραφής χρήστη",
+ "Backups restored successfully" : "Η επαναφορά αντιγράφων ασφαλείας έγινε με επιτυχία",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Δεν ήταν δυνατή η επαναφορά των κλειδιών κρυπτογράφησής σας, παρακαλώ ελέγξτε το owncloud.log ή επικοινωνήστε με τον διαχειριστή σας",
+ "Language changed" : "Η γλώσσα άλλαξε",
+ "Invalid request" : "Μη έγκυρο αίτημα",
+ "Admins can't remove themself from the admin group" : "Οι διαχειριστές δεν μπορούν να αφαιρέσουν τους εαυτούς τους από την ομάδα των διαχειριστών",
+ "Unable to add user to group %s" : "Αδυναμία προσθήκη χρήστη στην ομάδα %s",
+ "Unable to remove user from group %s" : "Αδυναμία αφαίρεσης χρήστη από την ομάδα %s",
+ "Couldn't update app." : "Αδυναμία ενημέρωσης εφαρμογής",
+ "Wrong password" : "Εσφαλμένο συνθηματικό",
+ "No user supplied" : "Δεν εισήχθη χρήστης",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Παρακαλώ παρέχετε έναν κωδικό ανάκτησης διαχειριστή, διαφορετικά όλα τα δεδομένα χρήστη θα χαθούν",
+ "Wrong admin recovery password. Please check the password and try again." : "Λάθος κωδικός ανάκτησης διαχειριστή. Παρακαλώ ελέγξτε τον κωδικό και δοκιμάστε ξανά.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Το βασικό πλαίσιο δεν υποστηρίζει αλλαγή κωδικού, αλλά το κλειδί κρυπτογράφησης των χρηστών ενημερώθηκε επιτυχώς.",
+ "Unable to change password" : "Αδυναμία αλλαγής συνθηματικού",
+ "Enabled" : "Ενεργοποιημένο",
+ "Not enabled" : "Μη ενεργοποιημένο",
+ "Recommended" : "Προτείνεται",
+ "Saved" : "Αποθηκεύτηκαν",
+ "test email settings" : "δοκιμή ρυθμίσεων email",
+ "If you received this email, the settings seem to be correct." : "Εάν λάβατε αυτό το email, οι ρυθμίσεις δείχνουν να είναι σωστές.",
+ "A problem occurred while sending the email. Please revise your settings." : "Παρουσιάστηκε ένα σφάλμα κατά την αποστολή του email. Παρακαλώ αναθεωρήστε τις ρυθμίσεις σας.",
+ "Email sent" : "Το Email απεστάλη ",
+ "You need to set your user email before being able to send test emails." : "Πρέπει να ορίσετε το email του χρήστη πριν να είστε σε θέση να στείλετε δοκιμαστικά emails.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Είστε πραγματικά σίγουροι ότι θέλετε να προσθέσετε το \"{domain}\" σαν αξιόπιστη περιοχή;",
+ "Add trusted domain" : "Προσθέστε αξιόπιστη περιοχή",
+ "Sending..." : "Αποστέλεται...",
+ "All" : "Όλες",
+ "Please wait...." : "Παρακαλώ περιμένετε...",
+ "Error while disabling app" : "Σφάλμα κατά την απενεργοποίηση εισόδου",
+ "Disable" : "Απενεργοποίηση",
+ "Enable" : "Ενεργοποίηση",
+ "Error while enabling app" : "Σφάλμα κατά την ενεργοποίηση της εφαρμογής",
+ "Updating...." : "Ενημέρωση...",
+ "Error while updating app" : "Σφάλμα κατά την ενημέρωση της εφαρμογής",
+ "Updated" : "Ενημερώθηκε",
+ "Uninstalling ...." : "Απεγκατάσταση ....",
+ "Error while uninstalling app" : "Σφάλμα κατά την απεγκατάσταση της εφαρμογής",
+ "Uninstall" : "Απεγκατάσταση",
+ "Select a profile picture" : "Επιλογή εικόνας προφίλ",
+ "Very weak password" : "Πολύ αδύναμο συνθηματικό",
+ "Weak password" : "Αδύναμο συνθηματικό",
+ "So-so password" : "Μέτριο συνθηματικό",
+ "Good password" : "Καλό συνθηματικό",
+ "Strong password" : "Δυνατό συνθηματικό",
+ "Valid until {date}" : "Έγκυρο έως {date}",
+ "Delete" : "Διαγραφή",
+ "Decrypting files... Please wait, this can take some time." : "Αποκρυπτογράφηση αρχείων... Παρακαλώ περιμένετε, αυτό μπορεί να πάρει κάποιο χρόνο.",
+ "Delete encryption keys permanently." : "Οριστική διαγραφή των κλειδιων κρυπτογράφησης.",
+ "Restore encryption keys." : "Επαναφορά των κλειδιών κρυπτογράφησης.",
+ "Groups" : "Ομάδες",
+ "Unable to delete {objName}" : "Αδυναμία διαγραφής του {objName}",
+ "Error creating group" : "Σφάλμα δημιουργίας ομάδας",
+ "A valid group name must be provided" : "Πρέπει να δοθεί ένα έγκυρο όνομα ομάδας",
+ "deleted {groupName}" : "διαγραφή {groupName}",
+ "undo" : "αναίρεση",
+ "no group" : "καμια ομάδα",
+ "never" : "ποτέ",
+ "deleted {userName}" : "διαγραφή {userName}",
+ "add group" : "προσθήκη ομάδας",
+ "A valid username must be provided" : "Πρέπει να δοθεί έγκυρο όνομα χρήστη",
+ "Error creating user" : "Σφάλμα δημιουργίας χρήστη",
+ "A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό",
+ "Warning: Home directory for user \"{user}\" already exists" : "Προειδοποίηση: Ο μητρικός κατάλογος του χρήστη \"{user}\" υπάρχει ήδη",
+ "__language_name__" : "__όνομα_γλώσσας__",
+ "Personal Info" : "Προσωπικές Πληροφορίες",
+ "SSL root certificates" : "Πιστοποιητικά SSL root",
+ "Encryption" : "Κρυπτογράφηση",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Όλα (καίρια ζητήματα, σφάλματα, προειδοποιήσεις, πληροφορίες, αποσφαλμάτωση)",
+ "Info, warnings, errors and fatal issues" : "Πληροφορίες, προειδοποιήσεις, σφάλματα και καίρια ζητήματα",
+ "Warnings, errors and fatal issues" : "Προειδοποιήσεις, σφάλματα και καίρια ζητήματα",
+ "Errors and fatal issues" : "Σφάλματα και καίρια ζητήματα",
+ "Fatal issues only" : "Καίρια ζητήματα μόνο",
+ "None" : "Τίποτα",
+ "Login" : "Σύνδεση",
+ "Plain" : "Απλό",
+ "NT LAN Manager" : "Διαχειριστης NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Προειδοποίηση Ασφαλείας",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Έχετε πρόσβαση στο %s μέσω HTTP. Προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας ώστε να απαιτεί χρήση HTTPS αντ' αυτού.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Ο κατάλογος δεδομένων και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος δεδομένων να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο δεδομένων έξω από τη ρίζα του καταλόγου του διακομιστή.",
+ "Setup Warning" : "Ρύθμιση Προειδοποίησης",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Ο PHP φαίνεται να είναι ρυθμισμένος ώστε να αφαιρεί μπλοκ εσωτερικών κειμένων (inline doc). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.",
+ "Database Performance Info" : "Πληροφορίες Επίδοσης Βάσης Δεδομένων",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Ως βάση δεδομένων χρησιμοποιείται η SQLite. Για μεγαλύτερες εγκαταστάσεις συνιστούμε να την αλλάξετε. Για να μετακινηθείτε σε μια άλλη βάση δεδομένων χρησιμοποιείστε το εργαλείο γραμμής εντολών: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Η ενοτητα 'fileinfo' λειπει",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Η PHP ενοτητα 'fileinfo' λειπει. Σας συνιστούμε να ενεργοποιήσετε αυτή την ενότητα για να έχετε καλύτερα αποτελέσματα με τον εντοπισμό τύπου MIME. ",
+ "Your PHP version is outdated" : "Η έκδοση PHP είναι απαρχαιωμένη",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Η έκδοση PHP είναι απαρχαιωμένη. Συνιστούμε ανεπιφύλακτα να ενημερώσετε στην 5.3.8 ή νεώτερη καθώς παλαιότερες εκδόσεις είναι γνωστό πως περιέχουν σφάλματα. Είναι πιθανόν ότι αυτή η εγκατάσταση δεν λειτουργεί σωστά.",
+ "PHP charset is not set to UTF-8" : "Το σύνολο χαρακτήρων PHP δεν έχει οριστεί στο UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "Το σύνολο χαρακτήρων PHP δεν έχει οριστεί στο UTF-8. Αυτό μπορεί να προκαλέσει τεράστια ζητήματα με χωρίς-ASCII χαρακτήρες στα ονόματα των αρχείων. Συνιστούμε ανεπιφύλακτα να αλλάξετε την αξία του 'default_charset' php.ini στο 'UTF-8'.",
+ "Locale not working" : "Η μετάφραση δεν δουλεύει",
+ "System locale can not be set to a one which supports UTF-8." : "Οι ρυθμίσεις τοποθεσίας συστήματος δεν μπορούν να οριστούν σε κάποιες που δεν υποστηρίζουν UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Αυτό σημαίνει ότι μπορεί να υπάρχουν προβλήματα με κάποιους χαρακτήρες στα ονόματα αρχείων.",
+ "URL generation in notification emails" : "Δημιουργία URL στις ειδοποιήσεις ηλεκτρονικού ταχυδρομείου",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Αν η εγκατάστασή σας δεν είναι εγκατεστημένη στη ρίζα της περιοχής και χρησιμοποιεί το cron του συστήματος, μπορεί να υπάρξουν ζητήματα με τη δημιουργία URL. Για να αποφύγετε αυτά τα προβλήματα, παρακαλώ ρυθμίστε την επιλογή \"overwritewebroot\" στον config.php φάκελό σας στη διαδρομή webroot της εγκατάστασής σας (Suggested: \"%s\")",
+ "No problems found" : "Δεν βρέθηκαν προβλήματα",
+ "Please double check the installation guides ." : "Ελέγξτε ξανά τις οδηγίες εγκατάστασης .",
+ "Last cron was executed at %s." : "Η τελευταία εκτέλεση του cron ήταν στις %s",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Η τελευταία εκτέλεση του cron ήταν στις %s. Αυτό είναι πάνω από μια ώρα πριν, ίσως κάτι δεν πάει καλά.",
+ "Cron was not executed yet!" : "Η διεργασία cron δεν έχει εκτελεστεί ακόμα!",
+ "Execute one task with each page loaded" : "Εκτελεί μια διεργασία κάθε φορά που φορτώνεται μια σελίδα",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Το cron.php είναι καταχωρημένο σε μια υπηρεσία webcron ώστε να καλεί το cron.php κάθε 15 λεπτά μέσω http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Χρησιμοποιήστε την cron υπηρεσία του συτήματος για να καλέσετε το cron.php αρχείο κάθε 15 λεπτά.",
+ "Allow apps to use the Share API" : "Επιτρέπει την χρήση του API διαμοιρασμού σε εφαρμογές ",
+ "Allow users to share via link" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μέσω συνδέσμου",
+ "Enforce password protection" : "Επιβολή προστασίας με κωδικό",
+ "Allow public uploads" : "Επιτρέπεται το κοινόχρηστο ανέβασμα",
+ "Set default expiration date" : "Ορισμός ερήμην ημερομηνίας λήξης",
+ "Expire after " : "Λήξη μετά από",
+ "days" : "ημέρες",
+ "Enforce expiration date" : "Επιβολή της ημερομηνίας λήξης",
+ "Allow resharing" : "Επιτρέπεται ο επαναδιαμοιρασμός",
+ "Restrict users to only share with users in their groups" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μόνο με χρήστες που ανήκουν στις ομάδες τους",
+ "Allow users to send mail notification for shared files" : "Επιτρέψτε στους χρήστες να στέλνουν ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου για κοινόχρηστα αρχεία",
+ "Exclude groups from sharing" : "Εξαίρεση ομάδων από τον διαμοιρασμό",
+ "These groups will still be able to receive shares, but not to initiate them." : "Αυτές οι ομάδες θα συνεχίσουν να λαμβάνουν διαμοιρασμούς, αλλά δεν θα είναι δυνατό να τους δημιουργήσουν.",
+ "Enforce HTTPS" : "Επιβολή χρήσης HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Επιβάλλει τους πελάτες να συνδέονται στο %s μέσω κρυπτογραφημένης σύνδεσης.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Παρακαλώ συνδεθείτε στο %s σας μέσω HTTPS για να ενεργοποιήσετε ή να απενεργοποιήσετε την επιβολή του SSL.",
+ "This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.",
+ "Send mode" : "Κατάσταση αποστολής",
+ "From address" : "Από τη διεύθυνση",
+ "mail" : "ταχυδρομείο",
+ "Authentication method" : "Μέθοδος πιστοποίησης",
+ "Authentication required" : "Απαιτείται πιστοποίηση",
+ "Server address" : "Διεύθυνση διακομιστή",
+ "Port" : "Θύρα",
+ "Credentials" : "Πιστοποιητικά",
+ "SMTP Username" : "Όνομα χρήστη SMTP",
+ "SMTP Password" : "Συνθηματικό SMTP",
+ "Store credentials" : "Διαπιστευτήρια αποθήκευσης",
+ "Test email settings" : "Δοκιμή ρυθμίσεων email",
+ "Send email" : "Αποστολή email",
+ "Log level" : "Επίπεδο καταγραφής",
+ "More" : "Περισσότερα",
+ "Less" : "Λιγότερα",
+ "Version" : "Έκδοση",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Αναπτύχθηκε από την κοινότητα ownCloud . Ο πηγαίος κώδικας είναι υπό άδεια χρήσης AGPL .",
+ "More apps" : "Περισσότερες εφαρμογές",
+ "Add your app" : "Προσθέστε την Εφαρμογή σας ",
+ "by" : "από",
+ "Documentation:" : "Τεκμηρίωση:",
+ "User Documentation" : "Τεκμηρίωση Χρήστη",
+ "Admin Documentation" : "Τεκμηρίωση Διαχειριστή",
+ "Update to %s" : "Ενημέρωση σε %s",
+ "Enable only for specific groups" : "Ενεργοποίηση μόνο για καθορισμένες ομάδες",
+ "Uninstall App" : "Απεγκατάσταση Εφαρμογής",
+ "Administrator Documentation" : "Τεκμηρίωση Διαχειριστή",
+ "Online Documentation" : "Τεκμηρίωση στο Διαδίκτυο",
+ "Forum" : "Φόρουμ",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Εμπορική Υποστήριξη",
+ "Get the apps to sync your files" : "Λήψη της εφαρμογής για συγχρονισμό των αρχείων σας",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Αν θέλετε να στηρίξετε το έργο\n\n⇥⇥συνησφέρετε στην ανάπτυξη \n\n⇥⇥ή\n\n⇥⇥διαδώστε το !",
+ "Show First Run Wizard again" : "Προβολή Οδηγού Πρώτης Εκτέλεσης ξανά",
+ "You have used %s of the available %s " : "Χρησιμοποιήσατε %s από τα %s διαθέσιμα",
+ "Password" : "Συνθηματικό",
+ "Your password was changed" : "Το συνθηματικό σας έχει αλλάξει",
+ "Unable to change your password" : "Δεν ήταν δυνατή η αλλαγή του κωδικού πρόσβασης",
+ "Current password" : "Τρέχων συνθηματικό",
+ "New password" : "Νέο συνθηματικό",
+ "Change password" : "Αλλαγή συνθηματικού",
+ "Full Name" : "Πλήρες όνομα",
+ "Email" : "Ηλεκτρονικό ταχυδρομείο",
+ "Your email address" : "Η διεύθυνση ηλ. ταχυδρομείου σας",
+ "Fill in an email address to enable password recovery and receive notifications" : "Συμπληρώστε μια διεύθυνση email για να ενεργοποιήσετε την επαναφορά συνθηματικού και να λαμβάνετε ειδοποιήσεις",
+ "Profile picture" : "Φωτογραφία προφίλ",
+ "Upload new" : "Μεταφόρτωση νέου",
+ "Select new from Files" : "Επιλογή νέου από τα Αρχεία",
+ "Remove image" : "Αφαίρεση εικόνας",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Είτε png ή jpg. Ιδανικά τετράγωνη αλλά θα είστε σε θέση να την περικόψετε.",
+ "Your avatar is provided by your original account." : "Το άβατάρ σας παρέχεται από τον αρχικό σας λογαριασμό.",
+ "Cancel" : "Άκυρο",
+ "Choose as profile image" : "Επιλογή εικόνας προφίλ",
+ "Language" : "Γλώσσα",
+ "Help translate" : "Βοηθήστε στη μετάφραση",
+ "Common Name" : "Κοινό Όνομα",
+ "Valid until" : "Έγκυρο έως",
+ "Issued By" : "Έκδόθηκε από",
+ "Valid until %s" : "Έγκυρο έως %s",
+ "Import Root Certificate" : "Εισαγωγή Πιστοποιητικού Root",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Η εφαρμογή κρυπτογράφησης δεν είναι πλέον ενεργοποιημένη, παρακαλώ αποκρυπτογραφήστε όλα τα αρχεία σας",
+ "Log-in password" : "Συνθηματικό εισόδου",
+ "Decrypt all Files" : "Αποκρυπτογράφηση όλων των Αρχείων",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Τα κλειδιά κρυπτογράφησής σας μεταφέρονται σε θέση αντιγράφου ασφαλείας. Αν κάτι πάει στραβά, μπορείτε να τα επαναφέρετε. Διαγράψτε τα οριστικά μόνο αν είστε βέβαιοι ότι όλα τα αρχεία αποκρυπτογραφήθηκαν σωστά.",
+ "Restore Encryption Keys" : "Επαναφορά κλειδιών κρυπτογράφησης",
+ "Delete Encryption Keys" : "Διαγραφή κλειδιών κρυπτογράφησης",
+ "Show storage location" : "Εμφάνιση τοποθεσίας αποθήκευσης",
+ "Show last log in" : "Εμφάνιση τελευταίας εισόδου",
+ "Username" : "Όνομα χρήστη",
+ "Create" : "Δημιουργία",
+ "Admin Recovery Password" : "Κωδικός Επαναφοράς Διαχειριστή ",
+ "Enter the recovery password in order to recover the users files during password change" : "Εισάγετε το συνθηματικό ανάκτησης ώστε να ανακτήσετε τα αρχεία χρηστών κατά την αλλαγή συνθηματικού",
+ "Add Group" : "Προσθήκη Ομάδας",
+ "Group" : "Ομάδα",
+ "Everyone" : "Όλοι",
+ "Admins" : "Διαχειριστές",
+ "Default Quota" : "Προεπιλεγμένο Όριο",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Παρακαλώ εισάγετε επιτρεπόμενα μερίδια αποθηκευτικού χώρου (π.χ. \"512 MB\" ή \"12 GB\")",
+ "Unlimited" : "Απεριόριστο",
+ "Other" : "Άλλο",
+ "Quota" : "Σύνολο Χώρου",
+ "Storage Location" : "Τοποθεσία αποθηκευτικού χώρου",
+ "Last Login" : "Τελευταία Σύνδεση",
+ "change full name" : "αλλαγή πλήρους ονόματος",
+ "set new password" : "επιλογή νέου κωδικού",
+ "Default" : "Προκαθορισμένο"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/el.php b/settings/l10n/el.php
deleted file mode 100644
index 16c2b16e7f3..00000000000
--- a/settings/l10n/el.php
+++ /dev/null
@@ -1,239 +0,0 @@
- "Άκυρη τιμή για το %s",
-"Saved" => "Αποθηκεύτηκαν",
-"test email settings" => "δοκιμή ρυθμίσεων email",
-"If you received this email, the settings seem to be correct." => "Εάν λάβατε αυτό το email, οι ρυθμίσεις δείχνουν να είναι σωστές.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Παρουσιάστηκε σφάλμα κατά την αποστολή e-mail. Παρακαλώ ελέγξτε τις ρυθμίσεις σας.",
-"Email sent" => "Το Email απεστάλη ",
-"You need to set your user email before being able to send test emails." => "Πρέπει να ορίσετε το email του χρήστη πριν να είστε σε θέση να στείλετε δοκιμαστικά emails.",
-"Send mode" => "Κατάσταση αποστολής",
-"Encryption" => "Κρυπτογράφηση",
-"Authentication method" => "Μέθοδος πιστοποίησης",
-"Unable to load list from App Store" => "Σφάλμα στην φόρτωση της λίστας από το App Store",
-"Authentication error" => "Σφάλμα πιστοποίησης",
-"Your full name has been changed." => "Το πλήρες όνομά σας άλλαξε.",
-"Unable to change full name" => "Δεν ήταν δυνατή η αλλαγή του πλήρους ονόματός σας",
-"Group already exists" => "Η ομάδα υπάρχει ήδη",
-"Unable to add group" => "Αδυναμία προσθήκης ομάδας",
-"Files decrypted successfully" => "Τα αρχεία αποκρυπτογραφήθηκαν με επιτυχία",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Δεν ήταν δυνατή η αποκρυπτογράφηση των αρχείων, παρακαλώ ελέγξτε το owncloud.log ή ενημερωθείτε από τον διαχειριστή συστημάτων σας",
-"Couldn't decrypt your files, check your password and try again" => "Δεν ήταν δυνατή η αποκρυπτογράφηση των αρχείων σας, ελέγξτε τον κωδικό πρόσβασής σας και δοκιμάστε πάλι",
-"Encryption keys deleted permanently" => "Τα κλειδιά κρυπτογράφησης αφαιρέθηκαν οριστικά",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Δεν ήταν δυνατή η οριστική διαγραφή των κλειδιών κρυπτογράφησής σας, παρακαλώ ελέγξτε το owncloud.log ή επικοινωνήστε με τον διαχειριστή σας",
-"Couldn't remove app." => "Αδυναμία αφαίρεσης εφαρμογής.",
-"Email saved" => "Το email αποθηκεύτηκε ",
-"Invalid email" => "Μη έγκυρο email",
-"Unable to delete group" => "Αδυναμία διαγραφής ομάδας",
-"Unable to delete user" => "Αδυναμία διαγραφής χρήστη",
-"Backups restored successfully" => "Η επαναφορά αντιγράφων ασφαλείας έγινε με επιτυχία",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Δεν ήταν δυνατή η επαναφορά των κλειδιών κρυπτογράφησής σας, παρακαλώ ελέγξτε το owncloud.log ή επικοινωνήστε με τον διαχειριστή σας",
-"Language changed" => "Η γλώσσα άλλαξε",
-"Invalid request" => "Μη έγκυρο αίτημα",
-"Admins can't remove themself from the admin group" => "Οι διαχειριστές δεν μπορούν να αφαιρέσουν τους εαυτούς τους από την ομάδα των διαχειριστών",
-"Unable to add user to group %s" => "Αδυναμία προσθήκη χρήστη στην ομάδα %s",
-"Unable to remove user from group %s" => "Αδυναμία αφαίρεσης χρήστη από την ομάδα %s",
-"Couldn't update app." => "Αδυναμία ενημέρωσης εφαρμογής",
-"Wrong password" => "Εσφαλμένο συνθηματικό",
-"No user supplied" => "Δεν εισήχθη χρήστης",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Παρακαλώ παρέχετε έναν κωδικό ανάκτησης διαχειριστή, διαφορετικά όλα τα δεδομένα χρήστη θα χαθούν",
-"Wrong admin recovery password. Please check the password and try again." => "Λάθος κωδικός ανάκτησης διαχειριστή. Παρακαλώ ελέγξτε τον κωδικό και δοκιμάστε ξανά.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Το βασικό πλαίσιο δεν υποστηρίζει αλλαγή κωδικού, αλλά το κλειδί κρυπτογράφησης των χρηστών ενημερώθηκε επιτυχώς.",
-"Unable to change password" => "Αδυναμία αλλαγής συνθηματικού",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "Είστε πραγματικά σίγουροι ότι θέλετε να προσθέσετε το \"{domain}\" σαν αξιόπιστη περιοχή;",
-"Add trusted domain" => "Προσθέστε αξιόπιστη περιοχή",
-"Sending..." => "Αποστέλεται...",
-"All" => "Όλες",
-"User Documentation" => "Τεκμηρίωση Χρήστη",
-"Admin Documentation" => "Τεκμηρίωση Διαχειριστή",
-"Update to {appversion}" => "Ενημέρωση σε {appversion}",
-"Uninstall App" => "Απεγκατάσταση Εφαρμογής",
-"Disable" => "Απενεργοποίηση",
-"Enable" => "Ενεργοποίηση",
-"Please wait...." => "Παρακαλώ περιμένετε...",
-"Error while disabling app" => "Σφάλμα κατά την απενεργοποίηση εισόδου",
-"Error while enabling app" => "Σφάλμα κατά την ενεργοποίηση της εφαρμογής",
-"Updating...." => "Ενημέρωση...",
-"Error while updating app" => "Σφάλμα κατά την ενημέρωση της εφαρμογής",
-"Error" => "Σφάλμα",
-"Update" => "Ενημέρωση",
-"Updated" => "Ενημερώθηκε",
-"Uninstalling ...." => "Απεγκατάσταση ....",
-"Error while uninstalling app" => "Σφάλμα κατά την απεγκατάσταση της εφαρμογής",
-"Uninstall" => "Απεγκατάσταση",
-"Select a profile picture" => "Επιλογή εικόνας προφίλ",
-"Very weak password" => "Πολύ αδύναμο συνθηματικό",
-"Weak password" => "Αδύναμο συνθηματικό",
-"So-so password" => "Μέτριο συνθηματικό",
-"Good password" => "Καλό συνθηματικό",
-"Strong password" => "Δυνατό συνθηματικό",
-"Valid until {date}" => "Έγκυρο έως {date}",
-"Delete" => "Διαγραφή",
-"Decrypting files... Please wait, this can take some time." => "Αποκρυπτογράφηση αρχείων... Παρακαλώ περιμένετε, αυτό μπορεί να πάρει κάποιο χρόνο.",
-"Delete encryption keys permanently." => "Οριστική διαγραφή των κλειδιων κρυπτογράφησης.",
-"Restore encryption keys." => "Επαναφορά των κλειδιών κρυπτογράφησης.",
-"Groups" => "Ομάδες",
-"Unable to delete {objName}" => "Αδυναμία διαγραφής του {objName}",
-"Error creating group" => "Σφάλμα δημιουργίας ομάδας",
-"A valid group name must be provided" => "Πρέπει να δοθεί ένα έγκυρο όνομα ομάδας",
-"deleted {groupName}" => "διαγραφή {groupName}",
-"undo" => "αναίρεση",
-"Group Admin" => "Ομάδα Διαχειριστών",
-"never" => "ποτέ",
-"deleted {userName}" => "διαγραφή {userName}",
-"add group" => "προσθήκη ομάδας",
-"A valid username must be provided" => "Πρέπει να δοθεί έγκυρο όνομα χρήστη",
-"Error creating user" => "Σφάλμα δημιουργίας χρήστη",
-"A valid password must be provided" => "Πρέπει να δοθεί έγκυρο συνθηματικό",
-"Warning: Home directory for user \"{user}\" already exists" => "Προειδοποίηση: Ο μητρικός κατάλογος του χρήστη \"{user}\" υπάρχει ήδη",
-"__language_name__" => "__όνομα_γλώσσας__",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Όλα (καίρια ζητήματα, σφάλματα, προειδοποιήσεις, πληροφορίες, αποσφαλμάτωση)",
-"Info, warnings, errors and fatal issues" => "Πληροφορίες, προειδοποιήσεις, σφάλματα και καίρια ζητήματα",
-"Warnings, errors and fatal issues" => "Προειδοποιήσεις, σφάλματα και καίρια ζητήματα",
-"Errors and fatal issues" => "Σφάλματα και καίρια ζητήματα",
-"Fatal issues only" => "Καίρια ζητήματα μόνο",
-"None" => "Τίποτα",
-"Login" => "Σύνδεση",
-"Plain" => "Απλό",
-"NT LAN Manager" => "Διαχειριστης NT LAN",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Προειδοποίηση Ασφαλείας",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Έχετε πρόσβαση στο %s μέσω HTTP. Προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας ώστε να απαιτεί χρήση HTTPS αντ' αυτού.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Ο κατάλογος δεδομένων και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος δεδομένων να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο δεδομένων έξω από τη ρίζα του καταλόγου του διακομιστή.",
-"Setup Warning" => "Ρύθμιση Προειδοποίησης",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "Ο PHP φαίνεται να είναι ρυθμισμένος ώστε να αφαιρεί μπλοκ εσωτερικών κειμένων (inline doc). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.",
-"Database Performance Info" => "Πληροφορίες Επίδοσης Βάσης Δεδομένων",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "Ως βάση δεδομένων χρησιμοποιείται η SQLite. Για μεγαλύτερες εγκαταστάσεις συνιστούμε να την αλλάξετε. Για να μετακινηθείτε σε μια άλλη βάση δεδομένων χρησιμοποιείστε το εργαλείο γραμμής εντολών: 'occ db:convert-type'",
-"Module 'fileinfo' missing" => "Η ενοτητα 'fileinfo' λειπει",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "Η PHP ενοτητα 'fileinfo' λειπει. Σας συνιστούμε να ενεργοποιήσετε αυτή την ενότητα για να έχετε καλύτερα αποτελέσματα με τον εντοπισμό τύπου MIME. ",
-"Your PHP version is outdated" => "Η έκδοση PHP είναι απαρχαιωμένη",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Η έκδοση PHP είναι απαρχαιωμένη. Συνιστούμε ανεπιφύλακτα να ενημερώσετε στην 5.3.8 ή νεώτερη καθώς παλαιότερες εκδόσεις είναι γνωστό πως περιέχουν σφάλματα. Είναι πιθανόν ότι αυτή η εγκατάσταση δεν λειτουργεί σωστά.",
-"PHP charset is not set to UTF-8" => "Το σύνολο χαρακτήρων PHP δεν έχει οριστεί στο UTF-8",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "Το σύνολο χαρακτήρων PHP δεν έχει οριστεί στο UTF-8. Αυτό μπορεί να προκαλέσει τεράστια ζητήματα με χωρίς-ASCII χαρακτήρες στα ονόματα των αρχείων. Συνιστούμε ανεπιφύλακτα να αλλάξετε την αξία του 'default_charset' php.ini στο 'UTF-8'.",
-"Locale not working" => "Η μετάφραση δεν δουλεύει",
-"System locale can not be set to a one which supports UTF-8." => "Οι ρυθμίσεις τοποθεσίας συστήματος δεν μπορούν να οριστούν σε κάποιες που δεν υποστηρίζουν UTF-8.",
-"This means that there might be problems with certain characters in file names." => "Αυτό σημαίνει ότι μπορεί να υπάρχουν προβλήματα με κάποιους χαρακτήρες στα ονόματα αρχείων.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Συνιστούμε σοβαρά να εγκαταστήσετε τα απαιτούμενα πακέτα στο σύστημά σας ώστε να υποστηρίζεται μια από τις ακόλουθες ρυθμίσεις τοποθεσίας: %s.",
-"URL generation in notification emails" => "Δημιουργία URL στις ειδοποιήσεις ηλεκτρονικού ταχυδρομείου",
-"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "Αν η εγκατάστασή σας δεν είναι εγκατεστημένη στη ρίζα της περιοχής και χρησιμοποιεί το cron του συστήματος, μπορεί να υπάρξουν ζητήματα με τη δημιουργία URL. Για να αποφύγετε αυτά τα προβλήματα, παρακαλώ ρυθμίστε την επιλογή \"overwritewebroot\" στον config.php φάκελό σας στη διαδρομή webroot της εγκατάστασής σας (Suggested: \"%s\")",
-"Connectivity checks" => "Έλεγχοι συνδεσιμότητας",
-"No problems found" => "Δεν βρέθηκαν προβλήματα",
-"Please double check the installation guides ." => "Ελέγξτε ξανά τις οδηγίες εγκατάστασης .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Η τελευταία εκτέλεση του cron ήταν στις %s",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Η τελευταία εκτέλεση του cron ήταν στις %s. Αυτό είναι πάνω από μια ώρα πριν, ίσως κάτι δεν πάει καλά.",
-"Cron was not executed yet!" => "Η διεργασία cron δεν έχει εκτελεστεί ακόμα!",
-"Execute one task with each page loaded" => "Εκτελεί μια διεργασία κάθε φορά που φορτώνεται μια σελίδα",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "Το cron.php είναι καταχωρημένο σε μια υπηρεσία webcron ώστε να καλεί το cron.php κάθε 15 λεπτά μέσω http.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Χρησιμοποιήστε την cron υπηρεσία του συτήματος για να καλέσετε το cron.php αρχείο κάθε 15 λεπτά.",
-"Sharing" => "Διαμοιρασμός",
-"Allow apps to use the Share API" => "Επιτρέπει την χρήση του API διαμοιρασμού σε εφαρμογές ",
-"Allow users to share via link" => "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μέσω συνδέσμου",
-"Enforce password protection" => "Επιβολή προστασίας με κωδικό",
-"Allow public uploads" => "Επιτρέπεται το κοινόχρηστο ανέβασμα",
-"Set default expiration date" => "Ορισμός ερήμην ημερομηνίας λήξης",
-"Expire after " => "Λήξη μετά από",
-"days" => "ημέρες",
-"Enforce expiration date" => "Επιβολή της ημερομηνίας λήξης",
-"Allow resharing" => "Επιτρέπεται ο επαναδιαμοιρασμός",
-"Restrict users to only share with users in their groups" => "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μόνο με χρήστες που ανήκουν στις ομάδες τους",
-"Allow users to send mail notification for shared files" => "Επιτρέψτε στους χρήστες να στέλνουν ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου για κοινόχρηστα αρχεία",
-"Exclude groups from sharing" => "Εξαίρεση ομάδων από τον διαμοιρασμό",
-"These groups will still be able to receive shares, but not to initiate them." => "Αυτές οι ομάδες θα συνεχίσουν να λαμβάνουν διαμοιρασμούς, αλλά δεν θα είναι δυνατό να τους δημιουργήσουν.",
-"Security" => "Ασφάλεια",
-"Enforce HTTPS" => "Επιβολή χρήσης HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Επιβάλλει τους πελάτες να συνδέονται στο %s μέσω κρυπτογραφημένης σύνδεσης.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Παρακαλώ συνδεθείτε στο %s σας μέσω HTTPS για να ενεργοποιήσετε ή να απενεργοποιήσετε την επιβολή του SSL.",
-"Email Server" => "Διακομιστής Email",
-"This is used for sending out notifications." => "Χρησιμοποιείται για αποστολή ειδοποιήσεων.",
-"From address" => "Από τη διεύθυνση",
-"mail" => "ταχυδρομείο",
-"Authentication required" => "Απαιτείται πιστοποίηση",
-"Server address" => "Διεύθυνση διακομιστή",
-"Port" => "Θύρα",
-"Credentials" => "Πιστοποιητικά",
-"SMTP Username" => "Όνομα χρήστη SMTP",
-"SMTP Password" => "Συνθηματικό SMTP",
-"Test email settings" => "Δοκιμή ρυθμίσεων email",
-"Send email" => "Αποστολή email",
-"Log" => "Καταγραφές",
-"Log level" => "Επίπεδο καταγραφής",
-"More" => "Περισσότερα",
-"Less" => "Λιγότερα",
-"Version" => "Έκδοση",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Αναπτύχθηκε από την κοινότητα ownCloud . Ο πηγαίος κώδικας είναι υπό άδεια χρήσης AGPL .",
-"Add your App" => "Προσθέστε Δικιά σας Εφαρμογή",
-"More Apps" => "Περισσότερες Εφαρμογές",
-"Select an App" => "Επιλέξτε μια Εφαρμογή",
-"Documentation:" => "Τεκμηρίωση:",
-"See application page at apps.owncloud.com" => "Δείτε την σελίδα εφαρμογών στο apps.owncloud.com",
-"See application website" => "Δείτε την ιστοσελίδα της εφαρμογής",
-" -licensed by " => "Άδεια χρήσης από ",
-"Enable only for specific groups" => "Ενεργοποίηση μόνο για καθορισμένες ομάδες",
-"Administrator Documentation" => "Τεκμηρίωση Διαχειριστή",
-"Online Documentation" => "Τεκμηρίωση στο Διαδίκτυο",
-"Forum" => "Φόρουμ",
-"Bugtracker" => "Bugtracker",
-"Commercial Support" => "Εμπορική Υποστήριξη",
-"Get the apps to sync your files" => "Λήψη της εφαρμογής για συγχρονισμό των αρχείων σας",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Αν θέλετε να στηρίξετε το έργο\n\n⇥⇥συνησφέρετε στην ανάπτυξη \n\n⇥⇥ή\n\n⇥⇥διαδώστε το !",
-"Show First Run Wizard again" => "Προβολή Οδηγού Πρώτης Εκτέλεσης ξανά",
-"You have used %s of the available %s " => "Χρησιμοποιήσατε %s από τα %s διαθέσιμα",
-"Password" => "Συνθηματικό",
-"Your password was changed" => "Το συνθηματικό σας έχει αλλάξει",
-"Unable to change your password" => "Δεν ήταν δυνατή η αλλαγή του κωδικού πρόσβασης",
-"Current password" => "Τρέχων συνθηματικό",
-"New password" => "Νέο συνθηματικό",
-"Change password" => "Αλλαγή συνθηματικού",
-"Full Name" => "Πλήρες όνομα",
-"Email" => "Ηλεκτρονικό ταχυδρομείο",
-"Your email address" => "Η διεύθυνση ηλ. ταχυδρομείου σας",
-"Fill in an email address to enable password recovery and receive notifications" => "Συμπληρώστε μια διεύθυνση email για να ενεργοποιήσετε την επαναφορά συνθηματικού και να λαμβάνετε ειδοποιήσεις",
-"Profile picture" => "Φωτογραφία προφίλ",
-"Upload new" => "Μεταφόρτωση νέου",
-"Select new from Files" => "Επιλογή νέου από τα Αρχεία",
-"Remove image" => "Αφαίρεση εικόνας",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Είτε png ή jpg. Ιδανικά τετράγωνη αλλά θα είστε σε θέση να την περικόψετε.",
-"Your avatar is provided by your original account." => "Το άβατάρ σας παρέχεται από τον αρχικό σας λογαριασμό.",
-"Cancel" => "Άκυρο",
-"Choose as profile image" => "Επιλογή εικόνας προφίλ",
-"Language" => "Γλώσσα",
-"Help translate" => "Βοηθήστε στη μετάφραση",
-"SSL root certificates" => "Πιστοποιητικά SSL root",
-"Common Name" => "Κοινό Όνομα",
-"Valid until" => "Έγκυρο έως",
-"Issued By" => "Έκδόθηκε από",
-"Valid until %s" => "Έγκυρο έως %s",
-"Import Root Certificate" => "Εισαγωγή Πιστοποιητικού Root",
-"The encryption app is no longer enabled, please decrypt all your files" => "Η εφαρμογή κρυπτογράφησης δεν είναι πλέον ενεργοποιημένη, παρακαλώ αποκρυπτογραφήστε όλα τα αρχεία σας",
-"Log-in password" => "Συνθηματικό εισόδου",
-"Decrypt all Files" => "Αποκρυπτογράφηση όλων των Αρχείων",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Τα κλειδιά κρυπτογράφησής σας μεταφέρονται σε θέση αντιγράφου ασφαλείας. Αν κάτι πάει στραβά, μπορείτε να τα επαναφέρετε. Διαγράψτε τα οριστικά μόνο αν είστε βέβαιοι ότι όλα τα αρχεία αποκρυπτογραφήθηκαν σωστά.",
-"Restore Encryption Keys" => "Επαναφορά κλειδιών κρυπτογράφησης",
-"Delete Encryption Keys" => "Διαγραφή κλειδιών κρυπτογράφησης",
-"Show storage location" => "Εμφάνιση τοποθεσίας αποθήκευσης",
-"Show last log in" => "Εμφάνιση τελευταίας εισόδου",
-"Login Name" => "Όνομα Σύνδεσης",
-"Create" => "Δημιουργία",
-"Admin Recovery Password" => "Κωδικός Επαναφοράς Διαχειριστή ",
-"Enter the recovery password in order to recover the users files during password change" => "Εισάγετε το συνθηματικό ανάκτησης ώστε να ανακτήσετε τα αρχεία χρηστών κατά την αλλαγή συνθηματικού",
-"Search Users and Groups" => "Αναζήτηση Χρηστών και Ομάδων",
-"Add Group" => "Προσθήκη Ομάδας",
-"Group" => "Ομάδα",
-"Everyone" => "Όλοι",
-"Admins" => "Διαχειριστές",
-"Default Quota" => "Προεπιλεγμένο Όριο",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Παρακαλώ εισάγετε επιτρεπόμενα μερίδια αποθηκευτικού χώρου (π.χ. \"512 MB\" ή \"12 GB\")",
-"Unlimited" => "Απεριόριστο",
-"Other" => "Άλλο",
-"Username" => "Όνομα χρήστη",
-"Quota" => "Σύνολο Χώρου",
-"Storage Location" => "Τοποθεσία αποθηκευτικού χώρου",
-"Last Login" => "Τελευταία Σύνδεση",
-"change full name" => "αλλαγή πλήρους ονόματος",
-"set new password" => "επιλογή νέου κωδικού",
-"Default" => "Προκαθορισμένο"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/en@pirate.js b/settings/l10n/en@pirate.js
new file mode 100644
index 00000000000..f9293f8094c
--- /dev/null
+++ b/settings/l10n/en@pirate.js
@@ -0,0 +1,6 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Password" : "Passcode"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/en@pirate.json b/settings/l10n/en@pirate.json
new file mode 100644
index 00000000000..6f74658eb82
--- /dev/null
+++ b/settings/l10n/en@pirate.json
@@ -0,0 +1,4 @@
+{ "translations": {
+ "Password" : "Passcode"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/en@pirate.php b/settings/l10n/en@pirate.php
deleted file mode 100644
index e269c57c3d0..00000000000
--- a/settings/l10n/en@pirate.php
+++ /dev/null
@@ -1,5 +0,0 @@
- "Passcode"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js
new file mode 100644
index 00000000000..f92c4e951a7
--- /dev/null
+++ b/settings/l10n/en_GB.js
@@ -0,0 +1,244 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Security & Setup Warnings",
+ "Cron" : "Cron",
+ "Sharing" : "Sharing",
+ "Security" : "Security",
+ "Email Server" : "Email Server",
+ "Log" : "Log",
+ "Authentication error" : "Authentication error",
+ "Your full name has been changed." : "Your full name has been changed.",
+ "Unable to change full name" : "Unable to change full name",
+ "Group already exists" : "Group already exists",
+ "Unable to add group" : "Unable to add group",
+ "Files decrypted successfully" : "Files decrypted successfully",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Couldn't decrypt your files, please check your owncloud.log or ask your administrator",
+ "Couldn't decrypt your files, check your password and try again" : "Couldn't decrypt your files, check your password and try again",
+ "Encryption keys deleted permanently" : "Encryption keys deleted permanently",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator",
+ "Couldn't remove app." : "Couldn't remove app.",
+ "Email saved" : "Email saved",
+ "Invalid email" : "Invalid email",
+ "Unable to delete group" : "Unable to delete group",
+ "Unable to delete user" : "Unable to delete user",
+ "Backups restored successfully" : "Backups restored successfully",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator",
+ "Language changed" : "Language changed",
+ "Invalid request" : "Invalid request",
+ "Admins can't remove themself from the admin group" : "Admins can't remove themselves from the admin group",
+ "Unable to add user to group %s" : "Unable to add user to group %s",
+ "Unable to remove user from group %s" : "Unable to remove user from group %s",
+ "Couldn't update app." : "Couldn't update app.",
+ "Wrong password" : "Incorrect password",
+ "No user supplied" : "No user supplied",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Please provide an admin recovery password, otherwise all user data will be lost",
+ "Wrong admin recovery password. Please check the password and try again." : "Incorrect admin recovery password. Please check the password and try again.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Back-end doesn't support password change, but the user's encryption key was successfully updated.",
+ "Unable to change password" : "Unable to change password",
+ "Enabled" : "Enabled",
+ "Not enabled" : "Not enabled",
+ "Recommended" : "Recommended",
+ "Saved" : "Saved",
+ "test email settings" : "test email settings",
+ "If you received this email, the settings seem to be correct." : "If you received this email, the settings seem to be correct.",
+ "A problem occurred while sending the email. Please revise your settings." : "A problem occurred whilst sending the email. Please revise your settings.",
+ "Email sent" : "Email sent",
+ "You need to set your user email before being able to send test emails." : "You need to set your user email before being able to send test emails.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Are you really sure you want add \"{domain}\" as a trusted domain?",
+ "Add trusted domain" : "Add trusted domain",
+ "Sending..." : "Sending...",
+ "All" : "All",
+ "Please wait...." : "Please wait....",
+ "Error while disabling app" : "Error whilst disabling app",
+ "Disable" : "Disable",
+ "Enable" : "Enable",
+ "Error while enabling app" : "Error whilst enabling app",
+ "Updating...." : "Updating....",
+ "Error while updating app" : "Error whilst updating app",
+ "Updated" : "Updated",
+ "Uninstalling ...." : "Uninstalling...",
+ "Error while uninstalling app" : "Error whilst uninstalling app",
+ "Uninstall" : "Uninstall",
+ "Select a profile picture" : "Select a profile picture",
+ "Very weak password" : "Very weak password",
+ "Weak password" : "Weak password",
+ "So-so password" : "So-so password",
+ "Good password" : "Good password",
+ "Strong password" : "Strong password",
+ "Valid until {date}" : "Valid until {date}",
+ "Delete" : "Delete",
+ "Decrypting files... Please wait, this can take some time." : "Decrypting files... Please wait, this can take some time.",
+ "Delete encryption keys permanently." : "Delete encryption keys permanently.",
+ "Restore encryption keys." : "Restore encryption keys.",
+ "Groups" : "Groups",
+ "Unable to delete {objName}" : "Unable to delete {objName}",
+ "Error creating group" : "Error creating group",
+ "A valid group name must be provided" : "A valid group name must be provided",
+ "deleted {groupName}" : "deleted {groupName}",
+ "undo" : "undo",
+ "no group" : "no group",
+ "never" : "never",
+ "deleted {userName}" : "deleted {userName}",
+ "add group" : "add group",
+ "A valid username must be provided" : "A valid username must be provided",
+ "Error creating user" : "Error creating user",
+ "A valid password must be provided" : "A valid password must be provided",
+ "Warning: Home directory for user \"{user}\" already exists" : "Warning: Home directory for user \"{user}\" already exists",
+ "__language_name__" : "English (British English)",
+ "Personal Info" : "Personal Info",
+ "SSL root certificates" : "SSL root certificates",
+ "Encryption" : "Encryption",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Everything (fatal issues, errors, warnings, info, debug)",
+ "Info, warnings, errors and fatal issues" : "Info, warnings, errors and fatal issues",
+ "Warnings, errors and fatal issues" : "Warnings, errors and fatal issues",
+ "Errors and fatal issues" : "Errors and fatal issues",
+ "Fatal issues only" : "Fatal issues only",
+ "None" : "None",
+ "Login" : "Login",
+ "Plain" : "Plain",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Security Warning",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.",
+ "Read-Only config enabled" : "Read-Only config enabled",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update.",
+ "Setup Warning" : "Setup Warning",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.",
+ "Database Performance Info" : "Database Performance Info",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite is used as database. For larger installations we recommend changing this. To migrate to another database use the command line tool: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Module 'fileinfo' missing",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "The PHP module 'fileinfo' is missing. We strongly recommend enabling this module to get best results with mime-type detection.",
+ "Your PHP version is outdated" : "Your PHP version is outdated",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly.",
+ "PHP charset is not set to UTF-8" : "PHP charset is not set to UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'.",
+ "Locale not working" : "Locale not working",
+ "System locale can not be set to a one which supports UTF-8." : "System locale can not be set to a one which supports UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "This means that there might be problems with certain characters in file names.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We strongly suggest installing the required packages on your system to support one of the following locales: %s.",
+ "URL generation in notification emails" : "URL generation in notification emails",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")",
+ "Connectivity Checks" : "Connectivity Checks",
+ "No problems found" : "No problems found",
+ "Please double check the installation guides ." : "Please double check the installation guides .",
+ "Last cron was executed at %s." : "Last cron was executed at %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Last cron was executed at %s. This is more than an hour ago, something seems wrong.",
+ "Cron was not executed yet!" : "Cron was not executed yet!",
+ "Execute one task with each page loaded" : "Execute one task with each page loaded",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is registered at a webcron service to call cron.php every 15 minutes over http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Use system's cron service to call the cron.php file every 15 minutes.",
+ "Allow apps to use the Share API" : "Allow apps to use the Share API",
+ "Allow users to share via link" : "Allow users to share via link",
+ "Enforce password protection" : "Enforce password protection",
+ "Allow public uploads" : "Allow public uploads",
+ "Set default expiration date" : "Set default expiry date",
+ "Expire after " : "Expire after ",
+ "days" : "days",
+ "Enforce expiration date" : "Enforce expiry date",
+ "Allow resharing" : "Allow resharing",
+ "Restrict users to only share with users in their groups" : "Restrict users to only share with users in their groups",
+ "Allow users to send mail notification for shared files" : "Allow users to send mail notification for shared files",
+ "Exclude groups from sharing" : "Exclude groups from sharing",
+ "These groups will still be able to receive shares, but not to initiate them." : "These groups will still be able to receive shares, but not to initiate them.",
+ "Enforce HTTPS" : "Enforce HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Forces the clients to connect to %s via an encrypted connection.",
+ "Enforce HTTPS for subdomains" : "Enforce HTTPS for subdomains",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Forces the clients to connect to %s and subdomains via an encrypted connection.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Please connect to your %s via HTTPS to enable or disable the SSL enforcement.",
+ "This is used for sending out notifications." : "This is used for sending out notifications.",
+ "Send mode" : "Send mode",
+ "From address" : "From address",
+ "mail" : "mail",
+ "Authentication method" : "Authentication method",
+ "Authentication required" : "Authentication required",
+ "Server address" : "Server address",
+ "Port" : "Port",
+ "Credentials" : "Credentials",
+ "SMTP Username" : "SMTP Username",
+ "SMTP Password" : "SMTP Password",
+ "Store credentials" : "Store credentials",
+ "Test email settings" : "Test email settings",
+ "Send email" : "Send email",
+ "Log level" : "Log level",
+ "More" : "More",
+ "Less" : "Less",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Developed by the ownCloud community , the source code is licensed under the AGPL .",
+ "More apps" : "More apps",
+ "Add your app" : "Add your app",
+ "by" : "by",
+ "licensed" : "licensed",
+ "Documentation:" : "Documentation:",
+ "User Documentation" : "User Documentation",
+ "Admin Documentation" : "Admin Documentation",
+ "Update to %s" : "Update to %s",
+ "Enable only for specific groups" : "Enable only for specific groups",
+ "Uninstall App" : "Uninstall App",
+ "Administrator Documentation" : "Administrator Documentation",
+ "Online Documentation" : "Online Documentation",
+ "Forum" : "Forum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Commercial Support",
+ "Get the apps to sync your files" : "Get the apps to sync your files",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !",
+ "Show First Run Wizard again" : "Show First Run Wizard again",
+ "You have used %s of the available %s " : "You have used %s of the available %s ",
+ "Password" : "Password",
+ "Your password was changed" : "Your password was changed",
+ "Unable to change your password" : "Unable to change your password",
+ "Current password" : "Current password",
+ "New password" : "New password",
+ "Change password" : "Change password",
+ "Full Name" : "Full Name",
+ "Email" : "Email",
+ "Your email address" : "Your email address",
+ "Fill in an email address to enable password recovery and receive notifications" : "Fill in an email address to enable password recovery and receive notifications",
+ "Profile picture" : "Profile picture",
+ "Upload new" : "Upload new",
+ "Select new from Files" : "Select new from Files",
+ "Remove image" : "Remove image",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Either png or jpg. Ideally square but you will be able to crop it.",
+ "Your avatar is provided by your original account." : "Your avatar is provided by your original account.",
+ "Cancel" : "Cancel",
+ "Choose as profile image" : "Choose as profile image",
+ "Language" : "Language",
+ "Help translate" : "Help translate",
+ "Common Name" : "Common Name",
+ "Valid until" : "Valid until",
+ "Issued By" : "Issued By",
+ "Valid until %s" : "Valid until %s",
+ "Import Root Certificate" : "Import Root Certificate",
+ "The encryption app is no longer enabled, please decrypt all your files" : "The encryption app is no longer enabled, please decrypt all your files",
+ "Log-in password" : "Log-in password",
+ "Decrypt all Files" : "Decrypt all Files",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly.",
+ "Restore Encryption Keys" : "Restore Encryption Keys",
+ "Delete Encryption Keys" : "Delete Encryption Keys",
+ "Show storage location" : "Show storage location",
+ "Show last log in" : "Show last log in",
+ "Username" : "Username",
+ "Create" : "Create",
+ "Admin Recovery Password" : "Admin Recovery Password",
+ "Enter the recovery password in order to recover the users files during password change" : "Enter the recovery password in order to recover the user's files during password change",
+ "Search Users" : "Search Users",
+ "Add Group" : "Add Group",
+ "Group" : "Group",
+ "Everyone" : "Everyone",
+ "Admins" : "Admins",
+ "Default Quota" : "Default Quota",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Please enter storage quota (e.g. \"512 MB\" or \"12 GB\")",
+ "Unlimited" : "Unlimited",
+ "Other" : "Other",
+ "Group Admin for" : "Group Admin for",
+ "Quota" : "Quota",
+ "Storage Location" : "Storage Location",
+ "Last Login" : "Last Login",
+ "change full name" : "change full name",
+ "set new password" : "set new password",
+ "Default" : "Default"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json
new file mode 100644
index 00000000000..844c145e694
--- /dev/null
+++ b/settings/l10n/en_GB.json
@@ -0,0 +1,242 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Security & Setup Warnings",
+ "Cron" : "Cron",
+ "Sharing" : "Sharing",
+ "Security" : "Security",
+ "Email Server" : "Email Server",
+ "Log" : "Log",
+ "Authentication error" : "Authentication error",
+ "Your full name has been changed." : "Your full name has been changed.",
+ "Unable to change full name" : "Unable to change full name",
+ "Group already exists" : "Group already exists",
+ "Unable to add group" : "Unable to add group",
+ "Files decrypted successfully" : "Files decrypted successfully",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Couldn't decrypt your files, please check your owncloud.log or ask your administrator",
+ "Couldn't decrypt your files, check your password and try again" : "Couldn't decrypt your files, check your password and try again",
+ "Encryption keys deleted permanently" : "Encryption keys deleted permanently",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator",
+ "Couldn't remove app." : "Couldn't remove app.",
+ "Email saved" : "Email saved",
+ "Invalid email" : "Invalid email",
+ "Unable to delete group" : "Unable to delete group",
+ "Unable to delete user" : "Unable to delete user",
+ "Backups restored successfully" : "Backups restored successfully",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator",
+ "Language changed" : "Language changed",
+ "Invalid request" : "Invalid request",
+ "Admins can't remove themself from the admin group" : "Admins can't remove themselves from the admin group",
+ "Unable to add user to group %s" : "Unable to add user to group %s",
+ "Unable to remove user from group %s" : "Unable to remove user from group %s",
+ "Couldn't update app." : "Couldn't update app.",
+ "Wrong password" : "Incorrect password",
+ "No user supplied" : "No user supplied",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Please provide an admin recovery password, otherwise all user data will be lost",
+ "Wrong admin recovery password. Please check the password and try again." : "Incorrect admin recovery password. Please check the password and try again.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Back-end doesn't support password change, but the user's encryption key was successfully updated.",
+ "Unable to change password" : "Unable to change password",
+ "Enabled" : "Enabled",
+ "Not enabled" : "Not enabled",
+ "Recommended" : "Recommended",
+ "Saved" : "Saved",
+ "test email settings" : "test email settings",
+ "If you received this email, the settings seem to be correct." : "If you received this email, the settings seem to be correct.",
+ "A problem occurred while sending the email. Please revise your settings." : "A problem occurred whilst sending the email. Please revise your settings.",
+ "Email sent" : "Email sent",
+ "You need to set your user email before being able to send test emails." : "You need to set your user email before being able to send test emails.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Are you really sure you want add \"{domain}\" as a trusted domain?",
+ "Add trusted domain" : "Add trusted domain",
+ "Sending..." : "Sending...",
+ "All" : "All",
+ "Please wait...." : "Please wait....",
+ "Error while disabling app" : "Error whilst disabling app",
+ "Disable" : "Disable",
+ "Enable" : "Enable",
+ "Error while enabling app" : "Error whilst enabling app",
+ "Updating...." : "Updating....",
+ "Error while updating app" : "Error whilst updating app",
+ "Updated" : "Updated",
+ "Uninstalling ...." : "Uninstalling...",
+ "Error while uninstalling app" : "Error whilst uninstalling app",
+ "Uninstall" : "Uninstall",
+ "Select a profile picture" : "Select a profile picture",
+ "Very weak password" : "Very weak password",
+ "Weak password" : "Weak password",
+ "So-so password" : "So-so password",
+ "Good password" : "Good password",
+ "Strong password" : "Strong password",
+ "Valid until {date}" : "Valid until {date}",
+ "Delete" : "Delete",
+ "Decrypting files... Please wait, this can take some time." : "Decrypting files... Please wait, this can take some time.",
+ "Delete encryption keys permanently." : "Delete encryption keys permanently.",
+ "Restore encryption keys." : "Restore encryption keys.",
+ "Groups" : "Groups",
+ "Unable to delete {objName}" : "Unable to delete {objName}",
+ "Error creating group" : "Error creating group",
+ "A valid group name must be provided" : "A valid group name must be provided",
+ "deleted {groupName}" : "deleted {groupName}",
+ "undo" : "undo",
+ "no group" : "no group",
+ "never" : "never",
+ "deleted {userName}" : "deleted {userName}",
+ "add group" : "add group",
+ "A valid username must be provided" : "A valid username must be provided",
+ "Error creating user" : "Error creating user",
+ "A valid password must be provided" : "A valid password must be provided",
+ "Warning: Home directory for user \"{user}\" already exists" : "Warning: Home directory for user \"{user}\" already exists",
+ "__language_name__" : "English (British English)",
+ "Personal Info" : "Personal Info",
+ "SSL root certificates" : "SSL root certificates",
+ "Encryption" : "Encryption",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Everything (fatal issues, errors, warnings, info, debug)",
+ "Info, warnings, errors and fatal issues" : "Info, warnings, errors and fatal issues",
+ "Warnings, errors and fatal issues" : "Warnings, errors and fatal issues",
+ "Errors and fatal issues" : "Errors and fatal issues",
+ "Fatal issues only" : "Fatal issues only",
+ "None" : "None",
+ "Login" : "Login",
+ "Plain" : "Plain",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Security Warning",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.",
+ "Read-Only config enabled" : "Read-Only config enabled",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update.",
+ "Setup Warning" : "Setup Warning",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.",
+ "Database Performance Info" : "Database Performance Info",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite is used as database. For larger installations we recommend changing this. To migrate to another database use the command line tool: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Module 'fileinfo' missing",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "The PHP module 'fileinfo' is missing. We strongly recommend enabling this module to get best results with mime-type detection.",
+ "Your PHP version is outdated" : "Your PHP version is outdated",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly.",
+ "PHP charset is not set to UTF-8" : "PHP charset is not set to UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'.",
+ "Locale not working" : "Locale not working",
+ "System locale can not be set to a one which supports UTF-8." : "System locale can not be set to a one which supports UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "This means that there might be problems with certain characters in file names.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We strongly suggest installing the required packages on your system to support one of the following locales: %s.",
+ "URL generation in notification emails" : "URL generation in notification emails",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")",
+ "Connectivity Checks" : "Connectivity Checks",
+ "No problems found" : "No problems found",
+ "Please double check the installation guides ." : "Please double check the installation guides .",
+ "Last cron was executed at %s." : "Last cron was executed at %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Last cron was executed at %s. This is more than an hour ago, something seems wrong.",
+ "Cron was not executed yet!" : "Cron was not executed yet!",
+ "Execute one task with each page loaded" : "Execute one task with each page loaded",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is registered at a webcron service to call cron.php every 15 minutes over http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Use system's cron service to call the cron.php file every 15 minutes.",
+ "Allow apps to use the Share API" : "Allow apps to use the Share API",
+ "Allow users to share via link" : "Allow users to share via link",
+ "Enforce password protection" : "Enforce password protection",
+ "Allow public uploads" : "Allow public uploads",
+ "Set default expiration date" : "Set default expiry date",
+ "Expire after " : "Expire after ",
+ "days" : "days",
+ "Enforce expiration date" : "Enforce expiry date",
+ "Allow resharing" : "Allow resharing",
+ "Restrict users to only share with users in their groups" : "Restrict users to only share with users in their groups",
+ "Allow users to send mail notification for shared files" : "Allow users to send mail notification for shared files",
+ "Exclude groups from sharing" : "Exclude groups from sharing",
+ "These groups will still be able to receive shares, but not to initiate them." : "These groups will still be able to receive shares, but not to initiate them.",
+ "Enforce HTTPS" : "Enforce HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Forces the clients to connect to %s via an encrypted connection.",
+ "Enforce HTTPS for subdomains" : "Enforce HTTPS for subdomains",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Forces the clients to connect to %s and subdomains via an encrypted connection.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Please connect to your %s via HTTPS to enable or disable the SSL enforcement.",
+ "This is used for sending out notifications." : "This is used for sending out notifications.",
+ "Send mode" : "Send mode",
+ "From address" : "From address",
+ "mail" : "mail",
+ "Authentication method" : "Authentication method",
+ "Authentication required" : "Authentication required",
+ "Server address" : "Server address",
+ "Port" : "Port",
+ "Credentials" : "Credentials",
+ "SMTP Username" : "SMTP Username",
+ "SMTP Password" : "SMTP Password",
+ "Store credentials" : "Store credentials",
+ "Test email settings" : "Test email settings",
+ "Send email" : "Send email",
+ "Log level" : "Log level",
+ "More" : "More",
+ "Less" : "Less",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Developed by the ownCloud community , the source code is licensed under the AGPL .",
+ "More apps" : "More apps",
+ "Add your app" : "Add your app",
+ "by" : "by",
+ "licensed" : "licensed",
+ "Documentation:" : "Documentation:",
+ "User Documentation" : "User Documentation",
+ "Admin Documentation" : "Admin Documentation",
+ "Update to %s" : "Update to %s",
+ "Enable only for specific groups" : "Enable only for specific groups",
+ "Uninstall App" : "Uninstall App",
+ "Administrator Documentation" : "Administrator Documentation",
+ "Online Documentation" : "Online Documentation",
+ "Forum" : "Forum",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Commercial Support",
+ "Get the apps to sync your files" : "Get the apps to sync your files",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !",
+ "Show First Run Wizard again" : "Show First Run Wizard again",
+ "You have used %s of the available %s " : "You have used %s of the available %s ",
+ "Password" : "Password",
+ "Your password was changed" : "Your password was changed",
+ "Unable to change your password" : "Unable to change your password",
+ "Current password" : "Current password",
+ "New password" : "New password",
+ "Change password" : "Change password",
+ "Full Name" : "Full Name",
+ "Email" : "Email",
+ "Your email address" : "Your email address",
+ "Fill in an email address to enable password recovery and receive notifications" : "Fill in an email address to enable password recovery and receive notifications",
+ "Profile picture" : "Profile picture",
+ "Upload new" : "Upload new",
+ "Select new from Files" : "Select new from Files",
+ "Remove image" : "Remove image",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Either png or jpg. Ideally square but you will be able to crop it.",
+ "Your avatar is provided by your original account." : "Your avatar is provided by your original account.",
+ "Cancel" : "Cancel",
+ "Choose as profile image" : "Choose as profile image",
+ "Language" : "Language",
+ "Help translate" : "Help translate",
+ "Common Name" : "Common Name",
+ "Valid until" : "Valid until",
+ "Issued By" : "Issued By",
+ "Valid until %s" : "Valid until %s",
+ "Import Root Certificate" : "Import Root Certificate",
+ "The encryption app is no longer enabled, please decrypt all your files" : "The encryption app is no longer enabled, please decrypt all your files",
+ "Log-in password" : "Log-in password",
+ "Decrypt all Files" : "Decrypt all Files",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly.",
+ "Restore Encryption Keys" : "Restore Encryption Keys",
+ "Delete Encryption Keys" : "Delete Encryption Keys",
+ "Show storage location" : "Show storage location",
+ "Show last log in" : "Show last log in",
+ "Username" : "Username",
+ "Create" : "Create",
+ "Admin Recovery Password" : "Admin Recovery Password",
+ "Enter the recovery password in order to recover the users files during password change" : "Enter the recovery password in order to recover the user's files during password change",
+ "Search Users" : "Search Users",
+ "Add Group" : "Add Group",
+ "Group" : "Group",
+ "Everyone" : "Everyone",
+ "Admins" : "Admins",
+ "Default Quota" : "Default Quota",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Please enter storage quota (e.g. \"512 MB\" or \"12 GB\")",
+ "Unlimited" : "Unlimited",
+ "Other" : "Other",
+ "Group Admin for" : "Group Admin for",
+ "Quota" : "Quota",
+ "Storage Location" : "Storage Location",
+ "Last Login" : "Last Login",
+ "change full name" : "change full name",
+ "set new password" : "set new password",
+ "Default" : "Default"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/en_GB.php b/settings/l10n/en_GB.php
deleted file mode 100644
index 101c94c2880..00000000000
--- a/settings/l10n/en_GB.php
+++ /dev/null
@@ -1,239 +0,0 @@
- "Invalid value supplied for %s",
-"Saved" => "Saved",
-"test email settings" => "test email settings",
-"If you received this email, the settings seem to be correct." => "If you received this email, the settings seem to be correct.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "A problem occurred whilst sending the e-mail. Please revisit your settings.",
-"Email sent" => "Email sent",
-"You need to set your user email before being able to send test emails." => "You need to set your user email before being able to send test emails.",
-"Send mode" => "Send mode",
-"Encryption" => "Encryption",
-"Authentication method" => "Authentication method",
-"Unable to load list from App Store" => "Unable to load list from App Store",
-"Authentication error" => "Authentication error",
-"Your full name has been changed." => "Your full name has been changed.",
-"Unable to change full name" => "Unable to change full name",
-"Group already exists" => "Group already exists",
-"Unable to add group" => "Unable to add group",
-"Files decrypted successfully" => "Files decrypted successfully",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Couldn't decrypt your files, please check your owncloud.log or ask your administrator",
-"Couldn't decrypt your files, check your password and try again" => "Couldn't decrypt your files, check your password and try again",
-"Encryption keys deleted permanently" => "Encryption keys deleted permanently",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator",
-"Couldn't remove app." => "Couldn't remove app.",
-"Email saved" => "Email saved",
-"Invalid email" => "Invalid email",
-"Unable to delete group" => "Unable to delete group",
-"Unable to delete user" => "Unable to delete user",
-"Backups restored successfully" => "Backups restored successfully",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator",
-"Language changed" => "Language changed",
-"Invalid request" => "Invalid request",
-"Admins can't remove themself from the admin group" => "Admins can't remove themselves from the admin group",
-"Unable to add user to group %s" => "Unable to add user to group %s",
-"Unable to remove user from group %s" => "Unable to remove user from group %s",
-"Couldn't update app." => "Couldn't update app.",
-"Wrong password" => "Incorrect password",
-"No user supplied" => "No user supplied",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Please provide an admin recovery password, otherwise all user data will be lost",
-"Wrong admin recovery password. Please check the password and try again." => "Incorrect admin recovery password. Please check the password and try again.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Back-end doesn't support password change, but the user's encryption key was successfully updated.",
-"Unable to change password" => "Unable to change password",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "Are you really sure you want add \"{domain}\" as a trusted domain?",
-"Add trusted domain" => "Add trusted domain",
-"Sending..." => "Sending...",
-"All" => "All",
-"User Documentation" => "User Documentation",
-"Admin Documentation" => "Admin Documentation",
-"Update to {appversion}" => "Update to {appversion}",
-"Uninstall App" => "Uninstall App",
-"Disable" => "Disable",
-"Enable" => "Enable",
-"Please wait...." => "Please wait....",
-"Error while disabling app" => "Error whilst disabling app",
-"Error while enabling app" => "Error whilst enabling app",
-"Updating...." => "Updating....",
-"Error while updating app" => "Error whilst updating app",
-"Error" => "Error",
-"Update" => "Update",
-"Updated" => "Updated",
-"Uninstalling ...." => "Uninstalling...",
-"Error while uninstalling app" => "Error whilst uninstalling app",
-"Uninstall" => "Uninstall",
-"Select a profile picture" => "Select a profile picture",
-"Very weak password" => "Very weak password",
-"Weak password" => "Weak password",
-"So-so password" => "So-so password",
-"Good password" => "Good password",
-"Strong password" => "Strong password",
-"Valid until {date}" => "Valid until {date}",
-"Delete" => "Delete",
-"Decrypting files... Please wait, this can take some time." => "Decrypting files... Please wait, this can take some time.",
-"Delete encryption keys permanently." => "Delete encryption keys permanently.",
-"Restore encryption keys." => "Restore encryption keys.",
-"Groups" => "Groups",
-"Unable to delete {objName}" => "Unable to delete {objName}",
-"Error creating group" => "Error creating group",
-"A valid group name must be provided" => "A valid group name must be provided",
-"deleted {groupName}" => "deleted {groupName}",
-"undo" => "undo",
-"Group Admin" => "Group Admin",
-"never" => "never",
-"deleted {userName}" => "deleted {userName}",
-"add group" => "add group",
-"A valid username must be provided" => "A valid username must be provided",
-"Error creating user" => "Error creating user",
-"A valid password must be provided" => "A valid password must be provided",
-"Warning: Home directory for user \"{user}\" already exists" => "Warning: Home directory for user \"{user}\" already exists",
-"__language_name__" => "English (British English)",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Everything (fatal issues, errors, warnings, info, debug)",
-"Info, warnings, errors and fatal issues" => "Info, warnings, errors and fatal issues",
-"Warnings, errors and fatal issues" => "Warnings, errors and fatal issues",
-"Errors and fatal issues" => "Errors and fatal issues",
-"Fatal issues only" => "Fatal issues only",
-"None" => "None",
-"Login" => "Login",
-"Plain" => "Plain",
-"NT LAN Manager" => "NT LAN Manager",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Security Warning",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.",
-"Setup Warning" => "Setup Warning",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.",
-"Database Performance Info" => "Database Performance Info",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "SQLite is used as database. For larger installations we recommend changing this. To migrate to another database use the command line tool: 'occ db:convert-type'",
-"Module 'fileinfo' missing" => "Module 'fileinfo' missing",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "The PHP module 'fileinfo' is missing. We strongly recommend enabling this module to get best results with mime-type detection.",
-"Your PHP version is outdated" => "Your PHP version is outdated",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly.",
-"PHP charset is not set to UTF-8" => "PHP charset is not set to UTF-8",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'.",
-"Locale not working" => "Locale not working",
-"System locale can not be set to a one which supports UTF-8." => "System locale can not be set to a one which supports UTF-8.",
-"This means that there might be problems with certain characters in file names." => "This means that there might be problems with certain characters in file names.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "We strongly suggest installing the required packages on your system to support one of the following locales: %s.",
-"URL generation in notification emails" => "URL generation in notification emails",
-"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")",
-"Connectivity checks" => "Connectivity checks",
-"No problems found" => "No problems found",
-"Please double check the installation guides ." => "Please double check the installation guides .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Last cron was executed at %s.",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Last cron was executed at %s. This is more than an hour ago, something seems wrong.",
-"Cron was not executed yet!" => "Cron was not executed yet!",
-"Execute one task with each page loaded" => "Execute one task with each page loaded",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php is registered at a webcron service to call cron.php every 15 minutes over http.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Use system's cron service to call the cron.php file every 15 minutes.",
-"Sharing" => "Sharing",
-"Allow apps to use the Share API" => "Allow apps to use the Share API",
-"Allow users to share via link" => "Allow users to share via link",
-"Enforce password protection" => "Enforce password protection",
-"Allow public uploads" => "Allow public uploads",
-"Set default expiration date" => "Set default expiry date",
-"Expire after " => "Expire after ",
-"days" => "days",
-"Enforce expiration date" => "Enforce expiry date",
-"Allow resharing" => "Allow resharing",
-"Restrict users to only share with users in their groups" => "Restrict users to only share with users in their groups",
-"Allow users to send mail notification for shared files" => "Allow users to send mail notification for shared files",
-"Exclude groups from sharing" => "Exclude groups from sharing",
-"These groups will still be able to receive shares, but not to initiate them." => "These groups will still be able to receive shares, but not to initiate them.",
-"Security" => "Security",
-"Enforce HTTPS" => "Enforce HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Forces the clients to connect to %s via an encrypted connection.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Please connect to your %s via HTTPS to enable or disable the SSL enforcement.",
-"Email Server" => "Email Server",
-"This is used for sending out notifications." => "This is used for sending out notifications.",
-"From address" => "From address",
-"mail" => "mail",
-"Authentication required" => "Authentication required",
-"Server address" => "Server address",
-"Port" => "Port",
-"Credentials" => "Credentials",
-"SMTP Username" => "SMTP Username",
-"SMTP Password" => "SMTP Password",
-"Test email settings" => "Test email settings",
-"Send email" => "Send email",
-"Log" => "Log",
-"Log level" => "Log level",
-"More" => "More",
-"Less" => "Less",
-"Version" => "Version",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Developed by the ownCloud community , the source code is licensed under the AGPL .",
-"Add your App" => "Add your App",
-"More Apps" => "More Apps",
-"Select an App" => "Select an App",
-"Documentation:" => "Documentation:",
-"See application page at apps.owncloud.com" => "See application page at apps.owncloud.com",
-"See application website" => "See application website",
-" -licensed by " => " -licensed by ",
-"Enable only for specific groups" => "Enable only for specific groups",
-"Administrator Documentation" => "Administrator Documentation",
-"Online Documentation" => "Online Documentation",
-"Forum" => "Forum",
-"Bugtracker" => "Bugtracker",
-"Commercial Support" => "Commercial Support",
-"Get the apps to sync your files" => "Get the apps to sync your files",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !",
-"Show First Run Wizard again" => "Show First Run Wizard again",
-"You have used %s of the available %s " => "You have used %s of the available %s ",
-"Password" => "Password",
-"Your password was changed" => "Your password was changed",
-"Unable to change your password" => "Unable to change your password",
-"Current password" => "Current password",
-"New password" => "New password",
-"Change password" => "Change password",
-"Full Name" => "Full Name",
-"Email" => "Email",
-"Your email address" => "Your email address",
-"Fill in an email address to enable password recovery and receive notifications" => "Fill in an email address to enable password recovery and receive notifications",
-"Profile picture" => "Profile picture",
-"Upload new" => "Upload new",
-"Select new from Files" => "Select new from Files",
-"Remove image" => "Remove image",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Either png or jpg. Ideally square but you will be able to crop it.",
-"Your avatar is provided by your original account." => "Your avatar is provided by your original account.",
-"Cancel" => "Cancel",
-"Choose as profile image" => "Choose as profile image",
-"Language" => "Language",
-"Help translate" => "Help translate",
-"SSL root certificates" => "SSL root certificates",
-"Common Name" => "Common Name",
-"Valid until" => "Valid until",
-"Issued By" => "Issued By",
-"Valid until %s" => "Valid until %s",
-"Import Root Certificate" => "Import Root Certificate",
-"The encryption app is no longer enabled, please decrypt all your files" => "The encryption app is no longer enabled, please decrypt all your files",
-"Log-in password" => "Log-in password",
-"Decrypt all Files" => "Decrypt all Files",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly.",
-"Restore Encryption Keys" => "Restore Encryption Keys",
-"Delete Encryption Keys" => "Delete Encryption Keys",
-"Show storage location" => "Show storage location",
-"Show last log in" => "Show last log in",
-"Login Name" => "Login Name",
-"Create" => "Create",
-"Admin Recovery Password" => "Admin Recovery Password",
-"Enter the recovery password in order to recover the users files during password change" => "Enter the recovery password in order to recover the user's files during password change",
-"Search Users and Groups" => "Search Users and Groups",
-"Add Group" => "Add Group",
-"Group" => "Group",
-"Everyone" => "Everyone",
-"Admins" => "Admins",
-"Default Quota" => "Default Quota",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Please enter storage quota (e.g. \"512 MB\" or \"12 GB\")",
-"Unlimited" => "Unlimited",
-"Other" => "Other",
-"Username" => "Username",
-"Quota" => "Quota",
-"Storage Location" => "Storage Location",
-"Last Login" => "Last Login",
-"change full name" => "change full name",
-"set new password" => "set new password",
-"Default" => "Default"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/eo.js b/settings/l10n/eo.js
new file mode 100644
index 00000000000..ff757ce143c
--- /dev/null
+++ b/settings/l10n/eo.js
@@ -0,0 +1,153 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Cron" : "Cron",
+ "Sharing" : "Kunhavigo",
+ "Security" : "Sekuro",
+ "Email Server" : "Retpoŝtoservilo",
+ "Log" : "Protokolo",
+ "Authentication error" : "Aŭtentiga eraro",
+ "Your full name has been changed." : "Via plena nomo ŝanĝitas.",
+ "Unable to change full name" : "Ne eblis ŝanĝi la plenan nomon",
+ "Group already exists" : "La grupo jam ekzistas",
+ "Unable to add group" : "Ne eblis aldoni la grupon",
+ "Files decrypted successfully" : "La dosieroj malĉifriĝis sukcese",
+ "Encryption keys deleted permanently" : "La ĉifroklavojn foriĝis por ĉiam.",
+ "Email saved" : "La retpoŝtadreso konserviĝis",
+ "Invalid email" : "Nevalida retpoŝtadreso",
+ "Unable to delete group" : "Ne eblis forigi la grupon",
+ "Unable to delete user" : "Ne eblis forigi la uzanton",
+ "Backups restored successfully" : "La savokopioj restaŭriĝis sukcese",
+ "Language changed" : "La lingvo estas ŝanĝita",
+ "Invalid request" : "Nevalida peto",
+ "Admins can't remove themself from the admin group" : "Administrantoj ne povas forigi sin mem el la administra grupo.",
+ "Unable to add user to group %s" : "Ne eblis aldoni la uzanton al la grupo %s",
+ "Unable to remove user from group %s" : "Ne eblis forigi la uzantan el la grupo %s",
+ "Couldn't update app." : "Ne eblis ĝisdatigi la aplikaĵon.",
+ "Wrong password" : "Malĝusta pasvorto",
+ "Unable to change password" : "Ne eblis ŝanĝi la pasvorton",
+ "Enabled" : "Kapabligita",
+ "Saved" : "Konservita",
+ "Email sent" : "La retpoŝtaĵo sendiĝis",
+ "Sending..." : "Sendante...",
+ "All" : "Ĉio",
+ "Please wait...." : "Bonvolu atendi...",
+ "Error while disabling app" : "Eraris malkapabligo de aplikaĵo",
+ "Disable" : "Malkapabligi",
+ "Enable" : "Kapabligi",
+ "Error while enabling app" : "Eraris kapabligo de aplikaĵo",
+ "Updating...." : "Ĝisdatigata...",
+ "Error while updating app" : "Eraris ĝisdatigo de la aplikaĵo",
+ "Updated" : "Ĝisdatigita",
+ "Uninstalling ...." : "Malinstalante...",
+ "Error while uninstalling app" : "Eraris malinstalo de aplikaĵo",
+ "Uninstall" : "Malinstali",
+ "Select a profile picture" : "Elekti profilan bildon",
+ "Very weak password" : "Tre malforta pasvorto",
+ "Weak password" : "Malforta pasvorto",
+ "So-so password" : "Mezaĉa pasvorto",
+ "Good password" : "Bona pasvorto",
+ "Strong password" : "Forta pasvorto",
+ "Delete" : "Forigi",
+ "Delete encryption keys permanently." : "Forigi ĉifroklavojn por ĉiam.",
+ "Restore encryption keys." : "Restaŭri ĉifroklavojn.",
+ "Groups" : "Grupoj",
+ "deleted {groupName}" : "{groupName} foriĝis",
+ "undo" : "malfari",
+ "never" : "neniam",
+ "deleted {userName}" : "{userName} foriĝis",
+ "add group" : "aldoni grupon",
+ "A valid username must be provided" : "Valida uzantonomo devas proviziĝi",
+ "Error creating user" : "Eraris kreo de uzanto",
+ "A valid password must be provided" : "Valida pasvorto devas proviziĝi",
+ "Warning: Home directory for user \"{user}\" already exists" : "Averto: hejmdosierujo por la uzanto “{user”} jam ekzistas",
+ "__language_name__" : "Esperanto",
+ "SSL root certificates" : "Radikaj SSL-atestoj",
+ "Encryption" : "Ĉifrado",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Ĉio (fatalaĵoj, eraroj, avertoj, informoj, sencimigaj mesaĝoj)",
+ "Info, warnings, errors and fatal issues" : "Informoj, avertoj, eraroj kaj fatalaĵoj",
+ "Warnings, errors and fatal issues" : "Avertoj, eraroj kaj fatalaĵoj",
+ "Errors and fatal issues" : "Eraroj kaj fatalaĵoj",
+ "Fatal issues only" : "Fatalaĵoj nur",
+ "None" : "Nenio",
+ "Login" : "Ensaluti",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Sekureca averto",
+ "Module 'fileinfo' missing" : "La modulo «fileinfo» mankas",
+ "Locale not working" : "La lokaĵaro ne funkcias",
+ "Please double check the installation guides ." : "Bonvolu duoble kontroli la gvidilon por instalo .",
+ "Allow apps to use the Share API" : "Kapabligi aplikaĵojn uzi la API-on pri Kunhavigo",
+ "Allow public uploads" : "Permesi publikajn alŝutojn",
+ "Expire after " : "Eksvalidigi post",
+ "days" : "tagoj",
+ "Allow resharing" : "Kapabligi rekunhavigon",
+ "Send mode" : "Sendi pli",
+ "From address" : "El adreso",
+ "mail" : "retpoŝto",
+ "Authentication method" : "Aŭtentiga metodo",
+ "Authentication required" : "Aŭtentiĝo nepras",
+ "Server address" : "Servila adreso",
+ "Port" : "Pordo",
+ "Credentials" : "Aŭtentigiloj",
+ "SMTP Username" : "SMTP-uzantonomo",
+ "SMTP Password" : "SMTP-pasvorto",
+ "Send email" : "Sendi retpoŝton",
+ "Log level" : "Registronivelo",
+ "More" : "Pli",
+ "Less" : "Malpli",
+ "Version" : "Eldono",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Ellaborita de la komunumo de ownCloud , la fontokodo publikas laŭ la permesilo AGPL .",
+ "by" : "de",
+ "Documentation:" : "Dokumentaro:",
+ "User Documentation" : "Dokumentaro por uzantoj",
+ "Admin Documentation" : "Administra dokumentaro",
+ "Enable only for specific groups" : "Kapabligi nur por specifajn grupojn",
+ "Uninstall App" : "Malinstali aplikaĵon",
+ "Administrator Documentation" : "Dokumentaro por administrantoj",
+ "Online Documentation" : "Reta dokumentaro",
+ "Forum" : "Forumo",
+ "Bugtracker" : "Cimoraportejo",
+ "Commercial Support" : "Komerca subteno",
+ "Get the apps to sync your files" : "Ekhavu la aplikaĵojn por sinkronigi viajn dosierojn",
+ "You have used %s of the available %s " : "Vi uzas %s el la disponeblaj %s ",
+ "Password" : "Pasvorto",
+ "Your password was changed" : "Via pasvorto ŝanĝiĝis",
+ "Unable to change your password" : "Ne eblis ŝanĝi vian pasvorton",
+ "Current password" : "Nuna pasvorto",
+ "New password" : "Nova pasvorto",
+ "Change password" : "Ŝanĝi la pasvorton",
+ "Full Name" : "Plena nomo",
+ "Email" : "Retpoŝto",
+ "Your email address" : "Via retpoŝta adreso",
+ "Profile picture" : "Profila bildo",
+ "Upload new" : "Alŝuti novan",
+ "Select new from Files" : "Elekti novan el dosieroj",
+ "Remove image" : "Forigi bildon",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Aŭ PNG aŭ JPG. Prefere ĝi kvadratu, sed vi povos stuci ĝin.",
+ "Cancel" : "Nuligi",
+ "Choose as profile image" : "Elekti kiel profilan bildon",
+ "Language" : "Lingvo",
+ "Help translate" : "Helpu traduki",
+ "Import Root Certificate" : "Enporti radikan ateston",
+ "Log-in password" : "Ensaluta pasvorto",
+ "Decrypt all Files" : "Malĉifri ĉiujn dosierojn",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Viaj ĉifroklavoj moviĝis al savokopia loko. Se io malsukcesas, vi povas restaŭri la klavojn. Nur forigu ilin porĉiame se vi certas, ke ĉiuj dosieroj malĉifriĝis korekte.",
+ "Restore Encryption Keys" : "Restaŭri ĉifroklavojn",
+ "Delete Encryption Keys" : "Forigi ĉifroklavojn",
+ "Username" : "Uzantonomo",
+ "Create" : "Krei",
+ "Add Group" : "Aldoni grupon",
+ "Group" : "Grupo",
+ "Everyone" : "Ĉiuj",
+ "Admins" : "Administrantoj",
+ "Default Quota" : "Defaŭlta kvoto",
+ "Unlimited" : "Senlima",
+ "Other" : "Alia",
+ "Quota" : "Kvoto",
+ "Last Login" : "Lasta ensaluto",
+ "change full name" : "ŝanĝi plenan nomon",
+ "set new password" : "agordi novan pasvorton",
+ "Default" : "Defaŭlta"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/eo.json b/settings/l10n/eo.json
new file mode 100644
index 00000000000..35af2f7f22f
--- /dev/null
+++ b/settings/l10n/eo.json
@@ -0,0 +1,151 @@
+{ "translations": {
+ "Cron" : "Cron",
+ "Sharing" : "Kunhavigo",
+ "Security" : "Sekuro",
+ "Email Server" : "Retpoŝtoservilo",
+ "Log" : "Protokolo",
+ "Authentication error" : "Aŭtentiga eraro",
+ "Your full name has been changed." : "Via plena nomo ŝanĝitas.",
+ "Unable to change full name" : "Ne eblis ŝanĝi la plenan nomon",
+ "Group already exists" : "La grupo jam ekzistas",
+ "Unable to add group" : "Ne eblis aldoni la grupon",
+ "Files decrypted successfully" : "La dosieroj malĉifriĝis sukcese",
+ "Encryption keys deleted permanently" : "La ĉifroklavojn foriĝis por ĉiam.",
+ "Email saved" : "La retpoŝtadreso konserviĝis",
+ "Invalid email" : "Nevalida retpoŝtadreso",
+ "Unable to delete group" : "Ne eblis forigi la grupon",
+ "Unable to delete user" : "Ne eblis forigi la uzanton",
+ "Backups restored successfully" : "La savokopioj restaŭriĝis sukcese",
+ "Language changed" : "La lingvo estas ŝanĝita",
+ "Invalid request" : "Nevalida peto",
+ "Admins can't remove themself from the admin group" : "Administrantoj ne povas forigi sin mem el la administra grupo.",
+ "Unable to add user to group %s" : "Ne eblis aldoni la uzanton al la grupo %s",
+ "Unable to remove user from group %s" : "Ne eblis forigi la uzantan el la grupo %s",
+ "Couldn't update app." : "Ne eblis ĝisdatigi la aplikaĵon.",
+ "Wrong password" : "Malĝusta pasvorto",
+ "Unable to change password" : "Ne eblis ŝanĝi la pasvorton",
+ "Enabled" : "Kapabligita",
+ "Saved" : "Konservita",
+ "Email sent" : "La retpoŝtaĵo sendiĝis",
+ "Sending..." : "Sendante...",
+ "All" : "Ĉio",
+ "Please wait...." : "Bonvolu atendi...",
+ "Error while disabling app" : "Eraris malkapabligo de aplikaĵo",
+ "Disable" : "Malkapabligi",
+ "Enable" : "Kapabligi",
+ "Error while enabling app" : "Eraris kapabligo de aplikaĵo",
+ "Updating...." : "Ĝisdatigata...",
+ "Error while updating app" : "Eraris ĝisdatigo de la aplikaĵo",
+ "Updated" : "Ĝisdatigita",
+ "Uninstalling ...." : "Malinstalante...",
+ "Error while uninstalling app" : "Eraris malinstalo de aplikaĵo",
+ "Uninstall" : "Malinstali",
+ "Select a profile picture" : "Elekti profilan bildon",
+ "Very weak password" : "Tre malforta pasvorto",
+ "Weak password" : "Malforta pasvorto",
+ "So-so password" : "Mezaĉa pasvorto",
+ "Good password" : "Bona pasvorto",
+ "Strong password" : "Forta pasvorto",
+ "Delete" : "Forigi",
+ "Delete encryption keys permanently." : "Forigi ĉifroklavojn por ĉiam.",
+ "Restore encryption keys." : "Restaŭri ĉifroklavojn.",
+ "Groups" : "Grupoj",
+ "deleted {groupName}" : "{groupName} foriĝis",
+ "undo" : "malfari",
+ "never" : "neniam",
+ "deleted {userName}" : "{userName} foriĝis",
+ "add group" : "aldoni grupon",
+ "A valid username must be provided" : "Valida uzantonomo devas proviziĝi",
+ "Error creating user" : "Eraris kreo de uzanto",
+ "A valid password must be provided" : "Valida pasvorto devas proviziĝi",
+ "Warning: Home directory for user \"{user}\" already exists" : "Averto: hejmdosierujo por la uzanto “{user”} jam ekzistas",
+ "__language_name__" : "Esperanto",
+ "SSL root certificates" : "Radikaj SSL-atestoj",
+ "Encryption" : "Ĉifrado",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Ĉio (fatalaĵoj, eraroj, avertoj, informoj, sencimigaj mesaĝoj)",
+ "Info, warnings, errors and fatal issues" : "Informoj, avertoj, eraroj kaj fatalaĵoj",
+ "Warnings, errors and fatal issues" : "Avertoj, eraroj kaj fatalaĵoj",
+ "Errors and fatal issues" : "Eraroj kaj fatalaĵoj",
+ "Fatal issues only" : "Fatalaĵoj nur",
+ "None" : "Nenio",
+ "Login" : "Ensaluti",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Sekureca averto",
+ "Module 'fileinfo' missing" : "La modulo «fileinfo» mankas",
+ "Locale not working" : "La lokaĵaro ne funkcias",
+ "Please double check the installation guides ." : "Bonvolu duoble kontroli la gvidilon por instalo .",
+ "Allow apps to use the Share API" : "Kapabligi aplikaĵojn uzi la API-on pri Kunhavigo",
+ "Allow public uploads" : "Permesi publikajn alŝutojn",
+ "Expire after " : "Eksvalidigi post",
+ "days" : "tagoj",
+ "Allow resharing" : "Kapabligi rekunhavigon",
+ "Send mode" : "Sendi pli",
+ "From address" : "El adreso",
+ "mail" : "retpoŝto",
+ "Authentication method" : "Aŭtentiga metodo",
+ "Authentication required" : "Aŭtentiĝo nepras",
+ "Server address" : "Servila adreso",
+ "Port" : "Pordo",
+ "Credentials" : "Aŭtentigiloj",
+ "SMTP Username" : "SMTP-uzantonomo",
+ "SMTP Password" : "SMTP-pasvorto",
+ "Send email" : "Sendi retpoŝton",
+ "Log level" : "Registronivelo",
+ "More" : "Pli",
+ "Less" : "Malpli",
+ "Version" : "Eldono",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Ellaborita de la komunumo de ownCloud , la fontokodo publikas laŭ la permesilo AGPL .",
+ "by" : "de",
+ "Documentation:" : "Dokumentaro:",
+ "User Documentation" : "Dokumentaro por uzantoj",
+ "Admin Documentation" : "Administra dokumentaro",
+ "Enable only for specific groups" : "Kapabligi nur por specifajn grupojn",
+ "Uninstall App" : "Malinstali aplikaĵon",
+ "Administrator Documentation" : "Dokumentaro por administrantoj",
+ "Online Documentation" : "Reta dokumentaro",
+ "Forum" : "Forumo",
+ "Bugtracker" : "Cimoraportejo",
+ "Commercial Support" : "Komerca subteno",
+ "Get the apps to sync your files" : "Ekhavu la aplikaĵojn por sinkronigi viajn dosierojn",
+ "You have used %s of the available %s " : "Vi uzas %s el la disponeblaj %s ",
+ "Password" : "Pasvorto",
+ "Your password was changed" : "Via pasvorto ŝanĝiĝis",
+ "Unable to change your password" : "Ne eblis ŝanĝi vian pasvorton",
+ "Current password" : "Nuna pasvorto",
+ "New password" : "Nova pasvorto",
+ "Change password" : "Ŝanĝi la pasvorton",
+ "Full Name" : "Plena nomo",
+ "Email" : "Retpoŝto",
+ "Your email address" : "Via retpoŝta adreso",
+ "Profile picture" : "Profila bildo",
+ "Upload new" : "Alŝuti novan",
+ "Select new from Files" : "Elekti novan el dosieroj",
+ "Remove image" : "Forigi bildon",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Aŭ PNG aŭ JPG. Prefere ĝi kvadratu, sed vi povos stuci ĝin.",
+ "Cancel" : "Nuligi",
+ "Choose as profile image" : "Elekti kiel profilan bildon",
+ "Language" : "Lingvo",
+ "Help translate" : "Helpu traduki",
+ "Import Root Certificate" : "Enporti radikan ateston",
+ "Log-in password" : "Ensaluta pasvorto",
+ "Decrypt all Files" : "Malĉifri ĉiujn dosierojn",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Viaj ĉifroklavoj moviĝis al savokopia loko. Se io malsukcesas, vi povas restaŭri la klavojn. Nur forigu ilin porĉiame se vi certas, ke ĉiuj dosieroj malĉifriĝis korekte.",
+ "Restore Encryption Keys" : "Restaŭri ĉifroklavojn",
+ "Delete Encryption Keys" : "Forigi ĉifroklavojn",
+ "Username" : "Uzantonomo",
+ "Create" : "Krei",
+ "Add Group" : "Aldoni grupon",
+ "Group" : "Grupo",
+ "Everyone" : "Ĉiuj",
+ "Admins" : "Administrantoj",
+ "Default Quota" : "Defaŭlta kvoto",
+ "Unlimited" : "Senlima",
+ "Other" : "Alia",
+ "Quota" : "Kvoto",
+ "Last Login" : "Lasta ensaluto",
+ "change full name" : "ŝanĝi plenan nomon",
+ "set new password" : "agordi novan pasvorton",
+ "Default" : "Defaŭlta"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/eo.php b/settings/l10n/eo.php
deleted file mode 100644
index 53724f9bc6c..00000000000
--- a/settings/l10n/eo.php
+++ /dev/null
@@ -1,163 +0,0 @@
- "Konservita",
-"Email sent" => "La retpoŝtaĵo sendiĝis",
-"Send mode" => "Sendi pli",
-"Encryption" => "Ĉifrado",
-"Authentication method" => "Aŭtentiga metodo",
-"Unable to load list from App Store" => "Ne eblis ŝargi liston el aplikaĵovendejo",
-"Authentication error" => "Aŭtentiga eraro",
-"Your full name has been changed." => "Via plena nomo ŝanĝitas.",
-"Unable to change full name" => "Ne eblis ŝanĝi la plenan nomon",
-"Group already exists" => "La grupo jam ekzistas",
-"Unable to add group" => "Ne eblis aldoni la grupon",
-"Files decrypted successfully" => "La dosieroj malĉifriĝis sukcese",
-"Encryption keys deleted permanently" => "La ĉifroklavojn foriĝis por ĉiam.",
-"Email saved" => "La retpoŝtadreso konserviĝis",
-"Invalid email" => "Nevalida retpoŝtadreso",
-"Unable to delete group" => "Ne eblis forigi la grupon",
-"Unable to delete user" => "Ne eblis forigi la uzanton",
-"Backups restored successfully" => "La savokopioj restaŭriĝis sukcese",
-"Language changed" => "La lingvo estas ŝanĝita",
-"Invalid request" => "Nevalida peto",
-"Admins can't remove themself from the admin group" => "Administrantoj ne povas forigi sin mem el la administra grupo.",
-"Unable to add user to group %s" => "Ne eblis aldoni la uzanton al la grupo %s",
-"Unable to remove user from group %s" => "Ne eblis forigi la uzantan el la grupo %s",
-"Couldn't update app." => "Ne eblis ĝisdatigi la aplikaĵon.",
-"Wrong password" => "Malĝusta pasvorto",
-"Unable to change password" => "Ne eblis ŝanĝi la pasvorton",
-"Sending..." => "Sendante...",
-"All" => "Ĉio",
-"User Documentation" => "Dokumentaro por uzantoj",
-"Admin Documentation" => "Administra dokumentaro",
-"Update to {appversion}" => "Ĝisdatigi al {appversion}",
-"Uninstall App" => "Malinstali aplikaĵon",
-"Disable" => "Malkapabligi",
-"Enable" => "Kapabligi",
-"Please wait...." => "Bonvolu atendi...",
-"Error while disabling app" => "Eraris malkapabligo de aplikaĵo",
-"Error while enabling app" => "Eraris kapabligo de aplikaĵo",
-"Updating...." => "Ĝisdatigata...",
-"Error while updating app" => "Eraris ĝisdatigo de la aplikaĵo",
-"Error" => "Eraro",
-"Update" => "Ĝisdatigi",
-"Updated" => "Ĝisdatigita",
-"Uninstalling ...." => "Malinstalante...",
-"Error while uninstalling app" => "Eraris malinstalo de aplikaĵo",
-"Uninstall" => "Malinstali",
-"Select a profile picture" => "Elekti profilan bildon",
-"Very weak password" => "Tre malforta pasvorto",
-"Weak password" => "Malforta pasvorto",
-"So-so password" => "Mezaĉa pasvorto",
-"Good password" => "Bona pasvorto",
-"Strong password" => "Forta pasvorto",
-"Delete" => "Forigi",
-"Delete encryption keys permanently." => "Forigi ĉifroklavojn por ĉiam.",
-"Restore encryption keys." => "Restaŭri ĉifroklavojn.",
-"Groups" => "Grupoj",
-"deleted {groupName}" => "{groupName} foriĝis",
-"undo" => "malfari",
-"Group Admin" => "Grupadministranto",
-"never" => "neniam",
-"deleted {userName}" => "{userName} foriĝis",
-"add group" => "aldoni grupon",
-"A valid username must be provided" => "Valida uzantonomo devas proviziĝi",
-"Error creating user" => "Eraris kreo de uzanto",
-"A valid password must be provided" => "Valida pasvorto devas proviziĝi",
-"Warning: Home directory for user \"{user}\" already exists" => "Averto: hejmdosierujo por la uzanto “{user”} jam ekzistas",
-"__language_name__" => "Esperanto",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Ĉio (fatalaĵoj, eraroj, avertoj, informoj, sencimigaj mesaĝoj)",
-"Info, warnings, errors and fatal issues" => "Informoj, avertoj, eraroj kaj fatalaĵoj",
-"Warnings, errors and fatal issues" => "Avertoj, eraroj kaj fatalaĵoj",
-"Errors and fatal issues" => "Eraroj kaj fatalaĵoj",
-"Fatal issues only" => "Fatalaĵoj nur",
-"None" => "Nenio",
-"Login" => "Ensaluti",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Sekureca averto",
-"Module 'fileinfo' missing" => "La modulo «fileinfo» mankas",
-"Locale not working" => "La lokaĵaro ne funkcias",
-"Please double check the installation guides ." => "Bonvolu duoble kontroli la gvidilon por instalo .",
-"Cron" => "Cron",
-"Sharing" => "Kunhavigo",
-"Allow apps to use the Share API" => "Kapabligi aplikaĵojn uzi la API-on pri Kunhavigo",
-"Allow public uploads" => "Permesi publikajn alŝutojn",
-"Expire after " => "Eksvalidigi post",
-"days" => "tagoj",
-"Allow resharing" => "Kapabligi rekunhavigon",
-"Security" => "Sekuro",
-"Email Server" => "Retpoŝtoservilo",
-"From address" => "El adreso",
-"mail" => "retpoŝto",
-"Authentication required" => "Aŭtentiĝo nepras",
-"Server address" => "Servila adreso",
-"Port" => "Pordo",
-"Credentials" => "Aŭtentigiloj",
-"SMTP Username" => "SMTP-uzantonomo",
-"SMTP Password" => "SMTP-pasvorto",
-"Send email" => "Sendi retpoŝton",
-"Log" => "Protokolo",
-"Log level" => "Registronivelo",
-"More" => "Pli",
-"Less" => "Malpli",
-"Version" => "Eldono",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Ellaborita de la komunumo de ownCloud , la fontokodo publikas laŭ la permesilo AGPL .",
-"Add your App" => "Aldonu vian aplikaĵon",
-"More Apps" => "Pli da aplikaĵoj",
-"Select an App" => "Elekti aplikaĵon",
-"Documentation:" => "Dokumentaro:",
-"See application page at apps.owncloud.com" => "Vidu la paĝon pri aplikaĵoj ĉe apps.owncloud.com",
-"See application website" => "Vidi la TTT-ejon de la aplikaĵo",
-" -licensed by " => "-permesilhavigita de ",
-"Enable only for specific groups" => "Kapabligi nur por specifajn grupojn",
-"Administrator Documentation" => "Dokumentaro por administrantoj",
-"Online Documentation" => "Reta dokumentaro",
-"Forum" => "Forumo",
-"Bugtracker" => "Cimoraportejo",
-"Commercial Support" => "Komerca subteno",
-"Get the apps to sync your files" => "Ekhavu la aplikaĵojn por sinkronigi viajn dosierojn",
-"You have used %s of the available %s " => "Vi uzas %s el la disponeblaj %s ",
-"Password" => "Pasvorto",
-"Your password was changed" => "Via pasvorto ŝanĝiĝis",
-"Unable to change your password" => "Ne eblis ŝanĝi vian pasvorton",
-"Current password" => "Nuna pasvorto",
-"New password" => "Nova pasvorto",
-"Change password" => "Ŝanĝi la pasvorton",
-"Full Name" => "Plena nomo",
-"Email" => "Retpoŝto",
-"Your email address" => "Via retpoŝta adreso",
-"Profile picture" => "Profila bildo",
-"Upload new" => "Alŝuti novan",
-"Select new from Files" => "Elekti novan el dosieroj",
-"Remove image" => "Forigi bildon",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Aŭ PNG aŭ JPG. Prefere ĝi kvadratu, sed vi povos stuci ĝin.",
-"Cancel" => "Nuligi",
-"Choose as profile image" => "Elekti kiel profilan bildon",
-"Language" => "Lingvo",
-"Help translate" => "Helpu traduki",
-"SSL root certificates" => "Radikaj SSL-atestoj",
-"Import Root Certificate" => "Enporti radikan ateston",
-"Log-in password" => "Ensaluta pasvorto",
-"Decrypt all Files" => "Malĉifri ĉiujn dosierojn",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Viaj ĉifroklavoj moviĝis al savokopia loko. Se io malsukcesas, vi povas restaŭri la klavojn. Nur forigu ilin porĉiame se vi certas, ke ĉiuj dosieroj malĉifriĝis korekte.",
-"Restore Encryption Keys" => "Restaŭri ĉifroklavojn",
-"Delete Encryption Keys" => "Forigi ĉifroklavojn",
-"Login Name" => "Ensaluti",
-"Create" => "Krei",
-"Search Users and Groups" => "Serĉi uzantojn kaj grupojn",
-"Add Group" => "Aldoni grupon",
-"Group" => "Grupo",
-"Everyone" => "Ĉiuj",
-"Admins" => "Administrantoj",
-"Default Quota" => "Defaŭlta kvoto",
-"Unlimited" => "Senlima",
-"Other" => "Alia",
-"Username" => "Uzantonomo",
-"Quota" => "Kvoto",
-"Last Login" => "Lasta ensaluto",
-"change full name" => "ŝanĝi plenan nomon",
-"set new password" => "agordi novan pasvorton",
-"Default" => "Defaŭlta"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
new file mode 100644
index 00000000000..ba12cb68f6e
--- /dev/null
+++ b/settings/l10n/es.js
@@ -0,0 +1,243 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Advertencias de configuración y seguridad",
+ "Cron" : "Cron",
+ "Sharing" : "Compartiendo",
+ "Security" : "Seguridad",
+ "Email Server" : "Servidor de correo electrónico",
+ "Log" : "Registro",
+ "Authentication error" : "Error de autenticación",
+ "Your full name has been changed." : "Se ha cambiado su nombre completo.",
+ "Unable to change full name" : "No se puede cambiar el nombre completo",
+ "Group already exists" : "El grupo ya existe",
+ "Unable to add group" : "No se pudo añadir el grupo",
+ "Files decrypted successfully" : "Los archivos fueron descifrados",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "No se pudo descifrar sus archivos. Revise el owncloud.log o consulte con su administrador",
+ "Couldn't decrypt your files, check your password and try again" : "No se pudo descifrar sus archivos. Revise su contraseña e inténtelo de nuevo",
+ "Encryption keys deleted permanently" : "Claves de cifrado eliminadas permanentemente",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "No se pudieron eliminar permanentemente sus claves de cifrado. Revise owncloud.log o consulte con su administrador.",
+ "Couldn't remove app." : "No se pudo eliminar la aplicación.",
+ "Email saved" : "Correo electrónico guardado",
+ "Invalid email" : "Correo electrónico no válido",
+ "Unable to delete group" : "No se pudo eliminar el grupo",
+ "Unable to delete user" : "No se pudo eliminar el usuario",
+ "Backups restored successfully" : "Copia de seguridad restaurada",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "No se pudieron restarurar sus claves de cifrado. Revise owncloud.log o consulte con su administrador.",
+ "Language changed" : "Idioma cambiado",
+ "Invalid request" : "Petición no válida",
+ "Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador",
+ "Unable to add user to group %s" : "No se pudo añadir el usuario al grupo %s",
+ "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
+ "Couldn't update app." : "No se pudo actualizar la aplicación.",
+ "Wrong password" : "Contraseña incorrecta",
+ "No user supplied" : "No se especificó un usuario",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor facilite una contraseña de recuperación de administrador, sino podrían perderse todos los datos de usuario",
+ "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor compruebe la contraseña e inténtelo de nuevo.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "El back-end no soporta cambios de contraseña, pero la clave de cifrado del usuario ha sido actualizada satisfactoriamente.",
+ "Unable to change password" : "No se ha podido cambiar la contraseña",
+ "Enabled" : "Habilitado",
+ "Not enabled" : "No habilitado",
+ "Recommended" : "Recomendado",
+ "Saved" : "Guardado",
+ "test email settings" : "probar configuración de correo electrónico",
+ "If you received this email, the settings seem to be correct." : "Si recibió este mensaje de correo electrónico, su configuración debe estar correcta.",
+ "A problem occurred while sending the email. Please revise your settings." : "Ocurrió un problema al mandar el mensaje. Revise la configuración.",
+ "Email sent" : "Correo electrónico enviado",
+ "You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "¿Está seguro de querer agregar \"{domain}\" como un dominio de confianza?",
+ "Add trusted domain" : "Agregar dominio de confianza",
+ "Sending..." : "Enviando...",
+ "All" : "Todos",
+ "Please wait...." : "Espere, por favor....",
+ "Error while disabling app" : "Error mientras se desactivaba la aplicación",
+ "Disable" : "Desactivar",
+ "Enable" : "Activar",
+ "Error while enabling app" : "Error mientras se activaba la aplicación",
+ "Updating...." : "Actualizando....",
+ "Error while updating app" : "Error mientras se actualizaba la aplicación",
+ "Updated" : "Actualizado",
+ "Uninstalling ...." : "Desinstalando...",
+ "Error while uninstalling app" : "Error al desinstalar la aplicación",
+ "Uninstall" : "Desinstalar",
+ "Select a profile picture" : "Seleccionar una imagen de perfil",
+ "Very weak password" : "Contraseña muy débil",
+ "Weak password" : "Contraseña débil",
+ "So-so password" : "Contraseña pasable",
+ "Good password" : "Contraseña buena",
+ "Strong password" : "Contraseña muy buena",
+ "Valid until {date}" : "Válido hasta {date}",
+ "Delete" : "Eliminar",
+ "Decrypting files... Please wait, this can take some time." : "Descifrando archivos... Espere por favor, esto puede llevar algo de tiempo.",
+ "Delete encryption keys permanently." : "Eliminar claves de cifrado permanentemente.",
+ "Restore encryption keys." : "Restaurar claves de cifrado.",
+ "Groups" : "Grupos",
+ "Unable to delete {objName}" : "No es posible eliminar {objName}",
+ "Error creating group" : "Error al crear un grupo",
+ "A valid group name must be provided" : "Se debe dar un nombre válido para el grupo ",
+ "deleted {groupName}" : "borrado {groupName}",
+ "undo" : "deshacer",
+ "no group" : "sin grupo",
+ "never" : "nunca",
+ "deleted {userName}" : "borrado {userName}",
+ "add group" : "añadir Grupo",
+ "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
+ "Error creating user" : "Error al crear usuario",
+ "A valid password must be provided" : "Se debe proporcionar una contraseña válida",
+ "Warning: Home directory for user \"{user}\" already exists" : "Atención: el directorio de inicio para el usuario \"{user}\" ya existe.",
+ "__language_name__" : "Castellano",
+ "Personal Info" : "Información personal",
+ "SSL root certificates" : "Certificados raíz SSL",
+ "Encryption" : "Cifrado",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Todo (Información, Avisos, Errores, debug y problemas fatales)",
+ "Info, warnings, errors and fatal issues" : "Información, Avisos, Errores y problemas fatales",
+ "Warnings, errors and fatal issues" : "Advertencias, errores y problemas fatales",
+ "Errors and fatal issues" : "Errores y problemas fatales",
+ "Fatal issues only" : "Problemas fatales solamente",
+ "None" : "Ninguno",
+ "Login" : "Iniciar sesión",
+ "Plain" : "Plano",
+ "NT LAN Manager" : "Gestor de NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Advertencia de seguridad",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está ingresando a %s vía HTTP. Le recomendamos encarecidamente que configure su servidor para que requiera HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
+ "Read-Only config enabled" : "Configuración de solo lectura activada",
+ "Setup Warning" : "Advertencia de configuración",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones del principales no estén accesibles.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto sea causado por un cache o acelerador, como por ejemplo Zend OPcache o eAccelerator.",
+ "Database Performance Info" : "Información de rendimiento de la base de datos",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Se está usando SQLite como base de datos. Para instalaciones más grandes, recomendamos cambiar esto. Para migrar a otra base de datos, use la herramienta de línea de comandos: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "No se ha encontrado el módulo \"fileinfo\"",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "No se ha encontrado el modulo PHP 'fileinfo'. Le recomendamos encarecidamente que habilite este módulo para obtener mejores resultados con la detección de tipos MIME.",
+ "Your PHP version is outdated" : "Su versión de PHP no está actualizada",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Su versión de PHP ha caducado. Le sugerimos encarecidamente que la actualize a 5.3.8 o a una más nueva porque normalmente las versiones antiguas no funcionan bien. Puede ser que esta instalación no esté funcionando bien por ello.",
+ "PHP charset is not set to UTF-8" : "El conjunto de caracteres de PHP no está establecido en UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "El set de caracteres usado por PHP no es UTF-8. Esto puede causar grandes problemas con nombres de archivos que contengan caracteres que no sean ASCII. Recomendamos encarecidamente cambiar el valor de 'default_charset' en php.ini a 'UTF-8'.",
+ "Locale not working" : "La configuración regional no está funcionando",
+ "System locale can not be set to a one which supports UTF-8." : "No se puede escoger una configuración regional que soporte UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ",
+ "URL generation in notification emails" : "Generación de URL en mensajes de notificación",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si su instalación no está ubicada en la raíz del dominio y usa el cron del sistema, puede haber problemas al generarse los URL. Para evitarlos, configure la opción \"overwritewebroot\" en su archivo config.php para que use la ruta de la raíz del sitio web de su instalación (sugerencia: \"%s\")",
+ "Connectivity Checks" : "Probar la Conectividad",
+ "No problems found" : "No se han encontrado problemas",
+ "Please double check the installation guides ." : "Por favor, vuelva a comprobar las guías de instalación .",
+ "Last cron was executed at %s." : "Cron fue ejecutado por última vez a las %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Cron fue ejecutado por última vez a las %s. Esto fue hace más de una hora, algo anda mal.",
+ "Cron was not executed yet!" : "¡Cron aún no ha sido ejecutado!",
+ "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos.",
+ "Allow apps to use the Share API" : "Permitir a las aplicaciones utilizar la API de Compartición",
+ "Allow users to share via link" : "Permite a los usuarios compartir por medio de enlaces",
+ "Enforce password protection" : "Forzar la protección por contraseña.",
+ "Allow public uploads" : "Permitir subidas públicas",
+ "Set default expiration date" : "Establecer fecha de caducidad predeterminada",
+ "Expire after " : "Caduca luego de",
+ "days" : "días",
+ "Enforce expiration date" : "Imponer fecha de caducidad",
+ "Allow resharing" : "Permitir re-compartición",
+ "Restrict users to only share with users in their groups" : "Restringe a los usuarios a compartir solo con otros usuarios en sus grupos",
+ "Allow users to send mail notification for shared files" : "Permitir a los usuarios enviar mensajes de notificación para ficheros compartidos",
+ "Exclude groups from sharing" : "Excluye grupos de compartir",
+ "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán, pero no podrán iniciarlos.",
+ "Enforce HTTPS" : "Forzar HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Forzar a los clientes a conectarse a %s por medio de una conexión cifrada.",
+ "Enforce HTTPS for subdomains" : "Forzar HTTPS para subdominios",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Obliga a los clientes a conectara %s y subdominios mediante una conexión cifrada.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Por favor, conéctese a su %s a través de HTTPS para habilitar o deshabilitar la aplicación de SSL.",
+ "This is used for sending out notifications." : "Esto se usa para enviar notificaciones.",
+ "Send mode" : "Modo de envío",
+ "From address" : "Desde la dirección",
+ "mail" : "correo electrónico",
+ "Authentication method" : "Método de autenticación",
+ "Authentication required" : "Se necesita autenticación",
+ "Server address" : "Dirección del servidor",
+ "Port" : "Puerto",
+ "Credentials" : "Credenciales",
+ "SMTP Username" : "Nombre de usuario SMTP",
+ "SMTP Password" : "Contraseña SMTP",
+ "Store credentials" : "Almacenar credenciales",
+ "Test email settings" : "Probar configuración de correo electrónico",
+ "Send email" : "Enviar mensaje",
+ "Log level" : "Nivel de registro",
+ "More" : "Más",
+ "Less" : "Menos",
+ "Version" : "Versión",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Desarrollado por la comunidad ownCloud , el código fuente está bajo licencia AGPL .",
+ "More apps" : "Más aplicaciones",
+ "Add your app" : "Agregue su aplicación",
+ "by" : "por",
+ "licensed" : "licenciado",
+ "Documentation:" : "Documentación:",
+ "User Documentation" : "Documentación de usuario",
+ "Admin Documentation" : "Documentación para administradores",
+ "Update to %s" : "Actualizado a %s",
+ "Enable only for specific groups" : "Activar solamente para grupos específicos",
+ "Uninstall App" : "Desinstalar aplicación",
+ "Administrator Documentation" : "Documentación de administrador",
+ "Online Documentation" : "Documentación en línea",
+ "Forum" : "Foro",
+ "Bugtracker" : "Rastreador de fallos",
+ "Commercial Support" : "Soporte comercial",
+ "Get the apps to sync your files" : "Obtener las aplicaciones para sincronizar sus archivos",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Si desea contribuir al proyecto\n\t\túnase al desarrollo \n\t\to\n\t\t¡corra la voz !",
+ "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de ejecución inicial",
+ "You have used %s of the available %s " : "Ha usado %s de los %s disponibles",
+ "Password" : "Contraseña",
+ "Your password was changed" : "Su contraseña ha sido cambiada",
+ "Unable to change your password" : "No se ha podido cambiar su contraseña",
+ "Current password" : "Contraseña actual",
+ "New password" : "Nueva contraseña",
+ "Change password" : "Cambiar contraseña",
+ "Full Name" : "Nombre completo",
+ "Email" : "Correo electrónico",
+ "Your email address" : "Su dirección de correo",
+ "Fill in an email address to enable password recovery and receive notifications" : "Introducir una dirección de correo electrónico para activar la recuperación de contraseñas y recibir notificaciones",
+ "Profile picture" : "Foto de perfil",
+ "Upload new" : "Subir otra",
+ "Select new from Files" : "Seleccionar otra desde Archivos",
+ "Remove image" : "Borrar imagen",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Archivo PNG o JPG. Preferiblemente cuadrado, pero tendrás la posibilidad de recortarlo.",
+ "Your avatar is provided by your original account." : "Su avatar es proporcionado por su cuenta original.",
+ "Cancel" : "Cancelar",
+ "Choose as profile image" : "Seleccionar como imagen de perfil",
+ "Language" : "Idioma",
+ "Help translate" : "Ayúdanos a traducir",
+ "Common Name" : "Nombre común",
+ "Valid until" : "Válido hasta",
+ "Issued By" : "Emitido por",
+ "Valid until %s" : "Válido hasta %s",
+ "Import Root Certificate" : "Importar certificado raíz",
+ "The encryption app is no longer enabled, please decrypt all your files" : "La aplicación de cifrado ya no está activada, descifre todos sus archivos",
+ "Log-in password" : "Contraseña de acceso",
+ "Decrypt all Files" : "Descifrar archivos",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Sus claves de cifrado se archivarán en una localización segura. Así en caso de que algo fuese mal podrá recuperan sus claves. Borre sus claves de cifrado permanentemente solamente si esta seguro de que sus archivos han sido descifrados correctamente.",
+ "Restore Encryption Keys" : "Restaurar claves de cifrado",
+ "Delete Encryption Keys" : "Eliminar claves de cifrado",
+ "Show storage location" : "Mostrar la ubicación del almacenamiento",
+ "Show last log in" : "Mostrar el último inicio de sesión",
+ "Username" : "Nombre de usuario",
+ "Create" : "Crear",
+ "Admin Recovery Password" : "Recuperación de la contraseña de administración",
+ "Enter the recovery password in order to recover the users files during password change" : "Introduzca la contraseña de recuperación a fin de recuperar los archivos de los usuarios durante el cambio de contraseña.",
+ "Search Users" : "Buscar usuarios",
+ "Add Group" : "Agregar grupo",
+ "Group" : "Grupo",
+ "Everyone" : "Todos",
+ "Admins" : "Administradores",
+ "Default Quota" : "Cuota predeterminada",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indique la cúota de almacenamiento (ej: \"512 MB\" o \"12 GB\")",
+ "Unlimited" : "Ilimitado",
+ "Other" : "Otro",
+ "Group Admin for" : "Grupo administrador para",
+ "Quota" : "Cuota",
+ "Storage Location" : "Ubicación de almacenamiento",
+ "Last Login" : "Último inicio de sesión",
+ "change full name" : "cambiar el nombre completo",
+ "set new password" : "establecer nueva contraseña",
+ "Default" : "Predeterminado"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
new file mode 100644
index 00000000000..397bb9c4e12
--- /dev/null
+++ b/settings/l10n/es.json
@@ -0,0 +1,241 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Advertencias de configuración y seguridad",
+ "Cron" : "Cron",
+ "Sharing" : "Compartiendo",
+ "Security" : "Seguridad",
+ "Email Server" : "Servidor de correo electrónico",
+ "Log" : "Registro",
+ "Authentication error" : "Error de autenticación",
+ "Your full name has been changed." : "Se ha cambiado su nombre completo.",
+ "Unable to change full name" : "No se puede cambiar el nombre completo",
+ "Group already exists" : "El grupo ya existe",
+ "Unable to add group" : "No se pudo añadir el grupo",
+ "Files decrypted successfully" : "Los archivos fueron descifrados",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "No se pudo descifrar sus archivos. Revise el owncloud.log o consulte con su administrador",
+ "Couldn't decrypt your files, check your password and try again" : "No se pudo descifrar sus archivos. Revise su contraseña e inténtelo de nuevo",
+ "Encryption keys deleted permanently" : "Claves de cifrado eliminadas permanentemente",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "No se pudieron eliminar permanentemente sus claves de cifrado. Revise owncloud.log o consulte con su administrador.",
+ "Couldn't remove app." : "No se pudo eliminar la aplicación.",
+ "Email saved" : "Correo electrónico guardado",
+ "Invalid email" : "Correo electrónico no válido",
+ "Unable to delete group" : "No se pudo eliminar el grupo",
+ "Unable to delete user" : "No se pudo eliminar el usuario",
+ "Backups restored successfully" : "Copia de seguridad restaurada",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "No se pudieron restarurar sus claves de cifrado. Revise owncloud.log o consulte con su administrador.",
+ "Language changed" : "Idioma cambiado",
+ "Invalid request" : "Petición no válida",
+ "Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador",
+ "Unable to add user to group %s" : "No se pudo añadir el usuario al grupo %s",
+ "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
+ "Couldn't update app." : "No se pudo actualizar la aplicación.",
+ "Wrong password" : "Contraseña incorrecta",
+ "No user supplied" : "No se especificó un usuario",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor facilite una contraseña de recuperación de administrador, sino podrían perderse todos los datos de usuario",
+ "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor compruebe la contraseña e inténtelo de nuevo.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "El back-end no soporta cambios de contraseña, pero la clave de cifrado del usuario ha sido actualizada satisfactoriamente.",
+ "Unable to change password" : "No se ha podido cambiar la contraseña",
+ "Enabled" : "Habilitado",
+ "Not enabled" : "No habilitado",
+ "Recommended" : "Recomendado",
+ "Saved" : "Guardado",
+ "test email settings" : "probar configuración de correo electrónico",
+ "If you received this email, the settings seem to be correct." : "Si recibió este mensaje de correo electrónico, su configuración debe estar correcta.",
+ "A problem occurred while sending the email. Please revise your settings." : "Ocurrió un problema al mandar el mensaje. Revise la configuración.",
+ "Email sent" : "Correo electrónico enviado",
+ "You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "¿Está seguro de querer agregar \"{domain}\" como un dominio de confianza?",
+ "Add trusted domain" : "Agregar dominio de confianza",
+ "Sending..." : "Enviando...",
+ "All" : "Todos",
+ "Please wait...." : "Espere, por favor....",
+ "Error while disabling app" : "Error mientras se desactivaba la aplicación",
+ "Disable" : "Desactivar",
+ "Enable" : "Activar",
+ "Error while enabling app" : "Error mientras se activaba la aplicación",
+ "Updating...." : "Actualizando....",
+ "Error while updating app" : "Error mientras se actualizaba la aplicación",
+ "Updated" : "Actualizado",
+ "Uninstalling ...." : "Desinstalando...",
+ "Error while uninstalling app" : "Error al desinstalar la aplicación",
+ "Uninstall" : "Desinstalar",
+ "Select a profile picture" : "Seleccionar una imagen de perfil",
+ "Very weak password" : "Contraseña muy débil",
+ "Weak password" : "Contraseña débil",
+ "So-so password" : "Contraseña pasable",
+ "Good password" : "Contraseña buena",
+ "Strong password" : "Contraseña muy buena",
+ "Valid until {date}" : "Válido hasta {date}",
+ "Delete" : "Eliminar",
+ "Decrypting files... Please wait, this can take some time." : "Descifrando archivos... Espere por favor, esto puede llevar algo de tiempo.",
+ "Delete encryption keys permanently." : "Eliminar claves de cifrado permanentemente.",
+ "Restore encryption keys." : "Restaurar claves de cifrado.",
+ "Groups" : "Grupos",
+ "Unable to delete {objName}" : "No es posible eliminar {objName}",
+ "Error creating group" : "Error al crear un grupo",
+ "A valid group name must be provided" : "Se debe dar un nombre válido para el grupo ",
+ "deleted {groupName}" : "borrado {groupName}",
+ "undo" : "deshacer",
+ "no group" : "sin grupo",
+ "never" : "nunca",
+ "deleted {userName}" : "borrado {userName}",
+ "add group" : "añadir Grupo",
+ "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
+ "Error creating user" : "Error al crear usuario",
+ "A valid password must be provided" : "Se debe proporcionar una contraseña válida",
+ "Warning: Home directory for user \"{user}\" already exists" : "Atención: el directorio de inicio para el usuario \"{user}\" ya existe.",
+ "__language_name__" : "Castellano",
+ "Personal Info" : "Información personal",
+ "SSL root certificates" : "Certificados raíz SSL",
+ "Encryption" : "Cifrado",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Todo (Información, Avisos, Errores, debug y problemas fatales)",
+ "Info, warnings, errors and fatal issues" : "Información, Avisos, Errores y problemas fatales",
+ "Warnings, errors and fatal issues" : "Advertencias, errores y problemas fatales",
+ "Errors and fatal issues" : "Errores y problemas fatales",
+ "Fatal issues only" : "Problemas fatales solamente",
+ "None" : "Ninguno",
+ "Login" : "Iniciar sesión",
+ "Plain" : "Plano",
+ "NT LAN Manager" : "Gestor de NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Advertencia de seguridad",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está ingresando a %s vía HTTP. Le recomendamos encarecidamente que configure su servidor para que requiera HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
+ "Read-Only config enabled" : "Configuración de solo lectura activada",
+ "Setup Warning" : "Advertencia de configuración",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones del principales no estén accesibles.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto sea causado por un cache o acelerador, como por ejemplo Zend OPcache o eAccelerator.",
+ "Database Performance Info" : "Información de rendimiento de la base de datos",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Se está usando SQLite como base de datos. Para instalaciones más grandes, recomendamos cambiar esto. Para migrar a otra base de datos, use la herramienta de línea de comandos: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "No se ha encontrado el módulo \"fileinfo\"",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "No se ha encontrado el modulo PHP 'fileinfo'. Le recomendamos encarecidamente que habilite este módulo para obtener mejores resultados con la detección de tipos MIME.",
+ "Your PHP version is outdated" : "Su versión de PHP no está actualizada",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Su versión de PHP ha caducado. Le sugerimos encarecidamente que la actualize a 5.3.8 o a una más nueva porque normalmente las versiones antiguas no funcionan bien. Puede ser que esta instalación no esté funcionando bien por ello.",
+ "PHP charset is not set to UTF-8" : "El conjunto de caracteres de PHP no está establecido en UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "El set de caracteres usado por PHP no es UTF-8. Esto puede causar grandes problemas con nombres de archivos que contengan caracteres que no sean ASCII. Recomendamos encarecidamente cambiar el valor de 'default_charset' en php.ini a 'UTF-8'.",
+ "Locale not working" : "La configuración regional no está funcionando",
+ "System locale can not be set to a one which supports UTF-8." : "No se puede escoger una configuración regional que soporte UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ",
+ "URL generation in notification emails" : "Generación de URL en mensajes de notificación",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si su instalación no está ubicada en la raíz del dominio y usa el cron del sistema, puede haber problemas al generarse los URL. Para evitarlos, configure la opción \"overwritewebroot\" en su archivo config.php para que use la ruta de la raíz del sitio web de su instalación (sugerencia: \"%s\")",
+ "Connectivity Checks" : "Probar la Conectividad",
+ "No problems found" : "No se han encontrado problemas",
+ "Please double check the installation guides ." : "Por favor, vuelva a comprobar las guías de instalación .",
+ "Last cron was executed at %s." : "Cron fue ejecutado por última vez a las %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Cron fue ejecutado por última vez a las %s. Esto fue hace más de una hora, algo anda mal.",
+ "Cron was not executed yet!" : "¡Cron aún no ha sido ejecutado!",
+ "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos.",
+ "Allow apps to use the Share API" : "Permitir a las aplicaciones utilizar la API de Compartición",
+ "Allow users to share via link" : "Permite a los usuarios compartir por medio de enlaces",
+ "Enforce password protection" : "Forzar la protección por contraseña.",
+ "Allow public uploads" : "Permitir subidas públicas",
+ "Set default expiration date" : "Establecer fecha de caducidad predeterminada",
+ "Expire after " : "Caduca luego de",
+ "days" : "días",
+ "Enforce expiration date" : "Imponer fecha de caducidad",
+ "Allow resharing" : "Permitir re-compartición",
+ "Restrict users to only share with users in their groups" : "Restringe a los usuarios a compartir solo con otros usuarios en sus grupos",
+ "Allow users to send mail notification for shared files" : "Permitir a los usuarios enviar mensajes de notificación para ficheros compartidos",
+ "Exclude groups from sharing" : "Excluye grupos de compartir",
+ "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán, pero no podrán iniciarlos.",
+ "Enforce HTTPS" : "Forzar HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Forzar a los clientes a conectarse a %s por medio de una conexión cifrada.",
+ "Enforce HTTPS for subdomains" : "Forzar HTTPS para subdominios",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Obliga a los clientes a conectara %s y subdominios mediante una conexión cifrada.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Por favor, conéctese a su %s a través de HTTPS para habilitar o deshabilitar la aplicación de SSL.",
+ "This is used for sending out notifications." : "Esto se usa para enviar notificaciones.",
+ "Send mode" : "Modo de envío",
+ "From address" : "Desde la dirección",
+ "mail" : "correo electrónico",
+ "Authentication method" : "Método de autenticación",
+ "Authentication required" : "Se necesita autenticación",
+ "Server address" : "Dirección del servidor",
+ "Port" : "Puerto",
+ "Credentials" : "Credenciales",
+ "SMTP Username" : "Nombre de usuario SMTP",
+ "SMTP Password" : "Contraseña SMTP",
+ "Store credentials" : "Almacenar credenciales",
+ "Test email settings" : "Probar configuración de correo electrónico",
+ "Send email" : "Enviar mensaje",
+ "Log level" : "Nivel de registro",
+ "More" : "Más",
+ "Less" : "Menos",
+ "Version" : "Versión",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Desarrollado por la comunidad ownCloud , el código fuente está bajo licencia AGPL .",
+ "More apps" : "Más aplicaciones",
+ "Add your app" : "Agregue su aplicación",
+ "by" : "por",
+ "licensed" : "licenciado",
+ "Documentation:" : "Documentación:",
+ "User Documentation" : "Documentación de usuario",
+ "Admin Documentation" : "Documentación para administradores",
+ "Update to %s" : "Actualizado a %s",
+ "Enable only for specific groups" : "Activar solamente para grupos específicos",
+ "Uninstall App" : "Desinstalar aplicación",
+ "Administrator Documentation" : "Documentación de administrador",
+ "Online Documentation" : "Documentación en línea",
+ "Forum" : "Foro",
+ "Bugtracker" : "Rastreador de fallos",
+ "Commercial Support" : "Soporte comercial",
+ "Get the apps to sync your files" : "Obtener las aplicaciones para sincronizar sus archivos",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Si desea contribuir al proyecto\n\t\túnase al desarrollo \n\t\to\n\t\t¡corra la voz !",
+ "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de ejecución inicial",
+ "You have used %s of the available %s " : "Ha usado %s de los %s disponibles",
+ "Password" : "Contraseña",
+ "Your password was changed" : "Su contraseña ha sido cambiada",
+ "Unable to change your password" : "No se ha podido cambiar su contraseña",
+ "Current password" : "Contraseña actual",
+ "New password" : "Nueva contraseña",
+ "Change password" : "Cambiar contraseña",
+ "Full Name" : "Nombre completo",
+ "Email" : "Correo electrónico",
+ "Your email address" : "Su dirección de correo",
+ "Fill in an email address to enable password recovery and receive notifications" : "Introducir una dirección de correo electrónico para activar la recuperación de contraseñas y recibir notificaciones",
+ "Profile picture" : "Foto de perfil",
+ "Upload new" : "Subir otra",
+ "Select new from Files" : "Seleccionar otra desde Archivos",
+ "Remove image" : "Borrar imagen",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Archivo PNG o JPG. Preferiblemente cuadrado, pero tendrás la posibilidad de recortarlo.",
+ "Your avatar is provided by your original account." : "Su avatar es proporcionado por su cuenta original.",
+ "Cancel" : "Cancelar",
+ "Choose as profile image" : "Seleccionar como imagen de perfil",
+ "Language" : "Idioma",
+ "Help translate" : "Ayúdanos a traducir",
+ "Common Name" : "Nombre común",
+ "Valid until" : "Válido hasta",
+ "Issued By" : "Emitido por",
+ "Valid until %s" : "Válido hasta %s",
+ "Import Root Certificate" : "Importar certificado raíz",
+ "The encryption app is no longer enabled, please decrypt all your files" : "La aplicación de cifrado ya no está activada, descifre todos sus archivos",
+ "Log-in password" : "Contraseña de acceso",
+ "Decrypt all Files" : "Descifrar archivos",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Sus claves de cifrado se archivarán en una localización segura. Así en caso de que algo fuese mal podrá recuperan sus claves. Borre sus claves de cifrado permanentemente solamente si esta seguro de que sus archivos han sido descifrados correctamente.",
+ "Restore Encryption Keys" : "Restaurar claves de cifrado",
+ "Delete Encryption Keys" : "Eliminar claves de cifrado",
+ "Show storage location" : "Mostrar la ubicación del almacenamiento",
+ "Show last log in" : "Mostrar el último inicio de sesión",
+ "Username" : "Nombre de usuario",
+ "Create" : "Crear",
+ "Admin Recovery Password" : "Recuperación de la contraseña de administración",
+ "Enter the recovery password in order to recover the users files during password change" : "Introduzca la contraseña de recuperación a fin de recuperar los archivos de los usuarios durante el cambio de contraseña.",
+ "Search Users" : "Buscar usuarios",
+ "Add Group" : "Agregar grupo",
+ "Group" : "Grupo",
+ "Everyone" : "Todos",
+ "Admins" : "Administradores",
+ "Default Quota" : "Cuota predeterminada",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indique la cúota de almacenamiento (ej: \"512 MB\" o \"12 GB\")",
+ "Unlimited" : "Ilimitado",
+ "Other" : "Otro",
+ "Group Admin for" : "Grupo administrador para",
+ "Quota" : "Cuota",
+ "Storage Location" : "Ubicación de almacenamiento",
+ "Last Login" : "Último inicio de sesión",
+ "change full name" : "cambiar el nombre completo",
+ "set new password" : "establecer nueva contraseña",
+ "Default" : "Predeterminado"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/es.php b/settings/l10n/es.php
deleted file mode 100644
index 661f20d3181..00000000000
--- a/settings/l10n/es.php
+++ /dev/null
@@ -1,239 +0,0 @@
- "Se introdujo un valor inválido para %s",
-"Saved" => "Guardado",
-"test email settings" => "probar configuración de correo",
-"If you received this email, the settings seem to be correct." => "Si recibió este mensaje de correo electrónico, su configuración debe estar correcta.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Ocurrió un problema la enviar el mensaje. Revise la configuración.",
-"Email sent" => "Correo electrónico enviado",
-"You need to set your user email before being able to send test emails." => "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.",
-"Send mode" => "Modo de envío",
-"Encryption" => "Cifrado",
-"Authentication method" => "Método de autenticación",
-"Unable to load list from App Store" => "No se pudo cargar la lista desde el App Store",
-"Authentication error" => "Error de autenticación",
-"Your full name has been changed." => "Se ha cambiado su nombre completo.",
-"Unable to change full name" => "No se puede cambiar el nombre completo",
-"Group already exists" => "El grupo ya existe",
-"Unable to add group" => "No se pudo añadir el grupo",
-"Files decrypted successfully" => "Los archivos fueron descifrados",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "No se pudo descifrar sus archivos. Revise el owncloud.log o consulte con su administrador",
-"Couldn't decrypt your files, check your password and try again" => "No se pudo descifrar sus archivos. Revise su contraseña e inténtelo de nuevo",
-"Encryption keys deleted permanently" => "Claves de cifrado eliminadas permanentemente",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "No se pudieron eliminar permanentemente sus claves de cifrado. Revise owncloud.log o consulte con su administrador.",
-"Couldn't remove app." => "No se pudo eliminar la aplicación.",
-"Email saved" => "Correo electrónico guardado",
-"Invalid email" => "Correo electrónico no válido",
-"Unable to delete group" => "No se pudo eliminar el grupo",
-"Unable to delete user" => "No se pudo eliminar el usuario",
-"Backups restored successfully" => "Copia de seguridad restaurada",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "No se pudieron restarurar sus claves de cifrado. Revise owncloud.log o consulte con su administrador.",
-"Language changed" => "Idioma cambiado",
-"Invalid request" => "Petición no válida",
-"Admins can't remove themself from the admin group" => "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador",
-"Unable to add user to group %s" => "No se pudo añadir el usuario al grupo %s",
-"Unable to remove user from group %s" => "No se pudo eliminar al usuario del grupo %s",
-"Couldn't update app." => "No se pudo actualizar la aplicación.",
-"Wrong password" => "Contraseña incorrecta",
-"No user supplied" => "No se especificó un usuario",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Por favor facilite una contraseña de recuperación de administrador, sino podrían perderse todos los datos de usuario",
-"Wrong admin recovery password. Please check the password and try again." => "Contraseña de recuperación de administrador incorrecta. Por favor compruebe la contraseña e inténtelo de nuevo.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "El back-end no soporta cambios de contraseña, pero la clave de cifrado del usuario ha sido actualizada satisfactoriamente.",
-"Unable to change password" => "No se ha podido cambiar la contraseña",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "¿Está seguro de querer agregar \"{domain}\" como un dominio de confianza?",
-"Add trusted domain" => "Agregar dominio de confianza",
-"Sending..." => "Enviando...",
-"All" => "Todos",
-"User Documentation" => "Documentación de usuario",
-"Admin Documentation" => "Documentación para administradores",
-"Update to {appversion}" => "Actualizar a {appversion}",
-"Uninstall App" => "Desinstalar aplicación",
-"Disable" => "Desactivar",
-"Enable" => "Activar",
-"Please wait...." => "Espere, por favor....",
-"Error while disabling app" => "Error mientras se desactivaba la aplicación",
-"Error while enabling app" => "Error mientras se activaba la aplicación",
-"Updating...." => "Actualizando....",
-"Error while updating app" => "Error mientras se actualizaba la aplicación",
-"Error" => "Error",
-"Update" => "Actualizar",
-"Updated" => "Actualizado",
-"Uninstalling ...." => "Desinstalando...",
-"Error while uninstalling app" => "Error al desinstalar la aplicación",
-"Uninstall" => "Desinstalar",
-"Select a profile picture" => "Seleccionar una imagen de perfil",
-"Very weak password" => "Contraseña muy débil",
-"Weak password" => "Contraseña débil",
-"So-so password" => "Contraseña pasable",
-"Good password" => "Contraseña buena",
-"Strong password" => "Contraseña muy buena",
-"Valid until {date}" => "Válido hasta {date}",
-"Delete" => "Eliminar",
-"Decrypting files... Please wait, this can take some time." => "Descifrando archivos... Espere por favor, esto puede llevar algo de tiempo.",
-"Delete encryption keys permanently." => "Eliminar claves de cifrado permanentemente.",
-"Restore encryption keys." => "Restaurar claves de cifrado.",
-"Groups" => "Grupos",
-"Unable to delete {objName}" => "No es posible eliminar {objName}",
-"Error creating group" => "Error al crear un grupo",
-"A valid group name must be provided" => "Se debe dar un nombre válido para el grupo ",
-"deleted {groupName}" => "borrado {groupName}",
-"undo" => "deshacer",
-"Group Admin" => "Administrador del Grupo",
-"never" => "nunca",
-"deleted {userName}" => "borrado {userName}",
-"add group" => "añadir Grupo",
-"A valid username must be provided" => "Se debe proporcionar un nombre de usuario válido",
-"Error creating user" => "Error al crear usuario",
-"A valid password must be provided" => "Se debe proporcionar una contraseña válida",
-"Warning: Home directory for user \"{user}\" already exists" => "Atención: el directorio de inicio para el usuario \"{user}\" ya existe.",
-"__language_name__" => "Castellano",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Todo (Información, Avisos, Errores, debug y problemas fatales)",
-"Info, warnings, errors and fatal issues" => "Información, Avisos, Errores y problemas fatales",
-"Warnings, errors and fatal issues" => "Advertencias, errores y problemas fatales",
-"Errors and fatal issues" => "Errores y problemas fatales",
-"Fatal issues only" => "Problemas fatales solamente",
-"None" => "Ninguno",
-"Login" => "Iniciar sesión",
-"Plain" => "Plano",
-"NT LAN Manager" => "Gestor de NT LAN",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Advertencia de seguridad",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Está ingresando a %s vía HTTP. Le recomendamos encarecidamente que configure su servidor para que requiera HTTPS.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
-"Setup Warning" => "Advertencia de configuración",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones del principales no estén accesibles.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Probablemente esto sea causado por un cache o acelerador, como por ejemplo Zend OPcache o eAccelerator.",
-"Database Performance Info" => "Información de rendimiento de la base de datos",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "Se está usando SQLite como base de datos. Para instalaciones más grandes, recomendamos cambiar esto. Para migrar a otra base de datos, use la herramienta de línea de comandos: 'occ db:convert-type'",
-"Module 'fileinfo' missing" => "No se ha encontrado el módulo \"fileinfo\"",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "No se ha encontrado el modulo PHP 'fileinfo'. Le recomendamos encarecidamente que habilite este módulo para obtener mejores resultados con la detección de tipos MIME.",
-"Your PHP version is outdated" => "Su versión de PHP no está actualizada",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Su versión de PHP ha caducado. Le sugerimos encarecidamente que la actualize a 5.3.8 o a una más nueva porque normalmente las versiones antiguas no funcionan bien. Puede ser que esta instalación no esté funcionando bien por ello.",
-"PHP charset is not set to UTF-8" => "El conjunto de caracteres de PHP no está establecido en UTF-8",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "El set de caracteres usado por PHP no es UTF-8. Esto puede causar grandes problemas con nombres de archivos que contengan caracteres que no sean ASCII. Recomendamos encarecidamente cambiar el valor de 'default_charset' en php.ini a 'UTF-8'.",
-"Locale not working" => "La configuración regional no está funcionando",
-"System locale can not be set to a one which supports UTF-8." => "No se puede escoger una configuración regional que soporte UTF-8.",
-"This means that there might be problems with certain characters in file names." => "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ",
-"URL generation in notification emails" => "Generación de URL en mensajes de notificación",
-"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "Si su instalación no está ubicada en la raíz del dominio y usa el cron del sistema, puede haber problemas al generarse los URL. Para evitarlos, configure la opción \"overwritewebroot\" en su archivo config.php para que use la ruta de la raíz del sitio web de su instalación (sugerencia: \"%s\")",
-"Connectivity checks" => "Probar la conectividad",
-"No problems found" => "No se han encontrado problemas",
-"Please double check the installation guides ." => "Por favor, vuelva a comprobar las guías de instalación .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Cron fue ejecutado por última vez a las %s.",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Cron fue ejecutado por última vez a las %s. Esto fue hace más de una hora, algo anda mal.",
-"Cron was not executed yet!" => "¡Cron aún no ha sido ejecutado!",
-"Execute one task with each page loaded" => "Ejecutar una tarea con cada página cargada",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos.",
-"Sharing" => "Compartiendo",
-"Allow apps to use the Share API" => "Permitir a las aplicaciones utilizar la API de Compartición",
-"Allow users to share via link" => "Permite a los usuarios compartir por medio de enlaces",
-"Enforce password protection" => "Forzar la protección por contraseña.",
-"Allow public uploads" => "Permitir subidas públicas",
-"Set default expiration date" => "Establecer fecha de caducidad predeterminada",
-"Expire after " => "Caduca luego de",
-"days" => "días",
-"Enforce expiration date" => "Imponer fecha de caducidad",
-"Allow resharing" => "Permitir re-compartición",
-"Restrict users to only share with users in their groups" => "Restringe a los usuarios a compartir solo con otros usuarios en sus grupos",
-"Allow users to send mail notification for shared files" => "Permitir a los usuarios enviar mensajes de notificación para ficheros compartidos",
-"Exclude groups from sharing" => "Excluye grupos de compartir",
-"These groups will still be able to receive shares, but not to initiate them." => "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán, pero no podrán iniciarlos.",
-"Security" => "Seguridad",
-"Enforce HTTPS" => "Forzar HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Forzar a los clientes a conectarse a %s por medio de una conexión cifrada.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Por favor, conéctese a su %s a través de HTTPS para habilitar o deshabilitar la aplicación de SSL.",
-"Email Server" => "Servidor de correo electrónico",
-"This is used for sending out notifications." => "Esto se usa para enviar notificaciones.",
-"From address" => "Desde la dirección",
-"mail" => "correo electrónico",
-"Authentication required" => "Se necesita autenticación",
-"Server address" => "Dirección del servidor",
-"Port" => "Puerto",
-"Credentials" => "Credenciales",
-"SMTP Username" => "Nombre de usuario SMTP",
-"SMTP Password" => "Contraseña SMTP",
-"Test email settings" => "Probar configuración de correo electrónico",
-"Send email" => "Enviar mensaje",
-"Log" => "Registro",
-"Log level" => "Nivel de registro",
-"More" => "Más",
-"Less" => "Menos",
-"Version" => "Versión",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Desarrollado por la comunidad ownCloud , el código fuente está bajo licencia AGPL .",
-"Add your App" => "Añade tu aplicación",
-"More Apps" => "Más aplicaciones",
-"Select an App" => "Seleccionar una aplicación",
-"Documentation:" => "Documentación:",
-"See application page at apps.owncloud.com" => "Ver la página de aplicaciones en apps.owncloud.com",
-"See application website" => "Ver sitio web de la aplicación",
-" -licensed by " => " -licencia otorgada por ",
-"Enable only for specific groups" => "Activar solamente para grupos específicos",
-"Administrator Documentation" => "Documentación de administrador",
-"Online Documentation" => "Documentación en línea",
-"Forum" => "Foro",
-"Bugtracker" => "Rastreador de fallos",
-"Commercial Support" => "Soporte comercial",
-"Get the apps to sync your files" => "Obtener las aplicaciones para sincronizar sus archivos",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Si desea contribuir al proyecto\n\t\túnase al desarrollo \n\t\to\n\t\t¡corra la voz !",
-"Show First Run Wizard again" => "Mostrar nuevamente el Asistente de ejecución inicial",
-"You have used %s of the available %s " => "Ha usado %s de los %s disponibles",
-"Password" => "Contraseña",
-"Your password was changed" => "Su contraseña ha sido cambiada",
-"Unable to change your password" => "No se ha podido cambiar su contraseña",
-"Current password" => "Contraseña actual",
-"New password" => "Nueva contraseña",
-"Change password" => "Cambiar contraseña",
-"Full Name" => "Nombre completo",
-"Email" => "Correo electrónico",
-"Your email address" => "Su dirección de correo",
-"Fill in an email address to enable password recovery and receive notifications" => "Introducir una dirección de correo electrónico para activar la recuperación de contraseñas y recibir notificaciones",
-"Profile picture" => "Foto de perfil",
-"Upload new" => "Subir otra",
-"Select new from Files" => "Seleccionar otra desde Archivos",
-"Remove image" => "Borrar imagen",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Archivo PNG o JPG. Preferiblemente cuadrado, pero tendrás la posibilidad de recortarlo.",
-"Your avatar is provided by your original account." => "Su avatar es proporcionado por su cuenta original.",
-"Cancel" => "Cancelar",
-"Choose as profile image" => "Seleccionar como imagen de perfil",
-"Language" => "Idioma",
-"Help translate" => "Ayúdanos a traducir",
-"SSL root certificates" => "Certificados raíz SSL",
-"Common Name" => "Nombre común",
-"Valid until" => "Válido hasta",
-"Issued By" => "Emitido por",
-"Valid until %s" => "Válido hasta %s",
-"Import Root Certificate" => "Importar certificado raíz",
-"The encryption app is no longer enabled, please decrypt all your files" => "La aplicación de cifrado ya no está activada, descifre todos sus archivos",
-"Log-in password" => "Contraseña de acceso",
-"Decrypt all Files" => "Descifrar archivos",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Sus claves de cifrado se archivarán en una localización segura. Así en caso de que algo fuese mal podrá recuperan sus claves. Borre sus claves de cifrado permanentemente solamente si esta seguro de que sus archivos han sido descifrados correctamente.",
-"Restore Encryption Keys" => "Restaurar claves de cifrado",
-"Delete Encryption Keys" => "Eliminar claves de cifrado",
-"Show storage location" => "Mostrar la ubicación del almacenamiento",
-"Show last log in" => "Mostrar el último inicio de sesión",
-"Login Name" => "Nombre de usuario",
-"Create" => "Crear",
-"Admin Recovery Password" => "Recuperación de la contraseña de administración",
-"Enter the recovery password in order to recover the users files during password change" => "Introduzca la contraseña de recuperación a fin de recuperar los archivos de los usuarios durante el cambio de contraseña.",
-"Search Users and Groups" => "Buscar usuarios y grupos",
-"Add Group" => "Agregar grupo",
-"Group" => "Grupo",
-"Everyone" => "Todos",
-"Admins" => "Administradores",
-"Default Quota" => "Cuota predeterminada",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Por favor indique la cúota de almacenamiento (ej: \"512 MB\" o \"12 GB\")",
-"Unlimited" => "Ilimitado",
-"Other" => "Otro",
-"Username" => "Nombre de usuario",
-"Quota" => "Cuota",
-"Storage Location" => "Ubicación de almacenamiento",
-"Last Login" => "Último inicio de sesión",
-"change full name" => "cambiar el nombre completo",
-"set new password" => "establecer nueva contraseña",
-"Default" => "Predeterminado"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/es_AR.js b/settings/l10n/es_AR.js
new file mode 100644
index 00000000000..058acf4e9ad
--- /dev/null
+++ b/settings/l10n/es_AR.js
@@ -0,0 +1,165 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Cron" : "Cron",
+ "Sharing" : "Compartiendo",
+ "Security" : "Seguridad",
+ "Email Server" : "Servidor de correo electrónico",
+ "Log" : "Log",
+ "Authentication error" : "Error al autenticar",
+ "Your full name has been changed." : "Su nombre completo ha sido cambiado.",
+ "Unable to change full name" : "Imposible cambiar el nombre completo",
+ "Group already exists" : "El grupo ya existe",
+ "Unable to add group" : "No fue posible añadir el grupo",
+ "Files decrypted successfully" : "Archivos des-encriptados correctamente",
+ "Email saved" : "e-mail guardado",
+ "Invalid email" : "El e-mail no es válido ",
+ "Unable to delete group" : "No fue posible borrar el grupo",
+ "Unable to delete user" : "No fue posible borrar el usuario",
+ "Language changed" : "Idioma cambiado",
+ "Invalid request" : "Pedido inválido",
+ "Admins can't remove themself from the admin group" : "Los administradores no se pueden quitar a si mismos del grupo administrador. ",
+ "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s",
+ "Unable to remove user from group %s" : "No es posible borrar al usuario del grupo %s",
+ "Couldn't update app." : "No se pudo actualizar la App.",
+ "Wrong password" : "Clave incorrecta",
+ "No user supplied" : "No se ha indicado el usuario",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor provea de una contraseña de recuperación administrativa, sino se perderá todos los datos del usuario",
+ "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación administrativa incorrecta. Por favor, chequee la clave e intente de nuevo",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "El back-end no soporta cambios de contraseña, pero las claves de encriptación fueron subidas exitosamente.",
+ "Unable to change password" : "Imposible cambiar la contraseña",
+ "Enabled" : "Habilitado",
+ "Saved" : "Guardado",
+ "test email settings" : "Configuración de correo de prueba.",
+ "If you received this email, the settings seem to be correct." : "Si recibió este correo, la configuración parece estar correcta.",
+ "Email sent" : "e-mail mandado",
+ "You need to set your user email before being able to send test emails." : "Necesita especificar el usuario de correo electrónico antes de poder enviar correos electrónicos de prueba.",
+ "Sending..." : "Enviando...",
+ "All" : "Todos",
+ "Please wait...." : "Por favor, esperá....",
+ "Error while disabling app" : "Se ha producido un error mientras se deshabilitaba la aplicación",
+ "Disable" : "Desactivar",
+ "Enable" : "Activar",
+ "Error while enabling app" : "Se ha producido un error mientras se habilitaba la aplicación",
+ "Updating...." : "Actualizando....",
+ "Error while updating app" : "Error al actualizar App",
+ "Updated" : "Actualizado",
+ "Select a profile picture" : "Seleccionar una imágen de perfil",
+ "Very weak password" : "Contraseña muy débil.",
+ "Weak password" : "Contraseña débil.",
+ "So-so password" : "Contraseña de nivel medio. ",
+ "Good password" : "Buena contraseña. ",
+ "Strong password" : "Contraseña fuerte.",
+ "Delete" : "Borrar",
+ "Decrypting files... Please wait, this can take some time." : "Desencriptando archivos... Por favor espere, esto puede tardar.",
+ "Groups" : "Grupos",
+ "undo" : "deshacer",
+ "never" : "nunca",
+ "add group" : "agregar grupo",
+ "A valid username must be provided" : "Debe ingresar un nombre de usuario válido",
+ "Error creating user" : "Error creando usuario",
+ "A valid password must be provided" : "Debe ingresar una contraseña válida",
+ "Warning: Home directory for user \"{user}\" already exists" : "Advertencia: El directorio Home del usuario \"{user}\" ya existe",
+ "__language_name__" : "Castellano (Argentina)",
+ "SSL root certificates" : "certificados SSL raíz",
+ "Encryption" : "Encriptación",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Todo (notificaciones fatales, errores, advertencias, info, debug)",
+ "Info, warnings, errors and fatal issues" : "Info, advertencias, errores y notificaciones fatales",
+ "Warnings, errors and fatal issues" : "Advertencias, errores y notificaciones fatales",
+ "Errors and fatal issues" : "Errores y notificaciones fatales",
+ "Fatal issues only" : "Notificaciones fatales solamente",
+ "None" : "Ninguno",
+ "Login" : "Ingresar",
+ "Plain" : "Plano",
+ "NT LAN Manager" : "Administrador NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Advertencia de seguridad",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está accediendo %s vía HTTP. Se sugiere fuertemente que configure su servidor para requerir el uso de HTTPS en vez del otro.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El directorio de datos y tus archivos probablemente sean accesibles desde Internet. El archivo .htaccess no funciona. Sugerimos fuertemente que configures tu servidor web de forma tal que el archivo de directorios no sea accesible o muevas el mismo fuera de la raíz de los documentos del servidor web.",
+ "Setup Warning" : "Alerta de Configuración",
+ "Module 'fileinfo' missing" : "El módulo 'fileinfo' no existe",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El módulo PHP 'fileinfo' no existe. Es recomendable que actives este módulo para obtener mejores resultados con la detección mime-type",
+ "Your PHP version is outdated" : "Su versión de PHP está fuera de término",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Su versión de PHP está fuera de término. Recomendamos fuertemente actualizar a 5.3.8 o a una más nueva porque se sabe que versiones anteriores están falladas. Es posible que esta instalación no funcione adecuadamente.",
+ "Locale not working" : "\"Locale\" no está funcionando",
+ "System locale can not be set to a one which supports UTF-8." : "La localización del sistema no puede cambiarse a una que soporta UTF-8",
+ "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos.",
+ "Please double check the installation guides ." : "Por favor, comprobá nuevamente la guía de instalación .",
+ "Execute one task with each page loaded" : "Ejecutá una tarea con cada pagina cargada.",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamarlo cada 15 minutos usando http.",
+ "Allow apps to use the Share API" : "Permitir a las aplicaciones usar la Share API",
+ "Allow public uploads" : "Permitir subidas públicas",
+ "Allow resharing" : "Permitir Re-Compartir",
+ "Allow users to send mail notification for shared files" : "Habilitar a los usuarios para enviar notificaciones por correo para archivos compartidos",
+ "Enforce HTTPS" : "Forzar HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Fuerza al cliente a conectarse a %s por medio de una conexión encriptada.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Por favor conéctese a su %s por medio de HTTPS para habilitar o deshabilitar la característica SSL",
+ "This is used for sending out notifications." : "Esto es usado para enviar notificaciones.",
+ "Send mode" : "Modo de envio",
+ "From address" : "Dirección remitente",
+ "Authentication method" : "Método de autenticación",
+ "Authentication required" : "Autentificación requerida",
+ "Server address" : "Dirección del servidor",
+ "Port" : "Puerto",
+ "Credentials" : "Credenciales",
+ "SMTP Username" : "Nombre de usuario SMTP",
+ "SMTP Password" : "Contraseña SMTP",
+ "Test email settings" : "Configuracion de correo de prueba.",
+ "Send email" : "Enviar correo",
+ "Log level" : "Nivel de Log",
+ "More" : "Más",
+ "Less" : "Menos",
+ "Version" : "Versión",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Desarrollado por la comunidad ownCloud , el código fuente está bajo licencia AGPL .",
+ "by" : "por",
+ "Documentation:" : "Documentación:",
+ "User Documentation" : "Documentación de Usuario",
+ "Admin Documentation" : "Documentación de Administrador.",
+ "Administrator Documentation" : "Documentación de Administrador",
+ "Online Documentation" : "Documentación en línea",
+ "Forum" : "Foro",
+ "Bugtracker" : "Informar errores",
+ "Commercial Support" : "Soporte comercial",
+ "Get the apps to sync your files" : "Obtené Apps para sincronizar tus archivos",
+ "Show First Run Wizard again" : "Mostrar de nuevo el asistente de primera ejecución",
+ "You have used %s of the available %s " : "Usás %s de los %s disponibles",
+ "Password" : "Contraseña",
+ "Your password was changed" : "Tu contraseña fue cambiada",
+ "Unable to change your password" : "No fue posible cambiar tu contraseña",
+ "Current password" : "Contraseña actual",
+ "New password" : "Nueva contraseña:",
+ "Change password" : "Cambiar contraseña",
+ "Full Name" : "Nombre completo",
+ "Email" : "e-mail",
+ "Your email address" : "Tu dirección de e-mail",
+ "Fill in an email address to enable password recovery and receive notifications" : "Rellene una direccion de correo para habilitar la recuperacion de contraseña y recibir notificaciones. ",
+ "Profile picture" : "Imágen de perfil",
+ "Upload new" : "Subir nuevo",
+ "Select new from Files" : "Seleccionar nuevo desde archivos",
+ "Remove image" : "Remover imagen",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Sólo png o jpg. Lo ideal que sea cuadrada sino luego podrás recortarlo.",
+ "Your avatar is provided by your original account." : "Su avatar es proveído por su cuenta original.",
+ "Cancel" : "Cancelar",
+ "Choose as profile image" : "Elegir como imagen de perfil",
+ "Language" : "Idioma",
+ "Help translate" : "Ayudanos a traducir",
+ "Import Root Certificate" : "Importar certificado raíz",
+ "The encryption app is no longer enabled, please decrypt all your files" : "La aplicación de encriptación ya no está habilidata, por favor desencripte todos sus archivos.",
+ "Log-in password" : "Clave de acceso",
+ "Decrypt all Files" : "Desencriptar todos los archivos",
+ "Username" : "Nombre de usuario",
+ "Create" : "Crear",
+ "Admin Recovery Password" : "Recuperación de contraseña de administrador",
+ "Enter the recovery password in order to recover the users files during password change" : "Ingresá la contraseña de recuperación para recuperar los archivos de usuario al cambiar contraseña",
+ "Group" : "Grupo",
+ "Default Quota" : "Cuota predeterminada",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor ingrese la cuota de almacenamiento (ej.: \"512 MB\" o \"12 GB\")",
+ "Unlimited" : "Ilimitado",
+ "Other" : "Otros",
+ "Quota" : "Cuota",
+ "change full name" : "Cambiar nombre completo",
+ "set new password" : "Configurar nueva contraseña",
+ "Default" : "Predeterminado"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/es_AR.json b/settings/l10n/es_AR.json
new file mode 100644
index 00000000000..3ac7316db00
--- /dev/null
+++ b/settings/l10n/es_AR.json
@@ -0,0 +1,163 @@
+{ "translations": {
+ "Cron" : "Cron",
+ "Sharing" : "Compartiendo",
+ "Security" : "Seguridad",
+ "Email Server" : "Servidor de correo electrónico",
+ "Log" : "Log",
+ "Authentication error" : "Error al autenticar",
+ "Your full name has been changed." : "Su nombre completo ha sido cambiado.",
+ "Unable to change full name" : "Imposible cambiar el nombre completo",
+ "Group already exists" : "El grupo ya existe",
+ "Unable to add group" : "No fue posible añadir el grupo",
+ "Files decrypted successfully" : "Archivos des-encriptados correctamente",
+ "Email saved" : "e-mail guardado",
+ "Invalid email" : "El e-mail no es válido ",
+ "Unable to delete group" : "No fue posible borrar el grupo",
+ "Unable to delete user" : "No fue posible borrar el usuario",
+ "Language changed" : "Idioma cambiado",
+ "Invalid request" : "Pedido inválido",
+ "Admins can't remove themself from the admin group" : "Los administradores no se pueden quitar a si mismos del grupo administrador. ",
+ "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s",
+ "Unable to remove user from group %s" : "No es posible borrar al usuario del grupo %s",
+ "Couldn't update app." : "No se pudo actualizar la App.",
+ "Wrong password" : "Clave incorrecta",
+ "No user supplied" : "No se ha indicado el usuario",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor provea de una contraseña de recuperación administrativa, sino se perderá todos los datos del usuario",
+ "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación administrativa incorrecta. Por favor, chequee la clave e intente de nuevo",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "El back-end no soporta cambios de contraseña, pero las claves de encriptación fueron subidas exitosamente.",
+ "Unable to change password" : "Imposible cambiar la contraseña",
+ "Enabled" : "Habilitado",
+ "Saved" : "Guardado",
+ "test email settings" : "Configuración de correo de prueba.",
+ "If you received this email, the settings seem to be correct." : "Si recibió este correo, la configuración parece estar correcta.",
+ "Email sent" : "e-mail mandado",
+ "You need to set your user email before being able to send test emails." : "Necesita especificar el usuario de correo electrónico antes de poder enviar correos electrónicos de prueba.",
+ "Sending..." : "Enviando...",
+ "All" : "Todos",
+ "Please wait...." : "Por favor, esperá....",
+ "Error while disabling app" : "Se ha producido un error mientras se deshabilitaba la aplicación",
+ "Disable" : "Desactivar",
+ "Enable" : "Activar",
+ "Error while enabling app" : "Se ha producido un error mientras se habilitaba la aplicación",
+ "Updating...." : "Actualizando....",
+ "Error while updating app" : "Error al actualizar App",
+ "Updated" : "Actualizado",
+ "Select a profile picture" : "Seleccionar una imágen de perfil",
+ "Very weak password" : "Contraseña muy débil.",
+ "Weak password" : "Contraseña débil.",
+ "So-so password" : "Contraseña de nivel medio. ",
+ "Good password" : "Buena contraseña. ",
+ "Strong password" : "Contraseña fuerte.",
+ "Delete" : "Borrar",
+ "Decrypting files... Please wait, this can take some time." : "Desencriptando archivos... Por favor espere, esto puede tardar.",
+ "Groups" : "Grupos",
+ "undo" : "deshacer",
+ "never" : "nunca",
+ "add group" : "agregar grupo",
+ "A valid username must be provided" : "Debe ingresar un nombre de usuario válido",
+ "Error creating user" : "Error creando usuario",
+ "A valid password must be provided" : "Debe ingresar una contraseña válida",
+ "Warning: Home directory for user \"{user}\" already exists" : "Advertencia: El directorio Home del usuario \"{user}\" ya existe",
+ "__language_name__" : "Castellano (Argentina)",
+ "SSL root certificates" : "certificados SSL raíz",
+ "Encryption" : "Encriptación",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Todo (notificaciones fatales, errores, advertencias, info, debug)",
+ "Info, warnings, errors and fatal issues" : "Info, advertencias, errores y notificaciones fatales",
+ "Warnings, errors and fatal issues" : "Advertencias, errores y notificaciones fatales",
+ "Errors and fatal issues" : "Errores y notificaciones fatales",
+ "Fatal issues only" : "Notificaciones fatales solamente",
+ "None" : "Ninguno",
+ "Login" : "Ingresar",
+ "Plain" : "Plano",
+ "NT LAN Manager" : "Administrador NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Advertencia de seguridad",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está accediendo %s vía HTTP. Se sugiere fuertemente que configure su servidor para requerir el uso de HTTPS en vez del otro.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "El directorio de datos y tus archivos probablemente sean accesibles desde Internet. El archivo .htaccess no funciona. Sugerimos fuertemente que configures tu servidor web de forma tal que el archivo de directorios no sea accesible o muevas el mismo fuera de la raíz de los documentos del servidor web.",
+ "Setup Warning" : "Alerta de Configuración",
+ "Module 'fileinfo' missing" : "El módulo 'fileinfo' no existe",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El módulo PHP 'fileinfo' no existe. Es recomendable que actives este módulo para obtener mejores resultados con la detección mime-type",
+ "Your PHP version is outdated" : "Su versión de PHP está fuera de término",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Su versión de PHP está fuera de término. Recomendamos fuertemente actualizar a 5.3.8 o a una más nueva porque se sabe que versiones anteriores están falladas. Es posible que esta instalación no funcione adecuadamente.",
+ "Locale not working" : "\"Locale\" no está funcionando",
+ "System locale can not be set to a one which supports UTF-8." : "La localización del sistema no puede cambiarse a una que soporta UTF-8",
+ "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos.",
+ "Please double check the installation guides ." : "Por favor, comprobá nuevamente la guía de instalación .",
+ "Execute one task with each page loaded" : "Ejecutá una tarea con cada pagina cargada.",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamarlo cada 15 minutos usando http.",
+ "Allow apps to use the Share API" : "Permitir a las aplicaciones usar la Share API",
+ "Allow public uploads" : "Permitir subidas públicas",
+ "Allow resharing" : "Permitir Re-Compartir",
+ "Allow users to send mail notification for shared files" : "Habilitar a los usuarios para enviar notificaciones por correo para archivos compartidos",
+ "Enforce HTTPS" : "Forzar HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Fuerza al cliente a conectarse a %s por medio de una conexión encriptada.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Por favor conéctese a su %s por medio de HTTPS para habilitar o deshabilitar la característica SSL",
+ "This is used for sending out notifications." : "Esto es usado para enviar notificaciones.",
+ "Send mode" : "Modo de envio",
+ "From address" : "Dirección remitente",
+ "Authentication method" : "Método de autenticación",
+ "Authentication required" : "Autentificación requerida",
+ "Server address" : "Dirección del servidor",
+ "Port" : "Puerto",
+ "Credentials" : "Credenciales",
+ "SMTP Username" : "Nombre de usuario SMTP",
+ "SMTP Password" : "Contraseña SMTP",
+ "Test email settings" : "Configuracion de correo de prueba.",
+ "Send email" : "Enviar correo",
+ "Log level" : "Nivel de Log",
+ "More" : "Más",
+ "Less" : "Menos",
+ "Version" : "Versión",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Desarrollado por la comunidad ownCloud , el código fuente está bajo licencia AGPL .",
+ "by" : "por",
+ "Documentation:" : "Documentación:",
+ "User Documentation" : "Documentación de Usuario",
+ "Admin Documentation" : "Documentación de Administrador.",
+ "Administrator Documentation" : "Documentación de Administrador",
+ "Online Documentation" : "Documentación en línea",
+ "Forum" : "Foro",
+ "Bugtracker" : "Informar errores",
+ "Commercial Support" : "Soporte comercial",
+ "Get the apps to sync your files" : "Obtené Apps para sincronizar tus archivos",
+ "Show First Run Wizard again" : "Mostrar de nuevo el asistente de primera ejecución",
+ "You have used %s of the available %s " : "Usás %s de los %s disponibles",
+ "Password" : "Contraseña",
+ "Your password was changed" : "Tu contraseña fue cambiada",
+ "Unable to change your password" : "No fue posible cambiar tu contraseña",
+ "Current password" : "Contraseña actual",
+ "New password" : "Nueva contraseña:",
+ "Change password" : "Cambiar contraseña",
+ "Full Name" : "Nombre completo",
+ "Email" : "e-mail",
+ "Your email address" : "Tu dirección de e-mail",
+ "Fill in an email address to enable password recovery and receive notifications" : "Rellene una direccion de correo para habilitar la recuperacion de contraseña y recibir notificaciones. ",
+ "Profile picture" : "Imágen de perfil",
+ "Upload new" : "Subir nuevo",
+ "Select new from Files" : "Seleccionar nuevo desde archivos",
+ "Remove image" : "Remover imagen",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Sólo png o jpg. Lo ideal que sea cuadrada sino luego podrás recortarlo.",
+ "Your avatar is provided by your original account." : "Su avatar es proveído por su cuenta original.",
+ "Cancel" : "Cancelar",
+ "Choose as profile image" : "Elegir como imagen de perfil",
+ "Language" : "Idioma",
+ "Help translate" : "Ayudanos a traducir",
+ "Import Root Certificate" : "Importar certificado raíz",
+ "The encryption app is no longer enabled, please decrypt all your files" : "La aplicación de encriptación ya no está habilidata, por favor desencripte todos sus archivos.",
+ "Log-in password" : "Clave de acceso",
+ "Decrypt all Files" : "Desencriptar todos los archivos",
+ "Username" : "Nombre de usuario",
+ "Create" : "Crear",
+ "Admin Recovery Password" : "Recuperación de contraseña de administrador",
+ "Enter the recovery password in order to recover the users files during password change" : "Ingresá la contraseña de recuperación para recuperar los archivos de usuario al cambiar contraseña",
+ "Group" : "Grupo",
+ "Default Quota" : "Cuota predeterminada",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor ingrese la cuota de almacenamiento (ej.: \"512 MB\" o \"12 GB\")",
+ "Unlimited" : "Ilimitado",
+ "Other" : "Otros",
+ "Quota" : "Cuota",
+ "change full name" : "Cambiar nombre completo",
+ "set new password" : "Configurar nueva contraseña",
+ "Default" : "Predeterminado"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/es_AR.php b/settings/l10n/es_AR.php
deleted file mode 100644
index 98082c72a80..00000000000
--- a/settings/l10n/es_AR.php
+++ /dev/null
@@ -1,177 +0,0 @@
- "Parámetro suministrado invalido para %s",
-"Saved" => "Guardado",
-"test email settings" => "Configuración de correo de prueba.",
-"If you received this email, the settings seem to be correct." => "Si recibió este correo, la configuración parece estar correcta.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Un problema ocurrió cuando se intentó enviar el correo electrónico. Por favor revea su configuración.",
-"Email sent" => "e-mail mandado",
-"You need to set your user email before being able to send test emails." => "Necesita especificar el usuario de correo electrónico antes de poder enviar correos electrónicos de prueba.",
-"Send mode" => "Modo de envio",
-"Encryption" => "Encriptación",
-"Authentication method" => "Método de autenticación",
-"Unable to load list from App Store" => "Imposible cargar la lista desde el App Store",
-"Authentication error" => "Error al autenticar",
-"Your full name has been changed." => "Su nombre completo ha sido cambiado.",
-"Unable to change full name" => "Imposible cambiar el nombre completo",
-"Group already exists" => "El grupo ya existe",
-"Unable to add group" => "No fue posible añadir el grupo",
-"Files decrypted successfully" => "Archivos des-encriptados correctamente",
-"Email saved" => "e-mail guardado",
-"Invalid email" => "El e-mail no es válido ",
-"Unable to delete group" => "No fue posible borrar el grupo",
-"Unable to delete user" => "No fue posible borrar el usuario",
-"Language changed" => "Idioma cambiado",
-"Invalid request" => "Pedido inválido",
-"Admins can't remove themself from the admin group" => "Los administradores no se pueden quitar a si mismos del grupo administrador. ",
-"Unable to add user to group %s" => "No fue posible agregar el usuario al grupo %s",
-"Unable to remove user from group %s" => "No es posible borrar al usuario del grupo %s",
-"Couldn't update app." => "No se pudo actualizar la App.",
-"Wrong password" => "Clave incorrecta",
-"No user supplied" => "No se ha indicado el usuario",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Por favor provea de una contraseña de recuperación administrativa, sino se perderá todos los datos del usuario",
-"Wrong admin recovery password. Please check the password and try again." => "Contraseña de recuperación administrativa incorrecta. Por favor, chequee la clave e intente de nuevo",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "El back-end no soporta cambios de contraseña, pero las claves de encriptación fueron subidas exitosamente.",
-"Unable to change password" => "Imposible cambiar la contraseña",
-"Sending..." => "Enviando...",
-"All" => "Todos",
-"User Documentation" => "Documentación de Usuario",
-"Admin Documentation" => "Documentación de Administrador.",
-"Update to {appversion}" => "Actualizar a {appversion}",
-"Disable" => "Desactivar",
-"Enable" => "Activar",
-"Please wait...." => "Por favor, esperá....",
-"Error while disabling app" => "Se ha producido un error mientras se deshabilitaba la aplicación",
-"Error while enabling app" => "Se ha producido un error mientras se habilitaba la aplicación",
-"Updating...." => "Actualizando....",
-"Error while updating app" => "Error al actualizar App",
-"Error" => "Error",
-"Update" => "Actualizar",
-"Updated" => "Actualizado",
-"Select a profile picture" => "Seleccionar una imágen de perfil",
-"Very weak password" => "Contraseña muy débil.",
-"Weak password" => "Contraseña débil.",
-"So-so password" => "Contraseña de nivel medio. ",
-"Good password" => "Buena contraseña. ",
-"Strong password" => "Contraseña fuerte.",
-"Delete" => "Borrar",
-"Decrypting files... Please wait, this can take some time." => "Desencriptando archivos... Por favor espere, esto puede tardar.",
-"Groups" => "Grupos",
-"undo" => "deshacer",
-"Group Admin" => "Grupo Administrador",
-"never" => "nunca",
-"add group" => "agregar grupo",
-"A valid username must be provided" => "Debe ingresar un nombre de usuario válido",
-"Error creating user" => "Error creando usuario",
-"A valid password must be provided" => "Debe ingresar una contraseña válida",
-"Warning: Home directory for user \"{user}\" already exists" => "Advertencia: El directorio Home del usuario \"{user}\" ya existe",
-"__language_name__" => "Castellano (Argentina)",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Todo (notificaciones fatales, errores, advertencias, info, debug)",
-"Info, warnings, errors and fatal issues" => "Info, advertencias, errores y notificaciones fatales",
-"Warnings, errors and fatal issues" => "Advertencias, errores y notificaciones fatales",
-"Errors and fatal issues" => "Errores y notificaciones fatales",
-"Fatal issues only" => "Notificaciones fatales solamente",
-"None" => "Ninguno",
-"Login" => "Ingresar",
-"Plain" => "Plano",
-"NT LAN Manager" => "Administrador NT LAN",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Advertencia de seguridad",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Está accediendo %s vía HTTP. Se sugiere fuertemente que configure su servidor para requerir el uso de HTTPS en vez del otro.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "El directorio de datos y tus archivos probablemente sean accesibles desde Internet. El archivo .htaccess no funciona. Sugerimos fuertemente que configures tu servidor web de forma tal que el archivo de directorios no sea accesible o muevas el mismo fuera de la raíz de los documentos del servidor web.",
-"Setup Warning" => "Alerta de Configuración",
-"Module 'fileinfo' missing" => "El módulo 'fileinfo' no existe",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "El módulo PHP 'fileinfo' no existe. Es recomendable que actives este módulo para obtener mejores resultados con la detección mime-type",
-"Your PHP version is outdated" => "Su versión de PHP está fuera de término",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Su versión de PHP está fuera de término. Recomendamos fuertemente actualizar a 5.3.8 o a una más nueva porque se sabe que versiones anteriores están falladas. Es posible que esta instalación no funcione adecuadamente.",
-"Locale not working" => "\"Locale\" no está funcionando",
-"System locale can not be set to a one which supports UTF-8." => "La localización del sistema no puede cambiarse a una que soporta UTF-8",
-"This means that there might be problems with certain characters in file names." => "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Se sugiere fuertemente instalar los paquetes requeridos en su sistema para soportar uno de las siguientes localizaciones: %s.",
-"Please double check the installation guides ." => "Por favor, comprobá nuevamente la guía de instalación .",
-"Cron" => "Cron",
-"Execute one task with each page loaded" => "Ejecutá una tarea con cada pagina cargada.",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php está registrado en el servicio webcron para llamarlo cada 15 minutos usando http.",
-"Sharing" => "Compartiendo",
-"Allow apps to use the Share API" => "Permitir a las aplicaciones usar la Share API",
-"Allow public uploads" => "Permitir subidas públicas",
-"Allow resharing" => "Permitir Re-Compartir",
-"Allow users to send mail notification for shared files" => "Habilitar a los usuarios para enviar notificaciones por correo para archivos compartidos",
-"Security" => "Seguridad",
-"Enforce HTTPS" => "Forzar HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Fuerza al cliente a conectarse a %s por medio de una conexión encriptada.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Por favor conéctese a su %s por medio de HTTPS para habilitar o deshabilitar la característica SSL",
-"Email Server" => "Servidor de correo electrónico",
-"This is used for sending out notifications." => "Esto es usado para enviar notificaciones.",
-"From address" => "Dirección remitente",
-"Authentication required" => "Autentificación requerida",
-"Server address" => "Dirección del servidor",
-"Port" => "Puerto",
-"Credentials" => "Credenciales",
-"SMTP Username" => "Nombre de usuario SMTP",
-"SMTP Password" => "Contraseña SMTP",
-"Test email settings" => "Configuracion de correo de prueba.",
-"Send email" => "Enviar correo",
-"Log" => "Log",
-"Log level" => "Nivel de Log",
-"More" => "Más",
-"Less" => "Menos",
-"Version" => "Versión",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Desarrollado por la comunidad ownCloud , el código fuente está bajo licencia AGPL .",
-"Add your App" => "Añadí tu App",
-"More Apps" => "Más Apps",
-"Select an App" => "Elegí una App",
-"Documentation:" => "Documentación:",
-"See application page at apps.owncloud.com" => "Mirá la web de aplicaciones apps.owncloud.com",
-"See application website" => "Ver sitio web de la aplicación",
-" -licensed by " => " -licenciado por ",
-"Administrator Documentation" => "Documentación de Administrador",
-"Online Documentation" => "Documentación en línea",
-"Forum" => "Foro",
-"Bugtracker" => "Informar errores",
-"Commercial Support" => "Soporte comercial",
-"Get the apps to sync your files" => "Obtené Apps para sincronizar tus archivos",
-"Show First Run Wizard again" => "Mostrar de nuevo el asistente de primera ejecución",
-"You have used %s of the available %s " => "Usás %s de los %s disponibles",
-"Password" => "Contraseña",
-"Your password was changed" => "Tu contraseña fue cambiada",
-"Unable to change your password" => "No fue posible cambiar tu contraseña",
-"Current password" => "Contraseña actual",
-"New password" => "Nueva contraseña:",
-"Change password" => "Cambiar contraseña",
-"Full Name" => "Nombre completo",
-"Email" => "e-mail",
-"Your email address" => "Tu dirección de e-mail",
-"Fill in an email address to enable password recovery and receive notifications" => "Rellene una direccion de correo para habilitar la recuperacion de contraseña y recibir notificaciones. ",
-"Profile picture" => "Imágen de perfil",
-"Upload new" => "Subir nuevo",
-"Select new from Files" => "Seleccionar nuevo desde archivos",
-"Remove image" => "Remover imagen",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Sólo png o jpg. Lo ideal que sea cuadrada sino luego podrás recortarlo.",
-"Your avatar is provided by your original account." => "Su avatar es proveído por su cuenta original.",
-"Cancel" => "Cancelar",
-"Choose as profile image" => "Elegir como imagen de perfil",
-"Language" => "Idioma",
-"Help translate" => "Ayudanos a traducir",
-"SSL root certificates" => "certificados SSL raíz",
-"Import Root Certificate" => "Importar certificado raíz",
-"The encryption app is no longer enabled, please decrypt all your files" => "La aplicación de encriptación ya no está habilidata, por favor desencripte todos sus archivos.",
-"Log-in password" => "Clave de acceso",
-"Decrypt all Files" => "Desencriptar todos los archivos",
-"Login Name" => "Nombre de Usuario",
-"Create" => "Crear",
-"Admin Recovery Password" => "Recuperación de contraseña de administrador",
-"Enter the recovery password in order to recover the users files during password change" => "Ingresá la contraseña de recuperación para recuperar los archivos de usuario al cambiar contraseña",
-"Group" => "Grupo",
-"Default Quota" => "Cuota predeterminada",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Por favor ingrese la cuota de almacenamiento (ej.: \"512 MB\" o \"12 GB\")",
-"Unlimited" => "Ilimitado",
-"Other" => "Otros",
-"Username" => "Nombre de usuario",
-"Quota" => "Cuota",
-"change full name" => "Cambiar nombre completo",
-"set new password" => "Configurar nueva contraseña",
-"Default" => "Predeterminado"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/es_CL.js b/settings/l10n/es_CL.js
new file mode 100644
index 00000000000..b51f930e83a
--- /dev/null
+++ b/settings/l10n/es_CL.js
@@ -0,0 +1,8 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Password" : "Clave",
+ "Cancel" : "Cancelar",
+ "Username" : "Usuario"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/es_CL.json b/settings/l10n/es_CL.json
new file mode 100644
index 00000000000..981c7eeb897
--- /dev/null
+++ b/settings/l10n/es_CL.json
@@ -0,0 +1,6 @@
+{ "translations": {
+ "Password" : "Clave",
+ "Cancel" : "Cancelar",
+ "Username" : "Usuario"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/es_CL.php b/settings/l10n/es_CL.php
deleted file mode 100644
index bdf34e62979..00000000000
--- a/settings/l10n/es_CL.php
+++ /dev/null
@@ -1,8 +0,0 @@
- "Error",
-"Password" => "Clave",
-"Cancel" => "Cancelar",
-"Username" => "Usuario"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/es_MX.js b/settings/l10n/es_MX.js
new file mode 100644
index 00000000000..c91d1cf742e
--- /dev/null
+++ b/settings/l10n/es_MX.js
@@ -0,0 +1,131 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Cron" : "Cron",
+ "Sharing" : "Compartiendo",
+ "Security" : "Seguridad",
+ "Log" : "Registro",
+ "Authentication error" : "Error de autenticación",
+ "Your full name has been changed." : "Se ha cambiado su nombre completo.",
+ "Unable to change full name" : "No se puede cambiar el nombre completo",
+ "Group already exists" : "El grupo ya existe",
+ "Unable to add group" : "No se pudo añadir el grupo",
+ "Email saved" : "Correo electrónico guardado",
+ "Invalid email" : "Correo electrónico no válido",
+ "Unable to delete group" : "No se pudo eliminar el grupo",
+ "Unable to delete user" : "No se pudo eliminar el usuario",
+ "Language changed" : "Idioma cambiado",
+ "Invalid request" : "Petición no válida",
+ "Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador",
+ "Unable to add user to group %s" : "No se pudo añadir el usuario al grupo %s",
+ "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
+ "Couldn't update app." : "No se pudo actualizar la aplicación.",
+ "Wrong password" : "Contraseña incorrecta",
+ "No user supplied" : "No se especificó un usuario",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor facilite una contraseña de recuperación de administrador, sino podrían perderse todos los datos de usuario",
+ "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor compruebe la contraseña e inténtelo de nuevo.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "El back-end no soporta cambios de contraseña, pero la clave de cifrado del usuario ha sido actualizada satisfactoriamente.",
+ "Unable to change password" : "No se ha podido cambiar la contraseña",
+ "Enabled" : "Habilitar",
+ "Email sent" : "Correo electrónico enviado",
+ "All" : "Todos",
+ "Please wait...." : "Espere, por favor....",
+ "Error while disabling app" : "Error mientras se desactivaba la aplicación",
+ "Disable" : "Desactivar",
+ "Enable" : "Activar",
+ "Error while enabling app" : "Error mientras se activaba la aplicación",
+ "Updating...." : "Actualizando....",
+ "Error while updating app" : "Error mientras se actualizaba la aplicación",
+ "Updated" : "Actualizado",
+ "Select a profile picture" : "Seleccionar una imagen de perfil",
+ "Delete" : "Eliminar",
+ "Decrypting files... Please wait, this can take some time." : "Descifrando archivos... Espere por favor, esto puede llevar algo de tiempo.",
+ "Groups" : "Grupos",
+ "undo" : "deshacer",
+ "never" : "nunca",
+ "add group" : "añadir Grupo",
+ "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
+ "Error creating user" : "Error al crear usuario",
+ "A valid password must be provided" : "Se debe proporcionar una contraseña válida",
+ "Warning: Home directory for user \"{user}\" already exists" : "Atención: el directorio de inicio para el usuario \"{user}\" ya existe.",
+ "__language_name__" : "Español (México)",
+ "SSL root certificates" : "Certificados raíz SSL",
+ "Encryption" : "Cifrado",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Todo (Información, Avisos, Errores, debug y problemas fatales)",
+ "Info, warnings, errors and fatal issues" : "Información, Avisos, Errores y problemas fatales",
+ "Warnings, errors and fatal issues" : "Advertencias, errores y problemas fatales",
+ "Errors and fatal issues" : "Errores y problemas fatales",
+ "Fatal issues only" : "Problemas fatales solamente",
+ "Login" : "Iniciar sesión",
+ "Security Warning" : "Advertencia de seguridad",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está ingresando a %s vía HTTP. Le recomendamos encarecidamente que configure su servidor para que requiera HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
+ "Setup Warning" : "Advertencia de configuración",
+ "Module 'fileinfo' missing" : "No se ha encontrado el módulo \"fileinfo\"",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "No se ha encontrado el modulo PHP 'fileinfo'. Le recomendamos encarecidamente que habilite este módulo para obtener mejores resultados con la detección de tipos MIME.",
+ "Your PHP version is outdated" : "Su versión de PHP ha caducado",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Su versión de PHP ha caducado. Le sugerimos encarecidamente que la actualize a 5.3.8 o a una más nueva porque normalmente las versiones antiguas no funcionan bien. Puede ser que esta instalación no esté funcionando bien por ello.",
+ "Locale not working" : "La configuración regional no está funcionando",
+ "System locale can not be set to a one which supports UTF-8." : "No se puede escoger una configuración regional que soporte UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.",
+ "Please double check the installation guides ." : "Por favor, vuelva a comprobar las guías de instalación .",
+ "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.",
+ "Allow apps to use the Share API" : "Permitir a las aplicaciones utilizar la API de Compartición",
+ "Allow public uploads" : "Permitir subidas públicas",
+ "Allow resharing" : "Permitir re-compartición",
+ "Enforce HTTPS" : "Forzar HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Forzar a los clientes a conectarse a %s por medio de una conexión cifrada.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Por favor, conéctese a su %s a través de HTTPS para habilitar o deshabilitar la aplicación de SSL.",
+ "Server address" : "Dirección del servidor",
+ "Port" : "Puerto",
+ "Log level" : "Nivel de registro",
+ "More" : "Más",
+ "Less" : "Menos",
+ "Version" : "Versión",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Desarrollado por la comunidad ownCloud , el código fuente está bajo licencia AGPL .",
+ "by" : "por",
+ "User Documentation" : "Documentación de usuario",
+ "Administrator Documentation" : "Documentación de administrador",
+ "Online Documentation" : "Documentación en línea",
+ "Forum" : "Foro",
+ "Bugtracker" : "Rastreador de fallos",
+ "Commercial Support" : "Soporte comercial",
+ "Get the apps to sync your files" : "Obtener las aplicaciones para sincronizar sus archivos",
+ "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de ejecución inicial",
+ "You have used %s of the available %s " : "Ha usado %s de los %s disponibles",
+ "Password" : "Contraseña",
+ "Your password was changed" : "Su contraseña ha sido cambiada",
+ "Unable to change your password" : "No se ha podido cambiar su contraseña",
+ "Current password" : "Contraseña actual",
+ "New password" : "Nueva contraseña",
+ "Change password" : "Cambiar contraseña",
+ "Full Name" : "Nombre completo",
+ "Email" : "Correo electrónico",
+ "Your email address" : "Su dirección de correo",
+ "Profile picture" : "Foto de perfil",
+ "Upload new" : "Subir otra",
+ "Select new from Files" : "Seleccionar otra desde Archivos",
+ "Remove image" : "Borrar imagen",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Archivo PNG o JPG. Preferiblemente cuadrado, pero tendrás la posibilidad de recortarlo.",
+ "Your avatar is provided by your original account." : "Su avatar es proporcionado por su cuenta original.",
+ "Cancel" : "Cancelar",
+ "Choose as profile image" : "Seleccionar como imagen de perfil",
+ "Language" : "Idioma",
+ "Help translate" : "Ayúdanos a traducir",
+ "Import Root Certificate" : "Importar certificado raíz",
+ "The encryption app is no longer enabled, please decrypt all your files" : "La aplicación de cifrado ya no está activada, descifre todos sus archivos",
+ "Log-in password" : "Contraseña de acceso",
+ "Decrypt all Files" : "Descifrar archivos",
+ "Username" : "Nombre de usuario",
+ "Create" : "Crear",
+ "Admin Recovery Password" : "Recuperación de la contraseña de administración",
+ "Enter the recovery password in order to recover the users files during password change" : "Introduzca la contraseña de recuperación a fin de recuperar los archivos de los usuarios durante el cambio de contraseña.",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indique la cúota de almacenamiento (ej: \"512 MB\" o \"12 GB\")",
+ "Unlimited" : "Ilimitado",
+ "Other" : "Otro",
+ "change full name" : "cambiar el nombre completo",
+ "set new password" : "establecer nueva contraseña",
+ "Default" : "Predeterminado"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/es_MX.json b/settings/l10n/es_MX.json
new file mode 100644
index 00000000000..0d7969e3a5a
--- /dev/null
+++ b/settings/l10n/es_MX.json
@@ -0,0 +1,129 @@
+{ "translations": {
+ "Cron" : "Cron",
+ "Sharing" : "Compartiendo",
+ "Security" : "Seguridad",
+ "Log" : "Registro",
+ "Authentication error" : "Error de autenticación",
+ "Your full name has been changed." : "Se ha cambiado su nombre completo.",
+ "Unable to change full name" : "No se puede cambiar el nombre completo",
+ "Group already exists" : "El grupo ya existe",
+ "Unable to add group" : "No se pudo añadir el grupo",
+ "Email saved" : "Correo electrónico guardado",
+ "Invalid email" : "Correo electrónico no válido",
+ "Unable to delete group" : "No se pudo eliminar el grupo",
+ "Unable to delete user" : "No se pudo eliminar el usuario",
+ "Language changed" : "Idioma cambiado",
+ "Invalid request" : "Petición no válida",
+ "Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador",
+ "Unable to add user to group %s" : "No se pudo añadir el usuario al grupo %s",
+ "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
+ "Couldn't update app." : "No se pudo actualizar la aplicación.",
+ "Wrong password" : "Contraseña incorrecta",
+ "No user supplied" : "No se especificó un usuario",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor facilite una contraseña de recuperación de administrador, sino podrían perderse todos los datos de usuario",
+ "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor compruebe la contraseña e inténtelo de nuevo.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "El back-end no soporta cambios de contraseña, pero la clave de cifrado del usuario ha sido actualizada satisfactoriamente.",
+ "Unable to change password" : "No se ha podido cambiar la contraseña",
+ "Enabled" : "Habilitar",
+ "Email sent" : "Correo electrónico enviado",
+ "All" : "Todos",
+ "Please wait...." : "Espere, por favor....",
+ "Error while disabling app" : "Error mientras se desactivaba la aplicación",
+ "Disable" : "Desactivar",
+ "Enable" : "Activar",
+ "Error while enabling app" : "Error mientras se activaba la aplicación",
+ "Updating...." : "Actualizando....",
+ "Error while updating app" : "Error mientras se actualizaba la aplicación",
+ "Updated" : "Actualizado",
+ "Select a profile picture" : "Seleccionar una imagen de perfil",
+ "Delete" : "Eliminar",
+ "Decrypting files... Please wait, this can take some time." : "Descifrando archivos... Espere por favor, esto puede llevar algo de tiempo.",
+ "Groups" : "Grupos",
+ "undo" : "deshacer",
+ "never" : "nunca",
+ "add group" : "añadir Grupo",
+ "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido",
+ "Error creating user" : "Error al crear usuario",
+ "A valid password must be provided" : "Se debe proporcionar una contraseña válida",
+ "Warning: Home directory for user \"{user}\" already exists" : "Atención: el directorio de inicio para el usuario \"{user}\" ya existe.",
+ "__language_name__" : "Español (México)",
+ "SSL root certificates" : "Certificados raíz SSL",
+ "Encryption" : "Cifrado",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Todo (Información, Avisos, Errores, debug y problemas fatales)",
+ "Info, warnings, errors and fatal issues" : "Información, Avisos, Errores y problemas fatales",
+ "Warnings, errors and fatal issues" : "Advertencias, errores y problemas fatales",
+ "Errors and fatal issues" : "Errores y problemas fatales",
+ "Fatal issues only" : "Problemas fatales solamente",
+ "Login" : "Iniciar sesión",
+ "Security Warning" : "Advertencia de seguridad",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está ingresando a %s vía HTTP. Le recomendamos encarecidamente que configure su servidor para que requiera HTTPS.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
+ "Setup Warning" : "Advertencia de configuración",
+ "Module 'fileinfo' missing" : "No se ha encontrado el módulo \"fileinfo\"",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "No se ha encontrado el modulo PHP 'fileinfo'. Le recomendamos encarecidamente que habilite este módulo para obtener mejores resultados con la detección de tipos MIME.",
+ "Your PHP version is outdated" : "Su versión de PHP ha caducado",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Su versión de PHP ha caducado. Le sugerimos encarecidamente que la actualize a 5.3.8 o a una más nueva porque normalmente las versiones antiguas no funcionan bien. Puede ser que esta instalación no esté funcionando bien por ello.",
+ "Locale not working" : "La configuración regional no está funcionando",
+ "System locale can not be set to a one which supports UTF-8." : "No se puede escoger una configuración regional que soporte UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.",
+ "Please double check the installation guides ." : "Por favor, vuelva a comprobar las guías de instalación .",
+ "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.",
+ "Allow apps to use the Share API" : "Permitir a las aplicaciones utilizar la API de Compartición",
+ "Allow public uploads" : "Permitir subidas públicas",
+ "Allow resharing" : "Permitir re-compartición",
+ "Enforce HTTPS" : "Forzar HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Forzar a los clientes a conectarse a %s por medio de una conexión cifrada.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Por favor, conéctese a su %s a través de HTTPS para habilitar o deshabilitar la aplicación de SSL.",
+ "Server address" : "Dirección del servidor",
+ "Port" : "Puerto",
+ "Log level" : "Nivel de registro",
+ "More" : "Más",
+ "Less" : "Menos",
+ "Version" : "Versión",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Desarrollado por la comunidad ownCloud , el código fuente está bajo licencia AGPL .",
+ "by" : "por",
+ "User Documentation" : "Documentación de usuario",
+ "Administrator Documentation" : "Documentación de administrador",
+ "Online Documentation" : "Documentación en línea",
+ "Forum" : "Foro",
+ "Bugtracker" : "Rastreador de fallos",
+ "Commercial Support" : "Soporte comercial",
+ "Get the apps to sync your files" : "Obtener las aplicaciones para sincronizar sus archivos",
+ "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de ejecución inicial",
+ "You have used %s of the available %s " : "Ha usado %s de los %s disponibles",
+ "Password" : "Contraseña",
+ "Your password was changed" : "Su contraseña ha sido cambiada",
+ "Unable to change your password" : "No se ha podido cambiar su contraseña",
+ "Current password" : "Contraseña actual",
+ "New password" : "Nueva contraseña",
+ "Change password" : "Cambiar contraseña",
+ "Full Name" : "Nombre completo",
+ "Email" : "Correo electrónico",
+ "Your email address" : "Su dirección de correo",
+ "Profile picture" : "Foto de perfil",
+ "Upload new" : "Subir otra",
+ "Select new from Files" : "Seleccionar otra desde Archivos",
+ "Remove image" : "Borrar imagen",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Archivo PNG o JPG. Preferiblemente cuadrado, pero tendrás la posibilidad de recortarlo.",
+ "Your avatar is provided by your original account." : "Su avatar es proporcionado por su cuenta original.",
+ "Cancel" : "Cancelar",
+ "Choose as profile image" : "Seleccionar como imagen de perfil",
+ "Language" : "Idioma",
+ "Help translate" : "Ayúdanos a traducir",
+ "Import Root Certificate" : "Importar certificado raíz",
+ "The encryption app is no longer enabled, please decrypt all your files" : "La aplicación de cifrado ya no está activada, descifre todos sus archivos",
+ "Log-in password" : "Contraseña de acceso",
+ "Decrypt all Files" : "Descifrar archivos",
+ "Username" : "Nombre de usuario",
+ "Create" : "Crear",
+ "Admin Recovery Password" : "Recuperación de la contraseña de administración",
+ "Enter the recovery password in order to recover the users files during password change" : "Introduzca la contraseña de recuperación a fin de recuperar los archivos de los usuarios durante el cambio de contraseña.",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indique la cúota de almacenamiento (ej: \"512 MB\" o \"12 GB\")",
+ "Unlimited" : "Ilimitado",
+ "Other" : "Otro",
+ "change full name" : "cambiar el nombre completo",
+ "set new password" : "establecer nueva contraseña",
+ "Default" : "Predeterminado"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/es_MX.php b/settings/l10n/es_MX.php
deleted file mode 100644
index 1bb88e959cd..00000000000
--- a/settings/l10n/es_MX.php
+++ /dev/null
@@ -1,140 +0,0 @@
- "Correo electrónico enviado",
-"Encryption" => "Cifrado",
-"Unable to load list from App Store" => "No se pudo cargar la lista desde el App Store",
-"Authentication error" => "Error de autenticación",
-"Your full name has been changed." => "Se ha cambiado su nombre completo.",
-"Unable to change full name" => "No se puede cambiar el nombre completo",
-"Group already exists" => "El grupo ya existe",
-"Unable to add group" => "No se pudo añadir el grupo",
-"Email saved" => "Correo electrónico guardado",
-"Invalid email" => "Correo electrónico no válido",
-"Unable to delete group" => "No se pudo eliminar el grupo",
-"Unable to delete user" => "No se pudo eliminar el usuario",
-"Language changed" => "Idioma cambiado",
-"Invalid request" => "Petición no válida",
-"Admins can't remove themself from the admin group" => "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador",
-"Unable to add user to group %s" => "No se pudo añadir el usuario al grupo %s",
-"Unable to remove user from group %s" => "No se pudo eliminar al usuario del grupo %s",
-"Couldn't update app." => "No se pudo actualizar la aplicación.",
-"Wrong password" => "Contraseña incorrecta",
-"No user supplied" => "No se especificó un usuario",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Por favor facilite una contraseña de recuperación de administrador, sino podrían perderse todos los datos de usuario",
-"Wrong admin recovery password. Please check the password and try again." => "Contraseña de recuperación de administrador incorrecta. Por favor compruebe la contraseña e inténtelo de nuevo.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "El back-end no soporta cambios de contraseña, pero la clave de cifrado del usuario ha sido actualizada satisfactoriamente.",
-"Unable to change password" => "No se ha podido cambiar la contraseña",
-"All" => "Todos",
-"User Documentation" => "Documentación de usuario",
-"Update to {appversion}" => "Actualizado a {appversion}",
-"Disable" => "Desactivar",
-"Enable" => "Activar",
-"Please wait...." => "Espere, por favor....",
-"Error while disabling app" => "Error mientras se desactivaba la aplicación",
-"Error while enabling app" => "Error mientras se activaba la aplicación",
-"Updating...." => "Actualizando....",
-"Error while updating app" => "Error mientras se actualizaba la aplicación",
-"Error" => "Error",
-"Update" => "Actualizar",
-"Updated" => "Actualizado",
-"Select a profile picture" => "Seleccionar una imagen de perfil",
-"Delete" => "Eliminar",
-"Decrypting files... Please wait, this can take some time." => "Descifrando archivos... Espere por favor, esto puede llevar algo de tiempo.",
-"Groups" => "Grupos",
-"undo" => "deshacer",
-"Group Admin" => "Administrador del Grupo",
-"never" => "nunca",
-"add group" => "añadir Grupo",
-"A valid username must be provided" => "Se debe proporcionar un nombre de usuario válido",
-"Error creating user" => "Error al crear usuario",
-"A valid password must be provided" => "Se debe proporcionar una contraseña válida",
-"Warning: Home directory for user \"{user}\" already exists" => "Atención: el directorio de inicio para el usuario \"{user}\" ya existe.",
-"__language_name__" => "Español (México)",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Todo (Información, Avisos, Errores, debug y problemas fatales)",
-"Info, warnings, errors and fatal issues" => "Información, Avisos, Errores y problemas fatales",
-"Warnings, errors and fatal issues" => "Advertencias, errores y problemas fatales",
-"Errors and fatal issues" => "Errores y problemas fatales",
-"Fatal issues only" => "Problemas fatales solamente",
-"Login" => "Iniciar sesión",
-"Security Warning" => "Advertencia de seguridad",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Está ingresando a %s vía HTTP. Le recomendamos encarecidamente que configure su servidor para que requiera HTTPS.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Su directorio de datos y archivos es probablemente accesible desde Internet pues el archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos no sea accesible o que mueva dicho directorio fuera de la raíz de documentos del servidor web.",
-"Setup Warning" => "Advertencia de configuración",
-"Module 'fileinfo' missing" => "No se ha encontrado el módulo \"fileinfo\"",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "No se ha encontrado el modulo PHP 'fileinfo'. Le recomendamos encarecidamente que habilite este módulo para obtener mejores resultados con la detección de tipos MIME.",
-"Your PHP version is outdated" => "Su versión de PHP ha caducado",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Su versión de PHP ha caducado. Le sugerimos encarecidamente que la actualize a 5.3.8 o a una más nueva porque normalmente las versiones antiguas no funcionan bien. Puede ser que esta instalación no esté funcionando bien por ello.",
-"Locale not working" => "La configuración regional no está funcionando",
-"System locale can not be set to a one which supports UTF-8." => "No se puede escoger una configuración regional que soporte UTF-8.",
-"This means that there might be problems with certain characters in file names." => "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ",
-"Please double check the installation guides ." => "Por favor, vuelva a comprobar las guías de instalación .",
-"Cron" => "Cron",
-"Execute one task with each page loaded" => "Ejecutar una tarea con cada página cargada",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.",
-"Sharing" => "Compartiendo",
-"Allow apps to use the Share API" => "Permitir a las aplicaciones utilizar la API de Compartición",
-"Allow public uploads" => "Permitir subidas públicas",
-"Allow resharing" => "Permitir re-compartición",
-"Security" => "Seguridad",
-"Enforce HTTPS" => "Forzar HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Forzar a los clientes a conectarse a %s por medio de una conexión cifrada.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Por favor, conéctese a su %s a través de HTTPS para habilitar o deshabilitar la aplicación de SSL.",
-"Server address" => "Dirección del servidor",
-"Port" => "Puerto",
-"Log" => "Registro",
-"Log level" => "Nivel de registro",
-"More" => "Más",
-"Less" => "Menos",
-"Version" => "Versión",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Desarrollado por la comunidad ownCloud , el código fuente está bajo licencia AGPL .",
-"Add your App" => "Añade tu aplicación",
-"More Apps" => "Más aplicaciones",
-"Select an App" => "Seleccionar una aplicación",
-"See application page at apps.owncloud.com" => "Ver la página de aplicaciones en apps.owncloud.com",
-" -licensed by " => " -licencia otorgada por ",
-"Administrator Documentation" => "Documentación de administrador",
-"Online Documentation" => "Documentación en línea",
-"Forum" => "Foro",
-"Bugtracker" => "Rastreador de fallos",
-"Commercial Support" => "Soporte comercial",
-"Get the apps to sync your files" => "Obtener las aplicaciones para sincronizar sus archivos",
-"Show First Run Wizard again" => "Mostrar nuevamente el Asistente de ejecución inicial",
-"You have used %s of the available %s " => "Ha usado %s de los %s disponibles",
-"Password" => "Contraseña",
-"Your password was changed" => "Su contraseña ha sido cambiada",
-"Unable to change your password" => "No se ha podido cambiar su contraseña",
-"Current password" => "Contraseña actual",
-"New password" => "Nueva contraseña",
-"Change password" => "Cambiar contraseña",
-"Full Name" => "Nombre completo",
-"Email" => "Correo electrónico",
-"Your email address" => "Su dirección de correo",
-"Profile picture" => "Foto de perfil",
-"Upload new" => "Subir otra",
-"Select new from Files" => "Seleccionar otra desde Archivos",
-"Remove image" => "Borrar imagen",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Archivo PNG o JPG. Preferiblemente cuadrado, pero tendrás la posibilidad de recortarlo.",
-"Your avatar is provided by your original account." => "Su avatar es proporcionado por su cuenta original.",
-"Cancel" => "Cancelar",
-"Choose as profile image" => "Seleccionar como imagen de perfil",
-"Language" => "Idioma",
-"Help translate" => "Ayúdanos a traducir",
-"SSL root certificates" => "Certificados raíz SSL",
-"Import Root Certificate" => "Importar certificado raíz",
-"The encryption app is no longer enabled, please decrypt all your files" => "La aplicación de cifrado ya no está activada, descifre todos sus archivos",
-"Log-in password" => "Contraseña de acceso",
-"Decrypt all Files" => "Descifrar archivos",
-"Login Name" => "Nombre de usuario",
-"Create" => "Crear",
-"Admin Recovery Password" => "Recuperación de la contraseña de administración",
-"Enter the recovery password in order to recover the users files during password change" => "Introduzca la contraseña de recuperación a fin de recuperar los archivos de los usuarios durante el cambio de contraseña.",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Por favor indique la cúota de almacenamiento (ej: \"512 MB\" o \"12 GB\")",
-"Unlimited" => "Ilimitado",
-"Other" => "Otro",
-"Username" => "Nombre de usuario",
-"change full name" => "cambiar el nombre completo",
-"set new password" => "establecer nueva contraseña",
-"Default" => "Predeterminado"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/et_EE.js b/settings/l10n/et_EE.js
new file mode 100644
index 00000000000..a294c7c5ab5
--- /dev/null
+++ b/settings/l10n/et_EE.js
@@ -0,0 +1,240 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Turva- ja paigalduse hoiatused",
+ "Cron" : "Cron",
+ "Sharing" : "Jagamine",
+ "Security" : "Turvalisus",
+ "Email Server" : "Postiserver",
+ "Log" : "Logi",
+ "Authentication error" : "Autentimise viga",
+ "Your full name has been changed." : "Sinu täispikk nimi on muudetud.",
+ "Unable to change full name" : "Täispika nime muutmine ebaõnnestus",
+ "Group already exists" : "Grupp on juba olemas",
+ "Unable to add group" : "Keela grupi lisamine",
+ "Files decrypted successfully" : "Failide krüpteerimine õnnestus",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Ei suutnud faile dekrüpteerida, palun kontrolli oma owncloud.log-i või küsi nõu administraatorilt",
+ "Couldn't decrypt your files, check your password and try again" : "Ei suutnud failde dekrüpteerida, kontrolli parooli ja proovi uuesti",
+ "Encryption keys deleted permanently" : "Krüpteerimisvõtmed kustutatud lõplikult",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Ei suutnud lõplikult kustutada sinu krüpteerimisvõtmeid, palun vaata owncloud.log-i või pöördu oma süsteemihalduri poole.",
+ "Couldn't remove app." : "Ei suutnud rakendit eemaldada.",
+ "Email saved" : "Kiri on salvestatud",
+ "Invalid email" : "Vigane e-post",
+ "Unable to delete group" : "Grupi kustutamine ebaõnnestus",
+ "Unable to delete user" : "Kasutaja kustutamine ebaõnnestus",
+ "Backups restored successfully" : "Varukoopiad taastatud edukalt.",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Ei suutnud taastada sinu krüpteerimisvõtmeid, palun vaata owncloud.log-i või pöördu oma süsteemihalduri poole.",
+ "Language changed" : "Keel on muudetud",
+ "Invalid request" : "Vigane päring",
+ "Admins can't remove themself from the admin group" : "Administraatorid ei saa ise end admin grupist eemaldada",
+ "Unable to add user to group %s" : "Kasutajat ei saa lisada gruppi %s",
+ "Unable to remove user from group %s" : "Kasutajat ei saa eemaldada grupist %s",
+ "Couldn't update app." : "Rakenduse uuendamine ebaõnnestus.",
+ "Wrong password" : "Vale parool",
+ "No user supplied" : "Kasutajat ei sisestatud",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Palun sisesta administraatori taasteparool, muidu kaotad kõik kasutajate andmed",
+ "Wrong admin recovery password. Please check the password and try again." : "Vale administraatori taasteparool. Palun kontrolli parooli ning proovi uuesti.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Tagarakend ei toeta parooli vahetust, kuid kasutaja krüptimisvõti uuendati edukalt.",
+ "Unable to change password" : "Ei suuda parooli muuta",
+ "Enabled" : "Sisse lülitatud",
+ "Not enabled" : "Pole sisse lülitatud",
+ "Recommended" : "Soovitatud",
+ "Saved" : "Salvestatud",
+ "test email settings" : "testi e-posti seadeid",
+ "If you received this email, the settings seem to be correct." : "Kui said selle kirja, siis on seadistus korrektne.",
+ "A problem occurred while sending the email. Please revise your settings." : "Kirja saatmisel tekkis tõrge. Palun kontrolli üle oma seadistus.",
+ "Email sent" : "E-kiri on saadetud",
+ "You need to set your user email before being able to send test emails." : "Pead seadistama oma e-postienne kui on võimalik saata test-kirju.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Oled sa kindel, et soovid lisada domeeni \"{domain}\" usaldusväärseks domeeniks?",
+ "Add trusted domain" : "Lis ausaldusväärne domeen",
+ "Sending..." : "Saadan...",
+ "All" : "Kõik",
+ "Please wait...." : "Palun oota...",
+ "Error while disabling app" : "Viga rakenduse keelamisel",
+ "Disable" : "Lülita välja",
+ "Enable" : "Lülita sisse",
+ "Error while enabling app" : "Viga rakenduse lubamisel",
+ "Updating...." : "Uuendamine...",
+ "Error while updating app" : "Viga rakenduse uuendamisel",
+ "Updated" : "Uuendatud",
+ "Uninstalling ...." : "Eemaldan...",
+ "Error while uninstalling app" : "Viga rakendi eemaldamisel",
+ "Uninstall" : "Eemalda",
+ "Select a profile picture" : "Vali profiili pilt",
+ "Very weak password" : "Väga nõrk parool",
+ "Weak password" : "Nõrk parool",
+ "So-so password" : "Enam-vähem sobiv parool",
+ "Good password" : "Hea parool",
+ "Strong password" : "Väga hea parool",
+ "Valid until {date}" : "Kehtib kuni {date}",
+ "Delete" : "Kustuta",
+ "Decrypting files... Please wait, this can take some time." : "Dekrüpteerin faile... Palun oota, see võib võtta veidi aega.",
+ "Delete encryption keys permanently." : "Kustuta krüpteerimisvõtmed lõplikult",
+ "Restore encryption keys." : "Taasta krüpteerimisvõtmed.",
+ "Groups" : "Grupid",
+ "Unable to delete {objName}" : "Ei suuda kustutada {objName}",
+ "Error creating group" : "Viga grupi loomisel",
+ "A valid group name must be provided" : "Sisesta nõuetele vastav grupi nimi",
+ "deleted {groupName}" : "kustutatud {groupName}",
+ "undo" : "tagasi",
+ "no group" : "grupp puudub",
+ "never" : "mitte kunagi",
+ "deleted {userName}" : "kustutatud {userName}",
+ "add group" : "lisa grupp",
+ "A valid username must be provided" : "Sisesta nõuetele vastav kasutajatunnus",
+ "Error creating user" : "Viga kasutaja loomisel",
+ "A valid password must be provided" : "Sisesta nõuetele vastav parool",
+ "Warning: Home directory for user \"{user}\" already exists" : "Hoiatus: kasutaja \"{user}\" kodukataloog on juba olemas",
+ "__language_name__" : "Eesti",
+ "Personal Info" : "Isiklik info",
+ "SSL root certificates" : "SSL root sertifikaadid",
+ "Encryption" : "Krüpteerimine",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Kõik (tõsised probleemid, veateated, hoiatused, info, veatuvastus)",
+ "Info, warnings, errors and fatal issues" : "Info, hoiatused, veateted ja tõsised probleemid",
+ "Warnings, errors and fatal issues" : "Hoiatused, veateated ja tõsised probleemid",
+ "Errors and fatal issues" : "Veateated ja tõsised probleemid",
+ "Fatal issues only" : "Ainult tõsised probleemid",
+ "None" : "Pole",
+ "Login" : "Logi sisse",
+ "Plain" : "Tavatekst",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Turvahoiatus",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Sa kasutad %s ligipääsuks HTTP protokolli. Soovitame tungivalt seadistada oma server selle asemel kasutama HTTPS-i.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Andmete kataloog ja failid on tõenäoliselt internetis avalikult saadaval. .htaccess fail, ei toimi. Soovitame tungivalt veebiserver seadistada selliselt, et andmete kataloog ei oleks enam vabalt saadaval või tõstaksid andmete kataloogi oma veebiserveri veebi juurkataloogist mujale.",
+ "Setup Warning" : "Paigalduse hoiatus",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
+ "Database Performance Info" : "Andmebaasi toimimise info",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Andmebaasina kasutatakse SQLite-t. Suuremate paigalduste puhul me soovitame seda muuta. Migreerimaks teisele andmebaasile kasuta seda käsurea vahendit: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Moodul 'fileinfo' puudub",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP moodul 'fileinfo' puudub. Soovitame tungivalt see lisada saavutamaks parimaid tulemusi failitüüpide tuvastamisel.",
+ "Your PHP version is outdated" : "PHP versioon on aegunud",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Sinu PHP versioon on aegunud. Soovitame tungivalt uuenda versioonile 5.3.8 või uuemale, kuna varasemad versioonid on teadaolevalt vigased. On võimalik, et see käesolev paigaldus ei toimi korrektselt.",
+ "PHP charset is not set to UTF-8" : "PHP märgistik pole UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP märgistikuks pole määratud UTF-8. See võib tekitada failinimedes mitte-ASCII märkidega suuri probleeme. Me soovitame tungivalt panna failis php.ini sätte 'default_charset' väärtuseks 'UTF-8'.",
+ "Locale not working" : "Lokalisatsioon ei toimi",
+ "System locale can not be set to a one which supports UTF-8." : "Süsteemi lokaliseeringuks ei saa panna sellist, mis toetab UTF-8-t.",
+ "This means that there might be problems with certain characters in file names." : "See tähendab, et võib esineda probleeme failide nimedes mõnede sümbolitega.",
+ "URL generation in notification emails" : "URL-ide loomine teavituskirjades",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Kui sinu sait pole paigaldatud domeeni juurkausta ja see kasutab ajastatud tegevusi, siis võib tekkide probleeme URL-ide loomisega. Nende probleemide vältimiseks sisesta palun failis config.php valikusse \"overwritewebroot\" oma veebiserveri juurkaust (Soovituslik: \"%s\")",
+ "Connectivity Checks" : "Ühenduse kontrollid",
+ "No problems found" : "Ühtegi probleemi ei leitud",
+ "Please double check the installation guides ." : "Palun tutvu veelkord paigalduse juhenditega .",
+ "Last cron was executed at %s." : "Cron käivitati viimati %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Cron käivitati viimati %s. See on rohkem kui tund tagasi, midagi on valesti.",
+ "Cron was not executed yet!" : "Cron pole kordagi käivitatud!",
+ "Execute one task with each page loaded" : "Käivita toiming igal lehe laadimisel",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php on registreeritud webcron teenuses, et käivitada fail cron.php iga 15 minuti tagant üle http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Kasuta süsteemi cron teenust, et käivitada fail cron.php iga 15 minuti järel.",
+ "Allow apps to use the Share API" : "Luba rakendustel kasutada Share API-t",
+ "Allow users to share via link" : "Luba kasutajatel lingiga jagamist ",
+ "Enforce password protection" : "Sunni parooliga kaitsmist",
+ "Allow public uploads" : "Luba avalikud üleslaadimised",
+ "Set default expiration date" : "Määra vaikimisi aegumise kuupäev",
+ "Expire after " : "Aegu pärast",
+ "days" : "päeva",
+ "Enforce expiration date" : "Sunnitud aegumise kuupäev",
+ "Allow resharing" : "Luba edasijagamine",
+ "Restrict users to only share with users in their groups" : "Luba kasutajatel jagada kasutajatega ainult oma grupi piires",
+ "Allow users to send mail notification for shared files" : "Luba kasutajatel saata e-posti teavitusi jagatud failide kohta",
+ "Exclude groups from sharing" : "Eemalda grupid jagamisest",
+ "These groups will still be able to receive shares, but not to initiate them." : "Need grupid saavad vastu võtta jagamisi, kuid ise jagamisi algatada ei saa.",
+ "Enforce HTTPS" : "Sunni peale HTTPS-i kasutamine",
+ "Forces the clients to connect to %s via an encrypted connection." : "Sunnib kliente %s ühenduma krüpteeritult.",
+ "Enforce HTTPS for subdomains" : "Sunni peale HTTPS-i kasutamine",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Sunnib kliente ühenduma domeeniga %s ja selle alamdomeenidega krüpteeritult.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Palun ühendu oma %s üle HTTPS või keela SSL kasutamine.",
+ "This is used for sending out notifications." : "Seda kasutatakse teadete välja saatmiseks.",
+ "Send mode" : "Saatmise viis",
+ "From address" : "Saatja aadress",
+ "mail" : "e-mail",
+ "Authentication method" : "Autentimise meetod",
+ "Authentication required" : "Autentimine on vajalik",
+ "Server address" : "Serveri aadress",
+ "Port" : "Port",
+ "Credentials" : "Kasutajatunnused",
+ "SMTP Username" : "SMTP kasutajatunnus",
+ "SMTP Password" : "SMTP parool",
+ "Store credentials" : "Säilita kasutajaandmed",
+ "Test email settings" : "Testi e-posti seadeid",
+ "Send email" : "Saada kiri",
+ "Log level" : "Logi tase",
+ "More" : "Rohkem",
+ "Less" : "Vähem",
+ "Version" : "Versioon",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Arendatud ownCloud kogukonna poolt. Lähtekood on avaldatud ja kaetud AGPL litsentsiga.",
+ "More apps" : "Rohkem rakendusi",
+ "Add your app" : "Lisa oma rakendus",
+ "by" : "lisas",
+ "licensed" : "litsenseeritud",
+ "Documentation:" : "Dokumentatsioon:",
+ "User Documentation" : "Kasutaja dokumentatsioon",
+ "Admin Documentation" : "Admin dokumentatsioon",
+ "Update to %s" : "Uuenda versioonile %s",
+ "Enable only for specific groups" : "Luba ainult kindlad grupid",
+ "Uninstall App" : "Eemada rakend",
+ "Administrator Documentation" : "Administraatori dokumentatsioon",
+ "Online Documentation" : "Online dokumentatsioon",
+ "Forum" : "Foorum",
+ "Bugtracker" : "Vigade nimekiri",
+ "Commercial Support" : "Tasuline kasutajatugi",
+ "Get the apps to sync your files" : "Hangi rakendusi failide sünkroniseerimiseks",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Kui tahad projekti toetada\n\t\tliitu arendusega \n\t\tvõi\n\t\tlevita sõna !",
+ "Show First Run Wizard again" : "Näita veelkord Esmase Käivituse Juhendajat",
+ "You have used %s of the available %s " : "Kasutad %s saadavalolevast %s ",
+ "Password" : "Parool",
+ "Your password was changed" : "Sinu parooli on muudetud",
+ "Unable to change your password" : "Sa ei saa oma parooli muuta",
+ "Current password" : "Praegune parool",
+ "New password" : "Uus parool",
+ "Change password" : "Muuda parooli",
+ "Full Name" : "Täispikk nimi",
+ "Email" : "E-post",
+ "Your email address" : "Sinu e-posti aadress",
+ "Fill in an email address to enable password recovery and receive notifications" : "Täida e-posti aadress võimaldamaks parooli taastamist ning teadete saamist.",
+ "Profile picture" : "Profiili pilt",
+ "Upload new" : "Laadi uus üles",
+ "Select new from Files" : "Vali failidest uus",
+ "Remove image" : "Eemalda pilt",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Kas png või jpg. Võimalikult ruudukujuline, kuid sul on võimalus seda veel lõigata.",
+ "Your avatar is provided by your original account." : "Sinu avatari pakub sinu algne konto.",
+ "Cancel" : "Loobu",
+ "Choose as profile image" : "Vali profiilipildiks",
+ "Language" : "Keel",
+ "Help translate" : "Aita tõlkida",
+ "Common Name" : "Üldnimetus",
+ "Valid until" : "Kehtib kuni",
+ "Issued By" : "isas",
+ "Valid until %s" : "Kehtib kuni %s",
+ "Import Root Certificate" : "Impordi root sertifikaadid",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Küpteeringu rakend pole lubatud, dekrüpteeri kõik oma failid",
+ "Log-in password" : "Sisselogimise parool",
+ "Decrypt all Files" : "Dekrüpteeri kõik failid",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Sinu krüpteerimisvõtmed on tõstetud varukoopiasse. Kui midagi läheb valesti, siis saad võtmed taastada. Kustuta lõplikult ainult juhul kui oled kindel, et failid on dekrüteeritud korrektselt.",
+ "Restore Encryption Keys" : "Taasta krüpteerimisvõtmed",
+ "Delete Encryption Keys" : "Kustuta krüpteerimisvõtmed",
+ "Show storage location" : "Näita salvestusruumi asukohta",
+ "Show last log in" : "Viimane sisselogimine",
+ "Username" : "Kasutajanimi",
+ "Create" : "Lisa",
+ "Admin Recovery Password" : "Admini parooli taastamine",
+ "Enter the recovery password in order to recover the users files during password change" : "Sisesta taasteparool kasutaja failide taastamiseks paroolivahetuse käigus",
+ "Add Group" : "Lisa grupp",
+ "Group" : "Grupp",
+ "Everyone" : "Igaüks",
+ "Admins" : "Haldurid",
+ "Default Quota" : "Vaikimisi kvoot",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Palun sisesta mahupiir (nt: \"512 MB\" või \"12 GB\")",
+ "Unlimited" : "Piiramatult",
+ "Other" : "Muu",
+ "Group Admin for" : "Grupi admin",
+ "Quota" : "Mahupiir",
+ "Storage Location" : "Mahu asukoht",
+ "Last Login" : "Viimane sisselogimine",
+ "change full name" : "Muuda täispikka nime",
+ "set new password" : "määra uus parool",
+ "Default" : "Vaikeväärtus"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/et_EE.json b/settings/l10n/et_EE.json
new file mode 100644
index 00000000000..8582084d420
--- /dev/null
+++ b/settings/l10n/et_EE.json
@@ -0,0 +1,238 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Turva- ja paigalduse hoiatused",
+ "Cron" : "Cron",
+ "Sharing" : "Jagamine",
+ "Security" : "Turvalisus",
+ "Email Server" : "Postiserver",
+ "Log" : "Logi",
+ "Authentication error" : "Autentimise viga",
+ "Your full name has been changed." : "Sinu täispikk nimi on muudetud.",
+ "Unable to change full name" : "Täispika nime muutmine ebaõnnestus",
+ "Group already exists" : "Grupp on juba olemas",
+ "Unable to add group" : "Keela grupi lisamine",
+ "Files decrypted successfully" : "Failide krüpteerimine õnnestus",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Ei suutnud faile dekrüpteerida, palun kontrolli oma owncloud.log-i või küsi nõu administraatorilt",
+ "Couldn't decrypt your files, check your password and try again" : "Ei suutnud failde dekrüpteerida, kontrolli parooli ja proovi uuesti",
+ "Encryption keys deleted permanently" : "Krüpteerimisvõtmed kustutatud lõplikult",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Ei suutnud lõplikult kustutada sinu krüpteerimisvõtmeid, palun vaata owncloud.log-i või pöördu oma süsteemihalduri poole.",
+ "Couldn't remove app." : "Ei suutnud rakendit eemaldada.",
+ "Email saved" : "Kiri on salvestatud",
+ "Invalid email" : "Vigane e-post",
+ "Unable to delete group" : "Grupi kustutamine ebaõnnestus",
+ "Unable to delete user" : "Kasutaja kustutamine ebaõnnestus",
+ "Backups restored successfully" : "Varukoopiad taastatud edukalt.",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Ei suutnud taastada sinu krüpteerimisvõtmeid, palun vaata owncloud.log-i või pöördu oma süsteemihalduri poole.",
+ "Language changed" : "Keel on muudetud",
+ "Invalid request" : "Vigane päring",
+ "Admins can't remove themself from the admin group" : "Administraatorid ei saa ise end admin grupist eemaldada",
+ "Unable to add user to group %s" : "Kasutajat ei saa lisada gruppi %s",
+ "Unable to remove user from group %s" : "Kasutajat ei saa eemaldada grupist %s",
+ "Couldn't update app." : "Rakenduse uuendamine ebaõnnestus.",
+ "Wrong password" : "Vale parool",
+ "No user supplied" : "Kasutajat ei sisestatud",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Palun sisesta administraatori taasteparool, muidu kaotad kõik kasutajate andmed",
+ "Wrong admin recovery password. Please check the password and try again." : "Vale administraatori taasteparool. Palun kontrolli parooli ning proovi uuesti.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Tagarakend ei toeta parooli vahetust, kuid kasutaja krüptimisvõti uuendati edukalt.",
+ "Unable to change password" : "Ei suuda parooli muuta",
+ "Enabled" : "Sisse lülitatud",
+ "Not enabled" : "Pole sisse lülitatud",
+ "Recommended" : "Soovitatud",
+ "Saved" : "Salvestatud",
+ "test email settings" : "testi e-posti seadeid",
+ "If you received this email, the settings seem to be correct." : "Kui said selle kirja, siis on seadistus korrektne.",
+ "A problem occurred while sending the email. Please revise your settings." : "Kirja saatmisel tekkis tõrge. Palun kontrolli üle oma seadistus.",
+ "Email sent" : "E-kiri on saadetud",
+ "You need to set your user email before being able to send test emails." : "Pead seadistama oma e-postienne kui on võimalik saata test-kirju.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Oled sa kindel, et soovid lisada domeeni \"{domain}\" usaldusväärseks domeeniks?",
+ "Add trusted domain" : "Lis ausaldusväärne domeen",
+ "Sending..." : "Saadan...",
+ "All" : "Kõik",
+ "Please wait...." : "Palun oota...",
+ "Error while disabling app" : "Viga rakenduse keelamisel",
+ "Disable" : "Lülita välja",
+ "Enable" : "Lülita sisse",
+ "Error while enabling app" : "Viga rakenduse lubamisel",
+ "Updating...." : "Uuendamine...",
+ "Error while updating app" : "Viga rakenduse uuendamisel",
+ "Updated" : "Uuendatud",
+ "Uninstalling ...." : "Eemaldan...",
+ "Error while uninstalling app" : "Viga rakendi eemaldamisel",
+ "Uninstall" : "Eemalda",
+ "Select a profile picture" : "Vali profiili pilt",
+ "Very weak password" : "Väga nõrk parool",
+ "Weak password" : "Nõrk parool",
+ "So-so password" : "Enam-vähem sobiv parool",
+ "Good password" : "Hea parool",
+ "Strong password" : "Väga hea parool",
+ "Valid until {date}" : "Kehtib kuni {date}",
+ "Delete" : "Kustuta",
+ "Decrypting files... Please wait, this can take some time." : "Dekrüpteerin faile... Palun oota, see võib võtta veidi aega.",
+ "Delete encryption keys permanently." : "Kustuta krüpteerimisvõtmed lõplikult",
+ "Restore encryption keys." : "Taasta krüpteerimisvõtmed.",
+ "Groups" : "Grupid",
+ "Unable to delete {objName}" : "Ei suuda kustutada {objName}",
+ "Error creating group" : "Viga grupi loomisel",
+ "A valid group name must be provided" : "Sisesta nõuetele vastav grupi nimi",
+ "deleted {groupName}" : "kustutatud {groupName}",
+ "undo" : "tagasi",
+ "no group" : "grupp puudub",
+ "never" : "mitte kunagi",
+ "deleted {userName}" : "kustutatud {userName}",
+ "add group" : "lisa grupp",
+ "A valid username must be provided" : "Sisesta nõuetele vastav kasutajatunnus",
+ "Error creating user" : "Viga kasutaja loomisel",
+ "A valid password must be provided" : "Sisesta nõuetele vastav parool",
+ "Warning: Home directory for user \"{user}\" already exists" : "Hoiatus: kasutaja \"{user}\" kodukataloog on juba olemas",
+ "__language_name__" : "Eesti",
+ "Personal Info" : "Isiklik info",
+ "SSL root certificates" : "SSL root sertifikaadid",
+ "Encryption" : "Krüpteerimine",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Kõik (tõsised probleemid, veateated, hoiatused, info, veatuvastus)",
+ "Info, warnings, errors and fatal issues" : "Info, hoiatused, veateted ja tõsised probleemid",
+ "Warnings, errors and fatal issues" : "Hoiatused, veateated ja tõsised probleemid",
+ "Errors and fatal issues" : "Veateated ja tõsised probleemid",
+ "Fatal issues only" : "Ainult tõsised probleemid",
+ "None" : "Pole",
+ "Login" : "Logi sisse",
+ "Plain" : "Tavatekst",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Turvahoiatus",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Sa kasutad %s ligipääsuks HTTP protokolli. Soovitame tungivalt seadistada oma server selle asemel kasutama HTTPS-i.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Andmete kataloog ja failid on tõenäoliselt internetis avalikult saadaval. .htaccess fail, ei toimi. Soovitame tungivalt veebiserver seadistada selliselt, et andmete kataloog ei oleks enam vabalt saadaval või tõstaksid andmete kataloogi oma veebiserveri veebi juurkataloogist mujale.",
+ "Setup Warning" : "Paigalduse hoiatus",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
+ "Database Performance Info" : "Andmebaasi toimimise info",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "Andmebaasina kasutatakse SQLite-t. Suuremate paigalduste puhul me soovitame seda muuta. Migreerimaks teisele andmebaasile kasuta seda käsurea vahendit: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "Moodul 'fileinfo' puudub",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP moodul 'fileinfo' puudub. Soovitame tungivalt see lisada saavutamaks parimaid tulemusi failitüüpide tuvastamisel.",
+ "Your PHP version is outdated" : "PHP versioon on aegunud",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Sinu PHP versioon on aegunud. Soovitame tungivalt uuenda versioonile 5.3.8 või uuemale, kuna varasemad versioonid on teadaolevalt vigased. On võimalik, et see käesolev paigaldus ei toimi korrektselt.",
+ "PHP charset is not set to UTF-8" : "PHP märgistik pole UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP märgistikuks pole määratud UTF-8. See võib tekitada failinimedes mitte-ASCII märkidega suuri probleeme. Me soovitame tungivalt panna failis php.ini sätte 'default_charset' väärtuseks 'UTF-8'.",
+ "Locale not working" : "Lokalisatsioon ei toimi",
+ "System locale can not be set to a one which supports UTF-8." : "Süsteemi lokaliseeringuks ei saa panna sellist, mis toetab UTF-8-t.",
+ "This means that there might be problems with certain characters in file names." : "See tähendab, et võib esineda probleeme failide nimedes mõnede sümbolitega.",
+ "URL generation in notification emails" : "URL-ide loomine teavituskirjades",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Kui sinu sait pole paigaldatud domeeni juurkausta ja see kasutab ajastatud tegevusi, siis võib tekkide probleeme URL-ide loomisega. Nende probleemide vältimiseks sisesta palun failis config.php valikusse \"overwritewebroot\" oma veebiserveri juurkaust (Soovituslik: \"%s\")",
+ "Connectivity Checks" : "Ühenduse kontrollid",
+ "No problems found" : "Ühtegi probleemi ei leitud",
+ "Please double check the installation guides ." : "Palun tutvu veelkord paigalduse juhenditega .",
+ "Last cron was executed at %s." : "Cron käivitati viimati %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Cron käivitati viimati %s. See on rohkem kui tund tagasi, midagi on valesti.",
+ "Cron was not executed yet!" : "Cron pole kordagi käivitatud!",
+ "Execute one task with each page loaded" : "Käivita toiming igal lehe laadimisel",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php on registreeritud webcron teenuses, et käivitada fail cron.php iga 15 minuti tagant üle http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Kasuta süsteemi cron teenust, et käivitada fail cron.php iga 15 minuti järel.",
+ "Allow apps to use the Share API" : "Luba rakendustel kasutada Share API-t",
+ "Allow users to share via link" : "Luba kasutajatel lingiga jagamist ",
+ "Enforce password protection" : "Sunni parooliga kaitsmist",
+ "Allow public uploads" : "Luba avalikud üleslaadimised",
+ "Set default expiration date" : "Määra vaikimisi aegumise kuupäev",
+ "Expire after " : "Aegu pärast",
+ "days" : "päeva",
+ "Enforce expiration date" : "Sunnitud aegumise kuupäev",
+ "Allow resharing" : "Luba edasijagamine",
+ "Restrict users to only share with users in their groups" : "Luba kasutajatel jagada kasutajatega ainult oma grupi piires",
+ "Allow users to send mail notification for shared files" : "Luba kasutajatel saata e-posti teavitusi jagatud failide kohta",
+ "Exclude groups from sharing" : "Eemalda grupid jagamisest",
+ "These groups will still be able to receive shares, but not to initiate them." : "Need grupid saavad vastu võtta jagamisi, kuid ise jagamisi algatada ei saa.",
+ "Enforce HTTPS" : "Sunni peale HTTPS-i kasutamine",
+ "Forces the clients to connect to %s via an encrypted connection." : "Sunnib kliente %s ühenduma krüpteeritult.",
+ "Enforce HTTPS for subdomains" : "Sunni peale HTTPS-i kasutamine",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Sunnib kliente ühenduma domeeniga %s ja selle alamdomeenidega krüpteeritult.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Palun ühendu oma %s üle HTTPS või keela SSL kasutamine.",
+ "This is used for sending out notifications." : "Seda kasutatakse teadete välja saatmiseks.",
+ "Send mode" : "Saatmise viis",
+ "From address" : "Saatja aadress",
+ "mail" : "e-mail",
+ "Authentication method" : "Autentimise meetod",
+ "Authentication required" : "Autentimine on vajalik",
+ "Server address" : "Serveri aadress",
+ "Port" : "Port",
+ "Credentials" : "Kasutajatunnused",
+ "SMTP Username" : "SMTP kasutajatunnus",
+ "SMTP Password" : "SMTP parool",
+ "Store credentials" : "Säilita kasutajaandmed",
+ "Test email settings" : "Testi e-posti seadeid",
+ "Send email" : "Saada kiri",
+ "Log level" : "Logi tase",
+ "More" : "Rohkem",
+ "Less" : "Vähem",
+ "Version" : "Versioon",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Arendatud ownCloud kogukonna poolt. Lähtekood on avaldatud ja kaetud AGPL litsentsiga.",
+ "More apps" : "Rohkem rakendusi",
+ "Add your app" : "Lisa oma rakendus",
+ "by" : "lisas",
+ "licensed" : "litsenseeritud",
+ "Documentation:" : "Dokumentatsioon:",
+ "User Documentation" : "Kasutaja dokumentatsioon",
+ "Admin Documentation" : "Admin dokumentatsioon",
+ "Update to %s" : "Uuenda versioonile %s",
+ "Enable only for specific groups" : "Luba ainult kindlad grupid",
+ "Uninstall App" : "Eemada rakend",
+ "Administrator Documentation" : "Administraatori dokumentatsioon",
+ "Online Documentation" : "Online dokumentatsioon",
+ "Forum" : "Foorum",
+ "Bugtracker" : "Vigade nimekiri",
+ "Commercial Support" : "Tasuline kasutajatugi",
+ "Get the apps to sync your files" : "Hangi rakendusi failide sünkroniseerimiseks",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Kui tahad projekti toetada\n\t\tliitu arendusega \n\t\tvõi\n\t\tlevita sõna !",
+ "Show First Run Wizard again" : "Näita veelkord Esmase Käivituse Juhendajat",
+ "You have used %s of the available %s " : "Kasutad %s saadavalolevast %s ",
+ "Password" : "Parool",
+ "Your password was changed" : "Sinu parooli on muudetud",
+ "Unable to change your password" : "Sa ei saa oma parooli muuta",
+ "Current password" : "Praegune parool",
+ "New password" : "Uus parool",
+ "Change password" : "Muuda parooli",
+ "Full Name" : "Täispikk nimi",
+ "Email" : "E-post",
+ "Your email address" : "Sinu e-posti aadress",
+ "Fill in an email address to enable password recovery and receive notifications" : "Täida e-posti aadress võimaldamaks parooli taastamist ning teadete saamist.",
+ "Profile picture" : "Profiili pilt",
+ "Upload new" : "Laadi uus üles",
+ "Select new from Files" : "Vali failidest uus",
+ "Remove image" : "Eemalda pilt",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Kas png või jpg. Võimalikult ruudukujuline, kuid sul on võimalus seda veel lõigata.",
+ "Your avatar is provided by your original account." : "Sinu avatari pakub sinu algne konto.",
+ "Cancel" : "Loobu",
+ "Choose as profile image" : "Vali profiilipildiks",
+ "Language" : "Keel",
+ "Help translate" : "Aita tõlkida",
+ "Common Name" : "Üldnimetus",
+ "Valid until" : "Kehtib kuni",
+ "Issued By" : "isas",
+ "Valid until %s" : "Kehtib kuni %s",
+ "Import Root Certificate" : "Impordi root sertifikaadid",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Küpteeringu rakend pole lubatud, dekrüpteeri kõik oma failid",
+ "Log-in password" : "Sisselogimise parool",
+ "Decrypt all Files" : "Dekrüpteeri kõik failid",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Sinu krüpteerimisvõtmed on tõstetud varukoopiasse. Kui midagi läheb valesti, siis saad võtmed taastada. Kustuta lõplikult ainult juhul kui oled kindel, et failid on dekrüteeritud korrektselt.",
+ "Restore Encryption Keys" : "Taasta krüpteerimisvõtmed",
+ "Delete Encryption Keys" : "Kustuta krüpteerimisvõtmed",
+ "Show storage location" : "Näita salvestusruumi asukohta",
+ "Show last log in" : "Viimane sisselogimine",
+ "Username" : "Kasutajanimi",
+ "Create" : "Lisa",
+ "Admin Recovery Password" : "Admini parooli taastamine",
+ "Enter the recovery password in order to recover the users files during password change" : "Sisesta taasteparool kasutaja failide taastamiseks paroolivahetuse käigus",
+ "Add Group" : "Lisa grupp",
+ "Group" : "Grupp",
+ "Everyone" : "Igaüks",
+ "Admins" : "Haldurid",
+ "Default Quota" : "Vaikimisi kvoot",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Palun sisesta mahupiir (nt: \"512 MB\" või \"12 GB\")",
+ "Unlimited" : "Piiramatult",
+ "Other" : "Muu",
+ "Group Admin for" : "Grupi admin",
+ "Quota" : "Mahupiir",
+ "Storage Location" : "Mahu asukoht",
+ "Last Login" : "Viimane sisselogimine",
+ "change full name" : "Muuda täispikka nime",
+ "set new password" : "määra uus parool",
+ "Default" : "Vaikeväärtus"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/et_EE.php b/settings/l10n/et_EE.php
deleted file mode 100644
index 11e72734092..00000000000
--- a/settings/l10n/et_EE.php
+++ /dev/null
@@ -1,237 +0,0 @@
- "Sisestatud sobimatu väärtus %s jaoks",
-"Saved" => "Salvestatud",
-"test email settings" => "testi e-posti seadeid",
-"If you received this email, the settings seem to be correct." => "Kui said selle kirja, siis on seadistus korrektne.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Kirja saatmisel tekkis tõrge. Palun kontrolli üle oma seadistus.",
-"Email sent" => "E-kiri on saadetud",
-"You need to set your user email before being able to send test emails." => "Pead seadistama oma e-postienne kui on võimalik saata test-kirju.",
-"Send mode" => "Saatmise viis",
-"Encryption" => "Krüpteerimine",
-"Authentication method" => "Autentimise meetod",
-"Unable to load list from App Store" => "App Store'i nimekirja laadimine ebaõnnestus",
-"Authentication error" => "Autentimise viga",
-"Your full name has been changed." => "Sinu täispikk nimi on muudetud.",
-"Unable to change full name" => "Täispika nime muutmine ebaõnnestus",
-"Group already exists" => "Grupp on juba olemas",
-"Unable to add group" => "Keela grupi lisamine",
-"Files decrypted successfully" => "Failide krüpteerimine õnnestus",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Ei suutnud faile dekrüpteerida, palun kontrolli oma owncloud.log-i või küsi nõu administraatorilt",
-"Couldn't decrypt your files, check your password and try again" => "Ei suutnud failde dekrüpteerida, kontrolli parooli ja proovi uuesti",
-"Encryption keys deleted permanently" => "Krüpteerimisvõtmed kustutatud lõplikult",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Ei suutnud lõplikult kustutada sinu krüpteerimisvõtmeid, palun vaata owncloud.log-i või pöördu oma süsteemihalduri poole.",
-"Couldn't remove app." => "Ei suutnud rakendit eemaldada.",
-"Email saved" => "Kiri on salvestatud",
-"Invalid email" => "Vigane e-post",
-"Unable to delete group" => "Grupi kustutamine ebaõnnestus",
-"Unable to delete user" => "Kasutaja kustutamine ebaõnnestus",
-"Backups restored successfully" => "Varukoopiad taastatud edukalt.",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Ei suutnud taastada sinu krüpteerimisvõtmeid, palun vaata owncloud.log-i või pöördu oma süsteemihalduri poole.",
-"Language changed" => "Keel on muudetud",
-"Invalid request" => "Vigane päring",
-"Admins can't remove themself from the admin group" => "Administraatorid ei saa ise end admin grupist eemaldada",
-"Unable to add user to group %s" => "Kasutajat ei saa lisada gruppi %s",
-"Unable to remove user from group %s" => "Kasutajat ei saa eemaldada grupist %s",
-"Couldn't update app." => "Rakenduse uuendamine ebaõnnestus.",
-"Wrong password" => "Vale parool",
-"No user supplied" => "Kasutajat ei sisestatud",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Palun sisesta administraatori taasteparool, muidu kaotad kõik kasutajate andmed",
-"Wrong admin recovery password. Please check the password and try again." => "Vale administraatori taasteparool. Palun kontrolli parooli ning proovi uuesti.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Tagarakend ei toeta parooli vahetust, kuid kasutaja krüptimisvõti uuendati edukalt.",
-"Unable to change password" => "Ei suuda parooli muuta",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "Oled sa kindel, et soovid lisada domeeni \"{domain}\" usaldusväärseks domeeniks?",
-"Add trusted domain" => "Lis ausaldusväärne domeen",
-"Sending..." => "Saadan...",
-"All" => "Kõik",
-"User Documentation" => "Kasutaja dokumentatsioon",
-"Admin Documentation" => "Admin dokumentatsioon",
-"Update to {appversion}" => "Uuenda versioonile {appversion}",
-"Uninstall App" => "Eemada rakend",
-"Disable" => "Lülita välja",
-"Enable" => "Lülita sisse",
-"Please wait...." => "Palun oota...",
-"Error while disabling app" => "Viga rakenduse keelamisel",
-"Error while enabling app" => "Viga rakenduse lubamisel",
-"Updating...." => "Uuendamine...",
-"Error while updating app" => "Viga rakenduse uuendamisel",
-"Error" => "Viga",
-"Update" => "Uuenda",
-"Updated" => "Uuendatud",
-"Uninstalling ...." => "Eemaldan...",
-"Error while uninstalling app" => "Viga rakendi eemaldamisel",
-"Uninstall" => "Eemalda",
-"Select a profile picture" => "Vali profiili pilt",
-"Very weak password" => "Väga nõrk parool",
-"Weak password" => "Nõrk parool",
-"So-so password" => "Enam-vähem sobiv parool",
-"Good password" => "Hea parool",
-"Strong password" => "Väga hea parool",
-"Valid until {date}" => "Kehtib kuni {date}",
-"Delete" => "Kustuta",
-"Decrypting files... Please wait, this can take some time." => "Dekrüpteerin faile... Palun oota, see võib võtta veidi aega.",
-"Delete encryption keys permanently." => "Kustuta krüpteerimisvõtmed lõplikult",
-"Restore encryption keys." => "Taasta krüpteerimisvõtmed.",
-"Groups" => "Grupid",
-"Unable to delete {objName}" => "Ei suuda kustutada {objName}",
-"Error creating group" => "Viga grupi loomisel",
-"A valid group name must be provided" => "Sisesta nõuetele vastav grupi nimi",
-"deleted {groupName}" => "kustutatud {groupName}",
-"undo" => "tagasi",
-"Group Admin" => "Grupi admin",
-"never" => "mitte kunagi",
-"deleted {userName}" => "kustutatud {userName}",
-"add group" => "lisa grupp",
-"A valid username must be provided" => "Sisesta nõuetele vastav kasutajatunnus",
-"Error creating user" => "Viga kasutaja loomisel",
-"A valid password must be provided" => "Sisesta nõuetele vastav parool",
-"Warning: Home directory for user \"{user}\" already exists" => "Hoiatus: kasutaja \"{user}\" kodukataloog on juba olemas",
-"__language_name__" => "Eesti",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Kõik (tõsised probleemid, veateated, hoiatused, info, veatuvastus)",
-"Info, warnings, errors and fatal issues" => "Info, hoiatused, veateted ja tõsised probleemid",
-"Warnings, errors and fatal issues" => "Hoiatused, veateated ja tõsised probleemid",
-"Errors and fatal issues" => "Veateated ja tõsised probleemid",
-"Fatal issues only" => "Ainult tõsised probleemid",
-"None" => "Pole",
-"Login" => "Logi sisse",
-"Plain" => "Tavatekst",
-"NT LAN Manager" => "NT LAN Manager",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Turvahoiatus",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Sa kasutad %s ligipääsuks HTTP protokolli. Soovitame tungivalt seadistada oma server selle asemel kasutama HTTPS-i.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Andmete kataloog ja failid on tõenäoliselt internetis avalikult saadaval. .htaccess fail, ei toimi. Soovitame tungivalt veebiserver seadistada selliselt, et andmete kataloog ei oleks enam vabalt saadaval või tõstaksid andmete kataloogi oma veebiserveri veebi juurkataloogist mujale.",
-"Setup Warning" => "Paigalduse hoiatus",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
-"Database Performance Info" => "Andmebaasi toimimise info",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "Andmebaasina kasutatakse SQLite-t. Suuremate paigalduste puhul me soovitame seda muuta. Migreerimaks teisele andmebaasile kasuta seda käsurea vahendit: 'occ db:convert-type'",
-"Module 'fileinfo' missing" => "Moodul 'fileinfo' puudub",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "PHP moodul 'fileinfo' puudub. Soovitame tungivalt see lisada saavutamaks parimaid tulemusi failitüüpide tuvastamisel.",
-"Your PHP version is outdated" => "PHP versioon on aegunud",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Sinu PHP versioon on aegunud. Soovitame tungivalt uuenda versioonile 5.3.8 või uuemale, kuna varasemad versioonid on teadaolevalt vigased. On võimalik, et see käesolev paigaldus ei toimi korrektselt.",
-"PHP charset is not set to UTF-8" => "PHP märgistik pole UTF-8",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "PHP märgistikuks pole määratud UTF-8. See võib tekitada failinimedes mitte-ASCII märkidega suuri probleeme. Me soovitame tungivalt panna failis php.ini sätte 'default_charset' väärtuseks 'UTF-8'.",
-"Locale not working" => "Lokalisatsioon ei toimi",
-"System locale can not be set to a one which supports UTF-8." => "Süsteemi lokaliseeringuks ei saa panna sellist, mis toetab UTF-8-t.",
-"This means that there might be problems with certain characters in file names." => "See tähendab, et võib esineda probleeme failide nimedes mõnede sümbolitega.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Soovitame tungivalt paigaldada vajalikud paketid oma süsteemi tagamaks tuge järgmistele lokaliseeringutele: %s.",
-"URL generation in notification emails" => "URL-ide loomine teavituskirjades",
-"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "Kui sinu sait pole paigaldatud domeeni juurkausta ja see kasutab ajastatud tegevusi, siis võib tekkide probleeme URL-ide loomisega. Nende probleemide vältimiseks sisesta palun failis config.php valikusse \"overwritewebroot\" oma veebiserveri juurkaust (Soovituslik: \"%s\")",
-"Please double check the installation guides ." => "Palun tutvu veelkord paigalduse juhenditega .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Cron käivitati viimati %s.",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Cron käivitati viimati %s. See on rohkem kui tund tagasi, midagi on valesti.",
-"Cron was not executed yet!" => "Cron pole kordagi käivitatud!",
-"Execute one task with each page loaded" => "Käivita toiming igal lehe laadimisel",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php on registreeritud webcron teenuses, et käivitada fail cron.php iga 15 minuti tagant üle http.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Kasuta süsteemi cron teenust, et käivitada fail cron.php iga 15 minuti järel.",
-"Sharing" => "Jagamine",
-"Allow apps to use the Share API" => "Luba rakendustel kasutada Share API-t",
-"Allow users to share via link" => "Luba kasutajatel lingiga jagamist ",
-"Enforce password protection" => "Sunni parooliga kaitsmist",
-"Allow public uploads" => "Luba avalikud üleslaadimised",
-"Set default expiration date" => "Määra vaikimisi aegumise kuupäev",
-"Expire after " => "Aegu pärast",
-"days" => "päeva",
-"Enforce expiration date" => "Sunnitud aegumise kuupäev",
-"Allow resharing" => "Luba edasijagamine",
-"Restrict users to only share with users in their groups" => "Luba kasutajatel jagada kasutajatega ainult oma grupi piires",
-"Allow users to send mail notification for shared files" => "Luba kasutajatel saata e-posti teavitusi jagatud failide kohta",
-"Exclude groups from sharing" => "Eemalda grupid jagamisest",
-"These groups will still be able to receive shares, but not to initiate them." => "Need grupid saavad vastu võtta jagamisi, kuid ise jagamisi algatada ei saa.",
-"Security" => "Turvalisus",
-"Enforce HTTPS" => "Sunni peale HTTPS-i kasutamine",
-"Forces the clients to connect to %s via an encrypted connection." => "Sunnib kliente %s ühenduma krüpteeritult.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Palun ühendu oma %s üle HTTPS või keela SSL kasutamine.",
-"Email Server" => "Postiserver",
-"This is used for sending out notifications." => "Seda kasutatakse teadete välja saatmiseks.",
-"From address" => "Saatja aadress",
-"mail" => "e-mail",
-"Authentication required" => "Autentimine on vajalik",
-"Server address" => "Serveri aadress",
-"Port" => "Port",
-"Credentials" => "Kasutajatunnused",
-"SMTP Username" => "SMTP kasutajatunnus",
-"SMTP Password" => "SMTP parool",
-"Test email settings" => "Testi e-posti seadeid",
-"Send email" => "Saada kiri",
-"Log" => "Logi",
-"Log level" => "Logi tase",
-"More" => "Rohkem",
-"Less" => "Vähem",
-"Version" => "Versioon",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Arendatud ownCloud kogukonna poolt. Lähtekood on avaldatud ja kaetud AGPL litsentsiga.",
-"Add your App" => "Lisa oma rakendus",
-"More Apps" => "Veel rakendusi",
-"Select an App" => "Vali programm",
-"Documentation:" => "Dokumentatsioon:",
-"See application page at apps.owncloud.com" => "Vaata rakenduste lehte aadressil apps.owncloud.com",
-"See application website" => "Vaata rakendi veebilehte",
-" -licensed by " => " -litsenseeritud ",
-"Enable only for specific groups" => "Luba ainult kindlad grupid",
-"Administrator Documentation" => "Administraatori dokumentatsioon",
-"Online Documentation" => "Online dokumentatsioon",
-"Forum" => "Foorum",
-"Bugtracker" => "Vigade nimekiri",
-"Commercial Support" => "Tasuline kasutajatugi",
-"Get the apps to sync your files" => "Hangi rakendusi failide sünkroniseerimiseks",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Kui tahad projekti toetada\n\t\tliitu arendusega \n\t\tvõi\n\t\tlevita sõna !",
-"Show First Run Wizard again" => "Näita veelkord Esmase Käivituse Juhendajat",
-"You have used %s of the available %s " => "Kasutad %s saadavalolevast %s ",
-"Password" => "Parool",
-"Your password was changed" => "Sinu parooli on muudetud",
-"Unable to change your password" => "Sa ei saa oma parooli muuta",
-"Current password" => "Praegune parool",
-"New password" => "Uus parool",
-"Change password" => "Muuda parooli",
-"Full Name" => "Täispikk nimi",
-"Email" => "E-post",
-"Your email address" => "Sinu e-posti aadress",
-"Fill in an email address to enable password recovery and receive notifications" => "Täida e-posti aadress võimaldamaks parooli taastamist ning teadete saamist.",
-"Profile picture" => "Profiili pilt",
-"Upload new" => "Laadi uus üles",
-"Select new from Files" => "Vali failidest uus",
-"Remove image" => "Eemalda pilt",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Kas png või jpg. Võimalikult ruudukujuline, kuid sul on võimalus seda veel lõigata.",
-"Your avatar is provided by your original account." => "Sinu avatari pakub sinu algne konto.",
-"Cancel" => "Loobu",
-"Choose as profile image" => "Vali profiilipildiks",
-"Language" => "Keel",
-"Help translate" => "Aita tõlkida",
-"SSL root certificates" => "SSL root sertifikaadid",
-"Common Name" => "Üldnimetus",
-"Valid until" => "Kehtib kuni",
-"Issued By" => "isas",
-"Valid until %s" => "Kehtib kuni %s",
-"Import Root Certificate" => "Impordi root sertifikaadid",
-"The encryption app is no longer enabled, please decrypt all your files" => "Küpteeringu rakend pole lubatud, dekrüpteeri kõik oma failid",
-"Log-in password" => "Sisselogimise parool",
-"Decrypt all Files" => "Dekrüpteeri kõik failid",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Sinu krüpteerimisvõtmed on tõstetud varukoopiasse. Kui midagi läheb valesti, siis saad võtmed taastada. Kustuta lõplikult ainult juhul kui oled kindel, et failid on dekrüteeritud korrektselt.",
-"Restore Encryption Keys" => "Taasta krüpteerimisvõtmed",
-"Delete Encryption Keys" => "Kustuta krüpteerimisvõtmed",
-"Show storage location" => "Näita salvestusruumi asukohta",
-"Show last log in" => "Viimane sisselogimine",
-"Login Name" => "Kasutajanimi",
-"Create" => "Lisa",
-"Admin Recovery Password" => "Admini parooli taastamine",
-"Enter the recovery password in order to recover the users files during password change" => "Sisesta taasteparool kasutaja failide taastamiseks paroolivahetuse käigus",
-"Search Users and Groups" => "Otsi kasutajaid ja gruppe",
-"Add Group" => "Lisa grupp",
-"Group" => "Grupp",
-"Everyone" => "Igaüks",
-"Admins" => "Haldurid",
-"Default Quota" => "Vaikimisi kvoot",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Palun sisesta mahupiir (nt: \"512 MB\" või \"12 GB\")",
-"Unlimited" => "Piiramatult",
-"Other" => "Muu",
-"Username" => "Kasutajanimi",
-"Quota" => "Mahupiir",
-"Storage Location" => "Mahu asukoht",
-"Last Login" => "Viimane sisselogimine",
-"change full name" => "Muuda täispikka nime",
-"set new password" => "määra uus parool",
-"Default" => "Vaikeväärtus"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/eu.js b/settings/l10n/eu.js
new file mode 100644
index 00000000000..b56cdeaef72
--- /dev/null
+++ b/settings/l10n/eu.js
@@ -0,0 +1,230 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Cron" : "Cron",
+ "Sharing" : "Partekatzea",
+ "Security" : "Segurtasuna",
+ "Email Server" : "Eposta zerbitzaria",
+ "Log" : "Log",
+ "Authentication error" : "Autentifikazio errorea",
+ "Your full name has been changed." : "Zure izena aldatu egin da.",
+ "Unable to change full name" : "Ezin izan da izena aldatu",
+ "Group already exists" : "Taldea dagoeneko existitzenda",
+ "Unable to add group" : "Ezin izan da taldea gehitu",
+ "Files decrypted successfully" : "Fitxategiak ongi deskodetu dira.",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Ezin izan dira zure fitxategiak deskodetu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
+ "Couldn't decrypt your files, check your password and try again" : "Ezin izan dira deskodetu zure fitxategiak, egiaztatu zure pasahitza eta saiatu berriz",
+ "Encryption keys deleted permanently" : "Enkriptatze gakoak behin betiko ezabatuak",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Ezin izan dira zure enkriptatze gakoak behin betiko ezabatu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
+ "Couldn't remove app." : "Ezin izan da aplikazioa ezabatu..",
+ "Email saved" : "Eposta gorde da",
+ "Invalid email" : "Baliogabeko eposta",
+ "Unable to delete group" : "Ezin izan da taldea ezabatu",
+ "Unable to delete user" : "Ezin izan da erabiltzailea ezabatu",
+ "Backups restored successfully" : "Babeskopiak ongi leheneratu dira",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Ezin izan dira zure enkriptatze gakoak leheneratu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
+ "Language changed" : "Hizkuntza aldatuta",
+ "Invalid request" : "Baliogabeko eskaera",
+ "Admins can't remove themself from the admin group" : "Kudeatzaileak ezin du bere burua kendu kudeatzaile taldetik",
+ "Unable to add user to group %s" : "Ezin izan da erabiltzailea %s taldera gehitu",
+ "Unable to remove user from group %s" : "Ezin izan da erabiltzailea %s taldetik ezabatu",
+ "Couldn't update app." : "Ezin izan da aplikazioa eguneratu.",
+ "Wrong password" : "Pasahitz okerra",
+ "No user supplied" : "Ez da erabiltzailerik zehaztu",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Mesedez eman berreskuratzeko administrazio pasahitza, bestela erabiltzaile datu guztiak galduko dira",
+ "Wrong admin recovery password. Please check the password and try again." : "Administratzailearen berreskuratze pasahitza ez egokia. Mesedez egiaztatu pasahitza eta saiatu berriz.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Atzeko prozesuak ez du pasahitz aldaketa onartzen, baina erabiltzailearen enkriptatze gakoa ongi eguneratu da.",
+ "Unable to change password" : "Ezin izan da pasahitza aldatu",
+ "Enabled" : "Gaitua",
+ "Recommended" : "Aholkatuta",
+ "Saved" : "Gordeta",
+ "test email settings" : "probatu eposta ezarpenak",
+ "If you received this email, the settings seem to be correct." : "Eposta hau jaso baduzu, zure ezarpenak egokiak direnaren seinale",
+ "A problem occurred while sending the email. Please revise your settings." : "Arazo bat gertatu da eposta bidaltzean. Berrikusi zure ezarpenak.",
+ "Email sent" : "Eposta bidalia",
+ "You need to set your user email before being able to send test emails." : "Epostaren erabiltzailea zehaztu behar duzu probako eposta bidali aurretik.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ziur zaude gehitu nahi duzula \"{domain}\" domeinu fidagarri gisa?",
+ "Add trusted domain" : "Gehitu domeinu fidagarria",
+ "Sending..." : "Bidaltzen...",
+ "All" : "Denak",
+ "Please wait...." : "Itxoin mesedez...",
+ "Error while disabling app" : "Erroea izan da aplikazioa desgaitzerakoan",
+ "Disable" : "Ez-gaitu",
+ "Enable" : "Gaitu",
+ "Error while enabling app" : "Erroea izan da aplikazioa gaitzerakoan",
+ "Updating...." : "Eguneratzen...",
+ "Error while updating app" : "Errorea aplikazioa eguneratzen zen bitartean",
+ "Updated" : "Eguneratuta",
+ "Uninstalling ...." : "Desinstalatzen ...",
+ "Error while uninstalling app" : "Erroea izan da aplikazioa desinstalatzerakoan",
+ "Uninstall" : "Desinstalatu",
+ "Select a profile picture" : "Profilaren irudia aukeratu",
+ "Very weak password" : "Pasahitz oso ahula",
+ "Weak password" : "Pasahitz ahula",
+ "So-so password" : "Halamoduzko pasahitza",
+ "Good password" : "Pasahitz ona",
+ "Strong password" : "Pasahitz sendoa",
+ "Valid until {date}" : "{date} arte baliogarria",
+ "Delete" : "Ezabatu",
+ "Decrypting files... Please wait, this can take some time." : "Fitxategiak deskodetzen... Itxaron, bere denbora eskatzen du.",
+ "Delete encryption keys permanently." : "Ezabatu enkriptatze gakoak behin betiko",
+ "Restore encryption keys." : "Leheneratu enkriptatze gakoak",
+ "Groups" : "Taldeak",
+ "Unable to delete {objName}" : "Ezin izan da {objName} ezabatu",
+ "Error creating group" : "Errore bat izan da taldea sortzean",
+ "A valid group name must be provided" : "Baliozko talde izena eman behar da",
+ "deleted {groupName}" : "{groupName} ezbatuta",
+ "undo" : "desegin",
+ "no group" : "talderik ez",
+ "never" : "inoiz",
+ "deleted {userName}" : "{userName} ezabatuta",
+ "add group" : "gehitu taldea",
+ "A valid username must be provided" : "Baliozko erabiltzaile izena eman behar da",
+ "Error creating user" : "Errore bat egon da erabiltzailea sortzean",
+ "A valid password must be provided" : "Baliozko pasahitza eman behar da",
+ "Warning: Home directory for user \"{user}\" already exists" : "Abisua: \"{user}\" erabiltzailearen Home karpeta dagoeneko exisititzen da",
+ "__language_name__" : "Euskara",
+ "Personal Info" : "Informazio Pertsonala",
+ "SSL root certificates" : "SSL erro ziurtagiriak",
+ "Encryption" : "Enkriptazioa",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Dena (arazo larriak, erroreak, abisuak, informazioa, arazketa)",
+ "Info, warnings, errors and fatal issues" : "Informazioa, abisuak, erroreak eta arazo larriak.",
+ "Warnings, errors and fatal issues" : "Abisuak, erroreak eta arazo larriak",
+ "Errors and fatal issues" : "Erroreak eta arazo larriak",
+ "Fatal issues only" : "Bakarrik arazo larriak",
+ "None" : "Ezer",
+ "Login" : "Saio hasiera",
+ "Plain" : "Arrunta",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Segurtasun abisua",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "%s HTTP bidez erabiltzen ari zara. Aholkatzen dizugu zure zerbitzaria HTTPS erabil dezan.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Zure data karpeta eta zure fitxategiak internetetik zuzenean eskuragarri egon daitezke. .htaccess fitxategia ez du bere lana egiten. Aholkatzen dizugu zure web zerbitzaria ongi konfiguratzea data karpeta eskuragarri ez izateko edo data karpeta web zerbitzariaren dokumentu errotik mugitzea.",
+ "Setup Warning" : "Konfiguratu abisuak",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.",
+ "Database Performance Info" : "Database Performance informazioa",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite erabili da datu-base gisa. Instalazio handiagoetarako gomendatzen dugu aldatzea. Beste datu base batera migratzeko erabili komando-lerro tresna hau: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "'fileinfo' modulua falta da",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 'fileinfo' modulua falta da. Modulu hau gaitzea aholkatzen dizugu mime-type ezberdinak hobe detektatzeko.",
+ "Your PHP version is outdated" : "Zure PHP bertsioa zaharkituta dago",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Zure PHP bertsioa zaharkituta dago. Gure aholkua 5.3.8 edo bertsio berriago batera eguneratzea da, bertsio zaharragoak arazoak ematen baitituzte. Posible da instalazio honek ez funtzionatzea ongi.",
+ "PHP charset is not set to UTF-8" : "PHP charset ez da UTF-8 gisa ezartzen",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP charset ez da UTF-8 gisa ezartzen. Honek arazo larriak sor ditzake fitxategien izenetan ascii ez diren karaktereekin. Gomendatzen dizugu php.ini-ko 'default_charset'-en ordez 'UTF-8' ezartzea.",
+ "Locale not working" : "Lokala ez dabil",
+ "System locale can not be set to a one which supports UTF-8." : "Eskualdeko ezarpena ezin da UTF-8 onartzen duen batera ezarri.",
+ "This means that there might be problems with certain characters in file names." : "Honek esan nahi du fitxategien izenetako karaktere batzuekin arazoak egon daitezkeela.",
+ "URL generation in notification emails" : "URL sorrera jakinarazpen mezuetan",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Zure instalazioa ez badago domeinuaren sustraian egina eta erabiltzen badu sistemaren cron-a, arazoak izan daitezke URL sorreran. Arazo horiek saihesteko ezarri \"overwritewebroot\" opzioa zure config.php fitxategian zure instalazioaren webroot bidera (Proposatua: \"%s\")",
+ "No problems found" : "Ez da problemarik aurkitu",
+ "Please double check the installation guides ." : "Mesedez begiratu instalazio gidak .",
+ "Last cron was executed at %s." : "Azken cron-a %s-etan exekutatu da",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Azken cron-a %s-etan exekutatu da. Ordu bat baino gehiago pasa da, zerbait gaizki dabilela dirudi.",
+ "Cron was not executed yet!" : "Cron-a oraindik ez da exekutatu!",
+ "Execute one task with each page loaded" : "Exekutatu zeregin bat orri karga bakoitzean",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php webcron zerbitzu batean erregistratua dago cron.php 15 minuturo http bidez deitzeko.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Erabili sistemaren cron zerbitzua deitzeko cron.php fitxategia 15 minutuan behin.",
+ "Allow apps to use the Share API" : "Baimendu aplikazioak partekatzeko APIa erabiltzeko",
+ "Allow users to share via link" : "Baimendu erabiltzaileak esteken bidez partekatzea",
+ "Enforce password protection" : "Betearazi pasahitzaren babesa",
+ "Allow public uploads" : "Baimendu igoera publikoak",
+ "Set default expiration date" : "Ezarri muga data lehenetsia",
+ "Expire after " : "Iraungia honen ondoren",
+ "days" : "egun",
+ "Enforce expiration date" : "Muga data betearazi",
+ "Allow resharing" : "Baimendu birpartekatzea",
+ "Restrict users to only share with users in their groups" : "Mugatu partekatzeak taldeko erabiltzaileetara",
+ "Allow users to send mail notification for shared files" : "Baimendu erabiltzaileak epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
+ "Exclude groups from sharing" : "Baztertu taldeak partekatzean",
+ "These groups will still be able to receive shares, but not to initiate them." : "Talde hauek oraindik jaso ahal izango dute partekatzeak, baina ezingo dute partekatu",
+ "Enforce HTTPS" : "Behartu HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Bezeroak %s-ra konexio enkriptatu baten bidez konektatzera behartzen ditu.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Mesedez konektatu zure %s-ra HTTPS bidez SSL zehaztapenak aldatzeko.",
+ "This is used for sending out notifications." : "Hau jakinarazpenak bidaltzeko erabiltzen da.",
+ "Send mode" : "Bidaltzeko modua",
+ "From address" : "Helbidetik",
+ "mail" : "posta",
+ "Authentication method" : "Autentifikazio metodoa",
+ "Authentication required" : "Autentikazioa beharrezkoa",
+ "Server address" : "Zerbitzariaren helbidea",
+ "Port" : "Portua",
+ "Credentials" : "Kredentzialak",
+ "SMTP Username" : "SMTP erabiltzaile-izena",
+ "SMTP Password" : "SMTP pasahitza",
+ "Store credentials" : "Gorde kredentzialak",
+ "Test email settings" : "Probatu eposta ezarpenak",
+ "Send email" : "Bidali eposta",
+ "Log level" : "Erregistro maila",
+ "More" : "Gehiago",
+ "Less" : "Gutxiago",
+ "Version" : "Bertsioa",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "ownCloud komunitateak garatuta, itubruru kodea AGPL lizentziarekin banatzen da .",
+ "More apps" : "App gehiago",
+ "Add your app" : "Gehitu zure aplikazioa",
+ "by" : " Egilea:",
+ "Documentation:" : "Dokumentazioa:",
+ "User Documentation" : "Erabiltzaile dokumentazioa",
+ "Admin Documentation" : "Administrazio dokumentazioa",
+ "Update to %s" : "Eguneratu %sra",
+ "Enable only for specific groups" : "Baimendu bakarri talde espezifikoetarako",
+ "Uninstall App" : "Desinstalatu aplikazioa",
+ "Administrator Documentation" : "Administratzaile dokumentazioa",
+ "Online Documentation" : "Online dokumentazioa",
+ "Forum" : "Foroa",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Babes komertziala",
+ "Get the apps to sync your files" : "Lortu aplikazioak zure fitxategiak sinkronizatzeko",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Proiektua lagundu nahi baduzu\n⇥⇥join development \n⇥⇥edo\n⇥⇥zabaldu hitza !",
+ "Show First Run Wizard again" : "Erakutsi berriz Lehenengo Aldiko Morroia",
+ "You have used %s of the available %s " : "Dagoeneko %s erabili duzu eskuragarri duzun %s etatik",
+ "Password" : "Pasahitza",
+ "Your password was changed" : "Zure pasahitza aldatu da",
+ "Unable to change your password" : "Ezin izan da zure pasahitza aldatu",
+ "Current password" : "Uneko pasahitza",
+ "New password" : "Pasahitz berria",
+ "Change password" : "Aldatu pasahitza",
+ "Full Name" : "Izena",
+ "Email" : "E-posta",
+ "Your email address" : "Zure e-posta",
+ "Fill in an email address to enable password recovery and receive notifications" : "Bete ezazu eposta helbide bat pasahitza berreskuratzeko eta jakinarazpenak jasotzeko",
+ "Profile picture" : "Profilaren irudia",
+ "Upload new" : "Igo berria",
+ "Select new from Files" : "Hautatu berria Fitxategietatik",
+ "Remove image" : "Irudia ezabatu",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "png edo jpg. Hobe karratua baina mozteko aukera izango duzu.",
+ "Your avatar is provided by your original account." : "Zure jatorrizko kontuak ezarri du zure avatar.",
+ "Cancel" : "Ezeztatu",
+ "Choose as profile image" : "Profil irudi bezala aukeratu",
+ "Language" : "Hizkuntza",
+ "Help translate" : "Lagundu itzultzen",
+ "Issued By" : "Honek bidalita",
+ "Import Root Certificate" : "Inportatu erro ziurtagiria",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Enkriptazio aplikazioa ez dago jada gaiturik, mesedez desenkriptatu zure fitxategi guztiak.",
+ "Log-in password" : "Saioa hasteko pasahitza",
+ "Decrypt all Files" : "Desenkripattu fitxategi guztiak",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Zure enkriptatze gakoak babeskopiara eraman dira. Zerbait gaizki ateratzen bada berreskura ditzakezu giltzak. Behin betirako ezabatu bakarrik ziur bazaude fitxategi guztiak ongi deskodetu badira.",
+ "Restore Encryption Keys" : "Lehenera itzazu enkriptatze gakoak.",
+ "Delete Encryption Keys" : "Ezabatu enkriptatze gakoak",
+ "Show storage location" : "Erakutsi biltegiaren kokapena",
+ "Show last log in" : "Erakutsi azkeneko saio hasiera",
+ "Username" : "Erabiltzaile izena",
+ "Create" : "Sortu",
+ "Admin Recovery Password" : "Administratzailearen pasahitza berreskuratzea",
+ "Enter the recovery password in order to recover the users files during password change" : "Berreskuratze pasahitza idatzi pasahitz aldaketan erabiltzaileen fitxategiak berreskuratzeko",
+ "Add Group" : "Gehitu taldea",
+ "Group" : "Taldea",
+ "Everyone" : "Edonor",
+ "Admins" : "Administratzaileak",
+ "Default Quota" : "Kuota lehentsia",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Mesedez sartu biltegiratze kouta (adb: \"512 MB\" edo \"12 GB\")",
+ "Unlimited" : "Mugarik gabe",
+ "Other" : "Bestelakoa",
+ "Quota" : "Kuota",
+ "Storage Location" : "Biltegiaren kokapena",
+ "Last Login" : "Azken saio hasiera",
+ "change full name" : "aldatu izena",
+ "set new password" : "ezarri pasahitz berria",
+ "Default" : "Lehenetsia"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/eu.json b/settings/l10n/eu.json
new file mode 100644
index 00000000000..8d27d47188b
--- /dev/null
+++ b/settings/l10n/eu.json
@@ -0,0 +1,228 @@
+{ "translations": {
+ "Cron" : "Cron",
+ "Sharing" : "Partekatzea",
+ "Security" : "Segurtasuna",
+ "Email Server" : "Eposta zerbitzaria",
+ "Log" : "Log",
+ "Authentication error" : "Autentifikazio errorea",
+ "Your full name has been changed." : "Zure izena aldatu egin da.",
+ "Unable to change full name" : "Ezin izan da izena aldatu",
+ "Group already exists" : "Taldea dagoeneko existitzenda",
+ "Unable to add group" : "Ezin izan da taldea gehitu",
+ "Files decrypted successfully" : "Fitxategiak ongi deskodetu dira.",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Ezin izan dira zure fitxategiak deskodetu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
+ "Couldn't decrypt your files, check your password and try again" : "Ezin izan dira deskodetu zure fitxategiak, egiaztatu zure pasahitza eta saiatu berriz",
+ "Encryption keys deleted permanently" : "Enkriptatze gakoak behin betiko ezabatuak",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Ezin izan dira zure enkriptatze gakoak behin betiko ezabatu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
+ "Couldn't remove app." : "Ezin izan da aplikazioa ezabatu..",
+ "Email saved" : "Eposta gorde da",
+ "Invalid email" : "Baliogabeko eposta",
+ "Unable to delete group" : "Ezin izan da taldea ezabatu",
+ "Unable to delete user" : "Ezin izan da erabiltzailea ezabatu",
+ "Backups restored successfully" : "Babeskopiak ongi leheneratu dira",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Ezin izan dira zure enkriptatze gakoak leheneratu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
+ "Language changed" : "Hizkuntza aldatuta",
+ "Invalid request" : "Baliogabeko eskaera",
+ "Admins can't remove themself from the admin group" : "Kudeatzaileak ezin du bere burua kendu kudeatzaile taldetik",
+ "Unable to add user to group %s" : "Ezin izan da erabiltzailea %s taldera gehitu",
+ "Unable to remove user from group %s" : "Ezin izan da erabiltzailea %s taldetik ezabatu",
+ "Couldn't update app." : "Ezin izan da aplikazioa eguneratu.",
+ "Wrong password" : "Pasahitz okerra",
+ "No user supplied" : "Ez da erabiltzailerik zehaztu",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Mesedez eman berreskuratzeko administrazio pasahitza, bestela erabiltzaile datu guztiak galduko dira",
+ "Wrong admin recovery password. Please check the password and try again." : "Administratzailearen berreskuratze pasahitza ez egokia. Mesedez egiaztatu pasahitza eta saiatu berriz.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Atzeko prozesuak ez du pasahitz aldaketa onartzen, baina erabiltzailearen enkriptatze gakoa ongi eguneratu da.",
+ "Unable to change password" : "Ezin izan da pasahitza aldatu",
+ "Enabled" : "Gaitua",
+ "Recommended" : "Aholkatuta",
+ "Saved" : "Gordeta",
+ "test email settings" : "probatu eposta ezarpenak",
+ "If you received this email, the settings seem to be correct." : "Eposta hau jaso baduzu, zure ezarpenak egokiak direnaren seinale",
+ "A problem occurred while sending the email. Please revise your settings." : "Arazo bat gertatu da eposta bidaltzean. Berrikusi zure ezarpenak.",
+ "Email sent" : "Eposta bidalia",
+ "You need to set your user email before being able to send test emails." : "Epostaren erabiltzailea zehaztu behar duzu probako eposta bidali aurretik.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ziur zaude gehitu nahi duzula \"{domain}\" domeinu fidagarri gisa?",
+ "Add trusted domain" : "Gehitu domeinu fidagarria",
+ "Sending..." : "Bidaltzen...",
+ "All" : "Denak",
+ "Please wait...." : "Itxoin mesedez...",
+ "Error while disabling app" : "Erroea izan da aplikazioa desgaitzerakoan",
+ "Disable" : "Ez-gaitu",
+ "Enable" : "Gaitu",
+ "Error while enabling app" : "Erroea izan da aplikazioa gaitzerakoan",
+ "Updating...." : "Eguneratzen...",
+ "Error while updating app" : "Errorea aplikazioa eguneratzen zen bitartean",
+ "Updated" : "Eguneratuta",
+ "Uninstalling ...." : "Desinstalatzen ...",
+ "Error while uninstalling app" : "Erroea izan da aplikazioa desinstalatzerakoan",
+ "Uninstall" : "Desinstalatu",
+ "Select a profile picture" : "Profilaren irudia aukeratu",
+ "Very weak password" : "Pasahitz oso ahula",
+ "Weak password" : "Pasahitz ahula",
+ "So-so password" : "Halamoduzko pasahitza",
+ "Good password" : "Pasahitz ona",
+ "Strong password" : "Pasahitz sendoa",
+ "Valid until {date}" : "{date} arte baliogarria",
+ "Delete" : "Ezabatu",
+ "Decrypting files... Please wait, this can take some time." : "Fitxategiak deskodetzen... Itxaron, bere denbora eskatzen du.",
+ "Delete encryption keys permanently." : "Ezabatu enkriptatze gakoak behin betiko",
+ "Restore encryption keys." : "Leheneratu enkriptatze gakoak",
+ "Groups" : "Taldeak",
+ "Unable to delete {objName}" : "Ezin izan da {objName} ezabatu",
+ "Error creating group" : "Errore bat izan da taldea sortzean",
+ "A valid group name must be provided" : "Baliozko talde izena eman behar da",
+ "deleted {groupName}" : "{groupName} ezbatuta",
+ "undo" : "desegin",
+ "no group" : "talderik ez",
+ "never" : "inoiz",
+ "deleted {userName}" : "{userName} ezabatuta",
+ "add group" : "gehitu taldea",
+ "A valid username must be provided" : "Baliozko erabiltzaile izena eman behar da",
+ "Error creating user" : "Errore bat egon da erabiltzailea sortzean",
+ "A valid password must be provided" : "Baliozko pasahitza eman behar da",
+ "Warning: Home directory for user \"{user}\" already exists" : "Abisua: \"{user}\" erabiltzailearen Home karpeta dagoeneko exisititzen da",
+ "__language_name__" : "Euskara",
+ "Personal Info" : "Informazio Pertsonala",
+ "SSL root certificates" : "SSL erro ziurtagiriak",
+ "Encryption" : "Enkriptazioa",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Dena (arazo larriak, erroreak, abisuak, informazioa, arazketa)",
+ "Info, warnings, errors and fatal issues" : "Informazioa, abisuak, erroreak eta arazo larriak.",
+ "Warnings, errors and fatal issues" : "Abisuak, erroreak eta arazo larriak",
+ "Errors and fatal issues" : "Erroreak eta arazo larriak",
+ "Fatal issues only" : "Bakarrik arazo larriak",
+ "None" : "Ezer",
+ "Login" : "Saio hasiera",
+ "Plain" : "Arrunta",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Segurtasun abisua",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "%s HTTP bidez erabiltzen ari zara. Aholkatzen dizugu zure zerbitzaria HTTPS erabil dezan.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Zure data karpeta eta zure fitxategiak internetetik zuzenean eskuragarri egon daitezke. .htaccess fitxategia ez du bere lana egiten. Aholkatzen dizugu zure web zerbitzaria ongi konfiguratzea data karpeta eskuragarri ez izateko edo data karpeta web zerbitzariaren dokumentu errotik mugitzea.",
+ "Setup Warning" : "Konfiguratu abisuak",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.",
+ "Database Performance Info" : "Database Performance informazioa",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite erabili da datu-base gisa. Instalazio handiagoetarako gomendatzen dugu aldatzea. Beste datu base batera migratzeko erabili komando-lerro tresna hau: 'occ db:convert-type'",
+ "Module 'fileinfo' missing" : "'fileinfo' modulua falta da",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 'fileinfo' modulua falta da. Modulu hau gaitzea aholkatzen dizugu mime-type ezberdinak hobe detektatzeko.",
+ "Your PHP version is outdated" : "Zure PHP bertsioa zaharkituta dago",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Zure PHP bertsioa zaharkituta dago. Gure aholkua 5.3.8 edo bertsio berriago batera eguneratzea da, bertsio zaharragoak arazoak ematen baitituzte. Posible da instalazio honek ez funtzionatzea ongi.",
+ "PHP charset is not set to UTF-8" : "PHP charset ez da UTF-8 gisa ezartzen",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP charset ez da UTF-8 gisa ezartzen. Honek arazo larriak sor ditzake fitxategien izenetan ascii ez diren karaktereekin. Gomendatzen dizugu php.ini-ko 'default_charset'-en ordez 'UTF-8' ezartzea.",
+ "Locale not working" : "Lokala ez dabil",
+ "System locale can not be set to a one which supports UTF-8." : "Eskualdeko ezarpena ezin da UTF-8 onartzen duen batera ezarri.",
+ "This means that there might be problems with certain characters in file names." : "Honek esan nahi du fitxategien izenetako karaktere batzuekin arazoak egon daitezkeela.",
+ "URL generation in notification emails" : "URL sorrera jakinarazpen mezuetan",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Zure instalazioa ez badago domeinuaren sustraian egina eta erabiltzen badu sistemaren cron-a, arazoak izan daitezke URL sorreran. Arazo horiek saihesteko ezarri \"overwritewebroot\" opzioa zure config.php fitxategian zure instalazioaren webroot bidera (Proposatua: \"%s\")",
+ "No problems found" : "Ez da problemarik aurkitu",
+ "Please double check the installation guides ." : "Mesedez begiratu instalazio gidak .",
+ "Last cron was executed at %s." : "Azken cron-a %s-etan exekutatu da",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Azken cron-a %s-etan exekutatu da. Ordu bat baino gehiago pasa da, zerbait gaizki dabilela dirudi.",
+ "Cron was not executed yet!" : "Cron-a oraindik ez da exekutatu!",
+ "Execute one task with each page loaded" : "Exekutatu zeregin bat orri karga bakoitzean",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php webcron zerbitzu batean erregistratua dago cron.php 15 minuturo http bidez deitzeko.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Erabili sistemaren cron zerbitzua deitzeko cron.php fitxategia 15 minutuan behin.",
+ "Allow apps to use the Share API" : "Baimendu aplikazioak partekatzeko APIa erabiltzeko",
+ "Allow users to share via link" : "Baimendu erabiltzaileak esteken bidez partekatzea",
+ "Enforce password protection" : "Betearazi pasahitzaren babesa",
+ "Allow public uploads" : "Baimendu igoera publikoak",
+ "Set default expiration date" : "Ezarri muga data lehenetsia",
+ "Expire after " : "Iraungia honen ondoren",
+ "days" : "egun",
+ "Enforce expiration date" : "Muga data betearazi",
+ "Allow resharing" : "Baimendu birpartekatzea",
+ "Restrict users to only share with users in their groups" : "Mugatu partekatzeak taldeko erabiltzaileetara",
+ "Allow users to send mail notification for shared files" : "Baimendu erabiltzaileak epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
+ "Exclude groups from sharing" : "Baztertu taldeak partekatzean",
+ "These groups will still be able to receive shares, but not to initiate them." : "Talde hauek oraindik jaso ahal izango dute partekatzeak, baina ezingo dute partekatu",
+ "Enforce HTTPS" : "Behartu HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Bezeroak %s-ra konexio enkriptatu baten bidez konektatzera behartzen ditu.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Mesedez konektatu zure %s-ra HTTPS bidez SSL zehaztapenak aldatzeko.",
+ "This is used for sending out notifications." : "Hau jakinarazpenak bidaltzeko erabiltzen da.",
+ "Send mode" : "Bidaltzeko modua",
+ "From address" : "Helbidetik",
+ "mail" : "posta",
+ "Authentication method" : "Autentifikazio metodoa",
+ "Authentication required" : "Autentikazioa beharrezkoa",
+ "Server address" : "Zerbitzariaren helbidea",
+ "Port" : "Portua",
+ "Credentials" : "Kredentzialak",
+ "SMTP Username" : "SMTP erabiltzaile-izena",
+ "SMTP Password" : "SMTP pasahitza",
+ "Store credentials" : "Gorde kredentzialak",
+ "Test email settings" : "Probatu eposta ezarpenak",
+ "Send email" : "Bidali eposta",
+ "Log level" : "Erregistro maila",
+ "More" : "Gehiago",
+ "Less" : "Gutxiago",
+ "Version" : "Bertsioa",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "ownCloud komunitateak garatuta, itubruru kodea AGPL lizentziarekin banatzen da .",
+ "More apps" : "App gehiago",
+ "Add your app" : "Gehitu zure aplikazioa",
+ "by" : " Egilea:",
+ "Documentation:" : "Dokumentazioa:",
+ "User Documentation" : "Erabiltzaile dokumentazioa",
+ "Admin Documentation" : "Administrazio dokumentazioa",
+ "Update to %s" : "Eguneratu %sra",
+ "Enable only for specific groups" : "Baimendu bakarri talde espezifikoetarako",
+ "Uninstall App" : "Desinstalatu aplikazioa",
+ "Administrator Documentation" : "Administratzaile dokumentazioa",
+ "Online Documentation" : "Online dokumentazioa",
+ "Forum" : "Foroa",
+ "Bugtracker" : "Bugtracker",
+ "Commercial Support" : "Babes komertziala",
+ "Get the apps to sync your files" : "Lortu aplikazioak zure fitxategiak sinkronizatzeko",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Proiektua lagundu nahi baduzu\n⇥⇥join development \n⇥⇥edo\n⇥⇥zabaldu hitza !",
+ "Show First Run Wizard again" : "Erakutsi berriz Lehenengo Aldiko Morroia",
+ "You have used %s of the available %s " : "Dagoeneko %s erabili duzu eskuragarri duzun %s etatik",
+ "Password" : "Pasahitza",
+ "Your password was changed" : "Zure pasahitza aldatu da",
+ "Unable to change your password" : "Ezin izan da zure pasahitza aldatu",
+ "Current password" : "Uneko pasahitza",
+ "New password" : "Pasahitz berria",
+ "Change password" : "Aldatu pasahitza",
+ "Full Name" : "Izena",
+ "Email" : "E-posta",
+ "Your email address" : "Zure e-posta",
+ "Fill in an email address to enable password recovery and receive notifications" : "Bete ezazu eposta helbide bat pasahitza berreskuratzeko eta jakinarazpenak jasotzeko",
+ "Profile picture" : "Profilaren irudia",
+ "Upload new" : "Igo berria",
+ "Select new from Files" : "Hautatu berria Fitxategietatik",
+ "Remove image" : "Irudia ezabatu",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "png edo jpg. Hobe karratua baina mozteko aukera izango duzu.",
+ "Your avatar is provided by your original account." : "Zure jatorrizko kontuak ezarri du zure avatar.",
+ "Cancel" : "Ezeztatu",
+ "Choose as profile image" : "Profil irudi bezala aukeratu",
+ "Language" : "Hizkuntza",
+ "Help translate" : "Lagundu itzultzen",
+ "Issued By" : "Honek bidalita",
+ "Import Root Certificate" : "Inportatu erro ziurtagiria",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Enkriptazio aplikazioa ez dago jada gaiturik, mesedez desenkriptatu zure fitxategi guztiak.",
+ "Log-in password" : "Saioa hasteko pasahitza",
+ "Decrypt all Files" : "Desenkripattu fitxategi guztiak",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Zure enkriptatze gakoak babeskopiara eraman dira. Zerbait gaizki ateratzen bada berreskura ditzakezu giltzak. Behin betirako ezabatu bakarrik ziur bazaude fitxategi guztiak ongi deskodetu badira.",
+ "Restore Encryption Keys" : "Lehenera itzazu enkriptatze gakoak.",
+ "Delete Encryption Keys" : "Ezabatu enkriptatze gakoak",
+ "Show storage location" : "Erakutsi biltegiaren kokapena",
+ "Show last log in" : "Erakutsi azkeneko saio hasiera",
+ "Username" : "Erabiltzaile izena",
+ "Create" : "Sortu",
+ "Admin Recovery Password" : "Administratzailearen pasahitza berreskuratzea",
+ "Enter the recovery password in order to recover the users files during password change" : "Berreskuratze pasahitza idatzi pasahitz aldaketan erabiltzaileen fitxategiak berreskuratzeko",
+ "Add Group" : "Gehitu taldea",
+ "Group" : "Taldea",
+ "Everyone" : "Edonor",
+ "Admins" : "Administratzaileak",
+ "Default Quota" : "Kuota lehentsia",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Mesedez sartu biltegiratze kouta (adb: \"512 MB\" edo \"12 GB\")",
+ "Unlimited" : "Mugarik gabe",
+ "Other" : "Bestelakoa",
+ "Quota" : "Kuota",
+ "Storage Location" : "Biltegiaren kokapena",
+ "Last Login" : "Azken saio hasiera",
+ "change full name" : "aldatu izena",
+ "set new password" : "ezarri pasahitz berria",
+ "Default" : "Lehenetsia"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/eu.php b/settings/l10n/eu.php
deleted file mode 100644
index 284b3ffdec3..00000000000
--- a/settings/l10n/eu.php
+++ /dev/null
@@ -1,230 +0,0 @@
- "%s-entzako baliogabea",
-"Saved" => "Gordeta",
-"test email settings" => "probatu eposta ezarpenak",
-"If you received this email, the settings seem to be correct." => "Eposta hau jaso baduzu, zure ezarpenak egokiak direnaren seinale",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Arazo bat gertatu da eposta bidaltzean. Berrikusi zure ezarpenak.",
-"Email sent" => "Eposta bidalia",
-"You need to set your user email before being able to send test emails." => "Epostaren erabiltzailea zehaztu behar duzu probako eposta bidali aurretik.",
-"Send mode" => "Bidaltzeko modua",
-"Encryption" => "Enkriptazioa",
-"Authentication method" => "Autentifikazio metodoa",
-"Unable to load list from App Store" => "Ezin izan da App Dendatik zerrenda kargatu",
-"Authentication error" => "Autentifikazio errorea",
-"Your full name has been changed." => "Zure izena aldatu egin da.",
-"Unable to change full name" => "Ezin izan da izena aldatu",
-"Group already exists" => "Taldea dagoeneko existitzenda",
-"Unable to add group" => "Ezin izan da taldea gehitu",
-"Files decrypted successfully" => "Fitxategiak ongi deskodetu dira.",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Ezin izan dira zure fitxategiak deskodetu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
-"Couldn't decrypt your files, check your password and try again" => "Ezin izan dira deskodetu zure fitxategiak, egiaztatu zure pasahitza eta saiatu berriz",
-"Encryption keys deleted permanently" => "Enkriptatze gakoak behin betiko ezabatuak",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Ezin izan dira zure enkriptatze gakoak behin betiko ezabatu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
-"Couldn't remove app." => "Ezin izan da aplikazioa ezabatu..",
-"Email saved" => "Eposta gorde da",
-"Invalid email" => "Baliogabeko eposta",
-"Unable to delete group" => "Ezin izan da taldea ezabatu",
-"Unable to delete user" => "Ezin izan da erabiltzailea ezabatu",
-"Backups restored successfully" => "Babeskopiak ongi leheneratu dira",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Ezin izan dira zure enkriptatze gakoak leheneratu, egiaztatu zure owncloud.log edo galdetu administratzaileari",
-"Language changed" => "Hizkuntza aldatuta",
-"Invalid request" => "Baliogabeko eskaera",
-"Admins can't remove themself from the admin group" => "Kudeatzaileak ezin du bere burua kendu kudeatzaile taldetik",
-"Unable to add user to group %s" => "Ezin izan da erabiltzailea %s taldera gehitu",
-"Unable to remove user from group %s" => "Ezin izan da erabiltzailea %s taldetik ezabatu",
-"Couldn't update app." => "Ezin izan da aplikazioa eguneratu.",
-"Wrong password" => "Pasahitz okerra",
-"No user supplied" => "Ez da erabiltzailerik zehaztu",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Mesedez eman berreskuratzeko administrazio pasahitza, bestela erabiltzaile datu guztiak galduko dira",
-"Wrong admin recovery password. Please check the password and try again." => "Administratzailearen berreskuratze pasahitza ez egokia. Mesedez egiaztatu pasahitza eta saiatu berriz.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Atzeko prozesuak ez du pasahitz aldaketa onartzen, baina erabiltzailearen enkriptatze gakoa ongi eguneratu da.",
-"Unable to change password" => "Ezin izan da pasahitza aldatu",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "Ziur zaude gehitu nahi duzula \"{domain}\" domeinu fidagarri gisa?",
-"Add trusted domain" => "Gehitu domeinu fidagarria",
-"Sending..." => "Bidaltzen...",
-"All" => "Denak",
-"User Documentation" => "Erabiltzaile dokumentazioa",
-"Admin Documentation" => "Administrazio dokumentazioa",
-"Update to {appversion}" => "Eguneratu {appversion}-ra",
-"Uninstall App" => "Desinstalatu aplikazioa",
-"Disable" => "Ez-gaitu",
-"Enable" => "Gaitu",
-"Please wait...." => "Itxoin mesedez...",
-"Error while disabling app" => "Erroea izan da aplikazioa desgaitzerakoan",
-"Error while enabling app" => "Erroea izan da aplikazioa gaitzerakoan",
-"Updating...." => "Eguneratzen...",
-"Error while updating app" => "Errorea aplikazioa eguneratzen zen bitartean",
-"Error" => "Errorea",
-"Update" => "Eguneratu",
-"Updated" => "Eguneratuta",
-"Uninstalling ...." => "Desinstalatzen ...",
-"Error while uninstalling app" => "Erroea izan da aplikazioa desinstalatzerakoan",
-"Uninstall" => "Desinstalatu",
-"Select a profile picture" => "Profilaren irudia aukeratu",
-"Very weak password" => "Pasahitz oso ahula",
-"Weak password" => "Pasahitz ahula",
-"So-so password" => "Halamoduzko pasahitza",
-"Good password" => "Pasahitz ona",
-"Strong password" => "Pasahitz sendoa",
-"Delete" => "Ezabatu",
-"Decrypting files... Please wait, this can take some time." => "Fitxategiak deskodetzen... Itxaron, bere denbora eskatzen du.",
-"Delete encryption keys permanently." => "Ezabatu enkriptatze gakoak behin betiko",
-"Restore encryption keys." => "Leheneratu enkriptatze gakoak",
-"Groups" => "Taldeak",
-"Unable to delete {objName}" => "Ezin izan da {objName} ezabatu",
-"Error creating group" => "Errore bat izan da taldea sortzean",
-"A valid group name must be provided" => "Baliozko talde izena eman behar da",
-"deleted {groupName}" => "{groupName} ezbatuta",
-"undo" => "desegin",
-"Group Admin" => "Talde administradorea",
-"never" => "inoiz",
-"deleted {userName}" => "{userName} ezabatuta",
-"add group" => "gehitu taldea",
-"A valid username must be provided" => "Baliozko erabiltzaile izena eman behar da",
-"Error creating user" => "Errore bat egon da erabiltzailea sortzean",
-"A valid password must be provided" => "Baliozko pasahitza eman behar da",
-"Warning: Home directory for user \"{user}\" already exists" => "Abisua: \"{user}\" erabiltzailearen Home karpeta dagoeneko exisititzen da",
-"__language_name__" => "Euskara",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Dena (arazo larriak, erroreak, abisuak, informazioa, arazketa)",
-"Info, warnings, errors and fatal issues" => "Informazioa, abisuak, erroreak eta arazo larriak.",
-"Warnings, errors and fatal issues" => "Abisuak, erroreak eta arazo larriak",
-"Errors and fatal issues" => "Erroreak eta arazo larriak",
-"Fatal issues only" => "Bakarrik arazo larriak",
-"None" => "Ezer",
-"Login" => "Saio hasiera",
-"Plain" => "Arrunta",
-"NT LAN Manager" => "NT LAN Manager",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Segurtasun abisua",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "%s HTTP bidez erabiltzen ari zara. Aholkatzen dizugu zure zerbitzaria HTTPS erabil dezan.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Zure data karpeta eta zure fitxategiak internetetik zuzenean eskuragarri egon daitezke. .htaccess fitxategia ez du bere lana egiten. Aholkatzen dizugu zure web zerbitzaria ongi konfiguratzea data karpeta eskuragarri ez izateko edo data karpeta web zerbitzariaren dokumentu errotik mugitzea.",
-"Setup Warning" => "Konfiguratu abisuak",
-"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." => "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.",
-"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." => "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.",
-"Database Performance Info" => "Database Performance informazioa",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "SQLite erabili da datu-base gisa. Instalazio handiagoetarako gomendatzen dugu aldatzea. Beste datu base batera migratzeko erabili komando-lerro tresna hau: 'occ db:convert-type'",
-"Module 'fileinfo' missing" => "'fileinfo' modulua falta da",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "PHP 'fileinfo' modulua falta da. Modulu hau gaitzea aholkatzen dizugu mime-type ezberdinak hobe detektatzeko.",
-"Your PHP version is outdated" => "Zure PHP bertsioa zaharkituta dago",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Zure PHP bertsioa zaharkituta dago. Gure aholkua 5.3.8 edo bertsio berriago batera eguneratzea da, bertsio zaharragoak arazoak ematen baitituzte. Posible da instalazio honek ez funtzionatzea ongi.",
-"PHP charset is not set to UTF-8" => "PHP charset ez da UTF-8 gisa ezartzen",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "PHP charset ez da UTF-8 gisa ezartzen. Honek arazo larriak sor ditzake fitxategien izenetan ascii ez diren karaktereekin. Gomendatzen dizugu php.ini-ko 'default_charset'-en ordez 'UTF-8' ezartzea.",
-"Locale not working" => "Lokala ez dabil",
-"System locale can not be set to a one which supports UTF-8." => "Eskualdeko ezarpena ezin da UTF-8 onartzen duen batera ezarri.",
-"This means that there might be problems with certain characters in file names." => "Honek esan nahi du fitxategien izenetako karaktere batzuekin arazoak egon daitezkeela.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Biziki gomendatzen dizugu beharrezkoak diren paketea zure sisteman instalatzea honi euskarria eman ahal izateko: %s.",
-"URL generation in notification emails" => "URL sorrera jakinarazpen mezuetan",
-"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" => "Zure instalazioa ez badago domeinuaren sustraian egina eta erabiltzen badu sistemaren cron-a, arazoak izan daitezke URL sorreran. Arazo horiek saihesteko ezarri \"overwritewebroot\" opzioa zure config.php fitxategian zure instalazioaren webroot bidera (Proposatua: \"%s\")",
-"Please double check the installation guides ." => "Mesedez begiratu instalazio gidak .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Azken cron-a %s-etan exekutatu da",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Azken cron-a %s-etan exekutatu da. Ordu bat baino gehiago pasa da, zerbait gaizki dabilela dirudi.",
-"Cron was not executed yet!" => "Cron-a oraindik ez da exekutatu!",
-"Execute one task with each page loaded" => "Exekutatu zeregin bat orri karga bakoitzean",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php webcron zerbitzu batean erregistratua dago cron.php 15 minuturo http bidez deitzeko.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Erabili sistemaren cron zerbitzua deitzeko cron.php fitxategia 15 minutuan behin.",
-"Sharing" => "Partekatzea",
-"Allow apps to use the Share API" => "Baimendu aplikazioak partekatzeko APIa erabiltzeko",
-"Allow users to share via link" => "Baimendu erabiltzaileak esteken bidez partekatzea",
-"Enforce password protection" => "Betearazi pasahitzaren babesa",
-"Allow public uploads" => "Baimendu igoera publikoak",
-"Set default expiration date" => "Ezarri muga data lehenetsia",
-"Expire after " => "Iraungia honen ondoren",
-"days" => "egun",
-"Enforce expiration date" => "Muga data betearazi",
-"Allow resharing" => "Baimendu birpartekatzea",
-"Restrict users to only share with users in their groups" => "Mugatu partekatzeak taldeko erabiltzaileetara",
-"Allow users to send mail notification for shared files" => "Baimendu erabiltzaileak epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
-"Exclude groups from sharing" => "Baztertu taldeak partekatzean",
-"These groups will still be able to receive shares, but not to initiate them." => "Talde hauek oraindik jaso ahal izango dute partekatzeak, baina ezingo dute partekatu",
-"Security" => "Segurtasuna",
-"Enforce HTTPS" => "Behartu HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Bezeroak %s-ra konexio enkriptatu baten bidez konektatzera behartzen ditu.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Mesedez konektatu zure %s-ra HTTPS bidez SSL zehaztapenak aldatzeko.",
-"Email Server" => "Eposta zerbitzaria",
-"This is used for sending out notifications." => "Hau jakinarazpenak bidaltzeko erabiltzen da.",
-"From address" => "Helbidetik",
-"mail" => "posta",
-"Authentication required" => "Autentikazioa beharrezkoa",
-"Server address" => "Zerbitzariaren helbidea",
-"Port" => "Portua",
-"Credentials" => "Kredentzialak",
-"SMTP Username" => "SMTP erabiltzaile-izena",
-"SMTP Password" => "SMTP pasahitza",
-"Test email settings" => "Probatu eposta ezarpenak",
-"Send email" => "Bidali eposta",
-"Log" => "Log",
-"Log level" => "Erregistro maila",
-"More" => "Gehiago",
-"Less" => "Gutxiago",
-"Version" => "Bertsioa",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "ownCloud komunitateak garatuta, itubruru kodea AGPL lizentziarekin banatzen da .",
-"Add your App" => "Gehitu zure aplikazioa",
-"More Apps" => "Aplikazio gehiago",
-"Select an App" => "Aukeratu aplikazio bat",
-"Documentation:" => "Dokumentazioa:",
-"See application page at apps.owncloud.com" => "Ikusi aplikazioaren orria apps.owncloud.com orrian",
-"See application website" => "Ikusi aplikazioaren webgunea",
-" -licensed by " => " -lizentziatua ",
-"Enable only for specific groups" => "Baimendu bakarri talde espezifikoetarako",
-"Administrator Documentation" => "Administratzaile dokumentazioa",
-"Online Documentation" => "Online dokumentazioa",
-"Forum" => "Foroa",
-"Bugtracker" => "Bugtracker",
-"Commercial Support" => "Babes komertziala",
-"Get the apps to sync your files" => "Lortu aplikazioak zure fitxategiak sinkronizatzeko",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Proiektua lagundu nahi baduzu\n⇥⇥join development \n⇥⇥edo\n⇥⇥zabaldu hitza !",
-"Show First Run Wizard again" => "Erakutsi berriz Lehenengo Aldiko Morroia",
-"You have used %s of the available %s " => "Dagoeneko %s erabili duzu eskuragarri duzun %s etatik",
-"Password" => "Pasahitza",
-"Your password was changed" => "Zure pasahitza aldatu da",
-"Unable to change your password" => "Ezin izan da zure pasahitza aldatu",
-"Current password" => "Uneko pasahitza",
-"New password" => "Pasahitz berria",
-"Change password" => "Aldatu pasahitza",
-"Full Name" => "Izena",
-"Email" => "E-posta",
-"Your email address" => "Zure e-posta",
-"Fill in an email address to enable password recovery and receive notifications" => "Bete ezazu eposta helbide bat pasahitza berreskuratzeko eta jakinarazpenak jasotzeko",
-"Profile picture" => "Profilaren irudia",
-"Upload new" => "Igo berria",
-"Select new from Files" => "Hautatu berria Fitxategietatik",
-"Remove image" => "Irudia ezabatu",
-"Either png or jpg. Ideally square but you will be able to crop it." => "png edo jpg. Hobe karratua baina mozteko aukera izango duzu.",
-"Your avatar is provided by your original account." => "Zure jatorrizko kontuak ezarri du zure avatar.",
-"Cancel" => "Ezeztatu",
-"Choose as profile image" => "Profil irudi bezala aukeratu",
-"Language" => "Hizkuntza",
-"Help translate" => "Lagundu itzultzen",
-"SSL root certificates" => "SSL erro ziurtagiriak",
-"Import Root Certificate" => "Inportatu erro ziurtagiria",
-"The encryption app is no longer enabled, please decrypt all your files" => "Enkriptazio aplikazioa ez dago jada gaiturik, mesedez desenkriptatu zure fitxategi guztiak.",
-"Log-in password" => "Saioa hasteko pasahitza",
-"Decrypt all Files" => "Desenkripattu fitxategi guztiak",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Zure enkriptatze gakoak babeskopiara eraman dira. Zerbait gaizki ateratzen bada berreskura ditzakezu giltzak. Behin betirako ezabatu bakarrik ziur bazaude fitxategi guztiak ongi deskodetu badira.",
-"Restore Encryption Keys" => "Lehenera itzazu enkriptatze gakoak.",
-"Delete Encryption Keys" => "Ezabatu enkriptatze gakoak",
-"Login Name" => "Sarrera Izena",
-"Create" => "Sortu",
-"Admin Recovery Password" => "Administratzailearen pasahitza berreskuratzea",
-"Enter the recovery password in order to recover the users files during password change" => "Berreskuratze pasahitza idatzi pasahitz aldaketan erabiltzaileen fitxategiak berreskuratzeko",
-"Search Users and Groups" => "Bilatu erabiltzaileak eta taldeak",
-"Add Group" => "Gehitu taldea",
-"Group" => "Taldea",
-"Everyone" => "Edonor",
-"Admins" => "Administratzaileak",
-"Default Quota" => "Kuota lehentsia",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Mesedez sartu biltegiratze kouta (adb: \"512 MB\" edo \"12 GB\")",
-"Unlimited" => "Mugarik gabe",
-"Other" => "Bestelakoa",
-"Username" => "Erabiltzaile izena",
-"Quota" => "Kuota",
-"Storage Location" => "Biltegiaren kokapena",
-"Last Login" => "Azken saio hasiera",
-"change full name" => "aldatu izena",
-"set new password" => "ezarri pasahitz berria",
-"Default" => "Lehenetsia"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/eu_ES.js b/settings/l10n/eu_ES.js
new file mode 100644
index 00000000000..b5685139534
--- /dev/null
+++ b/settings/l10n/eu_ES.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Invalid request" : "Eskakizun baliogabea",
+ "Delete" : "Ezabatu",
+ "Cancel" : "Ezeztatu",
+ "Other" : "Bestea"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/eu_ES.json b/settings/l10n/eu_ES.json
new file mode 100644
index 00000000000..062f410b0e9
--- /dev/null
+++ b/settings/l10n/eu_ES.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "Invalid request" : "Eskakizun baliogabea",
+ "Delete" : "Ezabatu",
+ "Cancel" : "Ezeztatu",
+ "Other" : "Bestea"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/eu_ES.php b/settings/l10n/eu_ES.php
deleted file mode 100644
index 280c7f05c0c..00000000000
--- a/settings/l10n/eu_ES.php
+++ /dev/null
@@ -1,8 +0,0 @@
- "Eskakizun baliogabea",
-"Delete" => "Ezabatu",
-"Cancel" => "Ezeztatu",
-"Other" => "Bestea"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/fa.js b/settings/l10n/fa.js
new file mode 100644
index 00000000000..624c124888b
--- /dev/null
+++ b/settings/l10n/fa.js
@@ -0,0 +1,188 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Cron" : "زمانبند",
+ "Sharing" : "اشتراک گذاری",
+ "Security" : "امنیت",
+ "Email Server" : "سرور ایمیل",
+ "Log" : "کارنامه",
+ "Authentication error" : "خطا در اعتبار سنجی",
+ "Your full name has been changed." : "نام کامل شما تغییر یافت",
+ "Unable to change full name" : "امکان تغییر نام کامل وجود ندارد",
+ "Group already exists" : "این گروه در حال حاضر موجود است",
+ "Unable to add group" : "افزودن گروه امکان پذیر نیست",
+ "Files decrypted successfully" : "فایل ها با موفقیت رمزگشایی شدند.",
+ "Encryption keys deleted permanently" : "کلیدهای رمزگذاری به طور کامل حذف شدند",
+ "Couldn't remove app." : "امکان حذف برنامه وجود ندارد.",
+ "Email saved" : "ایمیل ذخیره شد",
+ "Invalid email" : "ایمیل غیر قابل قبول",
+ "Unable to delete group" : "حذف گروه امکان پذیر نیست",
+ "Unable to delete user" : "حذف کاربر امکان پذیر نیست",
+ "Backups restored successfully" : "پشتیبان ها با موفقیت بازیابی شدند",
+ "Language changed" : "زبان تغییر کرد",
+ "Invalid request" : "درخواست نامعتبر",
+ "Admins can't remove themself from the admin group" : "مدیران نمی توانند خود را از گروه مدیریت حذف کنند",
+ "Unable to add user to group %s" : "امکان افزودن کاربر به گروه %s نیست",
+ "Unable to remove user from group %s" : "امکان حذف کاربر از گروه %s نیست",
+ "Couldn't update app." : "برنامه را نمی توان به هنگام ساخت.",
+ "Wrong password" : "رمز عبور اشتباه است",
+ "No user supplied" : "هیچ کاربری تعریف نشده است",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "لطفاً یک رمز مدیریتی برای بازیابی کردن تعریف نمایید. در غیر اینصورت اطلاعات تمامی کاربران از دست خواهند رفت.",
+ "Wrong admin recovery password. Please check the password and try again." : "رمز مدیریتی بازیابی غلط است. لطفاً رمز را کنترل کرده و دوباره امتحان نمایید.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "سیستم مدیریتی امکان تغییر رمز را پشتیبانی نمیکند. ولی کلید رمزنگاری کاربران با موفقیت به روز شد.",
+ "Unable to change password" : "نمیتوان رمز را تغییر داد",
+ "Enabled" : "فعال شده",
+ "Saved" : "ذخیره شد",
+ "test email settings" : "تنظیمات ایمیل آزمایشی",
+ "Email sent" : "ایمیل ارسال شد",
+ "Sending..." : "در حال ارسال...",
+ "All" : "همه",
+ "Please wait...." : "لطفا صبر کنید ...",
+ "Error while disabling app" : "خطا در هنگام غیر فعال سازی برنامه",
+ "Disable" : "غیرفعال",
+ "Enable" : "فعال",
+ "Error while enabling app" : "خطا در هنگام فعال سازی برنامه",
+ "Updating...." : "در حال بروز رسانی...",
+ "Error while updating app" : "خطا در هنگام بهنگام سازی برنامه",
+ "Updated" : "بروز رسانی انجام شد",
+ "Uninstalling ...." : "در حال حذف...",
+ "Error while uninstalling app" : "خطا در هنگام حذف برنامه....",
+ "Uninstall" : "حذف",
+ "Select a profile picture" : "انتخاب تصویر پروفایل",
+ "Very weak password" : "رمز عبور بسیار ضعیف",
+ "Weak password" : "رمز عبور ضعیف",
+ "So-so password" : "رمز عبور متوسط",
+ "Good password" : "رمز عبور خوب",
+ "Strong password" : "رمز عبور قوی",
+ "Delete" : "حذف",
+ "Decrypting files... Please wait, this can take some time." : "در حال بازگشایی رمز فایلها... لطفاً صبر نمایید. این امر ممکن است مدتی زمان ببرد.",
+ "Delete encryption keys permanently." : "کلید های رمزگذاری به طوز کامل حذف شوند.",
+ "Restore encryption keys." : "بازیابی کلیدهای رمزگذاری.",
+ "Groups" : "گروه ها",
+ "Unable to delete {objName}" : "امکان حذف {objName} وجود ندارد",
+ "Error creating group" : "خطا در هنگام ایجاد کروه",
+ "A valid group name must be provided" : "نام کاربری معتبر می بایست وارد شود",
+ "deleted {groupName}" : "گروه {groupName} حذف شد",
+ "undo" : "بازگشت",
+ "never" : "هرگز",
+ "deleted {userName}" : "کاربر {userName} حذف شد",
+ "add group" : "افزودن گروه",
+ "A valid username must be provided" : "نام کاربری صحیح باید وارد شود",
+ "Error creating user" : "خطا در ایجاد کاربر",
+ "A valid password must be provided" : "رمز عبور صحیح باید وارد شود",
+ "Warning: Home directory for user \"{user}\" already exists" : "اخطار: پوشهی خانه برای کاربر \"{user}\" در حال حاضر وجود دارد",
+ "__language_name__" : "__language_name__",
+ "SSL root certificates" : "گواهی های اصلی SSL ",
+ "Encryption" : "رمزگذاری",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "همه موارد (مشکلات مهلک، خطاها، اخطارها، اطلاعات، خطایابی)",
+ "Info, warnings, errors and fatal issues" : "اطلاعات، اخطارها، خطاها، مشکلات اساسی",
+ "Warnings, errors and fatal issues" : "اخطارها، خطاها، مشکلات مهلک",
+ "Errors and fatal issues" : "خطاها و مشکلات اساسی",
+ "Fatal issues only" : "فقط مشکلات اساسی",
+ "None" : "هیچکدام",
+ "Login" : "ورود",
+ "Plain" : "ساده",
+ "NT LAN Manager" : "مدیر NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "اخطار امنیتی",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "به احتمال زیاد پوشهی data و فایلهای شما از طریق اینترنت قابل دسترسی هستند. فایل .htaccess برنامه کار نمیکند. ما شدیداً توصیه می کنیم که شما وب سرور خودتان را طوری تنظیم کنید که پوشهی data شما غیر قابل دسترسی باشد یا اینکه پوشهی data را به خارج از ریشهی اصلی وب سرور انتقال دهید.",
+ "Setup Warning" : "هشدار راه اندازی",
+ "Database Performance Info" : "اطلاعات کارایی پایگاه داده",
+ "Module 'fileinfo' missing" : "ماژول 'fileinfo' از کار افتاده",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "ماژول 'fileinfo' PHP از کار افتاده است.ما اکیدا توصیه می کنیم که این ماژول را فعال کنید تا نتایج بهتری به وسیله ی mime-type detection دریافت کنید.",
+ "Your PHP version is outdated" : "نسخه PHP شما قدیمی است",
+ "Locale not working" : "زبان محلی کار نمی کند.",
+ "Please double check the installation guides ." : "لطفاً دوباره راهنمای نصب را بررسی کنید.",
+ "Last cron was executed at %s." : "کران قبلی در %s اجرا شد.",
+ "Cron was not executed yet!" : "کران هنوز اجرا نشده است!",
+ "Execute one task with each page loaded" : "اجرای یک وظیفه با هر بار بارگذاری صفحه",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php در یک سرویس webcron ثبت شده است که هر 15 دقیقه یک بار بر روی بستر http فراخوانی شود.",
+ "Allow apps to use the Share API" : "اجازه ی برنامه ها برای استفاده از API اشتراک گذاری",
+ "Allow users to share via link" : "اجازه دادن به کاربران برای اشتراک گذاری توسط پیوند",
+ "Enforce password protection" : "اجبار برای محافظت توسط رمز عبور",
+ "Allow public uploads" : "اجازه بارگذاری عمومی",
+ "Set default expiration date" : "اعمال تاریخ اتمام پیش فرض",
+ "Expire after " : "اتمام اعتبار بعد از",
+ "days" : "روز",
+ "Enforce expiration date" : "اعمال تاریخ اتمام اشتراک گذاری",
+ "Allow resharing" : "مجوز اشتراک گذاری مجدد",
+ "Exclude groups from sharing" : "مستثنی شدن گروه ها از اشتراک گذاری",
+ "Enforce HTTPS" : "وادار کردن HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "کلاینتها را مجبور کن که از یک ارتباط رمزنگاری شده برای اتصال به %s استفاده کنند.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "برای فعال سازی یا عدم فعال سازی اجبار استفاده از SSL، لطفاً از طریق HTTPS به %s وصل شوید.",
+ "This is used for sending out notifications." : "این برای ارسال هشدار ها استفاده می شود",
+ "Send mode" : "حالت ارسال",
+ "From address" : "آدرس فرستنده",
+ "mail" : "ایمیل",
+ "Authentication method" : "روش احراز هویت",
+ "Authentication required" : "احراز هویت مورد نیاز است",
+ "Server address" : "آدرس سرور",
+ "Port" : "درگاه",
+ "Credentials" : "اعتبارهای",
+ "SMTP Username" : "نام کاربری SMTP",
+ "SMTP Password" : "رمز عبور SMTP",
+ "Test email settings" : "تنظیمات ایمیل آزمایشی",
+ "Send email" : "ارسال ایمیل",
+ "Log level" : "سطح ورود",
+ "More" : "بیشتر",
+ "Less" : "کمتر",
+ "Version" : "نسخه",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "توسعه یافته به وسیله ی انجمن ownCloud , the کد اصلی مجاز زیر گواهی AGPL .",
+ "by" : "با",
+ "Documentation:" : "مستند سازی:",
+ "User Documentation" : "مستندات کاربر",
+ "Admin Documentation" : "مستند سازی مدیر",
+ "Enable only for specific groups" : "فعال سازی تنها برای گروه های خاص",
+ "Uninstall App" : "حذف برنامه",
+ "Administrator Documentation" : "مستندات مدیر",
+ "Online Documentation" : "مستندات آنلاین",
+ "Forum" : "انجمن",
+ "Bugtracker" : "ردیاب باگ ",
+ "Commercial Support" : "پشتیبانی تجاری",
+ "Get the apps to sync your files" : "برنامه ها را دریافت کنید تا فایل هایتان را همگام سازید",
+ "Show First Run Wizard again" : "راهبری کمکی اجرای اول را دوباره نمایش بده",
+ "You have used %s of the available %s " : "شما استفاده کردید از %s از میزان در دسترس %s ",
+ "Password" : "گذرواژه",
+ "Your password was changed" : "رمز عبور شما تغییر یافت",
+ "Unable to change your password" : "ناتوان در تغییر گذرواژه",
+ "Current password" : "گذرواژه کنونی",
+ "New password" : "گذرواژه جدید",
+ "Change password" : "تغییر گذر واژه",
+ "Full Name" : "نام کامل",
+ "Email" : "ایمیل",
+ "Your email address" : "پست الکترونیکی شما",
+ "Profile picture" : "تصویر پروفایل",
+ "Upload new" : "بارگذاری جدید",
+ "Select new from Files" : "انتخاب جدید از میان فایل ها",
+ "Remove image" : "تصویر پاک شود",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "هردوی jpg و png ها مربع گونه میباشند. با این حال شما میتوانید آنها را برش بزنید.",
+ "Cancel" : "منصرف شدن",
+ "Choose as profile image" : "یک تصویر پروفایل انتخاب کنید",
+ "Language" : "زبان",
+ "Help translate" : "به ترجمه آن کمک کنید",
+ "Import Root Certificate" : "وارد کردن گواهی اصلی",
+ "Log-in password" : "رمز ورود",
+ "Decrypt all Files" : "تمام فایلها رمزگشایی شود",
+ "Restore Encryption Keys" : "بازیابی کلید های رمزگذاری",
+ "Delete Encryption Keys" : "حذف کلید های رمزگذاری",
+ "Username" : "نام کاربری",
+ "Create" : "ایجاد کردن",
+ "Admin Recovery Password" : "مدیریت بازیابی رمز عبور",
+ "Enter the recovery password in order to recover the users files during password change" : "در حین تغییر رمز عبور به منظور بازیابی فایل های کاربران، رمز عبور بازیابی را وارد کنید",
+ "Add Group" : "افزودن گروه",
+ "Group" : "گروه",
+ "Everyone" : "همه",
+ "Admins" : "مدیران",
+ "Default Quota" : "سهم پیش فرض",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "لطفا سهمیه ذخیره سازی را وارد کنید (به عنوان مثال: \" 512MB\" یا \"12GB\")",
+ "Unlimited" : "نامحدود",
+ "Other" : "دیگر",
+ "Quota" : "سهم",
+ "Storage Location" : "محل فضای ذخیره سازی",
+ "Last Login" : "اخرین ورود",
+ "change full name" : "تغییر نام کامل",
+ "set new password" : "تنظیم کلمه عبور جدید",
+ "Default" : "پیش فرض"
+},
+"nplurals=1; plural=0;");
diff --git a/settings/l10n/fa.json b/settings/l10n/fa.json
new file mode 100644
index 00000000000..793551cfe56
--- /dev/null
+++ b/settings/l10n/fa.json
@@ -0,0 +1,186 @@
+{ "translations": {
+ "Cron" : "زمانبند",
+ "Sharing" : "اشتراک گذاری",
+ "Security" : "امنیت",
+ "Email Server" : "سرور ایمیل",
+ "Log" : "کارنامه",
+ "Authentication error" : "خطا در اعتبار سنجی",
+ "Your full name has been changed." : "نام کامل شما تغییر یافت",
+ "Unable to change full name" : "امکان تغییر نام کامل وجود ندارد",
+ "Group already exists" : "این گروه در حال حاضر موجود است",
+ "Unable to add group" : "افزودن گروه امکان پذیر نیست",
+ "Files decrypted successfully" : "فایل ها با موفقیت رمزگشایی شدند.",
+ "Encryption keys deleted permanently" : "کلیدهای رمزگذاری به طور کامل حذف شدند",
+ "Couldn't remove app." : "امکان حذف برنامه وجود ندارد.",
+ "Email saved" : "ایمیل ذخیره شد",
+ "Invalid email" : "ایمیل غیر قابل قبول",
+ "Unable to delete group" : "حذف گروه امکان پذیر نیست",
+ "Unable to delete user" : "حذف کاربر امکان پذیر نیست",
+ "Backups restored successfully" : "پشتیبان ها با موفقیت بازیابی شدند",
+ "Language changed" : "زبان تغییر کرد",
+ "Invalid request" : "درخواست نامعتبر",
+ "Admins can't remove themself from the admin group" : "مدیران نمی توانند خود را از گروه مدیریت حذف کنند",
+ "Unable to add user to group %s" : "امکان افزودن کاربر به گروه %s نیست",
+ "Unable to remove user from group %s" : "امکان حذف کاربر از گروه %s نیست",
+ "Couldn't update app." : "برنامه را نمی توان به هنگام ساخت.",
+ "Wrong password" : "رمز عبور اشتباه است",
+ "No user supplied" : "هیچ کاربری تعریف نشده است",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "لطفاً یک رمز مدیریتی برای بازیابی کردن تعریف نمایید. در غیر اینصورت اطلاعات تمامی کاربران از دست خواهند رفت.",
+ "Wrong admin recovery password. Please check the password and try again." : "رمز مدیریتی بازیابی غلط است. لطفاً رمز را کنترل کرده و دوباره امتحان نمایید.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "سیستم مدیریتی امکان تغییر رمز را پشتیبانی نمیکند. ولی کلید رمزنگاری کاربران با موفقیت به روز شد.",
+ "Unable to change password" : "نمیتوان رمز را تغییر داد",
+ "Enabled" : "فعال شده",
+ "Saved" : "ذخیره شد",
+ "test email settings" : "تنظیمات ایمیل آزمایشی",
+ "Email sent" : "ایمیل ارسال شد",
+ "Sending..." : "در حال ارسال...",
+ "All" : "همه",
+ "Please wait...." : "لطفا صبر کنید ...",
+ "Error while disabling app" : "خطا در هنگام غیر فعال سازی برنامه",
+ "Disable" : "غیرفعال",
+ "Enable" : "فعال",
+ "Error while enabling app" : "خطا در هنگام فعال سازی برنامه",
+ "Updating...." : "در حال بروز رسانی...",
+ "Error while updating app" : "خطا در هنگام بهنگام سازی برنامه",
+ "Updated" : "بروز رسانی انجام شد",
+ "Uninstalling ...." : "در حال حذف...",
+ "Error while uninstalling app" : "خطا در هنگام حذف برنامه....",
+ "Uninstall" : "حذف",
+ "Select a profile picture" : "انتخاب تصویر پروفایل",
+ "Very weak password" : "رمز عبور بسیار ضعیف",
+ "Weak password" : "رمز عبور ضعیف",
+ "So-so password" : "رمز عبور متوسط",
+ "Good password" : "رمز عبور خوب",
+ "Strong password" : "رمز عبور قوی",
+ "Delete" : "حذف",
+ "Decrypting files... Please wait, this can take some time." : "در حال بازگشایی رمز فایلها... لطفاً صبر نمایید. این امر ممکن است مدتی زمان ببرد.",
+ "Delete encryption keys permanently." : "کلید های رمزگذاری به طوز کامل حذف شوند.",
+ "Restore encryption keys." : "بازیابی کلیدهای رمزگذاری.",
+ "Groups" : "گروه ها",
+ "Unable to delete {objName}" : "امکان حذف {objName} وجود ندارد",
+ "Error creating group" : "خطا در هنگام ایجاد کروه",
+ "A valid group name must be provided" : "نام کاربری معتبر می بایست وارد شود",
+ "deleted {groupName}" : "گروه {groupName} حذف شد",
+ "undo" : "بازگشت",
+ "never" : "هرگز",
+ "deleted {userName}" : "کاربر {userName} حذف شد",
+ "add group" : "افزودن گروه",
+ "A valid username must be provided" : "نام کاربری صحیح باید وارد شود",
+ "Error creating user" : "خطا در ایجاد کاربر",
+ "A valid password must be provided" : "رمز عبور صحیح باید وارد شود",
+ "Warning: Home directory for user \"{user}\" already exists" : "اخطار: پوشهی خانه برای کاربر \"{user}\" در حال حاضر وجود دارد",
+ "__language_name__" : "__language_name__",
+ "SSL root certificates" : "گواهی های اصلی SSL ",
+ "Encryption" : "رمزگذاری",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "همه موارد (مشکلات مهلک، خطاها، اخطارها، اطلاعات، خطایابی)",
+ "Info, warnings, errors and fatal issues" : "اطلاعات، اخطارها، خطاها، مشکلات اساسی",
+ "Warnings, errors and fatal issues" : "اخطارها، خطاها، مشکلات مهلک",
+ "Errors and fatal issues" : "خطاها و مشکلات اساسی",
+ "Fatal issues only" : "فقط مشکلات اساسی",
+ "None" : "هیچکدام",
+ "Login" : "ورود",
+ "Plain" : "ساده",
+ "NT LAN Manager" : "مدیر NT LAN",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "اخطار امنیتی",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "به احتمال زیاد پوشهی data و فایلهای شما از طریق اینترنت قابل دسترسی هستند. فایل .htaccess برنامه کار نمیکند. ما شدیداً توصیه می کنیم که شما وب سرور خودتان را طوری تنظیم کنید که پوشهی data شما غیر قابل دسترسی باشد یا اینکه پوشهی data را به خارج از ریشهی اصلی وب سرور انتقال دهید.",
+ "Setup Warning" : "هشدار راه اندازی",
+ "Database Performance Info" : "اطلاعات کارایی پایگاه داده",
+ "Module 'fileinfo' missing" : "ماژول 'fileinfo' از کار افتاده",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "ماژول 'fileinfo' PHP از کار افتاده است.ما اکیدا توصیه می کنیم که این ماژول را فعال کنید تا نتایج بهتری به وسیله ی mime-type detection دریافت کنید.",
+ "Your PHP version is outdated" : "نسخه PHP شما قدیمی است",
+ "Locale not working" : "زبان محلی کار نمی کند.",
+ "Please double check the installation guides ." : "لطفاً دوباره راهنمای نصب را بررسی کنید.",
+ "Last cron was executed at %s." : "کران قبلی در %s اجرا شد.",
+ "Cron was not executed yet!" : "کران هنوز اجرا نشده است!",
+ "Execute one task with each page loaded" : "اجرای یک وظیفه با هر بار بارگذاری صفحه",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php در یک سرویس webcron ثبت شده است که هر 15 دقیقه یک بار بر روی بستر http فراخوانی شود.",
+ "Allow apps to use the Share API" : "اجازه ی برنامه ها برای استفاده از API اشتراک گذاری",
+ "Allow users to share via link" : "اجازه دادن به کاربران برای اشتراک گذاری توسط پیوند",
+ "Enforce password protection" : "اجبار برای محافظت توسط رمز عبور",
+ "Allow public uploads" : "اجازه بارگذاری عمومی",
+ "Set default expiration date" : "اعمال تاریخ اتمام پیش فرض",
+ "Expire after " : "اتمام اعتبار بعد از",
+ "days" : "روز",
+ "Enforce expiration date" : "اعمال تاریخ اتمام اشتراک گذاری",
+ "Allow resharing" : "مجوز اشتراک گذاری مجدد",
+ "Exclude groups from sharing" : "مستثنی شدن گروه ها از اشتراک گذاری",
+ "Enforce HTTPS" : "وادار کردن HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "کلاینتها را مجبور کن که از یک ارتباط رمزنگاری شده برای اتصال به %s استفاده کنند.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "برای فعال سازی یا عدم فعال سازی اجبار استفاده از SSL، لطفاً از طریق HTTPS به %s وصل شوید.",
+ "This is used for sending out notifications." : "این برای ارسال هشدار ها استفاده می شود",
+ "Send mode" : "حالت ارسال",
+ "From address" : "آدرس فرستنده",
+ "mail" : "ایمیل",
+ "Authentication method" : "روش احراز هویت",
+ "Authentication required" : "احراز هویت مورد نیاز است",
+ "Server address" : "آدرس سرور",
+ "Port" : "درگاه",
+ "Credentials" : "اعتبارهای",
+ "SMTP Username" : "نام کاربری SMTP",
+ "SMTP Password" : "رمز عبور SMTP",
+ "Test email settings" : "تنظیمات ایمیل آزمایشی",
+ "Send email" : "ارسال ایمیل",
+ "Log level" : "سطح ورود",
+ "More" : "بیشتر",
+ "Less" : "کمتر",
+ "Version" : "نسخه",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "توسعه یافته به وسیله ی انجمن ownCloud , the کد اصلی مجاز زیر گواهی AGPL .",
+ "by" : "با",
+ "Documentation:" : "مستند سازی:",
+ "User Documentation" : "مستندات کاربر",
+ "Admin Documentation" : "مستند سازی مدیر",
+ "Enable only for specific groups" : "فعال سازی تنها برای گروه های خاص",
+ "Uninstall App" : "حذف برنامه",
+ "Administrator Documentation" : "مستندات مدیر",
+ "Online Documentation" : "مستندات آنلاین",
+ "Forum" : "انجمن",
+ "Bugtracker" : "ردیاب باگ ",
+ "Commercial Support" : "پشتیبانی تجاری",
+ "Get the apps to sync your files" : "برنامه ها را دریافت کنید تا فایل هایتان را همگام سازید",
+ "Show First Run Wizard again" : "راهبری کمکی اجرای اول را دوباره نمایش بده",
+ "You have used %s of the available %s " : "شما استفاده کردید از %s از میزان در دسترس %s ",
+ "Password" : "گذرواژه",
+ "Your password was changed" : "رمز عبور شما تغییر یافت",
+ "Unable to change your password" : "ناتوان در تغییر گذرواژه",
+ "Current password" : "گذرواژه کنونی",
+ "New password" : "گذرواژه جدید",
+ "Change password" : "تغییر گذر واژه",
+ "Full Name" : "نام کامل",
+ "Email" : "ایمیل",
+ "Your email address" : "پست الکترونیکی شما",
+ "Profile picture" : "تصویر پروفایل",
+ "Upload new" : "بارگذاری جدید",
+ "Select new from Files" : "انتخاب جدید از میان فایل ها",
+ "Remove image" : "تصویر پاک شود",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "هردوی jpg و png ها مربع گونه میباشند. با این حال شما میتوانید آنها را برش بزنید.",
+ "Cancel" : "منصرف شدن",
+ "Choose as profile image" : "یک تصویر پروفایل انتخاب کنید",
+ "Language" : "زبان",
+ "Help translate" : "به ترجمه آن کمک کنید",
+ "Import Root Certificate" : "وارد کردن گواهی اصلی",
+ "Log-in password" : "رمز ورود",
+ "Decrypt all Files" : "تمام فایلها رمزگشایی شود",
+ "Restore Encryption Keys" : "بازیابی کلید های رمزگذاری",
+ "Delete Encryption Keys" : "حذف کلید های رمزگذاری",
+ "Username" : "نام کاربری",
+ "Create" : "ایجاد کردن",
+ "Admin Recovery Password" : "مدیریت بازیابی رمز عبور",
+ "Enter the recovery password in order to recover the users files during password change" : "در حین تغییر رمز عبور به منظور بازیابی فایل های کاربران، رمز عبور بازیابی را وارد کنید",
+ "Add Group" : "افزودن گروه",
+ "Group" : "گروه",
+ "Everyone" : "همه",
+ "Admins" : "مدیران",
+ "Default Quota" : "سهم پیش فرض",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "لطفا سهمیه ذخیره سازی را وارد کنید (به عنوان مثال: \" 512MB\" یا \"12GB\")",
+ "Unlimited" : "نامحدود",
+ "Other" : "دیگر",
+ "Quota" : "سهم",
+ "Storage Location" : "محل فضای ذخیره سازی",
+ "Last Login" : "اخرین ورود",
+ "change full name" : "تغییر نام کامل",
+ "set new password" : "تنظیم کلمه عبور جدید",
+ "Default" : "پیش فرض"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/settings/l10n/fa.php b/settings/l10n/fa.php
deleted file mode 100644
index c72e83bb8ad..00000000000
--- a/settings/l10n/fa.php
+++ /dev/null
@@ -1,199 +0,0 @@
- "مقدار ارائه شده برای %s معتبر نیست",
-"Saved" => "ذخیره شد",
-"test email settings" => "تنظیمات ایمیل آزمایشی",
-"Email sent" => "ایمیل ارسال شد",
-"Send mode" => "حالت ارسال",
-"Encryption" => "رمزگذاری",
-"Authentication method" => "روش احراز هویت",
-"Unable to load list from App Store" => "قادر به بارگذاری لیست از فروشگاه اپ نیستم",
-"Authentication error" => "خطا در اعتبار سنجی",
-"Your full name has been changed." => "نام کامل شما تغییر یافت",
-"Unable to change full name" => "امکان تغییر نام کامل وجود ندارد",
-"Group already exists" => "این گروه در حال حاضر موجود است",
-"Unable to add group" => "افزودن گروه امکان پذیر نیست",
-"Files decrypted successfully" => "فایل ها با موفقیت رمزگشایی شدند.",
-"Encryption keys deleted permanently" => "کلیدهای رمزگذاری به طور کامل حذف شدند",
-"Couldn't remove app." => "امکان حذف برنامه وجود ندارد.",
-"Email saved" => "ایمیل ذخیره شد",
-"Invalid email" => "ایمیل غیر قابل قبول",
-"Unable to delete group" => "حذف گروه امکان پذیر نیست",
-"Unable to delete user" => "حذف کاربر امکان پذیر نیست",
-"Backups restored successfully" => "پشتیبان ها با موفقیت بازیابی شدند",
-"Language changed" => "زبان تغییر کرد",
-"Invalid request" => "درخواست نامعتبر",
-"Admins can't remove themself from the admin group" => "مدیران نمی توانند خود را از گروه مدیریت حذف کنند",
-"Unable to add user to group %s" => "امکان افزودن کاربر به گروه %s نیست",
-"Unable to remove user from group %s" => "امکان حذف کاربر از گروه %s نیست",
-"Couldn't update app." => "برنامه را نمی توان به هنگام ساخت.",
-"Wrong password" => "رمز عبور اشتباه است",
-"No user supplied" => "هیچ کاربری تعریف نشده است",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "لطفاً یک رمز مدیریتی برای بازیابی کردن تعریف نمایید. در غیر اینصورت اطلاعات تمامی کاربران از دست خواهند رفت.",
-"Wrong admin recovery password. Please check the password and try again." => "رمز مدیریتی بازیابی غلط است. لطفاً رمز را کنترل کرده و دوباره امتحان نمایید.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "سیستم مدیریتی امکان تغییر رمز را پشتیبانی نمیکند. ولی کلید رمزنگاری کاربران با موفقیت به روز شد.",
-"Unable to change password" => "نمیتوان رمز را تغییر داد",
-"Sending..." => "در حال ارسال...",
-"All" => "همه",
-"User Documentation" => "مستندات کاربر",
-"Admin Documentation" => "مستند سازی مدیر",
-"Update to {appversion}" => "بهنگام شده به {appversion}",
-"Uninstall App" => "حذف برنامه",
-"Disable" => "غیرفعال",
-"Enable" => "فعال",
-"Please wait...." => "لطفا صبر کنید ...",
-"Error while disabling app" => "خطا در هنگام غیر فعال سازی برنامه",
-"Error while enabling app" => "خطا در هنگام فعال سازی برنامه",
-"Updating...." => "در حال بروز رسانی...",
-"Error while updating app" => "خطا در هنگام بهنگام سازی برنامه",
-"Error" => "خطا",
-"Update" => "به روز رسانی",
-"Updated" => "بروز رسانی انجام شد",
-"Uninstalling ...." => "در حال حذف...",
-"Error while uninstalling app" => "خطا در هنگام حذف برنامه....",
-"Uninstall" => "حذف",
-"Select a profile picture" => "انتخاب تصویر پروفایل",
-"Very weak password" => "رمز عبور بسیار ضعیف",
-"Weak password" => "رمز عبور ضعیف",
-"So-so password" => "رمز عبور متوسط",
-"Good password" => "رمز عبور خوب",
-"Strong password" => "رمز عبور قوی",
-"Delete" => "حذف",
-"Decrypting files... Please wait, this can take some time." => "در حال بازگشایی رمز فایلها... لطفاً صبر نمایید. این امر ممکن است مدتی زمان ببرد.",
-"Delete encryption keys permanently." => "کلید های رمزگذاری به طوز کامل حذف شوند.",
-"Restore encryption keys." => "بازیابی کلیدهای رمزگذاری.",
-"Groups" => "گروه ها",
-"Unable to delete {objName}" => "امکان حذف {objName} وجود ندارد",
-"Error creating group" => "خطا در هنگام ایجاد کروه",
-"A valid group name must be provided" => "نام کاربری معتبر می بایست وارد شود",
-"deleted {groupName}" => "گروه {groupName} حذف شد",
-"undo" => "بازگشت",
-"Group Admin" => "گروه مدیران",
-"never" => "هرگز",
-"deleted {userName}" => "کاربر {userName} حذف شد",
-"add group" => "افزودن گروه",
-"A valid username must be provided" => "نام کاربری صحیح باید وارد شود",
-"Error creating user" => "خطا در ایجاد کاربر",
-"A valid password must be provided" => "رمز عبور صحیح باید وارد شود",
-"Warning: Home directory for user \"{user}\" already exists" => "اخطار: پوشهی خانه برای کاربر \"{user}\" در حال حاضر وجود دارد",
-"__language_name__" => "__language_name__",
-"Everything (fatal issues, errors, warnings, info, debug)" => "همه موارد (مشکلات مهلک، خطاها، اخطارها، اطلاعات، خطایابی)",
-"Info, warnings, errors and fatal issues" => "اطلاعات، اخطارها، خطاها، مشکلات اساسی",
-"Warnings, errors and fatal issues" => "اخطارها، خطاها، مشکلات مهلک",
-"Errors and fatal issues" => "خطاها و مشکلات اساسی",
-"Fatal issues only" => "فقط مشکلات اساسی",
-"None" => "هیچکدام",
-"Login" => "ورود",
-"Plain" => "ساده",
-"NT LAN Manager" => "مدیر NT LAN",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "اخطار امنیتی",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "به احتمال زیاد پوشهی data و فایلهای شما از طریق اینترنت قابل دسترسی هستند. فایل .htaccess برنامه کار نمیکند. ما شدیداً توصیه می کنیم که شما وب سرور خودتان را طوری تنظیم کنید که پوشهی data شما غیر قابل دسترسی باشد یا اینکه پوشهی data را به خارج از ریشهی اصلی وب سرور انتقال دهید.",
-"Setup Warning" => "هشدار راه اندازی",
-"Database Performance Info" => "اطلاعات کارایی پایگاه داده",
-"Module 'fileinfo' missing" => "ماژول 'fileinfo' از کار افتاده",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "ماژول 'fileinfo' PHP از کار افتاده است.ما اکیدا توصیه می کنیم که این ماژول را فعال کنید تا نتایج بهتری به وسیله ی mime-type detection دریافت کنید.",
-"Your PHP version is outdated" => "نسخه PHP شما قدیمی است",
-"Locale not working" => "زبان محلی کار نمی کند.",
-"Please double check the installation guides ." => "لطفاً دوباره راهنمای نصب را بررسی کنید.",
-"Cron" => "زمانبند",
-"Last cron was executed at %s." => "کران قبلی در %s اجرا شد.",
-"Cron was not executed yet!" => "کران هنوز اجرا نشده است!",
-"Execute one task with each page loaded" => "اجرای یک وظیفه با هر بار بارگذاری صفحه",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php در یک سرویس webcron ثبت شده است که هر 15 دقیقه یک بار بر روی بستر http فراخوانی شود.",
-"Sharing" => "اشتراک گذاری",
-"Allow apps to use the Share API" => "اجازه ی برنامه ها برای استفاده از API اشتراک گذاری",
-"Allow users to share via link" => "اجازه دادن به کاربران برای اشتراک گذاری توسط پیوند",
-"Enforce password protection" => "اجبار برای محافظت توسط رمز عبور",
-"Allow public uploads" => "اجازه بارگذاری عمومی",
-"Set default expiration date" => "اعمال تاریخ اتمام پیش فرض",
-"Expire after " => "اتمام اعتبار بعد از",
-"days" => "روز",
-"Enforce expiration date" => "اعمال تاریخ اتمام اشتراک گذاری",
-"Allow resharing" => "مجوز اشتراک گذاری مجدد",
-"Exclude groups from sharing" => "مستثنی شدن گروه ها از اشتراک گذاری",
-"Security" => "امنیت",
-"Enforce HTTPS" => "وادار کردن HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "کلاینتها را مجبور کن که از یک ارتباط رمزنگاری شده برای اتصال به %s استفاده کنند.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "برای فعال سازی یا عدم فعال سازی اجبار استفاده از SSL، لطفاً از طریق HTTPS به %s وصل شوید.",
-"Email Server" => "سرور ایمیل",
-"This is used for sending out notifications." => "این برای ارسال هشدار ها استفاده می شود",
-"From address" => "آدرس فرستنده",
-"mail" => "ایمیل",
-"Authentication required" => "احراز هویت مورد نیاز است",
-"Server address" => "آدرس سرور",
-"Port" => "درگاه",
-"Credentials" => "اعتبارهای",
-"SMTP Username" => "نام کاربری SMTP",
-"SMTP Password" => "رمز عبور SMTP",
-"Test email settings" => "تنظیمات ایمیل آزمایشی",
-"Send email" => "ارسال ایمیل",
-"Log" => "کارنامه",
-"Log level" => "سطح ورود",
-"More" => "بیشتر",
-"Less" => "کمتر",
-"Version" => "نسخه",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "توسعه یافته به وسیله ی انجمن ownCloud , the کد اصلی مجاز زیر گواهی AGPL .",
-"Add your App" => "برنامه خود را بیافزایید",
-"More Apps" => "برنامه های بیشتر",
-"Select an App" => "یک برنامه انتخاب کنید",
-"Documentation:" => "مستند سازی:",
-"See application page at apps.owncloud.com" => "صفحه این اٌپ را در apps.owncloud.com ببینید",
-"See application website" => "مشاهده وب سایت برنامه",
-" -licensed by " => " -مجاز از طرف ",
-"Enable only for specific groups" => "فعال سازی تنها برای گروه های خاص",
-"Administrator Documentation" => "مستندات مدیر",
-"Online Documentation" => "مستندات آنلاین",
-"Forum" => "انجمن",
-"Bugtracker" => "ردیاب باگ ",
-"Commercial Support" => "پشتیبانی تجاری",
-"Get the apps to sync your files" => "برنامه ها را دریافت کنید تا فایل هایتان را همگام سازید",
-"Show First Run Wizard again" => "راهبری کمکی اجرای اول را دوباره نمایش بده",
-"You have used %s of the available %s " => "شما استفاده کردید از %s از میزان در دسترس %s ",
-"Password" => "گذرواژه",
-"Your password was changed" => "رمز عبور شما تغییر یافت",
-"Unable to change your password" => "ناتوان در تغییر گذرواژه",
-"Current password" => "گذرواژه کنونی",
-"New password" => "گذرواژه جدید",
-"Change password" => "تغییر گذر واژه",
-"Full Name" => "نام کامل",
-"Email" => "ایمیل",
-"Your email address" => "پست الکترونیکی شما",
-"Profile picture" => "تصویر پروفایل",
-"Upload new" => "بارگذاری جدید",
-"Select new from Files" => "انتخاب جدید از میان فایل ها",
-"Remove image" => "تصویر پاک شود",
-"Either png or jpg. Ideally square but you will be able to crop it." => "هردوی jpg و png ها مربع گونه میباشند. با این حال شما میتوانید آنها را برش بزنید.",
-"Cancel" => "منصرف شدن",
-"Choose as profile image" => "یک تصویر پروفایل انتخاب کنید",
-"Language" => "زبان",
-"Help translate" => "به ترجمه آن کمک کنید",
-"SSL root certificates" => "گواهی های اصلی SSL ",
-"Import Root Certificate" => "وارد کردن گواهی اصلی",
-"Log-in password" => "رمز ورود",
-"Decrypt all Files" => "تمام فایلها رمزگشایی شود",
-"Restore Encryption Keys" => "بازیابی کلید های رمزگذاری",
-"Delete Encryption Keys" => "حذف کلید های رمزگذاری",
-"Login Name" => "نام کاربری",
-"Create" => "ایجاد کردن",
-"Admin Recovery Password" => "مدیریت بازیابی رمز عبور",
-"Enter the recovery password in order to recover the users files during password change" => "در حین تغییر رمز عبور به منظور بازیابی فایل های کاربران، رمز عبور بازیابی را وارد کنید",
-"Search Users and Groups" => "جستجوی کاربران و گروه ها",
-"Add Group" => "افزودن گروه",
-"Group" => "گروه",
-"Everyone" => "همه",
-"Admins" => "مدیران",
-"Default Quota" => "سهم پیش فرض",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "لطفا سهمیه ذخیره سازی را وارد کنید (به عنوان مثال: \" 512MB\" یا \"12GB\")",
-"Unlimited" => "نامحدود",
-"Other" => "دیگر",
-"Username" => "نام کاربری",
-"Quota" => "سهم",
-"Storage Location" => "محل فضای ذخیره سازی",
-"Last Login" => "اخرین ورود",
-"change full name" => "تغییر نام کامل",
-"set new password" => "تنظیم کلمه عبور جدید",
-"Default" => "پیش فرض"
-);
-$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js
new file mode 100644
index 00000000000..b5c1625f044
--- /dev/null
+++ b/settings/l10n/fi_FI.js
@@ -0,0 +1,235 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Turvallisuus- ja asetusvaroitukset",
+ "Cron" : "Cron",
+ "Sharing" : "Jakaminen",
+ "Security" : "Tietoturva",
+ "Email Server" : "Sähköpostipalvelin",
+ "Log" : "Loki",
+ "Authentication error" : "Tunnistautumisvirhe",
+ "Your full name has been changed." : "Koko nimesi on muutettu.",
+ "Unable to change full name" : "Koko nimen muuttaminen epäonnistui",
+ "Group already exists" : "Ryhmä on jo olemassa",
+ "Unable to add group" : "Ryhmän lisäys epäonnistui",
+ "Files decrypted successfully" : "Tiedostojen salaus purettiin onnistuneesti",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Tiedostojen salauksen purkaminen epäonnistui. Tarkista owncloud.log-tiedosto tai ota yhteys ylläpitäjään",
+ "Couldn't decrypt your files, check your password and try again" : "Tiedostojen salauksen purkaminen epäonnistui. Tarkista salasanasi ja yritä uudelleen",
+ "Encryption keys deleted permanently" : "Salausavaimet poistettiin pysyvästi",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Salausavaintesi poistaminen pysyvästi ei onnistunut, tarkista owncloud.log tai ole yhteydessä ylläpitäjään",
+ "Couldn't remove app." : "Sovelluksen poistaminen epäonnistui.",
+ "Email saved" : "Sähköposti tallennettu",
+ "Invalid email" : "Virheellinen sähköposti",
+ "Unable to delete group" : "Ryhmän poisto epäonnistui",
+ "Unable to delete user" : "Käyttäjän poisto epäonnistui",
+ "Backups restored successfully" : "Varmuuskopiot palautettiin onnistuneesti",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Salausavaintesi palauttaminen ei onnistunut, tarkista owncloud.log tai ole yhteydessä ylläpitäjään",
+ "Language changed" : "Kieli on vaihdettu",
+ "Invalid request" : "Virheellinen pyyntö",
+ "Admins can't remove themself from the admin group" : "Ylläpitäjät eivät poistaa omia tunnuksiaan ylläpitäjien ryhmästä",
+ "Unable to add user to group %s" : "Käyttäjän tai ryhmän %s lisääminen ei onnistu",
+ "Unable to remove user from group %s" : "Käyttäjän poistaminen ryhmästä %s ei onnistu",
+ "Couldn't update app." : "Sovelluksen päivitys epäonnistui.",
+ "Wrong password" : "Väärä salasana",
+ "No user supplied" : "Käyttäjää ei määritetty",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Anna ylläpitäjän palautussalasana, muuten kaikki käyttäjien data menetetään",
+ "Wrong admin recovery password. Please check the password and try again." : "Väärä ylläpitäjän salasana. Tarkista salasana ja yritä uudelleen.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Taustaosa ei tue salasanan vaihtamista, mutta käyttäjän salausavain päivitettiin onnistuneesti.",
+ "Unable to change password" : "Salasanan vaihto ei onnistunut",
+ "Enabled" : "Käytössä",
+ "Not enabled" : "Ei käytössä",
+ "Recommended" : "Suositeltu",
+ "Saved" : "Tallennettu",
+ "test email settings" : "testaa sähköpostiasetukset",
+ "If you received this email, the settings seem to be correct." : "Jos sait tämän sähköpostin, kaikki asetukset vaikuttavat olevan kunnossa.",
+ "A problem occurred while sending the email. Please revise your settings." : "Sähköpostia lähettäessä tapahtui virhe. Tarkista asetukset.",
+ "Email sent" : "Sähköposti lähetetty",
+ "You need to set your user email before being able to send test emails." : "Aseta sähköpostiosoite, jotta voit testata sähköpostin toimivuutta.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Haluatko varmasti liittää kohteen \"{domain}\" luotetuksi toimialueeksi?",
+ "Add trusted domain" : "Lisää luotettu toimialue",
+ "Sending..." : "Lähetetään...",
+ "All" : "Kaikki",
+ "Please wait...." : "Odota hetki...",
+ "Error while disabling app" : "Virhe poistaessa sovellusta käytöstä",
+ "Disable" : "Poista käytöstä",
+ "Enable" : "Käytä",
+ "Error while enabling app" : "Virhe ottaessa sovellusta käyttöön",
+ "Updating...." : "Päivitetään...",
+ "Error while updating app" : "Virhe sovellusta päivittäessä",
+ "Updated" : "Päivitetty",
+ "Uninstalling ...." : "Poistetaan asennusta....",
+ "Error while uninstalling app" : "Virhe sovellusta poistaessa",
+ "Uninstall" : "Poista asennus",
+ "Select a profile picture" : "Valitse profiilikuva",
+ "Very weak password" : "Erittäin heikko salasana",
+ "Weak password" : "Heikko salasana",
+ "So-so password" : "Kohtalainen salasana",
+ "Good password" : "Hyvä salasana",
+ "Strong password" : "Vahva salasana",
+ "Valid until {date}" : "Kelvollinen {date} asti",
+ "Delete" : "Poista",
+ "Decrypting files... Please wait, this can take some time." : "Puretaan tiedostojen salausta... Odota, tämä voi kestää jonkin aikaa.",
+ "Delete encryption keys permanently." : "Poista salausavaimet pysyvästi.",
+ "Restore encryption keys." : "Palauta salausavaimet.",
+ "Groups" : "Ryhmät",
+ "Unable to delete {objName}" : "Kohteen {objName} poistaminen epäonnistui",
+ "Error creating group" : "Virhe ryhmää luotaessa",
+ "A valid group name must be provided" : "Anna kelvollinen ryhmän nimi",
+ "deleted {groupName}" : "poistettu {groupName}",
+ "undo" : "kumoa",
+ "no group" : "ei ryhmää",
+ "never" : "ei koskaan",
+ "deleted {userName}" : "poistettu {userName}",
+ "add group" : "lisää ryhmä",
+ "A valid username must be provided" : "Anna kelvollinen käyttäjätunnus",
+ "Error creating user" : "Virhe käyttäjää luotaessa",
+ "A valid password must be provided" : "Anna kelvollinen salasana",
+ "Warning: Home directory for user \"{user}\" already exists" : "Varoitus: käyttäjällä \"{user}\" on jo olemassa kotikansio",
+ "__language_name__" : "_kielen_nimi_",
+ "Personal Info" : "Henkilökohtaiset tiedot",
+ "SSL root certificates" : "SSL-juurivarmenteet",
+ "Encryption" : "Salaus",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Kaikki (vakavat ongelmat, virheet, varoitukset, tiedot, vianjäljitys)",
+ "Info, warnings, errors and fatal issues" : "Tiedot, varoitukset, virheet ja vakavat ongelmat",
+ "Warnings, errors and fatal issues" : "Varoitukset, virheet ja vakavat ongelmat",
+ "Errors and fatal issues" : "Virheet ja vakavat ongelmat",
+ "Fatal issues only" : "Vain vakavat ongelmat",
+ "None" : "Ei mitään",
+ "Login" : "Kirjaudu",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Turvallisuusvaroitus",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Käytät %sia HTTP-yhteydellä. Suosittelemme määrittämään palvelimen vaatimaan salattua HTTPS-yhteyttä.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datahakemistosi ja kaikki tiedostosi ovat luultavasti käytettävissä suoraan internetistä. .htaccess-tiedosto ei toimi tällä hetkellä. Määritä verkkopalvelimen asetukset siten, ettei datahakemistosi ole suoraan käytettävissä tai siirrä kyseinen hakemisto pois verkkopalvelimen dokumenttijuuresta.",
+ "Read-Only config enabled" : "Vain luku -määritykset otettu käyttöön",
+ "Setup Warning" : "Asetusvaroitus",
+ "Database Performance Info" : "Tietokannan suorituskyvyn tiedot",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLitea käytetään tietokantana. Laajoja asennuksia varten tämä asetus kannattaa muuttaa. Käytä komentorivityökalua 'occ db:convert-type' siirtyäksesi toiseen tietokantaan.",
+ "Module 'fileinfo' missing" : "Moduuli 'fileinfo' puuttuu",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP-moduuli \"fileinfo\" puuttuu. Sen käyttö on erittäin suositeltavaa, jotta MIME-tyypin havaitseminen onnistuu parhaalla mahdollisella tavalla.",
+ "Your PHP version is outdated" : "Käytössä oleva PHP-versio on vanhentunut",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Käytössä oleva PHP on vanhentunut. Päivitä versioon 5.3.8 tai uudempaan, koska aiemmat versiot eivät ole toimivia. On mahdollista, että tämä ownCloud-asennus ei toimi kunnolla.",
+ "PHP charset is not set to UTF-8" : "PHP:n merkistöä ei ole asetettu UTF-8:ksi",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP:n merkistöä ei ole asetettu UTF-8:ksi. Tämä saattaa aiheuttaa suuria ongelmia sellaisten tiedostojen kanssa, joiden nimi koostuu muista kuin ASCII-merkeistä. Suosittelemme asettamaan php.ini-tiedoston kohdan 'default_charset' arvoon 'UTF-8'.",
+ "Locale not working" : "Maa-asetus ei toimi",
+ "System locale can not be set to a one which supports UTF-8." : "Järjestelmän maa-asetusta ei voi asettaa UTF-8:aa tukevaksi.",
+ "This means that there might be problems with certain characters in file names." : "Tämä tarkoittaa, että tiettyjen merkkien kanssa tiedostojen nimissä saattaa olla ongelmia.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Suosittelemme asentamaan vaaditut paketit järjestelmään, jotta järjestelmässä on tuki yhdelle seuraavista maa-asetuksista: %s.",
+ "URL generation in notification emails" : "Verkko-osoitteiden luominen sähköposti-ilmoituksissa",
+ "No problems found" : "Ongelmia ei löytynyt",
+ "Please double check the installation guides ." : "Lue tarkasti asennusohjeet .",
+ "Last cron was executed at %s." : "Viimeisin cron suoritettiin %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Viimeisin cron suoritettiin %s. Siitä on yli tunti aikaa, joten jokin näyttää olevan pielessä.",
+ "Cron was not executed yet!" : "Cronia ei suoritettu vielä!",
+ "Execute one task with each page loaded" : "Suorita yksi tehtävä jokaista ladattua sivua kohden",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php kutsuu webcron-palvelun kautta cron.php:ta 15 minuutin välein http:tä käyttäen.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Käytä järjestelmän cron-palvelua cron.php-tiedoston kutsumista varten 15 minuutin välein.",
+ "Allow apps to use the Share API" : "Salli sovellusten käyttää jakamisen ohjelmointirajapintaa",
+ "Allow users to share via link" : "Salli käyttäjien jakaa linkkien kautta",
+ "Enforce password protection" : "Pakota salasanasuojaus",
+ "Allow public uploads" : "Salli julkiset lähetykset",
+ "Set default expiration date" : "Aseta oletusvanhenemispäivä",
+ "Expire after " : "Vanhenna",
+ "days" : "päivän jälkeen",
+ "Enforce expiration date" : "Pakota vanhenemispäivä",
+ "Allow resharing" : "Salli uudelleenjakaminen",
+ "Restrict users to only share with users in their groups" : "Salli käyttäjien jakaa vain omassa ryhmässä olevien henkilöiden kesken",
+ "Allow users to send mail notification for shared files" : "Salli käyttäjien lähettää sähköposti-ilmoituksia jaetuista tiedostoista",
+ "Exclude groups from sharing" : "Kiellä ryhmiä jakamasta",
+ "These groups will still be able to receive shares, but not to initiate them." : "Nämä ryhmät kykenevät vastaanottamaan jakoja, mutta eivät kuitenkaan itse pysty luoda jakoja.",
+ "Enforce HTTPS" : "Pakota HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Pakottaa asiakasohjelmistot ottamaan yhteyden %siin salatun yhteyden kautta.",
+ "Enforce HTTPS for subdomains" : "Pakota HTTPS-suojaus alidomaineille",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Pakottaa asiakkaat yhdistämään kohteeseen %s ja sen alidomaineihin salattua yhteyttä käyttäen.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Yhdistä %siin HTTPS-yhteydellä ottaaksesi käyttöön tai poistaaksesi käytöstä SSL-pakotteen.",
+ "This is used for sending out notifications." : "Tätä käytetään ilmoitusten lähettämiseen.",
+ "Send mode" : "Lähetystila",
+ "From address" : "Lähettäjän osoite",
+ "Authentication method" : "Tunnistautumistapa",
+ "Authentication required" : "Tunnistautuminen vaaditaan",
+ "Server address" : "Palvelimen osoite",
+ "Port" : "Portti",
+ "Credentials" : "Tilitiedot",
+ "SMTP Username" : "SMTP-käyttäjätunnus",
+ "SMTP Password" : "SMTP-salasana",
+ "Store credentials" : "Säilytä tilitiedot",
+ "Test email settings" : "Testaa sähköpostiasetukset",
+ "Send email" : "Lähetä sähköpostiviesti",
+ "Log level" : "Lokitaso",
+ "More" : "Enemmän",
+ "Less" : "Vähemmän",
+ "Version" : "Versio",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Kehityksestä on vastannut ownCloud-yhteisö , lähdekoodi on julkaistu lisenssin AGPL alaisena.",
+ "More apps" : "Lisää sovelluksia",
+ "Add your app" : "Lisää sovelluksesi",
+ "by" : " Kirjoittaja:",
+ "licensed" : "lisensoitu",
+ "Documentation:" : "Ohjeistus:",
+ "User Documentation" : "Käyttäjäohjeistus",
+ "Admin Documentation" : "Ylläpitäjän ohjeistus",
+ "Update to %s" : "Päivitä versioon %s",
+ "Enable only for specific groups" : "Salli vain tietyille ryhmille",
+ "Uninstall App" : "Poista sovelluksen asennus",
+ "Administrator Documentation" : "Ylläpito-ohjeistus",
+ "Online Documentation" : "Verkko-ohjeistus",
+ "Forum" : "Keskustelupalsta",
+ "Bugtracker" : "Ohjelmistovirheiden jäljitys",
+ "Commercial Support" : "Kaupallinen tuki",
+ "Get the apps to sync your files" : "Aseta sovellukset synkronoimaan tiedostosi",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Jos haluat tukea projektia,\n\t\tosallistu kehitykseen \n\t\ttai\n\t\tlevitä sanaa !",
+ "Show First Run Wizard again" : "Näytä ensimmäisen käyttökerran avustaja uudelleen",
+ "You have used %s of the available %s " : "Käytössäsi on %s /%s ",
+ "Password" : "Salasana",
+ "Your password was changed" : "Salasanasi vaihdettiin",
+ "Unable to change your password" : "Salasanaasi ei voitu vaihtaa",
+ "Current password" : "Nykyinen salasana",
+ "New password" : "Uusi salasana",
+ "Change password" : "Vaihda salasana",
+ "Full Name" : "Koko nimi",
+ "Email" : "Sähköpostiosoite",
+ "Your email address" : "Sähköpostiosoitteesi",
+ "Fill in an email address to enable password recovery and receive notifications" : "Anna sähköpostiosoitteesi, jotta unohdettu salasana on mahdollista palauttaa ja voit vastaanottaa ilmoituksia",
+ "Profile picture" : "Profiilikuva",
+ "Upload new" : "Lähetä uusi",
+ "Select new from Files" : "Valitse uusi tiedostoista",
+ "Remove image" : "Poista kuva",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Joko png- tai jpg-kuva. Mieluiten neliö, voit kuitenkin rajata kuvaa.",
+ "Your avatar is provided by your original account." : "Avatar-kuvasi pohjautuu alkuperäiseen tiliisi.",
+ "Cancel" : "Peru",
+ "Choose as profile image" : "Valitse profiilikuvaksi",
+ "Language" : "Kieli",
+ "Help translate" : "Auta kääntämisessä",
+ "Valid until" : "Kelvollinen",
+ "Issued By" : " Myöntänyt",
+ "Valid until %s" : "Kelvollinen %s asti",
+ "Import Root Certificate" : "Tuo juurivarmenne",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Salaussovellus ei ole enää käytössä, joten pura kaikkien tiedostojesi salaus",
+ "Log-in password" : "Kirjautumissalasana",
+ "Decrypt all Files" : "Pura kaikkien tiedostojen salaus",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Salausavaimesi siirretään varmuuskopiosijaintiin. Jos jokin menee pieleen, voit palauttaa avaimet. Poista avaimet pysyvästi vain, jos olet varma, että tiedostojen salaus on purettu onnistuneesti.",
+ "Restore Encryption Keys" : "Palauta salausavaimet",
+ "Delete Encryption Keys" : "Poista salausavaimet",
+ "Show storage location" : "Näytä tallennustilan sijainti",
+ "Show last log in" : "Näytä viimeisin sisäänkirjautuminen",
+ "Username" : "Käyttäjätunnus",
+ "Create" : "Luo",
+ "Admin Recovery Password" : "Ylläpitäjän palautussalasana",
+ "Search Users" : "Etsi käyttäjiä",
+ "Add Group" : "Lisää ryhmä",
+ "Group" : "Ryhmä",
+ "Everyone" : "Kaikki",
+ "Admins" : "Ylläpitäjät",
+ "Default Quota" : "Oletuskiintiö",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Määritä tallennustilan kiintiö (esim. \"512 MB\" tai \"12 GB\")",
+ "Unlimited" : "Rajoittamaton",
+ "Other" : "Muu",
+ "Group Admin for" : "Ryhmäylläpitäjä kohteille",
+ "Quota" : "Kiintiö",
+ "Storage Location" : "Tallennustilan sijainti",
+ "Last Login" : "Viimeisin kirjautuminen",
+ "change full name" : "muuta koko nimi",
+ "set new password" : "aseta uusi salasana",
+ "Default" : "Oletus"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json
new file mode 100644
index 00000000000..aa90db529bc
--- /dev/null
+++ b/settings/l10n/fi_FI.json
@@ -0,0 +1,233 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Turvallisuus- ja asetusvaroitukset",
+ "Cron" : "Cron",
+ "Sharing" : "Jakaminen",
+ "Security" : "Tietoturva",
+ "Email Server" : "Sähköpostipalvelin",
+ "Log" : "Loki",
+ "Authentication error" : "Tunnistautumisvirhe",
+ "Your full name has been changed." : "Koko nimesi on muutettu.",
+ "Unable to change full name" : "Koko nimen muuttaminen epäonnistui",
+ "Group already exists" : "Ryhmä on jo olemassa",
+ "Unable to add group" : "Ryhmän lisäys epäonnistui",
+ "Files decrypted successfully" : "Tiedostojen salaus purettiin onnistuneesti",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Tiedostojen salauksen purkaminen epäonnistui. Tarkista owncloud.log-tiedosto tai ota yhteys ylläpitäjään",
+ "Couldn't decrypt your files, check your password and try again" : "Tiedostojen salauksen purkaminen epäonnistui. Tarkista salasanasi ja yritä uudelleen",
+ "Encryption keys deleted permanently" : "Salausavaimet poistettiin pysyvästi",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Salausavaintesi poistaminen pysyvästi ei onnistunut, tarkista owncloud.log tai ole yhteydessä ylläpitäjään",
+ "Couldn't remove app." : "Sovelluksen poistaminen epäonnistui.",
+ "Email saved" : "Sähköposti tallennettu",
+ "Invalid email" : "Virheellinen sähköposti",
+ "Unable to delete group" : "Ryhmän poisto epäonnistui",
+ "Unable to delete user" : "Käyttäjän poisto epäonnistui",
+ "Backups restored successfully" : "Varmuuskopiot palautettiin onnistuneesti",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Salausavaintesi palauttaminen ei onnistunut, tarkista owncloud.log tai ole yhteydessä ylläpitäjään",
+ "Language changed" : "Kieli on vaihdettu",
+ "Invalid request" : "Virheellinen pyyntö",
+ "Admins can't remove themself from the admin group" : "Ylläpitäjät eivät poistaa omia tunnuksiaan ylläpitäjien ryhmästä",
+ "Unable to add user to group %s" : "Käyttäjän tai ryhmän %s lisääminen ei onnistu",
+ "Unable to remove user from group %s" : "Käyttäjän poistaminen ryhmästä %s ei onnistu",
+ "Couldn't update app." : "Sovelluksen päivitys epäonnistui.",
+ "Wrong password" : "Väärä salasana",
+ "No user supplied" : "Käyttäjää ei määritetty",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Anna ylläpitäjän palautussalasana, muuten kaikki käyttäjien data menetetään",
+ "Wrong admin recovery password. Please check the password and try again." : "Väärä ylläpitäjän salasana. Tarkista salasana ja yritä uudelleen.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "Taustaosa ei tue salasanan vaihtamista, mutta käyttäjän salausavain päivitettiin onnistuneesti.",
+ "Unable to change password" : "Salasanan vaihto ei onnistunut",
+ "Enabled" : "Käytössä",
+ "Not enabled" : "Ei käytössä",
+ "Recommended" : "Suositeltu",
+ "Saved" : "Tallennettu",
+ "test email settings" : "testaa sähköpostiasetukset",
+ "If you received this email, the settings seem to be correct." : "Jos sait tämän sähköpostin, kaikki asetukset vaikuttavat olevan kunnossa.",
+ "A problem occurred while sending the email. Please revise your settings." : "Sähköpostia lähettäessä tapahtui virhe. Tarkista asetukset.",
+ "Email sent" : "Sähköposti lähetetty",
+ "You need to set your user email before being able to send test emails." : "Aseta sähköpostiosoite, jotta voit testata sähköpostin toimivuutta.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Haluatko varmasti liittää kohteen \"{domain}\" luotetuksi toimialueeksi?",
+ "Add trusted domain" : "Lisää luotettu toimialue",
+ "Sending..." : "Lähetetään...",
+ "All" : "Kaikki",
+ "Please wait...." : "Odota hetki...",
+ "Error while disabling app" : "Virhe poistaessa sovellusta käytöstä",
+ "Disable" : "Poista käytöstä",
+ "Enable" : "Käytä",
+ "Error while enabling app" : "Virhe ottaessa sovellusta käyttöön",
+ "Updating...." : "Päivitetään...",
+ "Error while updating app" : "Virhe sovellusta päivittäessä",
+ "Updated" : "Päivitetty",
+ "Uninstalling ...." : "Poistetaan asennusta....",
+ "Error while uninstalling app" : "Virhe sovellusta poistaessa",
+ "Uninstall" : "Poista asennus",
+ "Select a profile picture" : "Valitse profiilikuva",
+ "Very weak password" : "Erittäin heikko salasana",
+ "Weak password" : "Heikko salasana",
+ "So-so password" : "Kohtalainen salasana",
+ "Good password" : "Hyvä salasana",
+ "Strong password" : "Vahva salasana",
+ "Valid until {date}" : "Kelvollinen {date} asti",
+ "Delete" : "Poista",
+ "Decrypting files... Please wait, this can take some time." : "Puretaan tiedostojen salausta... Odota, tämä voi kestää jonkin aikaa.",
+ "Delete encryption keys permanently." : "Poista salausavaimet pysyvästi.",
+ "Restore encryption keys." : "Palauta salausavaimet.",
+ "Groups" : "Ryhmät",
+ "Unable to delete {objName}" : "Kohteen {objName} poistaminen epäonnistui",
+ "Error creating group" : "Virhe ryhmää luotaessa",
+ "A valid group name must be provided" : "Anna kelvollinen ryhmän nimi",
+ "deleted {groupName}" : "poistettu {groupName}",
+ "undo" : "kumoa",
+ "no group" : "ei ryhmää",
+ "never" : "ei koskaan",
+ "deleted {userName}" : "poistettu {userName}",
+ "add group" : "lisää ryhmä",
+ "A valid username must be provided" : "Anna kelvollinen käyttäjätunnus",
+ "Error creating user" : "Virhe käyttäjää luotaessa",
+ "A valid password must be provided" : "Anna kelvollinen salasana",
+ "Warning: Home directory for user \"{user}\" already exists" : "Varoitus: käyttäjällä \"{user}\" on jo olemassa kotikansio",
+ "__language_name__" : "_kielen_nimi_",
+ "Personal Info" : "Henkilökohtaiset tiedot",
+ "SSL root certificates" : "SSL-juurivarmenteet",
+ "Encryption" : "Salaus",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Kaikki (vakavat ongelmat, virheet, varoitukset, tiedot, vianjäljitys)",
+ "Info, warnings, errors and fatal issues" : "Tiedot, varoitukset, virheet ja vakavat ongelmat",
+ "Warnings, errors and fatal issues" : "Varoitukset, virheet ja vakavat ongelmat",
+ "Errors and fatal issues" : "Virheet ja vakavat ongelmat",
+ "Fatal issues only" : "Vain vakavat ongelmat",
+ "None" : "Ei mitään",
+ "Login" : "Kirjaudu",
+ "NT LAN Manager" : "NT LAN Manager",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Turvallisuusvaroitus",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Käytät %sia HTTP-yhteydellä. Suosittelemme määrittämään palvelimen vaatimaan salattua HTTPS-yhteyttä.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Datahakemistosi ja kaikki tiedostosi ovat luultavasti käytettävissä suoraan internetistä. .htaccess-tiedosto ei toimi tällä hetkellä. Määritä verkkopalvelimen asetukset siten, ettei datahakemistosi ole suoraan käytettävissä tai siirrä kyseinen hakemisto pois verkkopalvelimen dokumenttijuuresta.",
+ "Read-Only config enabled" : "Vain luku -määritykset otettu käyttöön",
+ "Setup Warning" : "Asetusvaroitus",
+ "Database Performance Info" : "Tietokannan suorituskyvyn tiedot",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLitea käytetään tietokantana. Laajoja asennuksia varten tämä asetus kannattaa muuttaa. Käytä komentorivityökalua 'occ db:convert-type' siirtyäksesi toiseen tietokantaan.",
+ "Module 'fileinfo' missing" : "Moduuli 'fileinfo' puuttuu",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP-moduuli \"fileinfo\" puuttuu. Sen käyttö on erittäin suositeltavaa, jotta MIME-tyypin havaitseminen onnistuu parhaalla mahdollisella tavalla.",
+ "Your PHP version is outdated" : "Käytössä oleva PHP-versio on vanhentunut",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Käytössä oleva PHP on vanhentunut. Päivitä versioon 5.3.8 tai uudempaan, koska aiemmat versiot eivät ole toimivia. On mahdollista, että tämä ownCloud-asennus ei toimi kunnolla.",
+ "PHP charset is not set to UTF-8" : "PHP:n merkistöä ei ole asetettu UTF-8:ksi",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "PHP:n merkistöä ei ole asetettu UTF-8:ksi. Tämä saattaa aiheuttaa suuria ongelmia sellaisten tiedostojen kanssa, joiden nimi koostuu muista kuin ASCII-merkeistä. Suosittelemme asettamaan php.ini-tiedoston kohdan 'default_charset' arvoon 'UTF-8'.",
+ "Locale not working" : "Maa-asetus ei toimi",
+ "System locale can not be set to a one which supports UTF-8." : "Järjestelmän maa-asetusta ei voi asettaa UTF-8:aa tukevaksi.",
+ "This means that there might be problems with certain characters in file names." : "Tämä tarkoittaa, että tiettyjen merkkien kanssa tiedostojen nimissä saattaa olla ongelmia.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Suosittelemme asentamaan vaaditut paketit järjestelmään, jotta järjestelmässä on tuki yhdelle seuraavista maa-asetuksista: %s.",
+ "URL generation in notification emails" : "Verkko-osoitteiden luominen sähköposti-ilmoituksissa",
+ "No problems found" : "Ongelmia ei löytynyt",
+ "Please double check the installation guides ." : "Lue tarkasti asennusohjeet .",
+ "Last cron was executed at %s." : "Viimeisin cron suoritettiin %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Viimeisin cron suoritettiin %s. Siitä on yli tunti aikaa, joten jokin näyttää olevan pielessä.",
+ "Cron was not executed yet!" : "Cronia ei suoritettu vielä!",
+ "Execute one task with each page loaded" : "Suorita yksi tehtävä jokaista ladattua sivua kohden",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php kutsuu webcron-palvelun kautta cron.php:ta 15 minuutin välein http:tä käyttäen.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Käytä järjestelmän cron-palvelua cron.php-tiedoston kutsumista varten 15 minuutin välein.",
+ "Allow apps to use the Share API" : "Salli sovellusten käyttää jakamisen ohjelmointirajapintaa",
+ "Allow users to share via link" : "Salli käyttäjien jakaa linkkien kautta",
+ "Enforce password protection" : "Pakota salasanasuojaus",
+ "Allow public uploads" : "Salli julkiset lähetykset",
+ "Set default expiration date" : "Aseta oletusvanhenemispäivä",
+ "Expire after " : "Vanhenna",
+ "days" : "päivän jälkeen",
+ "Enforce expiration date" : "Pakota vanhenemispäivä",
+ "Allow resharing" : "Salli uudelleenjakaminen",
+ "Restrict users to only share with users in their groups" : "Salli käyttäjien jakaa vain omassa ryhmässä olevien henkilöiden kesken",
+ "Allow users to send mail notification for shared files" : "Salli käyttäjien lähettää sähköposti-ilmoituksia jaetuista tiedostoista",
+ "Exclude groups from sharing" : "Kiellä ryhmiä jakamasta",
+ "These groups will still be able to receive shares, but not to initiate them." : "Nämä ryhmät kykenevät vastaanottamaan jakoja, mutta eivät kuitenkaan itse pysty luoda jakoja.",
+ "Enforce HTTPS" : "Pakota HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Pakottaa asiakasohjelmistot ottamaan yhteyden %siin salatun yhteyden kautta.",
+ "Enforce HTTPS for subdomains" : "Pakota HTTPS-suojaus alidomaineille",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Pakottaa asiakkaat yhdistämään kohteeseen %s ja sen alidomaineihin salattua yhteyttä käyttäen.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Yhdistä %siin HTTPS-yhteydellä ottaaksesi käyttöön tai poistaaksesi käytöstä SSL-pakotteen.",
+ "This is used for sending out notifications." : "Tätä käytetään ilmoitusten lähettämiseen.",
+ "Send mode" : "Lähetystila",
+ "From address" : "Lähettäjän osoite",
+ "Authentication method" : "Tunnistautumistapa",
+ "Authentication required" : "Tunnistautuminen vaaditaan",
+ "Server address" : "Palvelimen osoite",
+ "Port" : "Portti",
+ "Credentials" : "Tilitiedot",
+ "SMTP Username" : "SMTP-käyttäjätunnus",
+ "SMTP Password" : "SMTP-salasana",
+ "Store credentials" : "Säilytä tilitiedot",
+ "Test email settings" : "Testaa sähköpostiasetukset",
+ "Send email" : "Lähetä sähköpostiviesti",
+ "Log level" : "Lokitaso",
+ "More" : "Enemmän",
+ "Less" : "Vähemmän",
+ "Version" : "Versio",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Kehityksestä on vastannut ownCloud-yhteisö , lähdekoodi on julkaistu lisenssin AGPL alaisena.",
+ "More apps" : "Lisää sovelluksia",
+ "Add your app" : "Lisää sovelluksesi",
+ "by" : " Kirjoittaja:",
+ "licensed" : "lisensoitu",
+ "Documentation:" : "Ohjeistus:",
+ "User Documentation" : "Käyttäjäohjeistus",
+ "Admin Documentation" : "Ylläpitäjän ohjeistus",
+ "Update to %s" : "Päivitä versioon %s",
+ "Enable only for specific groups" : "Salli vain tietyille ryhmille",
+ "Uninstall App" : "Poista sovelluksen asennus",
+ "Administrator Documentation" : "Ylläpito-ohjeistus",
+ "Online Documentation" : "Verkko-ohjeistus",
+ "Forum" : "Keskustelupalsta",
+ "Bugtracker" : "Ohjelmistovirheiden jäljitys",
+ "Commercial Support" : "Kaupallinen tuki",
+ "Get the apps to sync your files" : "Aseta sovellukset synkronoimaan tiedostosi",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Jos haluat tukea projektia,\n\t\tosallistu kehitykseen \n\t\ttai\n\t\tlevitä sanaa !",
+ "Show First Run Wizard again" : "Näytä ensimmäisen käyttökerran avustaja uudelleen",
+ "You have used %s of the available %s " : "Käytössäsi on %s /%s ",
+ "Password" : "Salasana",
+ "Your password was changed" : "Salasanasi vaihdettiin",
+ "Unable to change your password" : "Salasanaasi ei voitu vaihtaa",
+ "Current password" : "Nykyinen salasana",
+ "New password" : "Uusi salasana",
+ "Change password" : "Vaihda salasana",
+ "Full Name" : "Koko nimi",
+ "Email" : "Sähköpostiosoite",
+ "Your email address" : "Sähköpostiosoitteesi",
+ "Fill in an email address to enable password recovery and receive notifications" : "Anna sähköpostiosoitteesi, jotta unohdettu salasana on mahdollista palauttaa ja voit vastaanottaa ilmoituksia",
+ "Profile picture" : "Profiilikuva",
+ "Upload new" : "Lähetä uusi",
+ "Select new from Files" : "Valitse uusi tiedostoista",
+ "Remove image" : "Poista kuva",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Joko png- tai jpg-kuva. Mieluiten neliö, voit kuitenkin rajata kuvaa.",
+ "Your avatar is provided by your original account." : "Avatar-kuvasi pohjautuu alkuperäiseen tiliisi.",
+ "Cancel" : "Peru",
+ "Choose as profile image" : "Valitse profiilikuvaksi",
+ "Language" : "Kieli",
+ "Help translate" : "Auta kääntämisessä",
+ "Valid until" : "Kelvollinen",
+ "Issued By" : " Myöntänyt",
+ "Valid until %s" : "Kelvollinen %s asti",
+ "Import Root Certificate" : "Tuo juurivarmenne",
+ "The encryption app is no longer enabled, please decrypt all your files" : "Salaussovellus ei ole enää käytössä, joten pura kaikkien tiedostojesi salaus",
+ "Log-in password" : "Kirjautumissalasana",
+ "Decrypt all Files" : "Pura kaikkien tiedostojen salaus",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Salausavaimesi siirretään varmuuskopiosijaintiin. Jos jokin menee pieleen, voit palauttaa avaimet. Poista avaimet pysyvästi vain, jos olet varma, että tiedostojen salaus on purettu onnistuneesti.",
+ "Restore Encryption Keys" : "Palauta salausavaimet",
+ "Delete Encryption Keys" : "Poista salausavaimet",
+ "Show storage location" : "Näytä tallennustilan sijainti",
+ "Show last log in" : "Näytä viimeisin sisäänkirjautuminen",
+ "Username" : "Käyttäjätunnus",
+ "Create" : "Luo",
+ "Admin Recovery Password" : "Ylläpitäjän palautussalasana",
+ "Search Users" : "Etsi käyttäjiä",
+ "Add Group" : "Lisää ryhmä",
+ "Group" : "Ryhmä",
+ "Everyone" : "Kaikki",
+ "Admins" : "Ylläpitäjät",
+ "Default Quota" : "Oletuskiintiö",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Määritä tallennustilan kiintiö (esim. \"512 MB\" tai \"12 GB\")",
+ "Unlimited" : "Rajoittamaton",
+ "Other" : "Muu",
+ "Group Admin for" : "Ryhmäylläpitäjä kohteille",
+ "Quota" : "Kiintiö",
+ "Storage Location" : "Tallennustilan sijainti",
+ "Last Login" : "Viimeisin kirjautuminen",
+ "change full name" : "muuta koko nimi",
+ "set new password" : "aseta uusi salasana",
+ "Default" : "Oletus"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/fi_FI.php b/settings/l10n/fi_FI.php
deleted file mode 100644
index 9b09f0fbadd..00000000000
--- a/settings/l10n/fi_FI.php
+++ /dev/null
@@ -1,228 +0,0 @@
- "Virheellinen arvo kohdassa %s",
-"Saved" => "Tallennettu",
-"test email settings" => "testaa sähköpostiasetukset",
-"If you received this email, the settings seem to be correct." => "Jos sait tämän sähköpostin, kaikki asetukset vaikuttavat olevan kunnossa.",
-"A problem occurred while sending the e-mail. Please revisit your settings." => "Sähköpostia lähettäessä tapahtui virhe. Tarkista asetukset.",
-"Email sent" => "Sähköposti lähetetty",
-"You need to set your user email before being able to send test emails." => "Aseta sähköpostiosoite, jotta voit testata sähköpostin toimivuutta.",
-"Send mode" => "Lähetystila",
-"Encryption" => "Salaus",
-"Authentication method" => "Tunnistautumistapa",
-"Unable to load list from App Store" => "Ei pystytä lataamaan listaa sovellusvarastosta (App Store)",
-"Authentication error" => "Tunnistautumisvirhe",
-"Your full name has been changed." => "Koko nimesi on muutettu.",
-"Unable to change full name" => "Koko nimen muuttaminen epäonnistui",
-"Group already exists" => "Ryhmä on jo olemassa",
-"Unable to add group" => "Ryhmän lisäys epäonnistui",
-"Files decrypted successfully" => "Tiedostojen salaus purettiin onnistuneesti",
-"Couldn't decrypt your files, please check your owncloud.log or ask your administrator" => "Tiedostojen salauksen purkaminen epäonnistui. Tarkista owncloud.log-tiedosto tai ota yhteys ylläpitäjään",
-"Couldn't decrypt your files, check your password and try again" => "Tiedostojen salauksen purkaminen epäonnistui. Tarkista salasanasi ja yritä uudelleen",
-"Encryption keys deleted permanently" => "Salausavaimet poistettiin pysyvästi",
-"Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" => "Salausavaintesi poistaminen pysyvästi ei onnistunut, tarkista owncloud.log tai ole yhteydessä ylläpitäjään",
-"Couldn't remove app." => "Sovelluksen poistaminen epäonnistui.",
-"Email saved" => "Sähköposti tallennettu",
-"Invalid email" => "Virheellinen sähköposti",
-"Unable to delete group" => "Ryhmän poisto epäonnistui",
-"Unable to delete user" => "Käyttäjän poisto epäonnistui",
-"Backups restored successfully" => "Varmuuskopiot palautettiin onnistuneesti",
-"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Salausavaintesi palauttaminen ei onnistunut, tarkista owncloud.log tai ole yhteydessä ylläpitäjään",
-"Language changed" => "Kieli on vaihdettu",
-"Invalid request" => "Virheellinen pyyntö",
-"Admins can't remove themself from the admin group" => "Ylläpitäjät eivät poistaa omia tunnuksiaan ylläpitäjien ryhmästä",
-"Unable to add user to group %s" => "Käyttäjän tai ryhmän %s lisääminen ei onnistu",
-"Unable to remove user from group %s" => "Käyttäjän poistaminen ryhmästä %s ei onnistu",
-"Couldn't update app." => "Sovelluksen päivitys epäonnistui.",
-"Wrong password" => "Väärä salasana",
-"No user supplied" => "Käyttäjää ei määritetty",
-"Please provide an admin recovery password, otherwise all user data will be lost" => "Anna ylläpitäjän palautussalasana, muuten kaikki käyttäjien data menetetään",
-"Wrong admin recovery password. Please check the password and try again." => "Väärä ylläpitäjän salasana. Tarkista salasana ja yritä uudelleen.",
-"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Taustaosa ei tue salasanan vaihtamista, mutta käyttäjän salausavain päivitettiin onnistuneesti.",
-"Unable to change password" => "Salasanan vaihto ei onnistunut",
-"Are you really sure you want add \"{domain}\" as trusted domain?" => "Haluatko varmasti liittää kohteen \"{domain}\" luotetuksi toimialueeksi?",
-"Add trusted domain" => "Lisää luotettu toimialue",
-"Sending..." => "Lähetetään...",
-"All" => "Kaikki",
-"User Documentation" => "Käyttäjäohjeistus",
-"Admin Documentation" => "Ylläpitäjän ohjeistus",
-"Update to {appversion}" => "Päivitä versioon {appversion}",
-"Uninstall App" => "Poista sovelluksen asennus",
-"Disable" => "Poista käytöstä",
-"Enable" => "Käytä",
-"Please wait...." => "Odota hetki...",
-"Error while disabling app" => "Virhe poistaessa sovellusta käytöstä",
-"Error while enabling app" => "Virhe ottaessa sovellusta käyttöön",
-"Updating...." => "Päivitetään...",
-"Error while updating app" => "Virhe sovellusta päivittäessä",
-"Error" => "Virhe",
-"Update" => "Päivitä",
-"Updated" => "Päivitetty",
-"Uninstalling ...." => "Poistetaan asennusta....",
-"Error while uninstalling app" => "Virhe sovellusta poistaessa",
-"Uninstall" => "Poista asennus",
-"Select a profile picture" => "Valitse profiilikuva",
-"Very weak password" => "Erittäin heikko salasana",
-"Weak password" => "Heikko salasana",
-"So-so password" => "Kohtalainen salasana",
-"Good password" => "Hyvä salasana",
-"Strong password" => "Vahva salasana",
-"Valid until {date}" => "Kelvollinen {date} asti",
-"Delete" => "Poista",
-"Decrypting files... Please wait, this can take some time." => "Puretaan tiedostojen salausta... Odota, tämä voi kestää jonkin aikaa.",
-"Delete encryption keys permanently." => "Poista salausavaimet pysyvästi.",
-"Restore encryption keys." => "Palauta salausavaimet.",
-"Groups" => "Ryhmät",
-"Unable to delete {objName}" => "Kohteen {objName} poistaminen epäonnistui",
-"Error creating group" => "Virhe ryhmää luotaessa",
-"A valid group name must be provided" => "Anna kelvollinen ryhmän nimi",
-"deleted {groupName}" => "poistettu {groupName}",
-"undo" => "kumoa",
-"Group Admin" => "Ryhmän ylläpitäjä",
-"never" => "ei koskaan",
-"deleted {userName}" => "poistettu {userName}",
-"add group" => "lisää ryhmä",
-"A valid username must be provided" => "Anna kelvollinen käyttäjätunnus",
-"Error creating user" => "Virhe käyttäjää luotaessa",
-"A valid password must be provided" => "Anna kelvollinen salasana",
-"Warning: Home directory for user \"{user}\" already exists" => "Varoitus: käyttäjällä \"{user}\" on jo olemassa kotikansio",
-"__language_name__" => "_kielen_nimi_",
-"Everything (fatal issues, errors, warnings, info, debug)" => "Kaikki (vakavat ongelmat, virheet, varoitukset, tiedot, vianjäljitys)",
-"Info, warnings, errors and fatal issues" => "Tiedot, varoitukset, virheet ja vakavat ongelmat",
-"Warnings, errors and fatal issues" => "Varoitukset, virheet ja vakavat ongelmat",
-"Errors and fatal issues" => "Virheet ja vakavat ongelmat",
-"Fatal issues only" => "Vain vakavat ongelmat",
-"None" => "Ei mitään",
-"Login" => "Kirjaudu",
-"SSL" => "SSL",
-"TLS" => "TLS",
-"Security Warning" => "Turvallisuusvaroitus",
-"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." => "Käytät %sia HTTP-yhteydellä. Suosittelemme määrittämään palvelimen vaatimaan salattua HTTPS-yhteyttä.",
-"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Datahakemistosi ja kaikki tiedostosi ovat luultavasti käytettävissä suoraan internetistä. .htaccess-tiedosto ei toimi tällä hetkellä. Määritä verkkopalvelimen asetukset siten, ettei datahakemistosi ole suoraan käytettävissä tai siirrä kyseinen hakemisto pois verkkopalvelimen dokumenttijuuresta.",
-"Setup Warning" => "Asetusvaroitus",
-"Database Performance Info" => "Tietokannan suorituskyvyn tiedot",
-"SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" => "SQLitea käytetään tietokantana. Laajoja asennuksia varten tämä asetus kannattaa muuttaa. Käytä komentorivityökalua 'occ db:convert-type' siirtyäksesi toiseen tietokantaan.",
-"Module 'fileinfo' missing" => "Moduuli 'fileinfo' puuttuu",
-"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "PHP-moduuli \"fileinfo\" puuttuu. Sen käyttö on erittäin suositeltavaa, jotta MIME-tyypin havaitseminen onnistuu parhaalla mahdollisella tavalla.",
-"Your PHP version is outdated" => "Käytössä oleva PHP-versio on vanhentunut",
-"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." => "Käytössä oleva PHP on vanhentunut. Päivitä versioon 5.3.8 tai uudempaan, koska aiemmat versiot eivät ole toimivia. On mahdollista, että tämä ownCloud-asennus ei toimi kunnolla.",
-"PHP charset is not set to UTF-8" => "PHP:n merkistöä ei ole asetettu UTF-8:ksi",
-"PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." => "PHP:n merkistöä ei ole asetettu UTF-8:ksi. Tämä saattaa aiheuttaa suuria ongelmia sellaisten tiedostojen kanssa, joiden nimi koostuu muista kuin ASCII-merkeistä. Suosittelemme asettamaan php.ini-tiedoston kohdan 'default_charset' arvoon 'UTF-8'.",
-"Locale not working" => "Maa-asetus ei toimi",
-"System locale can not be set to a one which supports UTF-8." => "Järjestelmän maa-asetusta ei voi asettaa UTF-8:aa tukevaksi.",
-"This means that there might be problems with certain characters in file names." => "Tämä tarkoittaa, että tiettyjen merkkien kanssa tiedostojen nimissä saattaa olla ongelmia.",
-"We strongly suggest to install the required packages on your system to support one of the following locales: %s." => "Suosittelemme vahvasti asentamaan vaaditut paketit järjestelmään, jotta jotain seuraavista maa-asetuksista on mahdollista tukea: %s.",
-"URL generation in notification emails" => "Verkko-osoitteiden luominen sähköposti-ilmoituksissa",
-"No problems found" => "Ongelmia ei löytynyt",
-"Please double check the installation guides ." => "Lue tarkasti asennusohjeet .",
-"Cron" => "Cron",
-"Last cron was executed at %s." => "Viimeisin cron suoritettiin %s.",
-"Last cron was executed at %s. This is more than an hour ago, something seems wrong." => "Viimeisin cron suoritettiin %s. Siitä on yli tunti aikaa, joten jokin näyttää olevan pielessä.",
-"Cron was not executed yet!" => "Cronia ei suoritettu vielä!",
-"Execute one task with each page loaded" => "Suorita yksi tehtävä jokaista ladattua sivua kohden",
-"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." => "cron.php kutsuu webcron-palvelun kautta cron.php:ta 15 minuutin välein http:tä käyttäen.",
-"Use system's cron service to call the cron.php file every 15 minutes." => "Käytä järjestelmän cron-palvelua cron.php-tiedoston kutsumista varten 15 minuutin välein.",
-"Sharing" => "Jakaminen",
-"Allow apps to use the Share API" => "Salli sovellusten käyttää jakamisen ohjelmointirajapintaa",
-"Allow users to share via link" => "Salli käyttäjien jakaa linkkien kautta",
-"Allow public uploads" => "Salli julkiset lähetykset",
-"Set default expiration date" => "Aseta oletusvanhenemispäivä",
-"Expire after " => "Vanhenna",
-"days" => "päivän jälkeen",
-"Enforce expiration date" => "Pakota vanhenemispäivä",
-"Allow resharing" => "Salli uudelleenjakaminen",
-"Restrict users to only share with users in their groups" => "Salli käyttäjien jakaa vain omassa ryhmässä olevien henkilöiden kesken",
-"Allow users to send mail notification for shared files" => "Salli käyttäjien lähettää sähköposti-ilmoituksia jaetuista tiedostoista",
-"Exclude groups from sharing" => "Kiellä ryhmiä jakamasta",
-"These groups will still be able to receive shares, but not to initiate them." => "Nämä ryhmät kykenevät vastaanottamaan jakoja, mutta eivät kuitenkaan itse pysty luoda jakoja.",
-"Security" => "Tietoturva",
-"Enforce HTTPS" => "Pakota HTTPS",
-"Forces the clients to connect to %s via an encrypted connection." => "Pakottaa asiakasohjelmistot ottamaan yhteyden %siin salatun yhteyden kautta.",
-"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Yhdistä %siin HTTPS-yhteydellä ottaaksesi käyttöön tai poistaaksesi käytöstä SSL-pakotteen.",
-"Email Server" => "Sähköpostipalvelin",
-"This is used for sending out notifications." => "Tätä käytetään ilmoitusten lähettämiseen.",
-"From address" => "Lähettäjän osoite",
-"Authentication required" => "Tunnistautuminen vaaditaan",
-"Server address" => "Palvelimen osoite",
-"Port" => "Portti",
-"Credentials" => "Tilitiedot",
-"SMTP Username" => "SMTP-käyttäjätunnus",
-"SMTP Password" => "SMTP-salasana",
-"Test email settings" => "Testaa sähköpostiasetukset",
-"Send email" => "Lähetä sähköpostiviesti",
-"Log" => "Loki",
-"Log level" => "Lokitaso",
-"More" => "Enemmän",
-"Less" => "Vähemmän",
-"Version" => "Versio",
-"Developed by the ownCloud community , the source code is licensed under the AGPL ." => "Kehityksestä on vastannut ownCloud-yhteisö , lähdekoodi on julkaistu lisenssin AGPL alaisena.",
-"Add your App" => "Lisää sovelluksesi",
-"More Apps" => "Lisää sovelluksia",
-"Select an App" => "Valitse sovellus",
-"Documentation:" => "Ohjeistus:",
-"See application page at apps.owncloud.com" => "Katso sovellussivu osoitteessa apps.owncloud.com",
-"See application website" => "Lue lisää sovelluksen sivustolta",
-" -licensed by " => " -lisensoija ",
-"Enable only for specific groups" => "Salli vain tietyille ryhmille",
-"Administrator Documentation" => "Ylläpito-ohjeistus",
-"Online Documentation" => "Verkko-ohjeistus",
-"Forum" => "Keskustelupalsta",
-"Bugtracker" => "Ohjelmistovirheiden jäljitys",
-"Commercial Support" => "Kaupallinen tuki",
-"Get the apps to sync your files" => "Aseta sovellukset synkronoimaan tiedostosi",
-"If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" => "Jos haluat tukea projektia,\n\t\tosallistu kehitykseen \n\t\ttai\n\t\tlevitä sanaa !",
-"Show First Run Wizard again" => "Näytä ensimmäisen käyttökerran avustaja uudelleen",
-"You have used %s of the available %s " => "Käytössäsi on %s /%s ",
-"Password" => "Salasana",
-"Your password was changed" => "Salasanasi vaihdettiin",
-"Unable to change your password" => "Salasanaasi ei voitu vaihtaa",
-"Current password" => "Nykyinen salasana",
-"New password" => "Uusi salasana",
-"Change password" => "Vaihda salasana",
-"Full Name" => "Koko nimi",
-"Email" => "Sähköpostiosoite",
-"Your email address" => "Sähköpostiosoitteesi",
-"Fill in an email address to enable password recovery and receive notifications" => "Anna sähköpostiosoitteesi, jotta unohdettu salasana on mahdollista palauttaa ja voit vastaanottaa ilmoituksia",
-"Profile picture" => "Profiilikuva",
-"Upload new" => "Lähetä uusi",
-"Select new from Files" => "Valitse uusi tiedostoista",
-"Remove image" => "Poista kuva",
-"Either png or jpg. Ideally square but you will be able to crop it." => "Joko png- tai jpg-kuva. Mieluiten neliö, voit kuitenkin rajata kuvaa.",
-"Your avatar is provided by your original account." => "Avatar-kuvasi pohjautuu alkuperäiseen tiliisi.",
-"Cancel" => "Peru",
-"Choose as profile image" => "Valitse profiilikuvaksi",
-"Language" => "Kieli",
-"Help translate" => "Auta kääntämisessä",
-"SSL root certificates" => "SSL-juurivarmenteet",
-"Valid until" => "Kelvollinen",
-"Issued By" => " Myöntänyt",
-"Valid until %s" => "Kelvollinen %s asti",
-"Import Root Certificate" => "Tuo juurivarmenne",
-"The encryption app is no longer enabled, please decrypt all your files" => "Salaussovellus ei ole enää käytössä, joten pura kaikkien tiedostojesi salaus",
-"Log-in password" => "Kirjautumissalasana",
-"Decrypt all Files" => "Pura kaikkien tiedostojen salaus",
-"Restore Encryption Keys" => "Palauta salausavaimet",
-"Delete Encryption Keys" => "Poista salausavaimet",
-"Show storage location" => "Näytä tallennustilan sijainti",
-"Show last log in" => "Näytä viimeisin sisäänkirjautuminen",
-"Login Name" => "Kirjautumisnimi",
-"Create" => "Luo",
-"Admin Recovery Password" => "Ylläpitäjän palautussalasana",
-"Search Users and Groups" => "Etsi käyttäjiä ja ryhmiä",
-"Add Group" => "Lisää ryhmä",
-"Group" => "Ryhmä",
-"Everyone" => "Kaikki",
-"Admins" => "Ylläpitäjät",
-"Default Quota" => "Oletuskiintiö",
-"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" => "Määritä tallennustilan kiintiö (esim. \"512 MB\" tai \"12 GB\")",
-"Unlimited" => "Rajoittamaton",
-"Other" => "Muu",
-"Username" => "Käyttäjätunnus",
-"Quota" => "Kiintiö",
-"Storage Location" => "Tallennustilan sijainti",
-"Last Login" => "Viimeisin kirjautuminen",
-"change full name" => "muuta koko nimi",
-"set new password" => "aseta uusi salasana",
-"Default" => "Oletus"
-);
-$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
new file mode 100644
index 00000000000..816b9e88565
--- /dev/null
+++ b/settings/l10n/fr.js
@@ -0,0 +1,242 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Security & Setup Warnings" : "Alertes de sécurité ou de configuration",
+ "Cron" : "Cron",
+ "Sharing" : "Partage",
+ "Security" : "Sécurité",
+ "Email Server" : "Serveur mail",
+ "Log" : "Log",
+ "Authentication error" : "Erreur d'authentification",
+ "Your full name has been changed." : "Votre nom complet a été modifié.",
+ "Unable to change full name" : "Impossible de changer le nom complet",
+ "Group already exists" : "Ce groupe existe déjà",
+ "Unable to add group" : "Impossible d'ajouter le groupe",
+ "Files decrypted successfully" : "Fichiers décryptés avec succès",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Impossible de décrypter vos fichiers, veuillez vérifier votre owncloud.log ou demander à votre administrateur",
+ "Couldn't decrypt your files, check your password and try again" : "Impossible de décrypter vos fichiers, vérifiez votre mot de passe et essayez à nouveau",
+ "Encryption keys deleted permanently" : "Clés de chiffrement définitivement supprimées.",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Impossible de supprimer définitivement vos clés de chiffrement, merci de regarder journal owncloud.log ou de demander à votre administrateur",
+ "Couldn't remove app." : "Impossible de supprimer l'application.",
+ "Email saved" : "E-mail sauvegardé",
+ "Invalid email" : "E-mail invalide",
+ "Unable to delete group" : "Impossible de supprimer le groupe",
+ "Unable to delete user" : "Impossible de supprimer l'utilisateur",
+ "Backups restored successfully" : "La sauvegarde a été restaurée avec succès",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Impossible de restaurer vos clés de chiffrement, merci de regarder journal owncloud.log ou de demander à votre administrateur",
+ "Language changed" : "Langue changée",
+ "Invalid request" : "Requête invalide",
+ "Admins can't remove themself from the admin group" : "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin",
+ "Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s",
+ "Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s",
+ "Couldn't update app." : "Impossible de mettre à jour l'application",
+ "Wrong password" : "Mot de passe incorrect",
+ "No user supplied" : "Aucun utilisateur fourni",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Veuillez fournir un mot de passe administrateur de récupération de données, sinon toutes les données de l'utilisateur seront perdues",
+ "Wrong admin recovery password. Please check the password and try again." : "Mot de passe administrateur de récupération de données non valable. Veuillez vérifier le mot de passe et essayer à nouveau.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "L'infrastructure d'arrière-plan ne permet pas la modification de mot de passe, mais la clef de chiffrement des utilisateurs a été mise à jour avec succès.",
+ "Unable to change password" : "Impossible de modifier le mot de passe",
+ "Enabled" : "Activées",
+ "Not enabled" : "Désactivées",
+ "Recommended" : "Recommandées",
+ "Saved" : "Sauvegardé",
+ "test email settings" : "tester les paramètres d'e-mail",
+ "If you received this email, the settings seem to be correct." : "Si vous recevez cet email, c'est que les paramètres sont corrects",
+ "A problem occurred while sending the email. Please revise your settings." : "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres.",
+ "Email sent" : "Email envoyé",
+ "You need to set your user email before being able to send test emails." : "Vous devez configurer votre e-mail d'utilisateur avant de pouvoir envoyer des e-mails de test.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?",
+ "Add trusted domain" : "Ajouter un domaine de confiance",
+ "Sending..." : "Envoi en cours...",
+ "All" : "Tous",
+ "Please wait...." : "Veuillez patienter…",
+ "Error while disabling app" : "Erreur lors de la désactivation de l'application",
+ "Disable" : "Désactiver",
+ "Enable" : "Activer",
+ "Error while enabling app" : "Erreur lors de l'activation de l'application",
+ "Updating...." : "Mise à jour...",
+ "Error while updating app" : "Erreur lors de la mise à jour de l'application",
+ "Updated" : "Mise à jour effectuée avec succès",
+ "Uninstalling ...." : "Désintallation...",
+ "Error while uninstalling app" : "Erreur lors de la désinstallation de l'application",
+ "Uninstall" : "Désinstaller",
+ "Select a profile picture" : "Selectionner une photo de profil ",
+ "Very weak password" : "Mot de passe de très faible sécurité",
+ "Weak password" : "Mot de passe de faible sécurité",
+ "So-so password" : "Mot de passe de sécurité tout juste acceptable",
+ "Good password" : "Mot de passe de sécurité suffisante",
+ "Strong password" : "Mot de passe de forte sécurité",
+ "Valid until {date}" : "Valide jusqu'au {date}",
+ "Delete" : "Supprimer",
+ "Decrypting files... Please wait, this can take some time." : "Déchiffrement en cours... Cela peut prendre un certain temps.",
+ "Delete encryption keys permanently." : "Supprimer définitivement les clés de chiffrement",
+ "Restore encryption keys." : "Restaurer les clés de chiffrement",
+ "Groups" : "Groupes",
+ "Unable to delete {objName}" : "Impossible de supprimer {objName}",
+ "Error creating group" : "Erreur lors de la création du groupe",
+ "A valid group name must be provided" : "Vous devez spécifier un nom de groupe valide",
+ "deleted {groupName}" : "{groupName} supprimé",
+ "undo" : "annuler",
+ "no group" : "Aucun groupe",
+ "never" : "jamais",
+ "deleted {userName}" : "{userName} supprimé",
+ "add group" : "ajouter un groupe",
+ "A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi",
+ "Error creating user" : "Erreur lors de la création de l'utilisateur",
+ "A valid password must be provided" : "Un mot de passe valide doit être saisi",
+ "Warning: Home directory for user \"{user}\" already exists" : "Attention : Le dossier Home pour l'utilisateur \"{user}\" existe déjà",
+ "__language_name__" : "Français",
+ "Personal Info" : "Informations personnelles",
+ "SSL root certificates" : "Certificats racine SSL",
+ "Encryption" : "Chiffrement",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Tout (erreurs fatales, erreurs, avertissements, informations, debogage)",
+ "Info, warnings, errors and fatal issues" : "Informations, avertissements, erreurs et erreurs fatales",
+ "Warnings, errors and fatal issues" : "Avertissements, erreurs et erreurs fatales",
+ "Errors and fatal issues" : "Erreurs et erreurs fatales",
+ "Fatal issues only" : "Erreurs fatales uniquement",
+ "None" : "Aucun",
+ "Login" : "Connexion",
+ "Plain" : "En clair",
+ "NT LAN Manager" : "Gestionnaire du réseau NT",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Avertissement de sécurité",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Vous accédez à %s via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS à la place.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web.",
+ "Setup Warning" : "Avertissement, problème de configuration",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP est apparemment configuré pour supprimer les blocs de documentation internes. Cela rendra plusieurs applications de base inaccessibles.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "La raison est probablement l'utilisation d'un cache / accélérateur tel que Zend OPcache ou eAccelerator.",
+ "Database Performance Info" : "Performances de la base de données",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite est utilisée comme base de donnée. Pour des installations plus volumineuse, nous vous conseillons de changer ce réglage. Pour migrer vers une autre base de donnée, utilisez la commande : \"occ db:convert-type\"",
+ "Module 'fileinfo' missing" : "Module 'fileinfo' manquant",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir de meilleurs résultats pour la détection des types de fichiers.",
+ "Your PHP version is outdated" : "Votre version de PHP est trop ancienne",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Votre version de PHP est trop ancienne. Nous vous recommandons fortement de migrer vers une version 5.3.8 ou plus récente encore, car les versions antérieures sont réputées problématiques. Il est possible que cette installation ne fonctionne pas correctement.",
+ "PHP charset is not set to UTF-8" : "Le jeu de caractères PHP n'est pas réglé sur UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "Le jeu de caractères PHP n'est pas réglé sur UTF-8. Ceci peut entraîner des problèmes majeurs avec les noms de fichiers contenant des caractère non-ASCII. Nous recommandons fortement de changer la valeur de 'default_charset' dans php.ini par 'UTF-8'.",
+ "Locale not working" : "Localisation non fonctionnelle",
+ "System locale can not be set to a one which supports UTF-8." : "Les paramètres régionaux ne peuvent pas être configurés avec prise en charge d'UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Cela signifie qu'il pourrait y avoir des problèmes avec certains caractères dans les noms de fichier.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nous vous recommandons d'installer sur votre système les paquets requis à la prise en charge de l'un des paramètres régionaux suivants : %s",
+ "URL generation in notification emails" : "Génération d'URL dans les mails de notification",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwritewebroot\" de votre fichier config.php avec le chemin de la racine de votre installation (suggéré : \"%s\")",
+ "Connectivity Checks" : "Vérification de la connectivité",
+ "No problems found" : "Aucun problème trouvé",
+ "Please double check the installation guides ." : "Veuillez vous référer au guide d'installation .",
+ "Last cron was executed at %s." : "Le dernier cron s'est exécuté à la date suivante : %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Le dernier cron s'est exécuté à la date suivante : %s. Cela fait plus d'une heure, quelque chose a du mal se passer.",
+ "Cron was not executed yet!" : "Le cron n'a pas encore été exécuté !",
+ "Execute one task with each page loaded" : "Exécute une tâche à chaque chargement de page",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php est enregistré en tant que service webcron pour appeler cron.php toutes les 15 minutes via http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.",
+ "Allow apps to use the Share API" : "Autoriser les applications à utiliser l'API de partage",
+ "Allow users to share via link" : "Autoriser les utilisateurs à partager par lien",
+ "Enforce password protection" : "Obliger la protection par mot de passe",
+ "Allow public uploads" : "Autoriser les téléversements publics",
+ "Set default expiration date" : "Spécifier la date d'expiration par défaut",
+ "Expire after " : "Expiration après ",
+ "days" : "jours",
+ "Enforce expiration date" : "Imposer la date d'expiration",
+ "Allow resharing" : "Autoriser le repartage",
+ "Restrict users to only share with users in their groups" : "N'autoriser les partages qu'entre membres de même groupes",
+ "Allow users to send mail notification for shared files" : "Autoriser les utilisateurs à envoyer des notifications par courriel concernant les partages",
+ "Exclude groups from sharing" : "Empêcher certains groupes de partager",
+ "These groups will still be able to receive shares, but not to initiate them." : "Ces groupes ne pourront plus initier de partage, mais ils pourront toujours rejoindre les partages faits par d'autres. ",
+ "Enforce HTTPS" : "Forcer HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Forcer les clients à se connecter à %s via une connexion chiffrée.",
+ "Enforce HTTPS for subdomains" : "Forcer HTTPS pour les sous domaines",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Force les clients à se connecter à %s et aux sous domaines via une connexion chiffrée.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Veuillez vous connecter à cette instance %s via HTTPS pour activer ou désactiver SSL.",
+ "This is used for sending out notifications." : "Ceci est utilisé pour l'envoi des notifications.",
+ "Send mode" : "Mode d'envoi",
+ "From address" : "Adresse source",
+ "mail" : "courriel",
+ "Authentication method" : "Méthode d'authentification",
+ "Authentication required" : "Authentification requise",
+ "Server address" : "Adresse du serveur",
+ "Port" : "Port",
+ "Credentials" : "Informations d'identification",
+ "SMTP Username" : "Nom d'utilisateur SMTP",
+ "SMTP Password" : "Mot de passe SMTP",
+ "Store credentials" : "Enregistrer les identifiants",
+ "Test email settings" : "Tester les paramètres e-mail",
+ "Send email" : "Envoyer un e-mail",
+ "Log level" : "Niveau de log",
+ "More" : "Plus",
+ "Less" : "Moins",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the AGPL ." : "Développé par la communauté ownCloud , le code source est publié sous license AGPL .",
+ "More apps" : "Plus d'applications",
+ "Add your app" : "Ajouter votre application",
+ "by" : "par",
+ "licensed" : "Sous licence",
+ "Documentation:" : "Documentation :",
+ "User Documentation" : "Documentation utilisateur",
+ "Admin Documentation" : "Documentation administrateur",
+ "Update to %s" : "Mettre à niveau vers la version %s",
+ "Enable only for specific groups" : "Activer uniquement pour certains groupes",
+ "Uninstall App" : "Désinstaller l'application",
+ "Administrator Documentation" : "Documentation administrateur",
+ "Online Documentation" : "Documentation en ligne",
+ "Forum" : "Forum",
+ "Bugtracker" : "Suivi de bugs",
+ "Commercial Support" : "Support commercial",
+ "Get the apps to sync your files" : "Obtenez les applications de synchronisation de vos fichiers",
+ "If you want to support the project\n\t\tjoin development \n\t\tor\n\t\tspread the word !" : "Si voulez soutenir le projet, \n\t\trejoignez le développement \n\t\tou \n\t\tparlez-en !",
+ "Show First Run Wizard again" : "Revoir le premier lancement de l'installeur",
+ "You have used %s of the available %s " : "Vous avez utilisé %s des %s disponibles",
+ "Password" : "Mot de passe",
+ "Your password was changed" : "Votre mot de passe a été changé",
+ "Unable to change your password" : "Impossible de changer votre mot de passe",
+ "Current password" : "Mot de passe actuel",
+ "New password" : "Nouveau mot de passe",
+ "Change password" : "Changer de mot de passe",
+ "Full Name" : "Nom complet",
+ "Email" : "Adresse mail",
+ "Your email address" : "Votre adresse e-mail",
+ "Fill in an email address to enable password recovery and receive notifications" : "Saisissez votre adresse mail pour permettre la réinitialisation du mot de passe et la réception des notifications",
+ "Profile picture" : "Photo de profil",
+ "Upload new" : "Nouvelle depuis votre ordinateur",
+ "Select new from Files" : "Nouvelle depuis les Fichiers",
+ "Remove image" : "Supprimer l'image",
+ "Either png or jpg. Ideally square but you will be able to crop it." : "Format png ou jpg. Idéalement carrée, mais vous pourrez la recadrer.",
+ "Your avatar is provided by your original account." : "Votre avatar est fourni par votre compte original.",
+ "Cancel" : "Annuler",
+ "Choose as profile image" : "Choisir en tant que photo de profil ",
+ "Language" : "Langue",
+ "Help translate" : "Aidez à traduire",
+ "Common Name" : "Nom d'usage",
+ "Valid until" : "Valide jusqu'à",
+ "Issued By" : "Délivré par",
+ "Valid until %s" : "Valide jusqu'à %s",
+ "Import Root Certificate" : "Importer un certificat racine",
+ "The encryption app is no longer enabled, please decrypt all your files" : "L'app de chiffrement n’est plus activée, veuillez déchiffrer tous vos fichiers",
+ "Log-in password" : "Mot de passe de connexion",
+ "Decrypt all Files" : "Déchiffrer tous les fichiers",
+ "Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." : "Vos clés de chiffrement ont été déplacées dans l'emplacement de backup. Si quelque chose devait mal se passer, vous pouvez restaurer les clés. Choisissez la suppression permanente seulement si vous êtes sûr que tous les fichiers ont été déchiffrés correctement.",
+ "Restore Encryption Keys" : "Restaurer les clés de chiffrement",
+ "Delete Encryption Keys" : "Supprimer les clés de chiffrement",
+ "Show storage location" : "Afficher l'emplacement du stockage",
+ "Show last log in" : "Montrer la dernière identification",
+ "Username" : "Nom d'utilisateur",
+ "Create" : "Créer",
+ "Admin Recovery Password" : "Récupération du mot de passe administrateur",
+ "Enter the recovery password in order to recover the users files during password change" : "Entrez le mot de passe de récupération pour récupérer les fichiers utilisateurs pendant le changement de mot de passe",
+ "Search Users" : "Recherche des utilisateurs",
+ "Add Group" : "Ajouter un groupe",
+ "Group" : "Groupe",
+ "Everyone" : "Tout le monde",
+ "Admins" : "Administrateurs",
+ "Default Quota" : "Quota par défaut",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Veuillez entrer le quota de stockage (ex. \"512 MB\" ou \"12 GB\")",
+ "Unlimited" : "Illimité",
+ "Other" : "Autre",
+ "Group Admin for" : "Administrateur de groupe pour",
+ "Quota" : "Quota",
+ "Storage Location" : "Emplacement du Stockage",
+ "Last Login" : "Dernière Connexion",
+ "change full name" : "Modifier le nom complet",
+ "set new password" : "Changer le mot de passe",
+ "Default" : "Défaut"
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
new file mode 100644
index 00000000000..1bc80fc4d01
--- /dev/null
+++ b/settings/l10n/fr.json
@@ -0,0 +1,240 @@
+{ "translations": {
+ "Security & Setup Warnings" : "Alertes de sécurité ou de configuration",
+ "Cron" : "Cron",
+ "Sharing" : "Partage",
+ "Security" : "Sécurité",
+ "Email Server" : "Serveur mail",
+ "Log" : "Log",
+ "Authentication error" : "Erreur d'authentification",
+ "Your full name has been changed." : "Votre nom complet a été modifié.",
+ "Unable to change full name" : "Impossible de changer le nom complet",
+ "Group already exists" : "Ce groupe existe déjà",
+ "Unable to add group" : "Impossible d'ajouter le groupe",
+ "Files decrypted successfully" : "Fichiers décryptés avec succès",
+ "Couldn't decrypt your files, please check your owncloud.log or ask your administrator" : "Impossible de décrypter vos fichiers, veuillez vérifier votre owncloud.log ou demander à votre administrateur",
+ "Couldn't decrypt your files, check your password and try again" : "Impossible de décrypter vos fichiers, vérifiez votre mot de passe et essayez à nouveau",
+ "Encryption keys deleted permanently" : "Clés de chiffrement définitivement supprimées.",
+ "Couldn't permanently delete your encryption keys, please check your owncloud.log or ask your administrator" : "Impossible de supprimer définitivement vos clés de chiffrement, merci de regarder journal owncloud.log ou de demander à votre administrateur",
+ "Couldn't remove app." : "Impossible de supprimer l'application.",
+ "Email saved" : "E-mail sauvegardé",
+ "Invalid email" : "E-mail invalide",
+ "Unable to delete group" : "Impossible de supprimer le groupe",
+ "Unable to delete user" : "Impossible de supprimer l'utilisateur",
+ "Backups restored successfully" : "La sauvegarde a été restaurée avec succès",
+ "Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" : "Impossible de restaurer vos clés de chiffrement, merci de regarder journal owncloud.log ou de demander à votre administrateur",
+ "Language changed" : "Langue changée",
+ "Invalid request" : "Requête invalide",
+ "Admins can't remove themself from the admin group" : "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin",
+ "Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s",
+ "Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s",
+ "Couldn't update app." : "Impossible de mettre à jour l'application",
+ "Wrong password" : "Mot de passe incorrect",
+ "No user supplied" : "Aucun utilisateur fourni",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Veuillez fournir un mot de passe administrateur de récupération de données, sinon toutes les données de l'utilisateur seront perdues",
+ "Wrong admin recovery password. Please check the password and try again." : "Mot de passe administrateur de récupération de données non valable. Veuillez vérifier le mot de passe et essayer à nouveau.",
+ "Back-end doesn't support password change, but the users encryption key was successfully updated." : "L'infrastructure d'arrière-plan ne permet pas la modification de mot de passe, mais la clef de chiffrement des utilisateurs a été mise à jour avec succès.",
+ "Unable to change password" : "Impossible de modifier le mot de passe",
+ "Enabled" : "Activées",
+ "Not enabled" : "Désactivées",
+ "Recommended" : "Recommandées",
+ "Saved" : "Sauvegardé",
+ "test email settings" : "tester les paramètres d'e-mail",
+ "If you received this email, the settings seem to be correct." : "Si vous recevez cet email, c'est que les paramètres sont corrects",
+ "A problem occurred while sending the email. Please revise your settings." : "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres.",
+ "Email sent" : "Email envoyé",
+ "You need to set your user email before being able to send test emails." : "Vous devez configurer votre e-mail d'utilisateur avant de pouvoir envoyer des e-mails de test.",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?",
+ "Add trusted domain" : "Ajouter un domaine de confiance",
+ "Sending..." : "Envoi en cours...",
+ "All" : "Tous",
+ "Please wait...." : "Veuillez patienter…",
+ "Error while disabling app" : "Erreur lors de la désactivation de l'application",
+ "Disable" : "Désactiver",
+ "Enable" : "Activer",
+ "Error while enabling app" : "Erreur lors de l'activation de l'application",
+ "Updating...." : "Mise à jour...",
+ "Error while updating app" : "Erreur lors de la mise à jour de l'application",
+ "Updated" : "Mise à jour effectuée avec succès",
+ "Uninstalling ...." : "Désintallation...",
+ "Error while uninstalling app" : "Erreur lors de la désinstallation de l'application",
+ "Uninstall" : "Désinstaller",
+ "Select a profile picture" : "Selectionner une photo de profil ",
+ "Very weak password" : "Mot de passe de très faible sécurité",
+ "Weak password" : "Mot de passe de faible sécurité",
+ "So-so password" : "Mot de passe de sécurité tout juste acceptable",
+ "Good password" : "Mot de passe de sécurité suffisante",
+ "Strong password" : "Mot de passe de forte sécurité",
+ "Valid until {date}" : "Valide jusqu'au {date}",
+ "Delete" : "Supprimer",
+ "Decrypting files... Please wait, this can take some time." : "Déchiffrement en cours... Cela peut prendre un certain temps.",
+ "Delete encryption keys permanently." : "Supprimer définitivement les clés de chiffrement",
+ "Restore encryption keys." : "Restaurer les clés de chiffrement",
+ "Groups" : "Groupes",
+ "Unable to delete {objName}" : "Impossible de supprimer {objName}",
+ "Error creating group" : "Erreur lors de la création du groupe",
+ "A valid group name must be provided" : "Vous devez spécifier un nom de groupe valide",
+ "deleted {groupName}" : "{groupName} supprimé",
+ "undo" : "annuler",
+ "no group" : "Aucun groupe",
+ "never" : "jamais",
+ "deleted {userName}" : "{userName} supprimé",
+ "add group" : "ajouter un groupe",
+ "A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi",
+ "Error creating user" : "Erreur lors de la création de l'utilisateur",
+ "A valid password must be provided" : "Un mot de passe valide doit être saisi",
+ "Warning: Home directory for user \"{user}\" already exists" : "Attention : Le dossier Home pour l'utilisateur \"{user}\" existe déjà",
+ "__language_name__" : "Français",
+ "Personal Info" : "Informations personnelles",
+ "SSL root certificates" : "Certificats racine SSL",
+ "Encryption" : "Chiffrement",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "Tout (erreurs fatales, erreurs, avertissements, informations, debogage)",
+ "Info, warnings, errors and fatal issues" : "Informations, avertissements, erreurs et erreurs fatales",
+ "Warnings, errors and fatal issues" : "Avertissements, erreurs et erreurs fatales",
+ "Errors and fatal issues" : "Erreurs et erreurs fatales",
+ "Fatal issues only" : "Erreurs fatales uniquement",
+ "None" : "Aucun",
+ "Login" : "Connexion",
+ "Plain" : "En clair",
+ "NT LAN Manager" : "Gestionnaire du réseau NT",
+ "SSL" : "SSL",
+ "TLS" : "TLS",
+ "Security Warning" : "Avertissement de sécurité",
+ "You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Vous accédez à %s via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS à la place.",
+ "Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web.",
+ "Setup Warning" : "Avertissement, problème de configuration",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP est apparemment configuré pour supprimer les blocs de documentation internes. Cela rendra plusieurs applications de base inaccessibles.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "La raison est probablement l'utilisation d'un cache / accélérateur tel que Zend OPcache ou eAccelerator.",
+ "Database Performance Info" : "Performances de la base de données",
+ "SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: 'occ db:convert-type'" : "SQLite est utilisée comme base de donnée. Pour des installations plus volumineuse, nous vous conseillons de changer ce réglage. Pour migrer vers une autre base de donnée, utilisez la commande : \"occ db:convert-type\"",
+ "Module 'fileinfo' missing" : "Module 'fileinfo' manquant",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir de meilleurs résultats pour la détection des types de fichiers.",
+ "Your PHP version is outdated" : "Votre version de PHP est trop ancienne",
+ "Your PHP version is outdated. We strongly recommend to update to 5.3.8 or newer because older versions are known to be broken. It is possible that this installation is not working correctly." : "Votre version de PHP est trop ancienne. Nous vous recommandons fortement de migrer vers une version 5.3.8 ou plus récente encore, car les versions antérieures sont réputées problématiques. Il est possible que cette installation ne fonctionne pas correctement.",
+ "PHP charset is not set to UTF-8" : "Le jeu de caractères PHP n'est pas réglé sur UTF-8",
+ "PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'." : "Le jeu de caractères PHP n'est pas réglé sur UTF-8. Ceci peut entraîner des problèmes majeurs avec les noms de fichiers contenant des caractère non-ASCII. Nous recommandons fortement de changer la valeur de 'default_charset' dans php.ini par 'UTF-8'.",
+ "Locale not working" : "Localisation non fonctionnelle",
+ "System locale can not be set to a one which supports UTF-8." : "Les paramètres régionaux ne peuvent pas être configurés avec prise en charge d'UTF-8.",
+ "This means that there might be problems with certain characters in file names." : "Cela signifie qu'il pourrait y avoir des problèmes avec certains caractères dans les noms de fichier.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nous vous recommandons d'installer sur votre système les paquets requis à la prise en charge de l'un des paramètres régionaux suivants : %s",
+ "URL generation in notification emails" : "Génération d'URL dans les mails de notification",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwritewebroot\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwritewebroot\" de votre fichier config.php avec le chemin de la racine de votre installation (suggéré : \"%s\")",
+ "Connectivity Checks" : "Vérification de la connectivité",
+ "No problems found" : "Aucun problème trouvé",
+ "Please double check the installation guides ." : "Veuillez vous référer au guide d'installation .",
+ "Last cron was executed at %s." : "Le dernier cron s'est exécuté à la date suivante : %s.",
+ "Last cron was executed at %s. This is more than an hour ago, something seems wrong." : "Le dernier cron s'est exécuté à la date suivante : %s. Cela fait plus d'une heure, quelque chose a du mal se passer.",
+ "Cron was not executed yet!" : "Le cron n'a pas encore été exécuté !",
+ "Execute one task with each page loaded" : "Exécute une tâche à chaque chargement de page",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php est enregistré en tant que service webcron pour appeler cron.php toutes les 15 minutes via http.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.",
+ "Allow apps to use the Share API" : "Autoriser les applications à utiliser l'API de partage",
+ "Allow users to share via link" : "Autoriser les utilisateurs à partager par lien",
+ "Enforce password protection" : "Obliger la protection par mot de passe",
+ "Allow public uploads" : "Autoriser les téléversements publics",
+ "Set default expiration date" : "Spécifier la date d'expiration par défaut",
+ "Expire after " : "Expiration après ",
+ "days" : "jours",
+ "Enforce expiration date" : "Imposer la date d'expiration",
+ "Allow resharing" : "Autoriser le repartage",
+ "Restrict users to only share with users in their groups" : "N'autoriser les partages qu'entre membres de même groupes",
+ "Allow users to send mail notification for shared files" : "Autoriser les utilisateurs à envoyer des notifications par courriel concernant les partages",
+ "Exclude groups from sharing" : "Empêcher certains groupes de partager",
+ "These groups will still be able to receive shares, but not to initiate them." : "Ces groupes ne pourront plus initier de partage, mais ils pourront toujours rejoindre les partages faits par d'autres. ",
+ "Enforce HTTPS" : "Forcer HTTPS",
+ "Forces the clients to connect to %s via an encrypted connection." : "Forcer les clients à se connecter à %s via une connexion chiffrée.",
+ "Enforce HTTPS for subdomains" : "Forcer HTTPS pour les sous domaines",
+ "Forces the clients to connect to %s and subdomains via an encrypted connection." : "Force les clients à se connecter à %s et aux sous domaines via une connexion chiffrée.",
+ "Please connect to your %s via HTTPS to enable or disable the SSL enforcement." : "Veuillez vous connecter à cette instance %s via HTTPS pour activer ou désactiver SSL.",
+ "This is used for sending out notifications." : "Ceci est utilisé pour l'envoi des notifications.",
+ "Send mode" : "Mode d'envoi",
+ "From address" : "Adresse source",
+ "mail" : "courriel",
+ "Authentication method" : "Méthode d'authentification",
+ "Authentication required" : "Authentification requise",
+ "Server address" : "Adresse du serveur",
+ "Port" : "Port",
+ "Credentials" : "Informations d'identification",
+ "SMTP Username" : "Nom d'utilisateur SMTP",
+ "SMTP Password" : "Mot de passe SMTP",
+ "Store credentials" : "Enregistrer les identifiants",
+ "Test email settings" : "Tester les paramètres e-mail",
+ "Send email" : "Envoyer un e-mail",
+ "Log level" : "Niveau de log",
+ "More" : "Plus",
+ "Less" : "Moins",
+ "Version" : "Version",
+ "Developed by the ownCloud community , the source code is licensed under the