diff options
Diffstat (limited to 'src')
28 files changed, 310 insertions, 145 deletions
diff --git a/src/locales/ar.json b/src/locales/ar.json index 4d9eb111..1b9271d1 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -7,11 +7,12 @@ "Meno25", "Test Create account", "محمد أحمد عبد الفتاح", - "Haytham morsy" + "Haytham morsy", + "ديفيد" ] }, "index.newPad": "باد جديد", - "index.createOpenPad": "أو صنع/فتح باد بوضع إسمه:", + "index.createOpenPad": "أو صنع/فتح باد بوضع اسمه:", "pad.toolbar.bold.title": "سميك (Ctrl-B)", "pad.toolbar.italic.title": "مائل (Ctrl-I)", "pad.toolbar.underline.title": "تسطير (Ctrl-U)", @@ -31,7 +32,7 @@ "pad.toolbar.showusers.title": "عرض المستخدمين على هذا الباد", "pad.colorpicker.save": "تسجيل", "pad.colorpicker.cancel": "إلغاء", - "pad.loading": "جاري التحميل...", + "pad.loading": "جارٍ التحميل...", "pad.noCookie": "الكوكيز غير متاحة. الرجاء السماح بتحميل الكوكيز على متصفحك!", "pad.passwordRequired": "تحتاج إلى كلمة مرور للوصول إلى هذا الباد", "pad.permissionDenied": "ليس لديك إذن لدخول هذا الباد", @@ -64,24 +65,24 @@ "pad.modals.forcereconnect": "فرض إعادة الاتصال", "pad.modals.userdup": "مفتوح في نافذة أخرى", "pad.modals.userdup.explanation": "يبدو أن هذا الباد تم فتحه في أكثر من نافذة متصفح في هذا الحاسوب.", - "pad.modals.userdup.advice": "إعادة الاتصال لإستعمال هذه النافذة بدلاً من الاخرى.", + "pad.modals.userdup.advice": "إعادة الاتصال لاستعمال هذه النافذة بدلاً من الأخرى.", "pad.modals.unauth": "غير مخول", - "pad.modals.unauth.explanation": "لقد تغيرت الأذونات الخاصة بك أثناء عرض هذه الصفحة. حاول إعادة الاتصال.", + "pad.modals.unauth.explanation": "لقد تغيرت الأذونات الخاصة بك أثناء عرض هذه الصفحة. أعد محاولة الاتصال.", "pad.modals.looping.explanation": "هناك مشاكل في الاتصال مع ملقم التزامن.", "pad.modals.looping.cause": "ربما كنت متصلاً من خلال وكيل أو جدار حماية غير متوافق.", "pad.modals.initsocketfail": "لا يمكن الوصول إلى الخادم", "pad.modals.initsocketfail.explanation": "تعذر الاتصال بخادم المزامنة.", - "pad.modals.initsocketfail.cause": "وهذا على الأرجح بسبب مشكلة في المستعرض الخاص بك أو الاتصال بإنترنت.", + "pad.modals.initsocketfail.cause": "هذا على الأرجح بسبب مشكلة في المستعرض الخاص بك أو الاتصال بإنترنت.", "pad.modals.slowcommit.explanation": "الخادم لا يستجيب.", "pad.modals.slowcommit.cause": "يمكن أن يكون هذا بسبب مشاكل في الاتصال بالشبكة.", - "pad.modals.badChangeset.explanation": "لقد صنفت إحدى عمليات التحرير التي قمت بها كعملية غير مسموح بها من قبل ملقم التزامن.", + "pad.modals.badChangeset.explanation": "لقد صُنفَت إحدى عمليات التحرير التي قمت بها كعملية غير مسموح بها من قبل ملقم التزامن.", "pad.modals.badChangeset.cause": "يمكن أن يكون هذا بسبب تكوين ملقم خاطئ أو بسبب سلوك آخر غير متوقع. يرجى الاتصال بمسؤول الخدمة إذا كنت تعتقد بأن هناك خطأ ما. حاول إعادة الاتصال لمتابعة التحرير.", "pad.modals.corruptPad.explanation": "الباد الذي تحاول الوصول إليه تالف.", "pad.modals.corruptPad.cause": "قد يكون هذا بسبب تكوين ملقم خاطئ أو بسبب سلوك آخر غير متوقع. يرجى الاتصال بمسؤول الخدمة.", "pad.modals.deleted": "محذوف.", "pad.modals.deleted.explanation": "تمت إزالة هذا الباد", "pad.modals.disconnected": "لم تعد متصلا.", - "pad.modals.disconnected.explanation": "تم فقدان الإتصال بالخادم", + "pad.modals.disconnected.explanation": "تم فقدان الاتصال بالخادم", "pad.modals.disconnected.cause": "قد يكون الخادم غير متوفر. يرجى إعلام مسؤول الخدمة إذا كان هذا لا يزال يحدث.", "pad.share": "شارك هذه الباد", "pad.share.readonly": "للقراءة فقط", @@ -98,7 +99,7 @@ "timeslider.exportCurrent": "تصدير النسخة الحالية ك:", "timeslider.version": "إصدار {{version}}", "timeslider.saved": "محفوظ {{month}} {{day}}, {{year}}", - "timeslider.playPause": "تشغيل / إيقاف مؤقت محتويات الباد", + "timeslider.playPause": "تشغيل / إيقاف مؤقت لمحتويات الباد", "timeslider.backRevision": "عد إلى مراجعة في هذه الباد", "timeslider.forwardRevision": "انطلق إلى مراجعة في هذه الباد", "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", @@ -127,7 +128,7 @@ "pad.impexp.importing": "الاستيراد...", "pad.impexp.confirmimport": "استيراد ملف سيؤدي للكتابة فوق النص الحالي بالباد. هل أنت متأكد من أنك تريد المتابعة؟", "pad.impexp.convertFailed": "لم نتمكن من استيراد هذا الملف. يرجى استخدام تنسيق مستند مختلف، أو النسخ واللصق يدوياً", - "pad.impexp.padHasData": "لا يمكننا استيراد هذا الملف لأن هذه اللوحة تم بالفعل تغييره, الرجاء استيراد لوحة جديد", + "pad.impexp.padHasData": "لا يمكننا استيراد هذا الملف لأن هذا الباد تم بالفعل تغييره; الرجاء استيراد باد جديد", "pad.impexp.uploadFailed": "فشل التحميل، الرجاء المحاولة مرة أخرى", "pad.impexp.importfailed": "فشل الاستيراد", "pad.impexp.copypaste": "الرجاء نسخ/لصق", diff --git a/src/locales/az.json b/src/locales/az.json index e27beaf8..48f0f841 100644 --- a/src/locales/az.json +++ b/src/locales/az.json @@ -97,6 +97,8 @@ "timeslider.version": "Versiya {{version}}", "timeslider.saved": "Saxlanıldı {{day}} {{month}}, {{year}}", "timeslider.playPause": "Geri oxutma / Lövhə Məzmunlarını Dayandır", + "timeslider.backRevision": "Sənədin bundan əvvəlki bir versiyasına qayıtmaq", + "timeslider.forwardRevision": "Sənədin bundan sonrakı bir versiyasına qayıtmaq", "timeslider.dateformat": "{{day}} {{month}}, {{year}} {{hours}}:{{minutes}}:{{seconds}}", "timeslider.month.january": "Yanvar", "timeslider.month.february": "Fevral", diff --git a/src/locales/azb.json b/src/locales/azb.json index 15d2e14b..f8d8f93b 100644 --- a/src/locales/azb.json +++ b/src/locales/azb.json @@ -16,7 +16,7 @@ "pad.toolbar.strikethrough.title": "خط یئمیش (Ctrl+5)", "pad.toolbar.ol.title": "جوتدنمیش فهرست (Ctrl+Shift+N)", "pad.toolbar.ul.title": "جوتدنمهمیش لیست (Ctrl+Shift+L)", - "pad.toolbar.indent.title": "ایچری باتدیگی", + "pad.toolbar.indent.title": "ایچری باتما (TAB)", "pad.toolbar.unindent.title": "ائشیگه چیخدیغی (Shift+TAB)", "pad.toolbar.undo.title": "باطل ائتمک", "pad.toolbar.redo.title": "یئنی دن", @@ -30,6 +30,7 @@ "pad.colorpicker.save": "ذخیره ائت", "pad.colorpicker.cancel": "وازگئچ", "pad.loading": "یوکلنیر...", + "pad.noCookie": "کوکی تاپیلمادی. لوطفن براوزرینیزده کوکیلره ایجازه وئرین!", "pad.passwordRequired": "بو نوت دفترچه سینه ال تاپماق اوچون بیر رمزه احتیاجینیز واردیر.", "pad.permissionDenied": "بو نوت دفترچه سینه ال تاپماق اوچون ایجازه نیز یوخدور.", "pad.wrongPassword": "سیزین رمزینیز دوز دئییل", @@ -77,11 +78,13 @@ "pad.share.emebdcode": "یۇآرالی یئرلشدیرمک", "pad.chat": "چت", "pad.chat.title": "بو یادداشت دفترچهسینه چتی آچ.", + "pad.chat.loadmessages": "داها آرتیق پیام یوکله", "timeslider.pageTitle": "{{appTitle}}زمان اسلایدری", "timeslider.toolbar.returnbutton": "یادداشت دفترچهسینه قاییت.", "timeslider.toolbar.authors": "یازیچیلار", "timeslider.toolbar.authorsList": "یازیچیسیز", "timeslider.toolbar.exportlink.title": "ائشیگه آپارماق", + "timeslider.exportCurrent": "موجود نوسخه نی بو عونوانلا ائشیگه چیخارت:", "timeslider.version": "{{version}} ورژنی", "timeslider.month.january": "ژانویه", "timeslider.month.february": "فوریه", @@ -100,5 +103,9 @@ "pad.userlist.guest": "قوْناق", "pad.userlist.deny": "دانماق", "pad.userlist.approve": "اوْنایلا", - "pad.impexp.importing": "ایچری گتیریلیر..." + "pad.impexp.importbutton": "ایندی ایچری گتیر", + "pad.impexp.importing": "ایچری گتیریلیر...", + "pad.impexp.uploadFailed": "آپلود اولونمادی، یئنه چالیشین", + "pad.impexp.importfailed": "ایچری گتیرمه اولونمادی", + "pad.impexp.copypaste": "لوطفن کوپی ائدیب، یاپیشدیرین" } diff --git a/src/locales/dty.json b/src/locales/dty.json index 4eeef752..c0d439e6 100644 --- a/src/locales/dty.json +++ b/src/locales/dty.json @@ -60,13 +60,23 @@ "pad.modals.userdup.explanation": "यो प्याड येइ कम्प्युटरमी एक़ है बर्ता ब्राउजर सञ्झ्यालमी खोल्याऽ धेकीँछ।", "pad.modals.userdup.advice": "बरु यो विण्डो प्रयोग अद्दाइ दोसर्याँ जोणिय।", "pad.modals.unauth": "अनुमति नदियीयाऽ", + "pad.modals.unauth.explanation": "येइ पन्ना हेरनज्याँ तमरा अधिकार बदेलिया। दोसर्याँ जोणिन्या प्रयास अरऽ।", + "pad.modals.looping.explanation": "सिक्रोनाइजेसन सर्भर सित सञ्चार समस्या धेकिन्नाछ़।", + "pad.modals.looping.cause": "शायद तम यक असंगत फायरवाल या प्रोक्सी का माध्यम बठेइ जोणीरैछऽ।", "pad.modals.initsocketfail": "सर्भरमा पहुँच पुर्याउन नाइसकियो ।", + "pad.modals.initsocketfail.explanation": "सिङ्क्रोनाइजेसन सर्भर सित जोणीन नाइ सकियो?", + "pad.modals.initsocketfail.cause": "यो शायद तमरा ब्राउजर या इन्टरनेट जडान सित सम्बन्धित समस्याऽ कारणले होइ सकन्छ़।", "pad.modals.slowcommit.explanation": "सर्भर प्रत्युत्तर दिन्नारेन।", "pad.modals.slowcommit.cause": "यो नेटवर्क कनेक्टिविटी सङ्ङ सम्बन्धित समस्याऽ कारण ले होइसकन्छ।", + "pad.modals.badChangeset.explanation": "तमले अर्याऽ यक सम्पादन समक्रमण सर्भर हताँ अवैध वर्गीकृत अरियाऽ थ्यो।", + "pad.modals.badChangeset.cause": "यो यक गलत सर्भर विन्यास या केइ और अप्रत्याशित चालचलनाऽ कारण़ ले होइसकन्छ। यदि तमलाई यो गल्ती हो भण्ण्या लागन्छ भँण्या, कृपया सेवा व्यवस्थापकलाई सम्पर्क अरऽ। सम्पादन चालु राख्दाइ दोसर्याँ जोणिन्या प्रयास अरऽ।", + "pad.modals.corruptPad.explanation": "तमले उपयोग अद्द़ खोज्याऽ प्याड बिगण्योऽ छ।", + "pad.modals.corruptPad.cause": "यो गलत सर्भर विन्यास या केइ और नसोच्याऽ चालचलनले होइसकन्छ। कृपया सेवा व्यवस्थापकलाई सम्पर्क अरऽ।", "pad.modals.deleted": "मेटियाको", "pad.modals.deleted.explanation": "यो प्याड हटाइसक्याको छ ।", "pad.modals.disconnected": "तमरो जडान अवरुद्ध भयो ।", "pad.modals.disconnected.explanation": "तमरो सर्भरसितको जडान अवरुद्ध भयो", + "pad.modals.disconnected.cause": "सर्भर अनुपलब्ध होइसकन्छ। यदि यो हुनोइ रयाबर कृपया सेवा व्यवस्थापकलाई सूचित अरऽ।", "pad.share": "यस प्यडलाई बाड्न्या", "pad.share.readonly": "पड्या मात्तरै", "pad.share.link": "लिङ्क", @@ -109,6 +119,9 @@ "pad.editbar.clearcolors": "सङताइ कागताजमी है लेखक रङ्ङअन साप अद्द्या?", "pad.impexp.importbutton": "ऐलै आयार अरऽ", "pad.impexp.importing": "आयात अद्दाछ़...", + "pad.impexp.confirmimport": "फाइल आयात़ ले प्याडओ अइलओ पाठ बदेलिन्या हो। तम ऐतिऱ बड्ड चाहन्छ भणिबर पक्का छऽ?", + "pad.impexp.convertFailed": "एइ फाइललाई आयात अद्द नाइसक्यो। कृपया जुदोइ कागजात फर्याट प्रयोग अरऽ या नकल पेस्ट अरऽ", + "pad.impexp.padHasData": "हम एइ फाइलाई आयात अद्दाइ असमर्थ छौँ क्याइकि एइ प्याडमी पैली अरीयाऽ फेलबदेल छन्, कृपया नयाँ प्याडमी आयात अरऽ", "pad.impexp.uploadFailed": "अपलोड असफल, कृपया दोसर्याँ प्रयास अर:", "pad.impexp.importfailed": "आयात असफल", "pad.impexp.copypaste": "कृपया नकल सार अर:", diff --git a/src/locales/eo.json b/src/locales/eo.json index c4526728..786d3bbe 100644 --- a/src/locales/eo.json +++ b/src/locales/eo.json @@ -3,7 +3,8 @@ "authors": [ "Eliovir", "Mschmitt", - "Objectivesea" + "Objectivesea", + "Robin van der Vliet" ] }, "index.newPad": "Nova Teksto", @@ -120,7 +121,7 @@ "pad.userlist.approve": "Aprobi", "pad.editbar.clearcolors": "Forigi kolorojn de aŭtoreco en la tuta dokumento?", "pad.impexp.importbutton": "Enporti Nun", - "pad.impexp.importing": "Enportanta...", + "pad.impexp.importing": "Enportante...", "pad.impexp.confirmimport": "Enporti dosieron superskribos la nunan tekston en la redaktilo. Ĉu vi certe volas daŭrigi?", "pad.impexp.convertFailed": "Ni ne kapablis enporti tiun dosieron. Bonvolu uzi alian dokumentformaton aŭ permane kopii kaj alglui.", "pad.impexp.padHasData": "Ni ne kapablis enporti tiun dosieron ĉar la teksto jam estas ŝanĝita. Bonvolu enporti en novan tekston.", diff --git a/src/locales/hy.json b/src/locales/hy.json new file mode 100644 index 00000000..672905c5 --- /dev/null +++ b/src/locales/hy.json @@ -0,0 +1,58 @@ +{ + "@metadata": { + "authors": [ + "Kareyac" + ] + }, + "pad.toolbar.underline.title": "ընդգծելով (Ctrl-U)", + "pad.toolbar.undo.title": "Չեղարկել (Ctrl-Z)", + "pad.toolbar.redo.title": "Վերադարձնել (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Մաքրել փաստաթղթի գույներ (Ctrl+Shift+C)", + "pad.toolbar.savedRevision.title": "Պահպանել տարբերակը", + "pad.toolbar.settings.title": "Կարգավորումներ", + "pad.toolbar.embed.title": "Կիսվել և ներդնել այդ փաստաթուղթը", + "pad.toolbar.showusers.title": "Ցույց տալ մասնակիցներին այս փաստաթղթում", + "pad.colorpicker.save": "Պահպանել", + "pad.colorpicker.cancel": "Չեղարկել", + "pad.loading": "Բեռնվում է…", + "pad.wrongPassword": "Սխալ գաղտնաբառ", + "pad.settings.myView": "Իմ տեսարան", + "pad.settings.rtlcheck": "Կարդալ բովանդակությունը աջից ձախ", + "pad.settings.fontType": "Տառատեսակի տեսակը", + "pad.settings.globalView": "Ընդհանուր տեսքը", + "pad.settings.language": "Լեզու", + "pad.importExport.import_export": "Ներմուծում/արտահանում", + "pad.importExport.import": "Բեռնել ցանկացած տեքստային ֆայլը կամ փաստաթուղթ", + "pad.importExport.importSuccessful": "Հաջողություն", + "pad.importExport.export": "Արտահանել ընթացիկ փաստաթուղթ է որպես", + "pad.importExport.exportplain": "Պարզ տեքստ", + "pad.importExport.exportpdf": "PDF", + "pad.modals.connected": "Կապված է", + "pad.modals.forcereconnect": "Հարկադիր վերամիավորել", + "pad.modals.userdup": "Բաց է մյուս պատուհանում", + "pad.modals.initsocketfail": "Սերվերը անհասանելի է ։", + "pad.modals.slowcommit.explanation": "Սերվերը չի պատասխանում։", + "pad.modals.deleted": "Ջնջված է", + "pad.share.readonly": "Միայն կարդալու", + "pad.share.link": "Հղում", + "timeslider.toolbar.authors": "Հեղինակներ", + "timeslider.month.january": "Հունվար", + "timeslider.month.february": "Փետրվար", + "timeslider.month.march": "Մարտ", + "timeslider.month.april": "Ապրիլ", + "timeslider.month.may": "Մայիս", + "timeslider.month.june": "Հունիս", + "timeslider.month.july": "Հուլիս", + "timeslider.month.august": "Օգոստոս", + "timeslider.month.september": "Սեպտեմբեր", + "timeslider.month.october": "Հոկտեմբեր", + "timeslider.month.november": "Նոյեմբեր", + "timeslider.month.december": "Դեկտեմբեր", + "pad.userlist.entername": "Մուտքագրեք ձեր անունը", + "pad.userlist.unnamed": "անանուն", + "pad.userlist.guest": "Հյուր", + "pad.userlist.deny": "Մերժել", + "pad.userlist.approve": "Հաստատել", + "pad.impexp.importbutton": "Ներմուծել հիմա", + "pad.impexp.copypaste": "Խնդրում ենք պատճենել" +} diff --git a/src/locales/lb.json b/src/locales/lb.json index 99bfe0b5..50cebaf2 100644 --- a/src/locales/lb.json +++ b/src/locales/lb.json @@ -8,10 +8,14 @@ }, "index.newPad": "Neie Pad", "index.createOpenPad": "oder maacht ee Pad mat dësem Numm op:", + "pad.toolbar.bold.title": "Fett (Strg-B)", + "pad.toolbar.italic.title": "Schréi (Ctrl+I)", "pad.toolbar.underline.title": "Ënnerstrach (Ctrl+U)", "pad.toolbar.strikethrough.title": "Duerchgestrach (Ctrl+5)", "pad.toolbar.ol.title": "Numeréiert Lëscht (Ctrl+Shift+N)", "pad.toolbar.ul.title": "Net-numeréiert Lëscht (Ctrl+Shift+L)", + "pad.toolbar.indent.title": "Aréckelen (TAB)", + "pad.toolbar.unindent.title": "Erausréckelen (Shift+TAB)", "pad.toolbar.undo.title": "Réckgängeg (Ctrl-Z)", "pad.toolbar.redo.title": "Widderhuelen (Ctrl-Y)", "pad.toolbar.savedRevision.title": "Versioun späicheren", @@ -25,23 +29,38 @@ "pad.permissionDenied": "Dir hutt net déi néideg Rechter fir dëse Pad opzemaachen", "pad.wrongPassword": "Äert Passwuert ass falsch", "pad.settings.myView": "Méng Usiicht", + "pad.settings.linenocheck": "Zeilennummeren", + "pad.settings.rtlcheck": "Inhalt vu riets no lénks liesen?", + "pad.settings.fontType": "Schrëftart:", "pad.settings.fontType.normal": "Normal", + "pad.settings.globalView": "Global Vue", "pad.settings.language": "Sprooch:", "pad.importExport.import_export": "Import/Export", + "pad.importExport.import": "Text-Fichier oder Dokument eroplueden", "pad.importExport.importSuccessful": "Erfollegräich", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Kloertext", "pad.importExport.exportword": "Microsoft Word", "pad.importExport.exportpdf": "PDF", "pad.importExport.exportopen": "ODF (Open Document Format)", "pad.modals.connected": "Verbonnen.", + "pad.modals.userdup": "An enger anerer Fënster opgemaach", "pad.modals.unauth": "Net autoriséiert", + "pad.modals.unauth.explanation": "Är Rechter hu geännert während deem Dir dës säit gekuckt hutt. Probéiert fir Iech nei ze connectéieren.", + "pad.modals.looping.explanation": "Et gëtt Kommunikatiounsproblemer mam Synchronisatiouns-Server.", + "pad.modals.initsocketfail": "De Server kann net erreecht ginn.", "pad.modals.slowcommit.explanation": "De Server äntwert net.", "pad.modals.deleted": "Geläscht.", + "pad.modals.disconnected": "Äre Verbindung ass ofgebrach.", + "pad.modals.disconnected.explanation": "D'Verbindung mam Server ass verluergaang.", "pad.share.readonly": "Nëmme liesen", "pad.share.link": "Link", + "pad.chat": "Chat", "pad.chat.loadmessages": "Méi Message lueden", "timeslider.toolbar.authors": "Auteuren:", "timeslider.toolbar.authorsList": "Keng Auteuren", + "timeslider.toolbar.exportlink.title": "Exportéieren", "timeslider.exportCurrent": "Exportéiert déi aktuell Versioun als:", "timeslider.version": "Versioun {{version}}", "timeslider.saved": "Gespäichert de(n) {{day}} {{month}} {{year}}", @@ -58,9 +77,14 @@ "timeslider.month.october": "Oktober", "timeslider.month.november": "November", "timeslider.month.december": "Dezember", + "pad.savedrevs.marked": "Dës Versioun ass elo als gespäichert Versioun markéiert", "pad.userlist.entername": "Gitt Ären Numm an", + "pad.userlist.unnamed": "anonym", "pad.userlist.guest": "Gaascht", + "pad.userlist.deny": "Refuséieren", "pad.userlist.approve": "Zoustëmmen", "pad.impexp.importbutton": "Elo importéieren", - "pad.impexp.importing": "Importéieren..." + "pad.impexp.importing": "Importéieren...", + "pad.impexp.uploadFailed": "D'Eroplueden huet net funktionéiert, probéiert w.e.g. nach eng Kéier", + "pad.impexp.importfailed": "Den Import huet net funktionéiert" } diff --git a/src/locales/ne.json b/src/locales/ne.json index 1179c93b..3e23659a 100644 --- a/src/locales/ne.json +++ b/src/locales/ne.json @@ -28,8 +28,8 @@ "pad.colorpicker.cancel": "रद्द", "pad.loading": "लोड हुदैछ...", "pad.passwordRequired": "यो प्यड खोल्न पासवर्ड चाहिन्छ", - "pad.permissionDenied": "तपाईँलाई यस प्याड खोल्न अनुमति छैन", - "pad.wrongPassword": "तपाईँको पासवर्ड गलत थियो", + "pad.permissionDenied": "तपाईंलाई यो प्याड खोल्न अनुमति छैन", + "pad.wrongPassword": "तपाईंको पासवर्ड गलत थियो", "pad.settings.padSettings": "प्याड सेटिङ्गहरू", "pad.settings.myView": "मेरो दृष्य", "pad.settings.stickychat": "पर्दामा सधै च्याट गर्ने", @@ -53,7 +53,7 @@ "pad.importExport.exportpdf": "पिडिएफ", "pad.importExport.exportopen": "ओडिएफ(खुल्ला कागजात ढाँचा)", "pad.modals.connected": "जोडीएको।", - "pad.modals.reconnecting": "तपाईँको प्याडमा पुन: जडान गर्दै", + "pad.modals.reconnecting": "तपाईंको प्याडमा पुन: जडान गर्दै", "pad.modals.forcereconnect": "जडानको लागि जोडगर्ने", "pad.modals.userdup": "अर्को सन्झ्यालमा खोल्ने", "pad.modals.unauth": "अनुमती नदिइएको", @@ -61,8 +61,8 @@ "pad.modals.slowcommit.explanation": "सर्भरसँग सम्पर्क हुने सकेन ।", "pad.modals.deleted": "मेटिएको ।", "pad.modals.deleted.explanation": "यो प्याड हटाइसकेको छ ।", - "pad.modals.disconnected": "तपाईँको जडान अवरुद्ध भयो ।", - "pad.modals.disconnected.explanation": "तपाईँको सर्भरसँगको जडान अवरुद्ध भयो", + "pad.modals.disconnected": "तपाईंको जडान अवरुद्ध भयो ।", + "pad.modals.disconnected.explanation": "तपाईंको सर्भरसँगको जडान अवरुद्ध भयो", "pad.share": "यस प्यडलाई बाड्ने", "pad.share.readonly": "पढ्ने मात्र", "pad.share.link": "लिङ्क", @@ -96,7 +96,7 @@ "timeslider.month.december": "डिसेम्बर", "timeslider.unnamedauthors": "{{num}} unnamed {[plural(num) one: author, other: authors ]}", "pad.savedrevs.marked": "यस संस्करणलाई संग्रहितको रुपमा चिनो लगाइएको छैन", - "pad.userlist.entername": "तपाईँको नाम लेख्नुहोस्", + "pad.userlist.entername": "तपाईंको नाम लेख्नुहोस्", "pad.userlist.unnamed": "नाम नखुलाइएको", "pad.userlist.guest": "पाहुना", "pad.userlist.deny": "अस्वीकार गर्ने", diff --git a/src/locales/sl.json b/src/locales/sl.json index a51cb53d..5d2dd85e 100644 --- a/src/locales/sl.json +++ b/src/locales/sl.json @@ -6,7 +6,7 @@ "Skalcaa" ] }, - "index.newPad": "Nova Ploščica", + "index.newPad": "Nov dokument", "index.createOpenPad": "ali pa odpri dokument z imenom:", "pad.toolbar.bold.title": "Krepko (Ctrl-B)", "pad.toolbar.italic.title": "Ležeče (Ctrl-I)", @@ -72,7 +72,7 @@ "pad.modals.slowcommit.cause": "Najverjetneje je prišlo do napake med vzpostavitvijo povezave.", "pad.modals.badChangeset.explanation": "Urejanje, ki ste ga naredili, je sinhronizacijski strežnik označil kot nelegalno.", "pad.modals.badChangeset.cause": "Razlog za to je morda napačna konfiguracija strežnika ali neko drugo nepričakovano vedenje. Prosimo, stopite v stik z upravljavcem storitve, če menite, da gre za napako. Poskusite se ponovno povezati, da nadaljujete z urejanjem.", - "pad.modals.corruptPad.explanation": "Blok, do katerega želite dostopati, je poškodovan.", + "pad.modals.corruptPad.explanation": "Dokument, do katerega želite dostopati, je poškodovan.", "pad.modals.corruptPad.cause": "Razlog za to je morda napačna konfiguracija strežnika ali neko drugo nepričakovano vedenje. Prosimo, stopite v stik z upravljavcem storitve.", "pad.modals.deleted": "Izbrisano.", "pad.modals.deleted.explanation": "Dokument je odstranjen.", @@ -94,6 +94,9 @@ "timeslider.exportCurrent": "Izvozi trenutno različico kot:", "timeslider.version": "Različica {{version}}", "timeslider.saved": "Shranjeno {{day}}.{{month}}.{{year}}", + "timeslider.playPause": "Predvajaj/začasno ustavi vsebino dokumenta", + "timeslider.backRevision": "Pojdi eno redakcijo nazaj v tem dokumentu", + "timeslider.forwardRevision": "Pojdi redakcijo naprej v tem dokumentu", "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", "timeslider.month.january": "Januar", "timeslider.month.february": "Februar", @@ -120,7 +123,7 @@ "pad.impexp.importing": "Poteka uvažanje ...", "pad.impexp.confirmimport": "Uvoz datoteke prepiše obstoječe besedilo dokumenta. Ali ste prepričani, da želite nadaljevati?", "pad.impexp.convertFailed": "Datoteke ni mogoče uvoziti. Uporabiti je treba enega izmed podprtih zapisov dokumentov ali pa vsebino prilepiti ročno.", - "pad.impexp.padHasData": "Nismo mogli uvoziti datoteke, ker ta Ploščica že vsebuje spremembe. Prosimo, uvozite datoteko v novo ploščico", + "pad.impexp.padHasData": "Nismo mogli uvoziti datoteke, ker dokument že vsebuje spremembe. Prosimo, uvozite datoteko v nov dokument", "pad.impexp.uploadFailed": "Nalaganje je spodletelo, poskusite znova.", "pad.impexp.importfailed": "Uvoz je spodletel.", "pad.impexp.copypaste": "Vsebino kopirajte in prilepite.", diff --git a/src/locales/sq.json b/src/locales/sq.json index 24494f79..d6d959ee 100644 --- a/src/locales/sq.json +++ b/src/locales/sq.json @@ -5,44 +5,44 @@ "Kosovastar" ] }, - "index.newPad": "Bllok i ri", - "index.createOpenPad": "ose krijoni/hapni një bllok me emrin:", + "index.newPad": "Bllok i Ri", + "index.createOpenPad": "ose krijoni/hapni një Bllok me emrin:", "pad.toolbar.bold.title": "Të trasha (Ctrl-B)", "pad.toolbar.italic.title": "Të pjerrëta (Ctrl-I)", "pad.toolbar.underline.title": "Të nënvizuara (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Mbivijëzuar (Ctrl+5)", + "pad.toolbar.strikethrough.title": "Hequr vije (Ctrl+5)", "pad.toolbar.ol.title": "Listë e renditur (Ctrl+Shift+N)", "pad.toolbar.ul.title": "Listë e parenditur (Ctrl+Shift+L)", - "pad.toolbar.indent.title": "E dhëmbëzuar (TAB)", + "pad.toolbar.indent.title": "Brendazi (TAB)", "pad.toolbar.unindent.title": "Jashtazi (Shift+TAB)", "pad.toolbar.undo.title": "Zhbëje (Ctrl-Z)", "pad.toolbar.redo.title": "Ribëje (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Hiqju Ngjyra Autorësish (Ctrl+Shift+C)", + "pad.toolbar.clearAuthorship.title": "Hiqu Ngjyra Autorësish (Ctrl+Shift+C)", "pad.toolbar.import_export.title": "Importoni/Eksportoni nga/në formate të tjera kartelash", "pad.toolbar.timeslider.title": "Rrjedha kohore", - "pad.toolbar.savedRevision.title": "Ruaje rishikimin", + "pad.toolbar.savedRevision.title": "Ruaje Rishikimin", "pad.toolbar.settings.title": "Rregullime", - "pad.toolbar.embed.title": "Ndajeni me të tjerët dhe trupëzojeni këtë bllok", + "pad.toolbar.embed.title": "Ndajeni me të tjerët dhe Trupëzojeni këtë bllok", "pad.toolbar.showusers.title": "Shfaq përdoruesit në këtë bllok", "pad.colorpicker.save": "Ruaje", "pad.colorpicker.cancel": "Anuloje", "pad.loading": "Po ngarkohet…", "pad.noCookie": "S’u gjet dot cookie. Ju lutemi, lejoni cookie-t te shfletuesi juaj!", "pad.passwordRequired": "Ju duhet një fjalëkalim që të mund të përdorni këtë bllok", - "pad.permissionDenied": "Ju nuk keni leje t'i qaseni këtij blloku", + "pad.permissionDenied": "S’keni leje të hyni në këtë bllok", "pad.wrongPassword": "Fjalëkalimi juaj qe gabim", - "pad.settings.padSettings": "Rregullime blloku", + "pad.settings.padSettings": "Rregullime Blloku", "pad.settings.myView": "Pamja ime", "pad.settings.stickychat": "Fjalosje përherë në ekran", - "pad.settings.chatandusers": "Shfaq fjalosje dhe përdorues", + "pad.settings.chatandusers": "Shfaq Fjalosje dhe Përdorues", "pad.settings.colorcheck": "Ngjyra autorësish", "pad.settings.linenocheck": "Numra rreshtash", "pad.settings.rtlcheck": "Të lexohet lënda nga e djathta në të majtë?", "pad.settings.fontType": "Lloj shkronjash:", "pad.settings.fontType.normal": "Normale", "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "Pamje e përgjithshme", - "pad.settings.language": "Gjuha:", + "pad.settings.globalView": "Pamje e Përgjithshme", + "pad.settings.language": "Gjuhë:", "pad.importExport.import_export": "Import/Eksport", "pad.importExport.import": "Ngarkoni cilëndo kartelë teksti ose dokument", "pad.importExport.importSuccessful": "Me sukses!", @@ -55,7 +55,7 @@ "pad.importExport.exportopen": "ODF (Open Document Format)", "pad.importExport.abiword.innerHTML": "Mund të importoni vetëm prej formati tekst i thjeshtë ose html. Për veçori më të thelluara importimi, ju lutemi, <a href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\">instaloni Abiword-in</a>.", "pad.modals.connected": "I lidhur.", - "pad.modals.reconnecting": "Po rilidheni te blloku juaj..", + "pad.modals.reconnecting": "Po rilidheni te blloku juaj…", "pad.modals.forcereconnect": "Rilidhje e detyruar", "pad.modals.userdup": "Hapur në një tjetër dritare", "pad.modals.userdup.explanation": "Ky bllok duket se gjendet i hapur në më shumë se një dritare shfletuesi në këtë kompjuter.", @@ -64,8 +64,8 @@ "pad.modals.unauth.explanation": "Lejet tuaja ndryshuan teksa shihnit këtë dritare. Provoni të rilidheni.", "pad.modals.looping.explanation": "Ka probleme komunikimi me shërbyesin e njëkohësimit.", "pad.modals.looping.cause": "Ndoshta jeni lidhur përmes një firewall-i ose ndërmjetësi të papërputhshëm.", - "pad.modals.initsocketfail": "Shërbyesi (serveri) është i pakapshëm.", - "pad.modals.initsocketfail.explanation": "Nuk u lidh dot te shërbyesi (serveri) i sinkronizimit.", + "pad.modals.initsocketfail": "Shërbyesi është i pakapshëm.", + "pad.modals.initsocketfail.explanation": "S’u lidh dot te shërbyesi i njëkohësimit.", "pad.modals.initsocketfail.cause": "Ka gjasa që kjo vjen për shkak të një problemi me shfletuesin tuaj ose lidhjen tuaj në internet.", "pad.modals.slowcommit.explanation": "Shërbyesi nuk po përgjigjet.", "pad.modals.slowcommit.cause": "Kjo mund të vijë për shkak problemesh lidhjeje me rrjetin.", @@ -88,15 +88,15 @@ "timeslider.pageTitle": "Rrjedhë kohore e {{appTitle}}", "timeslider.toolbar.returnbutton": "Rikthehuni te blloku", "timeslider.toolbar.authors": "Autorë:", - "timeslider.toolbar.authorsList": "Nuk ka autorë", - "timeslider.toolbar.exportlink.title": "Eksportoni", + "timeslider.toolbar.authorsList": "S’ka Autorë", + "timeslider.toolbar.exportlink.title": "Eksportoje", "timeslider.exportCurrent": "Eksportojeni versionin e tanishëm si:", "timeslider.version": "Versioni {{version}}", - "timeslider.saved": "Ruajtur më {{month}} {{day}}, {{year}}", - "timeslider.playPause": "Riluaj / Pusho përmbajtjet e bllokut", - "timeslider.backRevision": "Kalo një rishikim mbrapsht te ky bllok", - "timeslider.forwardRevision": "Kalo një rishikim përpara në këtë bllok", - "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.saved": "Ruajtur më {{day}} {{month}}, {{year}}", + "timeslider.playPause": "Luaj / Pusho Lëndë Blloku", + "timeslider.backRevision": "Kalo një rishikim mbrapsht në këtë Bllok", + "timeslider.forwardRevision": "Kalo një rishikim përpara në këtë Bllok", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", "timeslider.month.january": "Janar", "timeslider.month.february": "Shkurt", "timeslider.month.march": "Mars", @@ -109,20 +109,20 @@ "timeslider.month.october": "Tetor", "timeslider.month.november": "Nëntor", "timeslider.month.december": "Dhjetor", - "timeslider.unnamedauthors": "{{num}} i paemërt {[plural(num) një: autor, tjetër: autorë ]}", + "timeslider.unnamedauthors": "{{num}} i paemër {[plural(num) një: autor, tjetër:{{num}} autorë ]}", "pad.savedrevs.marked": "Ky rishikim tani është shënuar si rishikim i ruajtur", - "pad.savedrevs.timeslider": "Rishikimet e ruajtura mund t’i shihni duke vizituar rrjedhjen kohore", + "pad.savedrevs.timeslider": "Rishikimet e ruajtura mund t’i shihni duke vizituar rrjedhën kohore", "pad.userlist.entername": "Jepni emrin tuaj", "pad.userlist.unnamed": "pa emër", "pad.userlist.guest": "Vizitor", - "pad.userlist.deny": "Refuzo", + "pad.userlist.deny": "Hidhe poshtë", "pad.userlist.approve": "Miratoje", "pad.editbar.clearcolors": "Të hiqen ngjyra autorësish në krejt dokumentin?", - "pad.impexp.importbutton": "Importoje tani", + "pad.impexp.importbutton": "Importoje Tani", "pad.impexp.importing": "Po importohet…", "pad.impexp.confirmimport": "Importimi i një kartele do të mbishkruajë tekstin e tanishëm të bllokut. Jeni i sigurt se doni të vazhdohet?", "pad.impexp.convertFailed": "Nuk qemë në gjendje ta importonim këtë kartelë. Ju lutemi, përdorni një format tjetër dokumentesh ose kopjojeni dhe hidheni dorazi", - "pad.impexp.padHasData": "Ne nuk ishim në gjendje për të importuar këtë skedë, sepse ky bllok tashmë ka pasur ndryshime, ju lutem importojeni tek një bllok i ri", + "pad.impexp.padHasData": "S’qemë në gjendje të importojmë këtë kartelë, ngaqë ky Bllok kish tashmë ndryshime, ju lutemi, importojeni tek një bllok i ri", "pad.impexp.uploadFailed": "Ngarkimi dështoi, ju lutemi, riprovoni", "pad.impexp.importfailed": "Importimi dështoi", "pad.impexp.copypaste": "Ju lutemi, kopjojeni dhe ngjiteni", diff --git a/src/node/hooks/express/specialpages.js b/src/node/hooks/express/specialpages.js index e8d7795a..2840f82c 100644 --- a/src/node/hooks/express/specialpages.js +++ b/src/node/hooks/express/specialpages.js @@ -16,6 +16,13 @@ exports.expressCreateServer = function (hook_name, args, cb) { res.send(eejs.require("ep_etherpad-lite/templates/index.html")); }); + //serve javascript.html + args.app.get('/javascript', function(req, res) + { + res.send(eejs.require("ep_etherpad-lite/templates/javascript.html")); + }); + + //serve robots.txt args.app.get('/robots.txt', function(req, res) { diff --git a/src/node/hooks/express/webaccess.js b/src/node/hooks/express/webaccess.js index 2cafd271..c53eb1d1 100644 --- a/src/node/hooks/express/webaccess.js +++ b/src/node/hooks/express/webaccess.js @@ -120,7 +120,7 @@ exports.expressConfigure = function (hook_name, args, cb) { } args.app.sessionStore = exports.sessionStore; - args.app.use(sessionModule({secret: exports.secret, store: args.app.sessionStore, resave: true, saveUninitialized: true, name: 'express_sid' })); + args.app.use(sessionModule({secret: exports.secret, store: args.app.sessionStore, resave: true, saveUninitialized: true, name: 'express_sid', proxy: true, cookie: { secure: !!settings.ssl }})); args.app.use(cookieParser(settings.sessionKey, {})); diff --git a/src/package.json b/src/package.json index 98e0fed0..73020b2d 100644 --- a/src/package.json +++ b/src/package.json @@ -16,7 +16,7 @@ "request" : "2.55.0", "etherpad-require-kernel" : "1.0.9", "resolve" : "1.1.7", - "socket.io" : "1.4.5", + "socket.io" : "1.6.0", "ueberdb2" : "0.3.0", "express" : "4.13.4", "express-session" : "1.13.0", @@ -28,7 +28,7 @@ "log4js" : "0.6.35", "cheerio" : "0.20.0", "async-stacktrace" : "0.0.2", - "npm" : "2.7.6", + "npm" : "4.0.2", "ejs" : "2.4.1", "graceful-fs" : "4.1.3", "slide" : "1.1.6", diff --git a/src/static/js/admin/plugins.js b/src/static/js/admin/plugins.js index 48d1ab70..3f88d9b1 100644 --- a/src/static/js/admin/plugins.js +++ b/src/static/js/admin/plugins.js @@ -228,7 +228,7 @@ $(document).ready(function () { if(data.code === "EPEERINVALID"){ alert("This plugin requires that you update Etherpad so it can operate in it's true glory"); } - alert('An error occured while installing '+data.plugin+' \n'+data.error) + alert('An error occurred while installing '+data.plugin+' \n'+data.error) $('#installed-plugins .'+data.plugin).remove() } @@ -241,7 +241,7 @@ $(document).ready(function () { }) socket.on('finished:uninstall', function(data) { - if(data.error) alert('An error occured while uninstalling the '+data.plugin+' \n'+data.error) + if(data.error) alert('An error occurred while uninstalling the '+data.plugin+' \n'+data.error) // remove plugin from installed list $('#installed-plugins .'+data.plugin).remove() diff --git a/src/static/js/pad.js b/src/static/js/pad.js index f8ff8578..c967e461 100644 --- a/src/static/js/pad.js +++ b/src/static/js/pad.js @@ -52,43 +52,6 @@ var hooks = require('./pluginfw/hooks'); var receivedClientVars = false; -function createCookie(name, value, days, path){ /* Warning Internet Explorer doesn't use this it uses the one from pad_utils.js */ - if (days) - { - var date = new Date(); - date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); - var expires = "; expires=" + date.toGMTString(); - } - else{ - var expires = ""; - } - - if(!path){ // If the path isn't set then just whack the cookie on the root path - path = "/"; - } - - //Check if the browser is IE and if so make sure the full path is set in the cookie - if((navigator.appName == 'Microsoft Internet Explorer') || ((navigator.appName == 'Netscape') && (new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})").exec(navigator.userAgent) != null))){ - document.cookie = name + "=" + value + expires + "; path="+document.location; - } - else{ - document.cookie = name + "=" + value + expires + "; path=" + path; - } -} - -function readCookie(name) -{ - var nameEQ = name + "="; - var ca = document.cookie.split(';'); - for (var i = 0; i < ca.length; i++) - { - var c = ca[i]; - while (c.charAt(0) == ' ') c = c.substring(1, c.length); - if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); - } - return null; -} - function randomString() { var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; @@ -231,40 +194,27 @@ function handshake() // Allow deployers to host Etherpad on a non-root path 'path': exports.baseURL + "socket.io", 'resource': resource, - 'max reconnection attempts': 3, - 'sync disconnect on unload' : false + 'reconnectionAttempts': 5, + 'reconnection' : true, + 'reconnectionDelay' : 1000, + 'reconnectionDelayMax' : 5000 }); - var disconnectTimeout; - socket.once('connect', function () { sendClientReady(false); }); socket.on('reconnect', function () { - //reconnect is before the timeout, lets stop the timeout - if(disconnectTimeout) - { - clearTimeout(disconnectTimeout); - } - pad.collabClient.setChannelState("CONNECTED"); pad.sendClientReady(true); }); - socket.on('disconnect', function (reason) { - if(reason == "booted"){ - pad.collabClient.setChannelState("DISCONNECTED"); - } else { - function disconnectEvent() - { - pad.collabClient.setChannelState("DISCONNECTED", "reconnect_timeout"); - } - - pad.collabClient.setChannelState("RECONNECTING"); - - disconnectTimeout = setTimeout(disconnectEvent, 20000); - } + socket.on('reconnecting', function() { + pad.collabClient.setChannelState("RECONNECTING"); + }); + + socket.on('reconnect_failed', function(error) { + pad.collabClient.setChannelState("DISCONNECTED", "reconnect_timeout"); }); var initalized = false; @@ -500,10 +450,10 @@ var pad = { handshake(); // To use etherpad you have to allow cookies. - // This will check if the creation of a test-cookie has success. + // This will check if the prefs-cookie is set. // Otherwise it shows up a message to the user. - createCookie("test", "test"); - if (!readCookie("test")) + padcookie.init(); + if (!readCookie("prefs")) { $('#loading').hide(); $('#noCookie').show(); diff --git a/src/static/js/pad_cookie.js b/src/static/js/pad_cookie.js index 9866dbfd..b563a7e6 100644 --- a/src/static/js/pad_cookie.js +++ b/src/static/js/pad_cookie.js @@ -43,7 +43,8 @@ var padcookie = (function() { var expiresDate = new Date(); expiresDate.setFullYear(3000); - document.cookie = ('prefs=' + safeText + ';expires=' + expiresDate.toGMTString()); + var secure = isHttpsScheme() ? ";secure" : ""; + document.cookie = ('prefs=' + safeText + ';expires=' + expiresDate.toGMTString() + secure); } function parseCookie(text) @@ -79,6 +80,10 @@ var padcookie = (function() alreadyWarnedAboutNoCookies = true; } } + + function isHttpsScheme() { + return window.location.protocol == "https:"; + } var wasNoCookie = true; var cookieData = {}; diff --git a/src/static/js/pad_editbar.js b/src/static/js/pad_editbar.js index d44e5d66..dd1c377a 100644 --- a/src/static/js/pad_editbar.js +++ b/src/static/js/pad_editbar.js @@ -242,9 +242,9 @@ var padeditbar = (function() }); }, registerAceCommand: function (cmd, callback) { - this.registerCommand(cmd, function (cmd, ace) { + this.registerCommand(cmd, function (cmd, ace, item) { ace.callWithAce(function (ace) { - callback(cmd, ace); + callback(cmd, ace, item); }, cmd, true); }); }, diff --git a/src/static/js/pad_utils.js b/src/static/js/pad_utils.js index 5a7700c9..b83f21cf 100644 --- a/src/static/js/pad_utils.js +++ b/src/static/js/pad_utils.js @@ -53,13 +53,16 @@ function createCookie(name, value, days, path){ /* Used by IE */ if(!path){ // IF the Path of the cookie isn't set then just create it on root path = "/"; } + + //Check if we accessed the pad over https + var secure = window.location.protocol == "https:" ? ";secure" : ""; //Check if the browser is IE and if so make sure the full path is set in the cookie if((navigator.appName == 'Microsoft Internet Explorer') || ((navigator.appName == 'Netscape') && (new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})").exec(navigator.userAgent) != null))){ - document.cookie = name + "=" + value + expires + "; path=/"; /* Note this bodge fix for IE is temporary until auth is rewritten */ + document.cookie = name + "=" + value + expires + "; path=/" + secure; /* Note this bodge fix for IE is temporary until auth is rewritten */ } else{ - document.cookie = name + "=" + value + expires + "; path=" + path; + document.cookie = name + "=" + value + expires + "; path=" + path + secure; } } @@ -520,7 +523,7 @@ function setupGlobalExceptionHandler() { //show javascript errors to the user $("#editorloadingbox").css("padding", "10px"); $("#editorloadingbox").css("padding-top", "45px"); - $("#editorloadingbox").html("<div style='text-align:left;color:red;font-size:16px;'><b>An error occured</b><br>The error was reported with the following id: '" + errorId + "'<br><br><span style='color:black;font-weight:bold;font-size:16px'>Please press and hold Ctrl and press F5 to reload this page, if the problem persists please send this error message to your webmaster: </span><div style='color:black;font-size:14px'>'" + $("#editorloadingbox").html("<div style='text-align:left;color:red;font-size:16px;'><b>An error occurred</b><br>The error was reported with the following id: '" + errorId + "'<br><br><span style='color:black;font-weight:bold;font-size:16px'>Please press and hold Ctrl and press F5 to reload this page, if the problem persists please send this error message to your webmaster: </span><div style='color:black;font-size:14px'>'" + "ErrorId: " + errorId + "<br>URL: " + window.location.href + "<br>UserAgent: " + userAgent + "<br>" + msg + " in " + url + " at line " + linenumber + "'</div></div>"); } diff --git a/src/static/js/pluginfw/plugins.js b/src/static/js/pluginfw/plugins.js index dfdf941e..0d0fa1ed 100644 --- a/src/static/js/pluginfw/plugins.js +++ b/src/static/js/pluginfw/plugins.js @@ -117,13 +117,14 @@ exports.getPackages = function (cb) { delete packages[name].parent; } - if (deps[name].dependencies !== undefined) flatten(deps[name].dependencies); + // I don't think we need recursion + //if (deps[name].dependencies !== undefined) flatten(deps[name].dependencies); }); } var tmp = {}; tmp[data.name] = data; - flatten(tmp); + flatten(tmp[undefined].dependencies); cb(null, packages); }); }; diff --git a/src/templates/admin/index.html b/src/templates/admin/index.html index f6e9e29e..45755a49 100644 --- a/src/templates/admin/index.html +++ b/src/templates/admin/index.html @@ -20,5 +20,6 @@ </ul> </div> </div> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> diff --git a/src/templates/admin/plugins-info.html b/src/templates/admin/plugins-info.html index 5d39c388..8dd0bf88 100644 --- a/src/templates/admin/plugins-info.html +++ b/src/templates/admin/plugins-info.html @@ -41,5 +41,6 @@ </div> </div> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> diff --git a/src/templates/admin/plugins.html b/src/templates/admin/plugins.html index 71c4dbcc..0fff7843 100644 --- a/src/templates/admin/plugins.html +++ b/src/templates/admin/plugins.html @@ -112,5 +112,6 @@ </div> </div> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> diff --git a/src/templates/admin/settings.html b/src/templates/admin/settings.html index 560ac507..74f35521 100644 --- a/src/templates/admin/settings.html +++ b/src/templates/admin/settings.html @@ -50,5 +50,6 @@ </div> </div> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> diff --git a/src/templates/export_html.html b/src/templates/export_html.html index b8893b71..b29941c9 100644 --- a/src/templates/export_html.html +++ b/src/templates/export_html.html @@ -139,5 +139,6 @@ ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { </head> <body> <%- body %> +<div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> diff --git a/src/templates/index.html b/src/templates/index.html index 0b0be79b..e1f59c1e 100644 --- a/src/templates/index.html +++ b/src/templates/index.html @@ -29,7 +29,8 @@ */ </script> - <meta charset="utf-8"> + <meta charset="utf-8"> + <meta name="referrer" content="no-referrer"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> <link rel="shortcut icon" href="<%=settings.favicon%>"> @@ -121,7 +122,7 @@ input[type="text"] { border-radius: 3px; box-sizing: border-box; - -moz-box-sizing: border-box; + -moz-box-sizing: border-box; line-height:36px; /* IE8 hack */ padding: 0px 45px 0 10px; *padding: 0; /* IE7 hack */ @@ -148,22 +149,22 @@ margin-top: 0; } #inner { - width: 95%; + width: 95%; } #label { text-align: center; } } </style> - <link href="static/custom/index.css" rel="stylesheet"> + <link href="static/custom/index.css" rel="stylesheet"> <div id="wrapper"> <% e.begin_block("indexWrapper"); %> <div id="inner"> <buttOn id="button" onclick="go2Random()" data-l10n-id="index.newPad"></button> - <label id="label" for="padname" data-l10n-id="index.createOpenPad"></label> - <form action="#" onsubmit="go2Name();return false;"> - <input type="text" id="padname" maxlength="50" autofocus x-webkit-speech> + <label id="label" for="padname" data-l10n-id="index.createOpenPad"></label> + <form action="#" onsubmit="go2Name();return false;"> + <input type="text" id="padname" maxlength="50" autofocus x-webkit-speech> <button type="submit">OK</button> </form> </div> @@ -171,33 +172,35 @@ </div> <script src="static/custom/index.js"></script> - <script> - - function go2Name() + <script> + // @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt + function go2Name() { var padname = document.getElementById("padname").value; padname.length > 0 ? window.location = "p/" + padname : alert("Please enter a name") } - - function go2Random() + + function go2Random() { window.location = "p/" + randomPadName(); } - - function randomPadName() + + function randomPadName() { var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var string_length = 10; var randomstring = ''; - for (var i = 0; i < string_length; i++) + for (var i = 0; i < string_length; i++) { var rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum, rnum + 1); } return randomstring; } - + // start the custom js if (typeof customStart == "function") customStart(); + // @license-end </script> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </html> diff --git a/src/templates/javascript.html b/src/templates/javascript.html new file mode 100644 index 00000000..29031c4b --- /dev/null +++ b/src/templates/javascript.html @@ -0,0 +1,73 @@ +<!doctype html> +<html> + <head> + <title>JavaScript license information</title> + <meta charset="utf-8"> + <meta name="robots" content="noindex, nofollow"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> + </head> + <body> + <table id="jslicense-labels1"> + <tr> + <td><a href="/static/js/jquery-2.1.1.min.js">jquery-2.1.1.min.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/jquery.js">jquery.js</a></td> + </tr> + <tr> + <td><a href="/static/js/html10n.js">html10n.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/html10n.js">html10n.js</a></td> + </tr> + <tr> + <td><a href="/static/js/l10n.js">l10n.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/js/l10n.js">l10n.js</a></td> + </tr> + <tr> + <td><a href="/static/js/socket.io.js">socket.io.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/socket.io.js">socket.io.js</a></td> + </tr> + <tr> + <td><a href="/static/js/require-kernel.js">require-kernel.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/require-kernel.js">require-kernel.js</a></td> + </tr> + <tr> + <td><a href="/static/custom/index.js">index.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/custom/index.js">index.js</a></td> + </tr> + <tr> + <td><a href="/static/custom/timeslider.js">timeslider.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/custom/timeslider.js">timeslider.js</a></td> + </tr> + <tr> + <td><a href="/static/custom/pad.js">pad.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/custom/pad.js">pad.js</a></td> + </tr> + <tr> + <td><a href="/static/js/admin/plugins.js">plugins.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/js/admin/plugins.js">plugins.js</a></td> + </tr> + <tr> + <td><a href="/static/js/admin/minify.json.js">minify.json.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/admin/minify.json.js">minify.json.js</a></td> + </tr> + <tr> + <td><a href="/static/js/admin/settings.js">settings.js</a></td> + <td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache-2.0-only</a></td> + <td><a href="/static/js/admin/settings.js">settings.js</a></td> + </tr> + <tr> + <td><a href="/static/js/admin/jquery.autosize.js">jquery.autosize.js</a></td> + <td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td> + <td><a href="/static/js/admin/jquery.autosize.js">jquery.autosize.js</a></td> + </tr> + </table> + </body> +</html> diff --git a/src/templates/pad.html b/src/templates/pad.html index 767c1ec9..3d89f9d0 100644 --- a/src/templates/pad.html +++ b/src/templates/pad.html @@ -36,6 +36,7 @@ <meta charset="utf-8"> <meta name="robots" content="noindex, nofollow"> + <meta name="referrer" content="no-referrer"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> <link rel="shortcut icon" href="<%=settings.faviconPad%>"> @@ -350,19 +351,21 @@ <% e.begin_block("scripts"); %> <script type="text/javascript"> + // @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt (function() { // Display errors on page load to the user // (Gets overridden by padutils.setupGlobalExceptionHandler) var originalHandler = window.onerror; window.onerror = function(msg, url, line) { var box = document.getElementById('editorloadingbox'); - box.innerHTML = '<p><b>An error occured while loading the pad</b></p>' + box.innerHTML = '<p><b>An error occurred while loading the pad</b></p>' + '<p><b>'+msg+'</b> ' + '<small>in '+ url +' (line '+ line +')</small></p>'; // call original error handler if(typeof(originalHandler) == 'function') originalHandler.call(null, arguments); }; })(); + // @license-end </script> <script type="text/javascript" src="../static/js/require-kernel.js"></script> @@ -378,6 +381,7 @@ <!-- Bootstrap page --> <script type="text/javascript"> + // @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt var clientVars = {}; (function () { var pathComponents = location.pathname.split('/'); @@ -415,6 +419,8 @@ padeditbar = require('ep_etherpad-lite/static/js/pad_editbar').padeditbar; padimpexp = require('ep_etherpad-lite/static/js/pad_impexp').padimpexp; }()); + // @license-end </script> + <div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> <% e.end_block(); %> </html> diff --git a/src/templates/timeslider.html b/src/templates/timeslider.html index f52c0c50..395d0c47 100644 --- a/src/templates/timeslider.html +++ b/src/templates/timeslider.html @@ -31,6 +31,7 @@ <head> <meta charset="utf-8"> <meta name="robots" content="noindex, nofollow"> + <meta name="referrer" content="no-referrer"> <link rel="shortcut icon" href="<%=settings.faviconTimeslider%>"> <% e.begin_block("timesliderStyles"); %> <link rel="stylesheet" href="../../static/css/pad.css"> @@ -230,6 +231,7 @@ <!-- Bootstrap --> <script type="text/javascript" > + // @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt var clientVars = {}; var BroadcastSlider; (function () { @@ -266,8 +268,9 @@ padeditbar.init() }); })(); + // @license-end </script> <% e.end_block(); %> +<div style="display:none"><a href="/javascript" data-jslicense="1">JavaScript license information</a></div> </body> </html> - |