diff options
author | John McLear <john@mclear.co.uk> | 2013-12-09 21:55:04 +0000 |
---|---|---|
committer | John McLear <john@mclear.co.uk> | 2013-12-09 21:55:04 +0000 |
commit | 58bbfd8a65e16581bc13b89f5898fdceb2563e0a (patch) | |
tree | 5539101a7c55e366556f564d1ab92152fe2fc61b /src | |
parent | 7c03bc2610a2d8f0e752bc9796bb460d50166fe9 (diff) | |
parent | 24e96c4f8bc2b7b72644d0f2e68d8a58726c3cf9 (diff) | |
download | etherpad-lite-58bbfd8a65e16581bc13b89f5898fdceb2563e0a.zip |
resolve merge conflict
Diffstat (limited to 'src')
141 files changed, 10186 insertions, 6795 deletions
diff --git a/src/ep.json b/src/ep.json index 89c8964a..eeb5c640 100644 --- a/src/ep.json +++ b/src/ep.json @@ -23,6 +23,7 @@ { "name": "adminsettings", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/adminsettings:expressCreateServer", "socketio": "ep_etherpad-lite/node/hooks/express/adminsettings:socketio" } - } + }, + { "name": "swagger", "hooks": { "expressCreateServer": "ep_etherpad-lite/node/hooks/express/swagger:expressCreateServer" } } ] } diff --git a/src/locales/af.json b/src/locales/af.json index 979a823d..70a6b011 100644 --- a/src/locales/af.json +++ b/src/locales/af.json @@ -1,66 +1,65 @@ { - "@metadata": { - "authors": [ - "Naudefj" - ] - }, - "index.newPad": "Nuwe pad", - "index.createOpenPad": "of skep\/open 'n pad met die naam:", - "pad.toolbar.bold.title": "Vet (Ctrl-B)", - "pad.toolbar.italic.title": "Kursief (Ctrl-I)", - "pad.toolbar.underline.title": "Onderstreep (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Deurgehaal", - "pad.toolbar.ol.title": "Geordende lys", - "pad.toolbar.ul.title": "Ongeordende lys", - "pad.toolbar.indent.title": "Indenteer", - "pad.toolbar.unindent.title": "Verklein indentering", - "pad.toolbar.undo.title": "Ongedaan maak (Ctrl-Z)", - "pad.toolbar.redo.title": "Herdoen (Ctrl-Y)", - "pad.toolbar.settings.title": "Voorkeure", - "pad.colorpicker.save": "Stoor", - "pad.colorpicker.cancel": "Kanselleer", - "pad.loading": "Laai...", - "pad.settings.myView": "My oorsig", - "pad.settings.fontType.normal": "Normaal", - "pad.settings.fontType.monospaced": "Monospasie", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.modals.userdup.advice": "Maak weer 'n verbinding as u die venster wil gebruik.", - "pad.modals.unauth": "Nie toegestaan", - "pad.modals.looping": "Verbinding verbreek.", - "pad.modals.deleted": "Geskrap.", - "pad.share": "Deel die pad", - "pad.share.readonly": "Lees-alleen", - "pad.share.link": "Skakel", - "pad.share.emebdcode": "Inbed URL", - "pad.chat": "Klets", - "pad.chat.title": "Maak kletsblad vir die pad oop", - "timeslider.toolbar.returnbutton": "Terug na pad", - "timeslider.toolbar.authors": "Outeurs:", - "timeslider.toolbar.authorsList": "Geen outeurs", - "timeslider.exportCurrent": "Huidige weergawe eksporteer as:", - "timeslider.version": "Weergawe {{version}}", - "timeslider.saved": "Gestoor op {{day}} {{month}} {{year}}", - "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Januarie", - "timeslider.month.february": "Februarie", - "timeslider.month.march": "Maart", - "timeslider.month.april": "April", - "timeslider.month.may": "Mei", - "timeslider.month.june": "Junie", - "timeslider.month.july": "Julie", - "timeslider.month.august": "Augustus", - "timeslider.month.september": "September", - "timeslider.month.october": "Oktober", - "timeslider.month.november": "November", - "timeslider.month.december": "Desember", - "pad.userlist.entername": "Verskaf u naam", - "pad.userlist.unnamed": "sonder naam", - "pad.userlist.guest": "Gas", - "pad.userlist.deny": "Keur af", - "pad.userlist.approve": "Keur goed", - "pad.impexp.importbutton": "Voer nou in", - "pad.impexp.importing": "Besig met invoer...", - "pad.impexp.importfailed": "Invoer het gefaal" + "@metadata": { + "authors": [ + "Naudefj" + ] + }, + "index.newPad": "Nuwe pad", + "index.createOpenPad": "of skep/open 'n pad met die naam:", + "pad.toolbar.bold.title": "Vet (Ctrl-B)", + "pad.toolbar.italic.title": "Kursief (Ctrl-I)", + "pad.toolbar.underline.title": "Onderstreep (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Deurgehaal", + "pad.toolbar.ol.title": "Geordende lys", + "pad.toolbar.ul.title": "Ongeordende lys", + "pad.toolbar.indent.title": "Indenteer", + "pad.toolbar.unindent.title": "Verklein indentering", + "pad.toolbar.undo.title": "Ongedaan maak (Ctrl-Z)", + "pad.toolbar.redo.title": "Herdoen (Ctrl-Y)", + "pad.toolbar.settings.title": "Voorkeure", + "pad.colorpicker.save": "Stoor", + "pad.colorpicker.cancel": "Kanselleer", + "pad.loading": "Laai...", + "pad.settings.myView": "My oorsig", + "pad.settings.fontType.normal": "Normaal", + "pad.settings.fontType.monospaced": "Monospasie", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.userdup.advice": "Maak weer 'n verbinding as u die venster wil gebruik.", + "pad.modals.unauth": "Nie toegestaan", + "pad.modals.deleted": "Geskrap.", + "pad.share": "Deel die pad", + "pad.share.readonly": "Lees-alleen", + "pad.share.link": "Skakel", + "pad.share.emebdcode": "Inbed URL", + "pad.chat": "Klets", + "pad.chat.title": "Maak kletsblad vir die pad oop", + "timeslider.toolbar.returnbutton": "Terug na pad", + "timeslider.toolbar.authors": "Outeurs:", + "timeslider.toolbar.authorsList": "Geen outeurs", + "timeslider.exportCurrent": "Huidige weergawe eksporteer as:", + "timeslider.version": "Weergawe {{version}}", + "timeslider.saved": "Gestoor op {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Januarie", + "timeslider.month.february": "Februarie", + "timeslider.month.march": "Maart", + "timeslider.month.april": "April", + "timeslider.month.may": "Mei", + "timeslider.month.june": "Junie", + "timeslider.month.july": "Julie", + "timeslider.month.august": "Augustus", + "timeslider.month.september": "September", + "timeslider.month.october": "Oktober", + "timeslider.month.november": "November", + "timeslider.month.december": "Desember", + "pad.userlist.entername": "Verskaf u naam", + "pad.userlist.unnamed": "sonder naam", + "pad.userlist.guest": "Gas", + "pad.userlist.deny": "Keur af", + "pad.userlist.approve": "Keur goed", + "pad.impexp.importbutton": "Voer nou in", + "pad.impexp.importing": "Besig met invoer...", + "pad.impexp.importfailed": "Invoer het gefaal" }
\ No newline at end of file diff --git a/src/locales/ar.json b/src/locales/ar.json index be0e7457..81c78f34 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -1,77 +1,105 @@ { - "@metadata": { - "authors": [ - "Ali1", - "Tux-tn" - ] - }, - "pad.toolbar.bold.title": "\u0633\u0645\u064a\u0643 (Ctrl-B)", - "pad.toolbar.italic.title": "\u0645\u0627\u0626\u0644 (Ctrl-I)", - "pad.toolbar.underline.title": "\u062a\u0633\u0637\u064a\u0631 (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u0634\u0637\u0628", - "pad.toolbar.ol.title": "\u0642\u0627\u0626\u0645\u0629 \u0645\u0631\u062a\u0628\u0629", - "pad.toolbar.ul.title": "\u0642\u0627\u0626\u0645\u0629 \u063a\u064a\u0631 \u0645\u0631\u062a\u0628\u0629", - "pad.toolbar.indent.title": "\u0625\u0632\u0627\u062d\u0629", - "pad.toolbar.unindent.title": "\u062d\u0630\u0641 \u0627\u0644\u0625\u0632\u0627\u062d\u0629", - "pad.toolbar.undo.title": "\u0641\u0643 (Ctrl-Z)", - "pad.toolbar.redo.title": "\u062a\u0643\u0631\u0627\u0631 (Ctrl-Y)", - "pad.toolbar.import_export.title": "\u0627\u0633\u062a\u064a\u0631\u0627\u062f\/\u062a\u0635\u062f\u064a\u0631 \u0645\u0646\/\u0625\u0644\u0649 \u062a\u0646\u0633\u064a\u0642\u0627\u062a \u0645\u0644\u0641\u0627\u062a \u0645\u062e\u062a\u0644\u0641\u0629", - "pad.toolbar.timeslider.title": "\u0645\u062a\u0635\u0641\u062d \u0627\u0644\u062a\u0627\u0631\u064a\u062e", - "pad.toolbar.savedRevision.title": "\u0627\u0644\u062a\u0646\u0642\u064a\u062d\u0627\u062a \u0627\u0644\u0645\u062d\u0641\u0648\u0638\u0629", - "pad.toolbar.settings.title": "\u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a", - "pad.colorpicker.save": "\u062a\u0633\u062c\u064a\u0644", - "pad.colorpicker.cancel": "\u0625\u0644\u063a\u0627\u0621", - "pad.loading": "\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u062d\u0645\u064a\u0644...", - "pad.settings.stickychat": "\u0627\u0644\u062f\u0631\u062f\u0634\u0629 \u062f\u0627\u0626\u0645\u0627 \u0639\u0644\u0649 \u0627\u0644\u0634\u0627\u0634\u0629", - "pad.settings.linenocheck": "\u0623\u0631\u0642\u0627\u0645 \u0627\u0644\u0623\u0633\u0637\u0631", - "pad.settings.fontType": "\u0646\u0648\u0639 \u0627\u0644\u062e\u0637:", - "pad.settings.fontType.normal": "\u0639\u0627\u062f\u064a", - "pad.settings.fontType.monospaced": "\u062b\u0627\u0628\u062a \u0627\u0644\u0639\u0631\u0636", - "pad.settings.language": "\u0627\u0644\u0644\u063a\u0629:", - "pad.importExport.import_export": "\u0627\u0633\u062a\u064a\u0631\u0627\u062f\/\u062a\u0635\u062f\u064a\u0631", - "pad.importExport.import": "\u062a\u062d\u0645\u064a\u0644 \u0623\u064a \u0645\u0644\u0641 \u0646\u0635\u064a \u0623\u0648 \u0648\u062b\u064a\u0642\u0629", - "pad.importExport.importSuccessful": "\u0646\u0627\u062c\u062d!", - "pad.importExport.exporthtml": "\u0625\u062a\u0634 \u062a\u064a \u0625\u0645 \u0625\u0644", - "pad.importExport.exportplain": "\u0646\u0635 \u0639\u0627\u062f\u064a", - "pad.importExport.exportword": "\u0645\u0627\u064a\u0643\u0631\u0648\u0633\u0648\u0641\u062a \u0648\u0648\u0631\u062f", - "pad.importExport.exportpdf": "\u0635\u064a\u063a\u0629 \u0627\u0644\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0627\u0644\u0645\u062d\u0645\u0648\u0644\u0629", - "pad.importExport.exportopen": "ODF (\u0646\u0633\u0642 \u0627\u0644\u0645\u0633\u062a\u0646\u062f \u0627\u0644\u0645\u0641\u062a\u0648\u062d)", - "pad.importExport.exportdokuwiki": "\u062f\u0648\u06a9\u0648\u0648\u064a\u0643\u064a", - "pad.modals.connected": "\u0645\u062a\u0635\u0644.", - "pad.modals.forcereconnect": "\u0641\u0631\u0636 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0627\u062a\u0635\u0627\u0644", - "pad.modals.unauth": "\u063a\u064a\u0631 \u0645\u062e\u0648\u0644", - "pad.modals.looping": "\u062a\u0645 \u0642\u0637\u0639 \u0627\u0644\u0627\u062a\u0635\u0627\u0644.", - "pad.modals.initsocketfail": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u062e\u0627\u062f\u0645", - "pad.modals.initsocketfail.explanation": "\u062a\u0639\u0630\u0631 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u062e\u0627\u062f\u0645 \u0627\u0644\u0645\u0632\u0627\u0645\u0646\u0629.", - "pad.modals.slowcommit": "\u062a\u0645 \u0642\u0637\u0639 \u0627\u0644\u0627\u062a\u0635\u0627\u0644.", - "pad.modals.slowcommit.explanation": "\u0627\u0644\u062e\u0627\u062f\u0645 \u0644\u0627 \u064a\u0633\u062a\u062c\u064a\u0628.", - "pad.modals.slowcommit.cause": "\u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0647\u0630\u0627 \u0628\u0633\u0628\u0628 \u0645\u0634\u0627\u0643\u0644 \u0641\u064a \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u0627\u0644\u0634\u0628\u0643\u0629.", - "pad.modals.deleted": "\u0645\u062d\u0630\u0648\u0641.", - "pad.modals.disconnected": "\u0644\u0645 \u062a\u0639\u062f \u0645\u062a\u0651\u0635\u0644.", - "pad.modals.disconnected.explanation": "\u062a\u0645 \u0641\u0642\u062f\u0627\u0646 \u0627\u0644\u0625\u062a\u0635\u0627\u0644 \u0628\u0627\u0644\u062e\u0627\u062f\u0645", - "pad.modals.disconnected.cause": "\u0642\u062f \u064a\u0643\u0648\u0646 \u0627\u0644\u062e\u0627\u062f\u0645 \u063a\u064a\u0631 \u0645\u062a\u0648\u0641\u0631. \u0627\u0644\u0631\u062c\u0627\u0621 \u0625\u0639\u0644\u0627\u0645\u0646\u0627 \u0625\u0630\u0627 \u062a\u0643\u0631\u0631 \u0647\u0630\u0627.", - "pad.share.readonly": "\u0644\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637", - "pad.share.link": "\u0631\u0627\u0628\u0637", - "pad.chat": "\u062f\u0631\u062f\u0634\u0629", - "timeslider.toolbar.authors": "\u0627\u0644\u0645\u0624\u0644\u0641\u0648\u0646:", - "timeslider.toolbar.authorsList": "\u0628\u062f\u0648\u0646 \u0645\u0624\u0644\u0641\u064a\u0646", - "timeslider.exportCurrent": "\u062a\u0635\u062f\u064a\u0631 \u0627\u0644\u0646\u0633\u062e\u0629 \u0627\u0644\u062d\u0627\u0644\u064a\u0629 \u0643:", - "timeslider.version": "\u0625\u0635\u062f\u0627\u0631 {{version}}", - "timeslider.month.january": "\u064a\u0646\u0627\u064a\u0631", - "timeslider.month.february": "\u0641\u0628\u0631\u0627\u064a\u0631", - "timeslider.month.march": "\u0645\u0627\u0631\u0633", - "timeslider.month.april": "\u0623\u0628\u0631\u064a\u0644", - "timeslider.month.may": "\u0645\u0627\u064a\u0648", - "timeslider.month.june": "\u064a\u0648\u0646\u064a\u0648", - "timeslider.month.july": "\u064a\u0648\u0644\u064a\u0648", - "timeslider.month.august": "\u0623\u063a\u0633\u0637\u0633", - "timeslider.month.september": "\u0633\u0628\u062a\u0645\u0628\u0631", - "timeslider.month.october": "\u0623\u0643\u062a\u0648\u0628\u0631", - "timeslider.month.november": "\u0646\u0648\u0641\u0645\u0628\u0631", - "timeslider.month.december": "\u062f\u064a\u0633\u0645\u0628\u0631", - "pad.userlist.entername": "\u0625\u062f\u062e\u0644 \u0627\u0633\u0645\u0643", - "pad.userlist.unnamed": "\u063a\u064a\u0631 \u0645\u0633\u0645\u0649", - "pad.userlist.guest": "\u0636\u064a\u0641", - "pad.userlist.deny": "\u0631\u0641\u0636", - "pad.userlist.approve": "\u0645\u0648\u0627\u0641\u0642\u0629" + "@metadata": { + "authors": [ + "Ali1", + "Tux-tn" + ] + }, + "index.newPad": "باد جديد", + "index.createOpenPad": "أو صنع/فتح باد بوضع إسمه:", + "pad.toolbar.bold.title": "سميك (Ctrl-B)", + "pad.toolbar.italic.title": "مائل (Ctrl-I)", + "pad.toolbar.underline.title": "تسطير (Ctrl-U)", + "pad.toolbar.strikethrough.title": "شطب", + "pad.toolbar.ol.title": "قائمة مرتبة", + "pad.toolbar.ul.title": "قائمة غير مرتبة", + "pad.toolbar.indent.title": "إزاحة", + "pad.toolbar.unindent.title": "حذف الإزاحة", + "pad.toolbar.undo.title": "فك (Ctrl-Z)", + "pad.toolbar.redo.title": "تكرار (Ctrl-Y)", + "pad.toolbar.import_export.title": "استيراد/تصدير من/إلى تنسيقات ملفات مختلفة", + "pad.toolbar.timeslider.title": "متصفح التاريخ", + "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.passwordRequired": "تحتاج إلى كلمة مرور للوصول إلى هذا الباد", + "pad.permissionDenied": "ليس لديك إذن لدخول هذا الباد", + "pad.wrongPassword": "كانت كلمة المرور خاطئة", + "pad.settings.padSettings": "إعدادات الباد", + "pad.settings.myView": "رؤيتي", + "pad.settings.stickychat": "الدردشة دائما على الشاشة", + "pad.settings.colorcheck": "ألوان التأليف", + "pad.settings.linenocheck": "أرقام الأسطر", + "pad.settings.rtlcheck": "قراءة المحتويات من اليمين إلى اليسار؟", + "pad.settings.fontType": "نوع الخط:", + "pad.settings.fontType.normal": "عادي", + "pad.settings.fontType.monospaced": "ثابت العرض", + "pad.settings.globalView": "الرؤية الشاملة", + "pad.settings.language": "اللغة:", + "pad.importExport.import_export": "استيراد/تصدير", + "pad.importExport.import": "تحميل أي ملف نصي أو وثيقة", + "pad.importExport.importSuccessful": "ناجح!", + "pad.importExport.export": "تصدير الباد الحالي بصفة:", + "pad.importExport.exporthtml": "إتش تي إم إل", + "pad.importExport.exportplain": "نص عادي", + "pad.importExport.exportword": "مايكروسوفت وورد", + "pad.importExport.exportpdf": "صيغة المستندات المحمولة", + "pad.importExport.exportopen": "ODF (نسق المستند المفتوح)", + "pad.importExport.exportdokuwiki": "دوکوويكي", + "pad.modals.connected": "متصل.", + "pad.modals.reconnecting": "إعادة الاتصال ببادك", + "pad.modals.forcereconnect": "فرض إعادة الاتصال", + "pad.modals.userdup": "مفتوح في نافذة أخرى", + "pad.modals.userdup.explanation": "يبدو أن هذا الباد تم فتحه في أكثر من نافذة متصفح في هذا الحاسوب.", + "pad.modals.userdup.advice": "إعادة الاتصال لإستعمال هذه النافذة بدلاً من الاخرى.", + "pad.modals.unauth": "غير مخول", + "pad.modals.initsocketfail": "لا يمكن الوصول إلى الخادم", + "pad.modals.initsocketfail.explanation": "تعذر الاتصال بخادم المزامنة.", + "pad.modals.slowcommit.explanation": "الخادم لا يستجيب.", + "pad.modals.slowcommit.cause": "يمكن أن يكون هذا بسبب مشاكل في الاتصال بالشبكة.", + "pad.modals.deleted": "محذوف.", + "pad.modals.deleted.explanation": "تمت إزالة هذا الباد", + "pad.modals.disconnected": "لم تعد متّصل.", + "pad.modals.disconnected.explanation": "تم فقدان الإتصال بالخادم", + "pad.modals.disconnected.cause": "قد يكون الخادم غير متوفر. الرجاء إعلامنا إذا تكرر هذا.", + "pad.share.readonly": "للقراءة فقط", + "pad.share.link": "رابط", + "pad.share.emebdcode": "URL للتضمين", + "pad.chat": "دردشة", + "pad.chat.title": "فتح الدردشة لهذا الباد", + "pad.chat.loadmessages": "تحميل المزيد من الرسائل", + "timeslider.toolbar.returnbutton": "العودة إلى الباد", + "timeslider.toolbar.authors": "المؤلفون:", + "timeslider.toolbar.authorsList": "بدون مؤلفين", + "timeslider.toolbar.exportlink.title": "تصدير", + "timeslider.exportCurrent": "تصدير النسخة الحالية ك:", + "timeslider.version": "إصدار {{version}}", + "timeslider.saved": "محفوظ {{month}} {{day}}, {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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.importing": "الاستيراد...", + "pad.impexp.uploadFailed": "فشل التحميل، الرجاء المحاولة مرة أخرى", + "pad.impexp.importfailed": "فشل الاستيراد", + "pad.impexp.copypaste": "الرجاء نسخ/لصق" }
\ No newline at end of file diff --git a/src/locales/ast.json b/src/locales/ast.json index 7beb706a..c02790d9 100644 --- a/src/locales/ast.json +++ b/src/locales/ast.json @@ -1,120 +1,122 @@ { - "@metadata": { - "authors": { - "1": "Xuacu" - } - }, - "index.newPad": "Nuevu bloc", - "index.createOpenPad": "o crear\/abrir un bloc col nome:", - "pad.toolbar.bold.title": "Negrina (Ctrl-B)", - "pad.toolbar.italic.title": "Cursiva (Ctrl-I)", - "pad.toolbar.underline.title": "Sorray\u00e1u (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Tach\u00e1u", - "pad.toolbar.ol.title": "Llista ordenada", - "pad.toolbar.ul.title": "Llista ensin ordenar", - "pad.toolbar.indent.title": "Sangr\u00eda", - "pad.toolbar.unindent.title": "Sangr\u00eda inversa", - "pad.toolbar.undo.title": "Desfacer (Ctrl-Z)", - "pad.toolbar.redo.title": "Refacer (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Llimpiar los colores d'autor\u00eda", - "pad.toolbar.import_export.title": "Importar\/Esportar ente distintos formatos de ficheru", - "pad.toolbar.timeslider.title": "Eslizador de tiempu", - "pad.toolbar.savedRevision.title": "Revisiones guardaes", - "pad.toolbar.settings.title": "Configuraci\u00f3n", - "pad.toolbar.embed.title": "Incrustar esti bloc", - "pad.toolbar.showusers.title": "Amosar los usuarios d'esti bloc", - "pad.colorpicker.save": "Guardar", - "pad.colorpicker.cancel": "Encaboxar", - "pad.loading": "Cargando...", - "pad.passwordRequired": "Necesites una contrase\u00f1a pa entrar a esti bloc", - "pad.permissionDenied": "Nun tienes permisu pa entrar a esti bloc", - "pad.wrongPassword": "La contrase\u00f1a era incorreuta", - "pad.settings.padSettings": "Configuraci\u00f3n del bloc", - "pad.settings.myView": "la mio vista", - "pad.settings.stickychat": "Alderique en pantalla siempres", - "pad.settings.colorcheck": "Colores d'autor\u00eda", - "pad.settings.linenocheck": "N\u00famberos de llinia", - "pad.settings.fontType": "Tipograf\u00eda:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monoespaciada", - "pad.settings.globalView": "Vista global", - "pad.settings.language": "Llingua:", - "pad.importExport.import_export": "Importar\/Esportar", - "pad.importExport.import": "Xubir cualquier ficheru o documentu de testu", - "pad.importExport.importSuccessful": "\u00a1Correuto!", - "pad.importExport.export": "Esportar el bloc actual como:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Testu simple", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "S\u00f3lo se pue importar dende los formatos de testu planu o html. Pa carauter\u00edstiques d'importaci\u00f3n m\u00e1s avanzaes <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\">instala abiword<\/a>.", - "pad.modals.connected": "Coneut\u00e1u.", - "pad.modals.reconnecting": "Reconeutando col to bloc...", - "pad.modals.forcereconnect": "Forzar la reconex\u00f3n", - "pad.modals.userdup": "Abiertu n'otra ventana", - "pad.modals.userdup.explanation": "Esti bloc paez que ta abiertu en m\u00e1s d'una ventana del navegador d'esti ordenador.", - "pad.modals.userdup.advice": "Reconeutar pa usar esta ventana.", - "pad.modals.unauth": "Non autoriz\u00e1u.", - "pad.modals.unauth.explanation": "Los tos permisos camudaron mientres vies esta p\u00e1xina. Intenta volver a coneutar.", - "pad.modals.looping": "Desconeut\u00e1u.", - "pad.modals.looping.explanation": "Hai problemes de comunicaci\u00f3n col sirvidor de sincronizaci\u00f3n.", - "pad.modals.looping.cause": "Pues tar coneut\u00e1u per un torgafueos o un proxy incompatibles.", - "pad.modals.initsocketfail": "Sirvidor incalcanzable.", - "pad.modals.initsocketfail.explanation": "Nun se pudo coneutar col sirvidor de sincronizaci\u00f3n.", - "pad.modals.initsocketfail.cause": "Probablemente ye por aciu d'un problema col navegador o cola to conex\u00f3n a internet.", - "pad.modals.slowcommit": "Desconeut\u00e1u.", - "pad.modals.slowcommit.explanation": "El sirvidor nun respuende.", - "pad.modals.slowcommit.cause": "Pue ser por problemes de coneutivid\u00e1 de la rede.", - "pad.modals.deleted": "Desanici\u00e1u", - "pad.modals.deleted.explanation": "Esti bloc se desanici\u00f3.", - "pad.modals.disconnected": "Te desconeutasti.", - "pad.modals.disconnected.explanation": "Perdi\u00f3se la conex\u00f3n col sirvidor", - "pad.modals.disconnected.cause": "El sirvidor podr\u00eda nun tar disponible. Por favor, avisanos si sigue pasando esto.", - "pad.share": "Compartir esti bloc", - "pad.share.readonly": "S\u00f3lo llectura", - "pad.share.link": "Enllaz", - "pad.share.emebdcode": "Incrustar URL", - "pad.chat": "Chat", - "pad.chat.title": "Abrir el chat d'esti bloc.", - "pad.chat.loadmessages": "Cargar m\u00e1s mensaxes", - "timeslider.pageTitle": "Eslizador de tiempu de {{appTitle}}", - "timeslider.toolbar.returnbutton": "Tornar al bloc", - "timeslider.toolbar.authors": "Autores:", - "timeslider.toolbar.authorsList": "Nun hai autores", - "timeslider.toolbar.exportlink.title": "Esportar", - "timeslider.exportCurrent": "Esportar la versi\u00f3n actual como:", - "timeslider.version": "Versi\u00f3n {{version}}", - "timeslider.saved": "Guard\u00e1u el {{day}} de {{month}} de {{year}}", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "de xineru", - "timeslider.month.february": "de febreru", - "timeslider.month.march": "de marzu", - "timeslider.month.april": "d'abril", - "timeslider.month.may": "de mayu", - "timeslider.month.june": "de xunu", - "timeslider.month.july": "de xunetu", - "timeslider.month.august": "d'agostu", - "timeslider.month.september": "de setiembre", - "timeslider.month.october": "d'ochobre", - "timeslider.month.november": "de payares", - "timeslider.month.december": "d'avientu", - "timeslider.unnamedauthor": "{{num}} autor an\u00f3nimu", - "timeslider.unnamedauthors": "{{num}} autores an\u00f3nimos", - "pad.savedrevs.marked": "Esta revisi\u00f3n marcose como revisi\u00f3n guardada", - "pad.userlist.entername": "Escribi'l to nome", - "pad.userlist.unnamed": "ensin nome", - "pad.userlist.guest": "Invit\u00e1u", - "pad.userlist.deny": "Refugar", - "pad.userlist.approve": "Aprobar", - "pad.editbar.clearcolors": "\u00bfLlimpiar los colores d'autor\u00eda nel documentu ensembre?", - "pad.impexp.importbutton": "Importar agora", - "pad.impexp.importing": "Importando...", - "pad.impexp.confirmimport": "La importaci\u00f3n d'un ficheru sustituir\u00e1'l testu actual del bloc. \u00bfSeguro que quies siguir?", - "pad.impexp.convertFailed": "Nun pudimos importar esti ficheru. Por favor,usa otru formatu de ficheru diferente o copia y pega manualmente.", - "pad.impexp.uploadFailed": "Fall\u00f3 la carga del ficheru, intentalo otra vuelta", - "pad.impexp.importfailed": "Fall\u00f3 la importaci\u00f3n", - "pad.impexp.copypaste": "Por favor, copia y apega", - "pad.impexp.exportdisabled": "La esportaci\u00f3n en formatu {{type}} ta desactivada. Por favor, comunica col alministrador del sistema pa m\u00e1s detalles." + "@metadata": { + "authors": { + "1": "Xuacu" + } + }, + "index.newPad": "Nuevu bloc", + "index.createOpenPad": "o crear/abrir un bloc col nome:", + "pad.toolbar.bold.title": "Negrina (Ctrl-B)", + "pad.toolbar.italic.title": "Cursiva (Ctrl-I)", + "pad.toolbar.underline.title": "Sorrayáu (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Tacháu", + "pad.toolbar.ol.title": "Llista ordenada", + "pad.toolbar.ul.title": "Llista ensin ordenar", + "pad.toolbar.indent.title": "Sangría", + "pad.toolbar.unindent.title": "Sangría inversa", + "pad.toolbar.undo.title": "Desfacer (Ctrl-Z)", + "pad.toolbar.redo.title": "Refacer (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Llimpiar los colores d'autoría", + "pad.toolbar.import_export.title": "Importar/Esportar ente distintos formatos de ficheru", + "pad.toolbar.timeslider.title": "Eslizador de tiempu", + "pad.toolbar.savedRevision.title": "Guardar revisión", + "pad.toolbar.settings.title": "Configuración", + "pad.toolbar.embed.title": "Compartir ya incrustar esti bloc", + "pad.toolbar.showusers.title": "Amosar los usuarios d'esti bloc", + "pad.colorpicker.save": "Guardar", + "pad.colorpicker.cancel": "Encaboxar", + "pad.loading": "Cargando...", + "pad.passwordRequired": "Necesites una contraseña pa entrar a esti bloc", + "pad.permissionDenied": "Nun tienes permisu pa entrar a esti bloc", + "pad.wrongPassword": "La contraseña era incorreuta", + "pad.settings.padSettings": "Configuración del bloc", + "pad.settings.myView": "la mio vista", + "pad.settings.stickychat": "Alderique en pantalla siempres", + "pad.settings.colorcheck": "Colores d'autoría", + "pad.settings.linenocheck": "Númberos de llinia", + "pad.settings.rtlcheck": "¿Lleer el conteníu de drecha a izquierda?", + "pad.settings.fontType": "Tipografía:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monoespaciada", + "pad.settings.globalView": "Vista global", + "pad.settings.language": "Llingua:", + "pad.importExport.import_export": "Importar/Esportar", + "pad.importExport.import": "Xubir cualquier ficheru o documentu de testu", + "pad.importExport.importSuccessful": "¡Correuto!", + "pad.importExport.export": "Esportar el bloc actual como:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Testu simple", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Sólo se pue importar dende los formatos de testu planu o html. Pa carauterístiques d'importación más avanzaes \u003Ca 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\"\u003Einstala abiword\u003C/a\u003E.", + "pad.modals.connected": "Coneutáu.", + "pad.modals.reconnecting": "Reconeutando col to bloc...", + "pad.modals.forcereconnect": "Forzar la reconexón", + "pad.modals.userdup": "Abiertu n'otra ventana", + "pad.modals.userdup.explanation": "Esti bloc paez que ta abiertu en más d'una ventana del navegador d'esti ordenador.", + "pad.modals.userdup.advice": "Reconeutar pa usar esta ventana.", + "pad.modals.unauth": "Non autorizáu", + "pad.modals.unauth.explanation": "Los tos permisos camudaron mientres vies esta páxina. Intenta volver a coneutar.", + "pad.modals.looping.explanation": "Hai problemes de comunicación col sirvidor de sincronización.", + "pad.modals.looping.cause": "Pues tar coneutáu per un torgafueos o un proxy incompatibles.", + "pad.modals.initsocketfail": "Sirvidor incalcanzable.", + "pad.modals.initsocketfail.explanation": "Nun se pudo coneutar col sirvidor de sincronización.", + "pad.modals.initsocketfail.cause": "Probablemente ye por aciu d'un problema col navegador o cola to conexón a internet.", + "pad.modals.slowcommit.explanation": "El sirvidor nun respuende.", + "pad.modals.slowcommit.cause": "Pue ser por problemes de coneutividá de la rede.", + "pad.modals.badChangeset.explanation": "El sirvidor de sincronización clasificó como illegal una edición que fizo.", + "pad.modals.badChangeset.cause": "Esto podría dase por una mala configuración del sirvidor o por algún otru comportamientu inesperáu. Comuníquese col alministrador del serviciu si cree qu'esto ye un error. Intente volver a coneutar pa siguir editando.", + "pad.modals.corruptPad.explanation": "El bloc al qu'intenta entrar ta corrompíu.", + "pad.modals.corruptPad.cause": "Esto pue ser por una mala configuración del sirvidor o por algún otru comportamientu inesperáu. Comuníquese col alministrador del serviciu.", + "pad.modals.deleted": "Desaniciáu", + "pad.modals.deleted.explanation": "Esti bloc se desanició.", + "pad.modals.disconnected": "Te desconeutasti.", + "pad.modals.disconnected.explanation": "Perdióse la conexón col sirvidor", + "pad.modals.disconnected.cause": "El sirvidor podría nun tar disponible. Por favor, avise al alministrador del serviciu si sigue pasando esto.", + "pad.share": "Compartir esti bloc", + "pad.share.readonly": "Sólo llectura", + "pad.share.link": "Enllaz", + "pad.share.emebdcode": "Incrustar URL", + "pad.chat": "Chat", + "pad.chat.title": "Abrir el chat d'esti bloc.", + "pad.chat.loadmessages": "Cargar más mensaxes", + "timeslider.pageTitle": "Eslizador de tiempu de {{appTitle}}", + "timeslider.toolbar.returnbutton": "Tornar al bloc", + "timeslider.toolbar.authors": "Autores:", + "timeslider.toolbar.authorsList": "Nun hai autores", + "timeslider.toolbar.exportlink.title": "Esportar", + "timeslider.exportCurrent": "Esportar la versión actual como:", + "timeslider.version": "Versión {{version}}", + "timeslider.saved": "Guardáu el {{day}} de {{month}} de {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "de xineru", + "timeslider.month.february": "de febreru", + "timeslider.month.march": "de marzu", + "timeslider.month.april": "d'abril", + "timeslider.month.may": "de mayu", + "timeslider.month.june": "de xunu", + "timeslider.month.july": "de xunetu", + "timeslider.month.august": "d'agostu", + "timeslider.month.september": "de setiembre", + "timeslider.month.october": "d'ochobre", + "timeslider.month.november": "de payares", + "timeslider.month.december": "d'avientu", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor anónimu, other: autores anónimos]}", + "pad.savedrevs.marked": "Esta revisión marcose como revisión guardada", + "pad.userlist.entername": "Escribi'l to nome", + "pad.userlist.unnamed": "ensin nome", + "pad.userlist.guest": "Invitáu", + "pad.userlist.deny": "Refugar", + "pad.userlist.approve": "Aprobar", + "pad.editbar.clearcolors": "¿Llimpiar los colores d'autoría nel documentu ensembre?", + "pad.impexp.importbutton": "Importar agora", + "pad.impexp.importing": "Importando...", + "pad.impexp.confirmimport": "La importación d'un ficheru sustituirá'l testu actual del bloc. ¿Seguro que quies siguir?", + "pad.impexp.convertFailed": "Nun pudimos importar esti ficheru. Por favor,usa otru formatu de ficheru diferente o copia y pega manualmente.", + "pad.impexp.uploadFailed": "Falló la carga del ficheru, intentalo otra vuelta", + "pad.impexp.importfailed": "Falló la importación", + "pad.impexp.copypaste": "Por favor, copia y apega", + "pad.impexp.exportdisabled": "La esportación en formatu {{type}} ta desactivada. Por favor, comunica col alministrador del sistema pa más detalles." }
\ No newline at end of file diff --git a/src/locales/az.json b/src/locales/az.json index 95c65798..056e1a5e 100644 --- a/src/locales/az.json +++ b/src/locales/az.json @@ -1,121 +1,124 @@ { - "@metadata": { - "authors": [ - "AZISS", - "Khan27" - ] - }, - "index.newPad": "Yeni Pad", - "index.createOpenPad": "v\u0259 ya Pad-\u0131 ad\u0131 il\u0259 yarat\/a\u00e7:", - "pad.toolbar.bold.title": "Qal\u0131n (Ctrl-B)", - "pad.toolbar.italic.title": "Kursiv (Ctrl-I)", - "pad.toolbar.underline.title": "Alt\u0131ndan x\u0259tt \u00e7\u0259km\u0259 (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Pozulma", - "pad.toolbar.ol.title": "Qaydaya sal\u0131nm\u0131\u015f siyah\u0131", - "pad.toolbar.ul.title": "Qaydaya sal\u0131nmam\u0131\u015f siyah\u0131", - "pad.toolbar.indent.title": "Abzas", - "pad.toolbar.unindent.title": "\u00c7\u0131x\u0131nt\u0131", - "pad.toolbar.undo.title": "Geri Al (Ctrl-Z)", - "pad.toolbar.redo.title": "Qaytarmaq (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "M\u00fc\u0259lliflik R\u0259ngl\u0259rini T\u0259mizl\u0259", - "pad.toolbar.import_export.title": "M\u00fcxt\u0259lif fayl formatlar\u0131n(a\/dan) idxal\/ixrac", - "pad.toolbar.timeslider.title": "Vaxt c\u0259dv\u0259li", - "pad.toolbar.savedRevision.title": "Saxlan\u0131lan D\u00fcz\u0259li\u015fl\u0259r", - "pad.toolbar.settings.title": "T\u0259nziml\u0259m\u0259l\u0259r", - "pad.toolbar.embed.title": "Bu pad-\u0131 yay\u0131mla", - "pad.toolbar.showusers.title": "Pad-da istifad\u0259\u00e7il\u0259ri g\u00f6st\u0259r", - "pad.colorpicker.save": "Saxla", - "pad.colorpicker.cancel": "\u0130mtina", - "pad.loading": "Y\u00fckl\u0259nir...", - "pad.passwordRequired": "Bu pad-a daxil olmaq \u00fc\u00e7\u00fcn parol laz\u0131md\u0131r", - "pad.permissionDenied": "Bu pad-a daxil olmaq \u00fc\u00e7\u00fcn icaz\u0259niz yoxdur", - "pad.wrongPassword": "Sizin parolunuz s\u0259hvdir", - "pad.settings.padSettings": "Pad T\u0259nziml\u0259m\u0259l\u0259ri", - "pad.settings.myView": "M\u0259nim G\u00f6r\u00fcnt\u00fcm", - "pad.settings.stickychat": "S\u00f6hb\u0259t h\u0259mi\u015f\u0259 ekranda", - "pad.settings.colorcheck": "M\u00fc\u0259lliflik r\u0259ngl\u0259ri", - "pad.settings.linenocheck": "S\u0259tir n\u00f6mr\u0259l\u0259ri", - "pad.settings.fontType": "\u015eriftin tipi:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monobo\u015fluq", - "pad.settings.globalView": "\u00dcmumi g\u00f6r\u00fcn\u00fc\u015f", - "pad.settings.language": "Dil:", - "pad.importExport.import_export": "\u0130dxal\/\u0130xrac", - "pad.importExport.import": "H\u0259r hans\u0131 bir m\u0259tn fayl\u0131 v\u0259 ya s\u0259n\u0259d y\u00fckl\u0259", - "pad.importExport.importSuccessful": "U\u011furlu!", - "pad.importExport.export": "Haz\u0131rki pad-\u0131 ixrac etm\u0259k kimi:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Adi m\u0259tn", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (A\u00e7\u0131q S\u0259n\u0259d Format\u0131)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Siz yaln\u0131z adi m\u0259tnd\u0259n v\u0259 ya HTML-d\u0259n idxal ed\u0259 bil\u0259rsiniz. \u0130dxal\u0131n daha m\u00fcr\u0259kk\u0259b funksiyalar\u0131 \u00fc\u00e7\u00fcn, z\u0259hm\u0259t olmasa, <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\"> AbiWord-i qura\u015fd\u0131r\u0131n<\/a>.", - "pad.modals.connected": "Ba\u011fland\u0131.", - "pad.modals.reconnecting": "Sizin pad yenid\u0259n qo\u015fulur..", - "pad.modals.forcereconnect": "M\u0259cbur t\u0259krar\u0259n ba\u011flan", - "pad.modals.userdup": "Ba\u015fqa p\u0259nc\u0259r\u0259d\u0259 art\u0131q a\u00e7\u0131qd\u0131r", - "pad.modals.userdup.explanation": "S\u0259n\u0259d, ola bilsin ki, bu kompyuterd\u0259, brauzerin bir ne\u00e7\u0259 p\u0259nc\u0259r\u0259sind\u0259 a\u00e7\u0131lm\u0131\u015fd\u0131r.", - "pad.modals.userdup.advice": "Bu p\u0259nc\u0259r\u0259d\u0259n istifad\u0259yl\u0259 yenid\u0259n qo\u015fulun.", - "pad.modals.unauth": "\u0130caz\u0259li deyil", - "pad.modals.unauth.explanation": "Bu s\u0259hif\u0259y\u0259 baxd\u0131\u011f\u0131n\u0131z vaxt sizin icaz\u0259niz d\u0259yi\u015filib. B\u0259rpa etm\u0259k \u00fc\u015f\u00fcn yenid\u0259n c\u0259hd edin.", - "pad.modals.looping": "\u018flaq\u0259 k\u0259sildi.", - "pad.modals.looping.explanation": "Sinxronla\u015fd\u0131rma serveri il\u0259 kommunikasiya x\u0259tas\u0131 var.", - "pad.modals.looping.cause": "Ola bilsin ki, siz uy\u011fun olmayan fayrvol v\u0259 ya proksi vasit\u0259si il\u0259 qo\u015fulma\u011fa c\u0259hd g\u00f6st\u0259rirsiniz.", - "pad.modals.initsocketfail": "Server \u0259l\u00e7atmazd\u0131r.", - "pad.modals.initsocketfail.explanation": "Sinxronla\u015fd\u0131rma serverin\u0259 qo\u015fulma m\u00fcmk\u00fcns\u00fczd\u00fcr.", - "pad.modals.initsocketfail.cause": "Ehtimal ki, bu problem sizin brauzerinizl\u0259 v\u0259 ya internet-birl\u0259\u015fm\u0259nizl\u0259 \u0259laq\u0259d\u0259rdir.", - "pad.modals.slowcommit": "\u018flaq\u0259 k\u0259sildi.", - "pad.modals.slowcommit.explanation": "Server cavab vermir.", - "pad.modals.slowcommit.cause": "Bu \u015f\u0259b\u0259k\u0259 ba\u011flant\u0131s\u0131nda probleml\u0259r yarana bil\u0259r.", - "pad.modals.deleted": "Silindi.", - "pad.modals.deleted.explanation": "Bu pad silindi.", - "pad.modals.disconnected": "\u018flaq\u0259 k\u0259silib.", - "pad.modals.disconnected.explanation": "Server\u0259 qo\u015fulma itirilib", - "pad.modals.disconnected.cause": "Server istifad\u0259 olunmur. \u018fg\u0259r problem t\u0259krarlanacaqsa, biz\u0259 bildirin.", - "pad.share": "Bu pad-\u0131 yay\u0131mla", - "pad.share.readonly": "Yaln\u0131z oxuyun", - "pad.share.link": "Ke\u00e7id", - "pad.share.emebdcode": "URL-ni yay\u0131mla", - "pad.chat": "S\u00f6hb\u0259t", - "pad.chat.title": "Bu pad \u00fc\u00e7\u00fcn chat a\u00e7\u0131n.", - "pad.chat.loadmessages": "Daha \u00e7ox mesaj y\u00fckl\u0259", - "timeslider.pageTitle": "{{appTitle}} Vaxt c\u0259dv\u0259li", - "timeslider.toolbar.returnbutton": "Pad-a qay\u0131t", - "timeslider.toolbar.authors": "M\u00fc\u0259llifl\u0259r:", - "timeslider.toolbar.authorsList": "M\u00fc\u0259llif yoxdur", - "timeslider.toolbar.exportlink.title": "\u0130xrac", - "timeslider.exportCurrent": "Cari versiyan\u0131 ixrac etm\u0259k kimi:", - "timeslider.version": "Versiya {{version}}", - "timeslider.saved": "Saxlan\u0131ld\u0131 {{day}} {{month}}, {{year}}", - "timeslider.dateformat": "{{day}} {{month}}, {{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Yanvar", - "timeslider.month.february": "Fevral", - "timeslider.month.march": "Mart", - "timeslider.month.april": "Aprel", - "timeslider.month.may": "May", - "timeslider.month.june": "\u0130yun", - "timeslider.month.july": "\u0130yul", - "timeslider.month.august": "Avqust", - "timeslider.month.september": "Sentyabr", - "timeslider.month.october": "Oktyabr", - "timeslider.month.november": "Noyabr", - "timeslider.month.december": "Dekabr", - "timeslider.unnamedauthor": "{{num}} ads\u0131z m\u00fc\u0259llif", - "timeslider.unnamedauthors": "{{num}} ads\u0131z m\u00fc\u0259llifl\u0259r", - "pad.savedrevs.marked": "Bu versiya indi yadda\u015fa saxlanm\u0131\u015f kimi ni\u015fanland\u0131", - "pad.userlist.entername": "Ad\u0131n\u0131z\u0131 daxil et", - "pad.userlist.unnamed": "ads\u0131z", - "pad.userlist.guest": "Qonaq", - "pad.userlist.deny": "\u0130nkar etm\u0259k", - "pad.userlist.approve": "T\u0259sdiql\u0259m\u0259k", - "pad.editbar.clearcolors": "B\u00fct\u00fcn s\u0259n\u0259dl\u0259rd\u0259 m\u00fc\u0259lliflik r\u0259ngl\u0259rini t\u0259mizl\u0259?", - "pad.impexp.importbutton": "\u0130ndi idxal edin", - "pad.impexp.importing": "\u0130dxal...", - "pad.impexp.confirmimport": "Fayl\u0131n idxal\u0131 cari m\u0259tni yenil\u0259y\u0259c\u0259k. Siz \u0259minsinizmi ki, davam etm\u0259k ist\u0259yirsiniz?", - "pad.impexp.convertFailed": "Biz bu fayl idxal etm\u0259k m\u00fcmk\u00fcn deyil idi. Xahi\u015f olunur m\u00fcxt\u0259lif s\u0259n\u0259dd\u0259n istifad\u0259 edin v\u0259 ya kopyalay\u0131b yap\u0131\u015fd\u0131rmaq yolundan istifad\u0259 edin", - "pad.impexp.uploadFailed": "Y\u00fckl\u0259m\u0259d\u0259 s\u0259hv, xahi\u015f olunur yen\u0259 c\u0259hd edin", - "pad.impexp.importfailed": "\u0130dxal zaman\u0131 s\u0259hv", - "pad.impexp.copypaste": "Xahi\u015f edirik kopyalay\u0131b yap\u0131\u015fd\u0131r\u0131n", - "pad.impexp.exportdisabled": "{{ type}} format\u0131nda ixrac s\u00f6nd\u00fcr\u00fclm\u00fc\u015fd\u00fcr. \u018ftrafl\u0131 informasiya \u00fc\u00e7\u00fcn sistem administratoruna m\u00fcraci\u0259t ediniz." + "@metadata": { + "authors": [ + "AZISS", + "Khan27", + "Mushviq Abdulla" + ] + }, + "index.newPad": "Yeni Pad", + "index.createOpenPad": "və ya Pad-ı adı ilə yarat/aç:", + "pad.toolbar.bold.title": "Qalın (Ctrl-B)", + "pad.toolbar.italic.title": "Kursiv (Ctrl-I)", + "pad.toolbar.underline.title": "Altından xətt çəkmə (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Pozulma", + "pad.toolbar.ol.title": "Qaydaya salınmış siyahı", + "pad.toolbar.ul.title": "Qaydaya salınmamış siyahı", + "pad.toolbar.indent.title": "Abzas", + "pad.toolbar.unindent.title": "Çıxıntı", + "pad.toolbar.undo.title": "Geri Al (Ctrl-Z)", + "pad.toolbar.redo.title": "Qaytarmaq (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Müəlliflik Rənglərini Təmizlə", + "pad.toolbar.import_export.title": "Müxtəlif fayl formatların(a/dan) idxal/ixrac", + "pad.toolbar.timeslider.title": "Vaxt cədvəli", + "pad.toolbar.savedRevision.title": "Saxlanılan Düzəlişlər", + "pad.toolbar.settings.title": "Tənzimləmələr", + "pad.toolbar.embed.title": "Bu pad-ı yayımla", + "pad.toolbar.showusers.title": "Pad-da istifadəçiləri göstər", + "pad.colorpicker.save": "Saxla", + "pad.colorpicker.cancel": "İmtina", + "pad.loading": "Yüklənir...", + "pad.passwordRequired": "Bu pad-a daxil olmaq üçün parol lazımdır", + "pad.permissionDenied": "Bu pad-a daxil olmaq üçün icazəniz yoxdur", + "pad.wrongPassword": "Sizin parolunuz səhvdir", + "pad.settings.padSettings": "Pad Tənzimləmələri", + "pad.settings.myView": "Mənim Görüntüm", + "pad.settings.stickychat": "Söhbət həmişə ekranda", + "pad.settings.colorcheck": "Müəlliflik rəngləri", + "pad.settings.linenocheck": "Sətir nömrələri", + "pad.settings.rtlcheck": "Mühtəviyyat sağdan sola doğru oxunsunmu?", + "pad.settings.fontType": "Şriftin tipi:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monoboşluq", + "pad.settings.globalView": "Ümumi görünüş", + "pad.settings.language": "Dil:", + "pad.importExport.import_export": "İdxal/İxrac", + "pad.importExport.import": "Hər hansı bir mətn faylı və ya sənəd yüklə", + "pad.importExport.importSuccessful": "Uğurlu!", + "pad.importExport.export": "Hazırki pad-ı ixrac etmək kimi:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Adi mətn", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Açıq Sənəd Formatı)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Siz yalnız adi mətndən və ya HTML-dən idxal edə bilərsiniz. İdxalın daha mürəkkəb funksiyaları üçün, zəhmət olmasa, \u003Ca 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\"\u003E AbiWord-i quraşdırın\u003C/a\u003E.", + "pad.modals.connected": "Bağlandı.", + "pad.modals.reconnecting": "Sizin pad yenidən qoşulur..", + "pad.modals.forcereconnect": "Məcbur təkrarən bağlan", + "pad.modals.userdup": "Başqa pəncərədə artıq açıqdır", + "pad.modals.userdup.explanation": "Sənəd, ola bilsin ki, bu kompyuterdə, brauzerin bir neçə pəncərəsində açılmışdır.", + "pad.modals.userdup.advice": "Bu pəncərədən istifadəylə yenidən qoşulun.", + "pad.modals.unauth": "İcazəli deyil", + "pad.modals.unauth.explanation": "Bu səhifəyə baxdığınız vaxt sizin icazəniz dəyişilib. Bərpa etmək üşün yenidən cəhd edin.", + "pad.modals.looping.explanation": "Sinxronlaşdırma serveri ilə kommunikasiya xətası var.", + "pad.modals.looping.cause": "Ola bilsin ki, siz uyğun olmayan fayrvol və ya proksi vasitəsi ilə qoşulmağa cəhd göstərirsiniz.", + "pad.modals.initsocketfail": "Server əlçatmazdır.", + "pad.modals.initsocketfail.explanation": "Sinxronlaşdırma serverinə qoşulma mümkünsüzdür.", + "pad.modals.initsocketfail.cause": "Ehtimal ki, bu problem sizin brauzerinizlə və ya internet-birləşmənizlə əlaqədərdir.", + "pad.modals.slowcommit.explanation": "Server cavab vermir.", + "pad.modals.slowcommit.cause": "Bu şəbəkə bağlantısında problemlər yarana bilər.", + "pad.modals.badChangeset.explanation": "Etdiyiniz bir redaktə sinxronizasiya serveri tərəfindən qeyri-leqal/qanundan kənar olaraq təsbit edildi.", + "pad.modals.badChangeset.cause": "Bu, yanlış server tərtibatı ya da başqa bir gözlənilməyən davranışlar nəticəsində ola bilər. Bu sizə bir xəta imiş kimi görünürsə lütfən servis nəzarətçisi ilə əlaqə yaradın. Redaktəyə davam etmək üçün yenidən qoşulmanı yoxlayın.", + "pad.modals.corruptPad.explanation": "Əldə etməyə çalışdığınız sənəd zədəlidir.", + "pad.modals.corruptPad.cause": "Bu, yanlış server tərtibatı ya da başqa bir gözlənilməyən davranışlardan əmələ gələ bilər. Lütfən servis nəzarətçisi ilə əlaqə yaradın.", + "pad.modals.deleted": "Silindi.", + "pad.modals.deleted.explanation": "Bu pad silindi.", + "pad.modals.disconnected": "Əlaqə kəsilib.", + "pad.modals.disconnected.explanation": "Serverə qoşulma itirilib", + "pad.modals.disconnected.cause": "Server istifadə olunmur. Əgər problem təkrarlanacaqsa, bizə bildirin.", + "pad.share": "Bu pad-ı yayımla", + "pad.share.readonly": "Yalnız oxuyun", + "pad.share.link": "Keçid", + "pad.share.emebdcode": "URL-ni yayımla", + "pad.chat": "Söhbət", + "pad.chat.title": "Bu pad üçün chat açın.", + "pad.chat.loadmessages": "Daha çox mesaj yüklə", + "timeslider.pageTitle": "{{appTitle}} Vaxt cədvəli", + "timeslider.toolbar.returnbutton": "Pad-a qayıt", + "timeslider.toolbar.authors": "Müəlliflər:", + "timeslider.toolbar.authorsList": "Müəllif yoxdur", + "timeslider.toolbar.exportlink.title": "İxrac", + "timeslider.exportCurrent": "Cari versiyanı ixrac etmək kimi:", + "timeslider.version": "Versiya {{version}}", + "timeslider.saved": "Saxlanıldı {{day}} {{month}}, {{year}}", + "timeslider.dateformat": "{{day}} {{month}}, {{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Yanvar", + "timeslider.month.february": "Fevral", + "timeslider.month.march": "Mart", + "timeslider.month.april": "Aprel", + "timeslider.month.may": "May", + "timeslider.month.june": "İyun", + "timeslider.month.july": "İyul", + "timeslider.month.august": "Avqust", + "timeslider.month.september": "Sentyabr", + "timeslider.month.october": "Oktyabr", + "timeslider.month.november": "Noyabr", + "timeslider.month.december": "Dekabr", + "timeslider.unnamedauthors": "{{num}} adsız müəlliflər", + "pad.savedrevs.marked": "Bu versiya indi yaddaşa saxlanmış kimi nişanlandı", + "pad.userlist.entername": "Adınızı daxil et", + "pad.userlist.unnamed": "adsız", + "pad.userlist.guest": "Qonaq", + "pad.userlist.deny": "İnkar etmək", + "pad.userlist.approve": "Təsdiqləmək", + "pad.editbar.clearcolors": "Bütün sənədlərdə müəlliflik rənglərini təmizlə?", + "pad.impexp.importbutton": "İndi idxal edin", + "pad.impexp.importing": "İdxal...", + "pad.impexp.confirmimport": "Faylın idxalı cari mətni yeniləyəcək. Siz əminsinizmi ki, davam etmək istəyirsiniz?", + "pad.impexp.convertFailed": "Biz bu fayl idxal etmək mümkün deyil idi. Xahiş olunur müxtəlif sənəddən istifadə edin və ya kopyalayıb yapışdırmaq yolundan istifadə edin", + "pad.impexp.uploadFailed": "Yükləmədə səhv, xahiş olunur yenə cəhd edin", + "pad.impexp.importfailed": "İdxal zamanı səhv", + "pad.impexp.copypaste": "Xahiş edirik kopyalayıb yapışdırın", + "pad.impexp.exportdisabled": "{{ type}} formatında ixrac söndürülmüşdür. Ətraflı informasiya üçün sistem administratoruna müraciət ediniz." }
\ No newline at end of file diff --git a/src/locales/azb.json b/src/locales/azb.json index 5bfe448b..0dfa45e1 100644 --- a/src/locales/azb.json +++ b/src/locales/azb.json @@ -1,73 +1,72 @@ { - "@metadata": { - "authors": [ - "Amir a57", - "Mousa" - ] - }, - "index.newPad": "\u06cc\u0626\u0646\u06cc \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc", - "index.createOpenPad": "\u06cc\u0627 \u062f\u0627 \u0627\u06cc\u062c\u0627\u062f \/\u0628\u06cc\u0631 \u067e\u062f \u0622\u062f\u0644\u0627 \u0628\u0631\u0627\u0628\u0631 \u0622\u0686\u0645\u0627\u0642:", - "pad.toolbar.bold.title": "\u0628\u0648\u06cc\u0648\u062a", - "pad.toolbar.italic.title": "\u0645\u0648\u0631\u0628", - "pad.toolbar.underline.title": "\u062e\u0637\u062f\u06cc\u0646 \u0622\u0644\u062a\u06cc", - "pad.toolbar.strikethrough.title": "\u062e\u0637 \u06cc\u0626\u0645\u06cc\u0634", - "pad.toolbar.ol.title": "\u062c\u0648\u062a\u062f\u0646\u0645\u06cc\u0634 \u0641\u0647\u0631\u0633\u062a", - "pad.toolbar.ul.title": "\u062c\u0648\u062a\u062f\u0646\u0645\u0645\u06cc\u0634 \u0641\u0647\u0631\u0633\u062a", - "pad.toolbar.indent.title": "\u0627\u06cc\u0686\u0631\u06cc \u0628\u0627\u062a\u062f\u06cc\u06af\u06cc", - "pad.toolbar.unindent.title": "\u0627\u0626\u0634\u06cc\u06af\u0647 \u0686\u06cc\u062e\u062f\u06cc\u06af\u06cc", - "pad.toolbar.undo.title": "\u0628\u0627\u0637\u0644 \u0627\u0626\u062a\u0645\u06a9", - "pad.toolbar.redo.title": "\u06cc\u0626\u0646\u06cc \u062f\u0646", - "pad.toolbar.clearAuthorship.title": "\u06cc\u0627\u0632\u06cc\u0686\u06cc \u0631\u0646\u06af \u0644\u0631\u06cc \u067e\u0648\u0632\u0645\u0627\u0642", - "pad.toolbar.import_export.title": "\u0622\u06cc\u0631\u06cc \u0642\u0627\u0644\u06cc\u0628 \u0644\u0631\u062f\u0646 \/\u0627\u06cc\u0686\u0631\u06cc \u062a\u0648\u06a9\u0645\u0647 \/ \u0627\u0626\u0634\u06cc\u06af\u0647 \u062a\u0648\u06a9\u0645\u0647", - "pad.toolbar.timeslider.title": "\u0632\u0645\u0627\u0646 \u0627\u0633\u0644\u0627\u06cc\u062f\u06cc", - "pad.toolbar.savedRevision.title": "\u0633\u0627\u062e\u0644\u0627\u0646\u0645\u06cc\u0634 \u0646\u0633\u062e\u0647 \u0644\u0631", - "pad.toolbar.settings.title": "\u062a\u0646\u0638\u06cc\u0645\u0644\u0631", - "pad.toolbar.embed.title": "\u0628\u0648 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc\u0646 \u06cc\u0626\u0631\u0644\u062a\u0645\u06a9", - "pad.toolbar.showusers.title": "\u0628\u0648 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0627 \u0627\u0648\u0644\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631\u0644\u0631\u06cc \u06af\u0648\u0633\u062a\u0631", - "pad.colorpicker.save": "\u0642\u0626\u06cc\u062f \u0627\u0626\u062a", - "pad.colorpicker.cancel": "\u0644\u063a\u0648 \u0627\u0626\u062a", - "pad.loading": "\u06cc\u0648\u06a9\u0644\u0646\u06cc\u0631...", - "pad.settings.padSettings": "\u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc\u0646\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0644\u0631", - "pad.settings.myView": "\u0645\u0646\u06cc\u0645 \u06af\u0648\u0631\u0646\u062a\u0648\u0645", - "pad.settings.stickychat": "\u0646\u0645\u0627\u06cc\u0634 \u0635\u0641\u062d\u0647 \u0633\u06cc\u0646\u062f\u0647 \u0647\u0645\u06cc\u0634\u0647 \u0686\u062a \u0627\u0648\u0644\u0633\u0648\u0646", - "pad.settings.colorcheck": "\u06cc\u0627\u0632\u06cc\u0686\u06cc \u0631\u0646\u06af \u0644\u0631\u06cc", - "pad.settings.linenocheck": "\u062e\u0637\u0648\u0637 \u0634\u0645\u0627\u0631\u0647 \u0633\u06cc", - "pad.settings.fontType": "\u0642\u0644\u0645 \u0646\u0648\u0639\u06cc", - "pad.settings.fontType.normal": "\u0646\u0648\u0631\u0645\u0627\u0644", - "pad.settings.fontType.monospaced": "\u0645\u0648\u0646\u0648 \u0627\u0633\u067e\u0626\u06cc\u0633", - "pad.settings.globalView": "\u0633\u0631\u0627\u0633\u0631 \u06af\u0648\u0631\u0648\u0646\u062a\u0648", - "pad.settings.language": "\u062f\u06cc\u0644:", - "pad.importExport.import_export": "\u0627\u06cc\u0686\u0631\u06cc \u062a\u0648\u06a9\u0645\u0647 \/\u0627\u0626\u0634\u06cc\u06af\u0647 \u062a\u0648\u06a9\u0645\u0647", - "pad.importExport.import": "\u0633\u0646\u062f \u06cc\u0627 \u062f\u0627 \u0645\u062a\u0646\u06cc \u067e\u0631\u0648\u0646\u062f\u0647 \u06cc\u0648\u06a9\u0644\u0647", - "pad.importExport.export": "\u0628\u0648 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc \u0639\u0646\u0648\u0627\u0646\u0627 \u0627\u06cc\u0686\u0631\u06cc \u062a\u0648\u06a9\u0645\u0647", - "pad.importExport.exporthtml": "\u0627\u0686 \u062a\u06cc \u0627\u0645 \u0627\u0644", - "pad.importExport.exportplain": "\u0633\u0627\u062f\u0647 \u0645\u062a\u0646", - "pad.importExport.exportword": "\u0645\u0627\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u062a \u0648\u0648\u0631\u062f", - "pad.importExport.exportpdf": "\u067e\u06cc \u062f\u06cc \u0627\u0641", - "pad.importExport.exportopen": "\u0627\u0648 \u062f\u06cc \u0627\u0641", - "pad.importExport.exportdokuwiki": "\u062f\u0648\u06a9\u0648 \u0648\u06cc\u06a9\u06cc", - "pad.modals.connected": "\u0645\u062a\u0635\u0644 \u0627\u0648\u0644\u062f\u06cc", - "pad.modals.reconnecting": "\u0633\u06cc\u0632\u06cc\u0646 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc\u0646\u0647 \u06cc\u0626\u0646\u06cc \u062f\u0646 \u0645\u062a\u0635\u06cc\u0644 \u0627\u0648\u0644\u062f\u06cc", - "pad.modals.forcereconnect": "\u06cc\u0626\u0646\u06cc \u0627\u062a\u0635\u0627\u0644 \u0627\u0648\u0686\u0648\u0646 \u0632\u0648\u0631\u0644\u0627\u0645\u0627", - "pad.modals.userdup.advice": "\u0628\u0648 \u067e\u0626\u0646\u062c\u0631\u0647 \u062f\u0646 \u0627\u06cc\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0626\u062a\u0645\u06a9 \u0627\u0648\u0686\u0648\u0646 \u06cc\u0626\u0646\u06cc \u062f\u0646 \u0645\u062a\u0635\u06cc\u0644 \u0627\u0648\u0644", - "pad.modals.unauth": "\u0627\u0648\u0644\u0645\u0627\u0632", - "pad.modals.unauth.explanation": "\u0633\u06cc\u0632\u06cc\u0646 \u0627\u0644 \u0686\u062a\u0645\u0627 \u0645\u0633\u0626\u0644\u0647 \u0633\u06cc \u0628\u0648 \u0635\u0641\u062d\u0647 \u0646\u06cc\u0646 \u06af\u0648\u0631\u0648\u0646\u0648\u0634 \u0632\u0645\u0627\u0646\u06cc\u0646\u062f\u0627 \u062f\u06cc\u06cc\u0634\u06cc\u0644\u06cc\u0628 \u062f\u06cc\u0631 .\n\u0633\u0639\u06cc \u0627\u0626\u062f\u06cc\u0646 \u06cc\u0626\u0646\u06cc \u062f\u0646 \u0645\u062a\u0635\u06cc\u0644 \u0627\u0648\u0644\u0627\u0633\u06cc\u0646\u06cc\u0632", - "pad.modals.looping": "\u0627\u062a\u06cc\u0635\u0627\u0644 \u0642\u0637\u0639 \u0627\u0648\u0644\u062f\u06cc", - "pad.modals.looping.explanation": "\u0627\u0631\u062a\u06cc\u0628\u0627\u0637\u06cc \u0645\u0648\u0634\u06a9\u06cc\u0644 \u0628\u06cc\u0631 \u0627\u0626\u062a\u0645\u0647 \u0633\u0631\u0648\u0631 \u062f\u0647 \u0648\u0627\u0631 \u062f\u06cc\u0631", - "pad.modals.looping.cause": "\u0628\u0644\u06a9\u0647 \u0633\u06cc\u0632 \u062f\u0648\u0632 \u062f\u0626\u0645\u06cc\u06cc\u0646 \u0628\u06cc\u0631 \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u06cc\u0627\u062f\u0627 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0637\u0631\u06cc\u0642\u06cc \u0627\u06cc\u0644\u0647 \u0645\u062a\u0635\u06cc\u0644 \u0627\u0648\u0644\u0648\u0628 \u0633\u06cc\u0646\u06cc\u0632", - "pad.modals.initsocketfail": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u0648\u0644\u0645\u0648\u06cc\u0627\u0646 \u0633\u0631\u0648\u0631 \u062f\u06cc\u0631", - "pad.modals.initsocketfail.explanation": "\u0628\u06cc\u0631\u0644\u0634\u062f\u06cc\u0631\u06cc\u0644\u0645\u0647 \u0633\u0631\u0648\u0631 \u0644\u0631\u06cc\u0646\u0647 \u0645\u062a\u0635\u06cc\u0644 \u0627\u0648\u0644\u0627 \u0628\u06cc\u0644\u0645\u0647 \u062f\u06cc", - "pad.modals.deleted": "\u0633\u06cc\u0644\u06cc\u0646\u062f\u06cc.", - "pad.modals.deleted.explanation": "\u0628\u0648 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc \u0633\u06cc\u0644\u06cc\u0646\u06cc\u0628 \u062f\u06cc\u0631.", - "pad.modals.disconnected": "\u0633\u06cc\u0632\u06cc\u0646 \u0627\u062a\u0635\u0627\u0644\u06cc\u0646\u06cc\u0632 \u0642\u0637\u0639 \u0627\u0648\u0644\u0648\u0628 \u062f\u0648\u0631.", - "pad.modals.disconnected.explanation": "\u0633\u0631\u0648\u0631\u0647 \u0627\u062a\u0635\u0627\u0644 \u0642\u0637\u0639 \u0627\u0648\u0644\u0648\u0628 \u062f\u0648\u0631.", - "pad.share.readonly": "\u0627\u0648\u062e\u0648\u0645\u0627\u0644\u06cc \u0641\u0642\u0637", - "pad.share.link": "\u0628\u0627\u063a\u0644\u0627\u0646\u062a\u06cc", - "pad.share.emebdcode": "\u0646\u0634\u0627\u0646\u06cc \u0646\u06cc \u06cc\u0626\u0631\u0644\u062a\u0645\u06a9", - "pad.chat": "\u0686\u062a", - "pad.chat.title": "\u0628\u0648 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0646\u06cc \u0686\u062a \u0627\u0648\u0686\u0648\u0646 \u0622\u0686", - "timeslider.pageTitle": "{{appTitle}}\u0632\u0645\u0627\u0646 \u0627\u0633\u0644\u0627\u06cc\u062f\u0631\u06cc", - "timeslider.toolbar.returnbutton": "\u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u0633\u06cc\u0646\u0647 \u0642\u0627\u06cc\u06cc\u062a", - "timeslider.toolbar.authors": "\u06cc\u0627\u0632\u06cc\u0686\u06cc\u0644\u0627\u0631", - "timeslider.toolbar.authorsList": "\u06cc\u0627\u0632\u06cc\u0686\u06cc \u0633\u06cc\u0632" + "@metadata": { + "authors": [ + "Amir a57", + "Mousa" + ] + }, + "index.newPad": "یئنی یادداشت دفترچه سی", + "index.createOpenPad": "یا دا ایجاد /بیر پد آدلا برابر آچماق:", + "pad.toolbar.bold.title": "بویوت", + "pad.toolbar.italic.title": "مورب", + "pad.toolbar.underline.title": "خطدین آلتی", + "pad.toolbar.strikethrough.title": "خط یئمیش", + "pad.toolbar.ol.title": "جوتدنمیش فهرست", + "pad.toolbar.ul.title": "جوتدنممیش فهرست", + "pad.toolbar.indent.title": "ایچری باتدیگی", + "pad.toolbar.unindent.title": "ائشیگه چیخدیگی", + "pad.toolbar.undo.title": "باطل ائتمک", + "pad.toolbar.redo.title": "یئنی دن", + "pad.toolbar.clearAuthorship.title": "یازیچی رنگ لری پوزماق", + "pad.toolbar.import_export.title": "آیری قالیب لردن /ایچری توکمه / ائشیگه توکمه", + "pad.toolbar.timeslider.title": "زمان اسلایدی", + "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.settings.padSettings": "یادداشت دفترچه سینین تنظیملر", + "pad.settings.myView": "منیم گورنتوم", + "pad.settings.stickychat": "نمایش صفحه سینده همیشه چت اولسون", + "pad.settings.colorcheck": "یازیچی رنگ لری", + "pad.settings.linenocheck": "خطوط شماره سی", + "pad.settings.fontType": "قلم نوعی", + "pad.settings.fontType.normal": "نورمال", + "pad.settings.fontType.monospaced": "مونو اسپئیس", + "pad.settings.globalView": "سراسر گورونتو", + "pad.settings.language": "دیل:", + "pad.importExport.import_export": "ایچری توکمه /ائشیگه توکمه", + "pad.importExport.import": "سند یا دا متنی پرونده یوکله", + "pad.importExport.export": "بو یادداشت دفترچه سی عنوانا ایچری توکمه", + "pad.importExport.exporthtml": "اچ تی ام ال", + "pad.importExport.exportplain": "ساده متن", + "pad.importExport.exportword": "مایکروسافت وورد", + "pad.importExport.exportpdf": "پی دی اف", + "pad.importExport.exportopen": "او دی اف", + "pad.importExport.exportdokuwiki": "دوکو ویکی", + "pad.modals.connected": "متصل اولدی", + "pad.modals.reconnecting": "سیزین یادداشت دفترچه سینه یئنی دن متصیل اولدی", + "pad.modals.forcereconnect": "یئنی اتصال اوچون زورلاما", + "pad.modals.userdup.advice": "بو پئنجره دن ایستفاده ائتمک اوچون یئنی دن متصیل اول", + "pad.modals.unauth": "اولماز", + "pad.modals.unauth.explanation": "سیزین ال چتما مسئله سی بو صفحه نین گورونوش زمانیندا دییشیلیب دیر .\nسعی ائدین یئنی دن متصیل اولاسینیز", + "pad.modals.looping.explanation": "ارتیباطی موشکیل بیر ائتمه سرور ده وار دیر", + "pad.modals.looping.cause": "بلکه سیز دوز دئمیین بیر فایروال یادا پروکسی طریقی ایله متصیل اولوب سینیز", + "pad.modals.initsocketfail": "دسترسی اولمویان سرور دیر", + "pad.modals.initsocketfail.explanation": "بیرلشدیریلمه سرور لرینه متصیل اولا بیلمه دی", + "pad.modals.deleted": "سیلیندی.", + "pad.modals.deleted.explanation": "بو یادداشت دفترچه سی سیلینیب دیر.", + "pad.modals.disconnected": "سیزین اتصالینیز قطع اولوب دور.", + "pad.modals.disconnected.explanation": "سروره اتصال قطع اولوب دور.", + "pad.share.readonly": "اوخومالی فقط", + "pad.share.link": "باغلانتی", + "pad.share.emebdcode": "نشانی نی یئرلتمک", + "pad.chat": "چت", + "pad.chat.title": "بو یادداشت دفترچه نی چت اوچون آچ", + "timeslider.pageTitle": "{{appTitle}}زمان اسلایدری", + "timeslider.toolbar.returnbutton": "یادداشت دفترچه سینه قاییت", + "timeslider.toolbar.authors": "یازیچیلار", + "timeslider.toolbar.authorsList": "یازیچی سیز" }
\ No newline at end of file diff --git a/src/locales/be-tarask.json b/src/locales/be-tarask.json new file mode 100644 index 00000000..af4b5c89 --- /dev/null +++ b/src/locales/be-tarask.json @@ -0,0 +1,61 @@ +{ + "@metadata": { + "authors": [ + "Jim-by", + "Wizardist" + ] + }, + "index.newPad": "Стварыць", + "index.createOpenPad": "ці тварыць/адкрыць дакумэнт з назвай:", + "pad.toolbar.bold.title": "Тоўсты (Ctrl-B)", + "pad.toolbar.italic.title": "Курсіў (Ctrl-I)", + "pad.toolbar.underline.title": "Падкрэсьліваньне (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Закрэсьліваньне", + "pad.toolbar.ol.title": "Упарадкаваны сьпіс", + "pad.toolbar.ul.title": "Неўпарадкаваны сьпіс", + "pad.toolbar.indent.title": "Водступ", + "pad.toolbar.unindent.title": "Выступ", + "pad.toolbar.undo.title": "Скасаваць(Ctrl-Z)", + "pad.toolbar.redo.title": "Вярнуць (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Прыбраць колер дакумэнту", + "pad.toolbar.import_export.title": "Імпарт/Экспарт з выкарыстаньне розных фарматаў файлаў", + "pad.toolbar.timeslider.title": "Шкала часу", + "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.passwordRequired": "Для доступу да гэтага дакумэнта патрэбны пароль", + "pad.permissionDenied": "Вы ня маеце дазволу на доступ да гэтага дакумэнта", + "pad.wrongPassword": "Вы ўвялі няслушны пароль", + "pad.settings.padSettings": "Налады дакумэнта", + "pad.settings.myView": "Мой выгляд", + "pad.settings.stickychat": "Заўсёды паказваць чат", + "pad.settings.colorcheck": "Колеры аўтарства", + "pad.settings.linenocheck": "Нумары радкоў", + "pad.settings.rtlcheck": "Тэкст справа-налева", + "pad.settings.fontType": "Тып шрыфту:", + "pad.settings.fontType.normal": "Звычайны", + "pad.settings.fontType.monospaced": "Монашырынны", + "pad.settings.globalView": "Агульны выгляд", + "pad.settings.language": "Мова:", + "pad.importExport.import_export": "Імпарт/Экспарт", + "pad.importExport.import": "Загрузіжайце любыя тэкставыя файлы або дакумэнты", + "pad.importExport.importSuccessful": "Пасьпяхова!", + "pad.importExport.export": "Экспартаваць бягучы дакумэнт як:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Просты тэкст", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.connected": "Падлучыліся.", + "pad.modals.reconnecting": "Перападлучэньне да вашага дакумэнта...", + "pad.modals.forcereconnect": "Прымусовае перападлучэньне", + "pad.share": "Падзяліцца дакумэнтам", + "pad.share.readonly": "Толькі для чытаньня", + "pad.share.link": "Спасылка", + "pad.chat": "Чат" +}
\ No newline at end of file diff --git a/src/locales/bn.json b/src/locales/bn.json index dba1c215..15b06f35 100644 --- a/src/locales/bn.json +++ b/src/locales/bn.json @@ -1,49 +1,89 @@ { - "@metadata": { - "authors": [ - "Bellayet", - "Nasir8891" - ] - }, - "index.newPad": "\u09a8\u09a4\u09c1\u09a8 \u09aa\u09cd\u09af\u09be\u09a1", - "index.createOpenPad": "\u0985\u09a5\u09ac\u09be \u09a8\u09be\u09ae \u09b2\u09bf\u0996\u09c7 \u09aa\u09cd\u09af\u09be\u09a1 \u0996\u09c1\u09b2\u09c1\u09a8\/\u09a4\u09c8\u09b0\u09c0 \u0995\u09b0\u09c1\u09a8:", - "pad.toolbar.bold.title": "\u0997\u09be\u09a1\u09bc \u0995\u09b0\u09be (Ctrl-B)", - "pad.toolbar.italic.title": "\u09ac\u09be\u0981\u0995\u09be \u0995\u09b0\u09be (Ctrl-I)", - "pad.toolbar.indent.title": "\u09aa\u09cd\u09b0\u09be\u09a8\u09cd\u09a4\u09bf\u0995\u0995\u09b0\u09a3", - "pad.toolbar.settings.title": "\u09b8\u09c7\u099f\u09bf\u0982", - "pad.colorpicker.save": "\u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3", - "pad.colorpicker.cancel": "\u09ac\u09be\u09a4\u09bf\u09b2", - "pad.loading": "\u09b2\u09cb\u09a1\u09bf\u0982...", - "pad.settings.fontType.normal": "\u09b8\u09be\u09a7\u09be\u09b0\u09a3", - "pad.settings.language": "\u09ad\u09be\u09b7\u09be:", - "pad.importExport.export": "\u098f\u0987 \u09aa\u09cd\u09af\u09be\u09a1\u099f\u09bf \u098f\u0995\u09cd\u09b8\u09aa\u09cb\u09b0\u09cd\u099f \u0995\u09b0\u09c1\u09a8", - "pad.importExport.exporthtml": "\u098f\u0987\u099a\u099f\u09bf\u098f\u09ae\u098f\u09b2", - "pad.importExport.exportplain": "\u09b8\u09be\u09a7\u09be\u09b0\u09a3 \u09b2\u09c7\u0996\u09be", - "pad.importExport.exportword": "\u09ae\u09be\u0987\u0995\u09cd\u09b0\u09cb\u09b8\u09ab\u099f \u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1", - "pad.importExport.exportpdf": "\u09aa\u09bf\u09a1\u09bf\u098f\u09ab", - "pad.importExport.exportopen": "\u0993\u09a1\u09bf\u098f\u09ab (\u0993\u09aa\u09c7\u09a8 \u09a1\u0995\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f)", - "pad.modals.deleted": "\u0985\u09aa\u09b8\u09be\u09b0\u09bf\u09a4\u0964", - "pad.modals.deleted.explanation": "\u098f\u0987 \u09aa\u09cd\u09af\u09be\u09a1\u099f\u09bf \u0985\u09aa\u09b8\u09be\u09b0\u09a3 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964", - "pad.modals.disconnected.explanation": "\u09b8\u09be\u09b0\u09cd\u09ad\u09be\u09b0\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09af\u09cb\u0997\u09be\u09af\u09cb\u0997 \u0995\u09b0\u09be \u09af\u09be\u099a\u09cd\u099b\u09c7 \u09a8\u09be", - "pad.share": "\u09b6\u09c7\u09af\u09bc\u09be\u09b0 \u0995\u09b0\u09c1\u09a8", - "pad.share.link": "\u09b2\u09bf\u0982\u0995", - "pad.share.emebdcode": "\u0987\u0989\u0986\u09b0\u098f\u09b2 \u09b8\u0982\u09af\u09cb\u099c\u09a8", - "pad.chat": "\u099a\u09cd\u09af\u09be\u099f", - "pad.chat.title": "\u098f\u0987 \u09aa\u09cd\u09af\u09be\u09a1\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u099a\u09cd\u09af\u09be\u099f \u099a\u09be\u09b2\u09c1 \u0995\u09b0\u09c1\u09a8\u0964", - "timeslider.toolbar.returnbutton": "\u09aa\u09cd\u09af\u09be\u09a1\u09c7 \u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u0993", - "timeslider.toolbar.authors": "\u09b2\u09c7\u0996\u0995\u0997\u09a3:", - "timeslider.toolbar.authorsList": "\u0995\u09cb\u09a8\u09cb \u09b2\u09c7\u0996\u0995 \u09a8\u09c7\u0987", - "timeslider.exportCurrent": "\u09ac\u09b0\u09cd\u09a4\u09ae\u09be\u09a8 \u09b8\u0982\u09b8\u09cd\u0995\u09b0\u09a3\u099f\u09bf \u098f\u0995\u09cd\u09b8\u09aa\u09cb\u09b0\u09cd\u099f \u0995\u09b0\u09c1\u09a8:", - "timeslider.month.january": "\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09bf", - "timeslider.month.february": "\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09bf", - "timeslider.month.march": "\u09ae\u09be\u09b0\u09cd\u099a", - "timeslider.month.april": "\u098f\u09aa\u09cd\u09b0\u09bf\u09b2", - "timeslider.month.may": "\u09ae\u09c7", - "timeslider.month.june": "\u099c\u09c1\u09a8", - "timeslider.month.july": "\u099c\u09c1\u09b2\u09be\u0987", - "timeslider.month.august": "\u0986\u0997\u09b8\u09cd\u099f", - "timeslider.month.september": "\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0", - "timeslider.month.october": "\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0", - "timeslider.month.november": "\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0", - "timeslider.month.december": "\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0" + "@metadata": { + "authors": [ + "Bellayet", + "Nasir8891", + "Sankarshan" + ] + }, + "index.newPad": "নতুন প্যাড", + "index.createOpenPad": "অথবা নাম লিখে প্যাড খুলুন/তৈরী করুন:", + "pad.toolbar.bold.title": "গাড় করা (Ctrl-B)", + "pad.toolbar.italic.title": "বাঁকা করা (Ctrl-I)", + "pad.toolbar.underline.title": "আন্ডারলাইন (Ctrl-U)", + "pad.toolbar.ol.title": "সারিবদ্ধ তালিকা", + "pad.toolbar.indent.title": "প্রান্তিককরণ", + "pad.toolbar.unindent.title": "আউটডেন্ট", + "pad.toolbar.undo.title": "বাতিল করুন (Ctrl-Z)", + "pad.toolbar.redo.title": "পুনরায় করুন (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "কৃতি রং পরিষ্কার করুন", + "pad.toolbar.timeslider.title": "টাইমস্লাইডার", + "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.passwordRequired": "এই প্যাড-টি দেখার জন্য আপনাকে পাসওয়ার্ড ব্যবহার করতে হবে", + "pad.permissionDenied": "দুঃখিত, এ প্যাড-টি দেখার অধিকার আপনার নেই", + "pad.wrongPassword": "আপনার পাসওয়ার্ড সঠিক নয়", + "pad.settings.padSettings": "প্যাডের স্থাপন", + "pad.settings.myView": "আমার দৃশ্য", + "pad.settings.stickychat": "চ্যাট সক্রীনে প্রদর্শন করা হবে", + "pad.settings.colorcheck": "লেখকদের নিজস্ব নির্বাচিত রং", + "pad.settings.linenocheck": "লাইন নম্বর", + "pad.settings.fontType": "ফন্ট-এর প্রকার:", + "pad.settings.fontType.normal": "সাধারণ", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "সর্বব্যাপী দৃশ্য", + "pad.settings.language": "ভাষা:", + "pad.importExport.import_export": "ইম্পোরট/এক্সপোর্ট", + "pad.importExport.import": "কোন টেক্সট ফাইল বা ডকুমেন্ট আপলোড করুন", + "pad.importExport.importSuccessful": "সফল!", + "pad.importExport.export": "এই প্যাডটি এক্সপোর্ট করুন", + "pad.importExport.exporthtml": "এইচটিএমএল", + "pad.importExport.exportplain": "সাধারণ লেখা", + "pad.importExport.exportword": "মাইক্রোসফট ওয়ার্ড", + "pad.importExport.exportpdf": "পিডিএফ", + "pad.importExport.exportopen": "ওডিএফ (ওপেন ডকুমেন্ট ফরম্যাট)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.connected": "যোগাযোগ সফল", + "pad.modals.reconnecting": "আপনার প্যাডের সাথে সংযোগস্থাপন করা হচ্ছে..", + "pad.modals.forcereconnect": "পুনরায় সংযোগস্থাপনের চেষ্টা", + "pad.modals.userdup": "অন্য উইন্ডো-তে খোলা হয়েছে", + "pad.modals.unauth": "আপনার অধিকার নেই", + "pad.modals.initsocketfail": "সার্ভার-এর সাথে যোগাযোগ করতে অসক্ষম।", + "pad.modals.deleted": "অপসারিত।", + "pad.modals.deleted.explanation": "এই প্যাডটি অপসারণ করা হয়েছে।", + "pad.modals.disconnected.explanation": "সার্ভারের সাথে যোগাযোগ করা যাচ্ছে না", + "pad.share": "শেয়ার করুন", + "pad.share.link": "লিংক", + "pad.share.emebdcode": "ইউআরএল সংযোজন", + "pad.chat": "চ্যাট", + "pad.chat.title": "এই প্যাডের জন্য চ্যাট চালু করুন।", + "timeslider.toolbar.returnbutton": "প্যাডে ফিরে যাও", + "timeslider.toolbar.authors": "লেখকগণ:", + "timeslider.toolbar.authorsList": "কোনো লেখক নেই", + "timeslider.exportCurrent": "বর্তমান সংস্করণটি এক্সপোর্ট করুন:", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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.approve": "অনুমোদিত", + "pad.impexp.importbutton": "এখন ইম্পোর্ট করুন", + "pad.impexp.importing": "ইম্পোর্ট চলছে...", + "pad.impexp.importfailed": "ইম্পোর্ট অসক্ষম" }
\ No newline at end of file diff --git a/src/locales/br.json b/src/locales/br.json new file mode 100644 index 00000000..d28f8248 --- /dev/null +++ b/src/locales/br.json @@ -0,0 +1,121 @@ +{ + "@metadata": { + "authors": [ + "Fohanno", + "Fulup", + "Gwenn-Ael", + "Y-M D" + ] + }, + "index.newPad": "Pad nevez", + "index.createOpenPad": "pe krouiñ/digeriñ ur pad gant an anv :", + "pad.toolbar.bold.title": "Tev (Ctrl-B)", + "pad.toolbar.italic.title": "Italek (Ctrl-I)", + "pad.toolbar.underline.title": "Islinennañ (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Barrennet", + "pad.toolbar.ol.title": "Roll urzhiet", + "pad.toolbar.ul.title": "Roll en dizurzh", + "pad.toolbar.indent.title": "Endantañ (TAB)", + "pad.toolbar.unindent.title": "Diendantañ", + "pad.toolbar.undo.title": "Dizober (Ktrl-Z)", + "pad.toolbar.redo.title": "Adober (Ktrl-Y)", + "pad.toolbar.clearAuthorship.title": "Diverkañ al livioù oc'h anaout an aozerien", + "pad.toolbar.import_export.title": "Enporzhiañ/Ezporzhiañ eus/war-zu ur furmad restr disheñvel", + "pad.toolbar.timeslider.title": "Istor dinamek", + "pad.toolbar.savedRevision.title": "Doareoù enrollet", + "pad.toolbar.settings.title": "Arventennoù", + "pad.toolbar.embed.title": "Rannañ hag enframmañ ar pad-mañ", + "pad.toolbar.showusers.title": "Diskwelet implijerien ar Pad", + "pad.colorpicker.save": "Enrollañ", + "pad.colorpicker.cancel": "Nullañ", + "pad.loading": "O kargañ...", + "pad.passwordRequired": "Ezhomm ho peus ur ger-tremen evit mont d'ar Pad-se", + "pad.permissionDenied": "\nN'oc'h ket aotreet da vont d'ar pad-mañ", + "pad.wrongPassword": "Fazius e oa ho ker-tremen", + "pad.settings.padSettings": "Arventennoù Pad", + "pad.settings.myView": "Ma diskwel", + "pad.settings.stickychat": "Diskwel ar flap bepred", + "pad.settings.colorcheck": "Livioù anaout", + "pad.settings.linenocheck": "Niverennoù linennoù", + "pad.settings.rtlcheck": "Lenn an danvez a-zehou da gleiz ?", + "pad.settings.fontType": "Seurt font :", + "pad.settings.fontType.normal": "Reizh", + "pad.settings.fontType.monospaced": "Monospas", + "pad.settings.globalView": "Gwel dre vras", + "pad.settings.language": "Yezh :", + "pad.importExport.import_export": "Enporzhiañ/Ezporzhiañ", + "pad.importExport.import": "Enkargañ un destenn pe ur restr", + "pad.importExport.importSuccessful": "Deuet eo ganeoc'h !", + "pad.importExport.export": "Ezporzhiañ ar pad bremañ evel :", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Testenn blaen", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Ne c'hallit ket emporzjiañ furmadoù testennoù kriz pe html. Evit arc'hwelioù enporzhiañ emdroetoc'h, staliit \u003Ca 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\"\u003Eabiword\u003C/a\u003E mar plij.", + "pad.modals.connected": "Kevreet.", + "pad.modals.reconnecting": "Adkevreañ war-zu ho pad...", + "pad.modals.forcereconnect": "Adkevreañ dre heg", + "pad.modals.userdup": "Digor en ur prenestr all", + "pad.modals.userdup.explanation": "Digor eo ho pad, war a seblant, e meur a brenestr eus ho merdeer en urzhiataer-mañ.", + "pad.modals.userdup.advice": "Kevreañ en ur implijout ar prenestr-mañ.", + "pad.modals.unauth": "N'eo ket aotreet", + "pad.modals.unauth.explanation": "Kemmet e vo hoc'h aotreoù pa vo diskwelet ar bajenn.-mañ Klaskit kevreañ en-dro.", + "pad.modals.looping.explanation": "Kudennoù kehentiñ zo gant ar servijer sinkronelekaat.", + "pad.modals.looping.cause": "Posupl eo e vefe gwarezet ho kevreadur gant ur maltouter diembreget pe ur servijer proksi", + "pad.modals.initsocketfail": "Ne c'haller ket tizhout ar servijer.", + "pad.modals.initsocketfail.explanation": "Ne c'haller ket kevreañ ouzh ar servijer sinkronelaat.", + "pad.modals.initsocketfail.cause": "Gallout a ra ar gudenn dont eus ho merdeer Web pe eus ho kevreadur Internet.", + "pad.modals.slowcommit.explanation": "Ne respont ket ar serveur.", + "pad.modals.slowcommit.cause": "Gallout a ra dont diwar kudennoù kevreañ gant ar rouedad.", + "pad.modals.deleted": "Dilamet.", + "pad.modals.deleted.explanation": "Lamet eo bet ar pad-mañ.", + "pad.modals.disconnected": "Digevreet oc'h bet.", + "pad.modals.disconnected.explanation": "Kollet eo bet ar c'hevreadur gant ar servijer", + "pad.modals.disconnected.cause": "Dizimplijadus eo ar servijer marteze. Kelaouit ar servij merañ ma pad ar gudenn.", + "pad.share": "Rannañ ar pad-mañ.", + "pad.share.readonly": "Lenn hepken", + "pad.share.link": "Liamm", + "pad.share.emebdcode": "Enframmañ an URL", + "pad.chat": "Flap", + "pad.chat.title": "Digeriñ ar flap kevelet gant ar pad-mañ.", + "pad.chat.loadmessages": "Kargañ muioc'h a gemennadennoù", + "timeslider.pageTitle": "Istor dinamek eus {{appTitle}}", + "timeslider.toolbar.returnbutton": "Distreiñ d'ar pad-mañ.", + "timeslider.toolbar.authors": "Aozerien :", + "timeslider.toolbar.authorsList": "Aozer ebet", + "timeslider.toolbar.exportlink.title": "Ezporzhiañ", + "timeslider.exportCurrent": "Ezporzhiañ an doare bremañ evel :", + "timeslider.version": "Stumm {{version}}", + "timeslider.saved": "Enrollañ {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Genver", + "timeslider.month.february": "C'hwevrer", + "timeslider.month.march": "Meurzh", + "timeslider.month.april": "Ebrel", + "timeslider.month.may": "Mae", + "timeslider.month.june": "Mezheven", + "timeslider.month.july": "Gouere", + "timeslider.month.august": "Eost", + "timeslider.month.september": "Gwengolo", + "timeslider.month.october": "Here", + "timeslider.month.november": "Du", + "timeslider.month.december": "Kerzu", + "timeslider.unnamedauthors": "{{num}} dianav {[plural(num) one: aozer, other: aozerien ]}", + "pad.savedrevs.marked": "Merket eo an adweladenn-mañ evel adweladenn gwiriet", + "pad.userlist.entername": "Ebarzhit hoc'h anv", + "pad.userlist.unnamed": "dizanv", + "pad.userlist.guest": "Den pedet", + "pad.userlist.deny": "Nac'h", + "pad.userlist.approve": "Aprouiñ", + "pad.editbar.clearcolors": "Diverkañ al livioù stag ouzh an aozerien en teul a-bezh ?", + "pad.impexp.importbutton": "Enporzhiañ bremañ", + "pad.impexp.importing": "Oc'h enporzhiañ...", + "pad.impexp.confirmimport": "Ma vez enporzhiet ur restr e vo diverket ar pezh zo en teul a-vremañ. Ha sur oc'h e fell deoc'h mont betek penn ?", + "pad.impexp.convertFailed": "N'eus ket bet gallet enporzhiañ ar restr. Ober gant ur furmad teul all pe eilañ/pegañ gant an dorn.", + "pad.impexp.uploadFailed": "C'hwitet eo bet an enporzhiañ. Klaskit en-dro.", + "pad.impexp.importfailed": "C'hwitet eo an enporzhiadenn", + "pad.impexp.copypaste": "Eilit/pegit, mar plij", + "pad.impexp.exportdisabled": "Diweredekaet eo ezporzhiañ d'ar furmad {{type}}. Kit e darempred gant merour ar reizhiad evit gouzout hiroc'h." +}
\ No newline at end of file diff --git a/src/locales/ca.json b/src/locales/ca.json index ca4d3f19..43f24c55 100644 --- a/src/locales/ca.json +++ b/src/locales/ca.json @@ -1,77 +1,125 @@ { - "@metadata": { - "authors": [ - "Pginer", - "Pitort", - "Toniher" - ] - }, - "pad.toolbar.bold.title": "Negreta (Ctrl-B)", - "pad.toolbar.italic.title": "Cursiva (Ctrl-I)", - "pad.toolbar.underline.title": "Subratllat (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Ratllat", - "pad.toolbar.ol.title": "Llista ordenada", - "pad.toolbar.ul.title": "Llista sense ordenar", - "pad.toolbar.indent.title": "Sagnat", - "pad.toolbar.unindent.title": "Sagnat invers", - "pad.toolbar.undo.title": "Desf\u00e9s (Ctrl-Z)", - "pad.toolbar.redo.title": "Ref\u00e9s (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Neteja els colors d'autoria", - "pad.toolbar.savedRevision.title": "Revisions desades", - "pad.toolbar.settings.title": "Configuraci\u00f3", - "pad.toolbar.showusers.title": "Mostra els usuaris d\u2019aquest pad", - "pad.colorpicker.save": "Desa", - "pad.colorpicker.cancel": "Cancel\u00b7la", - "pad.loading": "S'est\u00e0 carregant...", - "pad.wrongPassword": "La contrasenya \u00e9s incorrecta", - "pad.settings.myView": "La meva vista", - "pad.settings.linenocheck": "N\u00fameros de l\u00ednia", - "pad.settings.fontType": "Tipus de lletra:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.globalView": "Vista global", - "pad.settings.language": "Llengua:", - "pad.importExport.import_export": "Importaci\u00f3\/exportaci\u00f3", - "pad.importExport.import": "Puja qualsevol fitxer de text o document", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Text net", - "pad.modals.connected": "Connectat.", - "pad.modals.forcereconnect": "For\u00e7a tornar a connectar", - "pad.modals.unauth": "No autoritzat", - "pad.modals.looping": "Desconnectat.", - "pad.modals.initsocketfail": "El servidor no \u00e9s accessible.", - "pad.modals.initsocketfail.explanation": "No s'ha pogut connectar amb el servidor de sincronitzaci\u00f3.", - "pad.modals.slowcommit": "Desconnectat.", - "pad.modals.slowcommit.explanation": "El servidor no respon.", - "pad.modals.deleted": "Suprimit.", - "pad.modals.disconnected": "Heu estat desconnectat.", - "pad.share.readonly": "Nom\u00e9s de lectura", - "pad.share.link": "Enlla\u00e7", - "pad.chat": "Xat", - "timeslider.toolbar.authors": "Autors:", - "timeslider.toolbar.authorsList": "No hi ha autors", - "timeslider.toolbar.exportlink.title": "Exporta", - "timeslider.exportCurrent": "Exporta la versi\u00f3 actual com a:", - "timeslider.version": "Versi\u00f3 {{version}}", - "timeslider.month.january": "Gener", - "timeslider.month.february": "Febrer", - "timeslider.month.march": "Mar\u00e7", - "timeslider.month.april": "Abril", - "timeslider.month.may": "Maig", - "timeslider.month.june": "Juny", - "timeslider.month.july": "Juliol", - "timeslider.month.august": "Agost", - "timeslider.month.september": "Setembre", - "timeslider.month.october": "Octubre", - "timeslider.month.november": "Novembre", - "timeslider.month.december": "Desembre", - "pad.userlist.entername": "Introdu\u00efu el vostre nom", - "pad.userlist.unnamed": "sense nom", - "pad.userlist.guest": "Convidat", - "pad.userlist.deny": "Refusa", - "pad.userlist.approve": "Aprova", - "pad.impexp.importbutton": "Importa ara", - "pad.impexp.importing": "Important...", - "pad.impexp.convertFailed": "No \u00e9s possible d'importar aquest fitxer. Si us plau, podeu provar d'utilitzar un format diferent o copiar i enganxar manualment.", - "pad.impexp.importfailed": "Ha fallat la importaci\u00f3", - "pad.impexp.copypaste": "Si us plau, copieu i enganxeu" + "@metadata": { + "authors": [ + "Alvaro Vidal-Abarca", + "Pginer", + "Pitort", + "Toniher" + ] + }, + "index.newPad": "Nou pad", + "index.createOpenPad": "o crea/obre un pad amb el nom:", + "pad.toolbar.bold.title": "Negreta (Ctrl-B)", + "pad.toolbar.italic.title": "Cursiva (Ctrl-I)", + "pad.toolbar.underline.title": "Subratllat (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Ratllat", + "pad.toolbar.ol.title": "Llista ordenada", + "pad.toolbar.ul.title": "Llista sense ordenar", + "pad.toolbar.indent.title": "Sagnat (TAB)", + "pad.toolbar.unindent.title": "Sagnat invers (Majúsc+TAB)", + "pad.toolbar.undo.title": "Desfés (Ctrl-Z)", + "pad.toolbar.redo.title": "Refés (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Neteja els colors d'autoria", + "pad.toolbar.import_export.title": "Importa/exporta a partir de diferents formats de fitxer", + "pad.toolbar.timeslider.title": "Línia temporal", + "pad.toolbar.savedRevision.title": "Desa la revisió", + "pad.toolbar.settings.title": "Configuració", + "pad.toolbar.embed.title": "Comparteix i incrusta aquest pad", + "pad.toolbar.showusers.title": "Mostra els usuaris d’aquest pad", + "pad.colorpicker.save": "Desa", + "pad.colorpicker.cancel": "Cancel·la", + "pad.loading": "S'està carregant...", + "pad.passwordRequired": "Us cal una contrasenya per a accedir a aquest pad", + "pad.permissionDenied": "No teniu permisos per a accedir a aquest pad", + "pad.wrongPassword": "La contrasenya és incorrecta", + "pad.settings.padSettings": "Paràmetres del pad", + "pad.settings.myView": "La meva vista", + "pad.settings.stickychat": "Xateja sempre a la pantalla", + "pad.settings.colorcheck": "Colors d'autoria", + "pad.settings.linenocheck": "Números de línia", + "pad.settings.rtlcheck": "Llegir el contingut de dreta a esquerra?", + "pad.settings.fontType": "Tipus de lletra:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "D'amplada fixa", + "pad.settings.globalView": "Vista global", + "pad.settings.language": "Llengua:", + "pad.importExport.import_export": "Importació/exportació", + "pad.importExport.import": "Puja qualsevol fitxer de text o document", + "pad.importExport.importSuccessful": "Hi ha hagut èxit!", + "pad.importExport.export": "Exporta el pad actual com a:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Text net", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Només podeu importar de text net o html. Per a opcions d'importació més avançades \u003Ca 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\"\u003Einstal·leu l'Abiword\u003C/a\u003E.", + "pad.modals.connected": "Connectat.", + "pad.modals.reconnecting": "S'està tornant a connectar al vostre pad…", + "pad.modals.forcereconnect": "Força tornar a connectar", + "pad.modals.userdup": "Obert en una altra finestra", + "pad.modals.userdup.explanation": "Aquest pad sembla que està obert en més d'una finestra de navegador de l'ordinador.", + "pad.modals.userdup.advice": "Torneu a connectar-vos per a utilitzar aquesta finestra.", + "pad.modals.unauth": "No autoritzat", + "pad.modals.unauth.explanation": "Els vostres permisos han canviat mentre es visualitzava la pàgina. Proveu de reconnectar-vos.", + "pad.modals.looping.explanation": "Hi ha problemes de comunicació amb el servidor de sincronització.", + "pad.modals.looping.cause": "Potser us heu connectat a través d'un tallafocs o servidor intermediari incompatible.", + "pad.modals.initsocketfail": "El servidor no és accessible.", + "pad.modals.initsocketfail.explanation": "No s'ha pogut connectar amb el servidor de sincronització.", + "pad.modals.initsocketfail.cause": "Això és probablement a causa d'un problema amb el navegador o la connexió a Internet.", + "pad.modals.slowcommit.explanation": "El servidor no respon.", + "pad.modals.slowcommit.cause": "Això podria ser a causa de problemes amb la connectivitat de la xarxa.", + "pad.modals.badChangeset.explanation": "El servidor de sincronització ha classificat com a il·legat una edició que heu fet.", + "pad.modals.badChangeset.cause": "Això pot ser degut a una configuració errònia del servidor o a algun altre comportament inesperat. Si us plau, si considereu que això és un error, contacteu amb l'administrador del servei. Intenteu reconnectar-vos per tal de continuar editant.", + "pad.modals.corruptPad.explanation": "El pad al qual esteu intentant accedir està corrupte.", + "pad.modals.corruptPad.cause": "Això pot ser degut a una configuració errònia del servidor o a algun altre comportament inesperat. Si us plau, contacteu amb l'administrador del servei.", + "pad.modals.deleted": "Suprimit.", + "pad.modals.deleted.explanation": "S'ha suprimit el pad.", + "pad.modals.disconnected": "Heu estat desconnectat.", + "pad.modals.disconnected.explanation": "S'ha perdut la connexió amb el servidor", + "pad.modals.disconnected.cause": "El servidor sembla que no està disponible. Notifiqueu a l'administrador del servei si continua passant.", + "pad.share": "Comparteix el pad", + "pad.share.readonly": "Només de lectura", + "pad.share.link": "Enllaç", + "pad.share.emebdcode": "Incrusta l'URL", + "pad.chat": "Xat", + "pad.chat.title": "Obre el xat d'aquest pad.", + "pad.chat.loadmessages": "Carrega més missatges", + "timeslider.pageTitle": "Línia temporal — {{appTitle}}", + "timeslider.toolbar.returnbutton": "Torna al pad", + "timeslider.toolbar.authors": "Autors:", + "timeslider.toolbar.authorsList": "No hi ha autors", + "timeslider.toolbar.exportlink.title": "Exporta", + "timeslider.exportCurrent": "Exporta la versió actual com a:", + "timeslider.version": "Versió {{version}}", + "timeslider.saved": "Desat {{month}} {{day}}, {{year}}", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Gener", + "timeslider.month.february": "Febrer", + "timeslider.month.march": "Març", + "timeslider.month.april": "Abril", + "timeslider.month.may": "Maig", + "timeslider.month.june": "Juny", + "timeslider.month.july": "Juliol", + "timeslider.month.august": "Agost", + "timeslider.month.september": "Setembre", + "timeslider.month.october": "Octubre", + "timeslider.month.november": "Novembre", + "timeslider.month.december": "Desembre", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor, other: autors ]} sense nom", + "pad.savedrevs.marked": "Aquesta revisió està marcada ara com a revisió desada", + "pad.userlist.entername": "Introduïu el vostre nom", + "pad.userlist.unnamed": "sense nom", + "pad.userlist.guest": "Convidat", + "pad.userlist.deny": "Refusa", + "pad.userlist.approve": "Aprova", + "pad.editbar.clearcolors": "Voleu netejar els colors d'autor del document sencer?", + "pad.impexp.importbutton": "Importa ara", + "pad.impexp.importing": "Important...", + "pad.impexp.confirmimport": "En importar un fitxer se sobreescriurà el text actual del pad. Esteu segur que voleu continuar?", + "pad.impexp.convertFailed": "No és possible d'importar aquest fitxer. Si us plau, podeu provar d'utilitzar un format diferent o copiar i enganxar manualment.", + "pad.impexp.uploadFailed": "Ha fallat la càrrega. Torneu-ho a provar", + "pad.impexp.importfailed": "Ha fallat la importació", + "pad.impexp.copypaste": "Si us plau, copieu i enganxeu", + "pad.impexp.exportdisabled": "Està inhabilitada l'exportació com a {{type}}. Contacteu amb el vostre administrador de sistemes per a més informació." }
\ No newline at end of file diff --git a/src/locales/cs.json b/src/locales/cs.json index bf415f23..4ff97ec6 100644 --- a/src/locales/cs.json +++ b/src/locales/cs.json @@ -1,99 +1,126 @@ { - "@metadata": { - "authors": [ - "Quinn" - ] - }, - "index.newPad": "Nov\u00fd Pad", - "index.createOpenPad": "nebo vytvo\u0159it\/otev\u0159\u00edt Pad jm\u00e9nem:", - "pad.toolbar.bold.title": "Tu\u010dn\u00e9 (Ctrl-B)", - "pad.toolbar.italic.title": "Kurz\u00edva (Ctrl-I)", - "pad.toolbar.underline.title": "Podtr\u017een\u00ed (Ctrl-U)", - "pad.toolbar.strikethrough.title": "P\u0159eskrtnut\u00e9", - "pad.toolbar.ol.title": "\u010c\u00edslovan\u00fd seznam", - "pad.toolbar.ul.title": "Ne\u010d\u00edslovan\u00fd seznam", - "pad.toolbar.indent.title": "Odsazen\u00ed", - "pad.toolbar.unindent.title": "P\u0159edsazen\u00ed", - "pad.toolbar.undo.title": "Zp\u011bt (Ctrl-Z)", - "pad.toolbar.redo.title": "Opakovat (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Vymazat barvy autorstv\u00ed", - "pad.toolbar.import_export.title": "Importovat\/Exportovat z\/do jin\u00fdch form\u00e1t\u016f", - "pad.toolbar.timeslider.title": "Osa \u010dasu", - "pad.toolbar.savedRevision.title": "Ulo\u017een\u00e9 revize", - "pad.toolbar.settings.title": "Nastaven\u00ed", - "pad.toolbar.embed.title": "Um\u00edstit tento Pad", - "pad.toolbar.showusers.title": "Zobrazit u\u017eivatele u tohoto Padu", - "pad.colorpicker.save": "Ulo\u017eit", - "pad.colorpicker.cancel": "Zru\u0161it", - "pad.loading": "Na\u010d\u00edt\u00e1n\u00ed...", - "pad.passwordRequired": "Pot\u0159ebuje\u0161 zadat heslo pro p\u0159\u00edstup k tomuto Padu", - "pad.permissionDenied": "Nem\u00e1\u0161 p\u0159\u00edstupov\u00e9 opr\u00e1vn\u011bn\u00ed k tomuto Padu", - "pad.wrongPassword": "Tv\u00e9 heslo je \u0161patn\u00e9", - "pad.settings.padSettings": "Nastaven\u00ed Padu", - "pad.settings.myView": "Vlastn\u00ed pohled", - "pad.settings.stickychat": "Chat v\u017edy na obrazovce", - "pad.settings.colorcheck": "Barvy autorstv\u00ed", - "pad.settings.linenocheck": "\u010c\u00edsla \u0159\u00e1dk\u016f", - "pad.settings.fontType": "Typ p\u00edsma:", - "pad.settings.fontType.normal": "Norm\u00e1ln\u00ed", - "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "Glob\u00e1ln\u00ed pohled", - "pad.settings.language": "Jazyk:", - "pad.importExport.import_export": "Import\/Export", - "pad.importExport.import": "Nahr\u00e1t libovoln\u00fd textov\u00fd soubor nebo dokument", - "pad.importExport.export": "Exportovat st\u00e1vaj\u00edc\u00ed Pad jako:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Prost\u00fd text", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Importovat m\u016f\u017ee\u0161 pouze prost\u00fd text nebo HTML form\u00e1tov\u00e1n\u00ed. Pro pokro\u010dilej\u0161\u00ed funkce importu, pros\u00edm, nainstaluj \u201e<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\">abiword<\/a>\u201c.", - "pad.modals.connected": "P\u0159ipojeno.", - "pad.modals.reconnecting": "Znovup\u0159ipojov\u00e1n\u00ed k tv\u00e9mu Padu\u2026", - "pad.modals.forcereconnect": "Vynutit znovup\u0159ipojen\u00ed", - "pad.modals.userdup.explanation": "Zd\u00e1 se, \u017ee tento Pad je na tomto po\u010d\u00edta\u010di otev\u0159en ve v\u00edce ne\u017e jednom okn\u011b.", - "pad.modals.userdup.advice": "Pro pou\u017eit\u00ed tohoto okna se mus\u00ed\u0161 znovu p\u0159ipojit.", - "pad.modals.unauth": "Nem\u00e1te autorizaci", - "pad.modals.unauth.explanation": "Va\u0161e opr\u00e1vn\u011bn\u00ed se zm\u011bnila, zat\u00edmco jste si prohl\u00ed\u017eel\/a toto okno. Zkuste se znovu p\u0159ipojit.", - "pad.modals.looping": "Odpojeno.", - "pad.modals.looping.explanation": "Nastaly probl\u00e9my p\u0159i komunikaci se synchroniza\u010dn\u00edm serverem.", - "pad.modals.looping.cause": "Mo\u017en\u00e1 jste p\u0159ipojeni p\u0159es nekompaktn\u00ed firewall nebo proxy.", - "pad.modals.initsocketfail": "Server je nedostupn\u00fd.", - "pad.modals.initsocketfail.explanation": "Nepoda\u0159ilo se p\u0159ipojit k synchroniza\u010dn\u00edmu serveru.", - "pad.modals.initsocketfail.cause": "Toto je pravd\u011bpodobn\u011b zp\u016fsobeno va\u0161\u00edm prohl\u00ed\u017ee\u010dem nebo p\u0159ipojen\u00edm k internetu.", - "pad.modals.slowcommit": "Odpojeno.", - "pad.modals.slowcommit.explanation": "Server neodpov\u00edd\u00e1.", - "pad.modals.slowcommit.cause": "M\u016f\u017ee to b\u00fdt zp\u016fsobeno probl\u00e9my s internetov\u00fdm p\u0159ipojen\u00edm.", - "pad.modals.deleted": "Odstran\u011bno.", - "pad.modals.deleted.explanation": "Tento Pad byl odebr\u00e1n.", - "pad.modals.disconnected": "Byl jsi odpojen.", - "pad.modals.disconnected.explanation": "P\u0159ipojen\u00ed k serveru bylo p\u0159eru\u0161eno", - "pad.modals.disconnected.cause": "Server m\u016f\u017ee b\u00fdt nedostupn\u00fd. Pros\u00edm, upozorni n\u00e1s, pokud bude tento probl\u00e9m p\u0159etrv\u00e1vat.", - "pad.share": "Sd\u00edlet tento Pad", - "pad.share.readonly": "Jen pro \u010dten\u00ed", - "pad.share.link": "Odkaz", - "pad.share.emebdcode": "Vlo\u017eit URL", - "pad.chat": "Chat", - "pad.chat.title": "Otev\u0159\u00edt chat tohoto Padu.", - "timeslider.pageTitle": "Osa \u010dasu {{appTitle}}", - "timeslider.toolbar.returnbutton": "N\u00e1vrat do Padu", - "timeslider.toolbar.authors": "Auto\u0159i:", - "timeslider.toolbar.authorsList": "Bez autor\u016f", - "timeslider.exportCurrent": "Exportovat nyn\u011bj\u0161\u00ed verzi jako:", - "timeslider.version": "Verze {{version}}", - "timeslider.saved": "Ulo\u017eeno {{day}} {{month}} {{year}}", - "timeslider.dateformat": "{{day}} {{month}} {{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "leden", - "timeslider.month.february": "\u00fanor", - "timeslider.month.march": "b\u0159ezen", - "timeslider.month.april": "duben", - "timeslider.month.may": "kv\u011bten", - "timeslider.month.june": "\u010derven", - "timeslider.month.july": "\u010dervenec", - "timeslider.month.august": "srpen", - "timeslider.month.september": "z\u00e1\u0159\u00ed", - "timeslider.month.october": "\u0159\u00edjen", - "timeslider.month.november": "listopad", - "timeslider.month.december": "prosinec" + "@metadata": { + "authors": [ + "Jakubt", + "Jezevec", + "Juandev", + "Leanes", + "Quinn" + ] + }, + "index.newPad": "Založ nový Pad", + "index.createOpenPad": "nebo vytvoř/otevři Pad s názvem:", + "pad.toolbar.bold.title": "Tučný text (Ctrl-B)", + "pad.toolbar.italic.title": "Kurzíva (Ctrl-I)", + "pad.toolbar.underline.title": "Podtržené písmo (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Přeskrtnuté písmo", + "pad.toolbar.ol.title": "Číslovaný seznam", + "pad.toolbar.ul.title": "Nečíslovaný seznam", + "pad.toolbar.indent.title": "Odsazení", + "pad.toolbar.unindent.title": "Předsazení", + "pad.toolbar.undo.title": "Zpět (Ctrl-Z)", + "pad.toolbar.redo.title": "Opakovat (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Vymazat barvy autorů", + "pad.toolbar.import_export.title": "Importovat/Exportovat z/do jiných formátů", + "pad.toolbar.timeslider.title": "Časová osa", + "pad.toolbar.savedRevision.title": "Uložit revizi", + "pad.toolbar.settings.title": "Nastavení", + "pad.toolbar.embed.title": "Sdílet a umístit tento Pad", + "pad.toolbar.showusers.title": "Zobrazit uživatele u tohoto Padu", + "pad.colorpicker.save": "Uložit", + "pad.colorpicker.cancel": "Zrušit", + "pad.loading": "Načítání...", + "pad.passwordRequired": "Pro přístup k tomuto Padu je třeba znát heslo", + "pad.permissionDenied": "Nemáte oprávnění pro přístup k tomuto Padu", + "pad.wrongPassword": "Nesprávné heslo", + "pad.settings.padSettings": "Nastavení Padu", + "pad.settings.myView": "Vlastní pohled", + "pad.settings.stickychat": "Chat vždy na obrazovce", + "pad.settings.colorcheck": "Barvy autorů", + "pad.settings.linenocheck": "Čísla řádků", + "pad.settings.rtlcheck": "Číst obsah zprava doleva?", + "pad.settings.fontType": "Typ písma:", + "pad.settings.fontType.normal": "Normální", + "pad.settings.fontType.monospaced": "Neproporční", + "pad.settings.globalView": "Globální pohled", + "pad.settings.language": "Jazyk:", + "pad.importExport.import_export": "Import/Export", + "pad.importExport.import": "Nahrát libovolný textový soubor nebo dokument", + "pad.importExport.importSuccessful": "Úspěšně!", + "pad.importExport.export": "Exportovat stávající Pad jako:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Prostý text", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Importovat můžeš pouze prostý text nebo HTML formátování. Pro pokročilejší funkce importu, prosím, nainstaluj „\u003Ca 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\"\u003Eabiword\u003C/a\u003E“.", + "pad.modals.connected": "Připojeno.", + "pad.modals.reconnecting": "Znovupřipojování k Padu…", + "pad.modals.forcereconnect": "Vynutit znovupřipojení", + "pad.modals.userdup": "Otevřeno v jiném okně", + "pad.modals.userdup.explanation": "Zdá se, že tento Pad je na tomto počítači otevřen ve více než jednom okně.", + "pad.modals.userdup.advice": "Pro použití tohoto okna je třeba se znovu připojit.", + "pad.modals.unauth": "Nemáte autorizaci", + "pad.modals.unauth.explanation": "Vaše oprávnění se změnila, zatímco jste si prohlížel/a toto okno. Zkuste se znovu připojit.", + "pad.modals.looping.explanation": "Nastaly problémy při komunikaci se synchronizačním serverem.", + "pad.modals.looping.cause": "Možná jste připojeni přes nekompaktní firewall nebo proxy.", + "pad.modals.initsocketfail": "Server je nedostupný.", + "pad.modals.initsocketfail.explanation": "Nepodařilo se připojit k synchronizačnímu serveru.", + "pad.modals.initsocketfail.cause": "Toto je pravděpodobně způsobeno vaším prohlížečem nebo připojením k internetu.", + "pad.modals.slowcommit.explanation": "Server neodpovídá.", + "pad.modals.slowcommit.cause": "Může to být způsobeno problémy s internetovým připojením.", + "pad.modals.badChangeset.explanation": "Editace, kterou jste učinili byla vyhodnocena jako zakázaná syncronizací serveru.", + "pad.modals.badChangeset.cause": "To může být způsobeno špatnou konfigurací serveru, nebo jiným neočekávaným chováním. Kontaktujte prosím správce služby, pokud i myslíte, že se jedná o chybu. Zkuste se připojit znovu, pokud chcete pokračovat v psaní.", + "pad.modals.corruptPad.explanation": "Pad, ke kterému se snažíte připojit je poškozen.", + "pad.modals.corruptPad.cause": "To může být kvůli špatné konfiguraci serveru, nebo kvůli jinému neočekávanému chování. Kontaktujte prosím správce služby.", + "pad.modals.deleted": "Odstraněno.", + "pad.modals.deleted.explanation": "Tento Pad byl odebrán.", + "pad.modals.disconnected": "Byl jste odpojen.", + "pad.modals.disconnected.explanation": "Připojení k serveru bylo přerušeno", + "pad.modals.disconnected.cause": "Server může být nedostupný. Upozorněte administrátora služby, pokud se to bude opakovat.", + "pad.share": "Sdílet tento Pad", + "pad.share.readonly": "Jen pro čtení", + "pad.share.link": "Odkaz", + "pad.share.emebdcode": "Vložit URL", + "pad.chat": "Chat", + "pad.chat.title": "Otevřít chat tohoto Padu.", + "pad.chat.loadmessages": "Načíst více zpráv", + "timeslider.pageTitle": "Časová osa {{appTitle}}", + "timeslider.toolbar.returnbutton": "Návrat do Padu", + "timeslider.toolbar.authors": "Autoři:", + "timeslider.toolbar.authorsList": "Bez autorů", + "timeslider.toolbar.exportlink.title": "Exportovat", + "timeslider.exportCurrent": "Exportovat nynější verzi jako:", + "timeslider.version": "Verze {{version}}", + "timeslider.saved": "Uloženo {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{day}} {{month}} {{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "leden", + "timeslider.month.february": "únor", + "timeslider.month.march": "březen", + "timeslider.month.april": "duben", + "timeslider.month.may": "květen", + "timeslider.month.june": "červen", + "timeslider.month.july": "červenec", + "timeslider.month.august": "srpen", + "timeslider.month.september": "září", + "timeslider.month.october": "říjen", + "timeslider.month.november": "listopad", + "timeslider.month.december": "prosinec", + "timeslider.unnamedauthors": "{{num}} {[ plural(num) one: nejmenovaný Autor, few: nejmenovaní Autoři, other: nejmenovaných Autorů ]}", + "pad.savedrevs.marked": "Tato revize je nyní označena jako uložená", + "pad.userlist.entername": "Zadejte své jméno", + "pad.userlist.unnamed": "nejmenovaný", + "pad.userlist.guest": "Host", + "pad.userlist.deny": "Zakázat", + "pad.userlist.approve": "Povolit", + "pad.editbar.clearcolors": "Odstranit barvy autorů z celého dokumentu?", + "pad.impexp.importbutton": "Importovat", + "pad.impexp.importing": "Importování…", + "pad.impexp.confirmimport": "Import souboru přepíše aktuální text v padu. Opravdu chcete tuto akci provést?", + "pad.impexp.convertFailed": "Tento soubor nelze importovat. Použijte prosím jiný formát dokumentu nebo nakopírujte text ručně", + "pad.impexp.uploadFailed": "Nahrávání selhalo, zkuste to znovu", + "pad.impexp.importfailed": "Import selhal", + "pad.impexp.copypaste": "Vložte prosím kopii", + "pad.impexp.exportdisabled": "Export do formátu {{type}} je zakázán. Kontaktujte svého administrátora pro zjištění detailů." }
\ No newline at end of file diff --git a/src/locales/da.json b/src/locales/da.json index e7cde1f5..e508e540 100644 --- a/src/locales/da.json +++ b/src/locales/da.json @@ -1,121 +1,124 @@ { - "@metadata": { - "authors": [ - "Christian List", - "Peter Alberti" - ] - }, - "index.newPad": "Ny Pad", - "index.createOpenPad": "eller opret\/\u00e5bn en Pad med navnet:", - "pad.toolbar.bold.title": "Fed (Ctrl-B)", - "pad.toolbar.italic.title": "Kursiv (Ctrl-I)", - "pad.toolbar.underline.title": "Understregning (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Gennemstregning", - "pad.toolbar.ol.title": "Sorteret liste", - "pad.toolbar.ul.title": "Usorteret liste", - "pad.toolbar.indent.title": "Indrykning", - "pad.toolbar.unindent.title": "Ryk ud", - "pad.toolbar.undo.title": "Fortryd (Ctrl-Z)", - "pad.toolbar.redo.title": "Annuller Fortryd (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Fjern farver for forfatterskab", - "pad.toolbar.import_export.title": "Import\/eksport fra\/til forskellige filformater", - "pad.toolbar.timeslider.title": "Timeslider", - "pad.toolbar.savedRevision.title": "Gemte revisioner", - "pad.toolbar.settings.title": "Indstillinger", - "pad.toolbar.embed.title": "Integrer denne pad", - "pad.toolbar.showusers.title": "Vis brugere p\u00e5 denne pad", - "pad.colorpicker.save": "Gem", - "pad.colorpicker.cancel": "Afbryd", - "pad.loading": "Indl\u00e6ser ...", - "pad.passwordRequired": "Du skal bruge en adgangskode for at f\u00e5 adgang til denne pad", - "pad.permissionDenied": "Du har ikke tilladelse til at f\u00e5 adgang til denne pad.", - "pad.wrongPassword": "Din adgangskode er forkert", - "pad.settings.padSettings": "Pad indstillinger", - "pad.settings.myView": "Min visning", - "pad.settings.stickychat": "Chat altid p\u00e5 sk\u00e6rmen", - "pad.settings.colorcheck": "Forfatterskabsfarver", - "pad.settings.linenocheck": "Linjenumre", - "pad.settings.fontType": "Skrifttype:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Fastbredde", - "pad.settings.globalView": "Global visning", - "pad.settings.language": "Sprog:", - "pad.importExport.import_export": "Import\/Eksport", - "pad.importExport.import": "Uploade en tekstfil eller dokument", - "pad.importExport.importSuccessful": "Vellykket!", - "pad.importExport.export": "Eksporter aktuelle pad som:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Almindelig tekst", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Du kan kun importere fra almindelig tekst eller HTML-formater. For mere avancerede importfunktioner, <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\">installer venligst abiword<\/a>.", - "pad.modals.connected": "Forbundet.", - "pad.modals.reconnecting": "Genopretter forbindelsen til din pad...", - "pad.modals.forcereconnect": "Gennemtving genoprettelse af forbindelsen", - "pad.modals.userdup": "\u00c5bnet i et andet vindue", - "pad.modals.userdup.explanation": "Denne pad synes at v\u00e6re \u00e5bnet i mere end \u00e9t browservindue p\u00e5 denne computer.", - "pad.modals.userdup.advice": "Tilslut igen for at bruge dette vindue i stedet.", - "pad.modals.unauth": "Ikke tilladt", - "pad.modals.unauth.explanation": "Dine rettigheder er \u00e6ndret mens du ser p\u00e5 denne side. Pr\u00f8v at oprette forbindelsen igen.", - "pad.modals.looping": "Forbindelse afbrudt.", - "pad.modals.looping.explanation": "Der er kommunikationsproblemer med synkroniseringsserveren.", - "pad.modals.looping.cause": "M\u00e5ske tilsluttede du via en inkompatibel firewall eller proxy.", - "pad.modals.initsocketfail": "Serveren er ikke tilg\u00e6ngelig.", - "pad.modals.initsocketfail.explanation": "Kunne ikke oprette forbindelse til synkroniseringsserveren.", - "pad.modals.initsocketfail.cause": "Det skyldes sandsynligvis et problem med din browser eller din internetforbindelse.", - "pad.modals.slowcommit": "Forbindelse afbrudt.", - "pad.modals.slowcommit.explanation": "Serveren svarer ikke.", - "pad.modals.slowcommit.cause": "Det kan skyldes problemer med netv\u00e6rksforbindelsen.", - "pad.modals.deleted": "Slettet.", - "pad.modals.deleted.explanation": "Denne pad er blevet fjernet.", - "pad.modals.disconnected": "Du har f\u00e5et afbrudt forbindelsen.", - "pad.modals.disconnected.explanation": "Forbindelsen til serveren blev afbrudt", - "pad.modals.disconnected.cause": "Serveren er muligvis ikke tilg\u00e6ngelig. G\u00f8r os venligst opm\u00e6rksom p\u00e5 hvis dette forts\u00e6tter med at ske.", - "pad.share": "Del denne pad", - "pad.share.readonly": "Skrivebeskyttet", - "pad.share.link": "Link", - "pad.share.emebdcode": "Integrerings URL", - "pad.chat": "Chat", - "pad.chat.title": "\u00c5ben chat for denne pad.", - "pad.chat.loadmessages": "Indl\u00e6s flere meddelelser", - "timeslider.pageTitle": "{{appTitle}} Timeslider", - "timeslider.toolbar.returnbutton": "Tilbage til pad", - "timeslider.toolbar.authors": "Forfattere:", - "timeslider.toolbar.authorsList": "Ingen forfattere", - "timeslider.toolbar.exportlink.title": "Eksport\u00e9r", - "timeslider.exportCurrent": "Eksporter aktuelle version som:", - "timeslider.version": "Version {{version}}", - "timeslider.saved": "Gemt den {{day}}.{{month}} {{year}}", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "januar", - "timeslider.month.february": "februar", - "timeslider.month.march": "marts", - "timeslider.month.april": "april", - "timeslider.month.may": "maj", - "timeslider.month.june": "juni", - "timeslider.month.july": "juli", - "timeslider.month.august": "august", - "timeslider.month.september": "september", - "timeslider.month.october": "oktober", - "timeslider.month.november": "november", - "timeslider.month.december": "december", - "timeslider.unnamedauthor": "{{num}} unavngiven forfatter", - "timeslider.unnamedauthors": "{{num}} unavngivne forfattere", - "pad.savedrevs.marked": "Denne revision er nu markeret som en gemt revision", - "pad.userlist.entername": "Indtast dit navn", - "pad.userlist.unnamed": "ikke-navngivet", - "pad.userlist.guest": "G\u00e6st", - "pad.userlist.deny": "N\u00e6gt", - "pad.userlist.approve": "Godkend", - "pad.editbar.clearcolors": "Fjern farver for ophavsmand i hele dokumentet?", - "pad.impexp.importbutton": "Importer nu", - "pad.impexp.importing": "Importerer...", - "pad.impexp.confirmimport": "At importere en fil, vil overskrives den aktuelle pad tekst. Er du sikker p\u00e5 du vil forts\u00e6tte?", - "pad.impexp.convertFailed": "Vi var ikke i stand til at importere denne fil. Brug et andet dokument-format eller kopier og s\u00e6t ind manuelt", - "pad.impexp.uploadFailed": "Upload mislykkedes, pr\u00f8v igen", - "pad.impexp.importfailed": "Importen mislykkedes", - "pad.impexp.copypaste": "Venligst kopier og s\u00e6t ind", - "pad.impexp.exportdisabled": "Eksportere i {{type}} format er deaktiveret. Kontakt din systemadministrator for mere information." + "@metadata": { + "authors": { + "0": "Christian List", + "1": "Peter Alberti", + "3": "Steenth" + } + }, + "index.newPad": "Ny Pad", + "index.createOpenPad": "eller opret/åbn en Pad med navnet:", + "pad.toolbar.bold.title": "Fed (Ctrl-B)", + "pad.toolbar.italic.title": "Kursiv (Ctrl-I)", + "pad.toolbar.underline.title": "Understregning (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Gennemstregning", + "pad.toolbar.ol.title": "Sorteret liste", + "pad.toolbar.ul.title": "Usorteret liste", + "pad.toolbar.indent.title": "Indrykning", + "pad.toolbar.unindent.title": "Ryk ud", + "pad.toolbar.undo.title": "Fortryd (Ctrl-Z)", + "pad.toolbar.redo.title": "Annuller Fortryd (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Fjern farver for forfatterskab", + "pad.toolbar.import_export.title": "Import/eksport fra/til forskellige filformater", + "pad.toolbar.timeslider.title": "Timeslider", + "pad.toolbar.savedRevision.title": "Gem Revision", + "pad.toolbar.settings.title": "Indstillinger", + "pad.toolbar.embed.title": "Del og integrer denne pad", + "pad.toolbar.showusers.title": "Vis brugere på denne pad", + "pad.colorpicker.save": "Gem", + "pad.colorpicker.cancel": "Afbryd", + "pad.loading": "Indlæser ...", + "pad.passwordRequired": "Du skal bruge en adgangskode for at få adgang til denne pad", + "pad.permissionDenied": "Du har ikke tilladelse til at få adgang til denne pad.", + "pad.wrongPassword": "Din adgangskode er forkert", + "pad.settings.padSettings": "Pad indstillinger", + "pad.settings.myView": "Min visning", + "pad.settings.stickychat": "Chat altid på skærmen", + "pad.settings.colorcheck": "Forfatterskabsfarver", + "pad.settings.linenocheck": "Linjenumre", + "pad.settings.rtlcheck": "Læse indhold fra højre mod venstre?", + "pad.settings.fontType": "Skrifttype:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Fastbredde", + "pad.settings.globalView": "Global visning", + "pad.settings.language": "Sprog:", + "pad.importExport.import_export": "Import/Eksport", + "pad.importExport.import": "Uploade en tekstfil eller dokument", + "pad.importExport.importSuccessful": "Vellykket!", + "pad.importExport.export": "Eksporter aktuelle pad som:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Almindelig tekst", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Du kan kun importere fra almindelig tekst eller HTML-formater. For mere avancerede importfunktioner, \u003Ca 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\"\u003Einstaller venligst abiword\u003C/a\u003E.", + "pad.modals.connected": "Forbundet.", + "pad.modals.reconnecting": "Genopretter forbindelsen til din pad...", + "pad.modals.forcereconnect": "Gennemtving genoprettelse af forbindelsen", + "pad.modals.userdup": "Åbnet i et andet vindue", + "pad.modals.userdup.explanation": "Denne pad synes at være åbnet i mere end ét browservindue på denne computer.", + "pad.modals.userdup.advice": "Tilslut igen for at bruge dette vindue i stedet.", + "pad.modals.unauth": "Ikke tilladt", + "pad.modals.unauth.explanation": "Dine rettigheder er ændret mens du ser på denne side. Prøv at oprette forbindelsen igen.", + "pad.modals.looping.explanation": "Der er kommunikationsproblemer med synkroniseringsserveren.", + "pad.modals.looping.cause": "Måske tilsluttede du via en inkompatibel firewall eller proxy.", + "pad.modals.initsocketfail": "Serveren er ikke tilgængelig.", + "pad.modals.initsocketfail.explanation": "Kunne ikke oprette forbindelse til synkroniseringsserveren.", + "pad.modals.initsocketfail.cause": "Det skyldes sandsynligvis et problem med din browser eller din internetforbindelse.", + "pad.modals.slowcommit.explanation": "Serveren svarer ikke.", + "pad.modals.slowcommit.cause": "Det kan skyldes problemer med netværksforbindelsen.", + "pad.modals.badChangeset.explanation": "En redigering, du har foretaget, blev klassificeret ulovlig af synkroniseringsserveren.", + "pad.modals.badChangeset.cause": "Dette kan skyldes en forkert konfiguration af serveren eller en anden uventet adfærd. Kontakt venligst service administratoren, hvis du føler, at dette er en fejl. Prøv at oprette forbindelsen igen for at fortsætte med at redigere.", + "pad.modals.corruptPad.explanation": "Den pad du prøver at få adgang til er beskadiget.", + "pad.modals.corruptPad.cause": "Dette kan skyldes en forkert konfiguration af serveren eller en anden uventet adfærd. Kontakt venligst service administratoren.", + "pad.modals.deleted": "Slettet.", + "pad.modals.deleted.explanation": "Denne pad er blevet fjernet.", + "pad.modals.disconnected": "Du har fået afbrudt forbindelsen.", + "pad.modals.disconnected.explanation": "Forbindelsen til serveren blev afbrudt", + "pad.modals.disconnected.cause": "Serveren er muligvis ikke tilgængelig. Informer service administratoren hvis dette fortsætter med at ske.", + "pad.share": "Del denne pad", + "pad.share.readonly": "Skrivebeskyttet", + "pad.share.link": "Link", + "pad.share.emebdcode": "Integrerings URL", + "pad.chat": "Chat", + "pad.chat.title": "Åben chat for denne pad.", + "pad.chat.loadmessages": "Indlæs flere meddelelser", + "timeslider.pageTitle": "{{appTitle}} Timeslider", + "timeslider.toolbar.returnbutton": "Tilbage til pad", + "timeslider.toolbar.authors": "Forfattere:", + "timeslider.toolbar.authorsList": "Ingen forfattere", + "timeslider.toolbar.exportlink.title": "Eksportér", + "timeslider.exportCurrent": "Eksporter aktuelle version som:", + "timeslider.version": "Version {{version}}", + "timeslider.saved": "Gemt den {{day}}.{{month}} {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "januar", + "timeslider.month.february": "februar", + "timeslider.month.march": "marts", + "timeslider.month.april": "april", + "timeslider.month.may": "maj", + "timeslider.month.june": "juni", + "timeslider.month.july": "juli", + "timeslider.month.august": "august", + "timeslider.month.september": "september", + "timeslider.month.october": "oktober", + "timeslider.month.november": "november", + "timeslider.month.december": "december", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: unavngiven forfatter, other: unavngivne forfattere]}", + "pad.savedrevs.marked": "Denne revision er nu markeret som en gemt revision", + "pad.userlist.entername": "Indtast dit navn", + "pad.userlist.unnamed": "ikke-navngivet", + "pad.userlist.guest": "Gæst", + "pad.userlist.deny": "Nægt", + "pad.userlist.approve": "Godkend", + "pad.editbar.clearcolors": "Fjern farver for ophavsmand i hele dokumentet?", + "pad.impexp.importbutton": "Importer nu", + "pad.impexp.importing": "Importerer...", + "pad.impexp.confirmimport": "At importere en fil, vil overskrives den aktuelle pad tekst. Er du sikker på du vil fortsætte?", + "pad.impexp.convertFailed": "Vi var ikke i stand til at importere denne fil. Brug et andet dokument-format eller kopier og sæt ind manuelt", + "pad.impexp.uploadFailed": "Upload mislykkedes, prøv igen", + "pad.impexp.importfailed": "Importen mislykkedes", + "pad.impexp.copypaste": "Venligst kopier og sæt ind", + "pad.impexp.exportdisabled": "Eksportere i {{type}} format er deaktiveret. Kontakt din systemadministrator for mere information." }
\ No newline at end of file diff --git a/src/locales/de.json b/src/locales/de.json index 7c51fa91..c2bc1b8c 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -1,123 +1,125 @@ { - "@metadata": { - "authors": { - "0": "Metalhead64", - "1": "Mklehr", - "2": "Nipsky", - "4": "Wikinaut" - } - }, - "index.newPad": "Neues Pad", - "index.createOpenPad": "Pad mit folgendem Namen \u00f6ffnen:", - "pad.toolbar.bold.title": "Fett (Strg-B)", - "pad.toolbar.italic.title": "Kursiv (Strg-I)", - "pad.toolbar.underline.title": "Unterstrichen (Strg-U)", - "pad.toolbar.strikethrough.title": "Durchgestrichen", - "pad.toolbar.ol.title": "Nummerierte Liste", - "pad.toolbar.ul.title": "Ungeordnete Liste", - "pad.toolbar.indent.title": "Einr\u00fccken", - "pad.toolbar.unindent.title": "Ausr\u00fccken", - "pad.toolbar.undo.title": "R\u00fcckg\u00e4ngig (Strg-Z)", - "pad.toolbar.redo.title": "Wiederholen (Strg-Y)", - "pad.toolbar.clearAuthorship.title": "Autorenfarben zur\u00fccksetzen", - "pad.toolbar.import_export.title": "Import\/Export in verschiedenen Dateiformaten", - "pad.toolbar.timeslider.title": "Pad-Versionsgeschichte anzeigen", - "pad.toolbar.savedRevision.title": "Diese Revision markieren", - "pad.toolbar.settings.title": "Einstellungen", - "pad.toolbar.embed.title": "Dieses Pad teilen oder einbetten", - "pad.toolbar.showusers.title": "Aktuell verbundene Benutzer anzeigen", - "pad.colorpicker.save": "Speichern", - "pad.colorpicker.cancel": "Abbrechen", - "pad.loading": "Laden \u2026", - "pad.passwordRequired": "Sie ben\u00f6tigen ein Passwort, um auf dieses Pad zuzugreifen", - "pad.permissionDenied": "Sie haben keine Berechtigung, um auf dieses Pad zuzugreifen", - "pad.wrongPassword": "Ihr Passwort war falsch", - "pad.settings.padSettings": "Pad Einstellungen", - "pad.settings.myView": "Eigene Ansicht", - "pad.settings.stickychat": "Chat immer anzeigen", - "pad.settings.colorcheck": "Autorenfarben anzeigen", - "pad.settings.linenocheck": "Zeilennummern", - "pad.settings.fontType": "Schriftart:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "Gemeinsame Ansicht", - "pad.settings.language": "Sprache:", - "pad.importExport.import_export": "Import\/Export", - "pad.importExport.import": "Datei oder Dokument hochladen", - "pad.importExport.importSuccessful": "Erfolgreich!", - "pad.importExport.export": "Aktuelles Pad exportieren als:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Textdatei", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Sie k\u00f6nnen nur aus Klartext oder HTML-Formaten importieren. F\u00fcr mehr erweiterte Importfunktionen <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\">installieren Sie bitte abiword<\/a>.", - "pad.modals.connected": "Verbunden.", - "pad.modals.reconnecting": "Wiederherstellen der Verbindung \u2026", - "pad.modals.forcereconnect": "Erneut Verbinden", - "pad.modals.userdup": "In einem anderen Fenster ge\u00f6ffnet", - "pad.modals.userdup.explanation": "Dieses Pad scheint in mehr als einem Browser-Fenster auf diesem Computer ge\u00f6ffnet zu sein.", - "pad.modals.userdup.advice": "Um dieses Fenster zu benutzen, verbinden Sie bitte erneut.", - "pad.modals.unauth": "Nicht authorisiert.", - "pad.modals.unauth.explanation": "Ihre Zugriffsberechtigung f\u00fcr dieses Pad hat sich zwischenzeitlich ge\u00e4ndert. Bitte versuchen Sie, das Pad erneut aufzurufen.", - "pad.modals.looping": "Verbindung unterbrochen.", - "pad.modals.looping.explanation": "Es gibt Probleme bei der Kommunikation mit dem Pad-Server.", - "pad.modals.looping.cause": "M\u00f6glicherweise sind Sie durch eine inkompatible Firewall oder \u00fcber einen inkompatiblen Proxy mit dem Padserver verbunden.", - "pad.modals.initsocketfail": "Pad-Server nicht erreichbar.", - "pad.modals.initsocketfail.explanation": "Es konnte keine Verbindung zum Pad-Server hergestellt werden.", - "pad.modals.initsocketfail.cause": "Dies k\u00f6nnte an Ihrem Browser oder Ihrer Internet-Verbindung liegen.", - "pad.modals.slowcommit": "Verbindung unterbrochen.", - "pad.modals.slowcommit.explanation": "Der Pad-Server reagiert nicht.", - "pad.modals.slowcommit.cause": "Dies k\u00f6nnte ein Netzwerkverbindungsproblem sein oder eine momentane \u00dcberlastung des Pad-Servers.", - "pad.modals.deleted": "Gel\u00f6scht.", - "pad.modals.deleted.explanation": "Dieses Pad wurde gel\u00f6scht.", - "pad.modals.disconnected": "Verbindung unterbrochen.", - "pad.modals.disconnected.explanation": "Die Verbindung zum Pad-Server wurde unterbrochen.", - "pad.modals.disconnected.cause": "M\u00f6glicherweise ist der Pad-Server nicht erreichbar. Bitte benachrichtigen Sie uns, falls dies weiterhin passiert.", - "pad.share": "Dieses Pad anderen mitteilen", - "pad.share.readonly": "Eingeschr\u00e4nkter Nur-Lese-Zugriff", - "pad.share.link": "Link", - "pad.share.emebdcode": "In Webseite einbetten", - "pad.chat": "Chat", - "pad.chat.title": "Den Chat dieses Pads \u00f6ffnen", - "pad.chat.loadmessages": "Weitere Nachrichten laden", - "timeslider.pageTitle": "{{appTitle}} Pad-Versionsgeschichte", - "timeslider.toolbar.returnbutton": "Zur\u00fcck zum Pad", - "timeslider.toolbar.authors": "Autoren:", - "timeslider.toolbar.authorsList": "keine Autoren", - "timeslider.toolbar.exportlink.title": "Export", - "timeslider.exportCurrent": "Exportiere diese Version als:", - "timeslider.version": "Version {{version}}", - "timeslider.saved": "Gespeichert am {{day}}.{{month}}.{{year}}", - "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Januar", - "timeslider.month.february": "Februar", - "timeslider.month.march": "M\u00e4rz", - "timeslider.month.april": "April", - "timeslider.month.may": "Mai", - "timeslider.month.june": "Juni", - "timeslider.month.july": "Juli", - "timeslider.month.august": "August", - "timeslider.month.september": "September", - "timeslider.month.october": "Oktober", - "timeslider.month.november": "November", - "timeslider.month.december": "Dezember", - "timeslider.unnamedauthor": "{{num}} unbenannter Autor", - "timeslider.unnamedauthors": "{{num}} unbenannte Autoren", - "pad.savedrevs.marked": "Diese Version wurde jetzt als gespeicherte Version gekennzeichnet", - "pad.userlist.entername": "Geben Sie Ihren Namen ein", - "pad.userlist.unnamed": "unbenannt", - "pad.userlist.guest": "Gast", - "pad.userlist.deny": "Verweigern", - "pad.userlist.approve": "Genehmigen", - "pad.editbar.clearcolors": "Autorenfarben im gesamten Dokument zur\u00fccksetzen?", - "pad.impexp.importbutton": "Jetzt importieren", - "pad.impexp.importing": "Importiere \u2026", - "pad.impexp.confirmimport": "Das Importieren einer Datei \u00fcberschreibt den aktuellen Text des Pads. Wollen Sie wirklich fortfahren?", - "pad.impexp.convertFailed": "Wir k\u00f6nnen diese Datei nicht importieren. Bitte verwenden Sie ein anderes Dokumentenformat oder \u00fcbertragen Sie den Text manuell.", - "pad.impexp.uploadFailed": "Der Upload ist fehlgeschlagen. Bitte versuchen Sie es erneut.", - "pad.impexp.importfailed": "Import fehlgeschlagen", - "pad.impexp.copypaste": "Bitte kopieren und einf\u00fcgen", - "pad.impexp.exportdisabled": "Der Export im {{type}}-Format ist deaktiviert. F\u00fcr Einzelheiten kontaktieren Sie bitte Ihren Systemadministrator." + "@metadata": { + "authors": { + "0": "Metalhead64", + "1": "Mklehr", + "2": "Nipsky", + "4": "Wikinaut" + } + }, + "index.newPad": "Neues Pad", + "index.createOpenPad": "Pad mit folgendem Namen öffnen:", + "pad.toolbar.bold.title": "Fett (Strg-B)", + "pad.toolbar.italic.title": "Kursiv (Strg-I)", + "pad.toolbar.underline.title": "Unterstrichen (Strg-U)", + "pad.toolbar.strikethrough.title": "Durchgestrichen", + "pad.toolbar.ol.title": "Nummerierte Liste", + "pad.toolbar.ul.title": "Ungeordnete Liste", + "pad.toolbar.indent.title": "Einrücken (TAB)", + "pad.toolbar.unindent.title": "Ausrücken (Shift+TAB)", + "pad.toolbar.undo.title": "Rückgängig (Strg-Z)", + "pad.toolbar.redo.title": "Wiederholen (Strg-Y)", + "pad.toolbar.clearAuthorship.title": "Autorenfarben zurücksetzen", + "pad.toolbar.import_export.title": "Import/Export von/zu verschiedenen Dateiformaten", + "pad.toolbar.timeslider.title": "Pad-Versionsgeschichte anzeigen", + "pad.toolbar.savedRevision.title": "Version markieren", + "pad.toolbar.settings.title": "Einstellungen", + "pad.toolbar.embed.title": "Pad teilen oder einbetten", + "pad.toolbar.showusers.title": "Aktuell verbundene Benutzer anzeigen", + "pad.colorpicker.save": "Speichern", + "pad.colorpicker.cancel": "Abbrechen", + "pad.loading": "Laden …", + "pad.passwordRequired": "Sie benötigen ein Passwort, um auf dieses Pad zuzugreifen", + "pad.permissionDenied": "Sie haben keine Berechtigung, um auf dieses Pad zuzugreifen", + "pad.wrongPassword": "Ihr Passwort war falsch", + "pad.settings.padSettings": "Pad Einstellungen", + "pad.settings.myView": "Eigene Ansicht", + "pad.settings.stickychat": "Chat immer anzeigen", + "pad.settings.colorcheck": "Autorenfarben anzeigen", + "pad.settings.linenocheck": "Zeilennummern", + "pad.settings.rtlcheck": "Inhalt von rechts nach links lesen?", + "pad.settings.fontType": "Schriftart:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Gemeinsame Ansicht", + "pad.settings.language": "Sprache:", + "pad.importExport.import_export": "Import/Export", + "pad.importExport.import": "Text-Datei oder Dokument hochladen", + "pad.importExport.importSuccessful": "Erfolgreich!", + "pad.importExport.export": "Aktuelles Pad exportieren als:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Textdatei", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Sie können nur aus Klartext oder HTML-Formaten importieren. Für mehr erweiterte Importfunktionen \u003Ca 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\"\u003Einstallieren Sie bitte abiword\u003C/a\u003E.", + "pad.modals.connected": "Verbunden.", + "pad.modals.reconnecting": "Wiederherstellen der Verbindung …", + "pad.modals.forcereconnect": "Erneut Verbinden", + "pad.modals.userdup": "In einem anderen Fenster geöffnet", + "pad.modals.userdup.explanation": "Dieses Pad scheint in mehr als einem Browser-Fenster auf diesem Computer geöffnet zu sein.", + "pad.modals.userdup.advice": "Um dieses Fenster zu benutzen, verbinden Sie bitte erneut.", + "pad.modals.unauth": "Nicht authorisiert.", + "pad.modals.unauth.explanation": "Ihre Zugriffsberechtigung für dieses Pad hat sich zwischenzeitlich geändert. Sie können versuchen das Pad erneut aufzurufen.", + "pad.modals.looping.explanation": "Es gibt Probleme bei der Kommunikation mit dem Pad-Server.", + "pad.modals.looping.cause": "Möglicherweise sind Sie durch eine inkompatible Firewall oder über einen inkompatiblen Proxy mit dem Pad-Server verbunden.", + "pad.modals.initsocketfail": "Pad-Server nicht erreichbar.", + "pad.modals.initsocketfail.explanation": "Es konnte keine Verbindung zum Pad-Server hergestellt werden.", + "pad.modals.initsocketfail.cause": "Dies könnte an Ihrem Browser oder Ihrer Internet-Verbindung liegen.", + "pad.modals.slowcommit.explanation": "Der Pad-Server reagiert nicht.", + "pad.modals.slowcommit.cause": "Dies könnte ein Netzwerkverbindungsproblem sein oder eine momentane Überlastung des Pad-Servers.", + "pad.modals.badChangeset.explanation": "Eine von Ihnen gemachte Änderung wurde vom Pad-Server als ungültig eingestuft.", + "pad.modals.badChangeset.cause": "Dies könnte aufgrund einer falschen Serverkonfiguration oder eines anderen unerwarteten Verhaltens passiert sein. Bitte kontaktiere den Diensteadministrator, falls du glaubst, dass es sich um einen Fehler handelt. Versuche dich erneut zu verbinden, um mit dem Bearbeiten fortzufahren.", + "pad.modals.corruptPad.explanation": "Das Pad, auf das du zugreifen willst, ist beschädigt.", + "pad.modals.corruptPad.cause": "Dies könnte an einer falschen Serverkonfiguration oder eines anderen unerwarteten Verhaltens liegen. Bitte kontaktiere den Diensteadministrator.", + "pad.modals.deleted": "Gelöscht.", + "pad.modals.deleted.explanation": "Dieses Pad wurde entfernt.", + "pad.modals.disconnected": "Verbindung unterbrochen.", + "pad.modals.disconnected.explanation": "Die Verbindung zum Pad-Server wurde unterbrochen.", + "pad.modals.disconnected.cause": "Möglicherweise ist der Pad-Server nicht erreichbar. Bitte benachrichtigen Sie den Dienstadministrator, falls dies weiterhin passiert.", + "pad.share": "Dieses Pad teilen", + "pad.share.readonly": "Eingeschränkter Nur-Lese-Zugriff", + "pad.share.link": "Link", + "pad.share.emebdcode": "In Webseite einbetten", + "pad.chat": "Chat", + "pad.chat.title": "Den Chat dieses Pads öffnen", + "pad.chat.loadmessages": "Weitere Nachrichten laden", + "timeslider.pageTitle": "{{appTitle}} Pad-Versionsgeschichte", + "timeslider.toolbar.returnbutton": "Zurück zum Pad", + "timeslider.toolbar.authors": "Autoren:", + "timeslider.toolbar.authorsList": "keine Autoren", + "timeslider.toolbar.exportlink.title": "Diese Version exportieren", + "timeslider.exportCurrent": "Exportiere diese Version als:", + "timeslider.version": "Version {{version}}", + "timeslider.saved": "Gespeichert am {{day}}.{{month}}.{{year}}", + "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Januar", + "timeslider.month.february": "Februar", + "timeslider.month.march": "März", + "timeslider.month.april": "April", + "timeslider.month.may": "Mai", + "timeslider.month.june": "Juni", + "timeslider.month.july": "Juli", + "timeslider.month.august": "August", + "timeslider.month.september": "September", + "timeslider.month.october": "Oktober", + "timeslider.month.november": "November", + "timeslider.month.december": "Dezember", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: unbenannter Autor, other: unbenannte Autoren ]}", + "pad.savedrevs.marked": "Diese Version wurde jetzt als gespeicherte Version gekennzeichnet", + "pad.userlist.entername": "Geben Sie Ihren Namen ein", + "pad.userlist.unnamed": "unbenannt", + "pad.userlist.guest": "Gast", + "pad.userlist.deny": "Verweigern", + "pad.userlist.approve": "Genehmigen", + "pad.editbar.clearcolors": "Autorenfarben im gesamten Dokument zurücksetzen?", + "pad.impexp.importbutton": "Jetzt importieren", + "pad.impexp.importing": "Importiere …", + "pad.impexp.confirmimport": "Das Importieren einer Datei überschreibt den aktuellen Text des Pads. Wollen Sie wirklich fortfahren?", + "pad.impexp.convertFailed": "Wir können diese Datei nicht importieren. Bitte verwenden Sie ein anderes Dokumentformat oder übertragen Sie den Text manuell.", + "pad.impexp.uploadFailed": "Der Upload ist fehlgeschlagen. Bitte versuchen Sie es erneut.", + "pad.impexp.importfailed": "Import fehlgeschlagen", + "pad.impexp.copypaste": "Bitte kopieren und einfügen", + "pad.impexp.exportdisabled": "Der Export im {{type}}-Format ist deaktiviert. Für Einzelheiten kontaktieren Sie bitte Ihren Systemadministrator." }
\ No newline at end of file diff --git a/src/locales/diq.json b/src/locales/diq.json index 62079d78..5d7794b4 100644 --- a/src/locales/diq.json +++ b/src/locales/diq.json @@ -1,76 +1,90 @@ { - "@metadata": { - "authors": [ - "Erdemaslancan", - "Mirzali" - ] - }, - "index.newPad": "Pedo newe", - "pad.toolbar.bold.title": "Qal\u0131n (Ctrl-B)", - "pad.toolbar.italic.title": "Nam\u0131te (Ctrl-I)", - "pad.toolbar.underline.title": "B\u0131nxet\u0131n (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Serxet\u0131n", - "pad.toolbar.ol.title": "Lista r\u00eazkerdiye", - "pad.toolbar.ul.title": "Lista r\u00eazn\u00eakerdiye", - "pad.toolbar.indent.title": "Ser\u00ea r\u00eaze", - "pad.toolbar.unindent.title": "V\u0131cente", - "pad.toolbar.undo.title": "Meke (Ctrl-Z)", - "pad.toolbar.redo.title": "F\u0131na b\u0131ke (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Reng\u00ea Nu\u015fto\u011fi\u00ea Ar\u0131stey", - "pad.toolbar.timeslider.title": "\u011e\u0131zag\u00ea zemani", - "pad.toolbar.savedRevision.title": "Rewizyon\u00ea Qeydbiyayey", - "pad.toolbar.settings.title": "Sazkerd\u0131\u015fi", - "pad.toolbar.embed.title": "Na ped degusnayiya", - "pad.colorpicker.save": "Qeyd ke", - "pad.colorpicker.cancel": "B\u0131texelne", - "pad.loading": "Bar beno...", - "pad.settings.padSettings": "Sazkerd\u0131\u015f\u00ea Pedi", - "pad.settings.myView": "Asay\u0131\u015f\u00ea m\u0131", - "pad.settings.colorcheck": "Reng\u00ea nu\u015ftekariye", - "pad.settings.linenocheck": "N\u0131mrey\u00ea xeter", - "pad.settings.fontType": "Babeta nu\u015fti:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Yewca", - "pad.settings.globalView": "Asay\u0131\u015fo Global", - "pad.settings.language": "Z\u0131wan:", - "pad.importExport.import_export": "Zereday\u0131\u015f\/Teberday\u0131\u015f", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Duz metin", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.modals.connected": "G\u0131rediya.", - "pad.modals.unauth": "Selahiyetdar niyo", - "pad.modals.looping": "B\u00eag\u0131rey\u0131n.", - "pad.modals.initsocketfail": "N\u00earesney\u00eano ciyageyro\u011fi.", - "pad.modals.slowcommit": "B\u00eag\u0131rey\u0131n.", - "pad.modals.deleted": "Esteriya.", - "pad.modals.deleted.explanation": "Ena ped wedariye", - "pad.share": "Na ped v\u0131la ke", - "pad.share.readonly": "Tenya b\u0131wane", - "pad.share.link": "G\u0131re", - "pad.share.emebdcode": "Degusnaye URL", - "pad.chat": "M\u0131hebet", - "pad.chat.title": "Qand\u00ea ena ped m\u0131hebet ake.", - "timeslider.pageTitle": "\u011e\u0131zag\u00ea zemani {{appTitle}}", - "timeslider.toolbar.returnbutton": "Peyser \u015fo ped", - "timeslider.toolbar.authors": "Nu\u015fto\u011fi:", - "timeslider.toolbar.authorsList": "Nu\u015fto\u011fi \u00e7\u0131niy\u00ea", - "timeslider.exportCurrent": "Versiyon\u00ea enewki teber de:", - "timeslider.version": "Versiyon\u00ea {{version}}", - "timeslider.saved": "{{day}} {{month}}, {{year}} de biyo qeyd", - "timeslider.dateformat": "{{month}}\/{{day}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "\u00c7ele", - "timeslider.month.february": "\u015e\u0131bate", - "timeslider.month.march": "Adar", - "timeslider.month.april": "Nisane", - "timeslider.month.may": "Gulane", - "timeslider.month.june": "Heziran", - "timeslider.month.july": "Temuze", - "timeslider.month.august": "Tebaxe", - "timeslider.month.september": "Ke\u015fkelun", - "timeslider.month.october": "T\u0131\u015frino Ver\u00ean", - "timeslider.month.november": "T\u0131\u015frino Pey\u00ean", - "timeslider.month.december": "Kanun" + "@metadata": { + "authors": [ + "Erdemaslancan", + "Gorizon", + "Mirzali" + ] + }, + "index.newPad": "Pedo newe", + "pad.toolbar.bold.title": "Qalın (Ctrl-B)", + "pad.toolbar.italic.title": "Namıte (Ctrl-I)", + "pad.toolbar.underline.title": "Bınxetın (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Serxetın", + "pad.toolbar.ol.title": "Lista rêzkerdiye", + "pad.toolbar.ul.title": "Lista rêznêkerdiye", + "pad.toolbar.indent.title": "Serê rêze", + "pad.toolbar.unindent.title": "Vıcente", + "pad.toolbar.undo.title": "Meke (Ctrl-Z)", + "pad.toolbar.redo.title": "Fına bıke (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Rengê Nuştoğiê Arıstey", + "pad.toolbar.timeslider.title": "Ğızagê zemani", + "pad.toolbar.savedRevision.title": "Revizyoni qeyd ke", + "pad.toolbar.settings.title": "Sazkerdışi", + "pad.toolbar.embed.title": "Na bloknot degusn u bıhesrne", + "pad.toolbar.showusers.title": "Na bloknot de karbera bıasne", + "pad.colorpicker.save": "Qeyd ke", + "pad.colorpicker.cancel": "Bıtexelne", + "pad.loading": "Bar beno...", + "pad.settings.padSettings": "Sazkerdışê Pedi", + "pad.settings.myView": "Asayışê mı", + "pad.settings.colorcheck": "Rengê nuştekariye", + "pad.settings.linenocheck": "Nımreyê xeter", + "pad.settings.fontType": "Babeta nuşti:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Yewca", + "pad.settings.globalView": "Asayışo Global", + "pad.settings.language": "Zıwan:", + "pad.importExport.import_export": "Zeredayış/Teberdayış", + "pad.importExport.importSuccessful": "Mıwafaq biye", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Duz metin", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.connected": "Gırediya.", + "pad.modals.unauth": "Selahiyetdar niyo", + "pad.modals.initsocketfail": "Nêresneyêno ciyageyroği.", + "pad.modals.deleted": "Esteriya.", + "pad.modals.deleted.explanation": "Ena ped wedariye", + "pad.share": "Na ped vıla ke", + "pad.share.readonly": "Tenya bıwane", + "pad.share.link": "Gıre", + "pad.share.emebdcode": "Degusnaye URL", + "pad.chat": "Mıhebet", + "pad.chat.title": "Qandê ena ped mıhebet ake.", + "pad.chat.loadmessages": "Dehana zaf mesaci bar keri", + "timeslider.pageTitle": "Ğızagê zemani {{appTitle}}", + "timeslider.toolbar.returnbutton": "Peyser şo ped", + "timeslider.toolbar.authors": "Nuştoği:", + "timeslider.toolbar.authorsList": "Nuştoği çıniyê", + "timeslider.toolbar.exportlink.title": "Teber de", + "timeslider.exportCurrent": "Versiyonê enewki teber de:", + "timeslider.version": "Versiyonê {{version}}", + "timeslider.saved": "{{day}} {{month}}, {{year}} de biyo qeyd", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Çele", + "timeslider.month.february": "Zemherı", + "timeslider.month.march": "Mert", + "timeslider.month.april": "Lisan", + "timeslider.month.may": "Gúlan", + "timeslider.month.june": "Heziran", + "timeslider.month.july": "Temuz", + "timeslider.month.august": "Ağustos", + "timeslider.month.september": "Keşkelun", + "timeslider.month.october": "Cetan", + "timeslider.month.november": "Kelverdan", + "timeslider.month.december": "Gağand", + "timeslider.unnamedauthors": "{{num}} unnamed {[plural(num) zu: nuştoğ, zewbi: nustoği ]}", + "pad.userlist.entername": "Namey ğo cı kewe", + "pad.userlist.unnamed": "Name nébıyo", + "pad.userlist.guest": "Meyman", + "pad.userlist.deny": "Red ke", + "pad.userlist.approve": "Tesdiq ke", + "pad.editbar.clearcolors": "Wesiqa de renge nuştoğey bıesterneye?", + "pad.impexp.importbutton": "Newke miyan ke", + "pad.impexp.importing": "Deyeno azere...", + "pad.impexp.importfailed": "Zer kerdış mıwafaq nebı", + "pad.impexp.copypaste": "Reca keme kopya pronayış bıkeri" }
\ No newline at end of file diff --git a/src/locales/el.json b/src/locales/el.json index f33865e6..df6d1b11 100644 --- a/src/locales/el.json +++ b/src/locales/el.json @@ -1,123 +1,122 @@ { - "@metadata": { - "authors": [ - "Evropi", - "Glavkos", - "Monopatis", - "Protnet" - ] - }, - "index.newPad": "\u039d\u03ad\u03bf Pad", - "index.createOpenPad": "\u03ae \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1\/\u03ac\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03b5\u03bd\u03cc\u03c2 Pad \u03bc\u03b5 \u03cc\u03bd\u03bf\u03bc\u03b1:", - "pad.toolbar.bold.title": "\u0388\u03bd\u03c4\u03bf\u03bd\u03b1 (Ctrl-B)", - "pad.toolbar.italic.title": "\u03a0\u03bb\u03ac\u03b3\u03b9\u03b1 (Ctrl-I)", - "pad.toolbar.underline.title": "\u03a5\u03c0\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b9\u03c3\u03b7 (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u0394\u03b9\u03b1\u03ba\u03c1\u03b9\u03c4\u03ae \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae", - "pad.toolbar.ol.title": "\u03a4\u03b1\u03be\u03b9\u03bd\u03bf\u03bc\u03b7\u03bc\u03ad\u03bd\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1", - "pad.toolbar.ul.title": "\u039b\u03af\u03c3\u03c4\u03b1 \u03c7\u03c9\u03c1\u03af\u03c2 \u03c3\u03b5\u03b9\u03c1\u03ac", - "pad.toolbar.indent.title": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2", - "pad.toolbar.unindent.title": "\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2", - "pad.toolbar.undo.title": "\u0391\u03bd\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 (Ctrl-Z)", - "pad.toolbar.redo.title": "\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7 (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "\u039a\u03b1\u03b8\u03b1\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2 \u03a7\u03c1\u03c9\u03bc\u03ac\u03c4\u03c9\u03bd \u03a3\u03c5\u03bd\u03c4\u03b1\u03ba\u03c4\u03ce\u03bd", - "pad.toolbar.import_export.title": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03b1\u03c0\u03cc\/\u03c3\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03bf\u03cd\u03c2 \u03c4\u03cd\u03c0\u03bf\u03c5\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd", - "pad.toolbar.timeslider.title": "\u03a7\u03c1\u03bf\u03bd\u03bf\u03b4\u03b9\u03ac\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1", - "pad.toolbar.savedRevision.title": "\u0391\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b5\u03c2 \u0391\u03bd\u03b1\u03b8\u03b5\u03c9\u03c1\u03ae\u03c3\u03b5\u03b9\u03c2", - "pad.toolbar.settings.title": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2", - "pad.toolbar.embed.title": "\u0395\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 pad", - "pad.toolbar.showusers.title": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03c7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd \u03b1\u03c5\u03c4\u03bf\u03cd \u03c4\u03bf\u03c5 pad", - "pad.colorpicker.save": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7", - "pad.colorpicker.cancel": "\u0386\u03ba\u03c5\u03c1\u03bf", - "pad.loading": "\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7...", - "pad.passwordRequired": "\u03a7\u03c1\u03b5\u03b9\u03ac\u03b6\u03b5\u03c3\u03c4\u03b5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b3\u03b9\u03b1 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf pad", - "pad.permissionDenied": "\u0394\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03b4\u03b9\u03ba\u03b1\u03af\u03c9\u03bc\u03b1 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf pad", - "pad.wrongPassword": "\u039f \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c3\u03b1\u03c2 \u03ae\u03c4\u03b1\u03bd \u03bb\u03b1\u03bd\u03b8\u03b1\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2", - "pad.settings.padSettings": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 Pad", - "pad.settings.myView": "\u0397 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae \u03bc\u03bf\u03c5", - "pad.settings.stickychat": "\u0397 \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03ac\u03bd\u03c4\u03b1 \u03bf\u03c1\u03b1\u03c4\u03ae", - "pad.settings.colorcheck": "\u03a7\u03c1\u03ce\u03bc\u03b1\u03c4\u03b1 \u03c3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b7", - "pad.settings.linenocheck": "\u0391\u03c1\u03b9\u03b8\u03bc\u03bf\u03af \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2", - "pad.settings.fontType": "\u03a4\u03cd\u03c0\u03bf\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03bf\u03c3\u03b5\u03b9\u03c1\u03ac\u03c2:", - "pad.settings.fontType.normal": "\u039a\u03b1\u03bd\u03bf\u03bd\u03b9\u03ba\u03ae", - "pad.settings.fontType.monospaced": "\u039a\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03c0\u03bb\u03ac\u03c4\u03bf\u03c5\u03c2", - "pad.settings.globalView": "\u039a\u03b1\u03b8\u03bf\u03bb\u03b9\u03ba\u03ae \u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae", - "pad.settings.language": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b1:", - "pad.importExport.import_export": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae", - "pad.importExport.import": "\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03bf\u03c0\u03bf\u03b9\u03bf\u03c5\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03ae \u03b5\u03b3\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5", - "pad.importExport.importSuccessful": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03ae\u03c2!", - "pad.importExport.export": "\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c4\u03c1\u03ad\u03c7\u03bf\u03bd\u03c4\u03bf\u03c2 pad \u03c9\u03c2:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\u0391\u03c0\u03bb\u03cc \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b1\u03c0\u03bb\u03bf\u03cd \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03ae \u03bc\u03bf\u03c1\u03c6\u03ae\u03c2 html. \u0393\u03b9\u03b1 \u03c0\u03b9\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bc\u03ad\u03bd\u03b5\u03c2 \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2 \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce <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\">\u03b5\u03b3\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf abiword<\/a>.", - "pad.modals.connected": "\u03a3\u03c5\u03bd\u03b4\u03b5\u03bc\u03ad\u03bd\u03bf\u03b9.", - "pad.modals.reconnecting": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c3\u03c4\u03bf pad \u03c3\u03b1\u03c2...", - "pad.modals.forcereconnect": "\u0395\u03c0\u03b9\u03b2\u03bf\u03bb\u03ae \u03b5\u03c0\u03b1\u03bd\u03b1\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2", - "pad.modals.userdup": "\u0391\u03bd\u03bf\u03b9\u03b3\u03bc\u03ad\u03bd\u03bf \u03c3\u03b5 \u03ac\u03bb\u03bb\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf", - "pad.modals.userdup.explanation": "\u0391\u03c5\u03c4\u03cc \u03c4\u03bf pad \u03c6\u03b1\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc \u03c3\u03b5 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b1 \u03b1\u03c0\u03cc \u03ad\u03bd\u03b1 \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf \u03c4\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc\u03bd \u03c4\u03bf\u03bd \u03c5\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03c4\u03ae.", - "pad.modals.userdup.advice": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf.", - "pad.modals.unauth": "\u0394\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9", - "pad.modals.unauth.explanation": "\u03a4\u03b1 \u03b4\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03ac \u03c3\u03b1\u03c2 \u03ac\u03bb\u03bb\u03b1\u03be\u03b1\u03bd \u03cc\u03c3\u03bf \u03b2\u03bb\u03ad\u03c0\u03b1\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1. \u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03c0\u03b1\u03bd\u03b1\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5.", - "pad.modals.looping": "\u0391\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03ad\u03b8\u03b7\u03ba\u03b5.", - "pad.modals.looping.explanation": "\u03a5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03c0\u03c1\u03bf\u03b2\u03bb\u03ae\u03bc\u03b1\u03c4\u03b1 \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1\u03c2 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae \u03c3\u03c5\u03b3\u03c7\u03c1\u03bf\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd.", - "pad.modals.looping.cause": "\u038a\u03c3\u03c9\u03c2 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03ae\u03ba\u03b1\u03c4\u03b5 \u03bc\u03ad\u03c3\u03c9 \u03b5\u03bd\u03cc\u03c2 \u03bc\u03b7 \u03c3\u03c5\u03bc\u03b2\u03b1\u03c4\u03bf\u03cd \u03c4\u03b5\u03af\u03c7\u03bf\u03c5\u03c2 \u03c0\u03c1\u03bf\u03c3\u03c4\u03b1\u03c3\u03af\u03b1\u03c2 \u03ae \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae \u03bc\u03b5\u03c3\u03bf\u03bb\u03ac\u03b2\u03b7\u03c3\u03b7\u03c2.", - "pad.modals.initsocketfail": "\u0391\u03b4\u03cd\u03bd\u03b1\u03c4\u03b7 \u03ae \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae.", - "pad.modals.initsocketfail.explanation": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae \u03c3\u03c5\u03b3\u03c7\u03c1\u03bf\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd.", - "pad.modals.initsocketfail.cause": "\u0391\u03c5\u03c4\u03cc \u03bf\u03c6\u03b5\u03af\u03bb\u03b5\u03c4\u03b1\u03b9 \u03c0\u03b9\u03b8\u03b1\u03bd\u03ce\u03c2 \u03c3\u03b5 \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03bc\u03b5 \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03ae \u03c4\u03b7\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03c3\u03c4\u03bf \u03b4\u03b9\u03b1\u03b4\u03af\u03ba\u03c4\u03c5\u03bf.", - "pad.modals.slowcommit": "\u0391\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03ad\u03b8\u03b7\u03ba\u03b5.", - "pad.modals.slowcommit.explanation": "\u039f \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae\u03c2 \u03b4\u03b5\u03bd \u03b1\u03c0\u03bf\u03ba\u03c1\u03af\u03bd\u03b5\u03c4\u03b1\u03b9.", - "pad.modals.slowcommit.cause": "\u0391\u03c5\u03c4\u03cc \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03bf\u03c6\u03b5\u03af\u03bb\u03b5\u03c4\u03b1\u03b9 \u03c3\u03b5 \u03c0\u03c1\u03bf\u03b2\u03bb\u03ae\u03bc\u03b1\u03c4\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2 \u03b4\u03b9\u03ba\u03c4\u03cd\u03bf\u03c5.", - "pad.modals.deleted": "\u0394\u03b9\u03b5\u03b3\u03c1\u03ac\u03c6\u03b7.", - "pad.modals.deleted.explanation": "\u0391\u03c5\u03c4\u03cc \u03c4\u03bf pad \u03ad\u03c7\u03b5\u03b9 \u03ba\u03b1\u03c4\u03b1\u03c1\u03b3\u03b7\u03b8\u03b5\u03af.", - "pad.modals.disconnected": "\u0388\u03c7\u03b5\u03c4\u03b5 \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af.", - "pad.modals.disconnected.explanation": "\u03a7\u03ac\u03b8\u03b7\u03ba\u03b5 \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae", - "pad.modals.disconnected.cause": "\u039f \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae\u03c2 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03bc\u03b7\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03bf\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b1\u03c2 \u03b5\u03ac\u03bd \u03b1\u03c5\u03c4\u03cc \u03b5\u03be\u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03b5\u03af \u03bd\u03b1 \u03c3\u03c5\u03bc\u03b2\u03b1\u03af\u03bd\u03b5\u03b9.", - "pad.share": "\u039c\u03bf\u03b9\u03c1\u03b1\u03c3\u03c4\u03b5\u03af\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf pad", - "pad.share.readonly": "\u039c\u03cc\u03bd\u03bf \u03b3\u03b9\u03b1 \u03b1\u03bd\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7", - "pad.share.link": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2", - "pad.share.emebdcode": "URL \u03b5\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7\u03c2", - "pad.chat": "\u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1", - "pad.chat.title": "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf pad.", - "pad.chat.loadmessages": "\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03c9\u03bd \u03bc\u03b7\u03bd\u03c5\u03bc\u03ac\u03c4\u03c9\u03bd", - "timeslider.pageTitle": "{{appTitle}} \u03a7\u03c1\u03bf\u03bd\u03bf\u03b4\u03b9\u03ac\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1", - "timeslider.toolbar.returnbutton": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03c3\u03c4\u03bf pad", - "timeslider.toolbar.authors": "\u03a3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b5\u03c2:", - "timeslider.toolbar.authorsList": "\u039a\u03b1\u03bd\u03ad\u03bd\u03b1\u03c2 \u03a3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b7\u03c2", - "timeslider.toolbar.exportlink.title": "\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae", - "timeslider.exportCurrent": "\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1\u03c2 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7\u03c2 \u03c9\u03c2:", - "timeslider.version": "\u0388\u03ba\u03b4\u03bf\u03c3\u03b7 {{version}}", - "timeslider.saved": "\u0391\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c4\u03b9\u03c2 {{day}} {{month}} {{year}}", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5", - "timeslider.month.february": "\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5", - "timeslider.month.march": "\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5", - "timeslider.month.april": "\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5", - "timeslider.month.may": "\u039c\u03b1\u0390\u03bf\u03c5", - "timeslider.month.june": "\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5", - "timeslider.month.july": "\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5", - "timeslider.month.august": "\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5", - "timeslider.month.september": "\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5", - "timeslider.month.october": "\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5", - "timeslider.month.november": "\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5", - "timeslider.month.december": "\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5", - "timeslider.unnamedauthor": "{{num}} \u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03c2 \u03c3\u03c5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ad\u03b1\u03c2", - "timeslider.unnamedauthors": "{{num}} \u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03b9 \u03c3\u03c5\u03b3\u03b3\u03c1\u03b1\u03c6\u03b5\u03af\u03c2", - "pad.savedrevs.marked": "\u0391\u03c5\u03c4\u03ae \u03b7 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 \u03b5\u03c0\u03b9\u03c3\u03b7\u03bc\u03ac\u03bd\u03b8\u03b7\u03ba\u03b5 \u03c9\u03c2 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b7 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7", - "pad.userlist.entername": "\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03ac \u03c3\u03b1\u03c2", - "pad.userlist.unnamed": "\u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03c2", - "pad.userlist.guest": "\u0395\u03c0\u03b9\u03c3\u03ba\u03ad\u03c0\u03c4\u03b7\u03c2", - "pad.userlist.deny": "\u0386\u03c1\u03bd\u03b7\u03c3\u03b7", - "pad.userlist.approve": "\u0388\u03b3\u03ba\u03c1\u03b9\u03c3\u03b7", - "pad.editbar.clearcolors": "\u039d\u03b1 \u03b3\u03af\u03bd\u03b5\u03b9 \u03b5\u03ba\u03ba\u03b1\u03b8\u03ac\u03c1\u03b9\u03c3\u03b7 \u03c7\u03c1\u03c9\u03bc\u03ac\u03c4\u03c9\u03bd \u03c3\u03cd\u03bd\u03c4\u03b1\u03be\u03b7\u03c2 \u03c3\u03b5 \u03bf\u03bb\u03cc\u03ba\u03bb\u03b7\u03c1\u03bf \u03c4\u03bf \u03ad\u03b3\u03b3\u03c1\u03b1\u03c6\u03bf;", - "pad.impexp.importbutton": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03a4\u03ce\u03c1\u03b1", - "pad.impexp.importing": "\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b1\u03b9...", - "pad.impexp.confirmimport": "\u0397 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b5\u03bd\u03cc\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03b8\u03b1 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03b5\u03b9 \u03c4\u03bf \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03c4\u03bf\u03c5 pad. \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5;", - "pad.impexp.convertFailed": "\u0394\u03b5\u03bd \u03ba\u03b1\u03c4\u03b1\u03c6\u03ad\u03c1\u03b1\u03bc\u03b5 \u03bd\u03b1 \u03b5\u03b9\u03c3\u03ac\u03b3\u03bf\u03c5\u03bc\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03c4\u03cd\u03c0\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03ae \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c8\u03c4\u03b5 \u03ba\u03b1\u03b9 \u03b5\u03c0\u03b9\u03ba\u03bf\u03bb\u03bb\u03ae\u03c3\u03c4\u03b5 \u03c7\u03b5\u03b9\u03c1\u03bf\u03ba\u03af\u03bd\u03b7\u03c4\u03b1", - "pad.impexp.uploadFailed": "\u0397 \u03b1\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac", - "pad.impexp.importfailed": "\u0397 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5", - "pad.impexp.copypaste": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c8\u03c4\u03b5 \u03ba\u03b1\u03b9 \u03b5\u03c0\u03b9\u03ba\u03bf\u03bb\u03bb\u03ae\u03c3\u03c4\u03b5", - "pad.impexp.exportdisabled": "\u0397 \u03b5\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03b5 \u03bc\u03bf\u03c1\u03c6\u03ae {{type}} \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af. \u0395\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u03c4\u03bf\u03c5 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03cc\u03c2 \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2." + "@metadata": { + "authors": [ + "Evropi", + "Geraki", + "Glavkos", + "Monopatis", + "Protnet" + ] + }, + "index.newPad": "Νέο Pad", + "index.createOpenPad": "ή δημιουργία/άνοιγμα ενός Pad με όνομα:", + "pad.toolbar.bold.title": "Έντονα (Ctrl-B)", + "pad.toolbar.italic.title": "Πλάγια (Ctrl-I)", + "pad.toolbar.underline.title": "Υπογράμμιση (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Διακριτή διαγραφή", + "pad.toolbar.ol.title": "Ταξινομημένη λίστα", + "pad.toolbar.ul.title": "Λίστα χωρίς σειρά", + "pad.toolbar.indent.title": "Εισαγωγή εσοχής (TAB)", + "pad.toolbar.unindent.title": "Αφαίρεση εσοχής (Shift+TAB)", + "pad.toolbar.undo.title": "Αναίρεση (Ctrl-Z)", + "pad.toolbar.redo.title": "Επανάληψη (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Καθαρισμός Χρωμάτων Συντακτών", + "pad.toolbar.import_export.title": "Εισαγωγή/Εξαγωγή από/σε διαφορετικούς τύπους αρχείων", + "pad.toolbar.timeslider.title": "Χρονοδιάγραμμα", + "pad.toolbar.savedRevision.title": "Αποθήκευση Αναθεώρησης", + "pad.toolbar.settings.title": "Ρυθμίσεις", + "pad.toolbar.embed.title": "Διαμοίραση και Ενσωμάτωση αυτού του pad", + "pad.toolbar.showusers.title": "Εμφάνιση των χρηστών αυτού του pad", + "pad.colorpicker.save": "Αποθήκευση", + "pad.colorpicker.cancel": "Άκυρο", + "pad.loading": "Φόρτωση...", + "pad.passwordRequired": "Χρειάζεστε κωδικό πρόσβασης για πρόσβαση σε αυτό το pad", + "pad.permissionDenied": "Δεν έχετε δικαίωμα πρόσβασης σε αυτό το pad", + "pad.wrongPassword": "Ο κωδικός σας ήταν λανθασμένος", + "pad.settings.padSettings": "Ρυθμίσεις Pad", + "pad.settings.myView": "Η προβολή μου", + "pad.settings.stickychat": "Η Συνομιλία να είναι πάντα ορατή", + "pad.settings.colorcheck": "Χρώματα συντάκτη", + "pad.settings.linenocheck": "Αριθμοί γραμμής", + "pad.settings.rtlcheck": "Θέλετε να διαβάσετε το περιεχόμενο από δεξιά προς τα αριστερά;", + "pad.settings.fontType": "Τύπος γραμματοσειράς:", + "pad.settings.fontType.normal": "Κανονική", + "pad.settings.fontType.monospaced": "Καθορισμένου πλάτους", + "pad.settings.globalView": "Καθολική Προβολή", + "pad.settings.language": "Γλώσσα:", + "pad.importExport.import_export": "Εισαγωγή/Εξαγωγή", + "pad.importExport.import": "Αποστολή οποιουδήποτε αρχείου κειμένου ή εγγράφου", + "pad.importExport.importSuccessful": "Επιτυχής!", + "pad.importExport.export": "Εξαγωγή τρέχοντος pad ως:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Απλό κείμενο", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Μπορείτε να κάνετε εισαγωγή απλού κειμένου ή μορφής html. Για πιο προηγμένες δυνατότητες εισαγωγής παρακαλώ \u003Ca 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\"\u003Eεγκαταστήστε το abiword\u003C/a\u003E.", + "pad.modals.connected": "Συνδεμένοι.", + "pad.modals.reconnecting": "Επανασύνδεση στο pad σας...", + "pad.modals.forcereconnect": "Επιβολή επανασύνδεσης", + "pad.modals.userdup": "Ανοιγμένο σε άλλο παράθυρο", + "pad.modals.userdup.explanation": "Αυτό το pad φαίνεται να είναι ανοιχτό σε περισσότερα από ένα παράθυρο του προγράμματος περιήγησης σε αυτόν τον υπολογιστή.", + "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.deleted": "Διεγράφη.", + "pad.modals.deleted.explanation": "Αυτό το pad έχει καταργηθεί.", + "pad.modals.disconnected": "Έχετε αποσυνδεθεί.", + "pad.modals.disconnected.explanation": "Χάθηκε η σύνδεση με το διακομιστή", + "pad.modals.disconnected.cause": "Ο διακομιστής μπορεί να μην είναι διαθέσιμος. Παρακαλούμε ειδοποιήστε τον διαχειριστή της υπηρεσίας εάν εξακολουθεί να συμβαίνει αυτό.", + "pad.share": "Μοιραστείτε αυτό το pad", + "pad.share.readonly": "Μόνο για ανάγνωση", + "pad.share.link": "Σύνδεσμος", + "pad.share.emebdcode": "URL ενσωμάτωσης", + "pad.chat": "Συνομιλία", + "pad.chat.title": "Άνοιγμα της συνομιλίας για αυτό το pad.", + "pad.chat.loadmessages": "Φόρτωση περισσότερων μηνυμάτων", + "timeslider.pageTitle": "{{appTitle}} Χρονοδιάγραμμα", + "timeslider.toolbar.returnbutton": "Επιστροφή στο pad", + "timeslider.toolbar.authors": "Συντάκτες:", + "timeslider.toolbar.authorsList": "Κανένας Συντάκτης", + "timeslider.toolbar.exportlink.title": "Εξαγωγή", + "timeslider.exportCurrent": "Εξαγωγή τρέχουσας έκδοσης ως:", + "timeslider.version": "Έκδοση {{version}}", + "timeslider.saved": "Αποθηκεύτηκε στις {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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": "Δεκεμβρίου", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: ανώνυμος συντάκτης, other: ανώνυμοι συντάκτες]}", + "pad.savedrevs.marked": "Αυτή η έκδοση επισημάνθηκε ως αποθηκευμένη έκδοση", + "pad.userlist.entername": "Εισάγετε το όνομά σας", + "pad.userlist.unnamed": "ανώνυμος", + "pad.userlist.guest": "Επισκέπτης", + "pad.userlist.deny": "Άρνηση", + "pad.userlist.approve": "Έγκριση", + "pad.editbar.clearcolors": "Να γίνει εκκαθάριση χρωμάτων σύνταξης σε ολόκληρο το έγγραφο;", + "pad.impexp.importbutton": "Εισαγωγή Τώρα", + "pad.impexp.importing": "Εισάγεται...", + "pad.impexp.confirmimport": "Η εισαγωγή ενός αρχείου θα αντικαταστήσει το κείμενο του pad. Είστε βέβαιοι ότι θέλετε να συνεχίσετε;", + "pad.impexp.convertFailed": "Δεν καταφέραμε να εισάγουμε αυτό το αρχείο. Παρακαλώ χρησιμοποιήστε διαφορετικό τύπο αρχείου ή αντιγράψτε και επικολλήστε χειροκίνητα", + "pad.impexp.uploadFailed": "Η αποστολή απέτυχε, παρακαλώ προσπαθήστε ξανά", + "pad.impexp.importfailed": "Η εισαγωγή απέτυχε", + "pad.impexp.copypaste": "Παρακαλώ αντιγράψτε και επικολλήστε", + "pad.impexp.exportdisabled": "Η εξαγωγή σε μορφή {{type}} έχει απενεργοποιηθεί. Επικοινωνήστε με τον διαχειριστή του συστήματός σας για λεπτομέρειες." }
\ No newline at end of file diff --git a/src/locales/en.json b/src/locales/en.json index bef6dfd0..01d3ff4f 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1,14 +1,15 @@ { "index.newPad": "New Pad", "index.createOpenPad": "or create/open a Pad with the name:", + "pad.toolbar.bold.title": "Bold (Ctrl-B)", "pad.toolbar.italic.title": "Italic (Ctrl-I)", "pad.toolbar.underline.title": "Underline (Ctrl-U)", "pad.toolbar.strikethrough.title": "Strikethrough", "pad.toolbar.ol.title": "Ordered list", "pad.toolbar.ul.title": "Unordered List", - "pad.toolbar.indent.title": "Indent", - "pad.toolbar.unindent.title": "Outdent", + "pad.toolbar.indent.title": "Indent (TAB)", + "pad.toolbar.unindent.title": "Outdent (Shift+TAB)", "pad.toolbar.undo.title": "Undo (Ctrl-Z)", "pad.toolbar.redo.title": "Redo (Ctrl-Y)", "pad.toolbar.clearAuthorship.title": "Clear Authorship Colors", @@ -16,24 +17,29 @@ "pad.toolbar.timeslider.title": "Timeslider", "pad.toolbar.savedRevision.title": "Save Revision", "pad.toolbar.settings.title": "Settings", - "pad.toolbar.embed.title": "Embed this pad", + "pad.toolbar.embed.title": "Share and Embed this pad", "pad.toolbar.showusers.title": "Show the users on this pad", + "pad.colorpicker.save": "Save", "pad.colorpicker.cancel": "Cancel", + "pad.loading": "Loading...", "pad.passwordRequired": "You need a password to access this pad", "pad.permissionDenied": "You do not have permission to access this pad", "pad.wrongPassword": "Your password was wrong", + "pad.settings.padSettings": "Pad Settings", "pad.settings.myView": "My View", "pad.settings.stickychat": "Chat always on screen", "pad.settings.colorcheck": "Authorship colors", "pad.settings.linenocheck": "Line numbers", + "pad.settings.rtlcheck": "Read content from right to left?", "pad.settings.fontType": "Font type:", "pad.settings.fontType.normal": "Normal", "pad.settings.fontType.monospaced": "Monospace", "pad.settings.globalView": "Global View", "pad.settings.language": "Language:", + "pad.importExport.import_export": "Import/Export", "pad.importExport.import": "Upload any text file or document", "pad.importExport.importSuccessful": "Successful!", @@ -44,29 +50,42 @@ "pad.importExport.exportpdf": "PDF", "pad.importExport.exportopen": "ODF (Open Document Format)", "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "You only can import from plain text or html formats. For more advanced import features please <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\">install abiword</a>.", + "pad.importExport.abiword.innerHTML": "You only can import from plain text or HTML formats. For more advanced import features please <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\">install abiword</a>.", + "pad.modals.connected": "Connected.", "pad.modals.reconnecting": "Reconnecting to your pad..", "pad.modals.forcereconnect": "Force reconnect", + "pad.modals.userdup": "Opened in another window", "pad.modals.userdup.explanation": "This pad seems to be opened in more than one browser window on this computer.", "pad.modals.userdup.advice": "Reconnect to use this window instead.", + "pad.modals.unauth": "Not authorized", "pad.modals.unauth.explanation": "Your permissions have changed while viewing this page. Try to reconnect.", - "pad.modals.looping": "Disconnected.", + "pad.modals.looping.explanation": "There are communication problems with the synchronization server.", "pad.modals.looping.cause": "Perhaps you connected through an incompatible firewall or proxy.", + "pad.modals.initsocketfail": "Server is unreachable.", "pad.modals.initsocketfail.explanation": "Couldn't connect to the synchronization server.", "pad.modals.initsocketfail.cause": "This is probably due to a problem with your browser or your internet connection.", - "pad.modals.slowcommit": "Disconnected.", + "pad.modals.slowcommit.explanation": "The server is not responding.", "pad.modals.slowcommit.cause": "This could be due to problems with network connectivity.", + + "pad.modals.badChangeset.explanation": "An edit you have made was classified illegal by the synchronization server.", + "pad.modals.badChangeset.cause": "This could be due to a wrong server configuration or some other unexpected behavior. Please contact the service administrator, if you feel this is an error. Try to reconnect in order to continue editing.", + + "pad.modals.corruptPad.explanation": "The pad you are trying to access is corrupt.", + "pad.modals.corruptPad.cause": "This may be due to a wrong server configuration or some other unexpected behavior. Please contact the service administrator.", + "pad.modals.deleted": "Deleted.", "pad.modals.deleted.explanation": "This pad has been removed.", + "pad.modals.disconnected": "You have been disconnected.", "pad.modals.disconnected.explanation": "The connection to the server was lost", - "pad.modals.disconnected.cause": "The server may be unavailable. Please notify us if this continues to happen.", + "pad.modals.disconnected.cause": "The server may be unavailable. Please notify the service administrator if this continues to happen.", + "pad.share": "Share this pad", "pad.share.readonly": "Read only", "pad.share.link": "Link", @@ -74,6 +93,7 @@ "pad.chat": "Chat", "pad.chat.title": "Open the chat for this pad.", "pad.chat.loadmessages": "Load more messages", + "timeslider.pageTitle": "{{appTitle}} Timeslider", "timeslider.toolbar.returnbutton": "Return to pad", "timeslider.toolbar.authors": "Authors:", @@ -82,6 +102,7 @@ "timeslider.exportCurrent": "Export current version as:", "timeslider.version": "Version {{version}}", "timeslider.saved": "Saved {{month}} {{day}}, {{year}}", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", "timeslider.month.january": "January", "timeslider.month.february": "February", @@ -95,8 +116,8 @@ "timeslider.month.october": "October", "timeslider.month.november": "November", "timeslider.month.december": "December", - "timeslider.unnamedauthor": "{{num}} unnamed author", - "timeslider.unnamedauthors": "{{num}} unnamed authors", + + "timeslider.unnamedauthors": "{{num}} unnamed {[plural(num) one: author, other: authors ]}", "pad.savedrevs.marked": "This revision is now marked as a saved revision", "pad.userlist.entername": "Enter your name", "pad.userlist.unnamed": "unnamed", @@ -104,6 +125,7 @@ "pad.userlist.deny": "Deny", "pad.userlist.approve": "Approve", "pad.editbar.clearcolors": "Clear authorship colors on entire document?", + "pad.impexp.importbutton": "Import Now", "pad.impexp.importing": "Importing...", "pad.impexp.confirmimport": "Importing a file will overwrite the current text of the pad. Are you sure you want to proceed?", @@ -112,4 +134,4 @@ "pad.impexp.importfailed": "Import failed", "pad.impexp.copypaste": "Please copy paste", "pad.impexp.exportdisabled": "Exporting as {{type}} format is disabled. Please contact your system administrator for details." -}
\ No newline at end of file +} diff --git a/src/locales/es.json b/src/locales/es.json index 187f3637..4b0200cb 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -1,125 +1,130 @@ { - "@metadata": { - "authors": { - "0": "Armando-Martin", - "1": "Jacobo", - "2": "Joker", - "3": "Rubenwap", - "5": "Vivaelcelta", - "6": "Xuacu" - } - }, - "index.newPad": "Nuevo Pad", - "index.createOpenPad": "o crea\/abre un Pad con el nombre:", - "pad.toolbar.bold.title": "Negrita (Ctrl-B)", - "pad.toolbar.italic.title": "Cursiva (Ctrl-I)", - "pad.toolbar.underline.title": "Subrayado (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Tachado", - "pad.toolbar.ol.title": "Lista ordenada", - "pad.toolbar.ul.title": "Lista desordenada", - "pad.toolbar.indent.title": "Sangrar", - "pad.toolbar.unindent.title": "Desangrar", - "pad.toolbar.undo.title": "Deshacer (Ctrl-Z)", - "pad.toolbar.redo.title": "Rehacer (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Eliminar los colores de los autores", - "pad.toolbar.import_export.title": "Importar\/Exportar a diferentes formatos de archivos", - "pad.toolbar.timeslider.title": "L\u00ednea de tiempo", - "pad.toolbar.savedRevision.title": "Revisiones guardadas", - "pad.toolbar.settings.title": "Configuraci\u00f3n", - "pad.toolbar.embed.title": "Incrustar este pad", - "pad.toolbar.showusers.title": "Mostrar los usuarios de este pad", - "pad.colorpicker.save": "Guardar", - "pad.colorpicker.cancel": "Cancelar", - "pad.loading": "Cargando...", - "pad.passwordRequired": "Necesitas una contrase\u00f1a para acceder a este documento", - "pad.permissionDenied": "No tienes permiso para acceder a esta p\u00e1gina", - "pad.wrongPassword": "La contrase\u00f1a era incorrecta", - "pad.settings.padSettings": "Configuraci\u00f3n del Pad", - "pad.settings.myView": "Preferencias personales", - "pad.settings.stickychat": "Chat siempre encima", - "pad.settings.colorcheck": "Color de autor\u00eda", - "pad.settings.linenocheck": "N\u00fameros de l\u00ednea", - "pad.settings.fontType": "Tipograf\u00eda:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monoespacio", - "pad.settings.globalView": "Preferencias globales", - "pad.settings.language": "Idioma:", - "pad.importExport.import_export": "Importar\/Exportar", - "pad.importExport.import": "Subir cualquier texto o documento", - "pad.importExport.importSuccessful": "\u00a1Operaci\u00f3n realizada con \u00e9xito!", - "pad.importExport.export": "Exporta el pad actual como:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Texto plano", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "S\u00f3lo puede importar formatos de texto plano o html. Para funciones m\u00e1s avanzadas instale <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\">abiword<\/a>.", - "pad.modals.connected": "Conectado.", - "pad.modals.reconnecting": "Reconectando a tu pad..", - "pad.modals.forcereconnect": "Reconexi\u00f3n forzosa", - "pad.modals.userdup": "Abierto en otra ventana", - "pad.modals.userdup.explanation": "Este pad parece estar abierto en m\u00e1s de una ventana de tu navegador.", - "pad.modals.userdup.advice": "Reconectar para usar esta ventana.", - "pad.modals.unauth": "No autorizado.", - "pad.modals.unauth.explanation": "Los permisos han cambiado mientras estabas viendo esta p\u00e1gina. Intenta reconectar de nuevo.", - "pad.modals.looping": "Desconectado.", - "pad.modals.looping.explanation": "Estamos teniendo problemas con la sincronizaci\u00f3n en el servidor.", - "pad.modals.looping.cause": "Puede deberse a que te conectes a trav\u00e9s de un proxy o un cortafuegos incompatible.", - "pad.modals.initsocketfail": "Servidor incalcanzable.", - "pad.modals.initsocketfail.explanation": "No se pudo conectar al servidor de sincronizaci\u00f3n.", - "pad.modals.initsocketfail.cause": "Puede ser a causa de tu navegador o de una ca\u00edda en tu conexi\u00f3n de Internet.", - "pad.modals.slowcommit": "Desconectado.", - "pad.modals.slowcommit.explanation": "El servidor no responde.", - "pad.modals.slowcommit.cause": "Puede deberse a problemas con tu conexi\u00f3n de red.", - "pad.modals.deleted": "Borrado.", - "pad.modals.deleted.explanation": "Este pad ha sido borrado.", - "pad.modals.disconnected": "Has sido desconectado.", - "pad.modals.disconnected.explanation": "Se perdi\u00f3 la conexi\u00f3n con el servidor", - "pad.modals.disconnected.cause": "El servidor podr\u00eda no estar disponible. Contacte con nosotros si esto contin\u00faa sucediendo.", - "pad.share": "Compatir el pad", - "pad.share.readonly": "S\u00f3lo lectura", - "pad.share.link": "Enlace", - "pad.share.emebdcode": "Incrustar URL", - "pad.chat": "Chat", - "pad.chat.title": "Abrir el chat para este pad.", - "pad.chat.loadmessages": "Cargar m\u00e1s mensajes", - "timeslider.pageTitle": "{{appTitle}} L\u00ednea de tiempo", - "timeslider.toolbar.returnbutton": "Volver al pad", - "timeslider.toolbar.authors": "Autores:", - "timeslider.toolbar.authorsList": "Sin autores", - "timeslider.toolbar.exportlink.title": "Exportar", - "timeslider.exportCurrent": "Exportar la versi\u00f3n actual como:", - "timeslider.version": "Versi\u00f3n {{version}}", - "timeslider.saved": "Guardado el {{day}} de {{month}} de {{year}}", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Enero", - "timeslider.month.february": "Febrero", - "timeslider.month.march": "Marzo", - "timeslider.month.april": "Abril", - "timeslider.month.may": "Mayo", - "timeslider.month.june": "Junio", - "timeslider.month.july": "Julio", - "timeslider.month.august": "Agosto", - "timeslider.month.september": "Septiembre", - "timeslider.month.october": "Octubre", - "timeslider.month.november": "Noviembre", - "timeslider.month.december": "Diciembre", - "timeslider.unnamedauthor": "{{num}} autor desconocido", - "timeslider.unnamedauthors": "{{num}} autores desconocidos", - "pad.savedrevs.marked": "Revisi\u00f3n guardada", - "pad.userlist.entername": "Escribe tu nombre", - "pad.userlist.unnamed": "an\u00f3nimo", - "pad.userlist.guest": "Invitado", - "pad.userlist.deny": "Denegar", - "pad.userlist.approve": "Aprobar", - "pad.editbar.clearcolors": "\u00bfDesea borrar el color de los autores en todo el documento?", - "pad.impexp.importbutton": "Importar", - "pad.impexp.importing": "Importando...", - "pad.impexp.confirmimport": "Al importar un fichero se borrar\u00e1 el contenido actual del documento. \u00bfQuiere continuar?", - "pad.impexp.convertFailed": "No pudimos importar este fichero. Intentalo con otro formato diferente o copia y pega manualmente.", - "pad.impexp.uploadFailed": "El env\u00edo del fichero fall\u00f3. Intentelo de nuevo.", - "pad.impexp.importfailed": "Fallo al importar", - "pad.impexp.copypaste": "Intente copiar y pegar", - "pad.impexp.exportdisabled": "La exportaci\u00f3n al formato {{type}} format est\u00e1 desactivada. Contacte con su administrador de sistemas." + "@metadata": { + "authors": { + "0": "Armando-Martin", + "1": "Jacobo", + "2": "Joker", + "3": "Larjona", + "4": "Mklehr", + "5": "Rubenwap", + "7": "VegaDark", + "8": "Vivaelcelta", + "9": "Xuacu" + } + }, + "index.newPad": "Nuevo Pad", + "index.createOpenPad": "o crea/abre un Pad con el nombre:", + "pad.toolbar.bold.title": "Negrita (Ctrl-B)", + "pad.toolbar.italic.title": "Cursiva (Ctrl-I)", + "pad.toolbar.underline.title": "Subrayado (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Tachado", + "pad.toolbar.ol.title": "Lista ordenada", + "pad.toolbar.ul.title": "Lista desordenada", + "pad.toolbar.indent.title": "Sangrar", + "pad.toolbar.unindent.title": "Desangrar", + "pad.toolbar.undo.title": "Deshacer (Ctrl-Z)", + "pad.toolbar.redo.title": "Rehacer (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Eliminar los colores de los autores", + "pad.toolbar.import_export.title": "Importar/Exportar a diferentes formatos de archivos", + "pad.toolbar.timeslider.title": "Línea de tiempo", + "pad.toolbar.savedRevision.title": "Guardar revisión", + "pad.toolbar.settings.title": "Configuración", + "pad.toolbar.embed.title": "Compartir e incrustar este pad", + "pad.toolbar.showusers.title": "Mostrar los usuarios de este pad", + "pad.colorpicker.save": "Guardar", + "pad.colorpicker.cancel": "Cancelar", + "pad.loading": "Cargando...", + "pad.passwordRequired": "Necesitas una contraseña para acceder a este documento", + "pad.permissionDenied": "No tienes permiso para acceder a esta página", + "pad.wrongPassword": "La contraseña era incorrecta", + "pad.settings.padSettings": "Configuración del Pad", + "pad.settings.myView": "Preferencias personales", + "pad.settings.stickychat": "Chat siempre encima", + "pad.settings.colorcheck": "Color de autoría", + "pad.settings.linenocheck": "Números de línea", + "pad.settings.rtlcheck": "¿Leer contenido de derecha a izquierda?", + "pad.settings.fontType": "Tipografía:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monoespacio", + "pad.settings.globalView": "Preferencias globales", + "pad.settings.language": "Idioma:", + "pad.importExport.import_export": "Importar/Exportar", + "pad.importExport.import": "Subir cualquier texto o documento", + "pad.importExport.importSuccessful": "¡Operación realizada con éxito!", + "pad.importExport.export": "Exporta el pad actual como:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Texto plano", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Sólo puede importar formatos de texto plano o html. Para funciones más avanzadas instale \u003Ca 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\"\u003Eabiword\u003C/a\u003E.", + "pad.modals.connected": "Conectado.", + "pad.modals.reconnecting": "Reconectando a tu pad..", + "pad.modals.forcereconnect": "Reconexión forzosa", + "pad.modals.userdup": "Abierto en otra ventana", + "pad.modals.userdup.explanation": "Este pad parece estar abierto en más de una ventana de tu navegador.", + "pad.modals.userdup.advice": "Reconectar para usar esta ventana.", + "pad.modals.unauth": "No autorizado.", + "pad.modals.unauth.explanation": "Los permisos han cambiado mientras estabas viendo esta página. Intenta reconectar de nuevo.", + "pad.modals.looping.explanation": "Estamos teniendo problemas con la sincronización en el servidor.", + "pad.modals.looping.cause": "Puede deberse a que te conectes a través de un proxy o un cortafuegos incompatible.", + "pad.modals.initsocketfail": "Servidor incalcanzable.", + "pad.modals.initsocketfail.explanation": "No se pudo conectar al servidor de sincronización.", + "pad.modals.initsocketfail.cause": "Puede ser a causa de tu navegador o de una caída en tu conexión de Internet.", + "pad.modals.slowcommit.explanation": "El servidor no responde.", + "pad.modals.slowcommit.cause": "Puede deberse a problemas con tu conexión de red.", + "pad.modals.badChangeset.explanation": "Ha hecho una edición clasificada como ilegal por el servidor de sincronización.", + "pad.modals.badChangeset.cause": "Esto podría ser debido a una mala configuración del servidor o algún otro comportamiento inesperado. Póngase en contacto con el administrador del servicio, si siente que esto es un error. Intente volver a conectar con el fin de seguir editando.", + "pad.modals.corruptPad.explanation": "El pad que está intentando acceder está dañado.", + "pad.modals.corruptPad.cause": "Esto puede deberse a una mala configuración de servidor o algún otro comportamiento inesperado. Póngase en contacto con el administrador del servicio.", + "pad.modals.deleted": "Borrado.", + "pad.modals.deleted.explanation": "Este pad ha sido borrado.", + "pad.modals.disconnected": "Has sido desconectado.", + "pad.modals.disconnected.explanation": "Se perdió la conexión con el servidor", + "pad.modals.disconnected.cause": "El servidor podría no estar disponible. Contacte con nosotros si esto continúa sucediendo.", + "pad.share": "Compatir el pad", + "pad.share.readonly": "Sólo lectura", + "pad.share.link": "Enlace", + "pad.share.emebdcode": "Incrustar URL", + "pad.chat": "Chat", + "pad.chat.title": "Abrir el chat para este pad.", + "pad.chat.loadmessages": "Cargar más mensajes", + "timeslider.pageTitle": "{{appTitle}} Línea de tiempo", + "timeslider.toolbar.returnbutton": "Volver al pad", + "timeslider.toolbar.authors": "Autores:", + "timeslider.toolbar.authorsList": "Sin autores", + "timeslider.toolbar.exportlink.title": "Exportar", + "timeslider.exportCurrent": "Exportar la versión actual como:", + "timeslider.version": "Versión {{version}}", + "timeslider.saved": "Guardado el {{day}} de {{month}} de {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Enero", + "timeslider.month.february": "Febrero", + "timeslider.month.march": "Marzo", + "timeslider.month.april": "Abril", + "timeslider.month.may": "Mayo", + "timeslider.month.june": "Junio", + "timeslider.month.july": "Julio", + "timeslider.month.august": "Agosto", + "timeslider.month.september": "Septiembre", + "timeslider.month.october": "Octubre", + "timeslider.month.november": "Noviembre", + "timeslider.month.december": "Diciembre", + "timeslider.unnamedauthors": "{{num}} {[ plural(num) one: autor desconocido, other: autores desconocidos]}", + "pad.savedrevs.marked": "Revisión guardada", + "pad.userlist.entername": "Escribe tu nombre", + "pad.userlist.unnamed": "anónimo", + "pad.userlist.guest": "Invitado", + "pad.userlist.deny": "Denegar", + "pad.userlist.approve": "Aprobar", + "pad.editbar.clearcolors": "¿Desea borrar el color de los autores en todo el documento?", + "pad.impexp.importbutton": "Importar", + "pad.impexp.importing": "Importando...", + "pad.impexp.confirmimport": "Al importar un fichero se borrará el contenido actual del documento. ¿Quiere continuar?", + "pad.impexp.convertFailed": "No pudimos importar este fichero. Intentalo con otro formato diferente o copia y pega manualmente.", + "pad.impexp.uploadFailed": "El envío del fichero falló. Intentelo de nuevo.", + "pad.impexp.importfailed": "Fallo al importar", + "pad.impexp.copypaste": "Intente copiar y pegar", + "pad.impexp.exportdisabled": "La exportación al formato {{type}} format está desactivada. Contacte con su administrador de sistemas." }
\ No newline at end of file diff --git a/src/locales/eu.json b/src/locales/eu.json new file mode 100644 index 00000000..fc3465de --- /dev/null +++ b/src/locales/eu.json @@ -0,0 +1,118 @@ +{ + "@metadata": { + "authors": [ + "Theklan" + ] + }, + "index.newPad": "Pad berria", + "index.createOpenPad": "edo sortu/ireki Pad bat honako izenarekin:", + "pad.toolbar.bold.title": "Lodia (Ctrl-B)", + "pad.toolbar.italic.title": "Etzana (Ctrl-I)", + "pad.toolbar.underline.title": "Azpimarratua (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Ezabatua", + "pad.toolbar.ol.title": "Zerrenda ordenatua", + "pad.toolbar.ul.title": "Zerrenda ez-ordenatua", + "pad.toolbar.indent.title": "Koska", + "pad.toolbar.unindent.title": "Koska kendu", + "pad.toolbar.undo.title": "Desegin (Ctrl-Z)", + "pad.toolbar.redo.title": "Berregin (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Ezabatu Egiletza Koloreak", + "pad.toolbar.import_export.title": "Inportatu/Esportatu fitxategi formatu ezberdinetara/ezberdinetatik", + "pad.toolbar.timeslider.title": "Denbora lerroa", + "pad.toolbar.savedRevision.title": "Gorde berrikuspena", + "pad.toolbar.settings.title": "Hobespenak", + "pad.toolbar.embed.title": "Partekatu eta Txertatu pad hau", + "pad.toolbar.showusers.title": "Erakutsi pad honetako erabiltzaileak", + "pad.colorpicker.save": "Gorde", + "pad.colorpicker.cancel": "Utzi", + "pad.loading": "Kargatzen...", + "pad.passwordRequired": "Pasahitza behar duzu pad honetara sartzeko", + "pad.permissionDenied": "Ez duzu bamienik pad honetara sartzeko", + "pad.wrongPassword": "Zure pasahitza oker zegoen", + "pad.settings.padSettings": "Pad hobespenak", + "pad.settings.myView": "Nire ikusmoldea", + "pad.settings.stickychat": "Txata beti pantailan", + "pad.settings.colorcheck": "Egiletzaren koloreak", + "pad.settings.linenocheck": "Lerro zenbakiak", + "pad.settings.rtlcheck": "Edukia eskubitik ezkerrera irakurri?", + "pad.settings.fontType": "Tipografia:", + "pad.settings.fontType.normal": "Arrunta", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Ikuspegi Globala", + "pad.settings.language": "Hizkuntza:", + "pad.importExport.import_export": "Inportatu/Esportatu", + "pad.importExport.import": "Igo edozein testu fitxategi edo dokumentu", + "pad.importExport.importSuccessful": "Arrakastatsua!", + "pad.importExport.export": "Oraingo pad hau honela esportatu:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Testu laua", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DocuWiki", + "pad.importExport.abiword.innerHTML": "Testu laua edo html formatudun testuak bakarrik inporta ditzakezu. Aurreratuagoak diren inportazio aukerak izateko \u003Ca 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\"\u003Eabiword instala ezazu\u003C/a\u003E.", + "pad.modals.connected": "Konektatuta.", + "pad.modals.reconnecting": "Zure pad-era birkonektatu...", + "pad.modals.forcereconnect": "Berkonexioa fortzatu", + "pad.modals.userdup": "Beste leiho batean ireki da", + "pad.modals.userdup.explanation": "Pad hau zure nabigatzailearen beste leiho batean irekita dagoela ematen du.", + "pad.modals.userdup.advice": "Berriro konektatu beste leiho hau erabiltzeko.", + "pad.modals.unauth": "Baimenik gabe", + "pad.modals.unauth.explanation": "Orrialdea ikusten ari zinela zure baimenak aldatu dira. Saia zaitez berriro konektatzen.", + "pad.modals.looping.explanation": "Sinkronizazio zerbitzariarekin komunikazioa arazoak daude.", + "pad.modals.looping.cause": "Agian firewall edo proxy ez-bateragarri baten bidez konektatu zara.", + "pad.modals.initsocketfail": "Zerbitzarira ezin da iritsi.", + "pad.modals.initsocketfail.explanation": "Ezin izan da konektatu sinkronizazio zerbitzarira.", + "pad.modals.initsocketfail.cause": "Ziurrenik hau zure nabigatzailea edo internet konexioaren arazo bat dela eta izango da.", + "pad.modals.slowcommit.explanation": "Zerbitzariak ez du erantzuten.", + "pad.modals.slowcommit.cause": "Baliteke hau sarearen konexio arazoak direla eta izatea.", + "pad.modals.deleted": "Ezabatua.", + "pad.modals.deleted.explanation": "Pad hau ezabatua izan da.", + "pad.modals.disconnected": "Deskonektatua izan zara.", + "pad.modals.disconnected.explanation": "Zerbitzariaren konexioa galdu da", + "pad.modals.disconnected.cause": "Baliteke zerbitzaria irisgarria ez izatea. Mesedez, esaiguzu hau gertatzen jarraitzen badu.", + "pad.share": "Pad hau partekatu", + "pad.share.readonly": "Irakurtzeko bakarrik", + "pad.share.link": "Lotura", + "pad.share.emebdcode": "URLa txertatu", + "pad.chat": "Txata", + "pad.chat.title": "Pad honetarako txata ireki.", + "pad.chat.loadmessages": "Mezu gehiago kargatu", + "timeslider.pageTitle": "{{appTitle}} denbora lerroa", + "timeslider.toolbar.returnbutton": "Padera itzuli", + "timeslider.toolbar.authors": "Egileak:", + "timeslider.toolbar.authorsList": "Egilerik gabe", + "timeslider.toolbar.exportlink.title": "Esportatu", + "timeslider.exportCurrent": "Gorde bertsio hau honela:", + "timeslider.version": "Bertsioa {{version}}", + "timeslider.saved": "{{year}}ko {{month}}ren {{day}}an gordeta", + "timeslider.dateformat": "{{year}}/{{month}}/{{day}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Urtarrila", + "timeslider.month.february": "Otsaila", + "timeslider.month.march": "Martxoa", + "timeslider.month.april": "Apirila", + "timeslider.month.may": "Maiatza", + "timeslider.month.june": "Ekaina", + "timeslider.month.july": "Uztaila", + "timeslider.month.august": "Abuztua", + "timeslider.month.september": "Iraila", + "timeslider.month.october": "Urria", + "timeslider.month.november": "Azaroa", + "timeslider.month.december": "Abendua", + "timeslider.unnamedauthors": "{{num}} izenik gabeko egileak", + "pad.savedrevs.marked": "Berrikuspen hau markatua dago gordetako berrikuspen gisa", + "pad.userlist.entername": "Sartu zure erabiltzaile izena", + "pad.userlist.unnamed": "izenik gabe", + "pad.userlist.guest": "Gonbidatua", + "pad.userlist.deny": "Ukatu", + "pad.userlist.approve": "Onartu", + "pad.editbar.clearcolors": "Ezabatu egile koloreak dokumentu osoan?", + "pad.impexp.importbutton": "Inportatu orain", + "pad.impexp.importing": "Inportatzen...", + "pad.impexp.confirmimport": "Fitxategi bat inportatzen baduzu oraingo pad honen testua ezabatuko da. Ziur zaude jarraitu nahi duzula?", + "pad.impexp.convertFailed": "Ez gara gai fitxategi hau inportatzeko. Erabil ezazu, mesedez, beste dokumentu formatu bat edo kopiatu eta itsasi eskuz.", + "pad.impexp.uploadFailed": "Igotzean akatsa egon da, saia zaitez berriro", + "pad.impexp.importfailed": "Inportazioak akatsa egin du", + "pad.impexp.copypaste": "Mesedez kopiatu eta pegatu", + "pad.impexp.exportdisabled": "{{type}} formatuarekin esportatzea desgaituta dago. Kontakta ezazu administratzailea detaile gehiagorako." +}
\ No newline at end of file diff --git a/src/locales/fa.json b/src/locales/fa.json index 437b8da0..08456048 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -1,118 +1,127 @@ { - "@metadata": { - "authors": { - "0": "BMRG14", - "2": "ZxxZxxZ" - } - }, - "index.newPad": "\u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062a\u0627\u0632\u0647", - "index.createOpenPad": "\u06cc\u0627 \u0627\u06cc\u062c\u0627\u062f\/\u0628\u0627\u0632\u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0628\u0627 \u0646\u0627\u0645:", - "pad.toolbar.bold.title": "\u067e\u0631\u0631\u0646\u06af (Ctrl-B)", - "pad.toolbar.italic.title": "\u06a9\u062c (Ctrl-I)", - "pad.toolbar.underline.title": "\u0632\u06cc\u0631\u062e\u0637 (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u062e\u0637 \u062e\u0648\u0631\u062f\u0647", - "pad.toolbar.ol.title": "\u0641\u0647\u0631\u0633\u062a \u0645\u0631\u062a\u0628 \u0634\u062f\u0647", - "pad.toolbar.ul.title": "\u0641\u0647\u0631\u0633\u062a \u0645\u0631\u062a\u0628 \u0646\u0634\u062f\u0647", - "pad.toolbar.indent.title": "\u062a\u0648\u0631\u0641\u062a\u06af\u06cc", - "pad.toolbar.unindent.title": "\u0628\u06cc\u0631\u0648\u0646 \u0631\u0641\u062a\u06af\u06cc", - "pad.toolbar.undo.title": "\u0628\u0627\u0637\u0644\u200c\u06a9\u0631\u062f\u0646 (Ctrl-Z)", - "pad.toolbar.redo.title": "\u0627\u0632 \u0646\u0648 (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "\u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u0631\u0646\u06af\u200c\u0647\u0627\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u06cc", - "pad.toolbar.import_export.title": "\u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc\/\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0627\u0632\/\u0628\u0647 \u0642\u0627\u0644\u0628\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641", - "pad.toolbar.timeslider.title": "\u0627\u0633\u0644\u0627\u06cc\u062f\u0631 \u0632\u0645\u0627\u0646", - "pad.toolbar.savedRevision.title": "\u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc\u200c\u0647\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647", - "pad.toolbar.settings.title": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a", - "pad.toolbar.embed.title": "\u062c\u0627\u0633\u0627\u0632\u06cc \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a", - "pad.toolbar.showusers.title": "\u0646\u0645\u0627\u06cc\u0634 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a", - "pad.colorpicker.save": "\u0630\u062e\u06cc\u0631\u0647", - "pad.colorpicker.cancel": "\u0644\u063a\u0648", - "pad.loading": "\u062f\u0631 \u062d\u0627\u0644 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc...", - "pad.passwordRequired": "\u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06cc\u06a9 \u06af\u0630\u0631\u0648\u0627\u0698\u0647 \u062f\u0627\u0631\u06cc\u062f", - "pad.permissionDenied": "\u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647\u200c\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0631\u0627 \u0646\u062f\u0627\u0631\u06cc\u062f", - "pad.wrongPassword": "\u06af\u0630\u0631\u0648\u0627\u0698\u0647\u200c\u06cc \u0634\u0645\u0627 \u062f\u0631\u0633\u062a \u0646\u06cc\u0633\u062a", - "pad.settings.padSettings": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a", - "pad.settings.myView": "\u0646\u0645\u0627\u06cc \u0645\u0646", - "pad.settings.stickychat": "\u06af\u0641\u062a\u06af\u0648 \u0647\u0645\u06cc\u0634\u0647 \u0631\u0648\u06cc \u0635\u0641\u062d\u0647 \u0646\u0645\u0627\u06cc\u0634 \u0628\u0627\u0634\u062f", - "pad.settings.colorcheck": "\u0631\u0646\u06af\u200c\u0647\u0627\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u06cc", - "pad.settings.linenocheck": "\u0634\u0645\u0627\u0631\u0647\u200c\u06cc \u062e\u0637\u0648\u0637", - "pad.settings.fontType": "\u0646\u0648\u0639 \u0642\u0644\u0645:", - "pad.settings.fontType.normal": "\u0633\u0627\u062f\u0647", - "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "\u0646\u0645\u0627\u06cc \u0633\u0631\u0627\u0633\u0631\u06cc", - "pad.settings.language": "\u0632\u0628\u0627\u0646:", - "pad.importExport.import_export": "\u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc\/\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc", - "pad.importExport.import": "\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u067e\u0631\u0648\u0646\u062f\u0647\u200c\u06cc \u0645\u062a\u0646\u06cc \u06cc\u0627 \u0633\u0646\u062f", - "pad.importExport.importSuccessful": "\u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u0628\u0648\u062f!", - "pad.importExport.export": "\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0628\u0627 \u0642\u0627\u0644\u0628:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\u0645\u062a\u0646 \u0633\u0627\u062f\u0647", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (\u0642\u0627\u0644\u0628 \u0633\u0646\u062f \u0628\u0627\u0632)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\u0634\u0645\u0627 \u062a\u0646\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0642\u0627\u0644\u0628 \u0645\u062a\u0646 \u0633\u0627\u062f\u0647 \u06cc\u0627 \u0627\u0686\u200c\u062a\u06cc\u200c\u0627\u0645\u200c\u0627\u0644 \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0634\u062f\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 <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\">AbiWord<\/a> \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.", - "pad.modals.connected": "\u0645\u062a\u0635\u0644 \u0634\u062f.", - "pad.modals.reconnecting": "\u062f\u0631 \u062d\u0627\u0644 \u0627\u062a\u0635\u0627\u0644 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0634\u0645\u0627..", - "pad.modals.forcereconnect": "\u0648\u0627\u062f\u0627\u0634\u062a\u0646 \u0628\u0647 \u0627\u062a\u0635\u0627\u0644 \u062f\u0648\u0628\u0627\u0631\u0647", - "pad.modals.userdup": "\u062f\u0631 \u067e\u0646\u062c\u0631\u0647\u200c\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0628\u0627\u0632 \u0634\u062f", - "pad.modals.userdup.explanation": "\u06af\u0645\u0627\u0646 \u0645\u06cc\u200c\u0631\u0648\u062f \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062f\u0631 \u0628\u06cc\u0634 \u0627\u0632 \u06cc\u06a9 \u067e\u0646\u062c\u0631\u0647\u200c\u06cc \u0645\u0631\u0648\u0631\u06af\u0631 \u0628\u0627\u0632 \u0634\u062f\u0647\u200c\u0627\u0633\u062a.", - "pad.modals.userdup.advice": "\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u067e\u0646\u062c\u0631\u0647 \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0635\u0644 \u0634\u0648\u06cc\u062f.", - "pad.modals.unauth": "\u0645\u062c\u0627\u0632 \u0646\u06cc\u0633\u062a", - "pad.modals.unauth.explanation": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0634\u0645\u0627 \u062f\u0631 \u062d\u06cc\u0646 \u0645\u0634\u0627\u0647\u062f\u0647\u200c\u06cc \u0627\u06cc\u0646 \u0628\u0631\u06af\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u06cc\u0627\u0641\u062a\u0647\u200c\u0627\u0633\u062a. \u062f\u0648\u0628\u0627\u0631\u0647 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f.", - "pad.modals.looping": "\u0627\u062a\u0635\u0627\u0644 \u0642\u0637\u0639 \u0634\u062f.", - "pad.modals.looping.explanation": "\u0645\u0634\u06a9\u0644\u0627\u062a\u06cc \u0627\u0631\u062a\u0628\u0627\u0637\u06cc \u0628\u0627 \u0633\u0631\u0648\u0631 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.", - "pad.modals.looping.cause": "\u0634\u0627\u06cc\u062f \u0634\u0645\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u06cc\u0627 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631 \u0645\u062a\u0635\u0644 \u0634\u062f\u0647\u200c\u0627\u06cc\u062f.", - "pad.modals.initsocketfail": "\u0633\u0631\u0648\u0631 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u06cc\u0633\u062a.", - "pad.modals.initsocketfail.explanation": "\u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0635\u0644 \u0634\u062f.", - "pad.modals.initsocketfail.cause": "\u0634\u0627\u06cc\u062f \u0627\u06cc\u0646 \u0628\u0647 \u062e\u0627\u0637\u0631 \u0645\u0634\u06a9\u0644\u06cc \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u06cc\u0627 \u0627\u062a\u0635\u0627\u0644 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a\u06cc \u0634\u0645\u0627 \u0628\u0627\u0634\u062f.", - "pad.modals.slowcommit": "\u0627\u062a\u0635\u0627\u0644 \u0642\u0637\u0639 \u0634\u062f.", - "pad.modals.slowcommit.explanation": "\u0633\u0631\u0648\u0631 \u067e\u0627\u0633\u062e \u0646\u0645\u06cc\u200c\u062f\u0647\u062f.", - "pad.modals.slowcommit.cause": "\u0627\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062e\u0627\u0637\u0631 \u0645\u0634\u06a9\u0644\u0627\u062a\u06cc \u062f\u0631 \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u0634\u0628\u06a9\u0647 \u0628\u0627\u0634\u062f.", - "pad.modals.deleted": "\u067e\u0627\u06a9 \u0634\u062f.", - "pad.modals.deleted.explanation": "\u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u067e\u0627\u06a9 \u0634\u062f\u0647\u200c\u0627\u0633\u062a.", - "pad.modals.disconnected": "\u0627\u062a\u0635\u0627\u0644 \u0634\u0645\u0627 \u0642\u0637\u0639 \u0634\u062f\u0647\u200c\u0627\u0633\u062a.", - "pad.modals.disconnected.explanation": "\u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0642\u0637\u0639 \u0634\u062f\u0647\u200c\u0627\u0633\u062a.", - "pad.modals.disconnected.cause": "\u0633\u0631\u0648\u0631 \u0634\u0627\u06cc\u062f \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u0628\u0627\u0634\u062f. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0628\u0627\u0632 \u0647\u0645 \u0631\u062e \u062f\u0627\u062f \u0645\u0627 \u0631\u0627 \u0622\u06af\u0627\u0647 \u0633\u0627\u0632\u06cc\u062f.", - "pad.share": "\u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a", - "pad.share.readonly": "\u0641\u0642\u0637 \u062e\u0648\u0627\u0646\u062f\u0646\u06cc", - "pad.share.link": "\u067e\u06cc\u0648\u0646\u062f", - "pad.share.emebdcode": "\u062c\u0627\u0633\u0627\u0632\u06cc \u0646\u0634\u0627\u0646\u06cc", - "pad.chat": "\u06af\u0641\u062a\u06af\u0648", - "pad.chat.title": "\u0628\u0627\u0632\u06a9\u0631\u062f\u0646 \u06af\u0641\u062a\u06af\u0648 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a", - "timeslider.pageTitle": "\u0627\u0633\u0644\u0627\u06cc\u062f\u0631 \u0632\u0645\u0627\u0646 {{appTitle}}", - "timeslider.toolbar.returnbutton": "\u0628\u0627\u0632\u06af\u0634\u062a \u0628\u0647 \u062f\u0641\u062a\u0631\u0686\u0647 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a", - "timeslider.toolbar.authors": "\u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646:", - "timeslider.toolbar.authorsList": "\u0628\u062f\u0648\u0646 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647", - "timeslider.toolbar.exportlink.title": "\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc", - "timeslider.exportCurrent": "\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0646\u06af\u0627\u0631\u0634 \u06a9\u0646\u0648\u0646\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646:", - "timeslider.version": "\u0646\u06af\u0627\u0631\u0634 {{version}}", - "timeslider.saved": "{{month}} {{day}}\u060c {{year}} \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f", - "timeslider.dateformat": "{{month}}\/{{day}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "\u0698\u0627\u0646\u0648\u06cc\u0647", - "timeslider.month.february": "\u0641\u0628\u0631\u06cc\u0647", - "timeslider.month.march": "\u0645\u0627\u0631\u0686", - "timeslider.month.april": "\u0622\u067e\u0631\u06cc\u0644", - "timeslider.month.may": "\u0645\u06cc", - "timeslider.month.june": "\u0698\u0648\u0626\u0646", - "timeslider.month.july": "\u062c\u0648\u0644\u0627\u06cc", - "timeslider.month.august": "\u0622\u06af\u0648\u0633\u062a", - "timeslider.month.september": "\u0633\u067e\u062a\u0627\u0645\u0628\u0631", - "timeslider.month.october": "\u0627\u06a9\u062a\u0628\u0631", - "timeslider.month.november": "\u0646\u0648\u0627\u0645\u0628\u0631", - "timeslider.month.december": "\u062f\u0633\u0627\u0645\u0628\u0631", - "pad.savedrevs.marked": "\u0627\u06cc\u0646 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc \u0647\u0645 \u0627\u06a9\u0646\u0648\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647 \u0639\u0644\u0627\u0645\u062a\u200c\u06af\u0630\u0627\u0631\u06cc \u0634\u062f", - "pad.userlist.entername": "\u0646\u0627\u0645 \u062e\u0648\u062f \u0631\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f", - "pad.userlist.unnamed": "\u0628\u062f\u0648\u0646 \u0646\u0627\u0645", - "pad.userlist.guest": "\u0645\u0647\u0645\u0627\u0646", - "pad.userlist.deny": "\u0631\u062f \u06a9\u0631\u062f\u0646", - "pad.userlist.approve": "\u067e\u0630\u06cc\u0631\u0641\u062a\u0646", - "pad.editbar.clearcolors": "\u0631\u0646\u06af \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u06cc \u0627\u0632 \u0647\u0645\u0647\u200c\u06cc \u0633\u0646\u062f \u067e\u0627\u06a9 \u0634\u0648\u062f\u061f", - "pad.impexp.importbutton": "\u0647\u0645 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u06a9\u0646", - "pad.impexp.importing": "\u062f\u0631 \u062d\u0627\u0644 \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc...", - "pad.impexp.confirmimport": "\u0628\u0627 \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0646\u0648\u0634\u062a\u0647\u200c\u06cc \u06a9\u0646\u0648\u0646\u06cc \u062f\u0641\u062a\u0631\u0686\u0647 \u067e\u0627\u06a9 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0622\u06cc\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f\u061f", - "pad.impexp.convertFailed": "\u0645\u0627 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u06a9\u0646\u06cc\u0645. \u062e\u0648\u0627\u0647\u0634\u0645\u0646\u062f\u06cc\u0645 \u0642\u0627\u0644\u0628 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u0633\u0646\u062f\u062a\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u0647 \u06cc\u0627 \u0628\u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0622\u0646\u0631\u0627 \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u062f", - "pad.impexp.uploadFailed": "\u0622\u067e\u0644\u0648\u062f \u0627\u0646\u062c\u0627\u0645 \u0646\u0634\u062f\u060c \u062f\u0648\u0628\u0627\u0631\u0647 \u062a\u0644\u0627\u0634 \u06a9\u0646\u06cc\u062f", - "pad.impexp.importfailed": "\u062f\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0627\u0646\u062c\u0627\u0645 \u0646\u0634\u062f", - "pad.impexp.copypaste": "\u06a9\u067e\u06cc \u067e\u06cc\u0633\u062a \u06a9\u0646\u06cc\u062f", - "pad.impexp.exportdisabled": "\u0628\u0631\u0648\u0646\u200c\u0631\u06cc\u0632\u06cc \u0628\u0627 \u0642\u0627\u0644\u0628 {{type}} \u0627\u0632 \u06a9\u0627\u0631 \u0627\u0641\u062a\u0627\u062f\u0647 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627 \u0645\u062f\u06cc\u0631 \u0633\u06cc\u0633\u062a\u0645\u062a\u0627\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f." + "@metadata": { + "authors": { + "0": "BMRG14", + "1": "Dalba", + "2": "Ebraminio", + "3": "Reza1615", + "5": "ZxxZxxZ", + "6": "الناز" + } + }, + "index.newPad": "دفترچه یادداشت تازه", + "index.createOpenPad": "یا ایجاد/بازکردن یک دفترچه یادداشت با نام:", + "pad.toolbar.bold.title": "پررنگ (Ctrl-B)", + "pad.toolbar.italic.title": "کج (Ctrl-I)", + "pad.toolbar.underline.title": "زیرخط (Ctrl-U)", + "pad.toolbar.strikethrough.title": "خط خورده", + "pad.toolbar.ol.title": "فهرست مرتب شده", + "pad.toolbar.ul.title": "فهرست مرتب نشده", + "pad.toolbar.indent.title": "تورفتگی", + "pad.toolbar.unindent.title": "بیرون رفتگی", + "pad.toolbar.undo.title": "باطلکردن (Ctrl-Z)", + "pad.toolbar.redo.title": "از نو (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "پاککردن رنگهای نویسندگی", + "pad.toolbar.import_export.title": "درونریزی/برونریزی از/به قالبهای مختلف", + "pad.toolbar.timeslider.title": "لغزندهٔ زمان", + "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.passwordRequired": "برای دسترسی به این دفترچه یادداشت نیاز به یک گذرواژه دارید", + "pad.permissionDenied": "شما اجازهی دسترسی به این دفترچه یادداشت را ندارید", + "pad.wrongPassword": "گذرواژهی شما درست نیست", + "pad.settings.padSettings": "تنظیمات دفترچه یادداشت", + "pad.settings.myView": "نمای من", + "pad.settings.stickychat": "گفتگو همیشه روی صفحه نمایش باشد", + "pad.settings.colorcheck": "رنگهای نویسندگی", + "pad.settings.linenocheck": "شمارهی خطوط", + "pad.settings.rtlcheck": "خواندن محتوا از راست به چپ؟", + "pad.settings.fontType": "نوع قلم:", + "pad.settings.fontType.normal": "ساده", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "نمای سراسری", + "pad.settings.language": "زبان:", + "pad.importExport.import_export": "درونریزی/برونریزی", + "pad.importExport.import": "بارگذاری پروندهی متنی یا سند", + "pad.importExport.importSuccessful": "موفقیت آمیز بود!", + "pad.importExport.export": "برونریزی این دفترچه یادداشت با قالب:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "متن ساده", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (قالب سند باز)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "شما تنها میتوانید از قالب متن ساده یا اچتیامال درونریزی کنید. برای بیشتر شدن ویژگیهای درونریزی پیشرفته \u003Ca 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\"\u003EAbiWord\u003C/a\u003E را نصب کنید.", + "pad.modals.connected": "متصل شد.", + "pad.modals.reconnecting": "در حال اتصال دوباره به دفترچه یادداشت شما..", + "pad.modals.forcereconnect": "واداشتن به اتصال دوباره", + "pad.modals.userdup": "در پنجرهای دیگر باز شد", + "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": "پیوند", + "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.saved": "{{month}} {{day}}، {{year}} ذخیره شد", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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": "دسامبر", + "timeslider.unnamedauthors": "{{num}} نویسندهٔ بینام", + "pad.savedrevs.marked": "این بازنویسی هم اکنون به عنوان ذخیره شده علامتگذاری شد", + "pad.userlist.entername": "نام خود را بنویسید", + "pad.userlist.unnamed": "بدون نام", + "pad.userlist.guest": "مهمان", + "pad.userlist.deny": "رد کردن", + "pad.userlist.approve": "پذیرفتن", + "pad.editbar.clearcolors": "رنگ نویسندگی از همهی سند پاک شود؟", + "pad.impexp.importbutton": "هم اکنون درونریزی کن", + "pad.impexp.importing": "در حال درونریزی...", + "pad.impexp.confirmimport": "با درونریزی یک فایل نوشتهی کنونی دفترچه پاک میشود. آیا میخواهید ادامه دهید؟", + "pad.impexp.convertFailed": "ما نمیتوانیم این فایل را درونریزی کنیم. خواهشمندیم قالب دیگری برای سندتان انتخاب کرده یا بصورت دستی آنرا کپی کنید", + "pad.impexp.uploadFailed": "آپلود انجام نشد، دوباره تلاش کنید", + "pad.impexp.importfailed": "درونریزی انجام نشد", + "pad.impexp.copypaste": "کپی پیست کنید", + "pad.impexp.exportdisabled": "برونریزی با قالب {{type}} از کار افتاده است. برای جزئیات بیشتر با مدیر سیستمتان تماس بگیرید." }
\ No newline at end of file diff --git a/src/locales/fi.json b/src/locales/fi.json index 50fd444d..b69833d2 100644 --- a/src/locales/fi.json +++ b/src/locales/fi.json @@ -1,125 +1,129 @@ { - "@metadata": { - "authors": { - "0": "Artnay", - "1": "Jl", - "2": "Nedergard", - "3": "Nike", - "5": "Veikk0.ma", - "6": "VezonThunder" - } - }, - "index.newPad": "Uusi muistio", - "index.createOpenPad": "tai luo tai avaa muistio nimell\u00e4:", - "pad.toolbar.bold.title": "Lihavointi (Ctrl-B)", - "pad.toolbar.italic.title": "Kursivointi (Ctrl-I)", - "pad.toolbar.underline.title": "Alleviivaus (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Yliviivaus", - "pad.toolbar.ol.title": "Numeroitu lista", - "pad.toolbar.ul.title": "Numeroimaton lista", - "pad.toolbar.indent.title": "Sisenn\u00e4", - "pad.toolbar.unindent.title": "Ulonna", - "pad.toolbar.undo.title": "Kumoa (Ctrl-Z)", - "pad.toolbar.redo.title": "Tee uudelleen (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Poista kirjoittajav\u00e4rit", - "pad.toolbar.import_export.title": "Tuo tai vie eri tiedostomuodoista tai -muotoihin", - "pad.toolbar.timeslider.title": "Aikajana", - "pad.toolbar.savedRevision.title": "Tallennetut versiot", - "pad.toolbar.settings.title": "Asetukset", - "pad.toolbar.embed.title": "Upota muistio", - "pad.toolbar.showusers.title": "N\u00e4yt\u00e4 muistion k\u00e4ytt\u00e4j\u00e4t", - "pad.colorpicker.save": "Tallenna", - "pad.colorpicker.cancel": "Peruuta", - "pad.loading": "Ladataan\u2026", - "pad.passwordRequired": "T\u00e4m\u00e4 muistio on suojattu salasanalla.", - "pad.permissionDenied": "K\u00e4ytt\u00f6oikeutesi eiv\u00e4t riit\u00e4 t\u00e4m\u00e4n muistion k\u00e4ytt\u00e4miseen.", - "pad.wrongPassword": "V\u00e4\u00e4r\u00e4 salasana", - "pad.settings.padSettings": "Muistion asetukset", - "pad.settings.myView": "Oma n\u00e4kym\u00e4", - "pad.settings.stickychat": "Keskustelu aina n\u00e4kyviss\u00e4", - "pad.settings.colorcheck": "Kirjoittajav\u00e4rit", - "pad.settings.linenocheck": "Rivinumerot", - "pad.settings.fontType": "Kirjasintyyppi:", - "pad.settings.fontType.normal": "normaali", - "pad.settings.fontType.monospaced": "tasalevyinen", - "pad.settings.globalView": "Yleisn\u00e4kym\u00e4", - "pad.settings.language": "Kieli:", - "pad.importExport.import_export": "Tuonti\/vienti", - "pad.importExport.import": "L\u00e4het\u00e4 mik\u00e4 tahansa tekstitiedosto tai asiakirja", - "pad.importExport.importSuccessful": "Onnistui!", - "pad.importExport.export": "Vie muistio muodossa:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Muotoilematon teksti", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Tuonti on tuettu vain HTML- ja raakatekstitiedostoista. Lis\u00e4tietoja tuonnin lis\u00e4asetuksista on sivulla <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\">install abiword<\/a>.", - "pad.modals.connected": "Yhdistetty.", - "pad.modals.reconnecting": "Muodostetaan yhteytt\u00e4 muistioon uudelleen...", - "pad.modals.forcereconnect": "Pakota yhdist\u00e4m\u00e4\u00e4n uudelleen", - "pad.modals.userdup": "Avattu toisessa ikkunassa", - "pad.modals.userdup.explanation": "T\u00e4m\u00e4 muistio vaikuttaa olevan avoinna useammassa eri selainikkunassa t\u00e4ll\u00e4 koneella.", - "pad.modals.userdup.advice": "Yhdist\u00e4 uudelleen, jos haluat k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 ikkunaa.", - "pad.modals.unauth": "Oikeudet eiv\u00e4t riit\u00e4", - "pad.modals.unauth.explanation": "K\u00e4ytt\u00f6oikeutesi ovat muuttuneet katsellessasi t\u00e4t\u00e4 sivua. Yrit\u00e4 yhdist\u00e4\u00e4 uudelleen.", - "pad.modals.looping": "Yhteys katkaistu.", - "pad.modals.looping.explanation": "Synkronointipalvelimen kanssa on yhteysongelmia.", - "pad.modals.looping.cause": "Yhteytesi on mahdollisesti muodostettu yhteensopimattoman palomuurin tai v\u00e4lityspalvelimen kautta.", - "pad.modals.initsocketfail": "Palvelimeen ei saada yhteytt\u00e4.", - "pad.modals.initsocketfail.explanation": "Synkronointipalvelimeen ei saatu yhteytt\u00e4.", - "pad.modals.initsocketfail.cause": "T\u00e4m\u00e4 johtuu mit\u00e4 luultavimmin selaimestasi tai verkkoyhteydest\u00e4si.", - "pad.modals.slowcommit": "Yhteys katkaistu.", - "pad.modals.slowcommit.explanation": "Palvelin ei vastaa.", - "pad.modals.slowcommit.cause": "T\u00e4m\u00e4 saattaa johtua verkkoyhteyden ongelmista.", - "pad.modals.deleted": "Poistettu.", - "pad.modals.deleted.explanation": "T\u00e4m\u00e4 muistio on poistettu.", - "pad.modals.disconnected": "Yhteytesi on katkaistu.", - "pad.modals.disconnected.explanation": "Yhteys palvelimeen katkesi", - "pad.modals.disconnected.cause": "Palvelin saattaa olla k\u00e4ytt\u00e4m\u00e4tt\u00f6miss\u00e4. Ilmoitathan meille, jos t\u00e4m\u00e4 ongelma toistuu.", - "pad.share": "Jaa muistio", - "pad.share.readonly": "Vain luku", - "pad.share.link": "Linkki", - "pad.share.emebdcode": "Upotusosoite", - "pad.chat": "Keskustelu", - "pad.chat.title": "Avaa keskustelu nykyisest\u00e4 muistiosta.", - "pad.chat.loadmessages": "Lataa lis\u00e4\u00e4 viestej\u00e4", - "timeslider.pageTitle": "{{appTitle}} -aikajana", - "timeslider.toolbar.returnbutton": "Palaa muistioon", - "timeslider.toolbar.authors": "Tekij\u00e4t:", - "timeslider.toolbar.authorsList": "Ei tekij\u00f6it\u00e4", - "timeslider.toolbar.exportlink.title": "Vie", - "timeslider.exportCurrent": "Vie nykyinen versio muodossa:", - "timeslider.version": "Versio {{version}}", - "timeslider.saved": "Tallennettu {{day}}. {{month}}ta {{year}}", - "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "tammikuu", - "timeslider.month.february": "helmikuu", - "timeslider.month.march": "maaliskuu", - "timeslider.month.april": "huhtikuu", - "timeslider.month.may": "toukokuu", - "timeslider.month.june": "kes\u00e4kuu", - "timeslider.month.july": "hein\u00e4kuu", - "timeslider.month.august": "elokuu", - "timeslider.month.september": "syyskuu", - "timeslider.month.october": "lokakuu", - "timeslider.month.november": "marraskuu", - "timeslider.month.december": "joulukuu", - "timeslider.unnamedauthor": "{{num}} nimet\u00f6n tekij\u00e4", - "timeslider.unnamedauthors": "{{num}} nimet\u00f6nt\u00e4 tekij\u00e4\u00e4", - "pad.savedrevs.marked": "T\u00e4m\u00e4 versio on nyt merkitty tallennetuksi versioksi", - "pad.userlist.entername": "Kirjoita nimesi", - "pad.userlist.unnamed": "nimet\u00f6n", - "pad.userlist.guest": "Vieras", - "pad.userlist.deny": "Est\u00e4", - "pad.userlist.approve": "Hyv\u00e4ksy", - "pad.editbar.clearcolors": "Poistetaanko asiakirjasta tekij\u00e4v\u00e4rit?", - "pad.impexp.importbutton": "Tuo nyt", - "pad.impexp.importing": "Tuodaan...", - "pad.impexp.confirmimport": "Tiedoston tuonti korvaa kaiken muistiossa olevan tekstin. Haluatko varmasti jatkaa?", - "pad.impexp.convertFailed": "TIedoston tuonti ep\u00e4onnistui. K\u00e4yt\u00e4 eri tiedostomuotoa tai kopioi ja liit\u00e4 k\u00e4sin.", - "pad.impexp.uploadFailed": "L\u00e4hetys ep\u00e4onnistui. Yrit\u00e4 uudelleen.", - "pad.impexp.importfailed": "Tuonti ep\u00e4onnistui", - "pad.impexp.copypaste": "Kopioi ja liit\u00e4", - "pad.impexp.exportdisabled": "Vienti muotoon \"{{type}}\" ei ole k\u00e4yt\u00f6ss\u00e4. Ota yhteys yll\u00e4pit\u00e4j\u00e4\u00e4n saadaksesi lis\u00e4tietoja." + "@metadata": { + "authors": { + "0": "Artnay", + "1": "Jl", + "2": "Lliehu", + "3": "Nedergard", + "4": "Nike", + "6": "Stryn", + "7": "Veikk0.ma", + "8": "VezonThunder" + } + }, + "index.newPad": "Uusi muistio", + "index.createOpenPad": "tai luo tai avaa muistio nimellä:", + "pad.toolbar.bold.title": "Lihavointi (Ctrl-B)", + "pad.toolbar.italic.title": "Kursivointi (Ctrl-I)", + "pad.toolbar.underline.title": "Alleviivaus (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Yliviivaus", + "pad.toolbar.ol.title": "Numeroitu lista", + "pad.toolbar.ul.title": "Numeroimaton lista", + "pad.toolbar.indent.title": "Sisennä", + "pad.toolbar.unindent.title": "Ulonna", + "pad.toolbar.undo.title": "Kumoa (Ctrl-Z)", + "pad.toolbar.redo.title": "Tee uudelleen (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Poista kirjoittajavärit", + "pad.toolbar.import_export.title": "Tuo tai vie eri tiedostomuodoista tai -muotoihin", + "pad.toolbar.timeslider.title": "Aikajana", + "pad.toolbar.savedRevision.title": "Tallenna muutos", + "pad.toolbar.settings.title": "Asetukset", + "pad.toolbar.embed.title": "Jaa ja upota muistio", + "pad.toolbar.showusers.title": "Näytä muistion käyttäjät", + "pad.colorpicker.save": "Tallenna", + "pad.colorpicker.cancel": "Peruuta", + "pad.loading": "Ladataan…", + "pad.passwordRequired": "Tämä muistio on suojattu salasanalla.", + "pad.permissionDenied": "Käyttöoikeutesi eivät riitä tämän muistion käyttämiseen.", + "pad.wrongPassword": "Väärä salasana", + "pad.settings.padSettings": "Muistion asetukset", + "pad.settings.myView": "Oma näkymä", + "pad.settings.stickychat": "Keskustelu aina näkyvissä", + "pad.settings.colorcheck": "Kirjoittajavärit", + "pad.settings.linenocheck": "Rivinumerot", + "pad.settings.rtlcheck": "Luetaanko sisältö oikealta vasemmalle?", + "pad.settings.fontType": "Kirjasintyyppi:", + "pad.settings.fontType.normal": "normaali", + "pad.settings.fontType.monospaced": "tasalevyinen", + "pad.settings.globalView": "Yleisnäkymä", + "pad.settings.language": "Kieli:", + "pad.importExport.import_export": "Tuonti/vienti", + "pad.importExport.import": "Lähetä mikä tahansa tekstitiedosto tai asiakirja", + "pad.importExport.importSuccessful": "Onnistui!", + "pad.importExport.export": "Vie muistio muodossa:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Muotoilematon teksti", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Tuonti on tuettu vain HTML- ja raakatekstitiedostoista. Lisätietoja tuonnin lisäasetuksista on sivulla \u003Ca 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\"\u003Einstall abiword\u003C/a\u003E.", + "pad.modals.connected": "Yhdistetty.", + "pad.modals.reconnecting": "Muodostetaan yhteyttä muistioon uudelleen...", + "pad.modals.forcereconnect": "Pakota yhdistämään uudelleen", + "pad.modals.userdup": "Avattu toisessa ikkunassa", + "pad.modals.userdup.explanation": "Tämä muistio vaikuttaa olevan avoinna useammassa eri selainikkunassa tällä koneella.", + "pad.modals.userdup.advice": "Yhdistä uudelleen, jos haluat käyttää tätä ikkunaa.", + "pad.modals.unauth": "Oikeudet eivät riitä", + "pad.modals.unauth.explanation": "Käyttöoikeutesi ovat muuttuneet katsellessasi tätä sivua. Yritä yhdistää uudelleen.", + "pad.modals.looping.explanation": "Synkronointipalvelimen kanssa on yhteysongelmia.", + "pad.modals.looping.cause": "Yhteytesi on mahdollisesti muodostettu yhteensopimattoman palomuurin tai välityspalvelimen kautta.", + "pad.modals.initsocketfail": "Palvelimeen ei saada yhteyttä.", + "pad.modals.initsocketfail.explanation": "Synkronointipalvelimeen ei saatu yhteyttä.", + "pad.modals.initsocketfail.cause": "Tämä johtuu mitä luultavimmin selaimestasi tai verkkoyhteydestäsi.", + "pad.modals.slowcommit.explanation": "Palvelin ei vastaa.", + "pad.modals.slowcommit.cause": "Tämä saattaa johtua verkkoyhteyden ongelmista.", + "pad.modals.badChangeset.explanation": "Tekemäsi muutos määritettiin sääntöjen vastaiseksi synkronointipalvelimen toimesta.", + "pad.modals.badChangeset.cause": "Tämä saattaa johtua virheellisistä palvelinmäärityksistä tai muusta odottamattomasta toiminnasta. Ota yhteys palvelun ylläpitäjään, jos kyseessä on mielestäsi virhe. Yritä jatkaa muokkausta yhdistämällä uudelleen.", + "pad.modals.corruptPad.explanation": "Muistio jota yrität avata on vioittunut.", + "pad.modals.corruptPad.cause": "Tämä saattaa johtua virheellisistä palvelinmäärityksistä tai muusta odottamattomasta toiminnasta. Ota yhteys palvelun ylläpitäjään.", + "pad.modals.deleted": "Poistettu.", + "pad.modals.deleted.explanation": "Tämä muistio on poistettu.", + "pad.modals.disconnected": "Yhteytesi on katkaistu.", + "pad.modals.disconnected.explanation": "Yhteys palvelimeen katkesi", + "pad.modals.disconnected.cause": "Palvelin saattaa olla tavoittamattomissa. Ilmoita palvelun ylläpitäjälle, jos tilanne toistuu usein.", + "pad.share": "Jaa muistio", + "pad.share.readonly": "Vain luku", + "pad.share.link": "Linkki", + "pad.share.emebdcode": "Upotusosoite", + "pad.chat": "Keskustelu", + "pad.chat.title": "Avaa keskustelu nykyisestä muistiosta.", + "pad.chat.loadmessages": "Lataa lisää viestejä", + "timeslider.pageTitle": "{{appTitle}} -aikajana", + "timeslider.toolbar.returnbutton": "Palaa muistioon", + "timeslider.toolbar.authors": "Tekijät:", + "timeslider.toolbar.authorsList": "Ei tekijöitä", + "timeslider.toolbar.exportlink.title": "Vie", + "timeslider.exportCurrent": "Vie nykyinen versio muodossa:", + "timeslider.version": "Versio {{version}}", + "timeslider.saved": "Tallennettu {{day}}. {{month}}ta {{year}}", + "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "tammikuu", + "timeslider.month.february": "helmikuu", + "timeslider.month.march": "maaliskuu", + "timeslider.month.april": "huhtikuu", + "timeslider.month.may": "toukokuu", + "timeslider.month.june": "kesäkuu", + "timeslider.month.july": "heinäkuu", + "timeslider.month.august": "elokuu", + "timeslider.month.september": "syyskuu", + "timeslider.month.october": "lokakuu", + "timeslider.month.november": "marraskuu", + "timeslider.month.december": "joulukuu", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: nimetön tekijä, other: nimetöntä tekijää ]}", + "pad.savedrevs.marked": "Tämä versio on nyt merkitty tallennetuksi versioksi", + "pad.userlist.entername": "Kirjoita nimesi", + "pad.userlist.unnamed": "nimetön", + "pad.userlist.guest": "Vieras", + "pad.userlist.deny": "Estä", + "pad.userlist.approve": "Hyväksy", + "pad.editbar.clearcolors": "Poistetaanko asiakirjasta tekijävärit?", + "pad.impexp.importbutton": "Tuo nyt", + "pad.impexp.importing": "Tuodaan...", + "pad.impexp.confirmimport": "Tiedoston tuonti korvaa kaiken muistiossa olevan tekstin. Haluatko varmasti jatkaa?", + "pad.impexp.convertFailed": "TIedoston tuonti epäonnistui. Käytä eri tiedostomuotoa tai kopioi ja liitä käsin.", + "pad.impexp.uploadFailed": "Lähetys epäonnistui. Yritä uudelleen.", + "pad.impexp.importfailed": "Tuonti epäonnistui", + "pad.impexp.copypaste": "Kopioi ja liitä", + "pad.impexp.exportdisabled": "Vienti muotoon \"{{type}}\" ei ole käytössä. Ota yhteys ylläpitäjään saadaksesi lisätietoja." }
\ No newline at end of file diff --git a/src/locales/fo.json b/src/locales/fo.json new file mode 100644 index 00000000..3871f125 --- /dev/null +++ b/src/locales/fo.json @@ -0,0 +1,94 @@ +{ + "@metadata": { + "authors": [ + "EileenSanda" + ] + }, + "index.newPad": "Nýggjur teldil", + "pad.toolbar.bold.title": "Við feitum (Ctrl-B)", + "pad.toolbar.italic.title": "Skráskrift (Ctrl-I)", + "pad.toolbar.underline.title": "Undirstrikað (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Gjøgnumstrikað", + "pad.toolbar.ol.title": "Bíleggingarlisti", + "pad.toolbar.undo.title": "Angra (Ctrl-Z)", + "pad.toolbar.redo.title": "Ger umaftur (Ctrl-Y)", + "pad.toolbar.import_export.title": "Innflyt/Útflyt frá/til ymiskar fílustøddir", + "pad.toolbar.savedRevision.title": "Goym Endurskoðan", + "pad.toolbar.settings.title": "Innstillingar", + "pad.toolbar.embed.title": "Deil og Innset henda pad'in", + "pad.toolbar.showusers.title": "Vís brúkarar á hesum paddi", + "pad.colorpicker.save": "Goym", + "pad.colorpicker.cancel": "Ógilda", + "pad.loading": "Løðir...", + "pad.passwordRequired": "Tú hevur brúk fyri einum loyniorði fyri at fáa atgongd til henda paddin", + "pad.permissionDenied": "Tú hevur ikki loyvi til at fáa atgongd til henda paddin", + "pad.wrongPassword": "Títt loyniorð var skeivt", + "pad.settings.padSettings": "Pad innstillingar", + "pad.settings.myView": "Mín sýning", + "pad.settings.stickychat": "Kjatta altíð á skerminum", + "pad.settings.colorcheck": "Litir hjá rithøvundaskapinum", + "pad.settings.linenocheck": "Linjunummur", + "pad.settings.rtlcheck": "Vil tú lesa innihaldið frá høgru til vinstu?", + "pad.settings.fontType": "Skriftslag:", + "pad.settings.fontType.normal": "Vanligt", + "pad.settings.fontType.monospaced": "Føst breidd", + "pad.settings.globalView": "Global sýning", + "pad.settings.language": "Mál:", + "pad.importExport.import_export": "Innflyt/Útflyt", + "pad.importExport.import": "Legg út onkra tekstfílu ella dokument", + "pad.importExport.importSuccessful": "Tað eydnaðist!", + "pad.importExport.export": "Útflyt verandi pad sum:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Einfaldur tekstur", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Opið Dokument Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Tú kanst bert innflyta frá einføldum teksti ella html formatum. Fyri funksjónir til innflytan fyri víðarikomin vinarliga \u003Ca 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\"\u003Einstallera abiword\u003C/a\u003E.", + "pad.modals.connected": "Tú hevur samband.", + "pad.modals.reconnecting": "Roynir aftur at fáa samband við tín pad..", + "pad.modals.forcereconnect": "Tvinga endurstovnan av sambandi.", + "pad.modals.userdup": "Er latið upp í øðrum vindeyga", + "pad.modals.userdup.explanation": "Tað sær út til at hesin paddurin er latin upp í meira enn einum brovsara vindeyga á hesari telduni.", + "pad.modals.userdup.advice": "Endurstovna sambandi fyri at nýta hetta vindeyga í staðin.", + "pad.modals.unauth": "Er ikki loyvt", + "pad.modals.unauth.explanation": "Tíni loyvi eru broytt, meðan tú hevur hugt at hesi síðuni. Royn og endurstovna sambandi.", + "pad.modals.initsocketfail": "Ambætarin er óatkomuligur.", + "pad.modals.initsocketfail.cause": "Hetta skyldast mest sannlíkt ein trupulleika við tínum kaga/brovsara ella við tínum internetsambandi.", + "pad.modals.slowcommit.explanation": "Ambætarin (servarin) svarar ikki.", + "pad.modals.slowcommit.cause": "Hetta kann skyldast trupulleikar við netverkssambandinum.", + "pad.modals.deleted": "Er strikað.", + "pad.modals.deleted.explanation": "Hesin paddurin er fluttur.", + "pad.modals.disconnected": "Tú hevur mist sambandi.", + "pad.modals.disconnected.explanation": "Sambandið til ambætarin er avbrotið", + "pad.share": "Deil henda paddin", + "pad.share.readonly": "Vart fyri skriving", + "pad.share.link": "Slóð", + "timeslider.toolbar.returnbutton": "Vend aftur til pad'in", + "timeslider.toolbar.authors": "Høvundar:", + "timeslider.toolbar.authorsList": "Ongir høvundar", + "timeslider.toolbar.exportlink.title": "Útflyt", + "timeslider.exportCurrent": "Útflyt hesa versjóna sum:", + "timeslider.version": "Versjón {{version}}", + "timeslider.saved": "Goymt {{month}} {{day}}, {{year}}", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Januar", + "timeslider.month.february": "Februar", + "timeslider.month.march": "Mars", + "timeslider.month.april": "Apríl", + "timeslider.month.may": "Mai", + "timeslider.month.june": "Juni", + "timeslider.month.july": "Juli", + "timeslider.month.august": "August", + "timeslider.month.september": "September", + "timeslider.month.october": "October", + "timeslider.month.november": "November", + "timeslider.month.december": "Desember", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: ónevndur rithøvundur, other: ónevndir rithøvundar ]}", + "pad.savedrevs.marked": "Henda endurskoðanin er nú merkt sum ein goymd endurskoðan", + "pad.userlist.entername": "Skriva títt navn", + "pad.userlist.unnamed": "ikki-navngivið", + "pad.userlist.guest": "Gestur", + "pad.userlist.deny": "Nokta", + "pad.userlist.approve": "Góðkenn" +}
\ No newline at end of file diff --git a/src/locales/fr.json b/src/locales/fr.json index 4131c723..a61d90b0 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -1,129 +1,136 @@ { - "@metadata": { - "authors": { - "0": "Cquoi", - "1": "Crochet.david", - "2": "Gomoko", - "3": "Goofy", - "4": "Goofy-bz", - "5": "Jean-Fr\u00e9d\u00e9ric", - "6": "Leviathan", - "7": "McDutchie", - "8": "Od1n", - "10": "Tux-tn" - } - }, - "index.newPad": "Nouveau Pad", - "index.createOpenPad": "ou cr\u00e9er\/ouvrir un Pad intitul\u00e9 :", - "pad.toolbar.bold.title": "Gras (Ctrl-B)", - "pad.toolbar.italic.title": "Italique (Ctrl-I)", - "pad.toolbar.underline.title": "Soulign\u00e9 (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Barr\u00e9", - "pad.toolbar.ol.title": "Liste ordonn\u00e9e", - "pad.toolbar.ul.title": "Liste \u00e0 puces", - "pad.toolbar.indent.title": "Indenter", - "pad.toolbar.unindent.title": "D\u00e9sindenter", - "pad.toolbar.undo.title": "Annuler (Ctrl-Z)", - "pad.toolbar.redo.title": "R\u00e9tablir (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Effacer les couleurs identifiant les auteurs", - "pad.toolbar.import_export.title": "Importer\/Exporter de\/vers un format de fichier diff\u00e9rent", - "pad.toolbar.timeslider.title": "Historique dynamique", - "pad.toolbar.savedRevision.title": "Versions enregistr\u00e9es", - "pad.toolbar.settings.title": "Param\u00e8tres", - "pad.toolbar.embed.title": "Int\u00e9grer ce Pad", - "pad.toolbar.showusers.title": "Afficher les utilisateurs du Pad", - "pad.colorpicker.save": "Enregistrer", - "pad.colorpicker.cancel": "Annuler", - "pad.loading": "Chargement\u2026", - "pad.passwordRequired": "Vous avez besoin d'un mot de passe pour acc\u00e9der \u00e0 ce Pad", - "pad.permissionDenied": "Il ne vous est pas permis d\u2019acc\u00e9der \u00e0 ce Pad", - "pad.wrongPassword": "Mot de passe incorrect", - "pad.settings.padSettings": "Param\u00e8tres du Pad", - "pad.settings.myView": "Ma vue", - "pad.settings.stickychat": "Toujours afficher le chat", - "pad.settings.colorcheck": "Couleurs d\u2019identification", - "pad.settings.linenocheck": "Num\u00e9ros de lignes", - "pad.settings.fontType": "Type de police :", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "Vue d\u2019ensemble", - "pad.settings.language": "Langue :", - "pad.importExport.import_export": "Importer\/Exporter", - "pad.importExport.import": "Charger un texte ou un document", - "pad.importExport.importSuccessful": "R\u00e9ussi!", - "pad.importExport.export": "Exporter le Pad actuel comme :", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Texte brut", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Vous ne pouvez importer que des formats texte brut ou html. Pour des fonctionnalit\u00e9s d'importation plus \u00e9volu\u00e9es, veuillez <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\">installer abiword<\/a>.", - "pad.modals.connected": "Connect\u00e9.", - "pad.modals.reconnecting": "Reconnexion vers votre Pad...", - "pad.modals.forcereconnect": "Forcer la reconnexion.", - "pad.modals.userdup": "Ouvert dans une autre fen\u00eatre", - "pad.modals.userdup.explanation": "Il semble que ce Pad soit ouvert dans plusieurs fen\u00eatres de votre navigateur sur cet ordinateur.", - "pad.modals.userdup.advice": "Se reconnecter en utilisant cette fen\u00eatre.", - "pad.modals.unauth": "Non autoris\u00e9", - "pad.modals.unauth.explanation": "Vos permissions ont \u00e9t\u00e9 chang\u00e9es lors de l'affichage de cette page. Essayez de vous reconnecter.", - "pad.modals.looping": "D\u00e9connect\u00e9.", - "pad.modals.looping.explanation": "Nous \u00e9prouvons un probl\u00e8me de communication au serveur de synchronisation.", - "pad.modals.looping.cause": "Il est possible que votre connexion soit prot\u00e9g\u00e9e par un pare-feu incompatible ou un serveur proxy incompatible.", - "pad.modals.initsocketfail": "Le serveur est introuvable.", - "pad.modals.initsocketfail.explanation": "Impossible de se connecter au serveur de synchronisation.", - "pad.modals.initsocketfail.cause": "Le probl\u00e8me peut venir de votre navigateur web ou de votre connexion Internet.", - "pad.modals.slowcommit": "D\u00e9connect\u00e9.", - "pad.modals.slowcommit.explanation": "Le serveur ne r\u00e9pond pas.", - "pad.modals.slowcommit.cause": "Ce probl\u00e8me peut venir d'une mauvaise connectivit\u00e9 au r\u00e9seau.", - "pad.modals.deleted": "Supprim\u00e9.", - "pad.modals.deleted.explanation": "Ce Pad a \u00e9t\u00e9 supprim\u00e9.", - "pad.modals.disconnected": "Vous avez \u00e9t\u00e9 d\u00e9connect\u00e9.", - "pad.modals.disconnected.explanation": "La connexion au serveur a \u00e9chou\u00e9.", - "pad.modals.disconnected.cause": "Il se peut que le serveur soit indisponible. Veuillez nous en informer si le probl\u00e8me persiste.", - "pad.share": "Partager ce Pad", - "pad.share.readonly": "Lecture seule", - "pad.share.link": "Lien", - "pad.share.emebdcode": "Lien \u00e0 int\u00e9grer", - "pad.chat": "Chat", - "pad.chat.title": "Ouvrir le chat associ\u00e9 \u00e0 ce pad.", - "pad.chat.loadmessages": "Charger davantage de messages", - "timeslider.pageTitle": "Historique dynamique de {{appTitle}}", - "timeslider.toolbar.returnbutton": "Retour \u00e0 ce Pad.", - "timeslider.toolbar.authors": "Auteurs :", - "timeslider.toolbar.authorsList": "Aucun auteur", - "timeslider.toolbar.exportlink.title": "Exporter", - "timeslider.exportCurrent": "Exporter la version actuelle en\u00a0:", - "timeslider.version": "Version {{version}}", - "timeslider.saved": "Enregistr\u00e9 le {{day}} {{month}} {{year}}", - "timeslider.dateformat": "{{day}} {{month}} {{year}} {{hours}}:{{minutes}}:{{secondes}}", - "timeslider.month.january": "Janvier", - "timeslider.month.february": "F\u00e9vrier", - "timeslider.month.march": "Mars", - "timeslider.month.april": "Avril", - "timeslider.month.may": "Mai", - "timeslider.month.june": "Juin", - "timeslider.month.july": "Juillet", - "timeslider.month.august": "Ao\u00fbt", - "timeslider.month.september": "Septembre", - "timeslider.month.october": "Octobre", - "timeslider.month.november": "Novembre", - "timeslider.month.december": "D\u00e9cembre", - "timeslider.unnamedauthor": "{{num}} auteur anonyme", - "timeslider.unnamedauthors": "{{num}} auteurs anonymes", - "pad.savedrevs.marked": "Cette r\u00e9vision est maintenant marqu\u00e9e comme r\u00e9vision enregistr\u00e9e", - "pad.userlist.entername": "Entrez votre nom", - "pad.userlist.unnamed": "sans nom", - "pad.userlist.guest": "Invit\u00e9", - "pad.userlist.deny": "Refuser", - "pad.userlist.approve": "Approuver", - "pad.editbar.clearcolors": "Effacer les couleurs de paternit\u00e9 dans tout le document ?", - "pad.impexp.importbutton": "Importer maintenant", - "pad.impexp.importing": "Import en cours...", - "pad.impexp.confirmimport": "Importer un fichier \u00e9crasera le texte actuel du bloc. \u00cates-vous s\u00fbr de vouloir le faire?", - "pad.impexp.convertFailed": "Nous ne pouvons pas importer ce fichier. Veuillez utiliser un autre format de document ou faire un copier\/coller manuel", - "pad.impexp.uploadFailed": "Le t\u00e9l\u00e9chargement a \u00e9chou\u00e9, veuillez r\u00e9essayer", - "pad.impexp.importfailed": "\u00c9chec de l'importation", - "pad.impexp.copypaste": "Veuillez copier\/coller", - "pad.impexp.exportdisabled": "Exporter au format {{type}} est d\u00e9sactiv\u00e9. Veuillez contacter votre administrateur syst\u00e8me pour plus de d\u00e9tails." + "@metadata": { + "authors": { + "0": "Cquoi", + "1": "Crochet.david", + "2": "Gomoko", + "3": "Goofy", + "4": "Goofy-bz", + "5": "Jean-Frédéric", + "6": "Leviathan", + "7": "McDutchie", + "8": "Metroitendo", + "9": "Od1n", + "10": "Peter17", + "11": "Quenenni", + "12": "Rastus Vernon", + "14": "Stephane Cottin", + "15": "Tux-tn" + } + }, + "index.newPad": "Nouveau pad", + "index.createOpenPad": "ou créer/ouvrir un pad intitulé :", + "pad.toolbar.bold.title": "Gras (Ctrl-B)", + "pad.toolbar.italic.title": "Italique (Ctrl-I)", + "pad.toolbar.underline.title": "Souligné (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Barré", + "pad.toolbar.ol.title": "Liste ordonnée", + "pad.toolbar.ul.title": "Liste non ordonnée", + "pad.toolbar.indent.title": "Indenter", + "pad.toolbar.unindent.title": "Désindenter", + "pad.toolbar.undo.title": "Annuler (Ctrl-Z)", + "pad.toolbar.redo.title": "Rétablir (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Effacer les couleurs identifiant les auteurs", + "pad.toolbar.import_export.title": "Importer/Exporter de/vers un format de fichier différent", + "pad.toolbar.timeslider.title": "Historique dynamique", + "pad.toolbar.savedRevision.title": "Enregistrer la révision", + "pad.toolbar.settings.title": "Paramètres", + "pad.toolbar.embed.title": "Partager et intégrer ce pad", + "pad.toolbar.showusers.title": "Afficher les utilisateurs du pad", + "pad.colorpicker.save": "Enregistrer", + "pad.colorpicker.cancel": "Annuler", + "pad.loading": "Chargement…", + "pad.passwordRequired": "Vous avez besoin d'un mot de passe pour accéder à ce pad", + "pad.permissionDenied": "Il ne vous est pas permis d’accéder à ce pad", + "pad.wrongPassword": "Votre mot de passe est incorrect", + "pad.settings.padSettings": "Paramètres du pad", + "pad.settings.myView": "Ma vue", + "pad.settings.stickychat": "Toujours afficher le chat", + "pad.settings.colorcheck": "Couleurs d’identification", + "pad.settings.linenocheck": "Numéros de lignes", + "pad.settings.rtlcheck": "Lecture de droite à gauche", + "pad.settings.fontType": "Police :", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Vue d’ensemble", + "pad.settings.language": "Langue :", + "pad.importExport.import_export": "Importer/Exporter", + "pad.importExport.import": "Charger un texte ou un document", + "pad.importExport.importSuccessful": "Réussi!", + "pad.importExport.export": "Exporter le pad actuel comme :", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Texte brut", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Vous ne pouvez importer que des formats texte brut ou html. Pour des fonctionnalités d'importation plus évoluées, veuillez \u003Ca 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\"\u003Einstaller abiword\u003C/a\u003E.", + "pad.modals.connected": "Connecté.", + "pad.modals.reconnecting": "Reconnexion vers votre pad...", + "pad.modals.forcereconnect": "Forcer la reconnexion", + "pad.modals.userdup": "Ouvert dans une autre fenêtre", + "pad.modals.userdup.explanation": "Ce pad semble être ouvert dans plus d'une fenêtre de navigateur sur cet ordinateur.", + "pad.modals.userdup.advice": "Se reconnecter en utilisant cette fenêtre.", + "pad.modals.unauth": "Non autorisé", + "pad.modals.unauth.explanation": "Vos permissions ont été changées lors de l'affichage de cette page. Essayez de vous reconnecter.", + "pad.modals.looping.explanation": "Nous éprouvons un problème de communication au serveur de synchronisation.", + "pad.modals.looping.cause": "Il est possible que votre connexion soit protégée par un pare-feu ou un serveur mandataire incompatible.", + "pad.modals.initsocketfail": "Le serveur est introuvable.", + "pad.modals.initsocketfail.explanation": "Impossible de se connecter au serveur de synchronisation.", + "pad.modals.initsocketfail.cause": "Ceci est probablement dû à un problème avec votre navigateur ou votre connexion internet.", + "pad.modals.slowcommit.explanation": "Le serveur ne répond pas.", + "pad.modals.slowcommit.cause": "Ce problème peut venir d'une mauvaise connectivité au réseau.", + "pad.modals.badChangeset.explanation": "Une modification que vous avez effectuée a été classée comme illégale par le serveur de synchronisation.", + "pad.modals.badChangeset.cause": "Cela peut être dû à une mauvaise configuration du serveur ou à un autre comportement inattendu. Veuillez contacter l’administrateur du service, si vous pensez que c’est une erreur. Essayez de vous reconnecter pour continuer à modifier.", + "pad.modals.corruptPad.explanation": "Le bloc auquel vous essayez d’accéder est corrompu.", + "pad.modals.corruptPad.cause": "Cela peut être dû à une mauvaise configuration du serveur ou à un autre comportement inattendu. Veuillez contacter l’administrateur du service.", + "pad.modals.deleted": "Supprimé.", + "pad.modals.deleted.explanation": "Ce pad a été supprimé.", + "pad.modals.disconnected": "Vous avez été déconnecté.", + "pad.modals.disconnected.explanation": "La connexion au serveur a échoué.", + "pad.modals.disconnected.cause": "Il se peut que le serveur soit indisponible. Si le problème persiste, veuillez en informer l’administrateur du service.", + "pad.share": "Partager ce pad", + "pad.share.readonly": "Lecture seule", + "pad.share.link": "Lien", + "pad.share.emebdcode": "Incorporer un lien", + "pad.chat": "Chat", + "pad.chat.title": "Ouvrir le chat associé à ce pad.", + "pad.chat.loadmessages": "Charger davantage de messages", + "timeslider.pageTitle": "Historique dynamique de {{appTitle}}", + "timeslider.toolbar.returnbutton": "Retourner au pad", + "timeslider.toolbar.authors": "Auteurs :", + "timeslider.toolbar.authorsList": "Aucun auteur", + "timeslider.toolbar.exportlink.title": "Exporter", + "timeslider.exportCurrent": "Exporter la version actuelle en :", + "timeslider.version": "Version {{version}}", + "timeslider.saved": "Enregistré le {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Janvier", + "timeslider.month.february": "Février", + "timeslider.month.march": "Mars", + "timeslider.month.april": "Avril", + "timeslider.month.may": "Mai", + "timeslider.month.june": "Juin", + "timeslider.month.july": "Juillet", + "timeslider.month.august": "Août", + "timeslider.month.september": "Septembre", + "timeslider.month.october": "Octobre", + "timeslider.month.november": "Novembre", + "timeslider.month.december": "Décembre", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: auteur anonyme, other: auteurs anonymes ]}", + "pad.savedrevs.marked": "Cette révision est maintenant marquée comme révision enregistrée", + "pad.userlist.entername": "Entrez votre nom", + "pad.userlist.unnamed": "anonyme", + "pad.userlist.guest": "Invité", + "pad.userlist.deny": "Refuser", + "pad.userlist.approve": "Approuver", + "pad.editbar.clearcolors": "Effacer les couleurs de paternité dans tout le document ?", + "pad.impexp.importbutton": "Importer maintenant", + "pad.impexp.importing": "Import en cours...", + "pad.impexp.confirmimport": "Importer un fichier écrasera le texte actuel du pad. Êtes-vous sûr de vouloir le faire?", + "pad.impexp.convertFailed": "Nous ne pouvons pas importer ce fichier. Veuillez utiliser un autre format de document ou faire un copier/coller manuel", + "pad.impexp.uploadFailed": "Le téléchargement a échoué, veuillez réessayer", + "pad.impexp.importfailed": "Échec de l'importation", + "pad.impexp.copypaste": "Veuillez copier/coller", + "pad.impexp.exportdisabled": "Exporter au format {{type}} est désactivé. Veuillez contacter votre administrateur système pour plus de détails." }
\ No newline at end of file diff --git a/src/locales/gl.json b/src/locales/gl.json index 261d28ef..f728ec0b 100644 --- a/src/locales/gl.json +++ b/src/locales/gl.json @@ -1,120 +1,122 @@ { - "@metadata": { - "authors": { - "1": "Toli\u00f1o" - } - }, - "index.newPad": "Novo documento", - "index.createOpenPad": "ou cree\/abra un documento co nome:", - "pad.toolbar.bold.title": "Negra (Ctrl-B)", - "pad.toolbar.italic.title": "Cursiva (Ctrl-I)", - "pad.toolbar.underline.title": "Subli\u00f1ar (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Riscar", - "pad.toolbar.ol.title": "Lista ordenada", - "pad.toolbar.ul.title": "Lista sen ordenar", - "pad.toolbar.indent.title": "Sangr\u00eda", - "pad.toolbar.unindent.title": "Sen sangr\u00eda", - "pad.toolbar.undo.title": "Desfacer (Ctrl-Z)", - "pad.toolbar.redo.title": "Refacer (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Limpar as cores de identificaci\u00f3n dos autores", - "pad.toolbar.import_export.title": "Importar\/Exportar desde\/a diferentes formatos de ficheiro", - "pad.toolbar.timeslider.title": "Li\u00f1a do tempo", - "pad.toolbar.savedRevision.title": "Revisi\u00f3ns gardadas", - "pad.toolbar.settings.title": "Configuraci\u00f3ns", - "pad.toolbar.embed.title": "Incorporar este documento", - "pad.toolbar.showusers.title": "Mostrar os usuarios deste documento", - "pad.colorpicker.save": "Gardar", - "pad.colorpicker.cancel": "Cancelar", - "pad.loading": "Cargando...", - "pad.passwordRequired": "C\u00f3mpre un contrasinal para acceder a este documento", - "pad.permissionDenied": "Non ten permiso para acceder a este documento", - "pad.wrongPassword": "O contrasinal era incorrecto", - "pad.settings.padSettings": "Configuraci\u00f3ns do documento", - "pad.settings.myView": "A mi\u00f1a vista", - "pad.settings.stickychat": "Chat sempre visible", - "pad.settings.colorcheck": "Cores de identificaci\u00f3n", - "pad.settings.linenocheck": "N\u00fameros de li\u00f1a", - "pad.settings.fontType": "Tipo de letra:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monoespazada", - "pad.settings.globalView": "Vista global", - "pad.settings.language": "Lingua:", - "pad.importExport.import_export": "Importar\/Exportar", - "pad.importExport.import": "Cargar un ficheiro de texto ou documento", - "pad.importExport.importSuccessful": "Correcto!", - "pad.importExport.export": "Exportar o documento actual en formato:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Texto simple", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "S\u00f3 pode importar texto simple ou formatos HTML. Para obter m\u00e1is informaci\u00f3n sobre as caracter\u00edsticas de importaci\u00f3n avanzadas <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\">instale abiword<\/a>.", - "pad.modals.connected": "Conectado.", - "pad.modals.reconnecting": "Reconectando co seu documento...", - "pad.modals.forcereconnect": "Forzar a reconexi\u00f3n", - "pad.modals.userdup": "Aberto noutra vent\u00e1", - "pad.modals.userdup.explanation": "Semella que este documento est\u00e1 aberto en varias vent\u00e1s do navegador neste ordenador.", - "pad.modals.userdup.advice": "Reconectar para usar esta vent\u00e1.", - "pad.modals.unauth": "Non autorizado", - "pad.modals.unauth.explanation": "Os seus permisos cambiaron mentres estaba nesta p\u00e1xina. Intente a reconexi\u00f3n.", - "pad.modals.looping": "Desconectado.", - "pad.modals.looping.explanation": "Hai un problema de comunicaci\u00f3n co servidor de sincronizaci\u00f3n.", - "pad.modals.looping.cause": "Seica a s\u00faa conexi\u00f3n pasa a trav\u00e9s dun firewall ou proxy incompatible.", - "pad.modals.initsocketfail": "Non se pode alcanzar o servidor.", - "pad.modals.initsocketfail.explanation": "Non se pode conectar co servidor de sincronizaci\u00f3n.", - "pad.modals.initsocketfail.cause": "Isto acontece probablemente debido a un problema co navegador ou coa conexi\u00f3n \u00e1 internet.", - "pad.modals.slowcommit": "Desconectado.", - "pad.modals.slowcommit.explanation": "O servidor non responde.", - "pad.modals.slowcommit.cause": "Isto pode deberse a un problema de conexi\u00f3n \u00e1 rede.", - "pad.modals.deleted": "Borrado.", - "pad.modals.deleted.explanation": "Este documento foi eliminado.", - "pad.modals.disconnected": "Foi desconectado.", - "pad.modals.disconnected.explanation": "Perdeuse a conexi\u00f3n co servidor", - "pad.modals.disconnected.cause": "O servidor non est\u00e1 dispo\u00f1ible. P\u00f3\u00f1ase en contacto con n\u00f3s se o problema contin\u00faa.", - "pad.share": "Compartir este documento", - "pad.share.readonly": "Lectura s\u00f3", - "pad.share.link": "Ligaz\u00f3n", - "pad.share.emebdcode": "Incorporar o URL", - "pad.chat": "Chat", - "pad.chat.title": "Abrir o chat deste documento.", - "pad.chat.loadmessages": "Cargar m\u00e1is mensaxes", - "timeslider.pageTitle": "Li\u00f1a do tempo de {{appTitle}}", - "timeslider.toolbar.returnbutton": "Volver ao documento", - "timeslider.toolbar.authors": "Autores:", - "timeslider.toolbar.authorsList": "Ning\u00fan autor", - "timeslider.toolbar.exportlink.title": "Exportar", - "timeslider.exportCurrent": "Exportar a versi\u00f3n actual en formato:", - "timeslider.version": "Versi\u00f3n {{version}}", - "timeslider.saved": "Gardado o {{day}} de {{month}} de {{year}}", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "xaneiro", - "timeslider.month.february": "febreiro", - "timeslider.month.march": "marzo", - "timeslider.month.april": "abril", - "timeslider.month.may": "maio", - "timeslider.month.june": "xu\u00f1o", - "timeslider.month.july": "xullo", - "timeslider.month.august": "agosto", - "timeslider.month.september": "setembro", - "timeslider.month.october": "outubro", - "timeslider.month.november": "novembro", - "timeslider.month.december": "decembro", - "timeslider.unnamedauthor": "{{num}} autor an\u00f3nimo", - "timeslider.unnamedauthors": "{{num}} autores an\u00f3nimos", - "pad.savedrevs.marked": "Esta revisi\u00f3n est\u00e1 agora marcada como revisi\u00f3n gardada", - "pad.userlist.entername": "Insira o seu nome", - "pad.userlist.unnamed": "an\u00f3nimo", - "pad.userlist.guest": "Convidado", - "pad.userlist.deny": "Rexeitar", - "pad.userlist.approve": "Aprobar", - "pad.editbar.clearcolors": "Quere limpar as cores de identificaci\u00f3n dos autores en todo o documento?", - "pad.impexp.importbutton": "Importar agora", - "pad.impexp.importing": "Importando...", - "pad.impexp.confirmimport": "A importaci\u00f3n dun ficheiro ha sobrescribir o texto actual do documento. Est\u00e1 seguro de querer continuar?", - "pad.impexp.convertFailed": "Non somos capaces de importar o ficheiro. Utilice un formato de documento diferente ou copie e pegue manualmente", - "pad.impexp.uploadFailed": "Houbo un erro ao cargar o ficheiro; int\u00e9nteo de novo", - "pad.impexp.importfailed": "Fallou a importaci\u00f3n", - "pad.impexp.copypaste": "Copie e pegue", - "pad.impexp.exportdisabled": "A exportaci\u00f3n en formato {{type}} est\u00e1 desactivada. P\u00f3\u00f1ase en contacto co administrador do sistema se quere m\u00e1is detalles." + "@metadata": { + "authors": { + "1": "Toliño" + } + }, + "index.newPad": "Novo documento", + "index.createOpenPad": "ou cree/abra un documento co nome:", + "pad.toolbar.bold.title": "Negra (Ctrl-B)", + "pad.toolbar.italic.title": "Cursiva (Ctrl-I)", + "pad.toolbar.underline.title": "Subliñar (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Riscar", + "pad.toolbar.ol.title": "Lista ordenada", + "pad.toolbar.ul.title": "Lista sen ordenar", + "pad.toolbar.indent.title": "Sangría", + "pad.toolbar.unindent.title": "Sen sangría", + "pad.toolbar.undo.title": "Desfacer (Ctrl-Z)", + "pad.toolbar.redo.title": "Refacer (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Limpar as cores de identificación dos autores", + "pad.toolbar.import_export.title": "Importar/Exportar desde/a diferentes formatos de ficheiro", + "pad.toolbar.timeslider.title": "Liña do tempo", + "pad.toolbar.savedRevision.title": "Gardar a revisión", + "pad.toolbar.settings.title": "Configuracións", + "pad.toolbar.embed.title": "Compartir e incorporar este documento", + "pad.toolbar.showusers.title": "Mostrar os usuarios deste documento", + "pad.colorpicker.save": "Gardar", + "pad.colorpicker.cancel": "Cancelar", + "pad.loading": "Cargando...", + "pad.passwordRequired": "Cómpre un contrasinal para acceder a este documento", + "pad.permissionDenied": "Non ten permiso para acceder a este documento", + "pad.wrongPassword": "O contrasinal era incorrecto", + "pad.settings.padSettings": "Configuracións do documento", + "pad.settings.myView": "A miña vista", + "pad.settings.stickychat": "Chat sempre visible", + "pad.settings.colorcheck": "Cores de identificación", + "pad.settings.linenocheck": "Números de liña", + "pad.settings.rtlcheck": "Quere ler o contido da dereita á esquerda?", + "pad.settings.fontType": "Tipo de letra:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monoespazada", + "pad.settings.globalView": "Vista global", + "pad.settings.language": "Lingua:", + "pad.importExport.import_export": "Importar/Exportar", + "pad.importExport.import": "Cargar un ficheiro de texto ou documento", + "pad.importExport.importSuccessful": "Correcto!", + "pad.importExport.export": "Exportar o documento actual en formato:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Texto simple", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Só pode importar texto simple ou formatos HTML. Para obter máis información sobre as características de importación avanzadas \u003Ca 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\"\u003Einstale abiword\u003C/a\u003E.", + "pad.modals.connected": "Conectado.", + "pad.modals.reconnecting": "Reconectando co seu documento...", + "pad.modals.forcereconnect": "Forzar a reconexión", + "pad.modals.userdup": "Aberto noutra ventá", + "pad.modals.userdup.explanation": "Semella que este documento está aberto en varias ventás do navegador neste ordenador.", + "pad.modals.userdup.advice": "Reconectar para usar esta ventá.", + "pad.modals.unauth": "Non autorizado", + "pad.modals.unauth.explanation": "Os seus permisos cambiaron mentres estaba nesta páxina. Intente a reconexión.", + "pad.modals.looping.explanation": "Hai un problema de comunicación co servidor de sincronización.", + "pad.modals.looping.cause": "Seica a súa conexión pasa a través dun firewall ou proxy incompatible.", + "pad.modals.initsocketfail": "Non se pode alcanzar o servidor.", + "pad.modals.initsocketfail.explanation": "Non se pode conectar co servidor de sincronización.", + "pad.modals.initsocketfail.cause": "Isto acontece probablemente debido a un problema co navegador ou coa conexión á internet.", + "pad.modals.slowcommit.explanation": "O servidor non responde.", + "pad.modals.slowcommit.cause": "Isto pode deberse a un problema de conexión á rede.", + "pad.modals.badChangeset.explanation": "O servidor de sincronización clasificou como ilegal unha das súas edicións.", + "pad.modals.badChangeset.cause": "Isto pode deberse a unha cofiguración errónea do servidor ou algún outro comportamento inesperado. Póñase en contacto co administrador do servizo, se pensa que isto é un erro. Intente reconectar para continuar editando.", + "pad.modals.corruptPad.explanation": "O documento ao que intenta acceder está corrompido.", + "pad.modals.corruptPad.cause": "Isto pode deberse a unha cofiguración errónea do servidor ou algún outro comportamento inesperado. Póñase en contacto co administrador do servizo.", + "pad.modals.deleted": "Borrado.", + "pad.modals.deleted.explanation": "Este documento foi eliminado.", + "pad.modals.disconnected": "Foi desconectado.", + "pad.modals.disconnected.explanation": "Perdeuse a conexión co servidor", + "pad.modals.disconnected.cause": "O servidor non está dispoñible. Póñase en contacto co administrador do servizo se o problema continúa.", + "pad.share": "Compartir este documento", + "pad.share.readonly": "Lectura só", + "pad.share.link": "Ligazón", + "pad.share.emebdcode": "Incorporar o URL", + "pad.chat": "Chat", + "pad.chat.title": "Abrir o chat deste documento.", + "pad.chat.loadmessages": "Cargar máis mensaxes", + "timeslider.pageTitle": "Liña do tempo de {{appTitle}}", + "timeslider.toolbar.returnbutton": "Volver ao documento", + "timeslider.toolbar.authors": "Autores:", + "timeslider.toolbar.authorsList": "Ningún autor", + "timeslider.toolbar.exportlink.title": "Exportar", + "timeslider.exportCurrent": "Exportar a versión actual en formato:", + "timeslider.version": "Versión {{version}}", + "timeslider.saved": "Gardado o {{day}} de {{month}} de {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "xaneiro", + "timeslider.month.february": "febreiro", + "timeslider.month.march": "marzo", + "timeslider.month.april": "abril", + "timeslider.month.may": "maio", + "timeslider.month.june": "xuño", + "timeslider.month.july": "xullo", + "timeslider.month.august": "agosto", + "timeslider.month.september": "setembro", + "timeslider.month.october": "outubro", + "timeslider.month.november": "novembro", + "timeslider.month.december": "decembro", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor anónimo, other: autores anónimos ]}", + "pad.savedrevs.marked": "Esta revisión está agora marcada como revisión gardada", + "pad.userlist.entername": "Insira o seu nome", + "pad.userlist.unnamed": "anónimo", + "pad.userlist.guest": "Convidado", + "pad.userlist.deny": "Rexeitar", + "pad.userlist.approve": "Aprobar", + "pad.editbar.clearcolors": "Quere limpar as cores de identificación dos autores en todo o documento?", + "pad.impexp.importbutton": "Importar agora", + "pad.impexp.importing": "Importando...", + "pad.impexp.confirmimport": "A importación dun ficheiro ha sobrescribir o texto actual do documento. Está seguro de querer continuar?", + "pad.impexp.convertFailed": "Non somos capaces de importar o ficheiro. Utilice un formato de documento diferente ou copie e pegue manualmente", + "pad.impexp.uploadFailed": "Houbo un erro ao cargar o ficheiro; inténteo de novo", + "pad.impexp.importfailed": "Fallou a importación", + "pad.impexp.copypaste": "Copie e pegue", + "pad.impexp.exportdisabled": "A exportación en formato {{type}} está desactivada. Póñase en contacto co administrador do sistema se quere máis detalles." }
\ No newline at end of file diff --git a/src/locales/he.json b/src/locales/he.json index 7e5f3b04..908a2791 100644 --- a/src/locales/he.json +++ b/src/locales/he.json @@ -1,121 +1,125 @@ { - "@metadata": { - "authors": [ - "Amire80", - "Ofrahod" - ] - }, - "index.newPad": "\u05e4\u05e0\u05e7\u05e1 \u05d7\u05d3\u05e9", - "index.createOpenPad": "\u05d0\u05d5 \u05d9\u05e6\u05d9\u05e8\u05d4 \u05d0\u05d5 \u05e4\u05ea\u05d9\u05d7\u05d4 \u05e9\u05dc \u05e4\u05e0\u05e7\u05e1 \u05e2\u05dd \u05d1\u05e9\u05dd:", - "pad.toolbar.bold.title": "\u05d1\u05d5\u05dc\u05d8 (Ctrl-B)", - "pad.toolbar.italic.title": "\u05e0\u05d8\u05d5\u05d9 (Ctrl-I)", - "pad.toolbar.underline.title": "\u05e7\u05d5 \u05ea\u05d7\u05ea\u05d9 (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u05e7\u05d5 \u05de\u05d5\u05d7\u05e7", - "pad.toolbar.ol.title": "\u05e8\u05e9\u05d9\u05de\u05d4 \u05de\u05de\u05d5\u05e1\u05e4\u05e8\u05ea", - "pad.toolbar.ul.title": "\u05e8\u05e9\u05d9\u05de\u05d4", - "pad.toolbar.indent.title": "\u05d4\u05d6\u05d7\u05d4", - "pad.toolbar.unindent.title": "\u05e6\u05de\u05e6\u05d5\u05dd \u05d4\u05d6\u05d7\u05d4", - "pad.toolbar.undo.title": "\u05d1\u05d9\u05d8\u05d5\u05dc (Ctrl-Z)", - "pad.toolbar.redo.title": "\u05d1\u05d9\u05e6\u05d5\u05e2 \u05de\u05d7\u05d3\u05e9", - "pad.toolbar.clearAuthorship.title": "\u05e0\u05d9\u05e7\u05d5\u05d9 \u05e6\u05d1\u05e2\u05d9\u05dd", - "pad.toolbar.import_export.title": "\u05d9\u05d9\u05d1\u05d5\u05d0\/\u05d9\u05d9\u05e6\u05d0 \u05d1\u05ea\u05e1\u05d3\u05d9\u05e8\u05d9 \u05e7\u05d1\u05e6\u05d9\u05dd \u05e9\u05d5\u05e0\u05d9\u05dd", - "pad.toolbar.timeslider.title": "\u05d2\u05d5\u05dc\u05dc \u05d6\u05de\u05df", - "pad.toolbar.savedRevision.title": "\u05d2\u05e8\u05e1\u05d0\u05d5\u05ea \u05e9\u05de\u05d5\u05e8\u05d5\u05ea", - "pad.toolbar.settings.title": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea", - "pad.toolbar.embed.title": "\u05d4\u05d8\u05de\u05e2\u05ea \u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4", - "pad.toolbar.showusers.title": "\u05d4\u05e6\u05d2\u05ea \u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d1\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4", - "pad.colorpicker.save": "\u05e9\u05de\u05d9\u05e8\u05d4", - "pad.colorpicker.cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc", - "pad.loading": "\u05d8\u05e2\u05d9\u05e0\u05d4...", - "pad.passwordRequired": "\u05d3\u05e8\u05d5\u05e9\u05d4 \u05e1\u05e1\u05de\u05d4 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4", - "pad.permissionDenied": "\u05d0\u05d9\u05df \u05dc\u05da \u05d4\u05e8\u05e9\u05d0\u05d4 \u05dc\u05d2\u05e9\u05ea \u05dc\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4", - "pad.wrongPassword": "\u05e1\u05e1\u05de\u05ea\u05da \u05d4\u05d9\u05d9\u05ea\u05d4 \u05e9\u05d2\u05d5\u05d9\u05d4", - "pad.settings.padSettings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e4\u05e0\u05e7\u05e1", - "pad.settings.myView": "\u05d4\u05ea\u05e6\u05d5\u05d2\u05d4 \u05e9\u05dc\u05d9", - "pad.settings.stickychat": "\u05d4\u05e9\u05d9\u05d7\u05d4 \u05ea\u05de\u05d9\u05d3 \u05e2\u05dc \u05d4\u05de\u05e1\u05da", - "pad.settings.colorcheck": "\u05e6\u05d1\u05d9\u05e2\u05d4 \u05dc\u05e4\u05d9 \u05de\u05d7\u05d1\u05e8", - "pad.settings.linenocheck": "\u05de\u05e1\u05e4\u05e8\u05d9 \u05e9\u05d5\u05e8\u05d5\u05ea", - "pad.settings.fontType": "\u05e1\u05d5\u05d2 \u05d2\u05d5\u05e4\u05df:", - "pad.settings.fontType.normal": "\u05e8\u05d2\u05d9\u05dc", - "pad.settings.fontType.monospaced": "\u05d1\u05e8\u05d5\u05d7\u05d1 \u05e7\u05d1\u05d5\u05e2", - "pad.settings.globalView": "\u05ea\u05e6\u05d5\u05d2\u05d4 \u05dc\u05db\u05dc \u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd", - "pad.settings.language": "\u05e9\u05e4\u05d4:", - "pad.importExport.import_export": "\u05d9\u05d9\u05d1\u05d5\u05d0\/\u05d9\u05d9\u05e6\u05d5\u05d0", - "pad.importExport.import": "\u05d4\u05e2\u05dc\u05d0\u05ea \u05db\u05dc \u05e7\u05d5\u05d1\u05e5 \u05d8\u05e7\u05e1\u05d8 \u05d0\u05d5 \u05de\u05e1\u05de\u05da", - "pad.importExport.importSuccessful": "\u05d6\u05d4 \u05e2\u05d1\u05d3!", - "pad.importExport.export": "\u05d9\u05d9\u05e6\u05d5\u05d0 \u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05e0\u05d5\u05db\u05d7\u05d9 \u05d1\u05ea\u05d5\u05e8:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\u05d8\u05e7\u05e1\u05d8 \u05e8\u05d2\u05d9\u05dc", - "pad.importExport.exportword": "\u05de\u05d9\u05e7\u05e8\u05d5\u05e1\u05d5\u05e4\u05d8 \u05d5\u05d5\u05e8\u05d3", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\u05d1\u05d0\u05e4\u05e9\u05e8\u05d5\u05ea\u05da \u05dc\u05d9\u05d9\u05d1\u05d0 \u05de\u05d8\u05e7\u05e1\u05d8 \u05e4\u05e9\u05d5\u05d8 \u05d0\u05d5 \u05de\u05beHTML. \u05dc\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d9\u05d9\u05d1\u05d5\u05d0 \u05de\u05ea\u05e7\u05d3\u05de\u05d5\u05ea \u05d9\u05d5\u05ea\u05e8 \u05d9\u05e9 <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\">\u05dc\u05d4\u05ea\u05e7\u05d9\u05df \u05d0\u05ea abiword<\/a>.", - "pad.modals.connected": "\u05de\u05d7\u05d5\u05d1\u05db\u05e8.", - "pad.modals.reconnecting": "\u05de\u05ea\u05d1\u05e6\u05e2 \u05d7\u05d9\u05d1\u05d5\u05e8 \u05de\u05d7\u05d3\u05e9...", - "pad.modals.forcereconnect": "\u05d7\u05d9\u05d1\u05d5\u05e8 \u05db\u05e4\u05d5\u05d9 \u05de\u05d7\u05d3\u05e9", - "pad.modals.userdup": "\u05e4\u05ea\u05d5\u05d7 \u05d1\u05d7\u05dc\u05d5\u05df \u05d0\u05d7\u05e8", - "pad.modals.userdup.explanation": "\u05e0\u05e8\u05d0\u05d4 \u05e9\u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4 \u05e4\u05ea\u05d5\u05d7 \u05d1\u05d9\u05d5\u05ea\u05e8 \u05de\u05d7\u05dc\u05d5\u05df \u05d3\u05e4\u05d3\u05e4\u05df \u05d0\u05d7\u05d3 \u05d1\u05de\u05d7\u05e9\u05d1 \u05d4\u05d6\u05d4.", - "pad.modals.userdup.advice": "\u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05de\u05d7\u05d3\u05e9 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05d7\u05dc\u05d5\u05df \u05d4\u05d6\u05d4.", - "pad.modals.unauth": "\u05d0\u05d9\u05df \u05d4\u05e8\u05e9\u05d0\u05d4", - "pad.modals.unauth.explanation": "\u05d4\u05d4\u05e8\u05e9\u05d0\u05d5\u05ea \u05e9\u05dc\u05da \u05d4\u05e9\u05ea\u05e0\u05d5 \u05d1\u05d6\u05de\u05df \u05e9\u05e0\u05d9\u05e1\u05d9\u05ea \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8. \u05e0\u05d0 \u05dc\u05e0\u05e1\u05d5\u05ea \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05de\u05d7\u05d3\u05e9.", - "pad.modals.looping": "\u05dc\u05d0 \u05de\u05d7\u05d5\u05d1\u05e8.", - "pad.modals.looping.explanation": "\u05d9\u05e9 \u05d1\u05e2\u05d9\u05d5\u05ea \u05d7\u05d9\u05d1\u05d5\u05e8 \u05e2\u05dd \u05d4\u05e9\u05e8\u05ea \u05d4\u05de\u05ea\u05d0\u05dd.", - "pad.modals.looping.cause": "\u05d9\u05d9\u05ea\u05db\u05df \u05e9\u05d4\u05ea\u05d7\u05d1\u05e8\u05ea \u05d3\u05e8\u05da \u05d7\u05d5\u05de\u05ea\u05be\u05d0\u05e9 \u05d0\u05d5 \u05e9\u05e8\u05ea \u05de\u05ea\u05d5\u05d5\u05da \u05e9\u05d0\u05d9\u05e0\u05dd \u05de\u05ea\u05d0\u05d9\u05de\u05d9\u05dd.", - "pad.modals.initsocketfail": "\u05d0\u05d9\u05df \u05ea\u05e7\u05e9\u05d5\u05e8\u05d5\u05ea \u05dc\u05e9\u05e8\u05ea.", - "pad.modals.initsocketfail.explanation": "\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05dc\u05e9\u05e8\u05ea \u05d4\u05de\u05ea\u05d0\u05dd \u05dc\u05d0 \u05d4\u05e6\u05dc\u05d9\u05d7\u05d4.", - "pad.modals.initsocketfail.cause": "\u05d0\u05d5\u05dc\u05d9 \u05d6\u05d4 \u05d1\u05d2\u05dc\u05dc \u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da \u05d0\u05d5 \u05d7\u05d9\u05d1\u05d5\u05e8 \u05d4\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8 \u05e9\u05dc\u05da.", - "pad.modals.slowcommit": "\u05de\u05e0\u05d5\u05ea\u05e7.", - "pad.modals.slowcommit.explanation": "\u05d4\u05e9\u05e8\u05ea \u05d0\u05d9\u05e0\u05d5 \u05de\u05d2\u05d9\u05d1.", - "pad.modals.slowcommit.cause": "\u05d0\u05d5\u05dc\u05d9 \u05d6\u05d4 \u05d1\u05d2\u05dc\u05dc \u05d1\u05e2\u05d9\u05d5\u05ea \u05e2\u05dd \u05ea\u05e7\u05e9\u05d5\u05e8\u05ea \u05dc\u05e8\u05e9\u05ea.", - "pad.modals.deleted": "\u05e0\u05de\u05d7\u05e7.", - "pad.modals.deleted.explanation": "\u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4 \u05d4\u05d5\u05e1\u05e8.", - "pad.modals.disconnected": "\u05e0\u05d5\u05ea\u05e7\u05ea.", - "pad.modals.disconnected.explanation": "\u05d4\u05ea\u05e7\u05e9\u05d5\u05e8\u05ea \u05dc\u05e9\u05e8\u05ea \u05d0\u05d1\u05d3\u05d4", - "pad.modals.disconnected.cause": "\u05d9\u05d9\u05ea\u05db\u05df \u05e9\u05d4\u05e9\u05e8\u05ea \u05d0\u05d9\u05e0\u05d5 \u05d6\u05de\u05d9\u05df. \u05e0\u05d0 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e2 \u05dc\u05e0\u05d5 \u05d0\u05dd \u05d6\u05d4 \u05de\u05de\u05e9\u05d9\u05da \u05dc\u05e7\u05e8\u05d5\u05ea.", - "pad.share": "\u05e9\u05d9\u05ea\u05d5\u05e3 \u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4", - "pad.share.readonly": "\u05e7\u05d9\u05e9\u05d5\u05e8", - "pad.share.link": "\u05e7\u05d9\u05e9\u05d5\u05e8", - "pad.share.emebdcode": "\u05d4\u05d8\u05de\u05e2\u05ea \u05e7\u05d9\u05e9\u05d5\u05e8", - "pad.chat": "\u05e9\u05d9\u05d7\u05d4", - "pad.chat.title": "\u05e4\u05ea\u05d9\u05d7\u05ea \u05d4\u05e9\u05d9\u05d7\u05d4 \u05e9\u05dc \u05d4\u05e4\u05e0\u05e7\u05e1 \u05d4\u05d6\u05d4.", - "pad.chat.loadmessages": "\u05d8\u05e2\u05d9\u05e0\u05ea \u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05e0\u05d5\u05e1\u05e4\u05d5\u05ea", - "timeslider.pageTitle": "\u05d2\u05d5\u05dc\u05dc \u05d6\u05de\u05df \u05e9\u05dc {{appTitle}}", - "timeslider.toolbar.returnbutton": "\u05d7\u05d6\u05e8\u05d4 \u05d0\u05dc \u05d4\u05e4\u05e0\u05e7\u05e1", - "timeslider.toolbar.authors": "\u05db\u05d5\u05ea\u05d1\u05d9\u05dd:", - "timeslider.toolbar.authorsList": "\u05d0\u05d9\u05df \u05db\u05d5\u05ea\u05d1\u05d9\u05dd", - "timeslider.toolbar.exportlink.title": "\u05d9\u05e6\u05d5\u05d0", - "timeslider.exportCurrent": "\u05d9\u05d9\u05e6\u05d5\u05d0 \u05d4\u05db\u05e8\u05e1\u05d4 \u05d4\u05e0\u05d5\u05db\u05d7\u05d9\u05ea \u05d1\u05ea\u05d5\u05e8:", - "timeslider.version": "\u05d2\u05e8\u05e1\u05d4 {{version}}", - "timeslider.saved": "\u05e0\u05e9\u05de\u05e8\u05d4 \u05d1\u05be{{day}} \u05d1{{month}} {{year}}", - "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "\u05d9\u05e0\u05d5\u05d0\u05e8", - "timeslider.month.february": "\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8", - "timeslider.month.march": "\u05de\u05e8\u05e5", - "timeslider.month.april": "\u05d0\u05e4\u05e8\u05d9\u05dc", - "timeslider.month.may": "\u05de\u05d0\u05d9", - "timeslider.month.june": "\u05d9\u05d5\u05e0\u05d9", - "timeslider.month.july": "\u05d9\u05d5\u05dc\u05d9", - "timeslider.month.august": "\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8", - "timeslider.month.september": "\u05e1\u05e4\u05d8\u05de\u05d1\u05e8", - "timeslider.month.october": "\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8", - "timeslider.month.november": "\u05e0\u05d5\u05d1\u05de\u05d1\u05e8", - "timeslider.month.december": "\u05d3\u05e6\u05de\u05d1\u05e8", - "timeslider.unnamedauthor": "\u05db\u05d5\u05ea\u05d1 \u05d7\u05e1\u05e8\u05be\u05e9\u05dd \u05d0\u05d7\u05d3", - "timeslider.unnamedauthors": "{{num}} \u05db\u05d5\u05ea\u05d1\u05d9\u05dd \u05d7\u05e1\u05e8\u05d9\u05be\u05e9\u05dd", - "pad.savedrevs.marked": "\u05d2\u05e8\u05e1\u05d4 \u05d6\u05d5 \u05de\u05e1\u05d5\u05de\u05e0\u05ea \u05db\u05d2\u05e8\u05e1\u05d4 \u05e9\u05de\u05d5\u05e8\u05d4", - "pad.userlist.entername": "\u05e0\u05d0 \u05dc\u05d4\u05d6\u05d9\u05df \u05d0\u05ea \u05e9\u05de\u05da", - "pad.userlist.unnamed": "\u05dc\u05dc\u05d0 \u05e9\u05dd", - "pad.userlist.guest": "\u05d0\u05d5\u05e8\u05d7", - "pad.userlist.deny": "\u05dc\u05d3\u05d7\u05d5\u05ea", - "pad.userlist.approve": "\u05dc\u05d0\u05e9\u05e8", - "pad.editbar.clearcolors": "\u05dc\u05e0\u05e7\u05d5\u05ea \u05e6\u05d1\u05e2\u05d9\u05dd \u05dc\u05e1\u05d9\u05de\u05d5\u05df \u05db\u05d5\u05ea\u05d1\u05d9\u05dd \u05d1\u05db\u05dc \u05d4\u05de\u05e1\u05de\u05da?", - "pad.impexp.importbutton": "\u05dc\u05d9\u05d9\u05d1\u05d0 \u05db\u05e2\u05ea", - "pad.impexp.importing": "\u05d9\u05d9\u05d1\u05d5\u05d0...", - "pad.impexp.confirmimport": "\u05d9\u05d1\u05d5\u05d0 \u05e9\u05dc \u05e7\u05d5\u05d1\u05e5 \u05d9\u05d1\u05d8\u05dc \u05d0\u05ea \u05d4\u05d8\u05e7\u05e1\u05d8 \u05d4\u05e0\u05d5\u05db\u05d7\u05d9 \u05d1\u05e4\u05e0\u05e7\u05e1. \u05d4\u05d0\u05dd \u05d0\u05ea\u05dd \u05d1\u05d8\u05d5\u05d7\u05d9\u05dd \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05db\u05dd \u05dc\u05d4\u05de\u05e9\u05d9\u05da?", - "pad.impexp.convertFailed": "\u05dc\u05d0 \u05d4\u05ea\u05d7\u05dc\u05dc\u05d0 \u05d4\u05e6\u05dc\u05d7\u05e0\u05d5 \u05dc\u05d9\u05d9\u05d1\u05d0 \u05d0\u05ea \u05d4\u05e7\u05d5\u05d1\u05e5 \u05d4\u05d6\u05d4. \u05e0\u05d0 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05ea\u05e1\u05d3\u05d9\u05e8 \u05de\u05e1\u05de\u05da \u05e9\u05d5\u05e0\u05d4 \u05d0\u05d5 \u05dc\u05d4\u05e2\u05ea\u05d9\u05e7 \u05d5\u05dc\u05d4\u05d3\u05d1\u05d9\u05e7 \u05d9\u05d3\u05e0\u05d9\u05ea", - "pad.impexp.uploadFailed": "\u05d4\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4, \u05e0\u05d0 \u05dc\u05e0\u05e1\u05d5\u05ea \u05e9\u05d5\u05d1", - "pad.impexp.importfailed": "\u05d4\u05d9\u05d9\u05d1\u05d5\u05d0 \u05e0\u05db\u05e9\u05dc", - "pad.impexp.copypaste": "\u05e0\u05d0 \u05dc\u05d4\u05e2\u05ea\u05d9\u05e7 \u05d5\u05dc\u05d4\u05d3\u05d1\u05d9\u05e7", - "pad.impexp.exportdisabled": "\u05d9\u05d9\u05e6\u05d5\u05d0 \u05d1\u05ea\u05e1\u05d3\u05d9\u05e8 {{type}} \u05d0\u05d9\u05e0\u05d5 \u05e4\u05e2\u05d9\u05dc. \u05de\u05e0\u05d4\u05dc \u05d4\u05de\u05e2\u05e8\u05db\u05ea \u05e9\u05dc\u05da \u05d9\u05d5\u05db\u05dc \u05dc\u05e1\u05e4\u05e8 \u05dc\u05da \u05e2\u05dc \u05d6\u05d4 \u05e2\u05d5\u05d3 \u05e4\u05e8\u05d8\u05d9\u05dd." + "@metadata": { + "authors": { + "0": "Amire80", + "1": "Ofrahod", + "3": "YaronSh", + "4": "תומר ט" + } + }, + "index.newPad": "פנקס חדש", + "index.createOpenPad": "ליצור או לפתוח פנקס בשם:", + "pad.toolbar.bold.title": "בולט (Ctrl-B)", + "pad.toolbar.italic.title": "נטוי (Ctrl-I)", + "pad.toolbar.underline.title": "קו תחתי (Ctrl-U)", + "pad.toolbar.strikethrough.title": "קו מוחק", + "pad.toolbar.ol.title": "רשימה ממוספרת", + "pad.toolbar.ul.title": "רשימה", + "pad.toolbar.indent.title": "הזחה", + "pad.toolbar.unindent.title": "צמצום הזחה", + "pad.toolbar.undo.title": "ביטול (Ctrl-Z)", + "pad.toolbar.redo.title": "ביצוע מחדש", + "pad.toolbar.clearAuthorship.title": "ניקוי צבעים", + "pad.toolbar.import_export.title": "ייבוא/ייצוא בתסדירי קבצים שונים", + "pad.toolbar.timeslider.title": "גולל זמן", + "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.passwordRequired": "דרושה ססמה כדי לגשת לפנקס הזה", + "pad.permissionDenied": "אין לך הרשאה לגשת לפנקס הזה", + "pad.wrongPassword": "ססמתך הייתה שגויה", + "pad.settings.padSettings": "הגדרות פנקס", + "pad.settings.myView": "התצוגה שלי", + "pad.settings.stickychat": "השיחה תמיד על המסך", + "pad.settings.colorcheck": "צביעה לפי מחבר", + "pad.settings.linenocheck": "מספרי שורות", + "pad.settings.rtlcheck": "לקרוא את התוכן מימין לשמאל?", + "pad.settings.fontType": "סוג גופן:", + "pad.settings.fontType.normal": "רגיל", + "pad.settings.fontType.monospaced": "ברוחב קבוע", + "pad.settings.globalView": "תצוגה לכל המשתמשים", + "pad.settings.language": "שפה:", + "pad.importExport.import_export": "ייבוא/ייצוא", + "pad.importExport.import": "העלאת כל קובץ טקסט או מסמך", + "pad.importExport.importSuccessful": "זה עבד!", + "pad.importExport.export": "ייצוא הפנקס הנוכחי בתור:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "טקסט רגיל", + "pad.importExport.exportword": "מיקרוסופט וורד", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "באפשרותך לייבא מטקסט פשוט או מ־HTML. לאפשרויות ייבוא מתקדמות יותר יש \u003Ca 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\"\u003Eלהתקין את abiword\u003C/a\u003E.", + "pad.modals.connected": "מחובר.", + "pad.modals.reconnecting": "מתבצע חיבור מחדש...", + "pad.modals.forcereconnect": "לכפות חיבור מחדש", + "pad.modals.userdup": "פתוח בחלון אחר", + "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": "קישור", + "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.saved": "נשמרה ב־{{day}} ב{{month}} {{year}}", + "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", + "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": "דצמבר", + "timeslider.unnamedauthors": "{[plural(num) one: יוצר אחד, other: {{num}} יוצרים ]} ללא שם", + "pad.savedrevs.marked": "גרסה זו מסומנת כגרסה שמורה", + "pad.userlist.entername": "נא להזין את שמך", + "pad.userlist.unnamed": "ללא שם", + "pad.userlist.guest": "אורח", + "pad.userlist.deny": "לדחות", + "pad.userlist.approve": "לאשר", + "pad.editbar.clearcolors": "לנקות צבעים לסימון כותבים בכל המסמך?", + "pad.impexp.importbutton": "לייבא כעת", + "pad.impexp.importing": "ייבוא...", + "pad.impexp.confirmimport": "ייבוא של קובץ יבטל את הטקסט הנוכחי בפנקס. האם ברצונך להמשיך?", + "pad.impexp.convertFailed": "לא הצלחנו לייבא את הקובץ הזה. נא להשתמש בתסדיר מסמך שונה או להעתיק ולהדביק ידנית", + "pad.impexp.uploadFailed": "ההעלאה נכשלה, נא לנסות שוב", + "pad.impexp.importfailed": "הייבוא נכשל", + "pad.impexp.copypaste": "נא להעתיק ולהדביק", + "pad.impexp.exportdisabled": "ייצוא בתסדיר {{type}} אינו פעיל. מנהל המערכת שלך יוכל לספר לך על זה עוד פרטים." }
\ No newline at end of file diff --git a/src/locales/hu.json b/src/locales/hu.json index 6e667300..8c01edf0 100644 --- a/src/locales/hu.json +++ b/src/locales/hu.json @@ -1,111 +1,109 @@ { - "@metadata": { - "authors": { - "0": "Dj", - "1": "Misibacsi", - "2": "R-Joe", - "4": "Tgr" - } - }, - "index.newPad": "\u00daj notesz", - "index.createOpenPad": "vagy notesz l\u00e9trehoz\u00e1sa ezen a n\u00e9ven:", - "pad.toolbar.bold.title": "F\u00e9lk\u00f6v\u00e9r (Ctrl-B)", - "pad.toolbar.italic.title": "D\u0151lt (Ctrl-I)", - "pad.toolbar.underline.title": "Al\u00e1h\u00faz\u00e1s (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u00c1th\u00faz\u00e1s", - "pad.toolbar.ol.title": "Sz\u00e1mozott lista", - "pad.toolbar.ul.title": "Sz\u00e1mozatlan lista", - "pad.toolbar.indent.title": "Beh\u00faz\u00e1s n\u00f6vel\u00e9se", - "pad.toolbar.unindent.title": "Beh\u00faz\u00e1s cs\u00f6kkent\u00e9se", - "pad.toolbar.undo.title": "Vissza (Ctrl-Z)", - "pad.toolbar.redo.title": "\u00dajra (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Szerz\u0151k sz\u00ednez\u00e9s\u00e9nek kikapcsol\u00e1sa", - "pad.toolbar.import_export.title": "Import\u00e1l\u00e1s\/export\u00e1l\u00e1s k\u00fcl\u00f6nb\u00f6z\u0151 f\u00e1jlform\u00e1tumokb\u00f3l\/ba", - "pad.toolbar.timeslider.title": "Id\u0151cs\u00faszka", - "pad.toolbar.savedRevision.title": "Mentett \u00e1llapotok", - "pad.toolbar.settings.title": "Be\u00e1ll\u00edt\u00e1sok", - "pad.toolbar.embed.title": "Notesz be\u00e1gyaz\u00e1sa", - "pad.toolbar.showusers.title": "Notesz felhaszn\u00e1l\u00f3inak megmutat\u00e1sa", - "pad.colorpicker.save": "Ment\u00e9s", - "pad.colorpicker.cancel": "M\u00e9gsem", - "pad.loading": "Bet\u00f6lt\u00e9s\u2026", - "pad.passwordRequired": "Jelsz\u00f3ra van sz\u00fcks\u00e9ged ezen notesz el\u00e9r\u00e9s\u00e9hez", - "pad.permissionDenied": "Nincs enged\u00e9lyed ezen notesz el\u00e9r\u00e9s\u00e9hez", - "pad.wrongPassword": "A jelsz\u00f3 rossz volt", - "pad.settings.padSettings": "Notesz be\u00e1ll\u00edt\u00e1sai", - "pad.settings.myView": "Az \u00e9n n\u00e9zetem", - "pad.settings.stickychat": "Mindig mutasd a cseveg\u00e9s-dobozt", - "pad.settings.colorcheck": "Szerz\u0151k sz\u00ednei", - "pad.settings.linenocheck": "Sorok sz\u00e1moz\u00e1sa", - "pad.settings.fontType": "Bet\u0171t\u00edpus:", - "pad.settings.fontType.normal": "Szok\u00e1sos", - "pad.settings.fontType.monospaced": "\u00cdr\u00f3g\u00e9pes", - "pad.settings.globalView": "Glob\u00e1lis n\u00e9zet", - "pad.settings.language": "Nyelv:", - "pad.importExport.import_export": "Import\/export", - "pad.importExport.import": "Tetsz\u0151leges sz\u00f6vegf\u00e1jl vagy dokumentum felt\u00f6lt\u00e9se", - "pad.importExport.importSuccessful": "Siker!", - "pad.importExport.export": "Jelenlegi notesz export\u00e1l\u00e1sa \u00edgy:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Sima sz\u00f6veg", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document form\u00e1tum)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.modals.connected": "Kapcsol\u00f3dva.", - "pad.modals.reconnecting": "\u00dajrakapcsol\u00f3d\u00e1s a noteszhez...", - "pad.modals.forcereconnect": "\u00dajrakapcsol\u00f3d\u00e1s k\u00e9nyszer\u00edt\u00e9se", - "pad.modals.userdup.explanation": "\u00dagy t\u0171nik, ez a notesz t\u00f6bb k\u00fcl\u00f6nb\u00f6z\u0151 b\u00f6ng\u00e9sz\u0151ablakban is meg van nyitva a sz\u00e1m\u00edt\u00f3g\u00e9peden.", - "pad.modals.userdup.advice": "Kapcsol\u00f3dj \u00fajra, ha ezt az ablakot akarod haszn\u00e1lni.", - "pad.modals.unauth": "Nincs r\u00e1 jogosults\u00e1god", - "pad.modals.unauth.explanation": "A jogosults\u00e1gaid v\u00e1ltoztak, mik\u00f6zben n\u00e9zted ezt az oldalt. Pr\u00f3b\u00e1lj \u00fajrakapcsol\u00f3dni.", - "pad.modals.looping": "Kapcsolat bontva.", - "pad.modals.looping.explanation": "Nem siker\u00fclt a kommunik\u00e1ci\u00f3 a szinkroniz\u00e1ci\u00f3s szerverrel.", - "pad.modals.looping.cause": "Tal\u00e1n egy t\u00fal szigor\u00fa t\u0171zfalon vagy proxyn kereszt\u00fcl kapcsol\u00f3dt\u00e1l az internetre.", - "pad.modals.initsocketfail": "A szerver nem \u00e9rhet\u0151 el.", - "pad.modals.initsocketfail.explanation": "Nem siker\u00fclt kapcsol\u00f3dni a szinkroniz\u00e1ci\u00f3s szerverhez.", - "pad.modals.initsocketfail.cause": "Val\u00f3sz\u00edn\u0171leg a b\u00f6ng\u00e9sz\u0151ddel vagy az internetkapcsolatoddal van probl\u00e9ma.", - "pad.modals.slowcommit": "Megszakadt a kapcsolat.", - "pad.modals.slowcommit.explanation": "A szerver nem v\u00e1laszol.", - "pad.modals.slowcommit.cause": "Val\u00f3sz\u00edn\u0171leg az internetkapcsolattal van probl\u00e9ma.", - "pad.modals.deleted": "T\u00f6r\u00f6lve.", - "pad.modals.deleted.explanation": "Ez a notesz el lett t\u00e1vol\u00edtva.", - "pad.modals.disconnected": "Kapcsolat bontva.", - "pad.modals.disconnected.explanation": "A szerverrel val\u00f3 kapcsolat megsz\u0171nt.", - "pad.modals.disconnected.cause": "Lehet, hogy a szerver nem el\u00e9rhet\u0151. K\u00e9rlek, \u00e9rtes\u00edts minket, ha a probl\u00e9ma tart\u00f3san fenn\u00e1ll.", - "pad.share": "Notesz megoszt\u00e1sa", - "pad.share.readonly": "Csak olvashat\u00f3", - "pad.share.link": "Hivatkoz\u00e1s", - "pad.share.emebdcode": "URL be\u00e1gyaz\u00e1sa", - "pad.chat": "Cseveg\u00e9s", - "pad.chat.title": "A noteszhez tartoz\u00f3 cseveg\u00e9s megnyit\u00e1sa.", - "timeslider.pageTitle": "{{appTitle}} id\u0151cs\u00faszka", - "timeslider.toolbar.returnbutton": "Vissza a noteszhez", - "timeslider.toolbar.authors": "Szerz\u0151k:", - "timeslider.toolbar.authorsList": "Nincsenek szerz\u0151k", - "timeslider.exportCurrent": "Jelenlegi v\u00e1ltozat export\u00e1l\u00e1sa \u00edgy:", - "timeslider.version": "{{version}} verzi\u00f3", - "timeslider.saved": "{{year}}. {{month}} {{day}}-n elmentve", - "timeslider.dateformat": "{{year}}\/{{month}}\/{{day}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "janu\u00e1r", - "timeslider.month.february": "febru\u00e1r", - "timeslider.month.march": "m\u00e1rcius", - "timeslider.month.april": "\u00e1prilis", - "timeslider.month.may": "m\u00e1jus", - "timeslider.month.june": "j\u00fanius", - "timeslider.month.july": "j\u00falius", - "timeslider.month.august": "augusztus", - "timeslider.month.september": "szeptember", - "timeslider.month.october": "okt\u00f3ber", - "timeslider.month.november": "november", - "timeslider.month.december": "december", - "pad.userlist.entername": "Add meg a nevedet", - "pad.userlist.unnamed": "n\u00e9vtelen", - "pad.userlist.guest": "Vend\u00e9g", - "pad.userlist.deny": "Megtagad", - "pad.userlist.approve": "J\u00f3v\u00e1hagy", - "pad.impexp.importbutton": "Import\u00e1l\u00e1s most", - "pad.impexp.importing": "Import\u00e1l\u00e1s\u2026", - "pad.impexp.uploadFailed": "A felt\u00f6lt\u00e9s sikertelen, pr\u00f3b\u00e1ld meg \u00fajra", - "pad.impexp.importfailed": "Az import\u00e1l\u00e1s nem siker\u00fclt" + "@metadata": { + "authors": { + "0": "Dj", + "1": "Misibacsi", + "2": "R-Joe", + "4": "Tgr" + } + }, + "index.newPad": "Új notesz", + "index.createOpenPad": "vagy notesz létrehozása ezen a néven:", + "pad.toolbar.bold.title": "Félkövér (Ctrl-B)", + "pad.toolbar.italic.title": "Dőlt (Ctrl-I)", + "pad.toolbar.underline.title": "Aláhúzás (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Áthúzás", + "pad.toolbar.ol.title": "Számozott lista", + "pad.toolbar.ul.title": "Számozatlan lista", + "pad.toolbar.indent.title": "Behúzás növelése", + "pad.toolbar.unindent.title": "Behúzás csökkentése", + "pad.toolbar.undo.title": "Vissza (Ctrl-Z)", + "pad.toolbar.redo.title": "Újra (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Szerzők színezésének kikapcsolása", + "pad.toolbar.import_export.title": "Importálás/exportálás különböző fájlformátumokból/ba", + "pad.toolbar.timeslider.title": "Időcsúszka", + "pad.toolbar.savedRevision.title": "Mentett állapotok", + "pad.toolbar.settings.title": "Beállítások", + "pad.toolbar.embed.title": "Notesz beágyazása", + "pad.toolbar.showusers.title": "Notesz felhasználóinak megmutatása", + "pad.colorpicker.save": "Mentés", + "pad.colorpicker.cancel": "Mégsem", + "pad.loading": "Betöltés…", + "pad.passwordRequired": "Jelszóra van szükséged ezen notesz eléréséhez", + "pad.permissionDenied": "Nincs engedélyed ezen notesz eléréséhez", + "pad.wrongPassword": "A jelszó rossz volt", + "pad.settings.padSettings": "Notesz beállításai", + "pad.settings.myView": "Az én nézetem", + "pad.settings.stickychat": "Mindig mutasd a csevegés-dobozt", + "pad.settings.colorcheck": "Szerzők színei", + "pad.settings.linenocheck": "Sorok számozása", + "pad.settings.fontType": "Betűtípus:", + "pad.settings.fontType.normal": "Szokásos", + "pad.settings.fontType.monospaced": "Írógépes", + "pad.settings.globalView": "Globális nézet", + "pad.settings.language": "Nyelv:", + "pad.importExport.import_export": "Import/export", + "pad.importExport.import": "Tetszőleges szövegfájl vagy dokumentum feltöltése", + "pad.importExport.importSuccessful": "Siker!", + "pad.importExport.export": "Jelenlegi notesz exportálása így:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Sima szöveg", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document formátum)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.connected": "Kapcsolódva.", + "pad.modals.reconnecting": "Újrakapcsolódás a noteszhez...", + "pad.modals.forcereconnect": "Újrakapcsolódás kényszerítése", + "pad.modals.userdup.explanation": "Úgy tűnik, ez a notesz több különböző böngészőablakban is meg van nyitva a számítógépeden.", + "pad.modals.userdup.advice": "Kapcsolódj újra, ha ezt az ablakot akarod használni.", + "pad.modals.unauth": "Nincs rá jogosultságod", + "pad.modals.unauth.explanation": "A jogosultságaid változtak, miközben nézted ezt az oldalt. Próbálj újrakapcsolódni.", + "pad.modals.looping.explanation": "Nem sikerült a kommunikáció a szinkronizációs szerverrel.", + "pad.modals.looping.cause": "Talán egy túl szigorú tűzfalon vagy proxyn keresztül kapcsolódtál az internetre.", + "pad.modals.initsocketfail": "A szerver nem érhető el.", + "pad.modals.initsocketfail.explanation": "Nem sikerült kapcsolódni a szinkronizációs szerverhez.", + "pad.modals.initsocketfail.cause": "Valószínűleg a böngésződdel vagy az internetkapcsolatoddal van probléma.", + "pad.modals.slowcommit.explanation": "A szerver nem válaszol.", + "pad.modals.slowcommit.cause": "Valószínűleg az internetkapcsolattal van probléma.", + "pad.modals.deleted": "Törölve.", + "pad.modals.deleted.explanation": "Ez a notesz el lett távolítva.", + "pad.modals.disconnected": "Kapcsolat bontva.", + "pad.modals.disconnected.explanation": "A szerverrel való kapcsolat megszűnt.", + "pad.modals.disconnected.cause": "Lehet, hogy a szerver nem elérhető. Kérlek, értesíts minket, ha a probléma tartósan fennáll.", + "pad.share": "Notesz megosztása", + "pad.share.readonly": "Csak olvasható", + "pad.share.link": "Hivatkozás", + "pad.share.emebdcode": "URL beágyazása", + "pad.chat": "Csevegés", + "pad.chat.title": "A noteszhez tartozó csevegés megnyitása.", + "timeslider.pageTitle": "{{appTitle}} időcsúszka", + "timeslider.toolbar.returnbutton": "Vissza a noteszhez", + "timeslider.toolbar.authors": "Szerzők:", + "timeslider.toolbar.authorsList": "Nincsenek szerzők", + "timeslider.exportCurrent": "Jelenlegi változat exportálása így:", + "timeslider.version": "{{version}} verzió", + "timeslider.saved": "{{year}}. {{month}} {{day}}-n elmentve", + "timeslider.dateformat": "{{year}}/{{month}}/{{day}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "január", + "timeslider.month.february": "február", + "timeslider.month.march": "március", + "timeslider.month.april": "április", + "timeslider.month.may": "május", + "timeslider.month.june": "június", + "timeslider.month.july": "július", + "timeslider.month.august": "augusztus", + "timeslider.month.september": "szeptember", + "timeslider.month.october": "október", + "timeslider.month.november": "november", + "timeslider.month.december": "december", + "pad.userlist.entername": "Add meg a nevedet", + "pad.userlist.unnamed": "névtelen", + "pad.userlist.guest": "Vendég", + "pad.userlist.deny": "Megtagad", + "pad.userlist.approve": "Jóváhagy", + "pad.impexp.importbutton": "Importálás most", + "pad.impexp.importing": "Importálás…", + "pad.impexp.uploadFailed": "A feltöltés sikertelen, próbáld meg újra", + "pad.impexp.importfailed": "Az importálás nem sikerült" }
\ No newline at end of file diff --git a/src/locales/ia.json b/src/locales/ia.json index 21b1d291..3be72d9a 100644 --- a/src/locales/ia.json +++ b/src/locales/ia.json @@ -1,92 +1,122 @@ { - "@metadata": { - "authors": [ - "McDutchie" - ] - }, - "index.newPad": "Nove pad", - "index.createOpenPad": "o crear\/aperir un pad con le nomine:", - "pad.toolbar.bold.title": "Grasse (Ctrl-B)", - "pad.toolbar.italic.title": "Italic (Ctrl-I)", - "pad.toolbar.underline.title": "Sublinear (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Cancellar", - "pad.toolbar.ol.title": "Lista ordinate", - "pad.toolbar.ul.title": "Lista non ordinate", - "pad.toolbar.indent.title": "Indentar", - "pad.toolbar.unindent.title": "Disindentar", - "pad.toolbar.undo.title": "Disfacer (Ctrl-Z)", - "pad.toolbar.redo.title": "Refacer (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Rader colores de autor", - "pad.toolbar.import_export.title": "Importar\/exportar in differente formatos de file", - "pad.toolbar.timeslider.title": "Glissa-tempore", - "pad.toolbar.savedRevision.title": "Versiones salveguardate", - "pad.toolbar.settings.title": "Configuration", - "pad.toolbar.embed.title": "Incorporar iste pad", - "pad.toolbar.showusers.title": "Monstrar le usatores de iste pad", - "pad.colorpicker.save": "Salveguardar", - "pad.colorpicker.cancel": "Cancellar", - "pad.loading": "Cargamento\u2026", - "pad.settings.padSettings": "Configuration del pad", - "pad.settings.myView": "Mi vista", - "pad.settings.stickychat": "Chat sempre visibile", - "pad.settings.colorcheck": "Colores de autor", - "pad.settings.linenocheck": "Numeros de linea", - "pad.settings.fontType": "Typo de litteras:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monospatial", - "pad.settings.globalView": "Vista global", - "pad.settings.language": "Lingua:", - "pad.importExport.import_export": "Importar\/Exportar", - "pad.importExport.import": "Incargar qualcunque file de texto o documento", - "pad.importExport.export": "Exportar le pad actual como:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Texto simple", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.modals.connected": "Connectite.", - "pad.modals.reconnecting": "Reconnecte a tu pad\u2026", - "pad.modals.forcereconnect": "Fortiar reconnexion", - "pad.modals.userdup.explanation": "Iste pad pare esser aperte in plus de un fenestra de navigator in iste computator.", - "pad.modals.userdup.advice": "Reconnecte pro usar iste fenestra.", - "pad.modals.unauth": "Non autorisate", - "pad.modals.unauth.explanation": "Tu permissiones ha cambiate durante que tu legeva iste pagina. Tenta reconnecter.", - "pad.modals.looping": "Disconnectite.", - "pad.modals.looping.explanation": "Il ha problemas de communication con le servitor de synchronisation.", - "pad.modals.looping.cause": "Il es possibile que tu connexion passa per un firewall o proxy incompatibile.", - "pad.modals.initsocketfail": "Le servitor es inattingibile.", - "pad.modals.initsocketfail.explanation": "Impossibile connecter al servitor de synchronisation.", - "pad.modals.initsocketfail.cause": "Isto es probabilemente causate per un problema con tu navigator o connexion a internet.", - "pad.modals.slowcommit": "Disconnectite.", - "pad.modals.slowcommit.explanation": "Le servitor non responde.", - "pad.modals.slowcommit.cause": "Isto pote esser causate per problemas con le connexion al rete.", - "pad.modals.deleted": "Delite.", - "pad.modals.deleted.explanation": "Iste pad ha essite removite.", - "pad.modals.disconnected": "Tu ha essite disconnectite.", - "pad.modals.disconnected.explanation": "Le connexion al servitor ha essite perdite.", - "pad.modals.disconnected.cause": "Le servitor pote esser indisponibile. Per favor notifica nos si isto continua a producer se.", - "pad.share": "Diffunder iste pad", - "pad.share.readonly": "Lectura solmente", - "pad.share.link": "Ligamine", - "pad.share.emebdcode": "Codice de incorporation", - "pad.chat": "Chat", - "pad.chat.title": "Aperir le chat pro iste pad.", - "timeslider.pageTitle": "Glissa-tempore pro {{appTitle}}", - "timeslider.toolbar.returnbutton": "Retornar al pad", - "timeslider.toolbar.authors": "Autores:", - "timeslider.toolbar.authorsList": "Nulle autor", - "timeslider.exportCurrent": "Exportar le version actual como:", - "timeslider.month.january": "januario", - "timeslider.month.february": "februario", - "timeslider.month.march": "martio", - "timeslider.month.april": "april", - "timeslider.month.may": "maio", - "timeslider.month.june": "junio", - "timeslider.month.july": "julio", - "timeslider.month.august": "augusto", - "timeslider.month.september": "septembre", - "timeslider.month.october": "octobre", - "timeslider.month.november": "novembre", - "timeslider.month.december": "decembre" + "@metadata": { + "authors": [ + "McDutchie" + ] + }, + "index.newPad": "Nove pad", + "index.createOpenPad": "o crear/aperir un pad con le nomine:", + "pad.toolbar.bold.title": "Grasse (Ctrl-B)", + "pad.toolbar.italic.title": "Italic (Ctrl-I)", + "pad.toolbar.underline.title": "Sublinear (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Cancellar", + "pad.toolbar.ol.title": "Lista ordinate", + "pad.toolbar.ul.title": "Lista non ordinate", + "pad.toolbar.indent.title": "Indentar", + "pad.toolbar.unindent.title": "Disindentar", + "pad.toolbar.undo.title": "Disfacer (Ctrl-Z)", + "pad.toolbar.redo.title": "Refacer (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Rader colores de autor", + "pad.toolbar.import_export.title": "Importar/exportar in differente formatos de file", + "pad.toolbar.timeslider.title": "Glissa-tempore", + "pad.toolbar.savedRevision.title": "Version salveguardate", + "pad.toolbar.settings.title": "Configuration", + "pad.toolbar.embed.title": "Divider e incorporar iste pad", + "pad.toolbar.showusers.title": "Monstrar le usatores de iste pad", + "pad.colorpicker.save": "Salveguardar", + "pad.colorpicker.cancel": "Cancellar", + "pad.loading": "Cargamento…", + "pad.passwordRequired": "Un contrasigno es necessari pro acceder a iste pad", + "pad.permissionDenied": "Tu non ha le permission de acceder a iste pad", + "pad.wrongPassword": "Le contrasigno es incorrecte", + "pad.settings.padSettings": "Configuration del pad", + "pad.settings.myView": "Mi vista", + "pad.settings.stickychat": "Chat sempre visibile", + "pad.settings.colorcheck": "Colores de autor", + "pad.settings.linenocheck": "Numeros de linea", + "pad.settings.rtlcheck": "Leger le contento de dextra a sinistra?", + "pad.settings.fontType": "Typo de litteras:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monospatial", + "pad.settings.globalView": "Vista global", + "pad.settings.language": "Lingua:", + "pad.importExport.import_export": "Importar/Exportar", + "pad.importExport.import": "Incargar qualcunque file de texto o documento", + "pad.importExport.importSuccessful": "Succedite!", + "pad.importExport.export": "Exportar le pad actual como:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Texto simple", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Tu pote solmente importar files in formato de texto simple o HTML. Pro functionalitate de importation plus extense, \u003Ca 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\"\u003Einstalla AbiWord\u003C/a\u003E.", + "pad.modals.connected": "Connectite.", + "pad.modals.reconnecting": "Reconnecte a tu pad…", + "pad.modals.forcereconnect": "Fortiar reconnexion", + "pad.modals.userdup": "Aperte in un altere fenestra", + "pad.modals.userdup.explanation": "Iste pad pare esser aperte in plus de un fenestra de navigator in iste computator.", + "pad.modals.userdup.advice": "Reconnecte pro usar iste fenestra.", + "pad.modals.unauth": "Non autorisate", + "pad.modals.unauth.explanation": "Tu permissiones ha cambiate durante que tu legeva iste pagina. Tenta reconnecter.", + "pad.modals.looping.explanation": "Il ha problemas de communication con le servitor de synchronisation.", + "pad.modals.looping.cause": "Il es possibile que tu connexion passa per un firewall o proxy incompatibile.", + "pad.modals.initsocketfail": "Le servitor es inattingibile.", + "pad.modals.initsocketfail.explanation": "Impossibile connecter al servitor de synchronisation.", + "pad.modals.initsocketfail.cause": "Isto es probabilemente causate per un problema con tu navigator o connexion a internet.", + "pad.modals.slowcommit.explanation": "Le servitor non responde.", + "pad.modals.slowcommit.cause": "Isto pote esser causate per problemas con le connexion al rete.", + "pad.modals.badChangeset.explanation": "Un modification que tu ha facite ha essite classificate como incorrecte per le servitor de synchronisation.", + "pad.modals.badChangeset.cause": "Isto pote esser causate per un configuration incorrecte del servitor o per alcun altere comportamento impreviste. Per favor contacta le administrator del servicio si tu pensa que se tracta de un error. Tenta reconnecter te pro continuar a modificar.", + "pad.modals.corruptPad.explanation": "Le pad al qual tu tenta acceder es corrumpite.", + "pad.modals.corruptPad.cause": "Isto pote esser debite a un configuration incorrecte del servitor o a alcun altere comportamento impreviste. Per favor contacta le administrator del servicio.", + "pad.modals.deleted": "Delite.", + "pad.modals.deleted.explanation": "Iste pad ha essite removite.", + "pad.modals.disconnected": "Tu ha essite disconnectite.", + "pad.modals.disconnected.explanation": "Le connexion al servitor ha essite perdite.", + "pad.modals.disconnected.cause": "Le servitor pote esser indisponibile. Per favor notifica le administrator del servicio si isto continua a producer se.", + "pad.share": "Diffunder iste pad", + "pad.share.readonly": "Lectura solmente", + "pad.share.link": "Ligamine", + "pad.share.emebdcode": "Codice de incorporation", + "pad.chat": "Chat", + "pad.chat.title": "Aperir le chat pro iste pad.", + "pad.chat.loadmessages": "Cargar plus messages", + "timeslider.pageTitle": "Glissa-tempore pro {{appTitle}}", + "timeslider.toolbar.returnbutton": "Retornar al pad", + "timeslider.toolbar.authors": "Autores:", + "timeslider.toolbar.authorsList": "Nulle autor", + "timeslider.toolbar.exportlink.title": "Exportar", + "timeslider.exportCurrent": "Exportar le version actual como:", + "timeslider.version": "Version {{version}}", + "timeslider.saved": "Salveguardate le {{day}} de {{month}} {{year}}", + "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "januario", + "timeslider.month.february": "februario", + "timeslider.month.march": "martio", + "timeslider.month.april": "april", + "timeslider.month.may": "maio", + "timeslider.month.june": "junio", + "timeslider.month.july": "julio", + "timeslider.month.august": "augusto", + "timeslider.month.september": "septembre", + "timeslider.month.october": "octobre", + "timeslider.month.november": "novembre", + "timeslider.month.december": "decembre", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor, other: autores ]} sin nomine", + "pad.savedrevs.marked": "Iste version es ora marcate como version salveguardate", + "pad.userlist.entername": "Entra tu nomine", + "pad.userlist.unnamed": "sin nomine", + "pad.userlist.guest": "Invitato", + "pad.userlist.deny": "Refusar", + "pad.userlist.approve": "Approbar", + "pad.editbar.clearcolors": "Rader le colores de autor in tote le documento?", + "pad.impexp.importbutton": "Importar ora", + "pad.impexp.importing": "Importation in curso…", + "pad.impexp.confirmimport": "Le importation de un file superscribera le texto actual del pad. Es tu secur de voler continuar?", + "pad.impexp.convertFailed": "Nos non ha potite importar iste file. Per favor usa un altere formato de documento o copia e colla le texto manualmente.", + "pad.impexp.uploadFailed": "Le incargamento ha fallite. Per favor reproba.", + "pad.impexp.importfailed": "Importation fallite", + "pad.impexp.copypaste": "Per favor copia e colla", + "pad.impexp.exportdisabled": "Le exportation in formato {{type}} es disactivate. Per favor contacta le administrator del systema pro detalios." }
\ No newline at end of file diff --git a/src/locales/it.json b/src/locales/it.json index 05569a32..8e98a684 100644 --- a/src/locales/it.json +++ b/src/locales/it.json @@ -1,123 +1,125 @@ { - "@metadata": { - "authors": { - "0": "Beta16", - "1": "Gianfranco", - "2": "Muxator", - "4": "Vituzzu" - } - }, - "index.newPad": "Nuovo Pad", - "index.createOpenPad": "o creare o aprire un Pad con il nome:", - "pad.toolbar.bold.title": "Grassetto (Ctrl-B)", - "pad.toolbar.italic.title": "Corsivo (Ctrl-I)", - "pad.toolbar.underline.title": "Sottolineato (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Barrato", - "pad.toolbar.ol.title": "Elenco numerato", - "pad.toolbar.ul.title": "Elenco puntato", - "pad.toolbar.indent.title": "Rientro", - "pad.toolbar.unindent.title": "Riduci rientro", - "pad.toolbar.undo.title": "Annulla (Ctrl-Z)", - "pad.toolbar.redo.title": "Ripeti (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Elimina i colori che indicano gli autori", - "pad.toolbar.import_export.title": "Importa\/esporta da\/a diversi formati di file", - "pad.toolbar.timeslider.title": "Presentazione cronologia", - "pad.toolbar.savedRevision.title": "Revisioni salvate", - "pad.toolbar.settings.title": "Impostazioni", - "pad.toolbar.embed.title": "Incorpora questo Pad", - "pad.toolbar.showusers.title": "Visualizza gli utenti su questo Pad", - "pad.colorpicker.save": "Salva", - "pad.colorpicker.cancel": "Annulla", - "pad.loading": "Caricamento in corso\u2026", - "pad.passwordRequired": "Per accedere a questo Pad \u00e8 necessaria una password", - "pad.permissionDenied": "Non si dispone dei permessi necessari per accedere a questo Pad", - "pad.wrongPassword": "La password \u00e8 sbagliata", - "pad.settings.padSettings": "Impostazioni del Pad", - "pad.settings.myView": "Mia visualizzazione", - "pad.settings.stickychat": "Chat sempre sullo schermo", - "pad.settings.colorcheck": "Colori che indicano gli autori", - "pad.settings.linenocheck": "Numeri di riga", - "pad.settings.fontType": "Tipo di carattere:", - "pad.settings.fontType.normal": "Normale", - "pad.settings.fontType.monospaced": "A larghezza fissa", - "pad.settings.globalView": "Visualizzazione globale", - "pad.settings.language": "Lingua:", - "pad.importExport.import_export": "Importazione\/esportazione", - "pad.importExport.import": "Carica un file di testo o un documento", - "pad.importExport.importSuccessful": "Riuscito!", - "pad.importExport.export": "Esportare il Pad corrente come:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Solo testo", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\u00c8 possibile importare solo i formati di testo semplice o HTML. Per metodi pi\u00f9 avanzati di importazione <a href=https:\/\/github.com\/broadcast\/etherpad-lite\/wiki\/How-to-enable-importing and exporting-different file formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord>installare Abiword<\/a>.", - "pad.modals.connected": "Connesso.", - "pad.modals.reconnecting": "Riconnessione al pad in corso...", - "pad.modals.forcereconnect": "Forza la riconnessione", - "pad.modals.userdup": "Aperto in un'altra finestra", - "pad.modals.userdup.explanation": "Questo Pad sembra essere aperto in pi\u00f9 di una finestra del browser su questo computer.", - "pad.modals.userdup.advice": "Riconnettiti per utilizzare invece questa finestra.", - "pad.modals.unauth": "Non autorizzato", - "pad.modals.unauth.explanation": "Le tue autorizzazioni sono state modificate durante la visualizzazione di questa pagina. Prova a riconnetterti.", - "pad.modals.looping": "Disconnesso.", - "pad.modals.looping.explanation": "Ci sono problemi di comunicazione con il server di sincronizzazione.", - "pad.modals.looping.cause": "Forse sei connesso attraverso un firewall o un server proxy non compatibili.", - "pad.modals.initsocketfail": "Il server non \u00e8 raggiungibile.", - "pad.modals.initsocketfail.explanation": "Impossibile connettersi al server di sincronizzazione.", - "pad.modals.initsocketfail.cause": "Questo probabilmente \u00e8 dovuto a un problema con il tuo browser o con la tua connessione a internet.", - "pad.modals.slowcommit": "Disconnesso.", - "pad.modals.slowcommit.explanation": "Il server non risponde.", - "pad.modals.slowcommit.cause": "Questo potrebbe essere dovuto a problemi con la connettivit\u00e0 di rete.", - "pad.modals.deleted": "Cancellato.", - "pad.modals.deleted.explanation": "Questo Pad \u00e8 stato rimosso.", - "pad.modals.disconnected": "Sei stato disconnesso.", - "pad.modals.disconnected.explanation": "La connessione al server \u00e8 stata persa", - "pad.modals.disconnected.cause": "Il server potrebbe essere non disponibile. Per favore, fateci sapere se il problema persiste.", - "pad.share": "Condividi questo Pad", - "pad.share.readonly": "Sola lettura", - "pad.share.link": "Link", - "pad.share.emebdcode": "Incorpora URL", - "pad.chat": "Chat", - "pad.chat.title": "Apri la chat per questo Pad.", - "pad.chat.loadmessages": "Carica altri messaggi", - "timeslider.pageTitle": "Cronologia {{appTitle}}", - "timeslider.toolbar.returnbutton": "Ritorna al Pad", - "timeslider.toolbar.authors": "Autori:", - "timeslider.toolbar.authorsList": "Nessun autore", - "timeslider.toolbar.exportlink.title": "esporta", - "timeslider.exportCurrent": "Esporta la versione corrente come:", - "timeslider.version": "Versione {{version}}", - "timeslider.saved": "Salvato {{day}} {{month}} {{year}}", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "gennaio", - "timeslider.month.february": "febbraio", - "timeslider.month.march": "marzo", - "timeslider.month.april": "aprile", - "timeslider.month.may": "maggio", - "timeslider.month.june": "giugno", - "timeslider.month.july": "luglio", - "timeslider.month.august": "agosto", - "timeslider.month.september": "settembre", - "timeslider.month.october": "ottobre", - "timeslider.month.november": "novembre", - "timeslider.month.december": "dicembre", - "timeslider.unnamedauthor": "{{num}} autore senza nome", - "timeslider.unnamedauthors": "{{num}} autori senza nome", - "pad.savedrevs.marked": "Questa revisione \u00e8 ora contrassegnata come una versione salvata", - "pad.userlist.entername": "Inserisci il tuo nome", - "pad.userlist.unnamed": "senza nome", - "pad.userlist.guest": "Ospite", - "pad.userlist.deny": "Nega", - "pad.userlist.approve": "Approva", - "pad.editbar.clearcolors": "Eliminare i colori degli autori sull'intero documento?", - "pad.impexp.importbutton": "Importa ora", - "pad.impexp.importing": "Importazione in corso...", - "pad.impexp.confirmimport": "L'importazione del file sovrascriver\u00e0 il testo attuale del Pad. Sei sicuro di voler procedere?", - "pad.impexp.convertFailed": "Non \u00e8 stato possibile importare questo file. Utilizzare un formato differente o copiare ed incollare a mano", - "pad.impexp.uploadFailed": "Caricamento non riuscito, riprovare", - "pad.impexp.importfailed": "Importazione fallita", - "pad.impexp.copypaste": "Si prega di copiare e incollare", - "pad.impexp.exportdisabled": "L'esportazione come {{type}} \u00e8 disabilitata. Contattare l'amministratore per i dettagli." + "@metadata": { + "authors": { + "0": "Beta16", + "1": "Gianfranco", + "2": "Muxator", + "4": "Vituzzu" + } + }, + "index.newPad": "Nuovo Pad", + "index.createOpenPad": "o creare o aprire un Pad con il nome:", + "pad.toolbar.bold.title": "Grassetto (Ctrl-B)", + "pad.toolbar.italic.title": "Corsivo (Ctrl-I)", + "pad.toolbar.underline.title": "Sottolineato (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Barrato", + "pad.toolbar.ol.title": "Elenco numerato", + "pad.toolbar.ul.title": "Elenco puntato", + "pad.toolbar.indent.title": "Rientro", + "pad.toolbar.unindent.title": "Riduci rientro", + "pad.toolbar.undo.title": "Annulla (Ctrl-Z)", + "pad.toolbar.redo.title": "Ripeti (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Elimina i colori che indicano gli autori", + "pad.toolbar.import_export.title": "Importa/esporta da/a diversi formati di file", + "pad.toolbar.timeslider.title": "Presentazione cronologia", + "pad.toolbar.savedRevision.title": "Versione salvata", + "pad.toolbar.settings.title": "Impostazioni", + "pad.toolbar.embed.title": "Condividi ed incorpora questo Pad", + "pad.toolbar.showusers.title": "Visualizza gli utenti su questo Pad", + "pad.colorpicker.save": "Salva", + "pad.colorpicker.cancel": "Annulla", + "pad.loading": "Caricamento in corso…", + "pad.passwordRequired": "Per accedere a questo Pad è necessaria una password", + "pad.permissionDenied": "Non si dispone dei permessi necessari per accedere a questo Pad", + "pad.wrongPassword": "La password è sbagliata", + "pad.settings.padSettings": "Impostazioni del Pad", + "pad.settings.myView": "Mia visualizzazione", + "pad.settings.stickychat": "Chat sempre sullo schermo", + "pad.settings.colorcheck": "Colori che indicano gli autori", + "pad.settings.linenocheck": "Numeri di riga", + "pad.settings.rtlcheck": "Leggere il contenuto da destra a sinistra?", + "pad.settings.fontType": "Tipo di carattere:", + "pad.settings.fontType.normal": "Normale", + "pad.settings.fontType.monospaced": "A larghezza fissa", + "pad.settings.globalView": "Visualizzazione globale", + "pad.settings.language": "Lingua:", + "pad.importExport.import_export": "Importazione/esportazione", + "pad.importExport.import": "Carica un file di testo o un documento", + "pad.importExport.importSuccessful": "Riuscito!", + "pad.importExport.export": "Esportare il Pad corrente come:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Solo testo", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "È possibile importare solo i formati di testo semplice o HTML. Per metodi più avanzati di importazione \u003Ca href=https://github.com/broadcast/etherpad-lite/wiki/How-to-enable-importing and exporting-different file formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\u003Einstallare Abiword\u003C/a\u003E.", + "pad.modals.connected": "Connesso.", + "pad.modals.reconnecting": "Riconnessione al pad in corso...", + "pad.modals.forcereconnect": "Forza la riconnessione", + "pad.modals.userdup": "Aperto in un'altra finestra", + "pad.modals.userdup.explanation": "Questo Pad sembra essere aperto in più di una finestra del browser su questo computer.", + "pad.modals.userdup.advice": "Riconnettiti per utilizzare invece questa finestra.", + "pad.modals.unauth": "Non autorizzato", + "pad.modals.unauth.explanation": "Le tue autorizzazioni sono state modificate durante la visualizzazione di questa pagina. Prova a riconnetterti.", + "pad.modals.looping.explanation": "Ci sono problemi di comunicazione con il server di sincronizzazione.", + "pad.modals.looping.cause": "Forse sei connesso attraverso un firewall o un server proxy non compatibili.", + "pad.modals.initsocketfail": "Il server non è raggiungibile.", + "pad.modals.initsocketfail.explanation": "Impossibile connettersi al server di sincronizzazione.", + "pad.modals.initsocketfail.cause": "Questo probabilmente è dovuto a un problema con il tuo browser o con la tua connessione a internet.", + "pad.modals.slowcommit.explanation": "Il server non risponde.", + "pad.modals.slowcommit.cause": "Questo potrebbe essere dovuto a problemi con la connettività di rete.", + "pad.modals.badChangeset.explanation": "Una modifica che hai fatto è stata considerata illegale dal server di sincronizzazione.", + "pad.modals.badChangeset.cause": "Ciò potrebbe essere causato da una errata configurazione del server o qualche altro comportamento imprevisto. Si prega di contattare l'amministratore del servizio, se si ritiene che questo sia un errore. Prova a riconnetterti per tentare di continuare a modificare.", + "pad.modals.corruptPad.explanation": "Il pad a cui stai tentando di accedere è danneggiato.", + "pad.modals.corruptPad.cause": "Ciò potrebbe essere causato da una errata configurazione del server o qualche altro comportamento imprevisto. Si prega di contattare l'amministratore del servizio.", + "pad.modals.deleted": "Cancellato.", + "pad.modals.deleted.explanation": "Questo Pad è stato rimosso.", + "pad.modals.disconnected": "Sei stato disconnesso.", + "pad.modals.disconnected.explanation": "La connessione al server è stata persa", + "pad.modals.disconnected.cause": "Il server potrebbe essere non disponibile. Informa l'amministrazione del servizio se il problema persiste.", + "pad.share": "Condividi questo Pad", + "pad.share.readonly": "Sola lettura", + "pad.share.link": "Link", + "pad.share.emebdcode": "Incorpora URL", + "pad.chat": "Chat", + "pad.chat.title": "Apri la chat per questo Pad.", + "pad.chat.loadmessages": "Carica altri messaggi", + "timeslider.pageTitle": "Cronologia {{appTitle}}", + "timeslider.toolbar.returnbutton": "Ritorna al Pad", + "timeslider.toolbar.authors": "Autori:", + "timeslider.toolbar.authorsList": "Nessun autore", + "timeslider.toolbar.exportlink.title": "esporta", + "timeslider.exportCurrent": "Esporta la versione corrente come:", + "timeslider.version": "Versione {{version}}", + "timeslider.saved": "Salvato {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "gennaio", + "timeslider.month.february": "febbraio", + "timeslider.month.march": "marzo", + "timeslider.month.april": "aprile", + "timeslider.month.may": "maggio", + "timeslider.month.june": "giugno", + "timeslider.month.july": "luglio", + "timeslider.month.august": "agosto", + "timeslider.month.september": "settembre", + "timeslider.month.october": "ottobre", + "timeslider.month.november": "novembre", + "timeslider.month.december": "dicembre", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autore, other: autori ]} senza nome", + "pad.savedrevs.marked": "Questa revisione è ora contrassegnata come una versione salvata", + "pad.userlist.entername": "Inserisci il tuo nome", + "pad.userlist.unnamed": "senza nome", + "pad.userlist.guest": "Ospite", + "pad.userlist.deny": "Nega", + "pad.userlist.approve": "Approva", + "pad.editbar.clearcolors": "Eliminare i colori degli autori sull'intero documento?", + "pad.impexp.importbutton": "Importa ora", + "pad.impexp.importing": "Importazione in corso...", + "pad.impexp.confirmimport": "L'importazione del file sovrascriverà il testo attuale del Pad. Sei sicuro di voler procedere?", + "pad.impexp.convertFailed": "Non è stato possibile importare questo file. Utilizzare un formato differente o copiare ed incollare a mano", + "pad.impexp.uploadFailed": "Caricamento non riuscito, riprovare", + "pad.impexp.importfailed": "Importazione fallita", + "pad.impexp.copypaste": "Si prega di copiare e incollare", + "pad.impexp.exportdisabled": "L'esportazione come {{type}} è disabilitata. Contattare l'amministratore per i dettagli." }
\ No newline at end of file diff --git a/src/locales/ja.json b/src/locales/ja.json index c2f6da27..b8aeb079 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1,120 +1,122 @@ { - "@metadata": { - "authors": [ - "Shirayuki" - ] - }, - "index.newPad": "\u65b0\u898f\u4f5c\u6210", - "index.createOpenPad": "\u307e\u305f\u306f\u4f5c\u6210\/\u7de8\u96c6\u3059\u308b\u30d1\u30c3\u30c9\u540d\u3092\u5165\u529b:", - "pad.toolbar.bold.title": "\u592a\u5b57 (Ctrl-B)", - "pad.toolbar.italic.title": "\u659c\u4f53 (Ctrl-I)", - "pad.toolbar.underline.title": "\u4e0b\u7dda (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u53d6\u308a\u6d88\u3057\u7dda", - "pad.toolbar.ol.title": "\u756a\u53f7\u4ed8\u304d\u30ea\u30b9\u30c8", - "pad.toolbar.ul.title": "\u756a\u53f7\u306a\u3057\u30ea\u30b9\u30c8", - "pad.toolbar.indent.title": "\u30a4\u30f3\u30c7\u30f3\u30c8", - "pad.toolbar.unindent.title": "\u30a4\u30f3\u30c7\u30f3\u30c8\u89e3\u9664", - "pad.toolbar.undo.title": "\u5143\u306b\u623b\u3059 (Ctrl-Z)", - "pad.toolbar.redo.title": "\u3084\u308a\u76f4\u3057 (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "\u4f5c\u8005\u306e\u8272\u5206\u3051\u3092\u6d88\u53bb", - "pad.toolbar.import_export.title": "\u4ed6\u306e\u5f62\u5f0f\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u30a4\u30f3\u30dd\u30fc\u30c8\/\u30a8\u30af\u30b9\u30dd\u30fc\u30c8", - "pad.toolbar.timeslider.title": "\u30bf\u30a4\u30e0\u30b9\u30e9\u30a4\u30c0\u30fc", - "pad.toolbar.savedRevision.title": "\u4fdd\u5b58\u6e08\u307f\u306e\u7248", - "pad.toolbar.settings.title": "\u8a2d\u5b9a", - "pad.toolbar.embed.title": "\u3053\u306e\u30d1\u30c3\u30c9\u3092\u57cb\u3081\u8fbc\u3080", - "pad.toolbar.showusers.title": "\u3053\u306e\u30d1\u30c3\u30c9\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u8868\u793a", - "pad.colorpicker.save": "\u4fdd\u5b58", - "pad.colorpicker.cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb", - "pad.loading": "\u8aad\u307f\u8fbc\u307f\u4e2d...", - "pad.passwordRequired": "\u3053\u306e\u30d1\u30c3\u30c9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u5fc5\u8981\u3067\u3059", - "pad.permissionDenied": "\u3042\u306a\u305f\u306b\u306f\u3053\u306e\u30d1\u30c3\u30c9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u304c\u3042\u308a\u307e\u305b\u3093", - "pad.wrongPassword": "\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3059", - "pad.settings.padSettings": "\u30d1\u30c3\u30c9\u306e\u8a2d\u5b9a", - "pad.settings.myView": "\u500b\u4eba\u8a2d\u5b9a", - "pad.settings.stickychat": "\u753b\u9762\u306b\u30c1\u30e3\u30c3\u30c8\u3092\u5e38\u306b\u8868\u793a", - "pad.settings.colorcheck": "\u4f5c\u8005\u306e\u8272\u5206\u3051", - "pad.settings.linenocheck": "\u884c\u756a\u53f7", - "pad.settings.fontType": "\u30d5\u30a9\u30f3\u30c8\u306e\u7a2e\u985e:", - "pad.settings.fontType.normal": "\u901a\u5e38", - "pad.settings.fontType.monospaced": "\u56fa\u5b9a\u5e45", - "pad.settings.globalView": "\u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a", - "pad.settings.language": "\u8a00\u8a9e:", - "pad.importExport.import_export": "\u30a4\u30f3\u30dd\u30fc\u30c8\/\u30a8\u30af\u30b9\u30dd\u30fc\u30c8", - "pad.importExport.import": "\u3042\u3089\u3086\u308b\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3084\u6587\u66f8\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059", - "pad.importExport.importSuccessful": "\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002", - "pad.importExport.export": "\u73fe\u5728\u306e\u30d1\u30c3\u30c9\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3059\u308b\u5f62\u5f0f:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u307e\u305f\u306f HTML \u30d5\u30a1\u30a4\u30eb\u304b\u3089\u306e\u307f\u30a4\u30f3\u30dd\u30fc\u30c8\u3067\u304d\u307e\u3059\u3002\u3088\u308a\u9ad8\u5ea6\u306a\u30a4\u30f3\u30dd\u30fc\u30c8\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001<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\">abiword \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/a>\u3057\u3066\u304f\u3060\u3055\u3044\u3002", - "pad.modals.connected": "\u63a5\u7d9a\u3055\u308c\u307e\u3057\u305f\u3002", - "pad.modals.reconnecting": "\u30d1\u30c3\u30c9\u306b\u518d\u63a5\u7d9a\u4e2d...", - "pad.modals.forcereconnect": "\u5f37\u5236\u7684\u306b\u518d\u63a5\u7d9a", - "pad.modals.userdup": "\u5225\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u958b\u304b\u308c\u3066\u3044\u307e\u3059", - "pad.modals.userdup.explanation": "\u3053\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u306e\u8907\u6570\u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001\u3053\u306e\u30d1\u30c3\u30c9\u3092\u958b\u3044\u3066\u3044\u308b\u3088\u3046\u3067\u3059\u3002", - "pad.modals.userdup.advice": "\u4ee3\u308f\u308a\u306b\u3053\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u518d\u63a5\u7d9a\u3057\u307e\u3059\u3002", - "pad.modals.unauth": "\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093", - "pad.modals.unauth.explanation": "\u3053\u306e\u30da\u30fc\u30b8\u306e\u95b2\u89a7\u4e2d\u306b\u3042\u306a\u305f\u306e\u6a29\u9650\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f\u3002\u518d\u63a5\u7d9a\u3092\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002", - "pad.modals.looping": "\u5207\u65ad\u3055\u308c\u307e\u3057\u305f\u3002", - "pad.modals.looping.explanation": "\u540c\u671f\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u901a\u4fe1\u306b\u554f\u984c\u70b9\u304c\u3042\u308a\u307e\u3059\u3002", - "pad.modals.looping.cause": "\u3054\u4f7f\u7528\u4e2d\u306e\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u307e\u305f\u306f\u30d7\u30ed\u30ad\u30b7\u3068\u306f\u4e92\u63db\u6027\u304c\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002", - "pad.modals.initsocketfail": "\u30b5\u30fc\u30d0\u30fc\u306b\u5230\u9054\u3067\u304d\u307e\u305b\u3093\u3002", - "pad.modals.initsocketfail.explanation": "\u540c\u671f\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002", - "pad.modals.initsocketfail.cause": "\u3053\u308c\u306f\u3054\u4f7f\u7528\u4e2d\u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u3084\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u63a5\u7d9a\u306e\u554f\u984c\u304c\u539f\u56e0\u3067\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002", - "pad.modals.slowcommit": "\u5207\u65ad\u3055\u308c\u307e\u3057\u305f\u3002", - "pad.modals.slowcommit.explanation": "\u30b5\u30fc\u30d0\u30fc\u304c\u5fdc\u7b54\u3057\u307e\u305b\u3093\u3002", - "pad.modals.slowcommit.cause": "\u3053\u308c\u306f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u63a5\u7d9a\u306e\u554f\u984c\u304c\u539f\u56e0\u3067\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002", - "pad.modals.deleted": "\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u3002", - "pad.modals.deleted.explanation": "\u3053\u306e\u30d1\u30c3\u30c9\u306f\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u3002", - "pad.modals.disconnected": "\u5207\u65ad\u3055\u308c\u307e\u3057\u305f\u3002", - "pad.modals.disconnected.explanation": "\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u63a5\u7d9a\u304c\u5931\u308f\u308c\u307e\u3057\u305f", - "pad.modals.disconnected.cause": "\u30b5\u30fc\u30d0\u30fc\u306b\u5230\u9054\u3067\u304d\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u554f\u984c\u304c\u89e3\u6c7a\u3057\u306a\u3044\u5834\u5408\u306f\u304a\u77e5\u3089\u305b\u304f\u3060\u3055\u3044\u3002", - "pad.share": "\u3053\u306e\u30d1\u30c3\u30c9\u3092\u5171\u6709", - "pad.share.readonly": "\u8aad\u307f\u53d6\u308a\u5c02\u7528", - "pad.share.link": "\u30ea\u30f3\u30af", - "pad.share.emebdcode": "\u57cb\u3081\u8fbc\u307f\u7528 URL", - "pad.chat": "\u30c1\u30e3\u30c3\u30c8", - "pad.chat.title": "\u3053\u306e\u30d1\u30c3\u30c9\u306e\u30c1\u30e3\u30c3\u30c8\u3092\u958b\u304d\u307e\u3059\u3002", - "pad.chat.loadmessages": "\u305d\u306e\u4ed6\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8aad\u307f\u8fbc\u3080", - "timeslider.pageTitle": "{{appTitle}} \u30bf\u30a4\u30e0\u30b9\u30e9\u30a4\u30c0\u30fc", - "timeslider.toolbar.returnbutton": "\u30d1\u30c3\u30c9\u306b\u623b\u308b", - "timeslider.toolbar.authors": "\u4f5c\u8005:", - "timeslider.toolbar.authorsList": "\u4f5c\u8005\u306a\u3057", - "timeslider.toolbar.exportlink.title": "\u30a8\u30af\u30b9\u30dd\u30fc\u30c8", - "timeslider.exportCurrent": "\u73fe\u5728\u306e\u7248\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3059\u308b\u5f62\u5f0f:", - "timeslider.version": "\u30d0\u30fc\u30b8\u30e7\u30f3 {{version}}", - "timeslider.saved": "| {{year}}\u5e74{{month}}{{day}}\u65e5\u306b\u4fdd\u5b58", - "timeslider.dateformat": "{{year}}\u5e74{{month}}{{day}}\u65e5 {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "1\u6708", - "timeslider.month.february": "2\u6708", - "timeslider.month.march": "3\u6708", - "timeslider.month.april": "4\u6708", - "timeslider.month.may": "5\u6708", - "timeslider.month.june": "6\u6708", - "timeslider.month.july": "7\u6708", - "timeslider.month.august": "8\u6708", - "timeslider.month.september": "9\u6708", - "timeslider.month.october": "10\u6708", - "timeslider.month.november": "11\u6708", - "timeslider.month.december": "12\u6708", - "timeslider.unnamedauthor": "{{num}} \u4eba\u306e\u533f\u540d\u306e\u4f5c\u8005", - "timeslider.unnamedauthors": "{{num}} \u4eba\u306e\u533f\u540d\u306e\u4f5c\u8005", - "pad.savedrevs.marked": "\u3053\u306e\u7248\u3092\u3001\u4fdd\u5b58\u6e08\u307f\u306e\u7248\u3068\u3057\u3066\u30de\u30fc\u30af\u3057\u307e\u3057\u305f\u3002", - "pad.userlist.entername": "\u540d\u524d\u3092\u5165\u529b", - "pad.userlist.unnamed": "\u540d\u524d\u306a\u3057", - "pad.userlist.guest": "\u30b2\u30b9\u30c8", - "pad.userlist.deny": "\u62d2\u5426", - "pad.userlist.approve": "\u627f\u8a8d", - "pad.editbar.clearcolors": "\u6587\u66f8\u5168\u4f53\u306e\u4f5c\u8005\u306e\u8272\u5206\u3051\u3092\u6d88\u53bb\u3057\u307e\u3059\u304b?", - "pad.impexp.importbutton": "\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b", - "pad.impexp.importing": "\u30a4\u30f3\u30dd\u30fc\u30c8\u4e2d...", - "pad.impexp.confirmimport": "\u30d5\u30a1\u30a4\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u3068\u3001\u30d1\u30c3\u30c9\u306e\u73fe\u5728\u306e\u30c6\u30ad\u30b9\u30c8\u304c\u4e0a\u66f8\u304d\u3055\u308c\u307e\u3059\u3002\u672c\u5f53\u306b\u7d9a\u884c\u3057\u307e\u3059\u304b?", - "pad.impexp.convertFailed": "\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4ed6\u306e\u6587\u66f8\u5f62\u5f0f\u3092\u4f7f\u7528\u3059\u308b\u304b\u3001\u624b\u4f5c\u696d\u3067\u30b3\u30d4\u30fc & \u30da\u30fc\u30b9\u30c8\u3057\u3066\u304f\u3060\u3055\u3044", - "pad.impexp.uploadFailed": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044", - "pad.impexp.importfailed": "\u30a4\u30f3\u30dd\u30fc\u30c8\u306b\u5931\u6557\u3057\u307e\u3057\u305f", - "pad.impexp.copypaste": "\u30b3\u30d4\u30fc & \u30da\u30fc\u30b9\u30c8\u3057\u3066\u304f\u3060\u3055\u3044", - "pad.impexp.exportdisabled": "{{type}}\u5f62\u5f0f\u3067\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u306f\u7121\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u8a73\u7d30\u306f\u30b7\u30b9\u30c6\u30e0\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002" + "@metadata": { + "authors": [ + "Shirayuki" + ] + }, + "index.newPad": "新規作成", + "index.createOpenPad": "または作成/編集するパッド名を入力:", + "pad.toolbar.bold.title": "太字 (Ctrl-B)", + "pad.toolbar.italic.title": "斜体 (Ctrl-I)", + "pad.toolbar.underline.title": "下線 (Ctrl-U)", + "pad.toolbar.strikethrough.title": "取り消し線", + "pad.toolbar.ol.title": "番号付きリスト", + "pad.toolbar.ul.title": "番号なしリスト", + "pad.toolbar.indent.title": "インデント (Tab)", + "pad.toolbar.unindent.title": "インデント解除 (Shift+Tab)", + "pad.toolbar.undo.title": "元に戻す (Ctrl-Z)", + "pad.toolbar.redo.title": "やり直し (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "作者の色分けを消去", + "pad.toolbar.import_export.title": "他の形式のファイルのインポート/エクスポート", + "pad.toolbar.timeslider.title": "タイムスライダー", + "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.passwordRequired": "このパッドにアクセスするにはパスワードが必要です", + "pad.permissionDenied": "あなたにはこのパッドへのアクセス許可がありません", + "pad.wrongPassword": "パスワードが間違っています", + "pad.settings.padSettings": "パッドの設定", + "pad.settings.myView": "個人設定", + "pad.settings.stickychat": "画面にチャットを常に表示", + "pad.settings.colorcheck": "作者の色分け", + "pad.settings.linenocheck": "行番号", + "pad.settings.rtlcheck": "右横書きにする", + "pad.settings.fontType": "フォントの種類:", + "pad.settings.fontType.normal": "通常", + "pad.settings.fontType.monospaced": "固定幅", + "pad.settings.globalView": "グローバル設定", + "pad.settings.language": "言語:", + "pad.importExport.import_export": "インポート/エクスポート", + "pad.importExport.import": "あらゆるテキストファイルや文書をアップロードできます", + "pad.importExport.importSuccessful": "完了しました。", + "pad.importExport.export": "現在のパッドをエクスポートする形式:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "プレーンテキスト", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "プレーンテキストまたは HTML ファイルからのみインポートできます。より高度なインポート機能を使用するには、\u003Ca 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\"\u003Eabiword をインストール\u003C/a\u003Eしてください。", + "pad.modals.connected": "接続されました。", + "pad.modals.reconnecting": "パッドに再接続中...", + "pad.modals.forcereconnect": "強制的に再接続", + "pad.modals.userdup": "別のウィンドウで開かれています", + "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": "リンク", + "pad.share.emebdcode": "埋め込み用 URL", + "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.saved": "| {{year}}年{{month}}{{day}}日に保存", + "timeslider.dateformat": "{{year}}年{{month}}月{{day}}日 {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "1月", + "timeslider.month.february": "2月", + "timeslider.month.march": "3月", + "timeslider.month.april": "4月", + "timeslider.month.may": "5月", + "timeslider.month.june": "6月", + "timeslider.month.july": "7月", + "timeslider.month.august": "8月", + "timeslider.month.september": "9月", + "timeslider.month.october": "10月", + "timeslider.month.november": "11月", + "timeslider.month.december": "12月", + "timeslider.unnamedauthors": "{{num}} 人の匿名の{[plural(num) other: 作者 ]}", + "pad.savedrevs.marked": "この版を、保存済みの版としてマークしました。", + "pad.userlist.entername": "名前を入力", + "pad.userlist.unnamed": "名前なし", + "pad.userlist.guest": "ゲスト", + "pad.userlist.deny": "拒否", + "pad.userlist.approve": "承認", + "pad.editbar.clearcolors": "文書全体の作者の色分けを消去しますか?", + "pad.impexp.importbutton": "インポートする", + "pad.impexp.importing": "インポート中...", + "pad.impexp.confirmimport": "ファイルをインポートすると、パッドの現在のテキストが上書きされます。本当に続行しますか?", + "pad.impexp.convertFailed": "このファイルをインポートできませんでした。他の文書形式を使用するか、手作業でコピー \u0026 ペーストしてください", + "pad.impexp.uploadFailed": "アップロードに失敗しました。もう一度お試しください", + "pad.impexp.importfailed": "インポートに失敗しました", + "pad.impexp.copypaste": "コピー \u0026 ペーストしてください", + "pad.impexp.exportdisabled": "{{type}}形式でのエクスポートは無効になっています。詳細はシステム管理者にお問い合わせください。" }
\ No newline at end of file diff --git a/src/locales/km.json b/src/locales/km.json new file mode 100644 index 00000000..700ae199 --- /dev/null +++ b/src/locales/km.json @@ -0,0 +1,52 @@ +{ + "@metadata": { + "authors": [ + "វ័ណថារិទ្ធ" + ] + }, + "index.newPad": "ផេតថ្មី", + "index.createOpenPad": "ឬបង្កើត/បើកផេតដែលមានឈ្មោះ៖", + "pad.toolbar.bold.title": "ដិត (Ctrl-B)", + "pad.toolbar.italic.title": "ទ្រេត (Ctrl-I)", + "pad.toolbar.underline.title": "គូសបន្ទាត់ (Ctrl-U)", + "pad.toolbar.strikethrough.title": "ឆូតចោល", + "pad.toolbar.ol.title": "បញ្ជីតាមតម្រៀប", + "pad.toolbar.ul.title": "បញ្ជីមិនតាមតម្រៀប", + "pad.toolbar.indent.title": "ខិតចូលក្នុង", + "pad.toolbar.unindent.title": "ខិតចេញក្រៅ", + "pad.toolbar.undo.title": "អាន់ឌូ (Ctrl-Z)", + "pad.toolbar.redo.title": "រីឌូ (Ctrl-Y)", + "pad.toolbar.import_export.title": "នាំចូល/នាំចេញ ពី/ទៅប្រភេទឯកសារផ្សេងទៀត", + "pad.toolbar.settings.title": "ការកំណត់", + "pad.colorpicker.save": "រក្សាទុក", + "pad.colorpicker.cancel": "បោះបង់", + "pad.loading": "កំពុងផ្ទុក…", + "pad.settings.fontType": "ប្រភេទពុម្ពអក្សរ៖", + "pad.settings.fontType.normal": "ធម្មតា", + "pad.settings.language": "ភាសា៖", + "pad.importExport.import_export": "នាំចូល/នាំចេញ", + "pad.importExport.importSuccessful": "ដោយជោគជ័យ!", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Plain text", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.connected": "បានតភ្ជាប់។", + "pad.share.link": "តំណភ្ជាប់", + "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.guest": "ភ្ញៀវ", + "pad.impexp.importbutton": "នាំចូលឥឡូវនេះ", + "pad.impexp.importing": "កំពុងនាំចូល..." +}
\ No newline at end of file diff --git a/src/locales/ko.json b/src/locales/ko.json index ccd7705c..5e7d4308 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1,120 +1,123 @@ { - "@metadata": { - "authors": { - "1": "\uc544\ub77c" - } - }, - "index.newPad": "\uc0c8 \ud328\ub4dc", - "index.createOpenPad": "\ub610\ub294 \ub2e4\uc74c \uc774\ub984\uc73c\ub85c \ud328\ub4dc \ub9cc\ub4e4\uae30\/\uc5f4\uae30:", - "pad.toolbar.bold.title": "\uad75\uac8c (Ctrl-B)", - "pad.toolbar.italic.title": "\uae30\uc6b8\uc784 (Ctrl-I)", - "pad.toolbar.underline.title": "\ubc11\uc904 (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\ucde8\uc18c\uc120", - "pad.toolbar.ol.title": "\uc21c\uc11c \uc788\ub294 \ubaa9\ub85d", - "pad.toolbar.ul.title": "\uc21c\uc11c \uc5c6\ub294 \ubaa9\ub85d", - "pad.toolbar.indent.title": "\ub4e4\uc5ec\uc4f0\uae30", - "pad.toolbar.unindent.title": "\ub0b4\uc5b4\uc4f0\uae30", - "pad.toolbar.undo.title": "\uc2e4\ud589 \ucde8\uc18c (Ctrl-Z)", - "pad.toolbar.redo.title": "\ub2e4\uc2dc \uc2e4\ud589 (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "\uc800\uc790\uc758 \uc0c9 \uc9c0\uc6b0\uae30", - "pad.toolbar.import_export.title": "\ub2e4\ub978 \ud30c\uc77c \ud615\uc2dd\uc73c\ub85c \uac00\uc838\uc624\uae30\/\ub0b4\ubcf4\ub0b4\uae30", - "pad.toolbar.timeslider.title": "\uc2dc\uac04\uc2ac\ub77c\uc774\ub354", - "pad.toolbar.savedRevision.title": "\uc800\uc7a5\ud55c \ud310", - "pad.toolbar.settings.title": "\uc124\uc815", - "pad.toolbar.embed.title": "\uc774 \ud328\ub4dc \ud3ec\ud568\ud558\uae30", - "pad.toolbar.showusers.title": "\uc774 \ud328\ub4dc\uc5d0 \uc0ac\uc6a9\uc790 \ubcf4\uae30", - "pad.colorpicker.save": "\uc800\uc7a5", - "pad.colorpicker.cancel": "\ucde8\uc18c", - "pad.loading": "\ubd88\ub7ec\uc624\ub294 \uc911...", - "pad.passwordRequired": "\uc774 \ud328\ub4dc\uc5d0 \uc811\uadfc\ud558\ub824\uba74 \ube44\ubc00\ubc88\ud638\uac00 \ud544\uc694\ud569\ub2c8\ub2e4", - "pad.permissionDenied": "\uc774 \ud328\ub4dc\uc5d0 \uc811\uadfc\ud560 \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4", - "pad.wrongPassword": "\ube44\ubc00\ubc88\ud638\uac00 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4", - "pad.settings.padSettings": "\ud328\ub4dc \uc124\uc815", - "pad.settings.myView": "\ub0b4 \ubcf4\uae30", - "pad.settings.stickychat": "\ud654\uba74\uc5d0 \ud56d\uc0c1 \ub300\ud654 \ubcf4\uae30", - "pad.settings.colorcheck": "\uc800\uc790 \uc0c9", - "pad.settings.linenocheck": "\uc904 \ubc88\ud638", - "pad.settings.fontType": "\uae00\uaf34 \uc885\ub958:", - "pad.settings.fontType.normal": "\ubcf4\ud1b5", - "pad.settings.fontType.monospaced": "\uace0\uc815 \ud3ed", - "pad.settings.globalView": "\uc804\uc5ed \ubcf4\uae30", - "pad.settings.language": "\uc5b8\uc5b4:", - "pad.importExport.import_export": "\uac00\uc838\uc624\uae30\/\ub0b4\ubcf4\ub0b4\uae30", - "pad.importExport.import": "\ud14d\uc2a4\ud2b8 \ud30c\uc77c\uc774\ub098 \ubb38\uc11c \uc62c\ub9ac\uae30", - "pad.importExport.importSuccessful": "\uc131\uacf5!", - "pad.importExport.export": "\ub2e4\uc74c\uc73c\ub85c \ud604\uc7ac \ud328\ub4dc \ub0b4\ubcf4\ub0b4\uae30:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\uc77c\ubc18 \ud14d\uc2a4\ud2b8", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\uc77c\ubc18 \ud14d\uc2a4\ud2b8\ub098 html \ud615\uc2dd\uc73c\ub85c\ub9cc \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uace0\uae09 \uac00\uc838\uc624\uae30 \uae30\ub2a5\uc5d0 \ub300\ud574\uc11c\ub294 <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\">abiword\ub97c \uc124\uce58<\/a>\ud558\uc138\uc694.", - "pad.modals.connected": "\uc5f0\uacb0\ud588\uc2b5\ub2c8\ub2e4.", - "pad.modals.reconnecting": "\ud328\ub4dc\uc5d0 \ub2e4\uc2dc \uc5f0\uacb0 \uc911..", - "pad.modals.forcereconnect": "\uac15\uc81c\ub85c \ub2e4\uc2dc \uc5f0\uacb0", - "pad.modals.userdup": "\ub2e4\ub978 \ucc3d\uc5d0\uc11c \uc5f4\ub9ac\uace0 \uc788\uc2b5\ub2c8\ub2e4", - "pad.modals.userdup.explanation": "\uc774 \ud328\ub4dc\ub294 \uc774 \ucef4\ud4e8\ud130\uc5d0 \ud558\ub098\ubcf4\ub2e4 \ub9ce\uc774 \ube0c\ub77c\uc6b0\uc800 \ucc3d\uc5d0\uc11c \uc5f4\ub9b0 \uac83 \uac19\uc2b5\ub2c8\ub2e4.", - "pad.modals.userdup.advice": "\ub300\uc2e0 \uc774 \ucc3d\uc744 \uc0ac\uc6a9\ud574 \ub2e4\uc2dc \uc5f0\uacb0\ud569\ub2c8\ub2e4.", - "pad.modals.unauth": "\uad8c\ud55c\uc774 \uc5c6\uc74c", - "pad.modals.unauth.explanation": "\uc774 \ubb38\uc11c\ub97c \ubcf4\ub294 \ub3d9\uc548 \uad8c\ud55c\uc774 \ubc14\ub00c\uc5c8\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc5f0\uacb0\uc744 \uc2dc\ub3c4\ud558\uc138\uc694.", - "pad.modals.looping": "\uc5f0\uacb0\uc774 \ub04a\uc5b4\uc84c\uc2b5\ub2c8\ub2e4.", - "pad.modals.looping.explanation": "\ub3d9\uae30 \uc11c\ubc84\uc640\uc758 \ud1b5\uc2e0 \ubb38\uc81c\uac00 \uc788\uc2b5\ub2c8\ub2e4.", - "pad.modals.looping.cause": "\uc544\ub9c8 \ud638\ud658\ub418\uc9c0 \uc54a\ub294 \ubc29\ud654\ubcbd\uc774\ub098 \ud504\ub85d\uc2dc\ub97c \ud1b5\ud574 \uc5f0\uacb0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.", - "pad.modals.initsocketfail": "\uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.", - "pad.modals.initsocketfail.explanation": "\ub3d9\uae30 \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.", - "pad.modals.initsocketfail.cause": "\uc544\ub9c8\ub3c4 \ube0c\ub77c\uc6b0\uc800\ub098 \uc778\ud130\ub137 \uc5f0\uacb0\uc5d0 \ubb38\uc81c\uac00 \uc788\uae30 \ub54c\ubb38\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.", - "pad.modals.slowcommit": "\uc5f0\uacb0\uc774 \ub04a\uc5b4\uc84c\uc2b5\ub2c8\ub2e4.", - "pad.modals.slowcommit.explanation": "\uc11c\ubc84\uac00 \uc751\ub2f5\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.", - "pad.modals.slowcommit.cause": "\ub124\ud2b8\uc6cc\ud06c \uc5f0\uacb0\uc5d0 \ubb38\uc81c\uac00 \uc788\uae30 \ub54c\ubb38\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.", - "pad.modals.deleted": "\uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.", - "pad.modals.deleted.explanation": "\uc774 \ud328\ub4dc\ub97c \uc81c\uac70\ud588\uc2b5\ub2c8\ub2e4.", - "pad.modals.disconnected": "\uc5f0\uacb0\uc774 \ub04a\uc5b4\uc84c\uc2b5\ub2c8\ub2e4.", - "pad.modals.disconnected.explanation": "\uc11c\ubc84\uc5d0\uc11c \uc5f0\uacb0\uc744 \uc783\uc5c8\uc2b5\ub2c8\ub2e4", - "pad.modals.disconnected.cause": "\uc11c\ubc84\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774 \ubb38\uc81c\uac00 \uacc4\uc18d \ubc1c\uc0dd\ud558\uba74 \uc54c\ub824\uc8fc\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.", - "pad.share": "\uc774 \ud328\ub4dc \uacf5\uc720\ud558\uae30", - "pad.share.readonly": "\uc77d\uae30 \uc804\uc6a9", - "pad.share.link": "\ub9c1\ud06c", - "pad.share.emebdcode": "URL \ud3ec\ud568", - "pad.chat": "\ub300\ud654", - "pad.chat.title": "\uc774 \ud328\ub4dc\uc5d0 \ub300\ud654\ub97c \uc5fd\ub2c8\ub2e4.", - "pad.chat.loadmessages": "\ub354 \ub9ce\uc740 \uba54\uc2dc\uc9c0 \ubd88\ub7ec\uc624\uae30", - "timeslider.pageTitle": "{{appTitle}} \uc2dc\uac04\uc2ac\ub77c\uc774\ub354", - "timeslider.toolbar.returnbutton": "\ud328\ub4dc\ub85c \ub3cc\uc544\uac00\uae30", - "timeslider.toolbar.authors": "\uc800\uc790:", - "timeslider.toolbar.authorsList": "\uc800\uc790 \uc5c6\uc74c", - "timeslider.toolbar.exportlink.title": "\ub0b4\ubcf4\ub0b4\uae30", - "timeslider.exportCurrent": "\ud604\uc7ac \ubc84\uc804\uc73c\ub85c \ub0b4\ubcf4\ub0b4\uae30:", - "timeslider.version": "\ubc84\uc804 {{version}}", - "timeslider.saved": "{{year}}\ub144 {{month}} {{day}}\uc77c\uc5d0 \uc800\uc7a5\ud568", - "timeslider.dateformat": "{{year}}\ub144\/{{month}}\/{{day}}\uc77c {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "1\uc6d4", - "timeslider.month.february": "2\uc6d4", - "timeslider.month.march": "3\uc6d4", - "timeslider.month.april": "4\uc6d4", - "timeslider.month.may": "5\uc6d4", - "timeslider.month.june": "6\uc6d4", - "timeslider.month.july": "7\uc6d4", - "timeslider.month.august": "8\uc6d4", - "timeslider.month.september": "9\uc6d4", - "timeslider.month.october": "10\uc6d4", - "timeslider.month.november": "11\uc6d4", - "timeslider.month.december": "12\uc6d4", - "timeslider.unnamedauthor": "\uc774\ub984 \uc5c6\ub294 \uc800\uc790 {{num}}\uba85", - "timeslider.unnamedauthors": "\uc774\ub984 \uc5c6\ub294 \uc800\uc790 {{num}}\uba85", - "pad.savedrevs.marked": "\uc774 \ud310\uc740 \uc774\uc81c \uc800\uc7a5\ud55c \ud310\uc73c\ub85c \ud45c\uc2dc\ud569\ub2c8\ub2e4.", - "pad.userlist.entername": "\uc774\ub984\uc744 \uc785\ub825\ud558\uc138\uc694", - "pad.userlist.unnamed": "\uc774\ub984\uc5c6\uc74c", - "pad.userlist.guest": "\uc190\ub2d8", - "pad.userlist.deny": "\uac70\ubd80", - "pad.userlist.approve": "\uc2b9\uc778", - "pad.editbar.clearcolors": "\uc804\uccb4 \ubb38\uc11c\uc758 \uc800\uc790 \uc0c9\uc744 \uc9c0\uc6b0\uc2dc\uaca0\uc2b5\ub2c8\uae4c?", - "pad.impexp.importbutton": "\uc9c0\uae08 \uac00\uc838\uc624\uae30", - "pad.impexp.importing": "\uac00\uc838\uc624\ub294 \uc911...", - "pad.impexp.confirmimport": "\ud30c\uc77c\uc744 \uac00\uc838\uc624\uba74 \ud328\ub4dc\uc758 \ud604\uc7ac \ud14d\uc2a4\ud2b8\ub97c \ub36e\uc5b4\uc4f0\uac8c \ub429\ub2c8\ub2e4. \uc9c4\ud589\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?", - "pad.impexp.convertFailed": "\uc774 \ud30c\uc77c\uc744 \uac00\uc838\uc62c \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \ubb38\uc11c \ud615\uc2dd\uc744 \uc0ac\uc6a9\ud558\uac70\ub098 \uc218\ub3d9\uc73c\ub85c \ubcf5\uc0ac\ud558\uc5ec \ubd99\uc5ec\ub123\uc73c\uc138\uc694", - "pad.impexp.uploadFailed": "\uc62c\ub9ac\uae30\ub97c \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc138\uc694", - "pad.impexp.importfailed": "\uac00\uc838\uc624\uae30\ub97c \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4", - "pad.impexp.copypaste": "\ubcf5\uc0ac\ud558\uc5ec \ubd99\uc5ec\ub123\uc73c\uc138\uc694", - "pad.impexp.exportdisabled": "{{type}} \ud615\uc2dd\uc73c\ub85c \ub0b4\ubcf4\ub0b4\uae30\uac00 \ube44\ud65c\uc131\ud654\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790\uc5d0\uac8c \ubb38\uc758\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4." + "@metadata": { + "authors": { + "0": "Hym411", + "2": "아라" + } + }, + "index.newPad": "새 패드", + "index.createOpenPad": "또는 다음 이름으로 패드 만들기/열기:", + "pad.toolbar.bold.title": "굵게 (Ctrl-B)", + "pad.toolbar.italic.title": "기울임 (Ctrl-I)", + "pad.toolbar.underline.title": "밑줄 (Ctrl-U)", + "pad.toolbar.strikethrough.title": "취소선", + "pad.toolbar.ol.title": "순서 있는 목록", + "pad.toolbar.ul.title": "순서 없는 목록", + "pad.toolbar.indent.title": "들여쓰기", + "pad.toolbar.unindent.title": "내어쓰기", + "pad.toolbar.undo.title": "실행 취소 (Ctrl-Z)", + "pad.toolbar.redo.title": "다시 실행 (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "저자의 색 지우기", + "pad.toolbar.import_export.title": "다른 파일 형식으로 가져오기/내보내기", + "pad.toolbar.timeslider.title": "시간슬라이더", + "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.passwordRequired": "이 패드에 접근하려면 비밀번호가 필요합니다", + "pad.permissionDenied": "이 패드에 접근할 권한이 없습니다", + "pad.wrongPassword": "비밀번호가 잘못되었습니다", + "pad.settings.padSettings": "패드 설정", + "pad.settings.myView": "내 보기", + "pad.settings.stickychat": "화면에 항상 대화 보기", + "pad.settings.colorcheck": "저자 색", + "pad.settings.linenocheck": "줄 번호", + "pad.settings.rtlcheck": "우횡서(오른쪽에서 왼쪽으로)입니까?", + "pad.settings.fontType": "글꼴 종류:", + "pad.settings.fontType.normal": "보통", + "pad.settings.fontType.monospaced": "고정 폭", + "pad.settings.globalView": "전역 보기", + "pad.settings.language": "언어:", + "pad.importExport.import_export": "가져오기/내보내기", + "pad.importExport.import": "텍스트 파일이나 문서 올리기", + "pad.importExport.importSuccessful": "성공!", + "pad.importExport.export": "다음으로 현재 패드 내보내기:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "일반 텍스트", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "일반 텍스트나 html 형식으로만 가져올 수 있습니다. 고급 가져오기 기능에 대해서는 \u003Ca 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\"\u003Eabiword를 설치\u003C/a\u003E하세요.", + "pad.modals.connected": "연결했습니다.", + "pad.modals.reconnecting": "패드에 다시 연결 중..", + "pad.modals.forcereconnect": "강제로 다시 연결", + "pad.modals.userdup": "다른 창에서 열리고 있습니다", + "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": "링크", + "pad.share.emebdcode": "URL 포함", + "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.saved": "{{year}}년 {{month}} {{day}}일에 저장함", + "timeslider.dateformat": "{{year}}년/{{month}}/{{day}}일 {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "1월", + "timeslider.month.february": "2월", + "timeslider.month.march": "3월", + "timeslider.month.april": "4월", + "timeslider.month.may": "5월", + "timeslider.month.june": "6월", + "timeslider.month.july": "7월", + "timeslider.month.august": "8월", + "timeslider.month.september": "9월", + "timeslider.month.october": "10월", + "timeslider.month.november": "11월", + "timeslider.month.december": "12월", + "timeslider.unnamedauthors": "이름 없는 {[plural(num) one: 저자, other: 저자 ]} {{num}}명", + "pad.savedrevs.marked": "이 판은 이제 저장한 판으로 표시합니다.", + "pad.userlist.entername": "이름을 입력하세요", + "pad.userlist.unnamed": "이름없음", + "pad.userlist.guest": "손님", + "pad.userlist.deny": "거부", + "pad.userlist.approve": "승인", + "pad.editbar.clearcolors": "전체 문서의 저자 색을 지우시겠습니까?", + "pad.impexp.importbutton": "지금 가져오기", + "pad.impexp.importing": "가져오는 중...", + "pad.impexp.confirmimport": "파일을 가져오면 패드의 현재 텍스트를 덮어쓰게 됩니다. 진행하시겠습니까?", + "pad.impexp.convertFailed": "이 파일을 가져올 수 없습니다. 다른 문서 형식을 사용하거나 수동으로 복사하여 붙여넣으세요", + "pad.impexp.uploadFailed": "올리기를 실패했습니다. 다시 시도하세요", + "pad.impexp.importfailed": "가져오기를 실패했습니다", + "pad.impexp.copypaste": "복사하여 붙여넣으세요", + "pad.impexp.exportdisabled": "{{type}} 형식으로 내보내기가 비활성화되어 있습니다. 자세한 내용은 시스템 관리자에게 문의하시기 바랍니다." }
\ No newline at end of file diff --git a/src/locales/ksh.json b/src/locales/ksh.json index e4557e85..6bb49dff 100644 --- a/src/locales/ksh.json +++ b/src/locales/ksh.json @@ -1,104 +1,122 @@ { - "@metadata": { - "authors": { - "1": "Purodha" - } - }, - "index.newPad": "Neu Padd", - "index.createOpenPad": "udder maach e Padd op med d\u00e4m Naame:", - "pad.toolbar.bold.title": "F\u00e4ttschreff (Strg-B)", - "pad.toolbar.italic.title": "Scheive Schreff (Strg-I)", - "pad.toolbar.underline.title": "Ongerstresche (Strg-U)", - "pad.toolbar.strikethrough.title": "Dorschjeschtresche", - "pad.toolbar.ol.title": "Le\u00df met Nommere", - "pad.toolbar.ul.title": "Le\u00df met Pongkte", - "pad.toolbar.indent.title": "Enjer\u00f6k", - "pad.toolbar.unindent.title": "U\u00dfjer\u00f6k", - "pad.toolbar.undo.title": "Retuur n\u00e4mme (Strg-Z)", - "pad.toolbar.redo.title": "Norrens (Strg-Y)", - "pad.toolbar.clearAuthorship.title": "d\u00e4 Schriiver ier F\u00e4rve fottn\u00e4mme", - "pad.toolbar.import_export.title": "Vun ongerscheidlijje Dattei_Fommaate empotteere udder \u00e4xpotteere", - "pad.toolbar.timeslider.title": "Verjangeheid afschpelle", - "pad.toolbar.savedRevision.title": "Fa\u00dfjehallde Versione", - "pad.toolbar.settings.title": "Enscht\u00e4llonge", - "pad.toolbar.embed.title": "Donn dat Padd enbenge", - "pad.toolbar.showusers.title": "Verbonge Metschriiver aanzeije", - "pad.colorpicker.save": "Fa\u00dfhallde", - "pad.colorpicker.cancel": "Oph\u00fc\u00fcre", - "pad.loading": "Aam Laade …", - "pad.settings.padSettings": "Dam P\u00e4dd sin Enscht\u00e4llonge", - "pad.settings.myView": "Anseesch", - "pad.settings.stickychat": "Donn der Klaaf emmer aanzeije", - "pad.settings.colorcheck": "F\u00e4rve f\u00f6r de Schriiver", - "pad.settings.linenocheck": "Nommere f\u00f6r de Reije", - "pad.settings.fontType": "Zoot Schreff", - "pad.settings.fontType.normal": "Nomaal", - "pad.settings.fontType.monospaced": "einheidlesch brejde Zeische", - "pad.settings.globalView": "Et U\u00dfsin f\u00f6r Alle", - "pad.settings.language": "Schprooch:", - "pad.importExport.import_export": "Empoot\/\u00c4xpoot", - "pad.importExport.import": "Donn jeede T\u00e4x udder jeede Zoot Dokem\u00e4nt huhlaade", - "pad.importExport.export": "Don dat P\u00e4dd \u00e4xpoteere al\u00df:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Eijfach T\u00e4x", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF (Poteerbaa Dokem\u00e4nte Fommaat)", - "pad.importExport.exportopen": "ODF (Offe Dokem\u00e4nte-Fommaat)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.modals.connected": "Verbonge.", - "pad.modals.reconnecting": "Ben wider aam Verbenge …", - "pad.modals.forcereconnect": "Wider verbenge", - "pad.modals.userdup.explanation": "Heh dat Padd schingk en mieh wi einem Finster vun enem Brauser op heh d\u00e4m R\u00e4\u00e4schner op ze sin.", - "pad.modals.userdup.advice": "En heh d\u00e4m Finster wider verbenge.", - "pad.modals.unauth": "Nit ber\u00e4\u00e4schtesch", - "pad.modals.unauth.explanation": "Ding Ber\u00e4\u00e4schtejong h\u00e4t sesch je\u00e4ndert, derwiehl De di Sigg aam beloore wohr\u00df. Vers\u00f6hk en neu Verbendong ze maache.", - "pad.modals.looping": "De Verbendong es fott.", - "pad.modals.looping.explanation": "Et jitt Probleeme met d\u00e4 Verbendong mem \u1e9e\u00f6\u00f6ver f\u00f6r de Schriiver ier Aandeile zesamme_ze_br\u00e4nge.", - "pad.modals.looping.cause": "K\u00fcnnt sin, Ding Verbendong jeiht dorj_ene onzopa\u00df proxy-\u1e9e\u00f6\u00f6ver udder firewall.", - "pad.modals.initsocketfail": "D\u00e4 \u1e9e\u00f6\u00f6ver es nit ze \u00e4reische.", - "pad.modals.initsocketfail.explanation": "Kein Verbendong met d\u00e4m \u1e9e\u00f6\u00f6ver ze krijje.", - "pad.modals.initsocketfail.cause": "Dat k\u00fcnnt aam Brauser udder aan d\u00e4m singer Verbendong \u00f6vver et Internet lijje.", - "pad.modals.slowcommit": "De Verbendong es fott.", - "pad.modals.slowcommit.explanation": "D\u00e4 \u1e9e\u00f6\u00f6ver antwoot nit.", - "pad.modals.slowcommit.cause": "Dat k\u00fcnnt aan Probleeme met Verbendonge em N\u00e4zw\u00e4rrek lijje.", - "pad.modals.deleted": "Fottjeschme\u00dfe.", - "pad.modals.deleted.explanation": "Dat P\u00e4dd es fottjeschme\u00dfe woode.", - "pad.modals.disconnected": "Do bes nit mieh verbonge.", - "pad.modals.disconnected.explanation": "De Verbendong mem \u1e9e\u00f6\u00f6ver es fott.", - "pad.modals.disconnected.cause": "D\u00e4 \u1e9e\u00f6\u00f6ver k\u00fcnnt nit loufe.\nSidd_esu jood und saat ons Bescheid, wann dat \u00f6fters pa\u00dfeet.", - "pad.share": "Maach heh dat Padd \u00f6ffentlesch", - "pad.share.readonly": "Nor zom L\u00e4sse", - "pad.share.link": "Lengk", - "pad.share.emebdcode": "URL enboue", - "pad.chat": "Klaaf", - "pad.chat.title": "Maach d\u00e4 Klaaf f\u00f6r heh dat P\u00e4dd op", - "timeslider.pageTitle": "{{appTitle}} - Verjangeheid affschpelle", - "timeslider.toolbar.returnbutton": "Jangk retuur nohm P\u00e4dd", - "timeslider.toolbar.authors": "Schriiver:", - "timeslider.toolbar.authorsList": "Kein Schriivere", - "timeslider.exportCurrent": "Donn de meu\u00dfte V\u00e4sjohn \u00e4xpotteere al\u00df:", - "timeslider.version": "V\u00e4sjon {{version}}", - "timeslider.saved": "Fa\u00dfjehallde aam {{day}}. {{month}} {{year}}", - "timeslider.dateformat": "amm {{day}}. {{month}} {{year}} \u00f6m {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Jannewaa", - "timeslider.month.february": "F\u00e4\u00e4browaa", - "timeslider.month.march": "M\u00e4\u00e4z", - "timeslider.month.april": "Apprell", - "timeslider.month.may": "Mai", - "timeslider.month.june": "Juuni", - "timeslider.month.july": "Juuli", - "timeslider.month.august": "Oujo\u00df", - "timeslider.month.september": "S\u00e4pt\u00e4mber", - "timeslider.month.october": "Oktoober", - "timeslider.month.november": "Nov\u00e4mber", - "timeslider.month.december": "Dez\u00e4mber", - "pad.userlist.entername": "Jif Dinge Naame en", - "pad.userlist.unnamed": "naamelo\u00df\u00df", - "pad.userlist.guest": "Ja\u00df\u00df", - "pad.userlist.deny": "Aflehne", - "pad.impexp.importing": "Ben aam Empotteere …", - "pad.impexp.uploadFailed": "Et Huhlaade es don\u00e4vve jejange, bes esu jood un probeer et norr_ens", - "pad.impexp.importfailed": "Et Empoteere es don\u00e4vve jejange", - "pad.impexp.copypaste": "Bes esu jood un donn et koppeere un enf\u00f6\u00f6je", - "pad.impexp.exportdisabled": "Et \u00c4xpotteere em {{type}}-Formmaat es affjeschalldt. De Verwallder vun heh d\u00e4 Sigge k\u00fcnne doh velleisch wiggerh\u00e4llefe." + "@metadata": { + "authors": { + "1": "Purodha" + } + }, + "index.newPad": "Neu Padd", + "index.createOpenPad": "udder maach e Padd op med däm Naame:", + "pad.toolbar.bold.title": "Fättschreff (Strg-B)", + "pad.toolbar.italic.title": "Scheive Schreff (Strg-I)", + "pad.toolbar.underline.title": "Ongerstresche (Strg-U)", + "pad.toolbar.strikethrough.title": "Dorschjeschtresche", + "pad.toolbar.ol.title": "Leß met Nommere", + "pad.toolbar.ul.title": "Leß met Pongkte", + "pad.toolbar.indent.title": "Enjerök", + "pad.toolbar.unindent.title": "Ußjerök", + "pad.toolbar.undo.title": "Retuur nämme (Strg-Z)", + "pad.toolbar.redo.title": "Norrens (Strg-Y)", + "pad.toolbar.clearAuthorship.title": "dä Schriiver ier Färve fottnämme", + "pad.toolbar.import_export.title": "Vun ongerscheidlijje Dattei_Fommaate empotteere udder äxpotteere", + "pad.toolbar.timeslider.title": "Verjangeheid afschpelle", + "pad.toolbar.savedRevision.title": "de Versjohn faßhallde", + "pad.toolbar.settings.title": "Enschtällonge", + "pad.toolbar.embed.title": "Donn dat Padd öffentlesch maache un enbenge", + "pad.toolbar.showusers.title": "Verbonge Metschriiver aanzeije", + "pad.colorpicker.save": "Faßhallde", + "pad.colorpicker.cancel": "Ophüüre", + "pad.loading": "Ben aam Laade\u0026nbsp;\u0026hellip;", + "pad.passwordRequired": "Do bruchs e Paßwoot för heh dat Pädd.", + "pad.permissionDenied": "Do häs nit dat Rääsch, op heh dat Pädd zohzejriife.", + "pad.wrongPassword": "Ding Paßwoot wohr verkeht.", + "pad.settings.padSettings": "Dam Pädd sin Enschtällonge", + "pad.settings.myView": "Anseesch", + "pad.settings.stickychat": "Donn der Klaaf emmer aanzeije", + "pad.settings.colorcheck": "Färve för de Schriiver", + "pad.settings.linenocheck": "Nommere för de Reije", + "pad.settings.rtlcheck": "Schreff vun Rääschß noh Lenks?", + "pad.settings.fontType": "Zoot Schreff", + "pad.settings.fontType.normal": "Nomaal", + "pad.settings.fontType.monospaced": "einheidlesch brejde Zeische", + "pad.settings.globalView": "Et Ußsin för Alle", + "pad.settings.language": "Schprooch:", + "pad.importExport.import_export": "Empoot/Äxpoot", + "pad.importExport.import": "Donn jeede Täx udder jeede Zoot Dokemänt huhlaade", + "pad.importExport.importSuccessful": "Jeschaff!", + "pad.importExport.export": "Don dat Pädd äxpoteere alß:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Eijfach Täx", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF (Poteerbaa Dokemänte Fommaat)", + "pad.importExport.exportopen": "ODF (Offe Dokemänte-Fommaat)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Mer künne bloß eijfaache Täxte udder HTML_Fommaate empoteere. Opwändejere Müjjeleschkeite fö der Empoot jon och, doför bruch mer en \u003Ca 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\"\u003EEnschtallazjuhn met \u003Ci lang=\"en\"\u003EAbiword\u003C/i\u003E\u003C/a\u003E.", + "pad.modals.connected": "Verbonge.", + "pad.modals.reconnecting": "Ben wider aam Verbenge\u0026nbsp;\u0026hellip;", + "pad.modals.forcereconnect": "Wider verbenge", + "pad.modals.userdup": "En enem andere Finster en Ärbeid", + "pad.modals.userdup.explanation": "Heh dat Padd schingk en mieh wi einem Finster vun enem Brauser op heh däm Rääschner op ze sin.", + "pad.modals.userdup.advice": "En heh däm Finster wider verbenge.", + "pad.modals.unauth": "Nit berääschtesch", + "pad.modals.unauth.explanation": "Ding Berääschtejong hät sesch jeändert, derwiehl De di Sigg aam beloore wohrß. Versöhk en neu Verbendong ze maache.", + "pad.modals.looping.explanation": "Et jitt Probleeme met dä Verbendong mem ẞööver för de Schriiver ier Aandeile zesamme_ze_bränge.", + "pad.modals.looping.cause": "Künnt sin, Ding Verbendong jeiht dorj_ene onzopaß proxy-ẞööver udder firewall.", + "pad.modals.initsocketfail": "Dä ẞööver es nit ze äreische.", + "pad.modals.initsocketfail.explanation": "Kein Verbendong met däm ẞööver ze krijje.", + "pad.modals.initsocketfail.cause": "Dat künnt aam Brauser udder aan däm singer Verbendong övver et Internet lijje.", + "pad.modals.slowcommit.explanation": "Dä ẞööver antwoot nit.", + "pad.modals.slowcommit.cause": "Dat künnt aan Probleeme met Verbendonge em Näzwärrek lijje.", + "pad.modals.badChangeset.explanation": "En Änderong, di De jemaat häs, wood vum ẞööver nit aanjenumme.", + "pad.modals.badChangeset.cause": "Dat künnt sin wääje ener verkehte Enschtällong vum ẞööver udder ohnjät, wat mer nit äwaadt hät. Donn Desch aan däm ßööver singe Bedriever wände, wann De meins, dat dat ene Fähler wör. Donn desch neu verbende, öm mem Schriive wigger ze maache.", + "pad.modals.corruptPad.explanation": "Dat Pädd, wo De desch met verbenge wells, es kappott.", + "pad.modals.corruptPad.cause": "Dat künnt sin wääje ener verkehte Enschtällong vum ẞööver udder ohnjät, wat mer nit äwaadt hät. Donn Desch aan däm ßööver singe Bedriever wände.", + "pad.modals.deleted": "Fottjeschmeße.", + "pad.modals.deleted.explanation": "Dat Pädd es fottjeschmeße woode.", + "pad.modals.disconnected": "Do bes nit mieh verbonge.", + "pad.modals.disconnected.explanation": "De Verbendong mem ẞööver es fott.", + "pad.modals.disconnected.cause": "Dä ẞööver künnt nit mieh loufe.\nSidd_esu jood und saad ons Bescheid, wann dadd esu bliiv.", + "pad.share": "Maach heh dat Padd öffentlesch", + "pad.share.readonly": "Nor zom Lässe", + "pad.share.link": "Lengk", + "pad.share.emebdcode": "URL enboue", + "pad.chat": "Klaaf", + "pad.chat.title": "Maach dä Klaaf för heh dat Pädd op", + "pad.chat.loadmessages": "Mieh Nohresschte laade...", + "timeslider.pageTitle": "{{appTitle}} - Verjangeheid affschpelle", + "timeslider.toolbar.returnbutton": "Jangk retuur nohm Pädd", + "timeslider.toolbar.authors": "Schriiver:", + "timeslider.toolbar.authorsList": "Kein Schriivere", + "timeslider.toolbar.exportlink.title": "Äxpooteere", + "timeslider.exportCurrent": "Donn de meußte Väsjohn äxpotteere alß:", + "timeslider.version": "Väsjon {{version}}", + "timeslider.saved": "Faßjehallde aam {{day}}. {{month}} {{year}}", + "timeslider.dateformat": "amm {{day}}. {{month}} {{year}} öm {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Jannewaa", + "timeslider.month.february": "Fääbrowaa", + "timeslider.month.march": "Määz", + "timeslider.month.april": "Apprell", + "timeslider.month.may": "Mai", + "timeslider.month.june": "Juuni", + "timeslider.month.july": "Juuli", + "timeslider.month.august": "Oujoß", + "timeslider.month.september": "Säptämber", + "timeslider.month.october": "Oktoober", + "timeslider.month.november": "Novämber", + "timeslider.month.december": "Dezämber", + "timeslider.unnamedauthors": "{[plural(num) one: eine, other: {{num}} ]} naameloose Schriever", + "pad.savedrevs.marked": "Heh di Väsjohn es jäz faßjehallde.", + "pad.userlist.entername": "Jif Dinge Naame en", + "pad.userlist.unnamed": "naameloßß", + "pad.userlist.guest": "Jaßß", + "pad.userlist.deny": "Aflehne", + "pad.userlist.approve": "Joodheiße", + "pad.editbar.clearcolors": "Sulle mer de Färve för de Schriiver uss_em janze Täx fott maache?", + "pad.impexp.importbutton": "Jäz empoteere", + "pad.impexp.importing": "Ben aam Empotteere\u0026nbsp;\u0026hellip;", + "pad.impexp.confirmimport": "En Dattei ze empotteere määt der janze Täx em Pädd fott. Wess De dat verfaftesch hann?", + "pad.impexp.convertFailed": "Mer kunnte di Dattei nit empoteere. Nemm en ander Dattei-Fommaat udder donn dä Täx vun Hand kopeere un ennfööje.", + "pad.impexp.uploadFailed": "Et Huhlaade es donävve jejange, bes esu jood un probeer et norr_ens", + "pad.impexp.importfailed": "Et Empoteere es donävve jejange", + "pad.impexp.copypaste": "Bes esu jood un donn et koppeere un enfööje", + "pad.impexp.exportdisabled": "Et Äxpotteere em {{type}}-Formmaat es affjeschalldt. De Verwallder vun heh dä Sigge künne doh velleisch wiggerhällefe." }
\ No newline at end of file diff --git a/src/locales/lb.json b/src/locales/lb.json new file mode 100644 index 00000000..641e61a0 --- /dev/null +++ b/src/locales/lb.json @@ -0,0 +1,54 @@ +{ + "@metadata": { + "authors": { + "0": "Robby", + "2": "Soued031" + } + }, + "index.newPad": "Neie Pad", + "pad.toolbar.ol.title": "Numeréiert Lëscht", + "pad.toolbar.ul.title": "Net-numeréiert Lëscht", + "pad.toolbar.undo.title": "Réckgängeg (Ctrl-Z)", + "pad.toolbar.redo.title": "Widderhuelen (Ctrl-Y)", + "pad.toolbar.savedRevision.title": "Versioun späicheren", + "pad.toolbar.settings.title": "Astellungen", + "pad.colorpicker.save": "Späicheren", + "pad.colorpicker.cancel": "Ofbriechen", + "pad.loading": "Lueden...", + "pad.wrongPassword": "Äert Passwuert ass falsch", + "pad.settings.fontType.normal": "Normal", + "pad.settings.language": "Sprooch:", + "pad.importExport.importSuccessful": "Erfollegräich", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.modals.unauth": "Net autoriséiert", + "pad.modals.slowcommit.explanation": "De Server äntwert net.", + "pad.modals.deleted": "Geläscht.", + "pad.share.readonly": "Nëmme liesen", + "pad.share.link": "Link", + "pad.chat.loadmessages": "Méi Message lueden", + "timeslider.toolbar.authors": "Auteuren:", + "timeslider.toolbar.authorsList": "Keng Auteuren", + "timeslider.exportCurrent": "Exportéiert déi aktuell Versioun als:", + "timeslider.version": "Versioun {{version}}", + "timeslider.saved": "Gespäichert de(n) {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Januar", + "timeslider.month.february": "Februar", + "timeslider.month.march": "Mäerz", + "timeslider.month.april": "Abrëll", + "timeslider.month.may": "Mee", + "timeslider.month.june": "Juni", + "timeslider.month.july": "Juli", + "timeslider.month.august": "August", + "timeslider.month.september": "September", + "timeslider.month.october": "Oktober", + "timeslider.month.november": "November", + "timeslider.month.december": "Dezember", + "pad.userlist.entername": "Gitt Ären Numm an", + "pad.userlist.guest": "Gaascht", + "pad.impexp.importbutton": "Elo importéieren", + "pad.impexp.importing": "Importéieren..." +}
\ No newline at end of file diff --git a/src/locales/lrc.json b/src/locales/lrc.json new file mode 100644 index 00000000..663b3f74 --- /dev/null +++ b/src/locales/lrc.json @@ -0,0 +1,60 @@ +{ + "@metadata": { + "authors": [ + "Mogoeilor" + ] + }, + "pad.toolbar.italic.title": "کج کوله(ctrl-l)", + "pad.toolbar.underline.title": "زیر خط دار بین (Ctrl-U)", + "pad.toolbar.ol.title": "نوم گه منظم", + "pad.toolbar.ul.title": "نوم گه بی نظم", + "pad.toolbar.indent.title": "مئن رئته(TAB)", + "pad.toolbar.unindent.title": "وه در رئته (Shift+TAB)", + "pad.toolbar.undo.title": "رد انجوم دئین (Ctrl-Z)", + "pad.toolbar.redo.title": "د نو انجوم دئین(Ctrl-Y)", + "pad.toolbar.settings.title": "تنظيمات", + "pad.colorpicker.save": "ذخيره كردن", + "pad.colorpicker.cancel": "رد كردن", + "pad.loading": "د حالت سوار كرد", + "pad.settings.myView": "نظرگه مه", + "pad.settings.fontType": "نوع فونت:", + "pad.settings.fontType.normal": "عادی", + "pad.settings.fontType.monospaced": "تک جاگه", + "pad.settings.globalView": "دیئن جهونی", + "pad.settings.language": "زون:", + "pad.importExport.importSuccessful": "موفق بی!", + "pad.importExport.exporthtml": "اچ تی ام ال", + "pad.importExport.exportplain": "متن ساده", + "pad.importExport.exportword": "واجه پالایشتگر مایکروسافت", + "pad.importExport.exportpdf": "پی دی اف", + "pad.importExport.exportopen": "او دی اف(قالو سند وا بیه)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.connected": "وصل بیه", + "pad.modals.forcereconnect": "سی وصل بین مژبور کو", + "pad.modals.deleted": "پاک بیه", + "pad.share.readonly": "فقط بحون", + "pad.share.link": "هوم پیوند", + "pad.chat": "گپ زئن", + "pad.chat.loadmessages": "پیغومیا بیشتر نه سوار کو", + "timeslider.toolbar.authors": "نیسنه یا:", + "timeslider.toolbar.authorsList": "بی نیسنه", + "timeslider.toolbar.exportlink.title": "وه در ديئن", + "timeslider.version": "نسقه{{نسقه}}", + "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": "اصلا کردن" +}
\ No newline at end of file diff --git a/src/locales/lt.json b/src/locales/lt.json new file mode 100644 index 00000000..401cc2c9 --- /dev/null +++ b/src/locales/lt.json @@ -0,0 +1,73 @@ +{ + "@metadata": { + "authors": [ + "Eitvys200", + "Mantak111" + ] + }, + "pad.toolbar.bold.title": "Paryškintasis (Ctrl-B)", + "pad.toolbar.italic.title": "Pasvirasis (Ctrl-I)", + "pad.toolbar.underline.title": "Pabraukimas (Ctrl-U)", + "pad.toolbar.undo.title": "Anuliuoti (Ctrl-Z)", + "pad.toolbar.redo.title": "Perdaryti (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Tvarkyti autorystės spalvas", + "pad.toolbar.settings.title": "Nustatymai", + "pad.colorpicker.save": "Išsaugoti", + "pad.colorpicker.cancel": "Atšaukti", + "pad.loading": "Įkraunama...", + "pad.settings.myView": "Mano Vaizdas", + "pad.settings.fontType": "Šrifto tipas:", + "pad.settings.fontType.normal": "Normalus", + "pad.settings.globalView": "Bendras Vaizdas", + "pad.settings.language": "Kalba:", + "pad.importExport.import_export": "Importuoti/Eksportuoti", + "pad.importExport.import": "Įkelkite bet kokį tekstinį failą arba dokumentą", + "pad.importExport.importSuccessful": "Pavyko!", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Paprastasis tekstas", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Atvirasis dokumento formatas)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.connected": "Prisijungta.", + "pad.modals.unauth": "Neleidžiama", + "pad.modals.initsocketfail": "Serveris yra nepasiekiamas.", + "pad.modals.slowcommit.explanation": "Serveris neatsako.", + "pad.modals.deleted": "Ištrintas.", + "pad.modals.disconnected": "Jūs atsijungėte.", + "pad.share.readonly": "Tik skaityti", + "pad.share.link": "Nuoroda", + "pad.share.emebdcode": "Įterptasis URL", + "pad.chat": "Pokalbiai", + "pad.chat.loadmessages": "Įkrauti daugiau pranešimų", + "timeslider.toolbar.authors": "Autoriai:", + "timeslider.toolbar.authorsList": "Nėra autorių", + "timeslider.toolbar.exportlink.title": "Eksportuoti", + "timeslider.exportCurrent": "Eksportuoti dabartinę versiją kaip:", + "timeslider.version": "Versija {{version}}", + "timeslider.saved": "Išsaugota {{year}},{{month}} {{day}}", + "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Sausis", + "timeslider.month.february": "Vasaris", + "timeslider.month.march": "Kovas", + "timeslider.month.april": "Balandis", + "timeslider.month.may": "Gegužė", + "timeslider.month.june": "Birželis", + "timeslider.month.july": "Liepa", + "timeslider.month.august": "Rugpjūtis", + "timeslider.month.september": "Rugsėjis", + "timeslider.month.october": "Spalis", + "timeslider.month.november": "Lapkritis", + "timeslider.month.december": "Gruodis", + "timeslider.unnamedauthors": "{{num}} bevardžiai(-ių) autoriai(-ių)", + "pad.userlist.entername": "Įveskite savo vardą", + "pad.userlist.unnamed": "bevardis", + "pad.userlist.guest": "Svečias", + "pad.userlist.deny": "Neigti", + "pad.userlist.approve": "Patvirtinti", + "pad.impexp.importbutton": "Importuoti dabar", + "pad.impexp.importing": "Importuojama...", + "pad.impexp.uploadFailed": "Įkėlimas nepavyko, bandykite dar kartą", + "pad.impexp.importfailed": "Importuoti nepavyko", + "pad.impexp.copypaste": "Prašome nukopijuoti ir įklijuoti" +}
\ No newline at end of file diff --git a/src/locales/lv.json b/src/locales/lv.json new file mode 100644 index 00000000..a17a7551 --- /dev/null +++ b/src/locales/lv.json @@ -0,0 +1,84 @@ +{ + "@metadata": { + "authors": [ + "Admresdeserv.", + "Jmg.cmdi", + "Papuass" + ] + }, + "pad.toolbar.bold.title": "Treknrakstā (CTRL + B)", + "pad.toolbar.italic.title": "Slīpraksta (Ctrl-es)", + "pad.toolbar.underline.title": "Pasvītrojuma (CTRL + U)", + "pad.toolbar.strikethrough.title": "Pārsvītrojums", + "pad.toolbar.ol.title": "Sakārtots saraksts", + "pad.toolbar.ul.title": "Nesakārtots saraksts", + "pad.toolbar.indent.title": "Atkāpe", + "pad.toolbar.unindent.title": "Izkāpe", + "pad.toolbar.undo.title": "Atsaukt (CTRL + Z)", + "pad.toolbar.redo.title": "Atcelt atsaukšanu (CTRL + Y)", + "pad.toolbar.clearAuthorship.title": "Notīrit autoru krāsas", + "pad.toolbar.import_export.title": "Importēšanas/eksportēšanas no un uz citu failu formātiem", + "pad.toolbar.savedRevision.title": "Saglabāt pārskatīšanu", + "pad.toolbar.settings.title": "Iestatījumi", + "pad.toolbar.embed.title": "Koplietot un iegut šo pad", + "pad.toolbar.showusers.title": "Parādīt šo padu lietotājus", + "pad.colorpicker.save": "Saglabāt", + "pad.colorpicker.cancel": "Atcelt", + "pad.loading": "Ielādē…", + "pad.passwordRequired": "Ir nepieciešama parole, lai piekļūtu šim pad", + "pad.permissionDenied": "Atvaino, bet tev nav pieejas šim pad.", + "pad.wrongPassword": "Jūsu parole bija nepareiza", + "pad.settings.padSettings": "Pad Iestatijumi", + "pad.settings.myView": "Mans viedoklis", + "pad.settings.stickychat": "Čats vienmēr ekrānā", + "pad.settings.colorcheck": "Autorības krāsas", + "pad.settings.linenocheck": "Rindiņu numurus", + "pad.settings.rtlcheck": "Lasīt saturu no labās puses uz kreiso?", + "pad.settings.fontType": "Fonta tips:", + "pad.settings.fontType.normal": "Normāls", + "pad.settings.globalView": "Globālu skatījumu", + "pad.settings.language": "Valoda:", + "pad.importExport.import_export": "Importet/Eksportet", + "pad.importExport.import": "Augšupielādēt jebkuru teksta failu vai dokumentu", + "pad.importExport.importSuccessful": "Veiksmīgi!", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Vienkārša teksta", + "pad.importExport.exportword": "Programma Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open dokumenta formāts)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.userdup": "Atvērts citā logā", + "pad.modals.unauth": "Nav atļauts", + "pad.modals.looping.explanation": "Pastāv sakaru problēmas ar sinhronizācijas servera.", + "pad.modals.initsocketfail": "Serveris nav sasniedzams.", + "pad.modals.initsocketfail.explanation": "Nevarēja izveidot savienojumu ar sinhronizācijas serveri.", + "pad.modals.slowcommit.explanation": "Serveris nereaģē.", + "pad.modals.deleted": "Dzēsts", + "pad.modals.disconnected": "Jūs esat atvienots.", + "pad.modals.disconnected.explanation": "Tika zaudēts savienojums ar serveri", + "pad.modals.disconnected.cause": "Iespējams, ka serveris nav pieejams. Lūgums paziņot mums, ja tas turpina notikt.", + "pad.share": "Koplietot šo pad", + "pad.share.readonly": "Tikai lasāms", + "pad.share.link": "Saite", + "timeslider.toolbar.authors": "Autori:", + "timeslider.toolbar.authorsList": "Nav autoru", + "timeslider.toolbar.exportlink.title": "Eksportēt", + "timeslider.month.january": "Janvāris", + "timeslider.month.february": "Februāris", + "timeslider.month.march": "Marts", + "timeslider.month.april": "Aprīlis", + "timeslider.month.may": "Maijs", + "timeslider.month.june": "Jūnijs", + "timeslider.month.july": "Jūlijs", + "timeslider.month.august": "Augusts", + "timeslider.month.september": "Septembris", + "timeslider.month.october": "Oktobris", + "timeslider.month.november": "Novembris", + "timeslider.month.december": "Decembris", + "pad.userlist.entername": "Ievadiet savu vārdu", + "pad.userlist.unnamed": "nenosaukts", + "pad.userlist.guest": "Viesis", + "pad.impexp.importbutton": "Importēt tūlīt", + "pad.impexp.importing": "Importē...", + "pad.impexp.importfailed": "Imports neizdevās" +}
\ No newline at end of file diff --git a/src/locales/map-bms.json b/src/locales/map-bms.json new file mode 100644 index 00000000..fee220d4 --- /dev/null +++ b/src/locales/map-bms.json @@ -0,0 +1,118 @@ +{ + "@metadata": { + "authors": [ + "StefanusRA" + ] + }, + "index.newPad": "Pad Anyar", + "index.createOpenPad": "utawa gawe/bukak Pad nganggo jeneng:", + "pad.toolbar.bold.title": "Kandhel (Ctrl-B)", + "pad.toolbar.italic.title": "Miring (Ctrl-I)", + "pad.toolbar.underline.title": "Garisngisor (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Corettengaeh", + "pad.toolbar.ol.title": "Daftar nganggo nomer", + "pad.toolbar.ul.title": "Daftar ora nganggo nomer", + "pad.toolbar.indent.title": "Nggantung", + "pad.toolbar.unindent.title": "nggantung njaba", + "pad.toolbar.undo.title": "Batalna (Ctrl-Z)", + "pad.toolbar.redo.title": "Baleni (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Busek ''Authorship Colors''", + "pad.toolbar.import_export.title": "Impor/Ekspor sekang/maring format berkas sejen", + "pad.toolbar.timeslider.title": "Timeslider", + "pad.toolbar.savedRevision.title": "Simpen revisi", + "pad.toolbar.settings.title": "Pangaturan", + "pad.toolbar.embed.title": "Sebarna lan ''embed'' pad kiye", + "pad.toolbar.showusers.title": "Tidokna panganggo-panganggo nang pad kiye", + "pad.colorpicker.save": "Simpen", + "pad.colorpicker.cancel": "Batalna", + "pad.loading": "Muatna...", + "pad.passwordRequired": "Rika perlu tembung sandhi kanggo ngakses pad kiye", + "pad.permissionDenied": "Rika ora duwe idin kanggo ngakses pad kiye", + "pad.wrongPassword": "Tembung sandhine Rika salah", + "pad.settings.padSettings": "Pangaturan Pad", + "pad.settings.myView": "Delengane Inyong", + "pad.settings.stickychat": "Dopokan mesti nang layar", + "pad.settings.colorcheck": "Authorship colors", + "pad.settings.linenocheck": "Nomer baris", + "pad.settings.rtlcheck": "Waca isi sekang tengen maring kiwe?", + "pad.settings.fontType": "Tipe Font:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Global View", + "pad.settings.language": "Basa:", + "pad.importExport.import_export": "Impor/Ekspor", + "pad.importExport.import": "Unggahna berkas teks utawa dokumen", + "pad.importExport.importSuccessful": "Sukses!", + "pad.importExport.export": "Ekspor pad kiye dadi:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "t", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Rika mung teyeng impor sekang format plain text utawa HTML. Kanggo fitur impor sing lewih maju monggo \u003Ca 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\"\u003Emasang abiword\u003C/a\u003E.", + "pad.modals.connected": "Nyambung.", + "pad.modals.reconnecting": "Mbaleli nyambung ming pad Rika...", + "pad.modals.forcereconnect": "Maksa nyambung maning", + "pad.modals.userdup": "Bukak nang jendela sejen", + "pad.modals.userdup.explanation": "Pad kiye kayane dibukak nang lewih sekang siji browser nang komputer kiye.", + "pad.modals.userdup.advice": "Nyambung maning nganggo jendela kiye baen.", + "pad.modals.unauth": "Not authorized", + "pad.modals.unauth.explanation": "Idin-e Rika wis diowahi dong lagi ndeleng kaca kiye. Jajal nyambung maning.", + "pad.modals.looping.explanation": "Pra ana masalah komunikasi karo server sinkronisasi.", + "pad.modals.looping.cause": "Ndeyan Rika gole nyambung nganggo firewall utawa proksi sing ora pas.", + "pad.modals.initsocketfail": "Server ora teyeng dihubungi.", + "pad.modals.initsocketfail.explanation": "Ora teyeng nyambung maring sinkronisasi server.", + "pad.modals.initsocketfail.cause": "Kiye ndeyan ana masalah karo perambanne Rika utawa sambungan internete Rika.", + "pad.modals.slowcommit.explanation": "Server ora respon.", + "pad.modals.slowcommit.cause": "Kiye ndeyan ana masalah karo sambungan jaringan.", + "pad.modals.deleted": "Dibusek.", + "pad.modals.deleted.explanation": "Pad kiye wis dibusek.", + "pad.modals.disconnected": "Rika wis dipedot sambungane.", + "pad.modals.disconnected.explanation": "Sambungan maring server wis ilang", + "pad.modals.disconnected.cause": "Servere ndeyan ora ana. Monggo tidokna inyong angger kahanan kiye terus kedaden maning.", + "pad.share": "Sebarna pad kiye", + "pad.share.readonly": "Waca thok", + "pad.share.link": "Pranala", + "pad.share.emebdcode": "Embed URL", + "pad.chat": "Dopokan", + "pad.chat.title": "Buka dopokan kanggo pad kiye.", + "pad.chat.loadmessages": "Muatna pesen lewih akeh", + "timeslider.pageTitle": "{{appTitle}} Timeslider", + "timeslider.toolbar.returnbutton": "Mbalik ming pad", + "timeslider.toolbar.authors": "Penulise:", + "timeslider.toolbar.authorsList": "Ora ana penulise", + "timeslider.toolbar.exportlink.title": "Ekspor", + "timeslider.exportCurrent": "Ekspor versi sekiye dadi:", + "timeslider.version": "Versi {{version}}", + "timeslider.saved": "Simpen {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Januari", + "timeslider.month.february": "Februari", + "timeslider.month.march": "Maret", + "timeslider.month.april": "April", + "timeslider.month.may": "Mei", + "timeslider.month.june": "Juni", + "timeslider.month.july": "Juli", + "timeslider.month.august": "Agustus", + "timeslider.month.september": "September", + "timeslider.month.october": "Oktober", + "timeslider.month.november": "November", + "timeslider.month.december": "Desember", + "timeslider.unnamedauthors": "{{num}} durung dijenengi {[plural(num) one: author, other: authors ]}", + "pad.savedrevs.marked": "Revisi kiye sekiye ditandani dadi revisi sing wis disimpen", + "pad.userlist.entername": "Lebokna jenenge Rika", + "pad.userlist.unnamed": "durungdijenengi", + "pad.userlist.guest": "Dayoh", + "pad.userlist.deny": "Ora olih", + "pad.userlist.approve": "Sarujuk", + "pad.editbar.clearcolors": "Busek ''authorship colors'' nang kabeh dokumen?", + "pad.impexp.importbutton": "Impor Sekiye", + "pad.impexp.importing": "Lagi ngimpor...", + "pad.impexp.confirmimport": "Ngimpor berkas bakal dadi nindih teks sekiye nang pad. Apa Rika wis mantep arep mroses kiye?", + "pad.impexp.convertFailed": "Inyong ora teyeng ngimpor berkas kiye. Jajal nganggo format dokumen sejen utawa salin-tempel manual.", + "pad.impexp.uploadFailed": "Gole ngunggah gagal, monggo dijajal maning", + "pad.impexp.importfailed": "Gole ngimpor gagal", + "pad.impexp.copypaste": "Monggo salin-tempel", + "pad.impexp.exportdisabled": "Ngekspor maring format {{type}} ora olih. Monggo takon maring administrator sisteme Rika kanggo detile." +}
\ No newline at end of file diff --git a/src/locales/mk.json b/src/locales/mk.json index 94d73bd8..0894b47a 100644 --- a/src/locales/mk.json +++ b/src/locales/mk.json @@ -1,121 +1,123 @@ { - "@metadata": { - "authors": [ - "Bjankuloski06", - "Brest" - ] - }, - "index.newPad": "\u041d\u043e\u0432\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430", - "index.createOpenPad": "\u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u0435\u0442\u0435\/\u043e\u0442\u0432\u043e\u0440\u0435\u0442\u0435 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430 \u0441\u043e \u0438\u043c\u0435\u0442\u043e:", - "pad.toolbar.bold.title": "\u0417\u0430\u0434\u0435\u0431\u0435\u043b\u0435\u043d\u043e (Ctrl-B)", - "pad.toolbar.italic.title": "\u041a\u043e\u0441\u043e (Ctrl-I)", - "pad.toolbar.underline.title": "\u041f\u043e\u0434\u0432\u043b\u0435\u0447\u0435\u043d\u043e (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u041f\u0440\u0435\u0446\u0440\u0442\u0430\u043d\u043e", - "pad.toolbar.ol.title": "\u041f\u043e\u0434\u0440\u0435\u0434\u0435\u043d \u0441\u043f\u0438\u0441\u043e\u043a", - "pad.toolbar.ul.title": "\u041d\u0435\u043f\u043e\u0434\u0440\u0435\u0434\u0435\u043d \u0441\u043f\u0438\u0441\u043e\u043a", - "pad.toolbar.indent.title": "\u0412\u043e\u0432\u043b\u0435\u043a\u0443\u0432\u0430\u045a\u0435", - "pad.toolbar.unindent.title": "\u041e\u0442\u0441\u0442\u0430\u043f", - "pad.toolbar.undo.title": "\u0412\u0440\u0430\u0442\u0438 (Ctrl-Z)", - "pad.toolbar.redo.title": "\u041f\u043e\u0432\u0442\u043e\u0440\u0438 (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "\u041f\u043e\u043d\u0438\u0448\u0442\u0438 \u0433\u0438 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0442\u0435 \u0431\u043e\u0438", - "pad.toolbar.import_export.title": "\u0423\u0432\u043e\u0437\/\u0418\u0437\u0432\u043e\u0437 \u043e\u0434\/\u0432\u043e \u0440\u0430\u0437\u043d\u0438 \u043f\u043e\u0434\u0430\u0442\u043e\u0442\u0435\u0447\u043d\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438", - "pad.toolbar.timeslider.title": "\u0418\u0441\u0442\u043e\u0440\u0438\u0441\u043a\u0438 \u043f\u0440\u0435\u0433\u043b\u0435\u0434", - "pad.toolbar.savedRevision.title": "\u0417\u0430\u0447\u0443\u0432\u0430\u043d\u0438 \u0440\u0435\u0432\u0438\u0437\u0438\u0438", - "pad.toolbar.settings.title": "\u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0438", - "pad.toolbar.embed.title": "\u0412\u043c\u0435\u0442\u043d\u0438 \u0458\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0432\u0430", - "pad.toolbar.showusers.title": "\u041f\u0440\u0438\u043a\u0430\u0436. \u043a\u043e\u0440\u0438\u0441\u043d\u0438\u0446\u0438\u0442\u0435 \u043d\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0432\u0430", - "pad.colorpicker.save": "\u0417\u0430\u0447\u0443\u0432\u0430\u0458", - "pad.colorpicker.cancel": "\u041e\u0442\u043a\u0430\u0436\u0438", - "pad.loading": "\u0412\u0447\u0438\u0442\u0443\u0432\u0430\u043c...", - "pad.passwordRequired": "\u041f\u043e\u0442\u0440\u0435\u0431\u043d\u0430 \u0435 \u043b\u043e\u0437\u0438\u043d\u043a\u0430 \u0437\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u043f", - "pad.permissionDenied": "\u0417\u0430 \u043e\u0432\u0434\u0435 \u043d\u0435 \u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u0430 \u0434\u043e\u0437\u0432\u043e\u043b\u0430 \u0437\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u043f", - "pad.wrongPassword": "\u041f\u043e\u0433\u0440\u0435\u0448\u043d\u0430 \u043b\u043e\u0437\u0438\u043d\u043a\u0430", - "pad.settings.padSettings": "\u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0442\u0430", - "pad.settings.myView": "\u041c\u043e\u0458 \u043f\u043e\u0433\u043b\u0435\u0434", - "pad.settings.stickychat": "\u0420\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u0441\u0435\u043a\u043e\u0433\u0430\u0448 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u043e\u0442", - "pad.settings.colorcheck": "\u0410\u0432\u0442\u043e\u0440\u0441\u043a\u0438 \u0431\u043e\u0438", - "pad.settings.linenocheck": "\u0411\u0440\u043e\u0435\u0432\u0438 \u043d\u0430 \u0440\u0435\u0434\u043e\u0432\u0438\u0442\u0435", - "pad.settings.fontType": "\u0422\u0438\u043f \u043d\u0430 \u0444\u043e\u043d\u0442:", - "pad.settings.fontType.normal": "\u041d\u043e\u0440\u043c\u0430\u043b\u0435\u043d", - "pad.settings.fontType.monospaced": "\u041d\u0435\u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u0435\u043d", - "pad.settings.globalView": "\u0413\u043e\u0431\u0430\u043b\u0435\u043d \u043f\u043e\u0433\u043b\u0435\u0434", - "pad.settings.language": "\u0408\u0430\u0437\u0438\u043a:", - "pad.importExport.import_export": "\u0423\u0432\u043e\u0437\/\u0418\u0437\u0432\u043e\u0437", - "pad.importExport.import": "\u041f\u043e\u0434\u0438\u0433\u0430\u045a\u0435 \u043d\u0430 \u0431\u0438\u043b\u043e \u043a\u0430\u043a\u0432\u0430 \u0442\u0435\u043a\u0441\u0442\u0443\u0430\u043b\u043d\u0430 \u043f\u043e\u0434\u0430\u0442\u043e\u0442\u0435\u043a\u0430 \u0438\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", - "pad.importExport.importSuccessful": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e!", - "pad.importExport.export": "\u0418\u0437\u0432\u0435\u0437\u0438 \u0458\u0430 \u0442\u0435\u043a\u043e\u0432\u043d\u0430\u0442\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430 \u043a\u0430\u043a\u043e", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\u041f\u0440\u043e\u0441\u0442 \u0442\u0435\u043a\u0441\u0442", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\u041c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0443\u0432\u0435\u0437\u0443\u0432\u0430\u0442\u0435 \u0441\u0430\u043c\u043e \u043e\u0434 \u043f\u0440\u043e\u0441\u0442 \u0442\u0435\u043a\u0441\u0442 \u0438 html-\u0444\u043e\u0440\u043c\u0430\u0442. \u041f\u043e\u043d\u0430\u043f\u0440\u0435\u0434\u043d\u0438 \u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0443\u0432\u043e\u0437 \u045c\u0435 \u0434\u043e\u0431\u0438\u0435\u0442\u0435 \u0430\u043a\u043e <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\">\u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0442\u0435 AbiWord<\/a>.", - "pad.modals.connected": "\u041f\u043e\u0432\u0440\u0437\u0430\u043d\u043e.", - "pad.modals.reconnecting": "\u0412\u0435 \u043f\u0440\u0435\u043f\u043e\u0432\u0440\u0437\u0443\u0432\u0430\u043c \u0441\u043e \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0442\u0430...", - "pad.modals.forcereconnect": "\u041d\u0430\u043c\u0435\u0442\u043d\u0438 \u043f\u0440\u0435\u043f\u043e\u0432\u0440\u0437\u0443\u0432\u0430\u045a\u0435", - "pad.modals.userdup": "\u041e\u0442\u0432\u043e\u0440\u0435\u043d\u043e \u0432\u043e \u0434\u0440\u0443\u0433 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446", - "pad.modals.userdup.explanation": "\u041e\u0432\u0430\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430 \u0435 \u043e\u0442\u0432\u043e\u0440\u0435\u043d\u0430 \u043d\u0430 \u043f\u043e\u0432\u0435\u045c\u0435 \u043e\u0434 \u0435\u0434\u0435\u043d \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 (\u0432\u043e \u043f\u0440\u0435\u043b\u0438\u0441\u0442\u0443\u0432\u0430\u0447) \u043d\u0430 \u0441\u043c\u0435\u0442\u0430\u0447\u043e\u0442.", - "pad.modals.userdup.advice": "\u041f\u0440\u0435\u043f\u043e\u0432\u0440\u0437\u0435\u0442\u0435 \u0441\u0435 \u0437\u0430 \u0434\u0430 \u0433\u043e \u043a\u043e\u0440\u0438\u0441\u0442\u0438\u0442\u0435 \u043e\u0432\u043e\u0458 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446.", - "pad.modals.unauth": "\u041d\u0435\u043e\u0432\u043b\u0430\u0441\u0442\u0435\u043d\u043e", - "pad.modals.unauth.explanation": "\u0412\u0430\u0448\u0438\u0442\u0435 \u0434\u043e\u0437\u0432\u043e\u043b\u0438 \u0441\u0435 \u0438\u043c\u0430\u0430\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u0442\u043e \u0434\u043e\u0434\u0435\u043a\u0430 \u0458\u0430 \u0433\u043b\u0435\u0434\u0430\u0432\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0432\u0430. \u041e\u0431\u0438\u0434\u0435\u0442\u0435 \u0441\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0435\u043f\u043e\u0432\u0440\u0437\u0435\u0442\u0435.", - "pad.modals.looping": "\u0412\u0440\u0441\u043a\u0430\u0442\u0430 \u0435 \u043f\u0440\u0435\u043a\u0438\u043d\u0430\u0442\u0430.", - "pad.modals.looping.explanation": "\u0421\u0435 \u0458\u0430\u0432\u0438\u0458\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0441\u043e \u0432\u0440\u0441\u043a\u0430\u0442\u0430 \u0441\u043e \u0443\u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u043b\u043d\u0438\u043e\u0442 \u043e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447.", - "pad.modals.looping.cause": "\u041c\u043e\u0436\u0435\u0431\u0438 \u0441\u0442\u0435 \u043f\u043e\u0432\u0440\u0437\u0430\u043d\u0438 \u043f\u0440\u0435\u043a\u0443 \u043d\u0435\u0441\u043a\u043b\u0430\u0434\u0435\u043d \u043e\u0433\u043d\u0435\u043d \u0455\u0438\u0434 \u0438\u043b\u0438 \u0437\u0430\u0441\u0442\u0430\u043f\u043d\u0438\u043a.", - "pad.modals.initsocketfail": "\u041e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u043f\u0435\u043d.", - "pad.modals.initsocketfail.explanation": "\u041d\u0435 \u043c\u043e\u0436\u0435\u0432 \u0434\u0430 \u0441\u0435 \u043f\u043e\u0432\u0440\u0437\u0430\u043c \u0441\u043e \u0443\u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u043b\u043d\u0438\u043e\u0442 \u043e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447.", - "pad.modals.initsocketfail.cause": "\u041e\u0432\u0430 \u0432\u0435\u0440\u043e\u0458\u0430\u0442\u043d\u043e \u0441\u0435 \u0434\u043e\u043b\u0436\u0438 \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441\u043e \u0432\u0430\u0448\u0438\u043e\u0442 \u043f\u0440\u0435\u043b\u0438\u0441\u0442\u0443\u0432\u0430\u0447 \u0438\u043b\u0438 \u0432\u0440\u0441\u043a\u0430\u0442\u0430 \u0441\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442.", - "pad.modals.slowcommit": "\u041f\u0440\u0435\u043a\u0438\u043d\u0430\u0442\u043e.", - "pad.modals.slowcommit.explanation": "\u041e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u043d\u0435 \u0441\u0435 \u043e\u0434\u0455\u0438\u0432\u0430.", - "pad.modals.slowcommit.cause": "\u041e\u0432\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043e\u043b\u0436\u0438 \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0441\u043e \u043c\u0440\u0435\u0436\u043d\u043e\u0442\u043e \u043f\u043e\u0432\u0440\u0437\u0443\u0432\u0430\u045a\u0435.", - "pad.modals.deleted": "\u0418\u0437\u0431\u0440\u0438\u0448\u0430\u043d\u043e.", - "pad.modals.deleted.explanation": "\u041e\u0432\u0430\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430 \u0435 \u043e\u0442\u0441\u0442\u0440\u0430\u043d\u0435\u0442\u0430.", - "pad.modals.disconnected": "\u0412\u0440\u0441\u043a\u0430\u0442\u0430 \u0435 \u043f\u0440\u0435\u043a\u0438\u043d\u0430\u0442\u0430.", - "pad.modals.disconnected.explanation": "\u0412\u0440\u0441\u043a\u0430\u0442\u0430 \u0441\u043e \u043e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u0435 \u043f\u0440\u0435\u043a\u0438\u043d\u0430\u0442\u0430", - "pad.modals.disconnected.cause": "\u041e\u043f\u0441\u043b\u0443\u0436\u0443\u0432\u0430\u0447\u043e\u0442 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u043f\u0435\u043d. \u0418\u0437\u0432\u0435\u0441\u0442\u0435\u0442\u0435 \u043d\u00e8 \u0430\u043a\u043e \u043e\u0432\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438 \u0434\u0430 \u0432\u0438 \u0441\u0435 \u0441\u043b\u0443\u0447\u0443\u0432\u0430.", - "pad.share": "\u0421\u043f\u043e\u0434\u0435\u043b\u0438 \u0458\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0432\u0430", - "pad.share.readonly": "\u0421\u0430\u043c\u043e \u0447\u0438\u0442\u0430\u045a\u0435", - "pad.share.link": "\u0412\u0440\u0441\u043a\u0430", - "pad.share.emebdcode": "\u0412\u043c\u0435\u0442\u043d\u0438 URL", - "pad.chat": "\u0420\u0430\u0437\u0433\u043e\u0432\u043e\u0440", - "pad.chat.title": "\u041e\u0442\u0432\u043e\u0440\u0438 \u0433\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0442 \u0437\u0430 \u043e\u0432\u0430\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430.", - "pad.chat.loadmessages": "\u0412\u0447\u0438\u0442\u0430\u0458 \u0443\u0448\u0442\u0435 \u043f\u043e\u0440\u0430\u043a\u0438", - "timeslider.pageTitle": "{{appTitle}} \u0418\u0441\u0442\u043e\u0440\u0438\u0441\u043a\u0438 \u043f\u0440\u0435\u0433\u043b\u0435\u0434", - "timeslider.toolbar.returnbutton": "\u041d\u0430\u0437\u0430\u0434 \u043d\u0430 \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0442\u0430", - "timeslider.toolbar.authors": "\u0410\u0432\u0442\u043e\u0440\u0438:", - "timeslider.toolbar.authorsList": "\u041d\u0435\u043c\u0430 \u0430\u0432\u0442\u043e\u0440\u0438", - "timeslider.toolbar.exportlink.title": "\u0418\u0437\u0432\u043e\u0437", - "timeslider.exportCurrent": "\u0418\u0437\u0432\u0435\u0437\u0438 \u0458\u0430 \u0442\u0435\u043a\u043e\u0432\u043d\u0430\u0442\u0430 \u0432\u0435\u0440\u0437\u0438\u0458\u0430 \u043a\u0430\u043a\u043e:", - "timeslider.version": "\u0412\u0435\u0440\u0437\u0438\u0458\u0430 {{version}}", - "timeslider.saved": "\u0417\u0430\u0447\u0443\u0432\u0430\u043d\u043e \u043d\u0430 {{day}} {{month}} {{year}} \u0433.", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "\u0458\u0430\u043d\u0443\u0430\u0440\u0438", - "timeslider.month.february": "\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438", - "timeslider.month.march": "\u043c\u0430\u0440\u0442", - "timeslider.month.april": "\u0430\u043f\u0440\u0438\u043b", - "timeslider.month.may": "\u043c\u0430\u0458", - "timeslider.month.june": "\u0458\u0443\u043d\u0438", - "timeslider.month.july": "\u0458\u0443\u043b\u0438", - "timeslider.month.august": "\u0430\u0432\u0433\u0443\u0441\u0442", - "timeslider.month.september": "\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438", - "timeslider.month.october": "\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438", - "timeslider.month.november": "\u043d\u043e\u0435\u043c\u0432\u0440\u0438", - "timeslider.month.december": "\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438", - "timeslider.unnamedauthor": "{{num}} \u043d\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d \u0430\u0432\u0442\u043e\u0440", - "timeslider.unnamedauthors": "{{num}} \u043d\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0438 \u0430\u0432\u0442\u043e\u0440\u0438", - "pad.savedrevs.marked": "\u041e\u0432\u0430\u0430 \u0440\u0435\u0432\u0438\u0437\u0438\u0458\u0430 \u0441\u0435\u0433\u0430 \u0435 \u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u043a\u0430\u043a\u043e \u0437\u0430\u0447\u0443\u0432\u0430\u043d\u0430", - "pad.userlist.entername": "\u0412\u043d\u0435\u0441\u0435\u0442\u0435 \u0433\u043e \u0432\u0430\u0448\u0435\u0442\u043e \u0438\u043c\u0435", - "pad.userlist.unnamed": "\u0431\u0435\u0437 \u0438\u043c\u0435", - "pad.userlist.guest": "\u0413\u043e\u0441\u0442\u0438\u043d", - "pad.userlist.deny": "\u041e\u0434\u0431\u0438\u0458", - "pad.userlist.approve": "\u041e\u0434\u043e\u0431\u0440\u0438", - "pad.editbar.clearcolors": "\u0414\u0430 \u0433\u0438 \u043e\u0442\u0441\u0442\u0440\u0430\u043d\u0430\u043c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0442\u0435 \u0431\u043e\u0438 \u043e\u0434 \u0446\u0435\u043b\u0438\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442?", - "pad.impexp.importbutton": "\u0423\u0432\u0435\u0437\u0438 \u0441\u0435\u0433\u0430", - "pad.impexp.importing": "\u0423\u0432\u0435\u0437\u0443\u0432\u0430\u043c...", - "pad.impexp.confirmimport": "\u0423\u0432\u0435\u0437\u0443\u0432\u0430\u0458\u045c\u0438 \u0458\u0430 \u043f\u043e\u0434\u0430\u0442\u043e\u0442\u0435\u043a\u0430\u0442\u0430 \u045c\u0435 \u0433\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435 \u0446\u0435\u043b\u0438\u043e\u0442 \u0434\u043e\u0441\u0435\u0433\u0430\u0448\u0435\u043d \u0442\u0435\u043a\u0441\u0442 \u0432\u043e \u0442\u0435\u0442\u0440\u0430\u0442\u043a\u0430\u0442\u0430. \u0414\u0430\u043b\u0438 \u0441\u0442\u0435 \u0441\u0438\u0433\u0443\u0440\u043d\u0438 \u0434\u0435\u043a\u0430 \u0441\u0430\u043a\u0430\u0442\u0435 \u0434\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435?", - "pad.impexp.convertFailed": "\u041d\u0435 \u043c\u043e\u0436\u0435\u0432 \u0434\u0430 \u0458\u0430 \u0443\u0432\u0435\u0437\u0430\u043c \u043f\u043e\u0434\u0430\u0442\u043e\u0442\u0435\u043a\u0430\u0442\u0430. \u041f\u043e\u0441\u043b\u0443\u0436\u0435\u0442\u0435 \u0441\u0435 \u0441\u043e \u043f\u043e\u0438\u043d\u0430\u043a\u043e\u0432 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u043b\u0438 \u043f\u0440\u0435\u043a\u043e\u043f\u0438\u0440\u0430\u0458\u0442\u0435 \u0433\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0442 \u0440\u0430\u0447\u043d\u043e.", - "pad.impexp.uploadFailed": "\u041f\u043e\u0434\u0438\u0433\u0430\u045a\u0435\u0442\u043e \u043d\u0435 \u0443\u0441\u043f\u0435\u0430. \u041e\u0431\u0438\u0434\u0435\u0442\u0435 \u0441\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e.", - "pad.impexp.importfailed": "\u0423\u0432\u043e\u0437\u043e\u0442 \u043d\u0435 \u0443\u0441\u043f\u0435\u0430", - "pad.impexp.copypaste": "\u041f\u0440\u0435\u043a\u043e\u043f\u0438\u0440\u0430\u0458\u0442\u0435", - "pad.impexp.exportdisabled": "\u0418\u0437\u0432\u043e\u0437\u043e\u0442 \u0432\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0442 {{type}} \u0435 \u043e\u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d. \u0410\u043a\u043e \u0441\u0430\u043a\u0430\u0442\u0435 \u0434\u0430 \u0434\u043e\u0437\u043d\u0430\u0435\u0442\u0435 \u043f\u043e\u0432\u0435\u045c\u0435 \u0437\u0430 \u043e\u0432\u0430, \u043e\u0431\u0440\u0430\u0442\u0435\u0442\u0435 \u0441\u0435 \u043a\u0430\u0458 \u0441\u0438\u0441\u0442\u0435\u043c\u0441\u043a\u0438\u043e\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440." + "@metadata": { + "authors": [ + "Bjankuloski06", + "Brest" + ] + }, + "index.newPad": "Нова тетратка", + "index.createOpenPad": "или направете/отворете тетратка со името:", + "pad.toolbar.bold.title": "Задебелено (Ctrl-B)", + "pad.toolbar.italic.title": "Косо (Ctrl-I)", + "pad.toolbar.underline.title": "Подвлечено (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Прецртано", + "pad.toolbar.ol.title": "Подреден список", + "pad.toolbar.ul.title": "Неподреден список", + "pad.toolbar.indent.title": "Вовлекување", + "pad.toolbar.unindent.title": "Отстап", + "pad.toolbar.undo.title": "Врати (Ctrl-Z)", + "pad.toolbar.redo.title": "Повтори (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Поништи ги авторските бои", + "pad.toolbar.import_export.title": "Увоз/Извоз од/во разни податотечни формати", + "pad.toolbar.timeslider.title": "Историски преглед", + "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.passwordRequired": "Потребна е лозинка за пристап", + "pad.permissionDenied": "За овде не е потребна дозвола за пристап", + "pad.wrongPassword": "Погрешна лозинка", + "pad.settings.padSettings": "Поставки на тетратката", + "pad.settings.myView": "Мој поглед", + "pad.settings.stickychat": "Разговорите секогаш на екранот", + "pad.settings.colorcheck": "Авторски бои", + "pad.settings.linenocheck": "Броеви на редовите", + "pad.settings.rtlcheck": "Содржините да се читаат од десно на лево?", + "pad.settings.fontType": "Тип на фонт:", + "pad.settings.fontType.normal": "Нормален", + "pad.settings.fontType.monospaced": "Непропорционален", + "pad.settings.globalView": "Гобален поглед", + "pad.settings.language": "Јазик:", + "pad.importExport.import_export": "Увоз/Извоз", + "pad.importExport.import": "Подигање на било каква текстуална податотека или документ", + "pad.importExport.importSuccessful": "Успешно!", + "pad.importExport.export": "Извези ја тековната тетратка како", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Прост текст", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Можете да увезувате само од прост текст и html-формат. Понапредни можности за увоз ќе добиете ако \u003Ca 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\"\u003Eинсталирате AbiWord\u003C/a\u003E.", + "pad.modals.connected": "Поврзано.", + "pad.modals.reconnecting": "Ве преповрзувам со тетратката...", + "pad.modals.forcereconnect": "Наметни преповрзување", + "pad.modals.userdup": "Отворено во друг прозорец", + "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": "Врска", + "pad.share.emebdcode": "Вметни URL", + "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.saved": "Зачувано на {{day}} {{month}} {{year}} г.", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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": "декември", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: неименуван автор, other: неименувани автори ]}", + "pad.savedrevs.marked": "Оваа ревизија сега е означена како зачувана", + "pad.userlist.entername": "Внесете го вашето име", + "pad.userlist.unnamed": "без име", + "pad.userlist.guest": "Гостин", + "pad.userlist.deny": "Одбиј", + "pad.userlist.approve": "Одобри", + "pad.editbar.clearcolors": "Да ги отстранам авторските бои од целиот документ?", + "pad.impexp.importbutton": "Увези сега", + "pad.impexp.importing": "Увезувам...", + "pad.impexp.confirmimport": "Увезувајќи ја податотеката ќе го замените целиот досегашен текст во тетратката. Дали сте сигурни дека сакате да продолжите?", + "pad.impexp.convertFailed": "Не можев да ја увезам податотеката. Послужете се со поинаков формат или прекопирајте го текстот рачно.", + "pad.impexp.uploadFailed": "Подигањето не успеа. Обидете се повторно.", + "pad.impexp.importfailed": "Увозот не успеа", + "pad.impexp.copypaste": "Прекопирајте", + "pad.impexp.exportdisabled": "Извозот во форматот {{type}} е оневозможен. Ако сакате да дознаете повеќе за ова, обратете се кај системскиот администратор." }
\ No newline at end of file diff --git a/src/locales/ml.json b/src/locales/ml.json index e8250434..1a51cc99 100644 --- a/src/locales/ml.json +++ b/src/locales/ml.json @@ -1,119 +1,126 @@ { - "@metadata": { - "authors": [ - "Hrishikesh.kb", - "Praveenp", - "Santhosh.thottingal" - ] - }, - "index.newPad": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d3e\u0d21\u0d4d", - "index.createOpenPad": "\u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d \u0d2a\u0d47\u0d30\u0d41\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d2a\u0d3e\u0d21\u0d4d \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15\/\u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15:", - "pad.toolbar.bold.title": "\u0d15\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d42\u0d1f\u0d4d\u0d1f\u0d3f\u0d2f\u0d46\u0d34\u0d41\u0d24\u0d41\u0d15 (Ctrl-B)", - "pad.toolbar.italic.title": "\u0d1a\u0d46\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d46\u0d34\u0d41\u0d24\u0d41\u0d15 (Ctrl-I)", - "pad.toolbar.underline.title": "\u0d05\u0d1f\u0d3f\u0d35\u0d30\u0d2f\u0d3f\u0d1f\u0d41\u0d15 (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u0d35\u0d46\u0d1f\u0d4d\u0d1f\u0d41\u0d15", - "pad.toolbar.ol.title": "\u0d15\u0d4d\u0d30\u0d2e\u0d24\u0d4d\u0d24\u0d3f\u0d32\u0d41\u0d33\u0d4d\u0d33 \u0d2a\u0d1f\u0d4d\u0d1f\u0d3f\u0d15", - "pad.toolbar.ul.title": "\u0d15\u0d4d\u0d30\u0d2e\u0d30\u0d39\u0d3f\u0d24 \u0d2a\u0d1f\u0d4d\u0d1f\u0d3f\u0d15", - "pad.toolbar.indent.title": "\u0d35\u0d32\u0d24\u0d4d\u0d24\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d33\u0d4d\u0d33\u0d41\u0d15", - "pad.toolbar.unindent.title": "\u0d07\u0d1f\u0d24\u0d4d\u0d24\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d33\u0d4d\u0d33\u0d41\u0d15", - "pad.toolbar.undo.title": "\u0d24\u0d3f\u0d30\u0d38\u0d4d\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15 (Ctrl-Z)", - "pad.toolbar.redo.title": "\u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15 (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "\u0d30\u0d1a\u0d2f\u0d3f\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d31\u0d02 \u0d15\u0d33\u0d2f\u0d41\u0d15", - "pad.toolbar.import_export.title": "\u0d35\u0d4d\u0d2f\u0d24\u0d4d\u0d2f\u0d38\u0d4d\u0d24 \u0d2b\u0d2f\u0d7d \u0d24\u0d30\u0d19\u0d4d\u0d19\u0d33\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d\/\u0d24\u0d30\u0d19\u0d4d\u0d19\u0d33\u0d3f\u0d7d \u0d28\u0d3f\u0d28\u0d4d\u0d28\u0d4d \u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f\/\u0d15\u0d2f\u0d31\u0d4d\u0d31\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15", - "pad.toolbar.timeslider.title": "\u0d38\u0d2e\u0d2f\u0d30\u0d47\u0d16", - "pad.toolbar.savedRevision.title": "\u0d38\u0d47\u0d35\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3e\u0d7e\u0d2a\u0d4d\u0d2a\u0d24\u0d3f\u0d2a\u0d4d\u0d2a\u0d41\u0d15\u0d7e", - "pad.toolbar.settings.title": "\u0d38\u0d1c\u0d4d\u0d1c\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e", - "pad.toolbar.embed.title": "\u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d0e\u0d02\u0d2c\u0d46\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15", - "pad.toolbar.showusers.title": "\u0d08 \u0d2a\u0d3e\u0d21\u0d3f\u0d32\u0d41\u0d33\u0d4d\u0d33 \u0d09\u0d2a\u0d2f\u0d4b\u0d15\u0d4d\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d33\u0d46 \u0d2a\u0d4d\u0d30\u0d26\u0d7c\u0d36\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15", - "pad.colorpicker.save": "\u0d38\u0d47\u0d35\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15", - "pad.colorpicker.cancel": "\u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15", - "pad.loading": "\u0d36\u0d47\u0d16\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41...", - "pad.passwordRequired": "\u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d3e\u0d2f\u0d3f \u0d12\u0d30\u0d41 \u0d30\u0d39\u0d38\u0d4d\u0d2f\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d28\u0d7d\u0d15\u0d47\u0d23\u0d4d\u0d1f\u0d24\u0d3e\u0d23\u0d4d", - "pad.permissionDenied": "\u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d15\u0d3e\u0d23\u0d41\u0d35\u0d3e\u0d7b \u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d28\u0d41\u0d2e\u0d24\u0d3f\u0d2f\u0d3f\u0d32\u0d4d\u0d32", - "pad.wrongPassword": "\u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e \u0d28\u0d32\u0d4d\u0d15\u0d3f\u0d2f \u0d30\u0d39\u0d38\u0d4d\u0d2f\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d46\u0d31\u0d4d\u0d31\u0d3e\u0d2f\u0d3f\u0d30\u0d41\u0d28\u0d4d\u0d28\u0d41", - "pad.settings.padSettings": "\u0d2a\u0d3e\u0d21\u0d4d \u0d38\u0d1c\u0d4d\u0d1c\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e", - "pad.settings.myView": "\u0d0e\u0d28\u0d4d\u0d31\u0d46 \u0d15\u0d3e\u0d34\u0d4d\u0d1a", - "pad.settings.stickychat": "\u0d24\u0d24\u0d4d\u0d38\u0d2e\u0d2f\u0d02 \u0d38\u0d02\u0d35\u0d3e\u0d26\u0d02 \u0d0e\u0d2a\u0d4d\u0d2a\u0d4b\u0d34\u0d41\u0d02 \u0d38\u0d4d\u0d15\u0d4d\u0d30\u0d40\u0d28\u0d3f\u0d7d \u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15", - "pad.settings.colorcheck": "\u0d0e\u0d34\u0d41\u0d24\u0d4d\u0d24\u0d41\u0d15\u0d3e\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d31\u0d19\u0d4d\u0d19\u0d7e", - "pad.settings.linenocheck": "\u0d35\u0d30\u0d3f\u0d15\u0d33\u0d41\u0d1f\u0d46 \u0d15\u0d4d\u0d30\u0d2e\u0d38\u0d02\u0d16\u0d4d\u0d2f", - "pad.settings.fontType": "\u0d2b\u0d4b\u0d23\u0d4d\u0d1f\u0d4d \u0d24\u0d30\u0d02:", - "pad.settings.fontType.normal": "\u0d38\u0d3e\u0d27\u0d3e\u0d30\u0d23\u0d02", - "pad.settings.fontType.monospaced": "\u0d2e\u0d4b\u0d23\u0d4b\u0d38\u0d4d\u0d2a\u0d47\u0d38\u0d4d", - "pad.settings.globalView": "\u0d2e\u0d4a\u0d24\u0d4d\u0d24\u0d15\u0d4d\u0d15\u0d3e\u0d34\u0d4d\u0d1a", - "pad.settings.language": "\u0d2d\u0d3e\u0d37:", - "pad.importExport.import_export": "\u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f\/\u0d15\u0d2f\u0d31\u0d4d\u0d31\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15", - "pad.importExport.import": "\u0d0e\u0d28\u0d4d\u0d24\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d32\u0d41\u0d02 \u0d0e\u0d34\u0d41\u0d24\u0d4d\u0d24\u0d41 \u0d2a\u0d4d\u0d30\u0d2e\u0d3e\u0d23\u0d2e\u0d4b \u0d30\u0d47\u0d16\u0d2f\u0d4b \u0d05\u0d2a\u0d4d\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15", - "pad.importExport.importSuccessful": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d02!", - "pad.importExport.export": "\u0d07\u0d2a\u0d4d\u0d2a\u0d4b\u0d34\u0d24\u0d4d\u0d24\u0d46 \u0d2a\u0d3e\u0d21\u0d4d \u0d07\u0d19\u0d4d\u0d19\u0d28\u0d46 \u0d15\u0d2f\u0d31\u0d4d\u0d31\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15:", - "pad.importExport.exporthtml": "\u0d0e\u0d1a\u0d4d\u0d1a\u0d4d.\u0d31\u0d4d\u0d31\u0d3f.\u0d0e\u0d02.\u0d0e\u0d7d.", - "pad.importExport.exportplain": "\u0d35\u0d46\u0d31\u0d41\u0d02 \u0d0e\u0d34\u0d41\u0d24\u0d4d\u0d24\u0d4d", - "pad.importExport.exportword": "\u0d2e\u0d48\u0d15\u0d4d\u0d30\u0d4b\u0d38\u0d4b\u0d2b\u0d4d\u0d31\u0d4d\u0d31\u0d4d \u0d35\u0d47\u0d21\u0d4d", - "pad.importExport.exportpdf": "\u0d2a\u0d3f.\u0d21\u0d3f.\u0d0e\u0d2b\u0d4d.", - "pad.importExport.exportopen": "\u0d12.\u0d21\u0d3f.\u0d0e\u0d2b\u0d4d. (\u0d13\u0d2a\u0d4d\u0d2a\u0d7a \u0d21\u0d4b\u0d15\u0d4d\u0d2f\u0d41\u0d2e\u0d46\u0d28\u0d4d\u0d31\u0d4d \u0d2b\u0d4b\u0d7c\u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d4d)", - "pad.importExport.exportdokuwiki": "\u0d21\u0d4b\u0d15\u0d41\u0d35\u0d3f\u0d15\u0d4d\u0d15\u0d3f", - "pad.modals.connected": "\u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41.", - "pad.modals.reconnecting": "\u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d21\u0d3f\u0d32\u0d47\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d4d \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41...", - "pad.modals.forcereconnect": "\u0d0e\u0d28\u0d4d\u0d24\u0d3e\u0d2f\u0d3e\u0d32\u0d41\u0d02 \u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15", - "pad.modals.userdup": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d1c\u0d3e\u0d32\u0d15\u0d24\u0d4d\u0d24\u0d3f\u0d7d \u0d24\u0d41\u0d31\u0d28\u0d4d\u0d28\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41", - "pad.modals.userdup.explanation": "\u0d08 \u0d15\u0d2e\u0d4d\u0d2a\u0d4d\u0d2f\u0d42\u0d1f\u0d4d\u0d1f\u0d31\u0d3f\u0d7d \u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d12\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d27\u0d3f\u0d15\u0d02 \u0d2c\u0d4d\u0d30\u0d57\u0d38\u0d7c \u0d1c\u0d3e\u0d32\u0d15\u0d19\u0d4d\u0d19\u0d33\u0d3f\u0d7d \u0d24\u0d41\u0d31\u0d28\u0d4d\u0d28\u0d24\u0d3e\u0d2f\u0d3f \u0d15\u0d3e\u0d23\u0d41\u0d28\u0d4d\u0d28\u0d41.", - "pad.modals.userdup.advice": "\u0d08 \u0d1c\u0d3e\u0d32\u0d15\u0d02 \u0d24\u0d28\u0d4d\u0d28\u0d46 \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d28\u0d3e\u0d2f\u0d3f \u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15", - "pad.modals.unauth": "\u0d05\u0d28\u0d41\u0d35\u0d3e\u0d26\u0d2e\u0d3f\u0d32\u0d4d\u0d32", - "pad.modals.unauth.explanation": "\u0d08 \u0d24\u0d3e\u0d7e \u0d15\u0d23\u0d4d\u0d1f\u0d41\u0d15\u0d4a\u0d23\u0d4d\u0d1f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d46 \u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e\u0d15\u0d4d\u0d15\u0d41\u0d33\u0d4d\u0d33 \u0d05\u0d28\u0d41\u0d2e\u0d24\u0d3f\u0d15\u0d33\u0d3f\u0d7d \u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d2e\u0d41\u0d23\u0d4d\u0d1f\u0d3e\u0d2f\u0d3f. \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.", - "pad.modals.looping": "\u0d35\u0d47\u0d7c\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41.", - "pad.modals.looping.explanation": "\u0d38\u0d3f\u0d02\u0d15\u0d4d\u0d30\u0d23\u0d48\u0d38\u0d47\u0d37\u0d7b \u0d38\u0d46\u0d7c\u0d35\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d41\u0d33\u0d4d\u0d33 \u0d06\u0d36\u0d2f\u0d35\u0d3f\u0d28\u0d3f\u0d2e\u0d2f\u0d24\u0d4d\u0d24\u0d3f\u0d7d \u0d2a\u0d4d\u0d30\u0d36\u0d4d\u0d28\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d23\u0d4d\u0d1f\u0d4d.", - "pad.modals.looping.cause": "\u0d12\u0d30\u0d41\u0d2a\u0d15\u0d4d\u0d37\u0d47 \u0d2a\u0d4a\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d24\u0d4d\u0d24 \u0d2b\u0d2f\u0d7c\u0d35\u0d3e\u0d33\u0d3f\u0d32\u0d42\u0d1f\u0d46\u0d2f\u0d4b \u0d2a\u0d4d\u0d30\u0d4b\u0d15\u0d4d\u0d38\u0d3f\u0d2f\u0d3f\u0d32\u0d42\u0d1f\u0d46\u0d2f\u0d4b \u0d06\u0d15\u0d3e\u0d02 \u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e \u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d30\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d.", - "pad.modals.initsocketfail": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d3f\u0d32\u0d46\u0d24\u0d4d\u0d24\u0d3e\u0d7b \u0d2a\u0d31\u0d4d\u0d31\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32.", - "pad.modals.initsocketfail.explanation": "\u0d38\u0d3f\u0d02\u0d15\u0d4d\u0d30\u0d23\u0d48\u0d38\u0d47\u0d37\u0d7b \u0d38\u0d46\u0d7c\u0d35\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32.", - "pad.modals.initsocketfail.cause": "\u0d07\u0d28\u0d4d\u0d31\u0d7c\u0d28\u0d46\u0d31\u0d4d\u0d31\u0d4d \u0d15\u0d23\u0d15\u0d4d\u0d37\u0d28\u0d4d\u0d31\u0d46\u0d2f\u0d4b \u0d2c\u0d4d\u0d30\u0d57\u0d38\u0d31\u0d3f\u0d28\u0d4d\u0d31\u0d46\u0d2f\u0d4b \u0d2a\u0d4d\u0d30\u0d36\u0d4d\u0d28\u0d2e\u0d3e\u0d15\u0d3e\u0d02", - "pad.modals.slowcommit": "\u0d35\u0d47\u0d7c\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41.", - "pad.modals.slowcommit.explanation": "\u0d38\u0d46\u0d7c\u0d35\u0d7c \u0d2a\u0d4d\u0d30\u0d24\u0d3f\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32.", - "pad.modals.slowcommit.cause": "\u0d28\u0d46\u0d31\u0d4d\u0d31\u0d4d\u200c\u0d35\u0d7c\u0d15\u0d4d\u0d15\u0d4d \u0d2a\u0d4d\u0d30\u0d36\u0d4d\u0d28\u0d02 \u0d15\u0d3e\u0d30\u0d23\u0d2e\u0d3e\u0d15\u0d3e\u0d02.", - "pad.modals.deleted": "\u0d2e\u0d3e\u0d2f\u0d4d\u0d1a\u0d4d\u0d1a\u0d41", - "pad.modals.deleted.explanation": "\u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d28\u0d40\u0d15\u0d4d\u0d15\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41.", - "pad.modals.disconnected": "\u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d7e \u0d35\u0d47\u0d7c\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41.", - "pad.modals.disconnected.explanation": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d41\u0d33\u0d4d\u0d33 \u0d2c\u0d28\u0d4d\u0d27\u0d02 \u0d28\u0d37\u0d4d\u0d1f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41", - "pad.modals.disconnected.cause": "\u0d38\u0d46\u0d7c\u0d35\u0d7c \u0d32\u0d2d\u0d4d\u0d2f\u0d2e\u0d32\u0d4d\u0d32\u0d3e\u0d2f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d02. \u0d07\u0d24\u0d4d \u0d24\u0d41\u0d1f\u0d7c\u0d1a\u0d4d\u0d1a\u0d2f\u0d3e\u0d2f\u0d3f \u0d38\u0d02\u0d2d\u0d35\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41\u0d23\u0d4d\u0d1f\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d1e\u0d19\u0d4d\u0d19\u0d33\u0d46 \u0d05\u0d31\u0d3f\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.", - "pad.share": "\u0d08 \u0d2a\u0d3e\u0d21\u0d4d \u0d2a\u0d19\u0d4d\u0d15\u0d3f\u0d1f\u0d41\u0d15", - "pad.share.readonly": "\u0d35\u0d3e\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d7d \u0d2e\u0d3e\u0d24\u0d4d\u0d30\u0d02", - "pad.share.link": "\u0d15\u0d23\u0d4d\u0d23\u0d3f", - "pad.share.emebdcode": "\u0d0e\u0d02\u0d2c\u0d46\u0d21\u0d4d \u0d2f\u0d41.\u0d06\u0d7c.\u0d0e\u0d7d.", - "pad.chat": "\u0d24\u0d24\u0d4d\u0d38\u0d2e\u0d2f\u0d38\u0d02\u0d35\u0d3e\u0d26\u0d02", - "pad.chat.title": "\u0d08 \u0d2a\u0d3e\u0d21\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d24\u0d24\u0d4d\u0d38\u0d2e\u0d2f\u0d38\u0d02\u0d35\u0d3e\u0d26\u0d02 \u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15.", - "pad.chat.loadmessages": "\u0d15\u0d42\u0d1f\u0d41\u0d24\u0d7d \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d0e\u0d1f\u0d41\u0d15\u0d4d\u0d15\u0d41\u0d15", - "timeslider.pageTitle": "{{appTitle}} \u0d38\u0d2e\u0d2f\u0d30\u0d47\u0d16", - "timeslider.toolbar.returnbutton": "\u0d2a\u0d3e\u0d21\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d41\u0d2a\u0d4b\u0d35\u0d41\u0d15", - "timeslider.toolbar.authors": "\u0d30\u0d1a\u0d2f\u0d3f\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d7e:", - "timeslider.toolbar.authorsList": "\u0d06\u0d30\u0d41\u0d02 \u0d0e\u0d34\u0d41\u0d24\u0d3f\u0d2f\u0d3f\u0d1f\u0d4d\u0d1f\u0d3f\u0d32\u0d4d\u0d32", - "timeslider.toolbar.exportlink.title": "\u0d15\u0d2f\u0d31\u0d4d\u0d31\u0d41\u0d2e\u0d24\u0d3f", - "timeslider.exportCurrent": "\u0d08 \u0d2a\u0d24\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d \u0d07\u0d19\u0d4d\u0d19\u0d28\u0d46 \u0d0e\u0d1f\u0d41\u0d15\u0d4d\u0d15\u0d41\u0d15:", - "timeslider.version": "\u0d2a\u0d24\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d {{version}}", - "timeslider.saved": "\u0d38\u0d47\u0d35\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d24\u0d4d {{month}} {{day}}, {{year}}", - "timeslider.dateformat": "{{month}}\/{{day}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f", - "timeslider.month.february": "\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f", - "timeslider.month.march": "\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d", - "timeslider.month.april": "\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d", - "timeslider.month.may": "\u0d2e\u0d47\u0d2f\u0d4d", - "timeslider.month.june": "\u0d1c\u0d42\u0d7a", - "timeslider.month.july": "\u0d1c\u0d42\u0d32\u0d48", - "timeslider.month.august": "\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d", - "timeslider.month.september": "\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c", - "timeslider.month.october": "\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c", - "timeslider.month.november": "\u0d28\u0d35\u0d02\u0d2c\u0d7c", - "timeslider.month.december": "\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c", - "pad.savedrevs.marked": "\u0d08 \u0d28\u0d3e\u0d7e\u0d2a\u0d4d\u0d2a\u0d24\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d \u0d38\u0d47\u0d35\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3e\u0d7e\u0d2a\u0d4d\u0d2a\u0d24\u0d3f\u0d2a\u0d4d\u0d2a\u0d3e\u0d2f\u0d3f \u0d05\u0d1f\u0d2f\u0d3e\u0d33\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41", - "pad.userlist.entername": "\u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d47\u0d30\u0d4d \u0d28\u0d7d\u0d15\u0d41\u0d15", - "pad.userlist.unnamed": "\u0d2a\u0d47\u0d30\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24", - "pad.userlist.guest": "\u0d05\u0d24\u0d3f\u0d25\u0d3f", - "pad.userlist.deny": "\u0d28\u0d3f\u0d30\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15", - "pad.userlist.approve": "\u0d05\u0d02\u0d17\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15", - "pad.editbar.clearcolors": "\u0d21\u0d4b\u0d15\u0d4d\u0d2f\u0d41\u0d2e\u0d46\u0d28\u0d4d\u0d31\u0d3f\u0d7d \u0d30\u0d1a\u0d2f\u0d3f\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d33\u0d46 \u0d38\u0d42\u0d1a\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d28\u0d3e\u0d2f\u0d3f \u0d28\u0d7d\u0d15\u0d3f\u0d2f\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d31\u0d19\u0d4d\u0d19\u0d7e \u0d12\u0d34\u0d3f\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d1f\u0d4d\u0d1f\u0d46?", - "pad.impexp.importbutton": "\u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15", - "pad.impexp.importing": "\u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41...", - "pad.impexp.confirmimport": "\u0d12\u0d30\u0d41 \u0d2a\u0d4d\u0d30\u0d2e\u0d3e\u0d23\u0d02 \u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d41\u0d33\u0d4d\u0d33 \u0d0e\u0d34\u0d41\u0d24\u0d4d\u0d24\u0d41\u0d15\u0d7e \u0d28\u0d37\u0d4d\u0d1f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d28\u0d3f\u0d1f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d02, \u0d24\u0d41\u0d1f\u0d30\u0d23\u0d2e\u0d46\u0d28\u0d4d\u0d28\u0d4d \u0d09\u0d31\u0d2a\u0d4d\u0d2a\u0d3e\u0d23\u0d4b?", - "pad.impexp.convertFailed": "\u0d08 \u0d2a\u0d4d\u0d30\u0d2e\u0d3e\u0d23\u0d02 \u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d38\u0d3e\u0d27\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d32\u0d4d\u0d32. \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d21\u0d4b\u0d15\u0d4d\u0d2f\u0d41\u0d2e\u0d46\u0d28\u0d4d\u0d31\u0d4d \u0d2b\u0d4b\u0d7c\u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15\u0d2f\u0d4b, \u0d38\u0d4d\u0d35\u0d28\u0d4d\u0d24\u0d2e\u0d3e\u0d2f\u0d3f \u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d3f \u0d1a\u0d47\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d15\u0d2f\u0d4b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15", - "pad.impexp.uploadFailed": "\u0d05\u0d2a\u0d4d\u200c\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41. \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15", - "pad.impexp.importfailed": "\u0d07\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d24\u0d3f \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41", - "pad.impexp.copypaste": "\u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d3f \u0d1a\u0d47\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d15", - "pad.impexp.exportdisabled": "{{type}} \u0d2b\u0d4b\u0d7c\u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d7d \u0d15\u0d2f\u0d31\u0d4d\u0d31\u0d41\u0d2e\u0d24\u0d3f \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d \u0d24\u0d1f\u0d1e\u0d4d\u0d1e\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41. \u0d15\u0d42\u0d1f\u0d41\u0d24\u0d7d \u0d35\u0d3f\u0d35\u0d30\u0d19\u0d4d\u0d19\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d24\u0d3e\u0d19\u0d4d\u0d15\u0d33\u0d41\u0d1f\u0d46 \u0d38\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d02 \u0d05\u0d21\u0d4d\u0d2e\u0d3f\u0d28\u0d3f\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d31\u0d4d\u0d31\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d15." + "@metadata": { + "authors": [ + "Akhilan", + "Clockery", + "Hrishikesh.kb", + "Praveenp", + "Santhosh.thottingal" + ] + }, + "index.newPad": "പുതിയ പാഡ്", + "index.createOpenPad": "അല്ലെങ്കിൽ പേരുപയോഗിച്ച് പാഡ് സൃഷ്ടിക്കുക/തുറക്കുക:", + "pad.toolbar.bold.title": "കടുപ്പത്തിൽ (Ctrl-B)", + "pad.toolbar.italic.title": "ചെരിച്ചെഴുതുക (Ctrl-I)", + "pad.toolbar.underline.title": "അടിവരയിടുക (Ctrl-U)", + "pad.toolbar.strikethrough.title": "വെട്ടുക", + "pad.toolbar.ol.title": "ക്രമത്തിലുള്ള പട്ടിക", + "pad.toolbar.ul.title": "ക്രമരഹിത പട്ടിക", + "pad.toolbar.indent.title": "വലത്തേക്ക് തള്ളുക (ടാബ്)", + "pad.toolbar.unindent.title": "ഇടത്തേക്ക് തള്ളുക (ഷിഫ്റ്റ്+ടാബ്)", + "pad.toolbar.undo.title": "തിരസ്കരിക്കുക (Ctrl-Z)", + "pad.toolbar.redo.title": "വീണ്ടും ചെയ്യുക (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "രചയിതാക്കൾക്കുള്ള നിറം കളയുക", + "pad.toolbar.import_export.title": "വ്യത്യസ്ത ഫയൽ തരങ്ങളിലേക്ക്/തരങ്ങളിൽ നിന്ന് ഇറക്കുമതി/കയറ്റുമതി ചെയ്യുക", + "pad.toolbar.timeslider.title": "സമയരേഖ", + "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.passwordRequired": "ഈ പാഡ് ഉപയോഗിക്കുന്നതിനായി ഒരു രഹസ്യവാക്ക് നൽകേണ്ടതാണ്", + "pad.permissionDenied": "ഈ പാഡ് കാണുവാൻ താങ്കൾക്ക് അനുമതിയില്ല", + "pad.wrongPassword": "താങ്കൾ നല്കിയ രഹസ്യവാക്ക് തെറ്റായിരുന്നു", + "pad.settings.padSettings": "പാഡ് സജ്ജീകരണങ്ങൾ", + "pad.settings.myView": "എന്റെ കാഴ്ച", + "pad.settings.stickychat": "തത്സമയസംവാദം എപ്പോഴും സ്ക്രീനിൽ കാണിക്കുക", + "pad.settings.colorcheck": "എഴുത്തുകാർക്കുള്ള നിറങ്ങൾ", + "pad.settings.linenocheck": "വരികളുടെ ക്രമസംഖ്യ", + "pad.settings.rtlcheck": "ഉള്ളടക്കം വലത്തുനിന്ന് ഇടത്തോട്ടാണോ വായിക്കേണ്ടത്?", + "pad.settings.fontType": "ഫോണ്ട് തരം:", + "pad.settings.fontType.normal": "സാധാരണം", + "pad.settings.fontType.monospaced": "മോണോസ്പേസ്", + "pad.settings.globalView": "മൊത്തക്കാഴ്ച", + "pad.settings.language": "ഭാഷ:", + "pad.importExport.import_export": "ഇറക്കുമതി/കയറ്റുമതി ചെയ്യുക", + "pad.importExport.import": "എന്തെങ്കിലും എഴുത്തു പ്രമാണമോ രേഖയോ അപ്ലോഡ് ചെയ്യുക", + "pad.importExport.importSuccessful": "വിജയകരം!", + "pad.importExport.export": "ഇപ്പോഴത്തെ പാഡ് ഇങ്ങനെ കയറ്റുമതി ചെയ്യുക:", + "pad.importExport.exporthtml": "എച്ച്.റ്റി.എം.എൽ.", + "pad.importExport.exportplain": "വെറും എഴുത്ത്", + "pad.importExport.exportword": "മൈക്രോസോഫ്റ്റ് വേഡ്", + "pad.importExport.exportpdf": "പി.ഡി.എഫ്.", + "pad.importExport.exportopen": "ഒ.ഡി.എഫ്. (ഓപ്പൺ ഡോക്യുമെന്റ് ഫോർമാറ്റ്)", + "pad.importExport.exportdokuwiki": "ഡോകുവിക്കി", + "pad.importExport.abiword.innerHTML": "പ്ലെയിൻ ടെക്സ്റ്റോ എച്ച്.റ്റി.എം.എൽ. തരമോ മാത്രമേ താങ്കൾക്ക് ഇറക്കുമതി ചെയ്യാനാവൂ. കൂടുതൽ വിപുലീകൃത ഇറക്കുമതി സൗകര്യങ്ങൾക്കായി ദയവായി \u003Ca 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\"\u003Eഅബിവേഡ് ഇൻസ്റ്റോൾ ചെയ്യുക\u003C/a\u003E.", + "pad.modals.connected": "ബന്ധിപ്പിച്ചിരിക്കുന്നു.", + "pad.modals.reconnecting": "താങ്കളുടെ പാഡിലേയ്ക്ക് വീണ്ടും ബന്ധിപ്പിക്കുന്നു...", + "pad.modals.forcereconnect": "എന്തായാലും ബന്ധിപ്പിക്കുക", + "pad.modals.userdup": "മറ്റൊരു ജാലകത്തിൽ തുറന്നിരിക്കുന്നു", + "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": "കണ്ണി", + "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.saved": "സേവ് ചെയ്തത് {{month}} {{day}}, {{year}}", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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": "ഡിസംബർ", + "timeslider.unnamedauthors": "{{num}} പേരില്ലാത്ത {[plural(num) one: രചയിതാവ്, other: രചയിതാക്കൾ }}", + "pad.savedrevs.marked": "ഈ നാൾപ്പതിപ്പ് സേവ് ചെയ്തിട്ടുള്ള നാൾപ്പതിപ്പായി അടയാളപ്പെടുത്തിയിരിക്കുന്നു", + "pad.userlist.entername": "താങ്കളുടെ പേര് നൽകുക", + "pad.userlist.unnamed": "പേരില്ലാത്തവ", + "pad.userlist.guest": "അതിഥി", + "pad.userlist.deny": "നിരസിക്കുക", + "pad.userlist.approve": "അംഗീകരിക്കുക", + "pad.editbar.clearcolors": "ഡോക്യുമെന്റിൽ രചയിതാക്കളെ സൂചിപ്പിക്കാനായി നൽകിയിട്ടുള്ള നിറങ്ങൾ ഒഴിവാക്കട്ടെ?", + "pad.impexp.importbutton": "ഇറക്കുമതി ചെയ്യുക", + "pad.impexp.importing": "ഇറക്കുമതി ചെയ്യുന്നു...", + "pad.impexp.confirmimport": "ഒരു പ്രമാണം ഇറക്കുമതി ചെയ്യുന്നത് നിലവിലുള്ള എഴുത്തുകൾ നഷ്ടപ്പെടാനിടയാക്കും, തുടരണമെന്ന് ഉറപ്പാണോ?", + "pad.impexp.convertFailed": "ഈ പ്രമാണം ഇറക്കുമതി ചെയ്യാൻ സാധിച്ചില്ല. ദയവായി മറ്റൊരു ഡോക്യുമെന്റ് ഫോർമാറ്റ് ഉപയോഗിക്കുകയോ, സ്വന്തമായി പകർത്തി ചേർക്കുകയോ ചെയ്യുക", + "pad.impexp.uploadFailed": "അപ്ലോഡ് പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക", + "pad.impexp.importfailed": "ഇറക്കുമതി പരാജയപ്പെട്ടു", + "pad.impexp.copypaste": "ദയവായി പകർത്തി ചേർക്കുക", + "pad.impexp.exportdisabled": "{{type}} ഫോർമാറ്റിൽ കയറ്റുമതി ചെയ്യുന്നത് തടഞ്ഞിരിക്കുന്നു. കൂടുതൽ വിവരങ്ങൾക്ക് താങ്കളുടെ സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററുമായി ബന്ധപ്പെടുക." }
\ No newline at end of file diff --git a/src/locales/mr.json b/src/locales/mr.json new file mode 100644 index 00000000..df9368bb --- /dev/null +++ b/src/locales/mr.json @@ -0,0 +1,57 @@ +{ + "@metadata": { + "authors": [ + "Ganeshgiram", + "V.narsikar", + "Ydyashad" + ] + }, + "index.newPad": "नव पान", + "pad.toolbar.bold.title": "ठळक (Ctrl-B)", + "pad.toolbar.italic.title": "तिरपी मुद्राक्षरे (Ctrl-I)", + "pad.toolbar.underline.title": "अधोरेखन (Ctrl-U)", + "pad.toolbar.strikethrough.title": "अक्षरांवर काट", + "pad.toolbar.savedRevision.title": "आवृत्ती जतन करा", + "pad.toolbar.settings.title": "संरचना", + "pad.colorpicker.save": "जतन करा", + "pad.colorpicker.cancel": "रद्द करा", + "pad.loading": "प्रभारण करीत आहे", + "pad.wrongPassword": "आपला परवलीचा शब्द चूक होता", + "pad.settings.myView": "माझे दृश्य", + "pad.settings.linenocheck": "रेषांचे क्रमांक", + "pad.settings.language": "भाषा", + "pad.importExport.import_export": "आयात/निर्यात", + "pad.importExport.importSuccessful": "यशस्वी!", + "pad.importExport.exportplain": "साधा मजकूर", + "pad.importExport.exportword": "मायक्रोसॉफ्ट वर्ड", + "pad.importExport.exportpdf": "पीडीएफ", + "pad.importExport.exportopen": "ओडीएफ(ओपन डॉक्यूमेंट फॉरमॅट)", + "pad.importExport.exportdokuwiki": "डुकुविकि", + "pad.modals.connected": "अनुबंधित", + "pad.modals.initsocketfail": "विदागारास पोच नाही.", + "pad.modals.deleted": "वगळले.", + "pad.modals.disconnected.cause": "बहुतेक सरवर उपलब्ध होणार नाही। अस वारंवार झाल्यास कृपया आम्हाला कळवा।", + "pad.share.link": "दुवा", + "pad.chat": "गप्पा", + "timeslider.toolbar.authorsList": "लेखक नाही", + "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.approve": "मंजूर करा", + "pad.impexp.importbutton": "आता आयात करा", + "pad.impexp.importing": "आयात करीत आहे...", + "pad.impexp.importfailed": "आयात अयशस्वी", + "pad.impexp.copypaste": "कृपया नकल-डकवा" +}
\ No newline at end of file diff --git a/src/locales/ms.json b/src/locales/ms.json index 04055d26..2d8e9410 100644 --- a/src/locales/ms.json +++ b/src/locales/ms.json @@ -1,120 +1,118 @@ { - "@metadata": { - "authors": [ - "Anakmalaysia" - ] - }, - "index.newPad": "Pad baru", - "index.createOpenPad": "atau cipta\/buka Pad yang bernama:", - "pad.toolbar.bold.title": "Tebal (Ctrl-B)", - "pad.toolbar.italic.title": "Miring (Ctrl-I)", - "pad.toolbar.underline.title": "Garis bawah (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Garis lorek", - "pad.toolbar.ol.title": "Senarai tertib", - "pad.toolbar.ul.title": "Senarai tak tertib", - "pad.toolbar.indent.title": "Engsot ke dalam", - "pad.toolbar.unindent.title": "Engsot ke luar", - "pad.toolbar.undo.title": "Buat asal (Ctrl-Z)", - "pad.toolbar.redo.title": "Buat semula (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Padamkan Warna Pengarang", - "pad.toolbar.import_export.title": "Import\/Eksport dari\/ke format-format fail berbeza", - "pad.toolbar.timeslider.title": "Gelangsar masa", - "pad.toolbar.savedRevision.title": "Semakan Tersimpan", - "pad.toolbar.settings.title": "Tetapan", - "pad.toolbar.embed.title": "Benamkan pad ini", - "pad.toolbar.showusers.title": "Tunjukkan pengguna pada pad ini", - "pad.colorpicker.save": "Simpan", - "pad.colorpicker.cancel": "Batalkan", - "pad.loading": "Sedang dimuatkan...", - "pad.passwordRequired": "Anda memerlukan kata laluan untuk mengakses pad ini", - "pad.permissionDenied": "Anda tiada kebenaran untuk mengakses pad ini", - "pad.wrongPassword": "Kata laluan anda salah", - "pad.settings.padSettings": "Tetapan Pad", - "pad.settings.myView": "Paparan Saya", - "pad.settings.stickychat": "Sentiasa bersembang pada skrin", - "pad.settings.colorcheck": "Warna pengarang", - "pad.settings.linenocheck": "Nombor baris", - "pad.settings.fontType": "Jenis fon:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "Paparan Sejagat", - "pad.settings.language": "Bahasa:", - "pad.importExport.import_export": "Import\/Eksport", - "pad.importExport.import": "Muat naik sebarang fail teks atau dokumen", - "pad.importExport.importSuccessful": "Berjaya!", - "pad.importExport.export": "Eksport pad semasa sebagai:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Teks biasa", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Anda hanya boleh mengimport dari format teks biasa atau html. Untuk ciri-ciri import yang lebih maju, sila <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\">memasang abiword<\/a>.", - "pad.modals.connected": "Bersambung.", - "pad.modals.reconnecting": "Bersambung semula dengan pad anda...", - "pad.modals.forcereconnect": "Sambung semula secara paksa", - "pad.modals.userdup": "Dibuka di tetingkap lain", - "pad.modals.userdup.explanation": "Pad ini nampaknya telah dibuka di lebih daripada satu tetingkap pelayar pada komputer ini.", - "pad.modals.userdup.advice": "Sambung semula untuk menggunakan tetingkap ini pula.", - "pad.modals.unauth": "Tidak dibenarkan", - "pad.modals.unauth.explanation": "Kebenaran anda telah berubah sewaktu memaparkan halaman ini. Cuba bersambung semula.", - "pad.modals.looping": "Terputus.", - "pad.modals.looping.explanation": "Terdapat masalah komunikasi dengan pelayan penyegerakan.", - "pad.modals.looping.cause": "Mungkin anda telah bersambung melalui tembok api atau proksi yang tidak serasi.", - "pad.modals.initsocketfail": "Pelayan tidak boleh dicapai.", - "pad.modals.initsocketfail.explanation": "Tidak dapat bersambung dengan pelayar penyegerakan.", - "pad.modals.initsocketfail.cause": "Ini mungkin disebabkan oleh masalah dengan pelayar atau sambungan internet anda.", - "pad.modals.slowcommit": "Terputus.", - "pad.modals.slowcommit.explanation": "Pelayan tidak membalas.", - "pad.modals.slowcommit.cause": "Ini mungkin disebabkan oleh masalah dengan kesambungan rangkaian anda.", - "pad.modals.deleted": "Dihapuskan.", - "pad.modals.deleted.explanation": "Pad ini telah dibuang.", - "pad.modals.disconnected": "Sambungan anda telah diputuskan.", - "pad.modals.disconnected.explanation": "Sambungan ke pelayan terputus", - "pad.modals.disconnected.cause": "Pelayan mungkin tidak dapat dicapai. Sila beritahu kami jika masalah ini berterusan.", - "pad.share": "Kongsikan pad ini", - "pad.share.readonly": "Baca sahaja", - "pad.share.link": "Pautan", - "pad.share.emebdcode": "Benamkan URL", - "pad.chat": "Sembang", - "pad.chat.title": "Buka ruang sembang untuk pad ini.", - "pad.chat.loadmessages": "Muatkan banyak lagi pesanan", - "timeslider.pageTitle": "Gelangsar Masa {{appTitle}}", - "timeslider.toolbar.returnbutton": "Kembali ke pad", - "timeslider.toolbar.authors": "Pengarang:", - "timeslider.toolbar.authorsList": "Tiada Pengarang", - "timeslider.toolbar.exportlink.title": "Eksport", - "timeslider.exportCurrent": "Eksport versi semasa sebagai:", - "timeslider.version": "Versi {{version}}", - "timeslider.saved": "Disimpan pada {{day}} {{month}} {{year}}", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Januari", - "timeslider.month.february": "Februari", - "timeslider.month.march": "Mac", - "timeslider.month.april": "April", - "timeslider.month.may": "Mei", - "timeslider.month.june": "Jun", - "timeslider.month.july": "Julai", - "timeslider.month.august": "Ogos", - "timeslider.month.september": "September", - "timeslider.month.october": "Oktober", - "timeslider.month.november": "November", - "timeslider.month.december": "Disember", - "timeslider.unnamedauthor": "{{num}} orang pengarang awanama", - "timeslider.unnamedauthors": "{{num}} orang pengarang awanama", - "pad.savedrevs.marked": "Semakan ini telah ditandai sebagai semakan tersimpan", - "pad.userlist.entername": "Taipkan nama anda", - "pad.userlist.unnamed": "tanpa nama", - "pad.userlist.guest": "Tetamu", - "pad.userlist.deny": "Tolak", - "pad.userlist.approve": "Terima", - "pad.editbar.clearcolors": "Padamkan warna pengarang pada seluruh dokumen?", - "pad.impexp.importbutton": "Import Sekarang", - "pad.impexp.importing": "Sedang mengimport...", - "pad.impexp.confirmimport": "Mengimport fail akan menulis ganti teks semasa pada pad ini. Adakah anda benar-benar ingin teruskan?", - "pad.impexp.convertFailed": "Fail tidak dapat diimport. Sila gunakan format dokumen yang lain atau salin tampal secara manual", - "pad.impexp.uploadFailed": "Muat naik gagal, sila cuba lagi", - "pad.impexp.importfailed": "Import gagal", - "pad.impexp.copypaste": "Sila salin tampal", - "pad.impexp.exportdisabled": "Mengeksport dalam format {{type}} dilarang. Sila hubungi pentadbir sistem anda untuk keterangan lanjut." + "@metadata": { + "authors": [ + "Anakmalaysia" + ] + }, + "index.newPad": "Pad baru", + "index.createOpenPad": "atau cipta/buka Pad yang bernama:", + "pad.toolbar.bold.title": "Tebal (Ctrl-B)", + "pad.toolbar.italic.title": "Miring (Ctrl-I)", + "pad.toolbar.underline.title": "Garis bawah (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Garis lorek", + "pad.toolbar.ol.title": "Senarai tertib", + "pad.toolbar.ul.title": "Senarai tak tertib", + "pad.toolbar.indent.title": "Engsot ke dalam", + "pad.toolbar.unindent.title": "Engsot ke luar", + "pad.toolbar.undo.title": "Buat asal (Ctrl-Z)", + "pad.toolbar.redo.title": "Buat semula (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Padamkan Warna Pengarang", + "pad.toolbar.import_export.title": "Import/Eksport dari/ke format-format fail berbeza", + "pad.toolbar.timeslider.title": "Gelangsar masa", + "pad.toolbar.savedRevision.title": "Simpan Semakan", + "pad.toolbar.settings.title": "Tetapan", + "pad.toolbar.embed.title": "Kongsikan dan Terapkan pad ini", + "pad.toolbar.showusers.title": "Tunjukkan pengguna pada pad ini", + "pad.colorpicker.save": "Simpan", + "pad.colorpicker.cancel": "Batalkan", + "pad.loading": "Sedang dimuatkan...", + "pad.passwordRequired": "Anda memerlukan kata laluan untuk mengakses pad ini", + "pad.permissionDenied": "Anda tiada kebenaran untuk mengakses pad ini", + "pad.wrongPassword": "Kata laluan anda salah", + "pad.settings.padSettings": "Tetapan Pad", + "pad.settings.myView": "Paparan Saya", + "pad.settings.stickychat": "Sentiasa bersembang pada skrin", + "pad.settings.colorcheck": "Warna pengarang", + "pad.settings.linenocheck": "Nombor baris", + "pad.settings.rtlcheck": "Membaca dari kanan ke kiri?", + "pad.settings.fontType": "Jenis fon:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Paparan Sejagat", + "pad.settings.language": "Bahasa:", + "pad.importExport.import_export": "Import/Eksport", + "pad.importExport.import": "Muat naik sebarang fail teks atau dokumen", + "pad.importExport.importSuccessful": "Berjaya!", + "pad.importExport.export": "Eksport pad semasa sebagai:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Teks biasa", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Anda hanya boleh mengimport dari format teks biasa atau html. Untuk ciri-ciri import yang lebih maju, sila \u003Ca 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\"\u003Ememasang abiword\u003C/a\u003E.", + "pad.modals.connected": "Bersambung.", + "pad.modals.reconnecting": "Bersambung semula dengan pad anda...", + "pad.modals.forcereconnect": "Sambung semula secara paksa", + "pad.modals.userdup": "Dibuka di tetingkap lain", + "pad.modals.userdup.explanation": "Pad ini nampaknya telah dibuka di lebih daripada satu tetingkap pelayar pada komputer ini.", + "pad.modals.userdup.advice": "Sambung semula untuk menggunakan tetingkap ini pula.", + "pad.modals.unauth": "Tidak dibenarkan", + "pad.modals.unauth.explanation": "Kebenaran anda telah berubah sewaktu memaparkan halaman ini. Cuba bersambung semula.", + "pad.modals.looping.explanation": "Terdapat masalah komunikasi dengan pelayan penyegerakan.", + "pad.modals.looping.cause": "Mungkin anda telah bersambung melalui tembok api atau proksi yang tidak serasi.", + "pad.modals.initsocketfail": "Pelayan tidak boleh dicapai.", + "pad.modals.initsocketfail.explanation": "Tidak dapat bersambung dengan pelayar penyegerakan.", + "pad.modals.initsocketfail.cause": "Ini mungkin disebabkan oleh masalah dengan pelayar atau sambungan internet anda.", + "pad.modals.slowcommit.explanation": "Pelayan tidak membalas.", + "pad.modals.slowcommit.cause": "Ini mungkin disebabkan oleh masalah dengan kesambungan rangkaian anda.", + "pad.modals.deleted": "Dihapuskan.", + "pad.modals.deleted.explanation": "Pad ini telah dibuang.", + "pad.modals.disconnected": "Sambungan anda telah diputuskan.", + "pad.modals.disconnected.explanation": "Sambungan ke pelayan terputus", + "pad.modals.disconnected.cause": "Pelayan mungkin tidak dapat dicapai. Sila beritahu kami jika masalah ini berterusan.", + "pad.share": "Kongsikan pad ini", + "pad.share.readonly": "Baca sahaja", + "pad.share.link": "Pautan", + "pad.share.emebdcode": "Benamkan URL", + "pad.chat": "Sembang", + "pad.chat.title": "Buka ruang sembang untuk pad ini.", + "pad.chat.loadmessages": "Muatkan banyak lagi pesanan", + "timeslider.pageTitle": "Gelangsar Masa {{appTitle}}", + "timeslider.toolbar.returnbutton": "Kembali ke pad", + "timeslider.toolbar.authors": "Pengarang:", + "timeslider.toolbar.authorsList": "Tiada Pengarang", + "timeslider.toolbar.exportlink.title": "Eksport", + "timeslider.exportCurrent": "Eksport versi semasa sebagai:", + "timeslider.version": "Versi {{version}}", + "timeslider.saved": "Disimpan pada {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Januari", + "timeslider.month.february": "Februari", + "timeslider.month.march": "Mac", + "timeslider.month.april": "April", + "timeslider.month.may": "Mei", + "timeslider.month.june": "Jun", + "timeslider.month.july": "Julai", + "timeslider.month.august": "Ogos", + "timeslider.month.september": "September", + "timeslider.month.october": "Oktober", + "timeslider.month.november": "November", + "timeslider.month.december": "Disember", + "timeslider.unnamedauthors": "{{num}} orang {[plural(num) other: pengarang]} awanama", + "pad.savedrevs.marked": "Semakan ini telah ditandai sebagai semakan tersimpan", + "pad.userlist.entername": "Taipkan nama anda", + "pad.userlist.unnamed": "tanpa nama", + "pad.userlist.guest": "Tetamu", + "pad.userlist.deny": "Tolak", + "pad.userlist.approve": "Terima", + "pad.editbar.clearcolors": "Padamkan warna pengarang pada seluruh dokumen?", + "pad.impexp.importbutton": "Import Sekarang", + "pad.impexp.importing": "Sedang mengimport...", + "pad.impexp.confirmimport": "Mengimport fail akan menulis ganti teks semasa pada pad ini. Adakah anda benar-benar ingin teruskan?", + "pad.impexp.convertFailed": "Fail tidak dapat diimport. Sila gunakan format dokumen yang lain atau salin tampal secara manual", + "pad.impexp.uploadFailed": "Muat naik gagal, sila cuba lagi", + "pad.impexp.importfailed": "Import gagal", + "pad.impexp.copypaste": "Sila salin tampal", + "pad.impexp.exportdisabled": "Mengeksport dalam format {{type}} dilarang. Sila hubungi pentadbir sistem anda untuk keterangan lanjut." }
\ No newline at end of file diff --git a/src/locales/nb.json b/src/locales/nb.json new file mode 100644 index 00000000..3e45e538 --- /dev/null +++ b/src/locales/nb.json @@ -0,0 +1,118 @@ +{ + "@metadata": { + "authors": [ + "Laaknor" + ] + }, + "index.newPad": "Ny Pad", + "index.createOpenPad": "eller opprette/åpne en ny Pad med dette navnet:", + "pad.toolbar.bold.title": "Fet (Ctrl-B)", + "pad.toolbar.italic.title": "Kursiv (Ctrl-I)", + "pad.toolbar.underline.title": "Understreking (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Gjennomstreking", + "pad.toolbar.ol.title": "Nummerert liste", + "pad.toolbar.ul.title": "Punktliste", + "pad.toolbar.indent.title": "Innrykk", + "pad.toolbar.unindent.title": "Rykk ut", + "pad.toolbar.undo.title": "Angre (Ctrl-Z)", + "pad.toolbar.redo.title": "Gjør omigjen (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Fjern forfatterfarger", + "pad.toolbar.import_export.title": "Importer/eksporter fra/til forskjellige filformater", + "pad.toolbar.timeslider.title": "Tidslinje", + "pad.toolbar.savedRevision.title": "Lagre revisjoner", + "pad.toolbar.settings.title": "Innstillinger", + "pad.toolbar.embed.title": "Bygg inn denne padden", + "pad.toolbar.showusers.title": "Vis brukerne av denne padden", + "pad.colorpicker.save": "Lagre", + "pad.colorpicker.cancel": "Avbryt", + "pad.loading": "Laster inn...", + "pad.passwordRequired": "Du trenger et passord for å få tilgang til denne padden", + "pad.permissionDenied": "Du har ikke tilgang til denne padden", + "pad.wrongPassword": "Feil passord", + "pad.settings.padSettings": "Padinnstillinger", + "pad.settings.myView": "Min visning", + "pad.settings.stickychat": "Chat alltid synlig", + "pad.settings.colorcheck": "Forfatterfarger", + "pad.settings.linenocheck": "Linjenummer", + "pad.settings.rtlcheck": "Les innhold fra høyre til venstre?", + "pad.settings.fontType": "Skrifttype:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Fast bredde", + "pad.settings.globalView": "Global visning", + "pad.settings.language": "Språk:", + "pad.importExport.import_export": "Importer/eksporter", + "pad.importExport.import": "Last opp tekstfil eller dokument", + "pad.importExport.importSuccessful": "Vellykket!", + "pad.importExport.export": "Eksporter padden som:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Ren tekst", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Du kan bare importere fra ren tekst eller HTML-formater. For mer avanserte importfunksjoner, \u003Ca 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\"\u003Einstaller abiword\u003C/a\u003E.", + "pad.modals.connected": "Tilkoblet.", + "pad.modals.reconnecting": "Kobler til din pad på nytt...", + "pad.modals.forcereconnect": "Tving gjenoppkobling", + "pad.modals.userdup": "Åpnet i nytt vindu", + "pad.modals.userdup.explanation": "Denne padden ser ut til å være åpnet i mer enn et nettleservindu på denne maskinen.", + "pad.modals.userdup.advice": "Koble til igjen for å bruke dette vinduet i stedenfor.", + "pad.modals.unauth": "Ikke tillatt", + "pad.modals.unauth.explanation": "Dine rettigheter har blitt endret mens du så på denne siden. Prøv å koble til på nytt", + "pad.modals.looping.explanation": "Det er kommunikasjonsproblemer med synkroniseringsserveren.", + "pad.modals.looping.cause": "Kanskje du koblet til en inkompatibel brannmur eller mellomtjener", + "pad.modals.initsocketfail": "Serveren er utilgjengelig", + "pad.modals.initsocketfail.explanation": "Kunne ikke koble til synkroniseringsserveren.", + "pad.modals.initsocketfail.cause": "Dette er sannsynligvis på grunn av et problem med nettleseren eller din internettoppkobling", + "pad.modals.slowcommit.explanation": "Serveren svarer ikke.", + "pad.modals.slowcommit.cause": "Dette kan være et problem med nettverkstilkoblingen", + "pad.modals.deleted": "Slettet.", + "pad.modals.deleted.explanation": "Denne padden har blitt fjernet", + "pad.modals.disconnected": "Du har blitt frakoblet.", + "pad.modals.disconnected.explanation": "Mistet tilkobling til serveren.", + "pad.modals.disconnected.cause": "Serveren kan være utilgjengelig. Vennligst si i fra til oss hvis dette fortsetter å skje", + "pad.share": "Del denne padden", + "pad.share.readonly": "Skrivebeskyttet", + "pad.share.link": "Lenke", + "pad.share.emebdcode": "URL for innbygging", + "pad.chat": "Chat", + "pad.chat.title": "Åpne chatten for denne padden.", + "pad.chat.loadmessages": "Last flere beskjeder", + "timeslider.pageTitle": "{{appTitle}} Tidslinje", + "timeslider.toolbar.returnbutton": "Gå tilbake til pad", + "timeslider.toolbar.authors": "Forfattere:", + "timeslider.toolbar.authorsList": "Ingen forfattere", + "timeslider.toolbar.exportlink.title": "Eksporter", + "timeslider.exportCurrent": "Eksporter nåværende versjon som:", + "timeslider.version": "Versjon {{version}}", + "timeslider.saved": "Lagret {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "januar", + "timeslider.month.february": "februar", + "timeslider.month.march": "mars", + "timeslider.month.april": "april", + "timeslider.month.may": "mai", + "timeslider.month.june": "juni", + "timeslider.month.july": "juli", + "timeslider.month.august": "august", + "timeslider.month.september": "september", + "timeslider.month.october": "oktober", + "timeslider.month.november": "november", + "timeslider.month.december": "desember", + "timeslider.unnamedauthors": "{{num}} navnløse forfattere", + "pad.savedrevs.marked": "Denne revisjonen er nå markert som en lagret revisjon", + "pad.userlist.entername": "Skriv inn ditt navn", + "pad.userlist.unnamed": "navnløs", + "pad.userlist.guest": "Gjest", + "pad.userlist.deny": "Nekt", + "pad.userlist.approve": "Godkjenn", + "pad.editbar.clearcolors": "Fjern forfatterfarger på hele dokumentet?", + "pad.impexp.importbutton": "Importer nå", + "pad.impexp.importing": "Importerer...", + "pad.impexp.confirmimport": "Importering av en fil vil overskrive den nåværende teksten på padden. Er du sikker på at du vil fortsette?", + "pad.impexp.convertFailed": "Vi greide ikke å importere denne filen. Bruk et annet dokumentformat eller kopier og lim inn teksten manuelt", + "pad.impexp.uploadFailed": "Opplastning feilet. Prøv igjen", + "pad.impexp.importfailed": "Import feilet", + "pad.impexp.copypaste": "Vennligst kopier og lim inn", + "pad.impexp.exportdisabled": "Eksporterer som {{type}} er deaktivert. Vennligst kontakt din systemadministrator for detaljer." +}
\ No newline at end of file diff --git a/src/locales/nds.json b/src/locales/nds.json new file mode 100644 index 00000000..15986de3 --- /dev/null +++ b/src/locales/nds.json @@ -0,0 +1,119 @@ +{ + "@metadata": { + "authors": [ + "Gthoele", + "Joachim Mos" + ] + }, + "index.newPad": "Nee'et Pad", + "index.createOpenPad": "oder Pad mit düssen Naam apen maken:", + "pad.toolbar.bold.title": "Fett (Strg-B)", + "pad.toolbar.italic.title": "Kursiv (Strg-I)", + "pad.toolbar.underline.title": "Mit Streek dor ünner (Strg-U)", + "pad.toolbar.strikethrough.title": "Mit Streek dor dör", + "pad.toolbar.ol.title": "List na Nummern", + "pad.toolbar.ul.title": "List ahn Nummern", + "pad.toolbar.indent.title": "Text na rechts", + "pad.toolbar.unindent.title": "Text na links", + "pad.toolbar.undo.title": "Een Stapp retuur (Strg-Z)", + "pad.toolbar.redo.title": "Noch mal (Strg-Y)", + "pad.toolbar.clearAuthorship.title": "Klöör vun den Schriever wegnehmen", + "pad.toolbar.import_export.title": "Rinhalen/Rutgeven in verscheden Dateiformate", + "pad.toolbar.timeslider.title": "Geschicht vun de Pad-Faten wiesen", + "pad.toolbar.savedRevision.title": "Faten sekern", + "pad.toolbar.settings.title": "Instellungen", + "pad.toolbar.embed.title": "Düt Pad verdelen oder annerswo ringeven", + "pad.toolbar.showusers.title": "Wokeen is online?", + "pad.colorpicker.save": "Spiekern", + "pad.colorpicker.cancel": "Afbreken", + "pad.loading": "Läädt…", + "pad.passwordRequired": "Du bruukst en Passwoort, wenn du in düt Pad rinwullt", + "pad.permissionDenied": "In düt Pad dröffst du nich rin", + "pad.wrongPassword": "Dien Passwoort weer nich richtig", + "pad.settings.padSettings": "So is dat Pad instellt", + "pad.settings.myView": "So heff ik dat instellt", + "pad.settings.stickychat": "Chat jümmers wiesen", + "pad.settings.colorcheck": "Klören vun de Schrievers wiesen", + "pad.settings.linenocheck": "Nummer vun de Reeg", + "pad.settings.rtlcheck": "Lees Pad vun rechts nach links", + "pad.settings.fontType": "Schriftoort:", + "pad.settings.fontType.normal": "Normaal", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Ansicht för all", + "pad.settings.language": "Spraak:", + "pad.importExport.import_export": "Rinhalen/Rutgeven", + "pad.importExport.import": "Datei oder Dokument hoochladen", + "pad.importExport.importSuccessful": "Hett slumpt!", + "pad.importExport.export": "Düt Pad rutgeven as:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Textdatei", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Se köönt blots wat vun Kloortext oder HTML-Stücken röverhalen. Mit \u003Ca 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\"\u003E köönt Se ok anner Saken röverhalen. Dorför mööt Se bidde abiword inrichten\u003C/a\u003E.", + "pad.modals.connected": "Verbindung steiht.", + "pad.modals.reconnecting": "En Verbindung wedder opboen ...", + "pad.modals.forcereconnect": "Noch mal verbinnen", + "pad.modals.userdup": "In en anner Fenster op", + "pad.modals.userdup.explanation": "Dat lett, düt Pat is op düssen Reekner in mehr as een Browser-Fenster op.", + "pad.modals.userdup.advice": "Wullt du düt Fenster bruken, bidde noch mal de Verbindung opboen.", + "pad.modals.unauth": "Nich freegeven.", + "pad.modals.unauth.explanation": "Du hest nu anner Rechten för düt Pad. Maak dat bidde noch mal wedder nee op.", + "pad.modals.looping.explanation": "Dat gifft Kummer bi de Verbindung mit den Pad-Server.", + "pad.modals.looping.cause": "Mag ween un du hest Verbindung mit den Padserver över en Firewall, de nich passt, oder en Proxy, de nich passt.", + "pad.modals.initsocketfail": "Wi köönt den Pad-Server nich faat kriegen.", + "pad.modals.initsocketfail.explanation": "De Verbindung mit den Pad-Server hett nich klappt.", + "pad.modals.initsocketfail.cause": "Mag ween un dat liggt an dien Browser oder an dien Internet-Verbindung.", + "pad.modals.slowcommit.explanation": "De Pad-Server gifft keen Antwoort.", + "pad.modals.slowcommit.cause": "Kunn wenn un dat liggt an dat Nettwark, oder dor arbeidt jüst to veel Lüüd op den Pad-Server.", + "pad.modals.deleted": "Weg is dat!", + "pad.modals.deleted.explanation": "Düt Pad is nu weg.", + "pad.modals.disconnected": "De Kuntakt is afreten.", + "pad.modals.disconnected.explanation": "De Kuntakt mit den Pad-Server is afreten.", + "pad.modals.disconnected.cause": "Mag ween un wi köönt den Pad-Server jüst nich faat kriegen. Schull dat so wiedergahn, segg man Bescheed.", + "pad.share": "Düt Pad ok anner Lüüd wiesen", + "pad.share.readonly": "Se köönt hier jüst blots lesen", + "pad.share.link": "Link", + "pad.share.emebdcode": "In Websiet ringeven", + "pad.chat": "Chat", + "pad.chat.title": "Den Chat vun düt Pad apen maken", + "pad.chat.loadmessages": "Mehr Narichten laden", + "timeslider.pageTitle": "{{appTitle}} Öllere Faten vun dat Pad", + "timeslider.toolbar.returnbutton": "Retuur na dat Pad", + "timeslider.toolbar.authors": "Schrievers:", + "timeslider.toolbar.authorsList": "keen Schrievers", + "timeslider.toolbar.exportlink.title": "Rutschicken", + "timeslider.exportCurrent": "Schick düsse Faten rut as:", + "timeslider.version": "Faten {{version}}", + "timeslider.saved": "Sekert an den {{day}}.{{month}}.{{year}}", + "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Januar", + "timeslider.month.february": "Februar", + "timeslider.month.march": "März", + "timeslider.month.april": "April", + "timeslider.month.may": "Mai", + "timeslider.month.june": "Juni", + "timeslider.month.july": "Juli", + "timeslider.month.august": "August", + "timeslider.month.september": "September", + "timeslider.month.october": "Oktober", + "timeslider.month.november": "November", + "timeslider.month.december": "Dezember", + "timeslider.unnamedauthors": "{{num}} Schriever ohn Naam {[plural(num) one: Schriever, other: Schrievers ]}", + "pad.savedrevs.marked": "Düsse Faten hett nu dat Teken: sekerte Faten", + "pad.userlist.entername": "Schriev dien Naam", + "pad.userlist.unnamed": "hett keen Naam", + "pad.userlist.guest": "Besöker", + "pad.userlist.deny": "Deit uns Leed, wieder geiht dat nich", + "pad.userlist.approve": "Man to!", + "pad.editbar.clearcolors": "Klören vun de Schrievers in dat ganze Dokument torüchsetten?", + "pad.impexp.importbutton": "Nu rinhalen", + "pad.impexp.importing": "Haal dat rin …", + "pad.impexp.confirmimport": "Wenn du nu en Datei rinhaalst, warrt de Text in dat Pad överschreven. Wullt du würklich wieder maken?", + "pad.impexp.convertFailed": "Wi köönt düsse Datei nich rinhalen. Ännert Se bidde dat Format vun dat Dokument oder haalt Se den Text mit de Hand rin.", + "pad.impexp.uploadFailed": "Dat Hoochladen hett nich slumpt. Versöök dat man noch mal.", + "pad.impexp.importfailed": "Dat Rinhalen hett nich slumpt", + "pad.impexp.copypaste": "Bidde koperen un rinsetten", + "pad.impexp.exportdisabled": "Du kannst dat nich in dat {{type}}-Format rutschicken. Wenn du mehr weten wullt, fraag man den Systemadministrator." +}
\ No newline at end of file diff --git a/src/locales/nl.json b/src/locales/nl.json index 9b1c773b..342487bb 100644 --- a/src/locales/nl.json +++ b/src/locales/nl.json @@ -1,120 +1,122 @@ { - "@metadata": { - "authors": [ - "Siebrand" - ] - }, - "index.newPad": "Nieuw pad", - "index.createOpenPad": "Maak of open pad met de naam:", - "pad.toolbar.bold.title": "Vet (Ctrl-B)", - "pad.toolbar.italic.title": "Cursief (Ctrl-I)", - "pad.toolbar.underline.title": "Onderstrepen (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Doorhalen", - "pad.toolbar.ol.title": "Geordende lijst", - "pad.toolbar.ul.title": "Ongeordende lijst", - "pad.toolbar.indent.title": "Inspringen", - "pad.toolbar.unindent.title": "Inspringing verkleinen", - "pad.toolbar.undo.title": "Ongedaan maken (Ctrl-Z)", - "pad.toolbar.redo.title": "Opnieuw uitvoeren (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Kleuren auteurs wissen", - "pad.toolbar.import_export.title": "Naar\/van andere opmaak exporteren\/importeren", - "pad.toolbar.timeslider.title": "Tijdlijn", - "pad.toolbar.savedRevision.title": "Opgeslagen versies", - "pad.toolbar.settings.title": "Instellingen", - "pad.toolbar.embed.title": "Pad insluiten", - "pad.toolbar.showusers.title": "Gebruikers van dit pad weergeven", - "pad.colorpicker.save": "Opslaan", - "pad.colorpicker.cancel": "Annuleren", - "pad.loading": "Bezig met laden\u2026", - "pad.passwordRequired": "U hebt een wachtwoord nodig om toegang te krijgen tot deze pad", - "pad.permissionDenied": "U hebt geen rechten om deze pad te bekijken", - "pad.wrongPassword": "U hebt een onjuist wachtwoord ingevoerd", - "pad.settings.padSettings": "Padinstellingen", - "pad.settings.myView": "Mijn overzicht", - "pad.settings.stickychat": "Chat altijd zichtbaar", - "pad.settings.colorcheck": "Kleuren auteurs", - "pad.settings.linenocheck": "Regelnummers", - "pad.settings.fontType": "Lettertype:", - "pad.settings.fontType.normal": "Normaal", - "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "Globaal overzicht", - "pad.settings.language": "Taal:", - "pad.importExport.import_export": "Importeren\/exporteren", - "pad.importExport.import": "Upload een tekstbestand of document", - "pad.importExport.importSuccessful": "Afgerond", - "pad.importExport.export": "Huidige pad exporteren als", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Tekst zonder opmaak", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "U kunt alleen importeren vanuit platte tekst of een HTML-opmaak. <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\">Installeer abiword<\/a> om meer geavanceerde importmogelijkheden te krijgen.", - "pad.modals.connected": "Verbonden.", - "pad.modals.reconnecting": "Opnieuw verbinding maken met uw pad...", - "pad.modals.forcereconnect": "Opnieuw verbinden", - "pad.modals.userdup": "In een ander venster geopend", - "pad.modals.userdup.explanation": "Dit pad is meer dan \u00e9\u00e9n keer geopend in een browservenster op deze computer.", - "pad.modals.userdup.advice": "Maak opnieuw verbinding als u dit venster wilt gebruiken.", - "pad.modals.unauth": "Niet toegestaan", - "pad.modals.unauth.explanation": "Uw rechten zijn gewijzigd terwijl u de pagina aan het bekijken was. Probeer opnieuw te verbinden.", - "pad.modals.looping": "Verbinding verbroken.", - "pad.modals.looping.explanation": "Er is een probleem opgetreden tijdens de communicatie met de synchronisatieserver.", - "pad.modals.looping.cause": "Mogelijk gebruikt de server een niet compatibele firewall of proxy server.", - "pad.modals.initsocketfail": "Server is niet bereikbaar.", - "pad.modals.initsocketfail.explanation": "Het was niet mogelijk te verbinden met de synchronisatieserver.", - "pad.modals.initsocketfail.cause": "Mogelijk komt dit door uw browser of internetverbinding.", - "pad.modals.slowcommit": "Verbinding verbroken.", - "pad.modals.slowcommit.explanation": "De server reageert niet.", - "pad.modals.slowcommit.cause": "Dit komt mogelijk door netwerkproblemen.", - "pad.modals.deleted": "Verwijderd.", - "pad.modals.deleted.explanation": "Dit pad is verwijderd.", - "pad.modals.disconnected": "Uw verbinding is verbroken.", - "pad.modals.disconnected.explanation": "De verbinding met de server is verbroken", - "pad.modals.disconnected.cause": "De server is mogelijk niet beschikbaar. Stel alstublieft de beheerder op de hoogte.", - "pad.share": "Pad delen", - "pad.share.readonly": "Alleen-lezen", - "pad.share.link": "Koppeling", - "pad.share.emebdcode": "URL insluiten", - "pad.chat": "Chatten", - "pad.chat.title": "Chat voor dit pad opnenen", - "pad.chat.loadmessages": "Meer berichten laden", - "timeslider.pageTitle": "Tijdlijn voor {{appTitle}}", - "timeslider.toolbar.returnbutton": "Terug naar pad", - "timeslider.toolbar.authors": "Auteurs:", - "timeslider.toolbar.authorsList": "Geen auteurs", - "timeslider.toolbar.exportlink.title": "Exporteren", - "timeslider.exportCurrent": "Huidige versie exporteren als:", - "timeslider.version": "Versie {{version}}", - "timeslider.saved": "Opgeslagen op {{day}} {{month}} {{year}}", - "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "januari", - "timeslider.month.february": "februari", - "timeslider.month.march": "maart", - "timeslider.month.april": "april", - "timeslider.month.may": "mei", - "timeslider.month.june": "juni", - "timeslider.month.july": "juli", - "timeslider.month.august": "augustus", - "timeslider.month.september": "september", - "timeslider.month.october": "oktober", - "timeslider.month.november": "november", - "timeslider.month.december": "december", - "timeslider.unnamedauthor": "{{num}} onbekende auteur", - "timeslider.unnamedauthors": "{{num}} onbekende auteurs", - "pad.savedrevs.marked": "Deze versie is nu gemarkeerd als opgeslagen versie", - "pad.userlist.entername": "Geef uw naam op", - "pad.userlist.unnamed": "zonder naam", - "pad.userlist.guest": "Gast", - "pad.userlist.deny": "Weigeren", - "pad.userlist.approve": "Goedkeuren", - "pad.editbar.clearcolors": "Auteurskleuren voor het hele document wissen?", - "pad.impexp.importbutton": "Nu importeren", - "pad.impexp.importing": "Bezig met importeren\u2026", - "pad.impexp.confirmimport": "Door een bestand te importeren overschrijft u de huidige tekst van de pad. Wilt u echt doorgaan?", - "pad.impexp.convertFailed": "Het was niet mogelijk dit bestand te importeren. Gebruik een andere documentopmaak of kopieer en plak de inhoud handmatig", - "pad.impexp.uploadFailed": "Het uploaden is mislukt. Probeer het opnieuw", - "pad.impexp.importfailed": "Importeren is mislukt", - "pad.impexp.copypaste": "Gebruik kopi\u00ebren en plakken", - "pad.impexp.exportdisabled": "Exporteren als {{type}} is uitgeschakeld. Neem contact op met de systeembeheerder voor details." + "@metadata": { + "authors": [ + "Siebrand" + ] + }, + "index.newPad": "Nieuw pad", + "index.createOpenPad": "Maak of open pad met de naam:", + "pad.toolbar.bold.title": "Vet (Ctrl-B)", + "pad.toolbar.italic.title": "Cursief (Ctrl-I)", + "pad.toolbar.underline.title": "Onderstrepen (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Doorhalen", + "pad.toolbar.ol.title": "Geordende lijst", + "pad.toolbar.ul.title": "Ongeordende lijst", + "pad.toolbar.indent.title": "Inspringen (Tab)", + "pad.toolbar.unindent.title": "Inspringing verkleinen (Shift+Tab)", + "pad.toolbar.undo.title": "Ongedaan maken (Ctrl-Z)", + "pad.toolbar.redo.title": "Opnieuw uitvoeren (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Kleuren auteurs wissen", + "pad.toolbar.import_export.title": "Naar/van andere opmaak exporteren/importeren", + "pad.toolbar.timeslider.title": "Tijdlijn", + "pad.toolbar.savedRevision.title": "Versie opslaan", + "pad.toolbar.settings.title": "Instellingen", + "pad.toolbar.embed.title": "Pad delen en insluiten", + "pad.toolbar.showusers.title": "Gebruikers van dit pad weergeven", + "pad.colorpicker.save": "Opslaan", + "pad.colorpicker.cancel": "Annuleren", + "pad.loading": "Bezig met laden…", + "pad.passwordRequired": "U hebt een wachtwoord nodig om toegang te krijgen tot deze pad", + "pad.permissionDenied": "U hebt geen rechten om deze pad te bekijken", + "pad.wrongPassword": "U hebt een onjuist wachtwoord ingevoerd", + "pad.settings.padSettings": "Padinstellingen", + "pad.settings.myView": "Mijn overzicht", + "pad.settings.stickychat": "Chat altijd zichtbaar", + "pad.settings.colorcheck": "Kleuren auteurs", + "pad.settings.linenocheck": "Regelnummers", + "pad.settings.rtlcheck": "Inhoud van rechts naar links lezen?", + "pad.settings.fontType": "Lettertype:", + "pad.settings.fontType.normal": "Normaal", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Globaal overzicht", + "pad.settings.language": "Taal:", + "pad.importExport.import_export": "Importeren/exporteren", + "pad.importExport.import": "Upload een tekstbestand of document", + "pad.importExport.importSuccessful": "Afgerond", + "pad.importExport.export": "Huidige pad exporteren als", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Tekst zonder opmaak", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "Pdf", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "U kunt alleen importeren vanuit platte tekst of een HTML-opmaak. \u003Ca 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\"\u003EInstalleer abiword\u003C/a\u003E om meer geavanceerde importmogelijkheden te krijgen.", + "pad.modals.connected": "Verbonden.", + "pad.modals.reconnecting": "Opnieuw verbinding maken met uw pad...", + "pad.modals.forcereconnect": "Opnieuw verbinden", + "pad.modals.userdup": "In een ander venster geopend", + "pad.modals.userdup.explanation": "Dit pad is meer dan één keer geopend in een browservenster op deze computer.", + "pad.modals.userdup.advice": "Maak opnieuw verbinding als u dit venster wilt gebruiken.", + "pad.modals.unauth": "Niet toegestaan", + "pad.modals.unauth.explanation": "Uw rechten zijn gewijzigd terwijl u de pagina aan het bekijken was. Probeer opnieuw te verbinden.", + "pad.modals.looping.explanation": "Er is een probleem opgetreden tijdens de communicatie met de synchronisatieserver.", + "pad.modals.looping.cause": "Mogelijk gebruikt de server een niet compatibele firewall of proxy server.", + "pad.modals.initsocketfail": "Server is niet bereikbaar.", + "pad.modals.initsocketfail.explanation": "Het was niet mogelijk te verbinden met de synchronisatieserver.", + "pad.modals.initsocketfail.cause": "Mogelijk komt dit door uw browser of internetverbinding.", + "pad.modals.slowcommit.explanation": "De server reageert niet.", + "pad.modals.slowcommit.cause": "Dit komt mogelijk door netwerkproblemen.", + "pad.modals.badChangeset.explanation": "Een door u gemaakte bewerking is door de synchronisatieserver als incorrect aangemerkt.", + "pad.modals.badChangeset.cause": "Dit kan komen door een onjuiste serverinstelling of door ander onverwacht gedrag. Neem contact op met de servicebeheerder als u denkt dat er een onverwachte uitkomst is. Probeer opnieuw te verbinden om door te gaan met bewerken.", + "pad.modals.corruptPad.explanation": "Het pad dat u wilt openen is beschadigd.", + "pad.modals.corruptPad.cause": "Dit kan komen door een onjuiste serverinstelling of door ander onverwacht gedrag. Neem contact op met de servicebeheerder.", + "pad.modals.deleted": "Verwijderd.", + "pad.modals.deleted.explanation": "Dit pad is verwijderd.", + "pad.modals.disconnected": "Uw verbinding is verbroken.", + "pad.modals.disconnected.explanation": "De verbinding met de server is verbroken", + "pad.modals.disconnected.cause": "De server is mogelijk niet beschikbaar. Stel de servicebeheerder op de hoogte.", + "pad.share": "Pad delen", + "pad.share.readonly": "Alleen-lezen", + "pad.share.link": "Koppeling", + "pad.share.emebdcode": "URL insluiten", + "pad.chat": "Chatten", + "pad.chat.title": "Chat voor dit pad opnenen", + "pad.chat.loadmessages": "Meer berichten laden", + "timeslider.pageTitle": "Tijdlijn voor {{appTitle}}", + "timeslider.toolbar.returnbutton": "Terug naar pad", + "timeslider.toolbar.authors": "Auteurs:", + "timeslider.toolbar.authorsList": "Geen auteurs", + "timeslider.toolbar.exportlink.title": "Exporteren", + "timeslider.exportCurrent": "Huidige versie exporteren als:", + "timeslider.version": "Versie {{version}}", + "timeslider.saved": "Opgeslagen op {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "januari", + "timeslider.month.february": "februari", + "timeslider.month.march": "maart", + "timeslider.month.april": "april", + "timeslider.month.may": "mei", + "timeslider.month.june": "juni", + "timeslider.month.july": "juli", + "timeslider.month.august": "augustus", + "timeslider.month.september": "september", + "timeslider.month.october": "oktober", + "timeslider.month.november": "november", + "timeslider.month.december": "december", + "timeslider.unnamedauthors": "{{num}} onbekende {[plural(num) one: auteur, other: auteurs ]}", + "pad.savedrevs.marked": "Deze versie is nu gemarkeerd als opgeslagen versie", + "pad.userlist.entername": "Geef uw naam op", + "pad.userlist.unnamed": "zonder naam", + "pad.userlist.guest": "Gast", + "pad.userlist.deny": "Weigeren", + "pad.userlist.approve": "Goedkeuren", + "pad.editbar.clearcolors": "Auteurskleuren voor het hele document wissen?", + "pad.impexp.importbutton": "Nu importeren", + "pad.impexp.importing": "Bezig met importeren…", + "pad.impexp.confirmimport": "Door een bestand te importeren overschrijft u de huidige tekst van de pad. Wilt u echt doorgaan?", + "pad.impexp.convertFailed": "Het was niet mogelijk dit bestand te importeren. Gebruik een andere documentopmaak of kopieer en plak de inhoud handmatig", + "pad.impexp.uploadFailed": "Het uploaden is mislukt. Probeer het opnieuw", + "pad.impexp.importfailed": "Importeren is mislukt", + "pad.impexp.copypaste": "Gebruik kopiëren en plakken", + "pad.impexp.exportdisabled": "Exporteren als {{type}} is uitgeschakeld. Neem contact op met de systeembeheerder voor details." }
\ No newline at end of file diff --git a/src/locales/nn.json b/src/locales/nn.json index e8004e8d..5a98353e 100644 --- a/src/locales/nn.json +++ b/src/locales/nn.json @@ -1,117 +1,115 @@ { - "@metadata": { - "authors": { - "1": "Unhammer" - } - }, - "index.newPad": "Ny blokk", - "index.createOpenPad": "eller opprett\/opna ei blokk med namnet:", - "pad.toolbar.bold.title": "Feit (Ctrl-B)", - "pad.toolbar.italic.title": "Kursiv (Ctrl-I)", - "pad.toolbar.underline.title": "Understreking (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Gjennomstreking", - "pad.toolbar.ol.title": "Nummerert liste", - "pad.toolbar.ul.title": "Punktliste", - "pad.toolbar.indent.title": "Innrykk", - "pad.toolbar.unindent.title": "Rykk ut", - "pad.toolbar.undo.title": "Angra (Ctrl-Z)", - "pad.toolbar.redo.title": "Gjer om (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Fjern forfattarfargar", - "pad.toolbar.import_export.title": "Importer\/eksporter til\/fr\u00e5 ulike filformat", - "pad.toolbar.timeslider.title": "Tidslinje", - "pad.toolbar.savedRevision.title": "Lagra utg\u00e5ver", - "pad.toolbar.settings.title": "Innstillingar", - "pad.toolbar.embed.title": "Bygg inn blokka i ei nettside", - "pad.toolbar.showusers.title": "Syn brukarane p\u00e5 blokka", - "pad.colorpicker.save": "Lagra", - "pad.colorpicker.cancel": "Avbryt", - "pad.loading": "Lastar \u2026", - "pad.passwordRequired": "Du treng eit passord for \u00e5 opna denne blokka", - "pad.permissionDenied": "Du har ikkje tilgang til denne blokka", - "pad.wrongPassword": "Feil passord", - "pad.settings.padSettings": "Blokkinnstillingar", - "pad.settings.myView": "Mi visning", - "pad.settings.stickychat": "Prat alltid synleg", - "pad.settings.colorcheck": "Forfattarfargar", - "pad.settings.linenocheck": "Linjenummer", - "pad.settings.fontType": "Skrifttype:", - "pad.settings.fontType.normal": "Vanleg", - "pad.settings.fontType.monospaced": "Fast breidd", - "pad.settings.globalView": "Global visning", - "pad.settings.language": "Spr\u00e5k:", - "pad.importExport.import_export": "Importer\/eksporter", - "pad.importExport.import": "Last opp tekstfiler eller dokument", - "pad.importExport.importSuccessful": "Vellukka!", - "pad.importExport.export": "Eksporter blokka som:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Rein tekst", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Du kan berre importera fr\u00e5 rein tekst- eller HTML-format. Ver venleg og <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\">installer Abiword<\/a> om du treng meir avanserte importfunksjonar.", - "pad.modals.connected": "Tilkopla.", - "pad.modals.reconnecting": "Gjenopprettar tilkoplinga til blokka di \u2026", - "pad.modals.forcereconnect": "Tving gjentilkopling", - "pad.modals.userdup": "Opna i eit anna vindauge", - "pad.modals.userdup.explanation": "Det ser ut som om denne blokka er open i meir enn eitt nettlesarvindauge p\u00e5 denne maskinen.", - "pad.modals.userdup.advice": "Kopla til om att for \u00e5 bruka dette vinduage i staden.", - "pad.modals.unauth": "Ikkje tillate", - "pad.modals.unauth.explanation": "Rettane dine blei endra under visning av denne sida. Pr\u00f8v \u00e5 kopla til p\u00e5 nytt.", - "pad.modals.looping": "Fr\u00e5kopla.", - "pad.modals.looping.explanation": "Det oppstod kommunikasjonsproblem med synkroniseringstenaren.", - "pad.modals.looping.cause": "Kanskje du kopla til gjennom ein inkompatibel brannmur eller mellomtenar.", - "pad.modals.initsocketfail": "Klarte ikkje \u00e5 n\u00e5 tenaren.", - "pad.modals.initsocketfail.explanation": "Klarte ikkje \u00e5 kopla til synkroniseringstenaren.", - "pad.modals.initsocketfail.cause": "Dette er sannsynlegvis p\u00e5 grunn av eit problem med nettlesaren eller internettilkoplinga di.", - "pad.modals.slowcommit": "Fr\u00e5kopla.", - "pad.modals.slowcommit.explanation": "Tenaren svarer ikkje.", - "pad.modals.slowcommit.cause": "Dette kan vera p\u00e5 grunn av problem med nettilkoplinga.", - "pad.modals.deleted": "Sletta.", - "pad.modals.deleted.explanation": "Denne blokka er fjerna.", - "pad.modals.disconnected": "Du blei fr\u00e5kopla.", - "pad.modals.disconnected.explanation": "Mista tilkoplinga til tenaren", - "pad.modals.disconnected.cause": "Tenaren er ikkje tilgjengeleg. Ver venleg og gi oss ei melding om dette skjer fleire gonger.", - "pad.share": "Del denne blokka", - "pad.share.readonly": "Skriveverna", - "pad.share.link": "Lenkje", - "pad.share.emebdcode": "URL for innebygging", - "pad.chat": "Prat", - "pad.chat.title": "Opna pratepanelet for denne blokka.", - "timeslider.pageTitle": "Tidslinje for {{appTitle}}", - "timeslider.toolbar.returnbutton": "Attende til blokka", - "timeslider.toolbar.authors": "Forfattarar:", - "timeslider.toolbar.authorsList": "Ingen forfattarar", - "timeslider.toolbar.exportlink.title": "Eksporter", - "timeslider.exportCurrent": "Eksporter denne utg\u00e5va som:", - "timeslider.version": "Utg\u00e5ve {{version}}", - "timeslider.saved": "Lagra {{day}}. {{month}}, {{year}}", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}.{{minutes}}.{{seconds}}", - "timeslider.month.january": "januar", - "timeslider.month.february": "februar", - "timeslider.month.march": "mars", - "timeslider.month.april": "april", - "timeslider.month.may": "mai", - "timeslider.month.june": "juni", - "timeslider.month.july": "juli", - "timeslider.month.august": "august", - "timeslider.month.september": "september", - "timeslider.month.october": "oktober", - "timeslider.month.november": "november", - "timeslider.month.december": "desember", - "pad.savedrevs.marked": "Denne utg\u00e5va er no merkt som ei lagra utg\u00e5ve", - "pad.userlist.entername": "Skriv namnet ditt", - "pad.userlist.unnamed": "utan namn", - "pad.userlist.guest": "Gjest", - "pad.userlist.deny": "Nekt", - "pad.userlist.approve": "Godkjenn", - "pad.editbar.clearcolors": "Fjern forfattarfargar i heile dokumentet?", - "pad.impexp.importbutton": "Importer no", - "pad.impexp.importing": "Importerer \u2026", - "pad.impexp.confirmimport": "Viss du importerer ei fil, vil denne blokka bli overskriven. Er du sikker p\u00e5 at du vil fortsetja?", - "pad.impexp.convertFailed": "Me klarte ikkje \u00e5 importera denne fila. Ver venleg og bruk eit anna dokumentformat, eller kopier og lim inn for hand.", - "pad.impexp.uploadFailed": "Feil ved opplasting, ver venleg og pr\u00f8v om att", - "pad.impexp.importfailed": "Feil ved importering", - "pad.impexp.copypaste": "Ver venleg og kopier og lim inn", - "pad.impexp.exportdisabled": "Eksport av {{type}} er skrudd av. Ver venleg og ta kontakt med systemadministrator for meir informasjon." + "@metadata": { + "authors": { + "1": "Unhammer" + } + }, + "index.newPad": "Ny blokk", + "index.createOpenPad": "eller opprett/opna ei blokk med namnet:", + "pad.toolbar.bold.title": "Feit (Ctrl-B)", + "pad.toolbar.italic.title": "Kursiv (Ctrl-I)", + "pad.toolbar.underline.title": "Understreking (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Gjennomstreking", + "pad.toolbar.ol.title": "Nummerert liste", + "pad.toolbar.ul.title": "Punktliste", + "pad.toolbar.indent.title": "Innrykk", + "pad.toolbar.unindent.title": "Rykk ut", + "pad.toolbar.undo.title": "Angra (Ctrl-Z)", + "pad.toolbar.redo.title": "Gjer om (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Fjern forfattarfargar", + "pad.toolbar.import_export.title": "Importer/eksporter til/frå ulike filformat", + "pad.toolbar.timeslider.title": "Tidslinje", + "pad.toolbar.savedRevision.title": "Lagra utgåver", + "pad.toolbar.settings.title": "Innstillingar", + "pad.toolbar.embed.title": "Bygg inn blokka i ei nettside", + "pad.toolbar.showusers.title": "Syn brukarane på blokka", + "pad.colorpicker.save": "Lagra", + "pad.colorpicker.cancel": "Avbryt", + "pad.loading": "Lastar …", + "pad.passwordRequired": "Du treng eit passord for å opna denne blokka", + "pad.permissionDenied": "Du har ikkje tilgang til denne blokka", + "pad.wrongPassword": "Feil passord", + "pad.settings.padSettings": "Blokkinnstillingar", + "pad.settings.myView": "Mi visning", + "pad.settings.stickychat": "Prat alltid synleg", + "pad.settings.colorcheck": "Forfattarfargar", + "pad.settings.linenocheck": "Linjenummer", + "pad.settings.fontType": "Skrifttype:", + "pad.settings.fontType.normal": "Vanleg", + "pad.settings.fontType.monospaced": "Fast breidd", + "pad.settings.globalView": "Global visning", + "pad.settings.language": "Språk:", + "pad.importExport.import_export": "Importer/eksporter", + "pad.importExport.import": "Last opp tekstfiler eller dokument", + "pad.importExport.importSuccessful": "Vellukka!", + "pad.importExport.export": "Eksporter blokka som:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Rein tekst", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Du kan berre importera frå rein tekst- eller HTML-format. Ver venleg og \u003Ca 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\"\u003Einstaller Abiword\u003C/a\u003E om du treng meir avanserte importfunksjonar.", + "pad.modals.connected": "Tilkopla.", + "pad.modals.reconnecting": "Gjenopprettar tilkoplinga til blokka di …", + "pad.modals.forcereconnect": "Tving gjentilkopling", + "pad.modals.userdup": "Opna i eit anna vindauge", + "pad.modals.userdup.explanation": "Det ser ut som om denne blokka er open i meir enn eitt nettlesarvindauge på denne maskinen.", + "pad.modals.userdup.advice": "Kopla til om att for å bruka dette vinduage i staden.", + "pad.modals.unauth": "Ikkje tillate", + "pad.modals.unauth.explanation": "Rettane dine blei endra under visning av denne sida. Prøv å kopla til på nytt.", + "pad.modals.looping.explanation": "Det oppstod kommunikasjonsproblem med synkroniseringstenaren.", + "pad.modals.looping.cause": "Kanskje du kopla til gjennom ein inkompatibel brannmur eller mellomtenar.", + "pad.modals.initsocketfail": "Klarte ikkje å nå tenaren.", + "pad.modals.initsocketfail.explanation": "Klarte ikkje å kopla til synkroniseringstenaren.", + "pad.modals.initsocketfail.cause": "Dette er sannsynlegvis på grunn av eit problem med nettlesaren eller internettilkoplinga di.", + "pad.modals.slowcommit.explanation": "Tenaren svarer ikkje.", + "pad.modals.slowcommit.cause": "Dette kan vera på grunn av problem med nettilkoplinga.", + "pad.modals.deleted": "Sletta.", + "pad.modals.deleted.explanation": "Denne blokka er fjerna.", + "pad.modals.disconnected": "Du blei fråkopla.", + "pad.modals.disconnected.explanation": "Mista tilkoplinga til tenaren", + "pad.modals.disconnected.cause": "Tenaren er ikkje tilgjengeleg. Ver venleg og gi oss ei melding om dette skjer fleire gonger.", + "pad.share": "Del denne blokka", + "pad.share.readonly": "Skriveverna", + "pad.share.link": "Lenkje", + "pad.share.emebdcode": "URL for innebygging", + "pad.chat": "Prat", + "pad.chat.title": "Opna pratepanelet for denne blokka.", + "timeslider.pageTitle": "Tidslinje for {{appTitle}}", + "timeslider.toolbar.returnbutton": "Attende til blokka", + "timeslider.toolbar.authors": "Forfattarar:", + "timeslider.toolbar.authorsList": "Ingen forfattarar", + "timeslider.toolbar.exportlink.title": "Eksporter", + "timeslider.exportCurrent": "Eksporter denne utgåva som:", + "timeslider.version": "Utgåve {{version}}", + "timeslider.saved": "Lagra {{day}}. {{month}}, {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}.{{minutes}}.{{seconds}}", + "timeslider.month.january": "januar", + "timeslider.month.february": "februar", + "timeslider.month.march": "mars", + "timeslider.month.april": "april", + "timeslider.month.may": "mai", + "timeslider.month.june": "juni", + "timeslider.month.july": "juli", + "timeslider.month.august": "august", + "timeslider.month.september": "september", + "timeslider.month.october": "oktober", + "timeslider.month.november": "november", + "timeslider.month.december": "desember", + "pad.savedrevs.marked": "Denne utgåva er no merkt som ei lagra utgåve", + "pad.userlist.entername": "Skriv namnet ditt", + "pad.userlist.unnamed": "utan namn", + "pad.userlist.guest": "Gjest", + "pad.userlist.deny": "Nekt", + "pad.userlist.approve": "Godkjenn", + "pad.editbar.clearcolors": "Fjern forfattarfargar i heile dokumentet?", + "pad.impexp.importbutton": "Importer no", + "pad.impexp.importing": "Importerer …", + "pad.impexp.confirmimport": "Viss du importerer ei fil, vil denne blokka bli overskriven. Er du sikker på at du vil fortsetja?", + "pad.impexp.convertFailed": "Me klarte ikkje å importera denne fila. Ver venleg og bruk eit anna dokumentformat, eller kopier og lim inn for hand.", + "pad.impexp.uploadFailed": "Feil ved opplasting, ver venleg og prøv om att", + "pad.impexp.importfailed": "Feil ved importering", + "pad.impexp.copypaste": "Ver venleg og kopier og lim inn", + "pad.impexp.exportdisabled": "Eksport av {{type}} er skrudd av. Ver venleg og ta kontakt med systemadministrator for meir informasjon." }
\ No newline at end of file diff --git a/src/locales/oc.json b/src/locales/oc.json index 08390825..3c5d29e0 100644 --- a/src/locales/oc.json +++ b/src/locales/oc.json @@ -1,118 +1,122 @@ { - "@metadata": { - "authors": [ - "Cedric31" - ] - }, - "index.newPad": "Pad nov\u00e8l", - "index.createOpenPad": "o crear\/dobrir un Pad intitulat :", - "pad.toolbar.bold.title": "Gras (Ctrl-B)", - "pad.toolbar.italic.title": "Italica (Ctrl-I)", - "pad.toolbar.underline.title": "Soslinhat (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Raiat", - "pad.toolbar.ol.title": "Lista ordenada", - "pad.toolbar.ul.title": "Lista amb de piuses", - "pad.toolbar.indent.title": "Indentar", - "pad.toolbar.unindent.title": "Desindentar", - "pad.toolbar.undo.title": "Anullar (Ctrl-Z)", - "pad.toolbar.redo.title": "Restablir (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Escafar las colors qu'identifican los autors", - "pad.toolbar.import_export.title": "Importar\/Exportar de\/cap a un format de fichi\u00e8r diferent", - "pad.toolbar.timeslider.title": "Istoric dinamic", - "pad.toolbar.savedRevision.title": "Versions enregistradas", - "pad.toolbar.settings.title": "Param\u00e8tres", - "pad.toolbar.embed.title": "Integrar aqueste Pad", - "pad.toolbar.showusers.title": "Afichar los utilizaires del Pad", - "pad.colorpicker.save": "Enregistrar", - "pad.colorpicker.cancel": "Anullar", - "pad.loading": "Cargament...", - "pad.passwordRequired": "Av\u00e8tz besonh d'un senhal per accedir a aqueste Pad", - "pad.permissionDenied": "Vos es pas perm\u00e9s d\u2019accedir a aqueste Pad.", - "pad.wrongPassword": "Senhal incorr\u00e8cte", - "pad.settings.padSettings": "Param\u00e8tres del Pad", - "pad.settings.myView": "Ma vista", - "pad.settings.stickychat": "Afichar totjorn lo chat", - "pad.settings.colorcheck": "Colors d\u2019identificacion", - "pad.settings.linenocheck": "Num\u00e8ros de linhas", - "pad.settings.fontType": "Tipe de poli\u00e7a :", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "Vista d\u2019ensemble", - "pad.settings.language": "Lenga :", - "pad.importExport.import_export": "Importar\/Exportar", - "pad.importExport.import": "Cargar un t\u00e8xte o un document", - "pad.importExport.importSuccessful": "Capitat !", - "pad.importExport.export": "Exportar lo Pad actual coma :", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "T\u00e8xte brut", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Pod\u00e8tz pas importar que de formats t\u00e8xte brut o html. Per de foncionalitats d'importacion mai evoluadas, <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\">installatz abiword<\/a>.", - "pad.modals.connected": "Connectat.", - "pad.modals.reconnecting": "Reconnexion cap a v\u00f2stre Pad...", - "pad.modals.forcereconnect": "For\u00e7ar la reconnexion.", - "pad.modals.userdup": "Dob\u00e8rt dins una autra fen\u00e8stra", - "pad.modals.userdup.explanation": "Sembla qu'aqueste Pad es dob\u00e8rt dins mai d'una fen\u00e8stra de v\u00f2stre navigador sus aqueste ordenador.", - "pad.modals.userdup.advice": "Se reconnectar en utilizant aquesta fen\u00e8stra.", - "pad.modals.unauth": "Pas autorizat", - "pad.modals.unauth.explanation": "V\u00f2stras permissions son estadas cambiadas al moment de l'afichatge d'aquesta pagina. Ensajatz de vos reconnectar.", - "pad.modals.looping": "Desconnectat", - "pad.modals.looping.explanation": "Av\u00e8m un probl\u00e8ma de comunicacion amb lo servidor de sincronizacion.", - "pad.modals.looping.cause": "Es possible que v\u00f2stra connexion si\u00e1 protegida per un parafu\u00f2c incompatible o un servidor proxy incompatible.", - "pad.modals.initsocketfail": "Lo servidor es introbable.", - "pad.modals.initsocketfail.explanation": "Impossible de se connectar al servidor de sincronizacion.", - "pad.modals.initsocketfail.cause": "Lo probl\u00e8ma p\u00f2t venir de v\u00f2stre navigador web o de v\u00f2stra connexion Internet.", - "pad.modals.slowcommit": "Desconnectat", - "pad.modals.slowcommit.explanation": "Lo servidor respond pas.", - "pad.modals.slowcommit.cause": "Aqueste probl\u00e8ma p\u00f2t venir d'una marrida connectivitat a la ret.", - "pad.modals.deleted": "Suprimit.", - "pad.modals.deleted.explanation": "Aqueste Pad es estat suprimit.", - "pad.modals.disconnected": "S\u00e8tz estat desconnectat.", - "pad.modals.disconnected.explanation": "La connexion al servidor a fracassat.", - "pad.modals.disconnected.cause": "Es possible que lo servidor si\u00e1 indisponible. Informatz-nos-ne se lo probl\u00e8ma persist\u00eds.", - "pad.share": "Partejar aqueste Pad", - "pad.share.readonly": "Lectura sola", - "pad.share.link": "Ligam", - "pad.share.emebdcode": "Ligam d'integrar", - "pad.chat": "Chat", - "pad.chat.title": "Dobrir lo chat associat a aqueste pad.", - "pad.chat.loadmessages": "Cargar mai de messatges.", - "timeslider.pageTitle": "Istoric dinamic de {{appTitle}}", - "timeslider.toolbar.returnbutton": "Retorn a aqueste Pad.", - "timeslider.toolbar.authors": "Autors :", - "timeslider.toolbar.authorsList": "Pas cap d'autor", - "timeslider.toolbar.exportlink.title": "Exportar", - "timeslider.exportCurrent": "Exportar la version actuala en\u00a0:", - "timeslider.version": "Version {{version}}", - "timeslider.saved": "Enregistrat lo {{day}} {{month}} {{year}}", - "timeslider.dateformat": "{{month}}\/{{day}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Geni\u00e8r", - "timeslider.month.february": "Febri\u00e8r", - "timeslider.month.march": "Mar\u00e7", - "timeslider.month.april": "Abril", - "timeslider.month.may": "Mai", - "timeslider.month.june": "Junh", - "timeslider.month.july": "Julhet", - "timeslider.month.august": "Agost", - "timeslider.month.september": "Setembre", - "timeslider.month.october": "Octobre", - "timeslider.month.november": "Novembre", - "timeslider.month.december": "Decembre", - "pad.savedrevs.marked": "Aquesta revision es ara marcada coma revision enregistrada", - "pad.userlist.entername": "Entratz v\u00f2stre nom", - "pad.userlist.unnamed": "sens nom", - "pad.userlist.guest": "Convidat", - "pad.userlist.deny": "Refusar", - "pad.userlist.approve": "Aprovar", - "pad.editbar.clearcolors": "Escafar las colors de paternitat dins tot lo document ?", - "pad.impexp.importbutton": "Importar ara", - "pad.impexp.importing": "Imp\u00f2rt en cors...", - "pad.impexp.confirmimport": "Importar un fichi\u00e8r espotir\u00e0 lo t\u00e8xte actual del bl\u00f2t. S\u00e8tz segur que lo vol\u00e8tz far ?", - "pad.impexp.convertFailed": "Pod\u00e8m pas importar aqueste fichi\u00e8r. Utilizatz un autre format de document o fas\u00e8tz un copiar\/pegar manual", - "pad.impexp.uploadFailed": "Lo telecargament a fracassat, reensajatz", - "pad.impexp.importfailed": "Frac\u00e0s de l'importacion", - "pad.impexp.copypaste": "Copiatz\/pegatz", - "pad.impexp.exportdisabled": "Exportar al format {{type}} es desactivat. Contactatz v\u00f2stre administrator del sist\u00e8ma per mai de detalhs." + "@metadata": { + "authors": [ + "Cedric31" + ] + }, + "index.newPad": "Pad novèl", + "index.createOpenPad": "o crear/dobrir un Pad intitulat :", + "pad.toolbar.bold.title": "Gras (Ctrl-B)", + "pad.toolbar.italic.title": "Italica (Ctrl-I)", + "pad.toolbar.underline.title": "Soslinhat (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Raiat", + "pad.toolbar.ol.title": "Lista ordenada", + "pad.toolbar.ul.title": "Lista amb de piuses", + "pad.toolbar.indent.title": "Indentar", + "pad.toolbar.unindent.title": "Desindentar", + "pad.toolbar.undo.title": "Anullar (Ctrl-Z)", + "pad.toolbar.redo.title": "Restablir (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Escafar las colors qu'identifican los autors", + "pad.toolbar.import_export.title": "Importar/Exportar de/cap a un format de fichièr diferent", + "pad.toolbar.timeslider.title": "Istoric dinamic", + "pad.toolbar.savedRevision.title": "Enregistrar la revision", + "pad.toolbar.settings.title": "Paramètres", + "pad.toolbar.embed.title": "Partejar e integrar aqueste Pad", + "pad.toolbar.showusers.title": "Afichar los utilizaires del Pad", + "pad.colorpicker.save": "Enregistrar", + "pad.colorpicker.cancel": "Anullar", + "pad.loading": "Cargament...", + "pad.passwordRequired": "Avètz besonh d'un senhal per accedir a aqueste Pad", + "pad.permissionDenied": "Vos es pas permés d’accedir a aqueste Pad.", + "pad.wrongPassword": "Senhal incorrècte", + "pad.settings.padSettings": "Paramètres del Pad", + "pad.settings.myView": "Ma vista", + "pad.settings.stickychat": "Afichar totjorn lo chat", + "pad.settings.colorcheck": "Colors d’identificacion", + "pad.settings.linenocheck": "Numèros de linhas", + "pad.settings.rtlcheck": "Lectura de drecha a esquèrra", + "pad.settings.fontType": "Tipe de poliça :", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Vista d’ensemble", + "pad.settings.language": "Lenga :", + "pad.importExport.import_export": "Importar/Exportar", + "pad.importExport.import": "Cargar un tèxte o un document", + "pad.importExport.importSuccessful": "Capitat !", + "pad.importExport.export": "Exportar lo Pad actual coma :", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Tèxte brut", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Podètz pas importar que de formats tèxte brut o html. Per de foncionalitats d'importacion mai evoluadas, \u003Ca 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\"\u003Einstallatz abiword\u003C/a\u003E.", + "pad.modals.connected": "Connectat.", + "pad.modals.reconnecting": "Reconnexion cap a vòstre Pad...", + "pad.modals.forcereconnect": "Forçar la reconnexion.", + "pad.modals.userdup": "Dobèrt dins una autra fenèstra", + "pad.modals.userdup.explanation": "Sembla qu'aqueste Pad es dobèrt dins mai d'una fenèstra de vòstre navigador sus aqueste ordenador.", + "pad.modals.userdup.advice": "Se reconnectar en utilizant aquesta fenèstra.", + "pad.modals.unauth": "Pas autorizat", + "pad.modals.unauth.explanation": "Vòstras permissions son estadas cambiadas al moment de l'afichatge d'aquesta pagina. Ensajatz de vos reconnectar.", + "pad.modals.looping.explanation": "Avèm un problèma de comunicacion amb lo servidor de sincronizacion.", + "pad.modals.looping.cause": "Es possible que vòstra connexion siá protegida per un parafuòc incompatible o un servidor proxy incompatible.", + "pad.modals.initsocketfail": "Lo servidor es introbable.", + "pad.modals.initsocketfail.explanation": "Impossible de se connectar al servidor de sincronizacion.", + "pad.modals.initsocketfail.cause": "Lo problèma pòt venir de vòstre navigador web o de vòstra connexion Internet.", + "pad.modals.slowcommit.explanation": "Lo servidor respond pas.", + "pad.modals.slowcommit.cause": "Aqueste problèma pòt venir d'una marrida connectivitat a la ret.", + "pad.modals.badChangeset.explanation": "Una modificacion qu'avètz efectuada es estada classada coma illegala pel servidor de sincronizacion.", + "pad.modals.badChangeset.cause": "Aquò pòt èsser degut a una marrida configuracion del servidor o a un autre comportament inesperat. Contactatz l’administrator del servici, si pensatz qu’es una error. Ensajatz de vos reconnectar per contunhar de modificar.", + "pad.modals.corruptPad.explanation": "Lo blòt al qual ensajatz d’accedir es corromput.", + "pad.modals.corruptPad.cause": "Aquò pòt èsser degut a una marrida configuracion del servidor o a un autre comportament inesperat. Contactatz l’administrator del servici.", + "pad.modals.deleted": "Suprimit.", + "pad.modals.deleted.explanation": "Aqueste Pad es estat suprimit.", + "pad.modals.disconnected": "Sètz estat desconnectat.", + "pad.modals.disconnected.explanation": "La connexion al servidor a fracassat.", + "pad.modals.disconnected.cause": "Es possible que lo servidor siá indisponible. Se lo problèma contunha, informatz-ne l'administrator del servici.", + "pad.share": "Partejar aqueste Pad", + "pad.share.readonly": "Lectura sola", + "pad.share.link": "Ligam", + "pad.share.emebdcode": "Ligam d'integrar", + "pad.chat": "Chat", + "pad.chat.title": "Dobrir lo chat associat a aqueste pad.", + "pad.chat.loadmessages": "Cargar mai de messatges.", + "timeslider.pageTitle": "Istoric dinamic de {{appTitle}}", + "timeslider.toolbar.returnbutton": "Retorn a aqueste Pad.", + "timeslider.toolbar.authors": "Autors :", + "timeslider.toolbar.authorsList": "Pas cap d'autor", + "timeslider.toolbar.exportlink.title": "Exportar", + "timeslider.exportCurrent": "Exportar la version actuala en :", + "timeslider.version": "Version {{version}}", + "timeslider.saved": "Enregistrat lo {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Genièr", + "timeslider.month.february": "Febrièr", + "timeslider.month.march": "Març", + "timeslider.month.april": "Abril", + "timeslider.month.may": "Mai", + "timeslider.month.june": "Junh", + "timeslider.month.july": "Julhet", + "timeslider.month.august": "Agost", + "timeslider.month.september": "Setembre", + "timeslider.month.october": "Octobre", + "timeslider.month.november": "Novembre", + "timeslider.month.december": "Decembre", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor anonim, other: autors anonims ]}", + "pad.savedrevs.marked": "Aquesta revision es ara marcada coma revision enregistrada", + "pad.userlist.entername": "Entratz vòstre nom", + "pad.userlist.unnamed": "sens nom", + "pad.userlist.guest": "Convidat", + "pad.userlist.deny": "Refusar", + "pad.userlist.approve": "Aprovar", + "pad.editbar.clearcolors": "Escafar las colors de paternitat dins tot lo document ?", + "pad.impexp.importbutton": "Importar ara", + "pad.impexp.importing": "Impòrt en cors...", + "pad.impexp.confirmimport": "Importar un fichièr espotirà lo tèxte actual del blòt. Sètz segur que lo volètz far ?", + "pad.impexp.convertFailed": "Podèm pas importar aqueste fichièr. Utilizatz un autre format de document o fasètz un copiar/pegar manual", + "pad.impexp.uploadFailed": "Lo telecargament a fracassat, reensajatz", + "pad.impexp.importfailed": "Fracàs de l'importacion", + "pad.impexp.copypaste": "Copiatz/pegatz", + "pad.impexp.exportdisabled": "Exportar al format {{type}} es desactivat. Contactatz vòstre administrator del sistèma per mai de detalhs." }
\ No newline at end of file diff --git a/src/locales/os.json b/src/locales/os.json index 4acfad7e..99a9efb0 100644 --- a/src/locales/os.json +++ b/src/locales/os.json @@ -1,117 +1,118 @@ { - "@metadata": { - "authors": [ - "Bouron" - ] - }, - "index.newPad": "\u041d\u043e\u0433", - "index.createOpenPad": "\u043a\u04d5\u043d\u04d5 \u0441\u0430\u0440\u0430\u0437\/\u0431\u0430\u043a\u04d5\u043d \u043d\u043e\u0433 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0430\u0445\u04d5\u043c \u043d\u043e\u043c\u0438\u043c\u04d5:", - "pad.toolbar.bold.title": "\u0411\u04d5\u0437\u0434\u0436\u044b\u043d (Ctrl-B)", - "pad.toolbar.italic.title": "\u041a\u044a\u04d5\u0434\u0437 (Ctrl-I)", - "pad.toolbar.underline.title": "\u0411\u044b\u043d\u044b\u043b\u0445\u0430\u0445\u0445 (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u0425\u0430\u0445\u0445", - "pad.toolbar.ol.title": "\u041d\u044b\u043c\u0430\u0434 \u043d\u043e\u043c\u0445\u044b\u0433\u044a\u0434", - "pad.toolbar.ul.title": "\u04d4\u043d\u04d5\u043d\u044b\u043c\u0430\u0434 \u043d\u043e\u043c\u0445\u044b\u0433\u044a\u0434", - "pad.toolbar.indent.title": "\u0425\u0430\u0441\u0442", - "pad.toolbar.unindent.title": "\u04d4\u0442\u0442\u04d5\u043c\u04d5\u0445\u0430\u0441\u0442", - "pad.toolbar.undo.title": "\u0420\u0430\u0437\u0434\u04d5\u0445\u044b\u043d (Ctrl-Z)", - "pad.toolbar.redo.title": "\u0420\u0430\u0446\u0430\u0440\u0430\u0437\u044b\u043d (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "\u0424\u044b\u0441\u0441\u04d5\u0434\u0436\u044b \u043d\u044b\u0441\u04d5\u043d\u0442\u0442\u04d5 \u0430\u0439\u0441\u044b\u043d\u04d5\u043d", - "pad.toolbar.import_export.title": "\u0418\u043c\u043f\u043e\u0440\u0442\/\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u04d5\u043d\u0434\u04d5\u0440 \u0444\u0430\u0439\u043b\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0442\u04d5\u0439\/\u0444\u043e\u0440\u043c\u0430\u0442\u0442\u04d5\u043c", - "pad.toolbar.timeslider.title": "\u0420\u04d5\u0441\u0442\u04d5\u0434\u0436\u044b \u0445\u0430\u0445\u0445", - "pad.toolbar.savedRevision.title": "\u04d4\u0432\u04d5\u0440\u0434 \u0444\u04d5\u043b\u0442\u04d5\u0440\u0442\u04d5", - "pad.toolbar.settings.title": "\u0423\u0430\u0433\u04d5\u0432\u04d5\u0440\u0434\u0442\u04d5", - "pad.toolbar.embed.title": "\u0410\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0431\u0430\u0444\u0442\u0430\u0443\u044b\u043d", - "pad.toolbar.showusers.title": "\u0410\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0430\u0440\u0445\u0430\u0439\u0434\u0436\u044b\u0442\u044b \u0440\u0430\u0432\u0434\u0438\u0441\u044b\u043d", - "pad.colorpicker.save": "\u041d\u044b\u0432\u00e6\u0440\u044b\u043d", - "pad.colorpicker.cancel": "\u041d\u044b\u0443\u0443\u0430\u0434\u0437\u044b\u043d", - "pad.loading": "\u00c6\u0432\u0433\u00e6\u0434 \u0446\u00e6\u0443\u044b...", - "pad.passwordRequired": "\u0410\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043c\u04d5 \u0440\u044b\u0432\u043d\u0430\u043b\u044b\u043d\u04d5\u043d \u0434\u04d5 \u0445\u044a\u04d5\u0443\u044b \u043f\u0430\u0440\u043e\u043b\u044c", - "pad.permissionDenied": "\u0414\u04d5\u0443\u04d5\u043d \u043d\u04d5\u0439 \u0431\u0430\u0440 \u0430\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043c\u04d5 \u0440\u044b\u0432\u043d\u0430\u043b\u044b\u043d", - "pad.wrongPassword": "\u0414\u04d5 \u043f\u0430\u0440\u043e\u043b\u044c \u0440\u0430\u0441\u0442 \u043d\u04d5\u0443", - "pad.settings.padSettings": "\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0443\u0430\u0433\u04d5\u0432\u04d5\u0440\u0434\u0442\u044b\u0442\u04d5", - "pad.settings.myView": "\u041c\u04d5 \u0443\u044b\u043d\u0434", - "pad.settings.stickychat": "\u041d\u044b\u0445\u0430\u0441 \u0430\u043b\u043a\u0443\u044b\u0434\u04d5\u0440 \u04d5\u0432\u0434\u0438\u0441\u044b\u043d", - "pad.settings.colorcheck": "\u0424\u044b\u0441\u0441\u04d5\u0434\u0436\u044b \u0445\u0443\u044b\u0437\u0442\u04d5", - "pad.settings.linenocheck": "\u0420\u04d5\u043d\u0445\u044a\u044b\u0442\u044b \u043d\u043e\u043c\u044b\u0440\u0442\u04d5", - "pad.settings.fontType": "\u0428\u0440\u0438\u0444\u0442\u044b \u0445\u0443\u044b\u0437:", - "pad.settings.fontType.normal": "\u0425\u0443\u044b\u043c\u04d5\u0442\u04d5\u0433", - "pad.settings.fontType.monospaced": "\u04d4\u043c\u0443\u04d5\u0440\u04d5\u0445", - "pad.settings.globalView": "\u0418\u0443\u0443\u044b\u043b\u044b \u0443\u044b\u043d\u0434", - "pad.settings.language": "\u00c6\u0432\u0437\u0430\u0433:", - "pad.importExport.import_export": "\u0418\u043c\u043f\u043e\u0440\u0442\/\u044d\u043a\u0441\u043f\u043e\u0440\u0442", - "pad.importExport.import": "\u0418\u0441\u0442\u044b \u0442\u0435\u043a\u0441\u0442 \u0444\u0430\u0439\u043b \u043a\u04d5\u043d\u04d5 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0431\u0430\u0432\u0433\u04d5\u043d\u044b\u043d", - "pad.importExport.importSuccessful": "\u04d4\u043d\u0442\u044b\u0441\u0442!", - "pad.importExport.export": "\u041d\u044b\u0440\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441\u044d\u043a\u043f\u043e\u0440\u0442 \u043a\u04d5\u043d\u044b\u043d \u043a\u0443\u044b\u0434:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\u0425\u0443\u044b\u043c\u00e6\u0442\u00e6\u0433 \u0442\u0435\u043a\u0441\u0442", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\u0414\u04d5 \u0431\u043e\u043d \u0443 \u0438\u043c\u043f\u043e\u0440\u0442 \u043a\u04d5\u043d\u044b\u043d \u04d5\u0440\u043c\u04d5\u0441\u0442 \u0445\u0443\u044b\u043c\u04d5\u0442\u04d5\u0433 \u0442\u0435\u043a\u0441\u0442 \u043a\u04d5\u043d\u04d5 html \u0444\u043e\u0440\u043c\u0430\u0442\u04d5\u0439. \u041b\u04d5\u043c\u0431\u044b\u043d\u04d5\u0433 \u0438\u043c\u043f\u043e\u0440\u0442\u044b \u043c\u0438\u043d\u0438\u0443\u0434\u0436\u044b\u0442\u04d5\u043d, \u0434\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, <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\">\u0441\u04d5\u0432\u04d5\u0440 abiword<\/a>.", - "pad.modals.connected": "\u0418\u0443\u0433\u043e\u043d\u0434.", - "pad.modals.reconnecting": "\u0414\u04d5 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043c\u04d5 \u043d\u043e\u0433\u04d5\u0439 \u0438\u0443\u0433\u043e\u043d\u0434 \u0446\u04d5\u0443\u044b..", - "pad.modals.forcereconnect": "\u0422\u044b\u0445\u0445\u04d5\u0439 \u0431\u0430\u0438\u0443 \u043a\u04d5\u043d\u044b\u043d", - "pad.modals.userdup": "\u041d\u043e\u0433 \u0440\u0443\u0434\u0437\u044b\u043d\u0434\u0436\u044b \u0431\u0430\u043a\u04d5\u043d\u044b\u043d", - "pad.modals.userdup.explanation": "\u0410\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u04d5\u0432\u04d5\u0446\u0446\u04d5\u0433\u04d5\u043d \u0430\u0446\u044b \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b \u0438\u0443\u04d5\u0439 \u0444\u044b\u043b\u0434\u04d5\u0440 \u0440\u0443\u0434\u0437\u044b\u043d\u0434\u0436\u044b \u0443 \u0433\u043e\u043c.", - "pad.modals.userdup.advice": "\u041d\u043e\u0433\u04d5\u0439 \u0431\u0430\u0438\u0443 \u0443\u044b\u043d, \u0430\u0446\u044b \u0440\u0443\u0434\u0437\u044b\u043d\u0433\u04d5\u0439 \u0430\u0440\u0445\u0430\u0439\u044b\u043d\u044b \u0431\u04d5\u0441\u0442\u044b.", - "pad.modals.unauth": "\u041d\u04d5 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0433\u043e\u043d\u0434", - "pad.modals.unauth.explanation": "\u0414\u04d5 \u0431\u0430\u0440\u0442\u04d5 \u0444\u04d5\u0438\u0432\u0442\u043e\u0439, \u0446\u0430\u043b\u044b\u043d\u043c\u04d5 \u0434\u044b \u0430\u0446\u044b \u0444\u0430\u0440\u0441 \u043a\u0430\u0441\u0442\u04d5. \u0411\u0430\u0444\u04d5\u043b\u0432\u0430\u0440 \u043d\u043e\u0433\u04d5\u0439 \u0431\u0430\u0438\u0443 \u0443\u044b\u043d.", - "pad.modals.looping": "\u0425\u0438\u0446\u04d5\u043d.", - "pad.modals.looping.explanation": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0439\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0438\u043c\u04d5 \u0431\u0430\u0438\u0443 \u043a\u04d5\u043d\u044b\u043d\u044b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u04d5.", - "pad.modals.looping.cause": "\u0423\u04d5\u0446\u0446\u04d5\u0433\u04d5\u043d \u0434\u044b \u0431\u0430\u0438\u0443 \u0434\u04d5 \u04d5\u043d\u04d5\u043c\u0431\u04d5\u043b\u0433\u04d5 \u0444\u0430\u0439\u0440\u0432\u043e\u043b \u043a\u04d5\u043d\u04d5 \u043f\u0440\u043e\u043a\u0441\u0438\u0439\u044b \u0443\u044b\u043b\u0442\u044b.", - "pad.modals.initsocketfail": "\u0421\u0435\u0440\u0432\u0435\u0440\u043c\u04d5 \u0431\u0430\u0438\u0443\u0433\u04d5\u043d\u04d5\u043d \u043d\u04d5\u0439.", - "pad.modals.initsocketfail.explanation": "\u041d\u04d5 \u0440\u0430\u0443\u0430\u0434\u0438\u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0439\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043c\u04d5 \u0431\u0430\u0438\u0443 \u0443\u044b\u043d.", - "pad.modals.initsocketfail.cause": "\u0410\u0439 \u0443\u04d5\u0446\u0446\u04d5\u0433\u04d5\u043d \u0434\u04d5 \u0441\u0433\u0430\u0440\u04d5\u043d \u043a\u04d5\u043d\u04d5 \u0434\u04d5 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u044b \u0442\u044b\u0445\u0445\u04d5\u0439 \u0443.", - "pad.modals.slowcommit": "\u0425\u0438\u0446\u04d5\u043d\u0433\u043e\u043d\u0434.", - "pad.modals.slowcommit.explanation": "\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u04d5 \u0434\u0437\u0443\u0430\u043f\u043f \u043a\u04d5\u043d\u044b.", - "pad.modals.slowcommit.cause": "\u0410\u0439 \u0433\u04d5\u043d\u04d5\u043d \u0438\u0441 \u0443 \u0445\u044b\u0437\u044b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u04d5\u0439\u044b \u0442\u044b\u0445\u0445\u04d5\u0439.", - "pad.modals.deleted": "\u0425\u0430\u0444\u0442.", - "pad.modals.deleted.explanation": "\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0445\u0430\u0444\u0442 \u04d5\u0440\u0446\u044b\u0434.", - "pad.modals.disconnected": "\u0414\u044b \u0445\u0438\u0446\u04d5\u043d\u0433\u043e\u043d\u0434 \u04d5\u0440\u0446\u044b\u0434\u0442\u04d5.", - "pad.modals.disconnected.explanation": "\u0421\u0435\u0440\u0432\u0435\u0440\u0438\u043c\u04d5 \u0438\u0443\u0433\u043e\u043d\u0434 \u0444\u0435\u0441\u04d5\u0444\u0442\u0438\u0441", - "pad.modals.disconnected.cause": "\u0421\u0435\u0440\u0432\u0435\u0440\u043c\u04d5 \u0433\u04d5\u043d\u04d5\u043d \u0438\u0441 \u0431\u0430\u0438\u0443\u0433\u04d5\u043d\u04d5\u043d \u043d\u04d5\u0439. \u0414\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u0444\u0435\u0445\u044a\u0443\u0441\u044b\u043d \u043d\u044b\u043d \u04d5\u0439 \u043a\u04d5\u043d, \u043a\u04d5\u0434 \u0430\u0444\u0442\u04d5 \u0434\u0430\u0440\u0434\u0434\u04d5\u0440 \u043a\u04d5\u043d\u0430.", - "pad.share": "\u0410\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0440\u0430\u0439\u0443\u0430\u0440\u044b\u043d", - "pad.share.readonly": "\u04d4\u0440\u043c\u04d5\u0441\u0442 \u0444\u04d5\u0440\u0441\u044b\u043d\u04d5\u043d", - "pad.share.link": "\u04d4\u0440\u0432\u0438\u0442\u04d5\u043d", - "pad.share.emebdcode": "URL \u0431\u0430\u0432\u04d5\u0440\u044b\u043d", - "pad.chat": "\u041d\u044b\u0445\u0430\u0441", - "pad.chat.title": "\u041e\u0446\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u04d5\u043d \u0447\u0430\u0442 \u0431\u0430\u043a\u04d5\u043d.", - "timeslider.pageTitle": "{{appTitle}}-\u044b \u0440\u04d5\u0442\u04d5\u0434\u0436\u044b \u0445\u0430\u0445\u0445", - "timeslider.toolbar.returnbutton": "\u0424\u04d5\u0441\u0442\u04d5\u043c\u04d5, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043c\u04d5", - "timeslider.toolbar.authors": "\u0424\u044b\u0441\u0441\u04d5\u0434\u0436\u044b\u0442\u04d5:", - "timeslider.toolbar.authorsList": "\u0424\u044b\u0441\u0441\u04d5\u0434\u0436\u044b\u0442\u04d5 \u043d\u04d5\u0439", - "timeslider.toolbar.exportlink.title": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442", - "timeslider.exportCurrent": "\u0421\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043a\u04d5\u043d\u044b\u043d \u043d\u044b\u0440\u044b \u0444\u04d5\u043b\u0442\u04d5\u0440 \u043a\u0443\u044b\u0434:", - "timeslider.version": "\u0412\u0435\u0440\u0441\u0438 {{version}}", - "timeslider.saved": "\u04d4\u0432\u04d5\u0440\u0434 \u04d5\u0440\u0446\u044b\u0434 {{year}}-\u04d5\u043c \u0430\u0437\u044b, {{day}}-\u04d5\u043c {{month}}-\u044b", - "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "\u044f\u043d\u0432\u0430\u0440\u044c", - "timeslider.month.february": "\u0444\u0435\u0432\u0440\u0430\u043b\u044c", - "timeslider.month.march": "\u043c\u0430\u0440\u0442\u044a\u0438", - "timeslider.month.april": "\u0430\u043f\u0440\u0435\u043b\u044c", - "timeslider.month.may": "\u043c\u0430\u0439", - "timeslider.month.june": "\u0438\u044e\u043d\u044c", - "timeslider.month.july": "\u0438\u044e\u043b\u044c", - "timeslider.month.august": "\u0430\u0432\u0433\u0443\u0441\u0442", - "timeslider.month.september": "\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c", - "timeslider.month.october": "\u043e\u043a\u0442\u044f\u0431\u0440\u044c", - "timeslider.month.november": "\u043d\u043e\u044f\u0431\u0440\u044c", - "timeslider.month.december": "\u0434\u0435\u043a\u0430\u0431\u0440\u044c", - "pad.savedrevs.marked": "\u0410\u0446\u044b \u0444\u04d5\u043b\u0442\u04d5\u0440 \u043d\u044b\u0440 \u043a\u0443\u044b\u0434 \u04d5\u0432\u04d5\u0440\u0434 \u0444\u04d5\u043b\u0442\u04d5\u0440 \u043d\u044b\u0441\u0430\u043d\u0433\u043e\u043d\u0434 \u04d5\u0440\u0446\u044b\u0434", - "pad.userlist.entername": "\u0414\u04d5 \u043d\u043e\u043c \u0431\u0430\u0444\u044b\u0441\u0441", - "pad.userlist.unnamed": "\u04d5\u043d\u04d5\u043d\u043e\u043c", - "pad.userlist.guest": "\u0423\u0430\u0437\u04d5\u0433", - "pad.userlist.deny": "\u041d\u044b\u0443\u0443\u0430\u0434\u0437\u044b\u043d", - "pad.userlist.approve": "\u0421\u0431\u04d5\u043b\u0432\u044b\u0440\u0434 \u043a\u04d5\u043d\u044b\u043d", - "pad.editbar.clearcolors": "\u04d4\u043d\u04d5\u0445\u044a\u04d5\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u04d5\u0439 \u0445\u044a\u04d5\u0443\u044b \u0430\u0439\u0441\u044b\u043d \u0444\u044b\u0441\u0441\u04d5\u0434\u0436\u044b\u0442\u044b \u043d\u044b\u0441\u04d5\u043d\u0442\u0442\u04d5?", - "pad.impexp.importbutton": "\u0415\u043d\u044b\u0440 \u0441\u0438\u043c\u043f\u043e\u0440\u0442 \u043a\u04d5\u043d\u044b\u043d", - "pad.impexp.importing": "\u0418\u043c\u043f\u043e\u0440\u0442 \u0446\u04d5\u0443\u044b...", - "pad.impexp.confirmimport": "\u0424\u0430\u0439\u043b\u044b \u0438\u043c\u043f\u043e\u0440\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u044b\u0440\u044b \u0442\u0435\u043a\u0441\u0442 \u0431\u044b\u043d\u0442\u043e\u043d \u0444\u04d5\u0438\u0432\u0434\u0437\u04d5\u043d\u0438\u0441. \u04d4\u0446\u04d5\u0433 \u0434\u04d5 \u0444\u04d5\u043d\u0434\u044b \u0443\u044b\u0439 \u0441\u0430\u0440\u0430\u0437\u044b\u043d?", - "pad.impexp.convertFailed": "\u041c\u0430\u0445\u04d5\u043d \u043d\u04d5 \u0431\u043e\u043d \u043d\u0435 \u0441\u0441\u0438\u0441 \u0430\u0446\u044b \u0444\u0430\u0439\u043b \u0441\u0438\u043c\u043f\u043e\u0440\u0442 \u043a\u04d5\u043d\u044b\u043d. \u0414\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u0441\u043f\u0430\u0439\u0434\u0430 \u043a\u04d5\u043d \u04d5\u043d\u0434\u04d5\u0440 \u0444\u0430\u0439\u043b\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u04d5\u0439, \u043a\u04d5\u043d\u04d5 \u0441\u043a\u044a\u043e\u043f\u0438 \u043a\u04d5\u043d \u04d5\u043c\u04d5 \u0431\u0430\u0442\u044b\u0441\u0441 \u0442\u0435\u043a\u0441\u0442 \u0434\u04d5\u0445\u04d5\u0434\u04d5\u0433.", - "pad.impexp.uploadFailed": "\u0411\u0430\u0432\u0433\u04d5\u043d\u044b\u043d \u043d\u04d5 \u0440\u0430\u0443\u0430\u0434, \u0434\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u0444\u04d5\u0441\u0442\u04d5\u0434\u04d5\u0440 \u0431\u0430\u0444\u04d5\u043b\u0432\u0430\u0440", - "pad.impexp.importfailed": "\u0418\u043c\u043f\u043e\u0440\u0442 \u043d\u04d5 \u0440\u0430\u0443\u0430\u0434", - "pad.impexp.copypaste": "\u0414\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u043a\u044a\u043e\u043f\u0438 \u043a\u04d5\u043d \u04d5\u043c\u04d5 \u04d5\u0432\u04d5\u0440", - "pad.impexp.exportdisabled": "{{type}} \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0445\u0438\u0446\u04d5\u043d \u0443. \u0414\u04d5 \u0445\u043e\u0440\u0437\u04d5\u0445\u04d5\u0439, \u0431\u0430\u0434\u0437\u0443\u0440 \u0434\u04d5 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u043d \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0442\u04d5\u043c \u0444\u044b\u043b\u0434\u04d5\u0440 \u0431\u0430\u0437\u043e\u043d\u044b\u043d\u04d5\u043d." + "@metadata": { + "authors": [ + "Bouron" + ] + }, + "index.newPad": "Ног", + "index.createOpenPad": "кӕнӕ сараз/бакӕн ног документ ахӕм номимӕ:", + "pad.toolbar.bold.title": "Бӕзджын (Ctrl-B)", + "pad.toolbar.italic.title": "Къӕдз (Ctrl-I)", + "pad.toolbar.underline.title": "Бынылхахх (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Хахх", + "pad.toolbar.ol.title": "Нымад номхыгъд", + "pad.toolbar.ul.title": "Ӕнӕнымад номхыгъд", + "pad.toolbar.indent.title": "Хаст", + "pad.toolbar.unindent.title": "Ӕттӕмӕхаст", + "pad.toolbar.undo.title": "Раздӕхын (Ctrl-Z)", + "pad.toolbar.redo.title": "Рацаразын (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Фыссӕджы нысӕнттӕ айсынӕн", + "pad.toolbar.import_export.title": "Импорт/экспорт ӕндӕр файлы форматтӕй/форматтӕм", + "pad.toolbar.timeslider.title": "Рӕстӕджы хахх", + "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.passwordRequired": "Ацы документмӕ рывналынӕн дӕ хъӕуы пароль", + "pad.permissionDenied": "Дӕуӕн нӕй бар ацы документмӕ рывналын", + "pad.wrongPassword": "Дӕ пароль раст нӕу", + "pad.settings.padSettings": "Документы уагӕвӕрдтытӕ", + "pad.settings.myView": "Мӕ уынд", + "pad.settings.stickychat": "Ныхас алкуыдӕр ӕвдисын", + "pad.settings.colorcheck": "Фыссӕджы хуызтӕ", + "pad.settings.linenocheck": "Рӕнхъыты номыртӕ", + "pad.settings.rtlcheck": "Мидис рахизӕй галиумӕ хъӕуы фӕрсын?", + "pad.settings.fontType": "Шрифты хуыз:", + "pad.settings.fontType.normal": "Хуымӕтӕг", + "pad.settings.fontType.monospaced": "Ӕмуӕрӕх", + "pad.settings.globalView": "Иууылы уынд", + "pad.settings.language": "Æвзаг:", + "pad.importExport.import_export": "Импорт/экспорт", + "pad.importExport.import": "Исты текст файл кӕнӕ документ бавгӕнын", + "pad.importExport.importSuccessful": "Ӕнтыст!", + "pad.importExport.export": "Ныры документ сэкпорт кӕнын куыд:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Хуымæтæг текст", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Дӕ бон у импорт кӕнын ӕрмӕст хуымӕтӕг текст кӕнӕ html форматӕй. Лӕмбынӕг импорты миниуджытӕн, дӕ хорзӕхӕй, \u003Ca 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\"\u003Eсӕвӕр abiword\u003C/a\u003E.", + "pad.modals.connected": "Иугонд.", + "pad.modals.reconnecting": "Дӕ документмӕ ногӕй иугонд цӕуы..", + "pad.modals.forcereconnect": "Тыххӕй баиу кӕнын", + "pad.modals.userdup": "Ног рудзынджы бакӕнын", + "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.deleted": "Хафт.", + "pad.modals.deleted.explanation": "Документ хафт ӕрцыд.", + "pad.modals.disconnected": "Ды хицӕнгонд ӕрцыдтӕ.", + "pad.modals.disconnected.explanation": "Серверимӕ иугонд фесӕфтис", + "pad.modals.disconnected.cause": "Сервермӕ гӕнӕн ис баиугӕнӕн нӕй. Дӕ хорзӕхӕй, фехъусын нын ӕй кӕн, кӕд афтӕ дарддӕр кӕна.", + "pad.share": "Ацы документ райуарын", + "pad.share.readonly": "Ӕрмӕст фӕрсынӕн", + "pad.share.link": "Ӕрвитӕн", + "pad.share.emebdcode": "URL бавӕрын", + "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.saved": "Ӕвӕрд ӕрцыд {{year}}-ӕм азы, {{day}}-ӕм {{month}}-ы", + "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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": "декабрь", + "timeslider.unnamedauthors": "{{num}} ӕнӕном фыссӕджы", + "pad.savedrevs.marked": "Ацы фӕлтӕр ныр куыд ӕвӕрд фӕлтӕр нысангонд ӕрцыд", + "pad.userlist.entername": "Дӕ ном бафысс", + "pad.userlist.unnamed": "ӕнӕном", + "pad.userlist.guest": "Уазӕг", + "pad.userlist.deny": "Ныууадзын", + "pad.userlist.approve": "Сбӕлвырд кӕнын", + "pad.editbar.clearcolors": "Ӕнӕхъӕн документӕй хъӕуы айсын фыссӕджыты нысӕнттӕ?", + "pad.impexp.importbutton": "Еныр симпорт кӕнын", + "pad.impexp.importing": "Импорт цӕуы...", + "pad.impexp.confirmimport": "Файлы импорт документы ныры текст бынтон фӕивдзӕнис. Ӕцӕг дӕ фӕнды уый саразын?", + "pad.impexp.convertFailed": "Махӕн нӕ бон не ссис ацы файл симпорт кӕнын. Дӕ хорзӕхӕй, спайда кӕн ӕндӕр файлы форматӕй, кӕнӕ скъопи кӕн ӕмӕ батысс текст дӕхӕдӕг.", + "pad.impexp.uploadFailed": "Бавгӕнын нӕ рауад, дӕ хорзӕхӕй, фӕстӕдӕр бафӕлвар", + "pad.impexp.importfailed": "Импорт нӕ рауад", + "pad.impexp.copypaste": "Дӕ хорзӕхӕй, къопи кӕн ӕмӕ ӕвӕр", + "pad.impexp.exportdisabled": "{{type}} форматы экспорт хицӕн у. Дӕ хорзӕхӕй, бадзур дӕ системон администратортӕм фылдӕр базонынӕн." }
\ No newline at end of file diff --git a/src/locales/pa.json b/src/locales/pa.json new file mode 100644 index 00000000..70231805 --- /dev/null +++ b/src/locales/pa.json @@ -0,0 +1,104 @@ +{ + "@metadata": { + "authors": [ + "Aalam" + ] + }, + "index.newPad": "ਨਵਾਂ ਪੈਡ", + "index.createOpenPad": "ਜਾਂ ਨਾਂ ਨਾਲ ਨਵਾਂ ਪੈਡ ਬਣਾਓ/ਖੋਲ੍ਹੋ:", + "pad.toolbar.bold.title": "ਗੂੜ੍ਹਾ (Ctrl-B)", + "pad.toolbar.italic.title": "ਤਿਰਛਾ (Ctrl-I)", + "pad.toolbar.underline.title": "ਹੇਠਾਂ-ਰੇਖਾ (Ctrl-U)", + "pad.toolbar.strikethrough.title": "ਵਿੰਨ੍ਹੋ ਵਿਨੋ", + "pad.toolbar.ol.title": "ਲੜੀਵਾਰ ਲਿਸਟ", + "pad.toolbar.ul.title": "ਬਿਨ-ਲੜੀਬੱਧ ਸੂਚੀ", + "pad.toolbar.indent.title": "ਹਾਸ਼ੀਏ ਤੋਂ ਦੂਰ", + "pad.toolbar.undo.title": "ਵਾਪਸ (Ctrl-Z)", + "pad.toolbar.redo.title": "ਪਰਤਾਓ (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "ਪਰਮਾਣਕਿਤਾ ਰੰਗ ਸਾਫ਼ ਕਰੋ", + "pad.toolbar.import_export.title": "ਵੱਖ-ਵੱਖ ਫਾਇਲ ਫਾਰਮੈਟ ਤੋਂ/ਵਿੱਚ ਇੰਪੋਰਟ/ਐਕਸਪੋਰਟ ਕਰੋ", + "pad.toolbar.timeslider.title": "ਸਮਾਂ-ਲਕੀਰ", + "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.passwordRequired": "ਇਹ ਪੈਡ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ ਪਾਸਵਰਡ ਚਾਹੀਦਾ ਹੈ", + "pad.permissionDenied": "ਇਹ ਪੈਡ ਵਰਤਨ ਲਈ ਤੁਹਾਨੂੰ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ", + "pad.wrongPassword": "ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਗਲਤੀ ਸੀ", + "pad.settings.padSettings": "ਪੈਡ ਸੈਟਿੰਗ", + "pad.settings.myView": "ਮੇਰੀ ਝਲਕ", + "pad.settings.stickychat": "ਹਮੇਸ਼ਾ ਸਕਰੀਨ ਉੱਤੇ ਗੱਲ ਕਰੋ", + "pad.settings.linenocheck": "ਲਾਈਨ ਨੰਬਰ", + "pad.settings.rtlcheck": "ਸਮੱਗਰੀ ਸੱਜੇ ਤੋਂ ਖੱਬੇ ਪੜ੍ਹਨੀ ਹੈ?", + "pad.settings.fontType": "ਫੋਂਟ ਕਿਸਮ:", + "pad.settings.fontType.normal": "ਸਧਾਰਨ", + "pad.settings.fontType.monospaced": "ਮੋਨੋਸਪੇਸ", + "pad.settings.globalView": "ਗਲੋਬਲ ਝਲਕ", + "pad.settings.language": "ਭਾਸ਼ਾ:", + "pad.importExport.import_export": "ਇੰਪੋਰਟ/ਐਕਸਪੋਰਟ", + "pad.importExport.import": "ਕੋਈ ਵੀ ਟੈਕਸਟ ਫਾਇਲ ਜਾਂ ਦਸਤਾਵੇਜ਼ ਅੱਪਲੋਡ ਕਰੋ", + "pad.importExport.importSuccessful": "ਸਫ਼ਲ!", + "pad.importExport.export": "ਮੌਜੂਦਾ ਪੈਡ ਨੂੰ ਐਕਸਪੋਰਟ ਕਰੋ:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "ਸਧਾਰਨ ਟੈਕਸਟ", + "pad.importExport.exportword": "ਮਾਈਕਰੋਸਾਫਟ ਵਰਡ", + "pad.importExport.exportpdf": "ਪੀਡੀਐਫ", + "pad.importExport.exportopen": "ODF (ਓਪਨ ਡੌਕੂਮੈਂਟ ਫਾਰਮੈਟ)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.connected": "ਕੁਨੈਕਟ ਹੈ।", + "pad.modals.reconnecting": "..ਤੁਹਾਡੇ ਪੈਡ ਨਾਲ ਮੁੜ-ਕੁਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ", + "pad.modals.forcereconnect": "ਧੱਕੇ ਨਾਲ ਮੁੜ-ਕੁਨੈਕਟ ਕਰੋ", + "pad.modals.userdup": "ਹੋਰ ਵਿੰਡੋ ਵਿੱਚ ਖੁੱਲ੍ਹਿਆ ਹੈ", + "pad.modals.unauth": "ਪਰਮਾਣਿਤ ਨਹੀਂ ਹੈ", + "pad.modals.initsocketfail": "ਸਰਵਰ ਪਹੁੰਚ ਵਿੱਚ ਨਹੀਂ ਹੈ।", + "pad.modals.slowcommit.explanation": "ਸਰਵਰ ਜਵਾਬ ਨਹੀਂ ਦੇ ਰਿਹਾ ਹੈ।", + "pad.modals.slowcommit.cause": "ਇਹ ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਨਾਲ ਸਮੱਸਿਆ ਕਰਕੇ ਹੋ ਸਕਦਾ ਹੈ।", + "pad.modals.deleted": "ਹਟਾਇਆ।", + "pad.modals.deleted.explanation": "ਇਹ ਪੈਡ ਹਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।", + "pad.modals.disconnected": "ਤੁਸੀਂ ਡਿਸ-ਕੁਨੈਕਟ ਹੋ ਚੁੱਕੇ ਹੋ।", + "pad.modals.disconnected.explanation": "ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਖਤਮ ਹੋਇਆ ਹੈ", + "pad.share": "ਇਹ ਪੈਡ ਸਾਂਝਾ ਕਰੋ", + "pad.share.readonly": "ਕੇਵਲ ਪੜ੍ਹਨ ਲਈ", + "pad.share.link": "ਲਿੰਕ", + "pad.share.emebdcode": "ਇੰਬੈੱਡ URL", + "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.saved": "{{day}} {{month}} {{year}} ਨੂੰ ਸੰਭਾਲਿਆ", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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": "ਦਸੰਬਰ", + "timeslider.unnamedauthors": "{{num}} ਬੇਨਾਮ ਲੇਖਕ", + "pad.savedrevs.marked": "ਇਹ ਰੀਵਿਜ਼ਨ ਨੂੰ ਹੁਣ ਸੰਭਾਲੇ ਹੋਏ ਰੀਵਿਜ਼ਨ ਵਜੋਂ ਮੰਨਿਆ ਗਿਆ ਹੈ", + "pad.userlist.entername": "ਆਪਣਾ ਨਾਂ ਦਿਉ", + "pad.userlist.unnamed": "ਬੇਨਾਮ", + "pad.userlist.guest": "ਮਹਿਮਾਨ", + "pad.userlist.deny": "ਪਾਬੰਦੀ", + "pad.userlist.approve": "ਮਨਜ਼ੂਰ", + "pad.editbar.clearcolors": "ਪੂਰੇ ਦਸਾਤਵੇਜ਼ ਉੱਤੇ ਪਰਮਾਣਕਿਤਾ ਰੰਗ ਸਾਫ਼ ਕਰਨੇ ਹਨ?", + "pad.impexp.importbutton": "ਹੁਣੇ ਇੰਪੋਰਟ ਕਰੋ", + "pad.impexp.importing": "...ਇੰਪੋਰਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ", + "pad.impexp.uploadFailed": "ਅੱਪਲੋਡ ਲਈ ਫੇਲ੍ਹ ਹੈ, ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।", + "pad.impexp.importfailed": "ਇੰਪੋਰਟ ਫੇਲ੍ਹ ਹੈ", + "pad.impexp.copypaste": "ਕਾਪੀ ਕਰੋ ਚੇਪੋ ਜੀ" +}
\ No newline at end of file diff --git a/src/locales/pl.json b/src/locales/pl.json index 3481cafc..4f4d7a92 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -1,120 +1,125 @@ { - "@metadata": { - "authors": { - "0": "Rezonansowy", - "2": "WTM", - "3": "Woytecr" - } - }, - "index.newPad": "Nowy Dokument", - "index.createOpenPad": "lub stw\u00f3rz\/otw\u00f3rz dokument o nazwie:", - "pad.toolbar.bold.title": "Pogrubienie (Ctrl-B)", - "pad.toolbar.italic.title": "Kursywa (Ctrl-I)", - "pad.toolbar.underline.title": "Podkre\u015blenie (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Przekre\u015blenie", - "pad.toolbar.ol.title": "Lista uporz\u0105dkowana", - "pad.toolbar.ul.title": "Lista nieuporz\u0105dkowana", - "pad.toolbar.indent.title": "Wci\u0119cie", - "pad.toolbar.unindent.title": "Zmniejsz wci\u0119cie", - "pad.toolbar.undo.title": "Cofnij (Ctrl-Z)", - "pad.toolbar.redo.title": "Pon\u00f3w (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Usu\u0144 kolory autor\u00f3w", - "pad.toolbar.import_export.title": "Import\/eksport z\/do r\u00f3\u017cnych format\u00f3w plik\u00f3w", - "pad.toolbar.timeslider.title": "O\u015b czasu", - "pad.toolbar.savedRevision.title": "Zapisane wersje", - "pad.toolbar.settings.title": "Ustawienia", - "pad.toolbar.embed.title": "Umie\u015b\u0107 ten Notatnik", - "pad.toolbar.showusers.title": "Poka\u017c u\u017cytkownik\u00f3w", - "pad.colorpicker.save": "Zapisz", - "pad.colorpicker.cancel": "Anuluj", - "pad.loading": "\u0141adowanie...", - "pad.passwordRequired": "Musisz poda\u0107 has\u0142o aby uzyska\u0107 dost\u0119p do tego dokumentu", - "pad.permissionDenied": "Nie masz uprawnie\u0144 dost\u0119pu do tego dokumentu", - "pad.wrongPassword": "Nieprawid\u0142owe has\u0142o", - "pad.settings.padSettings": "Ustawienia dokumentu", - "pad.settings.myView": "M\u00f3j widok", - "pad.settings.stickychat": "Czat zawsze na ekranie", - "pad.settings.colorcheck": "Kolory autorstwa", - "pad.settings.linenocheck": "Numery linii", - "pad.settings.fontType": "Rodzaj czcionki:", - "pad.settings.fontType.normal": "Normalna", - "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "Widok og\u00f3lny", - "pad.settings.language": "J\u0119zyk:", - "pad.importExport.import_export": "Import\/eksport", - "pad.importExport.import": "Prze\u015blij dowolny plik tekstowy lub dokument", - "pad.importExport.importSuccessful": "Sukces!", - "pad.importExport.export": "Eksportuj bie\u017c\u0105cy dokument jako:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Zwyk\u0142y tekst", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Mo\u017cesz importowa\u0107 pliki tylko w formacie zwyk\u0142ego tekstu lub html. Aby umo\u017cliwi\u0107 bardziej zaawansowane funkcje importu, <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\">zainstaluj abiword<\/a>.", - "pad.modals.connected": "Po\u0142\u0105czony.", - "pad.modals.reconnecting": "Ponowne \u0142\u0105czenie z dokumentem...", - "pad.modals.forcereconnect": "Wymu\u015b ponowne po\u0142\u0105czenie", - "pad.modals.userdup": "Otwarty w innym oknie", - "pad.modals.userdup.explanation": "Ten dokument prawdopodobnie zosta\u0142 otwarty w wi\u0119cej ni\u017c jednym oknie przegl\u0105darki.", - "pad.modals.userdup.advice": "Po\u0142\u0105cz ponownie przy u\u017cyciu tego okna.", - "pad.modals.unauth": "Brak autoryzacji", - "pad.modals.unauth.explanation": "Twoje uprawnienia uleg\u0142y zmianie podczas przegl\u0105dania tej strony. Spr\u00f3buj ponownie si\u0119 po\u0142\u0105czy\u0107.", - "pad.modals.looping": "Roz\u0142\u0105czony.", - "pad.modals.looping.explanation": "Wyst\u0105pi\u0142y problemy z komunikacj\u0105 z serwerem synchronizacji.", - "pad.modals.looping.cause": "By\u0107 mo\u017ce jeste\u015b po\u0142\u0105czony przez niezgodn\u0105 zapor\u0119 lub serwer proxy.", - "pad.modals.initsocketfail": "Serwer jest nieosi\u0105galny.", - "pad.modals.initsocketfail.explanation": "Nie uda\u0142o si\u0119 po\u0142\u0105czy\u0107 z serwerem synchronizacji.", - "pad.modals.initsocketfail.cause": "Przyczyn\u0105 s\u0105 prawdopodobnie problemy z przegl\u0105darka lub po\u0142\u0105czeniem z internetem.", - "pad.modals.slowcommit": "Roz\u0142\u0105czony.", - "pad.modals.slowcommit.explanation": "Serwer nie odpowiada.", - "pad.modals.slowcommit.cause": "Mo\u017ce by\u0107 to spowodowane problemami z Twoim po\u0142\u0105czeniem z sieci\u0105.", - "pad.modals.deleted": "Usuni\u0119to.", - "pad.modals.deleted.explanation": "Ten dokument zosta\u0142 usuni\u0119ty.", - "pad.modals.disconnected": "Zosta\u0142e\u015b roz\u0142\u0105czony.", - "pad.modals.disconnected.explanation": "Utracono po\u0142\u0105czenie z serwerem", - "pad.modals.disconnected.cause": "Serwer mo\u017ce by\u0107 niedost\u0119pny. Poinformuj nas je\u017celi problem b\u0119dzie si\u0119 powtarza\u0142.", - "pad.share": "Udost\u0119pnij ten dokument", - "pad.share.readonly": "Tylko do odczytu", - "pad.share.link": "Link", - "pad.share.emebdcode": "Kod do umieszczenia", - "pad.chat": "Czat", - "pad.chat.title": "Otw\u00f3rz czat dla tego dokumentu.", - "pad.chat.loadmessages": "Za\u0142aduj wi\u0119cej wiadomo\u015bci", - "timeslider.pageTitle": "O\u015b czasu {{appTitle}}", - "timeslider.toolbar.returnbutton": "Powr\u00f3\u0107 do dokumentu", - "timeslider.toolbar.authors": "Autorzy:", - "timeslider.toolbar.authorsList": "Brak autor\u00f3w", - "timeslider.toolbar.exportlink.title": "Eksportuj", - "timeslider.exportCurrent": "Eksportuj bie\u017c\u0105c\u0105 wersj\u0119 jako:", - "timeslider.version": "Wersja {{version}}", - "timeslider.saved": "Zapisano {{day}} {{month}} {{year}}", - "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Stycze\u0144", - "timeslider.month.february": "Luty", - "timeslider.month.march": "Marzec", - "timeslider.month.april": "Kwiecie\u0144", - "timeslider.month.may": "Maj", - "timeslider.month.june": "Czerwiec", - "timeslider.month.july": "Lipiec", - "timeslider.month.august": "Sierpie\u0144", - "timeslider.month.september": "Wrzesie\u0144", - "timeslider.month.october": "Pa\u017adziernik", - "timeslider.month.november": "Listopad", - "timeslider.month.december": "Grudzie\u0144", - "pad.savedrevs.marked": "Ta wersja zosta\u0142a w\u0142a\u015bnie oznaczona jako zapisana.", - "pad.userlist.entername": "Wprowad\u017a swoj\u0105 nazw\u0119", - "pad.userlist.unnamed": "bez nazwy", - "pad.userlist.guest": "Go\u015b\u0107", - "pad.userlist.deny": "Zabro\u0144", - "pad.userlist.approve": "Akceptuj", - "pad.editbar.clearcolors": "Wyczy\u015bci\u0107 kolory autorstwa w ca\u0142ym dokumencie?", - "pad.impexp.importbutton": "Importuj teraz", - "pad.impexp.importing": "Importowanie...", - "pad.impexp.confirmimport": "Importowanie pliku spowoduje zast\u0105pienie bie\u017c\u0105cego tekstu. Czy na pewno chcesz kontynuowa\u0107?", - "pad.impexp.convertFailed": "Nie byli\u015bmy w stanie zaimportowa\u0107 tego pliku. Prosz\u0119 u\u017cy\u0107 innego formatu dokumentu lub skopiowa\u0107 i wklei\u0107 r\u0119cznie", - "pad.impexp.uploadFailed": "Przesy\u0142anie nie powiod\u0142o si\u0119, prosz\u0119 spr\u00f3bowa\u0107 jeszcze raz", - "pad.impexp.importfailed": "Importowanie nie powiod\u0142o si\u0119", - "pad.impexp.copypaste": "Prosz\u0119 skopiowa\u0107 i wklei\u0107", - "pad.impexp.exportdisabled": "Eksport do formatu {{type}} jest wy\u0142\u0105czony. Prosz\u0119 skontaktowa\u0107 si\u0119 z administratorem aby uzyska\u0107 wi\u0119cej szczeg\u00f3\u0142\u00f3w." + "@metadata": { + "authors": { + "0": "Rezonansowy", + "2": "Ty221", + "3": "WTM", + "4": "Woytecr" + } + }, + "index.newPad": "Nowy dokument", + "index.createOpenPad": "lub stwórz/otwórz dokument o nazwie:", + "pad.toolbar.bold.title": "Pogrubienie (Ctrl-B)", + "pad.toolbar.italic.title": "Kursywa (Ctrl-I)", + "pad.toolbar.underline.title": "Podkreślenie (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Przekreślenie", + "pad.toolbar.ol.title": "Lista uporządkowana", + "pad.toolbar.ul.title": "Lista nieuporządkowana", + "pad.toolbar.indent.title": "Wcięcie", + "pad.toolbar.unindent.title": "Zmniejsz wcięcie", + "pad.toolbar.undo.title": "Cofnij (Ctrl-Z)", + "pad.toolbar.redo.title": "Ponów (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Usuń kolory autorów", + "pad.toolbar.import_export.title": "Import/eksport z/do różnych formatów plików", + "pad.toolbar.timeslider.title": "Oś czasu", + "pad.toolbar.savedRevision.title": "Zapisz wersję", + "pad.toolbar.settings.title": "Ustawienia", + "pad.toolbar.embed.title": "Podziel się i osadź ten dokument", + "pad.toolbar.showusers.title": "Pokaż użytkowników", + "pad.colorpicker.save": "Zapisz", + "pad.colorpicker.cancel": "Anuluj", + "pad.loading": "Ładowanie...", + "pad.passwordRequired": "Musisz podać hasło aby uzyskać dostęp do tego dokumentu", + "pad.permissionDenied": "Nie masz uprawnień dostępu do tego dokumentu", + "pad.wrongPassword": "Nieprawidłowe hasło", + "pad.settings.padSettings": "Ustawienia dokumentu", + "pad.settings.myView": "Mój widok", + "pad.settings.stickychat": "Czat zawsze na ekranie", + "pad.settings.colorcheck": "Kolory autorstwa", + "pad.settings.linenocheck": "Numery linii", + "pad.settings.rtlcheck": "Czytasz treść od prawej do lewej?", + "pad.settings.fontType": "Rodzaj czcionki:", + "pad.settings.fontType.normal": "Normalna", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Widok ogólny", + "pad.settings.language": "Język:", + "pad.importExport.import_export": "Import/eksport", + "pad.importExport.import": "Prześlij dowolny plik tekstowy lub dokument", + "pad.importExport.importSuccessful": "Sukces!", + "pad.importExport.export": "Eksportuj bieżący dokument jako:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Zwykły tekst", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Możesz importować pliki tylko w formacie zwykłego tekstu lub html. Aby umożliwić bardziej zaawansowane funkcje importu, \u003Ca 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\"\u003Ezainstaluj abiword\u003C/a\u003E.", + "pad.modals.connected": "Połączony.", + "pad.modals.reconnecting": "Ponowne łączenie z dokumentem...", + "pad.modals.forcereconnect": "Wymuś ponowne połączenie", + "pad.modals.userdup": "Otwarty w innym oknie", + "pad.modals.userdup.explanation": "Ten dokument prawdopodobnie został otwarty w więcej niż jednym oknie przeglądarki.", + "pad.modals.userdup.advice": "Połącz ponownie przy użyciu tego okna.", + "pad.modals.unauth": "Brak autoryzacji", + "pad.modals.unauth.explanation": "Twoje uprawnienia uległy zmianie podczas przeglądania tej strony. Spróbuj ponownie się połączyć.", + "pad.modals.looping.explanation": "Wystąpiły problemy z komunikacją z serwerem synchronizacji.", + "pad.modals.looping.cause": "Być może jesteś połączony przez niezgodną zaporę lub serwer proxy.", + "pad.modals.initsocketfail": "Serwer jest nieosiągalny.", + "pad.modals.initsocketfail.explanation": "Nie udało się połączyć z serwerem synchronizacji.", + "pad.modals.initsocketfail.cause": "Przyczyną są prawdopodobnie problemy z przeglądarka lub połączeniem z internetem.", + "pad.modals.slowcommit.explanation": "Serwer nie odpowiada.", + "pad.modals.slowcommit.cause": "Może być to spowodowane problemami z Twoim połączeniem z siecią.", + "pad.modals.badChangeset.explanation": "Edycja, którą wykonałeś, została niewłaściwie zakwalifikowana przez serwer synchronizacji.", + "pad.modals.badChangeset.cause": "Może być to spowodowane złą konfiguracją serwera lub innym nieoczekiwanym zachowaniem. Skontaktuj się z administratorem serwisu, jeżeli wydaje Ci się, że to jest błąd. Spróbuj ponownie połączyć się aby kontynuować edycję.", + "pad.modals.corruptPad.explanation": "Dokument, do którego próbujesz uzyskać dostęp, jest uszkodzony.", + "pad.modals.corruptPad.cause": "Może być to spowodowane złą konfiguracją serwera lub innym nieoczekiwanym zachowaniem. Skontaktuj się z administratorem serwisu.", + "pad.modals.deleted": "Usunięto.", + "pad.modals.deleted.explanation": "Ten dokument został usunięty.", + "pad.modals.disconnected": "Zostałeś rozłączony.", + "pad.modals.disconnected.explanation": "Utracono połączenie z serwerem", + "pad.modals.disconnected.cause": "Serwer może być niedostępny. Poinformuj administratora serwisu jeżeli problem będzie się powtarzał.", + "pad.share": "Udostępnij ten dokument", + "pad.share.readonly": "Tylko do odczytu", + "pad.share.link": "Link", + "pad.share.emebdcode": "URL do umieszczenia", + "pad.chat": "Czat", + "pad.chat.title": "Otwórz czat dla tego dokumentu.", + "pad.chat.loadmessages": "Załaduj więcej wiadomości", + "timeslider.pageTitle": "Oś czasu {{appTitle}}", + "timeslider.toolbar.returnbutton": "Powróć do dokumentu", + "timeslider.toolbar.authors": "Autorzy:", + "timeslider.toolbar.authorsList": "Brak autorów", + "timeslider.toolbar.exportlink.title": "Eksportuj", + "timeslider.exportCurrent": "Eksportuj bieżącą wersję jako:", + "timeslider.version": "Wersja {{version}}", + "timeslider.saved": "Zapisano {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Styczeń", + "timeslider.month.february": "Luty", + "timeslider.month.march": "Marzec", + "timeslider.month.april": "Kwiecień", + "timeslider.month.may": "Maj", + "timeslider.month.june": "Czerwiec", + "timeslider.month.july": "Lipiec", + "timeslider.month.august": "Sierpień", + "timeslider.month.september": "Wrzesień", + "timeslider.month.october": "Październik", + "timeslider.month.november": "Listopad", + "timeslider.month.december": "Grudzień", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor, other: autorów ]} bez nazw", + "pad.savedrevs.marked": "Ta wersja została właśnie oznaczona jako zapisana.", + "pad.userlist.entername": "Wprowadź swoją nazwę", + "pad.userlist.unnamed": "bez nazwy", + "pad.userlist.guest": "Gość", + "pad.userlist.deny": "Zabroń", + "pad.userlist.approve": "Akceptuj", + "pad.editbar.clearcolors": "Wyczyścić kolory autorstwa w całym dokumencie?", + "pad.impexp.importbutton": "Importuj teraz", + "pad.impexp.importing": "Importowanie...", + "pad.impexp.confirmimport": "Importowanie pliku spowoduje zastąpienie bieżącego tekstu. Czy na pewno chcesz kontynuować?", + "pad.impexp.convertFailed": "Nie byliśmy w stanie zaimportować tego pliku. Proszę użyć innego formatu dokumentu lub skopiować i wkleić ręcznie", + "pad.impexp.uploadFailed": "Przesyłanie nie powiodło się, proszę spróbować jeszcze raz", + "pad.impexp.importfailed": "Importowanie nie powiodło się", + "pad.impexp.copypaste": "Proszę skopiować i wkleić", + "pad.impexp.exportdisabled": "Eksport do formatu {{type}} jest wyłączony. Proszę skontaktować się z administratorem aby uzyskać więcej szczegółów." }
\ No newline at end of file diff --git a/src/locales/ps.json b/src/locales/ps.json index b992a56a..ac3b145b 100644 --- a/src/locales/ps.json +++ b/src/locales/ps.json @@ -1,53 +1,70 @@ { - "@metadata": { - "authors": [ - "Ahmed-Najib-Biabani-Ibrahimkhel" - ] - }, - "pad.toolbar.bold.title": "\u0632\u063a\u0631\u062f (Ctrl-B)", - "pad.toolbar.italic.title": "\u0631\u06d0\u0648\u0646\u062f (Ctrl-I)", - "pad.toolbar.undo.title": "\u0646\u0627\u06a9\u0693\u0644 (Ctrl-Z)", - "pad.toolbar.redo.title": "\u0628\u064a\u0627\u06a9\u0693\u0644 (Ctrl-Y)", - "pad.toolbar.settings.title": "\u0627\u0645\u0633\u062a\u0646\u06d0", - "pad.colorpicker.save": "\u062e\u0648\u0646\u062f\u064a \u06a9\u0648\u0644", - "pad.colorpicker.cancel": "\u0646\u0627\u06ab\u0627\u0631\u0644", - "pad.loading": "\u0628\u0631\u0633\u06d0\u0631\u06d0\u062f\u0646\u06d0 \u06a9\u06d0 \u062f\u06cc...", - "pad.wrongPassword": "\u067e\u067c\u0646\u0648\u0645 \u0645\u0648 \u0633\u0645 \u0646\u0647 \u0648", - "pad.settings.myView": "\u0632\u0645\u0627 \u06a9\u062a\u0646\u0647", - "pad.settings.fontType": "\u0644\u064a\u06a9\u0628\u06bc\u06d0 \u0689\u0648\u0644:", - "pad.settings.fontType.normal": "\u0646\u0648\u0631\u0645\u0627\u0644", - "pad.settings.fontType.monospaced": "\u0645\u0648\u0646\u0648\u0633\u067e\u06d0\u0633", - "pad.settings.globalView": "\u0646\u0693\u06d0\u0648\u0627\u0644\u0647 \u069a\u06a9\u0627\u0631\u06d0\u062f\u0646\u0647", - "pad.settings.language": "\u0698\u0628\u0647:", - "pad.importExport.importSuccessful": "\u0628\u0631\u064a\u0627\u0644\u06cc \u0634\u0648!", - "pad.importExport.exporthtml": "\u0627\u0686 \u067c\u064a \u0627\u0645 \u0627\u06d0\u0644", - "pad.importExport.exportplain": "\u0633\u0627\u062f\u0647 \u0645\u062a\u0646", - "pad.importExport.exportword": "\u0645\u0627\u064a\u06a9\u0631\u0648\u0633\u0627\u0641\u067c \u0648\u0631\u0689", - "pad.importExport.exportpdf": "\u067e\u064a \u0689\u064a \u0627\u06d0\u0641", - "pad.importExport.exportopen": "ODF (\u0627\u0648\u067e\u0646 \u0689\u0627\u06a9\u0648\u0645\u0646\u067c \u0641\u0627\u0631\u0645\u067c)", - "pad.modals.deleted": "\u0693\u0646\u06ab \u0634\u0648.", - "pad.share.readonly": "\u064a\u0648\u0627\u0632\u06d0 \u0644\u0648\u0633\u062a\u0646\u0647", - "pad.share.link": "\u062a\u0693\u0646\u0647", - "pad.share.emebdcode": "\u064a\u0648 \u0622\u0631 \u0627\u06d0\u0644 \u067c\u0648\u0645\u0628\u0644", - "pad.chat": "\u0628\u0627\u0646\u0689\u0627\u0631", - "pad.chat.loadmessages": "\u0646\u0648\u0631 \u067e\u064a\u063a\u0627\u0645\u0648\u0646\u0647 \u0628\u0631\u0633\u06d0\u0631\u0648\u0644", - "timeslider.toolbar.authors": "\u0644\u064a\u06a9\u0648\u0627\u0644:", - "timeslider.toolbar.authorsList": "\u0628\u06d0 \u0644\u064a\u06a9\u0648\u0627\u0644\u0647", - "timeslider.month.january": "\u062c\u0646\u0648\u0631\u064a", - "timeslider.month.february": "\u0641\u0628\u0631\u0648\u0631\u064a", - "timeslider.month.march": "\u0645\u0627\u0631\u0686", - "timeslider.month.april": "\u0627\u067e\u0631\u06d0\u0644", - "timeslider.month.may": "\u0645\u06cd", - "timeslider.month.june": "\u062c\u0648\u0646", - "timeslider.month.july": "\u062c\u0648\u0644\u0627\u06cc", - "timeslider.month.august": "\u0627\u06ab\u0633\u067c", - "timeslider.month.september": "\u0633\u06d0\u067e\u062a\u0645\u0628\u0631", - "timeslider.month.october": "\u0627\u06a9\u062a\u0648\u0628\u0631", - "timeslider.month.november": "\u0646\u0648\u0645\u0628\u0631", - "timeslider.month.december": "\u0689\u064a\u0633\u0645\u0628\u0631", - "pad.userlist.entername": "\u0646\u0648\u0645 \u0645\u0648 \u0648\u0631\u06a9\u0693\u06cd", - "pad.userlist.unnamed": "\u0628\u06d0 \u0646\u0648\u0645\u0647", - "pad.userlist.guest": "\u0645\u06d0\u0644\u0645\u0647", - "pad.userlist.deny": "\u0631\u062f\u0648\u0644", - "pad.userlist.approve": "\u0645\u0646\u0644" + "@metadata": { + "authors": [ + "Ahmed-Najib-Biabani-Ibrahimkhel" + ] + }, + "index.newPad": "نوې ليکچه", + "index.createOpenPad": "يا په همدې نوم يوه نوې ليکچه جوړول/پرانيستل:", + "pad.toolbar.bold.title": "زغرد (Ctrl-B)", + "pad.toolbar.italic.title": "رېوند (Ctrl-I)", + "pad.toolbar.undo.title": "ناکړل (Ctrl-Z)", + "pad.toolbar.redo.title": "بياکړل (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "د ليکوالۍ رنګونه سپينول", + "pad.toolbar.savedRevision.title": "مخکتنه خوندي کول", + "pad.toolbar.settings.title": "امستنې", + "pad.colorpicker.save": "خوندي کول", + "pad.colorpicker.cancel": "ناگارل", + "pad.loading": "برسېرېدنې کې دی...", + "pad.passwordRequired": "دې ليکچې ته د لاسرسي لپاره تاسې يو پټنوم ته اړتيا لرۍ", + "pad.wrongPassword": "پټنوم مو سم نه و", + "pad.settings.padSettings": "د ليکچې امستنې", + "pad.settings.myView": "زما کتنه", + "pad.settings.colorcheck": "د ليکوالۍ رنګونه", + "pad.settings.fontType": "ليکبڼې ډول:", + "pad.settings.fontType.normal": "نورمال", + "pad.settings.fontType.monospaced": "مونوسپېس", + "pad.settings.globalView": "نړېواله ښکارېدنه", + "pad.settings.language": "ژبه:", + "pad.importExport.importSuccessful": "بريالی شو!", + "pad.importExport.exporthtml": "اچ ټي ام اېل", + "pad.importExport.exportplain": "ساده متن", + "pad.importExport.exportword": "مايکروسافټ ورډ", + "pad.importExport.exportpdf": "پي ډي اېف", + "pad.importExport.exportopen": "ODF (اوپن ډاکومنټ فارمټ)", + "pad.importExport.exportdokuwiki": "ډوکوويکي", + "pad.modals.connected": "اړيکمن شو.", + "pad.modals.slowcommit.explanation": "پالنگر ځواب نه وايي.", + "pad.modals.slowcommit.cause": "دا کېدای شي د جال د اړيکتيايي ستونزو په سبب وي.", + "pad.modals.deleted": "ړنگ شو.", + "pad.share.readonly": "يوازې لوستنه", + "pad.share.link": "تړنه", + "pad.share.emebdcode": "يو آر اېل ټومبل", + "pad.chat": "بانډار", + "pad.chat.loadmessages": "نور پيغامونه برسېرول", + "timeslider.toolbar.authors": "ليکوال:", + "timeslider.toolbar.authorsList": "بې ليکواله", + "timeslider.toolbar.exportlink.title": "صادرول", + "timeslider.version": "بڼه {{version}}", + "timeslider.saved": "خوندي شو {{month}} {{day}}, {{year}}", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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": "ډيسمبر", + "timeslider.unnamedauthors": "{{num}} بېنومه ليکوالان", + "pad.savedrevs.marked": "اوس دا مخکتنه د يوې خوندي شوې مخکتنې په توگه په نښه شوه", + "pad.userlist.entername": "نوم مو ورکړۍ", + "pad.userlist.unnamed": "بې نومه", + "pad.userlist.guest": "مېلمه", + "pad.userlist.deny": "ردول", + "pad.userlist.approve": "منل" }
\ No newline at end of file diff --git a/src/locales/pt-br.json b/src/locales/pt-br.json index 6562681a..31debf4d 100644 --- a/src/locales/pt-br.json +++ b/src/locales/pt-br.json @@ -1,118 +1,127 @@ { - "@metadata": { - "authors": [ - "Tuliouel" - ] - }, - "index.newPad": "Nova Nota", - "index.createOpenPad": "ou criar-abrir uma Nota com o nome:", - "pad.toolbar.bold.title": "Negrito (Ctrl-B)", - "pad.toolbar.italic.title": "It\u00e1lico (Ctrl-I)", - "pad.toolbar.underline.title": "Sublinhar (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Tachado", - "pad.toolbar.ol.title": "Lista ordenada", - "pad.toolbar.ul.title": "Lista n\u00e3o ordenada", - "pad.toolbar.indent.title": "Aumentar Recuo", - "pad.toolbar.unindent.title": "Diminuir Recuo", - "pad.toolbar.undo.title": "Desfazer (Ctrl-Z)", - "pad.toolbar.redo.title": "Refazer (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Limpar as cores de identifica\u00e7\u00e3o de autoria", - "pad.toolbar.import_export.title": "Importar\/Exportar de\/para diferentes formatos de arquivo", - "pad.toolbar.timeslider.title": "Linha do tempo", - "pad.toolbar.savedRevision.title": "Revis\u00f5es Salvas", - "pad.toolbar.settings.title": "Configura\u00e7\u00f5es", - "pad.toolbar.embed.title": "Incorporar esta Nota", - "pad.toolbar.showusers.title": "Mostrar os usuarios nesta Nota", - "pad.colorpicker.save": "Salvar", - "pad.colorpicker.cancel": "Cancelar", - "pad.loading": "Carregando...", - "pad.passwordRequired": "Voc\u00ea precisa de uma senha para acessar esta Nota", - "pad.permissionDenied": "Voc\u00ea n\u00e3o tem permiss\u00e3o para acessar esta nota", - "pad.wrongPassword": "Senha incorreta", - "pad.settings.padSettings": "Configura\u00e7\u00f5es da Nota", - "pad.settings.myView": "Minha Vis\u00e3o", - "pad.settings.stickychat": "Conversa sempre vis\u00edvel", - "pad.settings.colorcheck": "Cores de autoria", - "pad.settings.linenocheck": "N\u00fameros de linha", - "pad.settings.fontType": "Tipo de fonte:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monoespa\u00e7ada", - "pad.settings.globalView": "Vis\u00e3o global", - "pad.settings.language": "Idioma:", - "pad.importExport.import_export": "Importar\/Exportar", - "pad.importExport.import": "Enviar um arquivo texto ou documento", - "pad.importExport.importSuccessful": "Completo!", - "pad.importExport.export": "Exportar a presente nota como:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Texto puro", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Voc\u00ea s\u00f3 pode importar de formatos de texto puro ou html. Para recursos de importa\u00e7\u00e3o mais avan\u00e7ados <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\">instale o abiword<\/a>.", - "pad.modals.connected": "Conectado.", - "pad.modals.reconnecting": "Reconectando \u00e0 sua nota...", - "pad.modals.forcereconnect": "For\u00e7ar reconex\u00e3o", - "pad.modals.userdup": "Aberto noutra janela", - "pad.modals.userdup.explanation": "Esta nota parece estar aberta em mais de uma janela de navegador deste computador.", - "pad.modals.userdup.advice": "Reconectar para usar esta janela.", - "pad.modals.unauth": "N\u00e3o autorizado", - "pad.modals.unauth.explanation": "Suas permiss\u00f5es foram mudadas enquanto visualizava esta p\u00e1gina. Tente reconectar.", - "pad.modals.looping": "Reconectado.", - "pad.modals.looping.explanation": "H\u00e1 problemas de comunica\u00e7\u00e3o com o servidor de sincroniza\u00e7\u00e3o.", - "pad.modals.looping.cause": "Talvez voc\u00ea tenha conectado por um firewall ou proxy incompat\u00edvel.", - "pad.modals.initsocketfail": "Servidor \u00e9 inalcan\u00e7\u00e1vel.", - "pad.modals.initsocketfail.explanation": "N\u00e3o foi poss\u00edvel conectar com o servidor de sincroniza\u00e7\u00e3o.", - "pad.modals.initsocketfail.cause": "Isto provavelmente ocorreu por um problema em seu navegador ou conex\u00e3o.", - "pad.modals.slowcommit": "Desconectado.", - "pad.modals.slowcommit.explanation": "O servidor n\u00e3o responde.", - "pad.modals.slowcommit.cause": "Isto pode ser por problemas com a conex\u00e3o de rede.", - "pad.modals.deleted": "Exclu\u00eddo", - "pad.modals.deleted.explanation": "Esta nota foi removida.", - "pad.modals.disconnected": "Voc\u00ea foi desconectado.", - "pad.modals.disconnected.explanation": "A conex\u00e3o com o servidor foi perdida", - "pad.modals.disconnected.cause": "O servidor pode estar indispon\u00edvel. Comunique-nos caso isso continue.", - "pad.share": "Compartilhar esta nota", - "pad.share.readonly": "Somente leitura", - "pad.share.link": "Liga\u00e7\u00e3o", - "pad.share.emebdcode": "Incorporar o URL", - "pad.chat": "Bate-papo", - "pad.chat.title": "Abrir o bate-papo desta nota.", - "pad.chat.loadmessages": "Carregar mais mensagens", - "timeslider.pageTitle": "Linha do tempo de {{appTitle}}", - "timeslider.toolbar.returnbutton": "Retornar para a nota", - "timeslider.toolbar.authors": "Autores:", - "timeslider.toolbar.authorsList": "Sem autores", - "timeslider.toolbar.exportlink.title": "Exportar", - "timeslider.exportCurrent": "Exportar a vers\u00e3o atual em formato:", - "timeslider.version": "Vers\u00e3o {{version}}", - "timeslider.saved": "Salvo em {{day}} de {{month}} de {{year}}", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Janeiro", - "timeslider.month.february": "Fevereiro", - "timeslider.month.march": "Mar\u00e7o", - "timeslider.month.april": "Abril", - "timeslider.month.may": "Maio", - "timeslider.month.june": "Junho", - "timeslider.month.july": "Julho", - "timeslider.month.august": "Agosto", - "timeslider.month.september": "Setembro", - "timeslider.month.october": "Outubro", - "timeslider.month.november": "Novembro", - "timeslider.month.december": "Dezembro", - "pad.savedrevs.marked": "Esta revis\u00e3o foi marcada como salva", - "pad.userlist.entername": "Insira o seu nome", - "pad.userlist.unnamed": "Sem t\u00edtulo", - "pad.userlist.guest": "Convidado", - "pad.userlist.deny": "Negar", - "pad.userlist.approve": "Aprovar", - "pad.editbar.clearcolors": "Deseja limpar cores de autoria em todo o documento?", - "pad.impexp.importbutton": "Importar agora", - "pad.impexp.importing": "Importando...", - "pad.impexp.confirmimport": "Importar um arquivo sobrescrever\u00e1 o atual texto da nota. Tem certeza de que deseja prosseguir?", - "pad.impexp.convertFailed": "N\u00e3o foi poss\u00edvel importar este arquivo. Use outro formato ou copie e cole manualmente", - "pad.impexp.uploadFailed": "O envio falhou. Tente outra vez", - "pad.impexp.importfailed": "A importa\u00e7\u00e3o falhou", - "pad.impexp.copypaste": "Copie e cole", - "pad.impexp.exportdisabled": "A exposta\u00e7\u00e3o em formato {{type}} est\u00e1 desativada. Comunique-se com o administrador do sistema para detalhes." + "@metadata": { + "authors": [ + "Gusta", + "Luckas", + "Prilopes", + "TheGabrielZaum", + "Titoncio", + "Tuliouel" + ] + }, + "index.newPad": "Nova Nota", + "index.createOpenPad": "ou criar-abrir uma Nota com o nome:", + "pad.toolbar.bold.title": "Negrito (Ctrl-B)", + "pad.toolbar.italic.title": "Itálico (Ctrl-I)", + "pad.toolbar.underline.title": "Sublinhar (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Tachado", + "pad.toolbar.ol.title": "Lista ordenada", + "pad.toolbar.ul.title": "Lista não ordenada", + "pad.toolbar.indent.title": "Aumentar Recuo (TAB)", + "pad.toolbar.unindent.title": "Diminuir Recuo (Shift+TAB)", + "pad.toolbar.undo.title": "Desfazer (Ctrl-Z)", + "pad.toolbar.redo.title": "Refazer (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Limpar as cores de identificação de autoria", + "pad.toolbar.import_export.title": "Importar/Exportar de/para diferentes formatos de arquivo", + "pad.toolbar.timeslider.title": "Linha do tempo", + "pad.toolbar.savedRevision.title": "Salvar revisão", + "pad.toolbar.settings.title": "Configurações", + "pad.toolbar.embed.title": "Compartilhar e incorporar esta nota", + "pad.toolbar.showusers.title": "Mostrar os usuarios nesta Nota", + "pad.colorpicker.save": "Salvar", + "pad.colorpicker.cancel": "Cancelar", + "pad.loading": "Carregando...", + "pad.passwordRequired": "Você precisa de uma senha para acessar esta Nota", + "pad.permissionDenied": "Você não tem permissão para acessar esta nota", + "pad.wrongPassword": "Senha incorreta", + "pad.settings.padSettings": "Configurações da Nota", + "pad.settings.myView": "Minha Visão", + "pad.settings.stickychat": "Conversa sempre visível", + "pad.settings.colorcheck": "Cores de autoria", + "pad.settings.linenocheck": "Números de linha", + "pad.settings.rtlcheck": "Ler conteúdo da direita para esquerda?", + "pad.settings.fontType": "Tipo de fonte:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monoespaçada", + "pad.settings.globalView": "Visão global", + "pad.settings.language": "Idioma:", + "pad.importExport.import_export": "Importar/Exportar", + "pad.importExport.import": "Enviar um arquivo texto ou documento", + "pad.importExport.importSuccessful": "Completo!", + "pad.importExport.export": "Exportar a presente nota como:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Texto puro", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Você só pode importar de formatos de texto puro ou html. Para recursos de importação mais avançados \u003Ca 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\"\u003Einstale o abiword\u003C/a\u003E.", + "pad.modals.connected": "Conectado.", + "pad.modals.reconnecting": "Reconectando à sua nota...", + "pad.modals.forcereconnect": "Forçar reconexão", + "pad.modals.userdup": "Aberto noutra janela", + "pad.modals.userdup.explanation": "Esta nota parece estar aberta em mais de uma janela de navegador deste computador.", + "pad.modals.userdup.advice": "Reconectar para usar esta janela.", + "pad.modals.unauth": "Não autorizado", + "pad.modals.unauth.explanation": "Suas permissões foram mudadas enquanto visualizava esta página. Tente reconectar.", + "pad.modals.looping.explanation": "Há problemas de comunicação com o servidor de sincronização.", + "pad.modals.looping.cause": "Talvez você tenha conectado por um firewall ou proxy incompatível.", + "pad.modals.initsocketfail": "Servidor é inalcançável.", + "pad.modals.initsocketfail.explanation": "Não foi possível conectar com o servidor de sincronização.", + "pad.modals.initsocketfail.cause": "Isto provavelmente ocorreu por um problema em seu navegador ou conexão.", + "pad.modals.slowcommit.explanation": "O servidor não responde.", + "pad.modals.slowcommit.cause": "Isto pode ser por problemas com a conexão de rede.", + "pad.modals.badChangeset.explanation": "Uma edição que você fez foi classificada como ilegal pelo servidor de sincronização.", + "pad.modals.badChangeset.cause": "Isto pode ocorrer devido a uma configuração errada do servidor ou algum outro comportamento inesperado. Por favor contate o administrador, se você acredita que é um erro. Tente reconectar para continuar editando.", + "pad.modals.corruptPad.explanation": "O pad que você está tentando acessar está corrompido.", + "pad.modals.corruptPad.cause": "Isto pode ocorrer devido a uma configuração errada do servidor ou algum outro comportamento inesperado. Por favor contate o administrador.", + "pad.modals.deleted": "Excluído", + "pad.modals.deleted.explanation": "Esta nota foi removida.", + "pad.modals.disconnected": "Você foi desconectado.", + "pad.modals.disconnected.explanation": "A conexão com o servidor foi perdida", + "pad.modals.disconnected.cause": "O servidor pode estar indisponível. Por favor, notifique o administrador caso isso continue.", + "pad.share": "Compartilhar esta nota", + "pad.share.readonly": "Somente leitura", + "pad.share.link": "Ligação", + "pad.share.emebdcode": "Incorporar o URL", + "pad.chat": "Bate-papo", + "pad.chat.title": "Abrir o bate-papo desta nota.", + "pad.chat.loadmessages": "Carregar mais mensagens", + "timeslider.pageTitle": "Linha do tempo de {{appTitle}}", + "timeslider.toolbar.returnbutton": "Retornar para a nota", + "timeslider.toolbar.authors": "Autores:", + "timeslider.toolbar.authorsList": "Sem autores", + "timeslider.toolbar.exportlink.title": "Exportar", + "timeslider.exportCurrent": "Exportar a versão atual em formato:", + "timeslider.version": "Versão {{version}}", + "timeslider.saved": "Salvo em {{day}} de {{month}} de {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Janeiro", + "timeslider.month.february": "Fevereiro", + "timeslider.month.march": "Março", + "timeslider.month.april": "Abril", + "timeslider.month.may": "Maio", + "timeslider.month.june": "Junho", + "timeslider.month.july": "Julho", + "timeslider.month.august": "Agosto", + "timeslider.month.september": "Setembro", + "timeslider.month.october": "Outubro", + "timeslider.month.november": "Novembro", + "timeslider.month.december": "Dezembro", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor anônimo, other: autores anônimos ]}", + "pad.savedrevs.marked": "Esta revisão foi marcada como salva", + "pad.userlist.entername": "Insira o seu nome", + "pad.userlist.unnamed": "Sem título", + "pad.userlist.guest": "Convidado", + "pad.userlist.deny": "Negar", + "pad.userlist.approve": "Aprovar", + "pad.editbar.clearcolors": "Deseja limpar cores de autoria em todo o documento?", + "pad.impexp.importbutton": "Importar agora", + "pad.impexp.importing": "Importando...", + "pad.impexp.confirmimport": "Importar um arquivo sobrescreverá o atual texto da nota. Tem certeza de que deseja prosseguir?", + "pad.impexp.convertFailed": "Não foi possível importar este arquivo. Use outro formato ou copie e cole manualmente", + "pad.impexp.uploadFailed": "O envio falhou. Tente outra vez", + "pad.impexp.importfailed": "A importação falhou", + "pad.impexp.copypaste": "Copie e cole", + "pad.impexp.exportdisabled": "A expostação em formato {{type}} está desativada. Comunique-se com o administrador do sistema para detalhes." }
\ No newline at end of file diff --git a/src/locales/pt.json b/src/locales/pt.json index 0e651fe8..cf32223b 100644 --- a/src/locales/pt.json +++ b/src/locales/pt.json @@ -1,59 +1,76 @@ { - "@metadata": { - "authors": { - "1": "Waldir" - } - }, - "index.newPad": "Novo Pad", - "index.createOpenPad": "ou criar\/abrir um Pad com o nome:", - "pad.toolbar.bold.title": "Negrito (Ctrl-B)", - "pad.toolbar.italic.title": "It\u00e1lico (Ctrl-I)", - "pad.toolbar.underline.title": "Sublinhado (Ctrl-U)", - "pad.toolbar.ol.title": "Lista numerada", - "pad.toolbar.ul.title": "Lista", - "pad.toolbar.undo.title": "Desfazer (Ctrl-Z)", - "pad.toolbar.redo.title": "Refazer (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Limpar cores de autoria", - "pad.toolbar.import_export.title": "Importar\/exportar de\/para diferentes formatos de ficheiro", - "pad.toolbar.timeslider.title": "Linha de tempo", - "pad.toolbar.savedRevision.title": "Vers\u00f5es gravadas", - "pad.toolbar.settings.title": "Configura\u00e7\u00f5es", - "pad.toolbar.embed.title": "Incorporar este Pad", - "pad.toolbar.showusers.title": "Mostrar os utilizadores neste Pad", - "pad.colorpicker.save": "Gravar", - "pad.colorpicker.cancel": "Cancelar", - "pad.loading": "A carregar\u2026", - "pad.settings.padSettings": "Configura\u00e7\u00f5es do Pad", - "pad.settings.myView": "Minha vista", - "pad.settings.colorcheck": "Cores de autoria", - "pad.settings.linenocheck": "N\u00fameros de linha", - "pad.settings.fontType": "Tipo de letra:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Monoespa\u00e7ada", - "pad.settings.globalView": "Vista global", - "pad.settings.language": "L\u00edngua:", - "pad.importExport.import_export": "Importar\/Exportar", - "pad.importExport.import": "Carregar qualquer ficheiro de texto ou documento", - "pad.importExport.export": "Exportar o Pad actual como:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Texto simples", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.modals.connected": "Ligado.", - "pad.modals.reconnecting": "Reconectando-se ao seu bloco\u2026", - "pad.modals.forcereconnect": "For\u00e7ar reconex\u00e3o", - "timeslider.month.january": "Janeiro", - "timeslider.month.february": "Fevereiro", - "timeslider.month.march": "Mar\u00e7o", - "timeslider.month.april": "Abril\ufffd\ufffd", - "timeslider.month.may": "Maio", - "timeslider.month.june": "Junho", - "timeslider.month.july": "Julho", - "timeslider.month.august": "Agosto", - "timeslider.month.september": "Setembro", - "timeslider.month.october": "Outubro", - "timeslider.month.november": "Novembro", - "timeslider.month.december": "Dezembro" + "@metadata": { + "authors": { + "0": "Hamilton Abreu", + "1": "Luckas", + "3": "Tuliouel", + "4": "Waldir" + } + }, + "index.newPad": "Nova Nota", + "index.createOpenPad": "ou crie/abra uma Nota com o nome:", + "pad.toolbar.bold.title": "Negrito (Ctrl-B)", + "pad.toolbar.italic.title": "Itálico (Ctrl-I)", + "pad.toolbar.underline.title": "Sublinhado (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Riscar", + "pad.toolbar.ol.title": "Lista numerada", + "pad.toolbar.ul.title": "Lista", + "pad.toolbar.indent.title": "Avançar", + "pad.toolbar.unindent.title": "Recuar", + "pad.toolbar.undo.title": "Desfazer (Ctrl-Z)", + "pad.toolbar.redo.title": "Refazer (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Limpar cores de autoria", + "pad.toolbar.import_export.title": "Importar/exportar de/para diferentes formatos de ficheiro", + "pad.toolbar.timeslider.title": "Linha de tempo", + "pad.toolbar.savedRevision.title": "Salvar revisão", + "pad.toolbar.settings.title": "Configurações", + "pad.toolbar.embed.title": "Incorporar este Pad", + "pad.toolbar.showusers.title": "Mostrar os utilizadores nesta Nota", + "pad.colorpicker.save": "Gravar", + "pad.colorpicker.cancel": "Cancelar", + "pad.loading": "A carregar…", + "pad.settings.padSettings": "Configurações da Nota", + "pad.settings.myView": "Minha vista", + "pad.settings.colorcheck": "Cores de autoria", + "pad.settings.linenocheck": "Números de linha", + "pad.settings.fontType": "Tipo de letra:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Monoespaçada", + "pad.settings.globalView": "Vista global", + "pad.settings.language": "Língua:", + "pad.importExport.import_export": "Importar/Exportar", + "pad.importExport.import": "Carregar qualquer ficheiro de texto ou documento", + "pad.importExport.export": "Exportar a Nota atual como:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Texto simples", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.modals.connected": "Ligado.", + "pad.modals.reconnecting": "Reconectando-se ao seu bloco…", + "pad.modals.forcereconnect": "Forçar reconexão", + "pad.modals.unauth": "Não autorizado", + "pad.modals.slowcommit.explanation": "O servidor não está respondendo.", + "timeslider.toolbar.authors": "Autores:", + "timeslider.toolbar.exportlink.title": "Exportar", + "timeslider.month.january": "Janeiro", + "timeslider.month.february": "Fevereiro", + "timeslider.month.march": "Março", + "timeslider.month.april": "Abril", + "timeslider.month.may": "Maio", + "timeslider.month.june": "Junho", + "timeslider.month.july": "Julho", + "timeslider.month.august": "Agosto", + "timeslider.month.september": "Setembro", + "timeslider.month.october": "Outubro", + "timeslider.month.november": "Novembro", + "timeslider.month.december": "Dezembro", + "pad.userlist.entername": "Insira o seu nome", + "pad.userlist.unnamed": "sem nome", + "pad.userlist.guest": "Convidado", + "pad.userlist.deny": "Negar", + "pad.userlist.approve": "Aprovar", + "pad.impexp.importbutton": "Importar agora", + "pad.impexp.importing": "Importando..." }
\ No newline at end of file diff --git a/src/locales/ru.json b/src/locales/ru.json index 4e4c4050..d74e7592 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -1,123 +1,126 @@ { - "@metadata": { - "authors": [ - "Amire80", - "DCamer", - "Eleferen", - "Volkov" - ] - }, - "index.newPad": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c", - "index.createOpenPad": "\u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c\/\u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c:", - "pad.toolbar.bold.title": "\u043f\u043e\u043b\u0443\u0436\u0438\u0440\u043d\u044b\u0439 (Ctrl-B)", - "pad.toolbar.italic.title": "\u043a\u0443\u0440\u0441\u0438\u0432 (Ctrl-I)", - "pad.toolbar.underline.title": "\u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435 (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u0437\u0430\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435", - "pad.toolbar.ol.title": "\u0423\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", - "pad.toolbar.ul.title": "\u041d\u0435\u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", - "pad.toolbar.indent.title": "\u041e\u0442\u0441\u0442\u0443\u043f", - "pad.toolbar.unindent.title": "\u0412\u044b\u0441\u0442\u0443\u043f", - "pad.toolbar.undo.title": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c (Ctrl-Z)", - "pad.toolbar.redo.title": "\u0412\u0435\u0440\u043d\u0443\u0442\u044c (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0446\u0432\u0435\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", - "pad.toolbar.import_export.title": "\u0418\u043c\u043f\u043e\u0440\u0442\/\u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0444\u0430\u0439\u043b\u043e\u0432", - "pad.toolbar.timeslider.title": "\u0428\u043a\u0430\u043b\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438", - "pad.toolbar.savedRevision.title": "\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438", - "pad.toolbar.settings.title": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438", - "pad.toolbar.embed.title": "\u0412\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", - "pad.toolbar.showusers.title": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435", - "pad.colorpicker.save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c", - "pad.colorpicker.cancel": "\u041e\u0442\u043c\u0435\u043d\u0430", - "pad.loading": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430...", - "pad.passwordRequired": "\u0412\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430", - "pad.permissionDenied": "\u0423 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f", - "pad.wrongPassword": "\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c", - "pad.settings.padSettings": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", - "pad.settings.myView": "\u041c\u043e\u0439 \u0432\u0438\u0434", - "pad.settings.stickychat": "\u0412\u0441\u0435\u0433\u0434\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0447\u0430\u0442", - "pad.settings.colorcheck": "\u0426\u0432\u0435\u0442\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", - "pad.settings.linenocheck": "\u041d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u043e\u043a", - "pad.settings.fontType": "\u0422\u0438\u043f \u0448\u0440\u0438\u0444\u0442\u0430:", - "pad.settings.fontType.normal": "\u041e\u0431\u044b\u0447\u043d\u044b\u0439", - "pad.settings.fontType.monospaced": "\u041c\u043e\u043d\u043e\u0448\u0438\u0440\u0438\u043d\u043d\u044b\u0439", - "pad.settings.globalView": "\u041e\u0431\u0449\u0438\u0439 \u0432\u0438\u0434", - "pad.settings.language": "\u042f\u0437\u044b\u043a:", - "pad.importExport.import_export": "\u0418\u043c\u043f\u043e\u0440\u0442\/\u044d\u043a\u0441\u043f\u043e\u0440\u0442", - "pad.importExport.import": "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", - "pad.importExport.importSuccessful": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e!", - "pad.importExport.export": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043a\u0430\u043a:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 OpenOffice)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0438\u043b\u0438 HTML. \u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u043c\u043f\u043e\u0440\u0442\u0430, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, <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\">\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 AbiWord<\/a>.", - "pad.modals.connected": "\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d.", - "pad.modals.reconnecting": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443", - "pad.modals.forcereconnect": "\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435", - "pad.modals.userdup": "\u041e\u0442\u043a\u0440\u044b\u0442\u043e \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043e\u043a\u043d\u0435", - "pad.modals.userdup.explanation": "\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043e\u0442\u043a\u0440\u044b\u0442 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0432 \u043e\u0434\u043d\u043e\u043c \u043e\u043a\u043d\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u043d\u0430 \u044d\u0442\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435.", - "pad.modals.userdup.advice": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0433\u043e \u043e\u043a\u043d\u0430.", - "pad.modals.unauth": "\u041d\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d", - "pad.modals.unauth.explanation": "\u0412\u0430\u0448\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e.", - "pad.modals.looping": "\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d.", - "pad.modals.looping.explanation": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441\u0432\u044f\u0437\u0438 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.", - "pad.modals.looping.cause": "\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438\u0441\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0431\u0440\u0430\u043d\u0434\u043c\u0430\u0443\u044d\u0440 \u0438\u043b\u0438 \u043f\u0440\u043e\u043a\u0441\u0438.", - "pad.modals.initsocketfail": "\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d.", - "pad.modals.initsocketfail.explanation": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.", - "pad.modals.initsocketfail.cause": "\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u044d\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043d\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0441 \u0432\u0430\u0448\u0438\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u0438\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u043c.", - "pad.modals.slowcommit": "\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d.", - "pad.modals.slowcommit.explanation": "\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442.", - "pad.modals.slowcommit.cause": "\u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u0432\u0430\u043d\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c.", - "pad.modals.deleted": "\u0423\u0434\u0430\u043b\u0435\u043d.", - "pad.modals.deleted.explanation": "\u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0431\u044b\u043b \u0443\u0434\u0430\u043b\u0435\u043d.", - "pad.modals.disconnected": "\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u043d\u043e.", - "pad.modals.disconnected.explanation": "\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043e", - "pad.modals.disconnected.cause": "\u0421\u0435\u0440\u0432\u0435\u0440, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d. \u0421\u043e\u043e\u0431\u0449\u0438\u0442\u0435 \u043d\u0430\u043c, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0441\u044f.", - "pad.share": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f", - "pad.share.readonly": "\u0422\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u0435\u043d\u0438\u0435", - "pad.share.link": "\u0421\u0441\u044b\u043b\u043a\u0430", - "pad.share.emebdcode": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c URL", - "pad.chat": "\u0427\u0430\u0442", - "pad.chat.title": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0447\u0430\u0442 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.", - "pad.chat.loadmessages": "\u0415\u0449\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f", - "timeslider.pageTitle": "\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0448\u043a\u0430\u043b\u0430 {{appTitle}}", - "timeslider.toolbar.returnbutton": "\u041a \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443", - "timeslider.toolbar.authors": "\u0410\u0432\u0442\u043e\u0440\u044b:", - "timeslider.toolbar.authorsList": "\u041d\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u043e\u0432", - "timeslider.toolbar.exportlink.title": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442", - "timeslider.exportCurrent": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043a\u0430\u043a:", - "timeslider.version": "\u0412\u0435\u0440\u0441\u0438\u044f {{version}}", - "timeslider.saved": "\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043e {{day}}.{{month}}.{{year}}", - "timeslider.dateformat": "{{month}}\/{{day}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "\u044f\u043d\u0432\u0430\u0440\u044c", - "timeslider.month.february": "\u0444\u0435\u0432\u0440\u0430\u043b\u044c", - "timeslider.month.march": "\u043c\u0430\u0440\u0442", - "timeslider.month.april": "\u0430\u043f\u0440\u0435\u043b\u044c", - "timeslider.month.may": "\u043c\u0430\u0439", - "timeslider.month.june": "\u0438\u044e\u043d\u044c", - "timeslider.month.july": "\u0438\u044e\u043b\u044c", - "timeslider.month.august": "\u0430\u0432\u0433\u0443\u0441\u0442", - "timeslider.month.september": "\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c", - "timeslider.month.october": "\u043e\u043a\u0442\u044f\u0431\u0440\u044c", - "timeslider.month.november": "\u043d\u043e\u044f\u0431\u0440\u044c", - "timeslider.month.december": "\u0434\u0435\u043a\u0430\u0431\u0440\u044c", - "timeslider.unnamedauthor": "{{num}} \u0431\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u0440", - "timeslider.unnamedauthors": "\u0431\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u0440\u043e\u0432: {{num}}", - "pad.savedrevs.marked": "\u042d\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u0430\u044f", - "pad.userlist.entername": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448\u0435 \u0438\u043c\u044f", - "pad.userlist.unnamed": "\u0431\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0439", - "pad.userlist.guest": "\u0413\u043e\u0441\u0442\u044c", - "pad.userlist.deny": "\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c", - "pad.userlist.approve": "\u0423\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c", - "pad.editbar.clearcolors": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 \u0432\u043e \u0432\u0441\u0435\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435?", - "pad.impexp.importbutton": "\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0439\u0447\u0430\u0441", - "pad.impexp.importing": "\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u2026", - "pad.impexp.confirmimport": "\u0418\u043c\u043f\u043e\u0440\u0442 \u0444\u0430\u0439\u043b\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0448\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0442\u0435\u043a\u0441\u0442. \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?", - "pad.impexp.convertFailed": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u043b\u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e", - "pad.impexp.uploadFailed": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0435 \u0443\u0434\u0430\u043b\u0430\u0441\u044c, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437", - "pad.impexp.importfailed": "\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438", - "pad.impexp.copypaste": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435", - "pad.impexp.exportdisabled": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 {{type}} \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d. \u0414\u043b\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c\u0443 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0443." + "@metadata": { + "authors": [ + "Amire80", + "DCamer", + "Eleferen", + "Okras", + "Volkov" + ] + }, + "index.newPad": "Создать", + "index.createOpenPad": "или создать/открыть документ с именем:", + "pad.toolbar.bold.title": "полужирный (Ctrl-B)", + "pad.toolbar.italic.title": "курсив (Ctrl-I)", + "pad.toolbar.underline.title": "подчёркивание (Ctrl-U)", + "pad.toolbar.strikethrough.title": "зачёркивание", + "pad.toolbar.ol.title": "Упорядоченный список", + "pad.toolbar.ul.title": "Неупорядоченный список", + "pad.toolbar.indent.title": "Отступ", + "pad.toolbar.unindent.title": "Выступ", + "pad.toolbar.undo.title": "Отменить (Ctrl-Z)", + "pad.toolbar.redo.title": "Вернуть (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Очистить цвета документа", + "pad.toolbar.import_export.title": "Импорт/экспорт с использованием различных форматов файлов", + "pad.toolbar.timeslider.title": "Шкала времени", + "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.passwordRequired": "Вам нужен пароль для доступа", + "pad.permissionDenied": "У вас нет разрешения на доступ", + "pad.wrongPassword": "Неправильный пароль", + "pad.settings.padSettings": "Настройки документа", + "pad.settings.myView": "Мой вид", + "pad.settings.stickychat": "Всегда отображать чат", + "pad.settings.colorcheck": "Цвета документа", + "pad.settings.linenocheck": "Номера строк", + "pad.settings.rtlcheck": "Читать содержимое справа налево?", + "pad.settings.fontType": "Тип шрифта:", + "pad.settings.fontType.normal": "Обычный", + "pad.settings.fontType.monospaced": "Моноширинный", + "pad.settings.globalView": "Общий вид", + "pad.settings.language": "Язык:", + "pad.importExport.import_export": "Импорт/экспорт", + "pad.importExport.import": "Загрузить любой текстовый файл или документ", + "pad.importExport.importSuccessful": "Успешно!", + "pad.importExport.export": "Экспортировать текущий документ как:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Обычный текст", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (документ OpenOffice)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Вы можете импортировать только из обычного текста или HTML. Для более продвинутых функций импорта, пожалуйста, \u003Ca 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\"\u003Eустановите AbiWord\u003C/a\u003E.", + "pad.modals.connected": "Подключен.", + "pad.modals.reconnecting": "Повторное подключение к вашему документу", + "pad.modals.forcereconnect": "Принудительное переподключение", + "pad.modals.userdup": "Открыто в другом окне", + "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": "Ссылка", + "pad.share.emebdcode": "Вставить URL", + "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.saved": "Сохранено {{day}}.{{month}}.{{year}}", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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": "декабрь", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: безымянный автор, few: безымянных автора, many: безымянных авторов, other: безымянных авторов]}", + "pad.savedrevs.marked": "Эта версия теперь помечена как сохраненная", + "pad.userlist.entername": "Введите ваше имя", + "pad.userlist.unnamed": "безымянный", + "pad.userlist.guest": "Гость", + "pad.userlist.deny": "Отклонить", + "pad.userlist.approve": "Утвердить", + "pad.editbar.clearcolors": "Очистить авторские цвета во всем документе?", + "pad.impexp.importbutton": "Импортировать сейчас", + "pad.impexp.importing": "Импортирование…", + "pad.impexp.confirmimport": "Импорт файла перезапишет текущий текст. Вы уверены, что вы хотите продолжить?", + "pad.impexp.convertFailed": "Не удалось импортировать этот файл. Пожалуйста, используйте другой формат или скопируйте вручную", + "pad.impexp.uploadFailed": "Загрузка не удалась, пожалуйста, попробуйте ещё раз", + "pad.impexp.importfailed": "Ошибка при импортировании", + "pad.impexp.copypaste": "Пожалуйста, скопируйте", + "pad.impexp.exportdisabled": "Экспорт в формате {{type}} отключен. Для подробной информации обратитесь к системному администратору." }
\ No newline at end of file diff --git a/src/locales/sk.json b/src/locales/sk.json new file mode 100644 index 00000000..15eef02c --- /dev/null +++ b/src/locales/sk.json @@ -0,0 +1,118 @@ +{ + "@metadata": { + "authors": [ + "Teslaton" + ] + }, + "index.newPad": "Nový Pad", + "index.createOpenPad": "alebo vytvoriť/otvoriť Pad s názvom:", + "pad.toolbar.bold.title": "Tučné (Ctrl-B)", + "pad.toolbar.italic.title": "Kurzíva (Ctrl-I)", + "pad.toolbar.underline.title": "Podčiarknuté (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Prečiarknuté", + "pad.toolbar.ol.title": "Číslovaný zoznam", + "pad.toolbar.ul.title": "Odrážkový zoznam", + "pad.toolbar.indent.title": "Zväčšiť odsadenie", + "pad.toolbar.unindent.title": "Zmenšiť odsadenie", + "pad.toolbar.undo.title": "Späť (Ctrl-Z)", + "pad.toolbar.redo.title": "Znova (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Odstrániť farby autorstva", + "pad.toolbar.import_export.title": "Import/export z/do rôznych formátov súborov", + "pad.toolbar.timeslider.title": "Časová os", + "pad.toolbar.savedRevision.title": "Uložiť revíziu", + "pad.toolbar.settings.title": "Nastavenia", + "pad.toolbar.embed.title": "Zdieľať alebo vložiť tento Pad", + "pad.toolbar.showusers.title": "Zobraziť používateľov tohoto Padu", + "pad.colorpicker.save": "Uložiť", + "pad.colorpicker.cancel": "Zrušiť", + "pad.loading": "Načítava sa...", + "pad.passwordRequired": "Prístup k tomuto Padu je chránený heslom", + "pad.permissionDenied": "Ľutujeme, nemáte oprávnenie pristupovať k tomuto Padu", + "pad.wrongPassword": "Nesprávne heslo", + "pad.settings.padSettings": "Nastavenia Padu", + "pad.settings.myView": "Vlastný pohľad", + "pad.settings.stickychat": "Chat stále na obrazovke", + "pad.settings.colorcheck": "Farby autorstva", + "pad.settings.linenocheck": "Čísla riadkov", + "pad.settings.rtlcheck": "Čítať obsah sprava doľava?", + "pad.settings.fontType": "Typ písma:", + "pad.settings.fontType.normal": "Normálne", + "pad.settings.fontType.monospaced": "Strojové", + "pad.settings.globalView": "Globálny pohľad", + "pad.settings.language": "Jazyk:", + "pad.importExport.import_export": "Import/Export", + "pad.importExport.import": "Nahrať ľubovoľný textový súbor alebo dokument", + "pad.importExport.importSuccessful": "Import úspešný!", + "pad.importExport.export": "Exportovať aktuálny Pad ako:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Čistý text", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Importovať môžete len čistý text alebo HTML. Pre pokročilejšie funkcie importu prosím nainštalujte „\u003Ca 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\"\u003EAbiword\u003C/a\u003E“.", + "pad.modals.connected": "Pripojené.", + "pad.modals.reconnecting": "Opätovné pripájanie k vášmu Padu...", + "pad.modals.forcereconnect": "Vynútiť znovupripojenie", + "pad.modals.userdup": "Otvorené v inom okne", + "pad.modals.userdup.explanation": "Zdá sa, že tento Pad je na tomto počítači otvorený vo viacerých oknách prehliadača.", + "pad.modals.userdup.advice": "Pre použitie tohoto okna se musíte znovu pripojiť.", + "pad.modals.unauth": "Nie ste autorizovaný", + "pad.modals.unauth.explanation": "Vaše oprávnenia sa počas prehliadania tejto stránky zmenili. Skúste sa pripojiť znovu.", + "pad.modals.looping.explanation": "Nastali problémy pri komunikácii so synchronizačným serverom.", + "pad.modals.looping.cause": "Možno ste pripojení cez nekompatibilný firewall alebo proxy server.", + "pad.modals.initsocketfail": "Server je nedostupný.", + "pad.modals.initsocketfail.explanation": "Nepodarilo sa pripojiť k synchronizačnému serveru.", + "pad.modals.initsocketfail.cause": "Príčinou je pravdepodobne problém s prehliadačom alebo internetovým pripojením.", + "pad.modals.slowcommit.explanation": "Server neodpovedá.", + "pad.modals.slowcommit.cause": "Príčinou môže byť problém so sieťovým pripojením.", + "pad.modals.deleted": "Odstránené.", + "pad.modals.deleted.explanation": "Tento Pad bol odstránený.", + "pad.modals.disconnected": "Boli ste odpojení.", + "pad.modals.disconnected.explanation": "Spojenie so serverom sa prerušilo", + "pad.modals.disconnected.cause": "Server môže byť nedostupný. Ak by problém pretrvával, informujte nás prosím.", + "pad.share": "Zdieľať tento Pad", + "pad.share.readonly": "Len na čítanie", + "pad.share.link": "Odkaz", + "pad.share.emebdcode": "Vložiť URL", + "pad.chat": "Chat", + "pad.chat.title": "Otvoriť chat tohoto Padu.", + "pad.chat.loadmessages": "Načítať ďalšie správy", + "timeslider.pageTitle": "Časová os {{appTitle}}", + "timeslider.toolbar.returnbutton": "Návrat do Padu", + "timeslider.toolbar.authors": "Autori:", + "timeslider.toolbar.authorsList": "Bez autorov", + "timeslider.toolbar.exportlink.title": "Export", + "timeslider.exportCurrent": "Exportovať aktuálnu verziu ako:", + "timeslider.version": "Verzia {{version}}", + "timeslider.saved": "Uložené {{day}}. {{month}} {{year}}", + "timeslider.dateformat": "{{day}}. {{month}} {{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "januára", + "timeslider.month.february": "februára", + "timeslider.month.march": "marca", + "timeslider.month.april": "apríla", + "timeslider.month.may": "mája", + "timeslider.month.june": "júna", + "timeslider.month.july": "júla", + "timeslider.month.august": "augusta", + "timeslider.month.september": "septembra", + "timeslider.month.october": "októbra", + "timeslider.month.november": "novembra", + "timeslider.month.december": "decembra", + "timeslider.unnamedauthors": "{{num}} {[ plural(num) one: nemenovaný autor, few: nemenovaní autori, other: nemenovaných autorov ]}", + "pad.savedrevs.marked": "Táto revízia bola označená ako uložená", + "pad.userlist.entername": "Zadajte svoje meno", + "pad.userlist.unnamed": "nemenovaný", + "pad.userlist.guest": "Hosť", + "pad.userlist.deny": "Zakázať", + "pad.userlist.approve": "Schváliť", + "pad.editbar.clearcolors": "Skutočne odstrániť autorské farby z celého dokumentu?", + "pad.impexp.importbutton": "Importovať", + "pad.impexp.importing": "Prebieha import...", + "pad.impexp.confirmimport": "Import súboru prepíše celý súčasný obsah Padu. Skutočne si želáte vykonať túto akciu?", + "pad.impexp.convertFailed": "Tento súbor nie je možné importovať. Použite prosím iný formát súboru alebo nakopírujte text manuálne", + "pad.impexp.uploadFailed": "Nahrávanie zlyhalo, skúste to prosím znovu", + "pad.impexp.importfailed": "Import zlyhal", + "pad.impexp.copypaste": "Vložte prosím kópiu cez schránku", + "pad.impexp.exportdisabled": "Export do formátu {{type}} nie je povolený. Kontaktujte prosím administrátora pre zistenie detailov." +}
\ No newline at end of file diff --git a/src/locales/sl.json b/src/locales/sl.json index edfa68c0..1b83f422 100644 --- a/src/locales/sl.json +++ b/src/locales/sl.json @@ -1,120 +1,119 @@ { - "@metadata": { - "authors": [ - "Mateju" - ] - }, - "index.newPad": "Nov dokument", - "index.createOpenPad": "ali pa odpri dokument z imenom:", - "pad.toolbar.bold.title": "Krepko (Ctrl-B)", - "pad.toolbar.italic.title": "Le\u017ee\u010de (Ctrl-I)", - "pad.toolbar.underline.title": "Pod\u010drtano (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Pre\u010drtano", - "pad.toolbar.ol.title": "O\u0161tevil\u010den seznam", - "pad.toolbar.ul.title": "Vrsti\u010dni seznam", - "pad.toolbar.indent.title": "Zamik desno", - "pad.toolbar.unindent.title": "Zamik levo", - "pad.toolbar.undo.title": "Razveljavi (Ctrl-Z)", - "pad.toolbar.redo.title": "Ponovno uveljavi (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Po\u010disti barvo avtorstva", - "pad.toolbar.import_export.title": "Izvozi\/Uvozi razli\u010dne oblike zapisov", - "pad.toolbar.timeslider.title": "Drsnik zgodovine", - "pad.toolbar.savedRevision.title": "Shranjene predelave", - "pad.toolbar.settings.title": "Nastavitve", - "pad.toolbar.embed.title": "Vstavi dokument", - "pad.toolbar.showusers.title": "Poka\u017ei uporabnike dokumenta", - "pad.colorpicker.save": "Shrani", - "pad.colorpicker.cancel": "Prekli\u010di", - "pad.loading": "Nalaganje ...", - "pad.passwordRequired": "Za dostop do dokumenta je zahtevano geslo.", - "pad.permissionDenied": "Za dostop do dokumenta so zahtevana posebna dovoljenja.", - "pad.wrongPassword": "Vpisano geslo je napa\u010dno.", - "pad.settings.padSettings": "Nastavitve dokumenta", - "pad.settings.myView": "Pogled", - "pad.settings.stickychat": "Vsebina klepeta je vedno na zaslonu.", - "pad.settings.colorcheck": "Barve avtorstva", - "pad.settings.linenocheck": "\u0160tevilke vrstic", - "pad.settings.fontType": "Vrsta pisave:", - "pad.settings.fontType.normal": "Obi\u010dajno", - "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "Splo\u0161ni pogled", - "pad.settings.language": "Jezik:", - "pad.importExport.import_export": "Uvoz\/Izvoz", - "pad.importExport.import": "Nalo\u017ei katerokoli besedilno datoteko ali dokument.", - "pad.importExport.importSuccessful": "Opravilo je uspe\u0161no kon\u010dano!", - "pad.importExport.export": "Izvozi trenutni dokument kot:", - "pad.importExport.exporthtml": "HTML (oblikovano besedilo)", - "pad.importExport.exportplain": "TXT (neoblikovano besedilo)", - "pad.importExport.exportword": "DOC (zapis Microsoft Word)", - "pad.importExport.exportpdf": "PDF (zapis Acrobat PDF)", - "pad.importExport.exportopen": "ODF (zapis Open Document)", - "pad.importExport.exportdokuwiki": "DokuWiki (zapis DokuWiki)", - "pad.importExport.abiword.innerHTML": "Uvoziti je mogo\u010de le obi\u010dajno neoblikovano besedilo in zapise HTML. Za naprednej\u0161e zmo\u017enosti namestite <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\\\">program Abiword<\/a>.", - "pad.modals.connected": "Povezano.", - "pad.modals.reconnecting": "Poteka povezovanje z dokumentom ...", - "pad.modals.forcereconnect": "Vsili ponovno povezavo.", - "pad.modals.userdup": "Dokument je \u017ee odprt v v drugem oknu.", - "pad.modals.userdup.explanation": "Videti je, da je ta dokument odprt v ve\u010d kot enem oknu brskalnika na tem ra\u010dunalniku.", - "pad.modals.userdup.advice": "Ponovno vzpostavite povezavo in uporabljajte to okno.", - "pad.modals.unauth": "Nepoobla\u0161\u010den dostop", - "pad.modals.unauth.explanation": "Med pregledovanjem te strani so se dovoljenja za ogled spremenila. Treba se bo znova povezati.", - "pad.modals.looping": "Prekinjena povezava.", - "pad.modals.looping.explanation": "Zaznane so te\u017eave s povezavo za usklajevanje s stre\u017enikom.", - "pad.modals.looping.cause": "Morda je vzpostavljena povezava preko neustrezno nastavljenega po\u017earnega zidu ali posredni\u0161kega stre\u017enika.", - "pad.modals.initsocketfail": "Dostop do stre\u017enika ni mogo\u010d.", - "pad.modals.initsocketfail.explanation": "Povezava s stre\u017enikom za usklajevanje ni mogo\u010da.", - "pad.modals.initsocketfail.cause": "Najverjetneje je te\u017eava v brskalniku, ali pa so te\u017eave z internetno povezavo.", - "pad.modals.slowcommit": "Prekinjena povezava.", - "pad.modals.slowcommit.explanation": "Stre\u017enik se ne odziva.", - "pad.modals.slowcommit.cause": "Najverjetneje je pri\u0161lo do napake med vzpostavitvijo povezave.", - "pad.modals.deleted": "Izbrisano.", - "pad.modals.deleted.explanation": "Dokument je odstranjen.", - "pad.modals.disconnected": "Povezava je prekinjena.", - "pad.modals.disconnected.explanation": "Povezava s stre\u017enikom je bila prekinjena.", - "pad.modals.disconnected.cause": "Stre\u017enik je najverjetneje nedosegljiv. Po\u0161ljite poro\u010dilo, \u010de s napaka ve\u010dkrat pojavi.", - "pad.share": "Dolo\u010di souporabo dokumenta", - "pad.share.readonly": "Le za branje", - "pad.share.link": "Povezava", - "pad.share.emebdcode": "Vstavi naslov URL", - "pad.chat": "Klepet", - "pad.chat.title": "Odpri klepetalno okno dokumenta.", - "pad.chat.loadmessages": "Nalo\u017ei ve\u010d sporo\u010dil", - "timeslider.pageTitle": "Zgodovina dokumenta {{appTitle}}", - "timeslider.toolbar.returnbutton": "Vrni se na dokument", - "timeslider.toolbar.authors": "Autorji:", - "timeslider.toolbar.authorsList": "Ni dolo\u010denih avtorjev", - "timeslider.toolbar.exportlink.title": "Izvozi", - "timeslider.exportCurrent": "Izvozi trenutno razli\u010dico kot:", - "timeslider.version": "Razli\u010dica {{version}}", - "timeslider.saved": "Shranjeno {{day}}.{{month}}.{{year}}", - "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Januar", - "timeslider.month.february": "Februar", - "timeslider.month.march": "Marec", - "timeslider.month.april": "April", - "timeslider.month.may": "Maj", - "timeslider.month.june": "Junij", - "timeslider.month.july": "Julij", - "timeslider.month.august": "August", - "timeslider.month.september": "September", - "timeslider.month.october": "Oktober", - "timeslider.month.november": "November", - "timeslider.month.december": "December", - "timeslider.unnamedauthor": "neimenovani avtor {{num}}", - "timeslider.unnamedauthors": "{{num}} neimenovani avtorji", - "pad.savedrevs.marked": "Ta predelava je ozna\u010dena kot shranjena predelava.", - "pad.userlist.entername": "Vpi\u0161ite ime", - "pad.userlist.unnamed": "neimenovana oseba", - "pad.userlist.guest": "Gost", - "pad.userlist.deny": "Zavrni", - "pad.userlist.approve": "Odobri", - "pad.editbar.clearcolors": "Ali naj se po\u010distijo barve avtorstva v celotnem dokumentu?", - "pad.impexp.importbutton": "Uvozi takoj", - "pad.impexp.importing": "Poteka uva\u017eanje ...", - "pad.impexp.confirmimport": "Uvoz datoteke prepi\u0161e obstoje\u010de besedilo dokumenta. Ali ste prepri\u010dani, da \u017eelite nadaljevati?", - "pad.impexp.convertFailed": "Datoteke ni mogo\u010de uvoziti. Uporabiti je treba enega izmed podprtih zapisov dokumentov ali pa vsebino prilepiti ro\u010dno.", - "pad.impexp.uploadFailed": "Nalaganje je spodletelo, poskusite znova.", - "pad.impexp.importfailed": "Uvoz je spodletel.", - "pad.impexp.copypaste": "Vsebino kopirajte in prilepite.", - "pad.impexp.exportdisabled": "Izvoz v zapis {{type}} je onemogo\u010den. Za ve\u010d podrobnosti stopite v stik s skrbnikom." + "@metadata": { + "authors": [ + "Dbc334", + "Mateju" + ] + }, + "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)", + "pad.toolbar.underline.title": "Podčrtano (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Prečrtano", + "pad.toolbar.ol.title": "Oštevilčen seznam", + "pad.toolbar.ul.title": "Vrstični seznam", + "pad.toolbar.indent.title": "Zamik desno (TAB)", + "pad.toolbar.unindent.title": "Zamik levo (Shift+TAB)", + "pad.toolbar.undo.title": "Razveljavi (Ctrl-Z)", + "pad.toolbar.redo.title": "Ponovno uveljavi (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Počisti barvo avtorstva", + "pad.toolbar.import_export.title": "Izvozi/Uvozi različne oblike zapisov", + "pad.toolbar.timeslider.title": "Drsnik zgodovine", + "pad.toolbar.savedRevision.title": "Shrani predelavo", + "pad.toolbar.settings.title": "Nastavitve", + "pad.toolbar.embed.title": "Deli in vključi dokument", + "pad.toolbar.showusers.title": "Pokaži uporabnike dokumenta", + "pad.colorpicker.save": "Shrani", + "pad.colorpicker.cancel": "Prekliči", + "pad.loading": "Nalaganje ...", + "pad.passwordRequired": "Za dostop do dokumenta je zahtevano geslo.", + "pad.permissionDenied": "Za dostop do dokumenta so zahtevana posebna dovoljenja.", + "pad.wrongPassword": "Vpisano geslo je napačno.", + "pad.settings.padSettings": "Nastavitve dokumenta", + "pad.settings.myView": "Pogled", + "pad.settings.stickychat": "Vsebina klepeta je vedno na zaslonu.", + "pad.settings.colorcheck": "Barve avtorstva", + "pad.settings.linenocheck": "Številke vrstic", + "pad.settings.rtlcheck": "Ali naj se vsebina prebira od desne proti levi?", + "pad.settings.fontType": "Vrsta pisave:", + "pad.settings.fontType.normal": "Običajno", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Splošni pogled", + "pad.settings.language": "Jezik:", + "pad.importExport.import_export": "Uvoz/Izvoz", + "pad.importExport.import": "Naloži katerokoli besedilno datoteko ali dokument.", + "pad.importExport.importSuccessful": "Opravilo je uspešno končano!", + "pad.importExport.export": "Izvozi trenutni dokument kot:", + "pad.importExport.exporthtml": "HTML (oblikovano besedilo)", + "pad.importExport.exportplain": "TXT (neoblikovano besedilo)", + "pad.importExport.exportword": "DOC (zapis Microsoft Word)", + "pad.importExport.exportpdf": "PDF (zapis Acrobat PDF)", + "pad.importExport.exportopen": "ODF (zapis Open Document)", + "pad.importExport.exportdokuwiki": "DokuWiki (zapis DokuWiki)", + "pad.importExport.abiword.innerHTML": "Uvoziti je mogoče le običajno neoblikovano besedilo in zapise HTML. Za naprednejše zmožnosti namestite \u003Ca 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\\\"\u003Eprogram Abiword\u003C/a\u003E.", + "pad.modals.connected": "Povezano.", + "pad.modals.reconnecting": "Poteka povezovanje z dokumentom ...", + "pad.modals.forcereconnect": "Vsili ponovno povezavo.", + "pad.modals.userdup": "Dokument je že odprt v v drugem oknu.", + "pad.modals.userdup.explanation": "Videti je, da je ta dokument odprt v več kot enem oknu brskalnika na tem računalniku.", + "pad.modals.userdup.advice": "Ponovno vzpostavite povezavo in uporabljajte to okno.", + "pad.modals.unauth": "Nepooblaščen dostop", + "pad.modals.unauth.explanation": "Med pregledovanjem te strani so se dovoljenja za ogled spremenila. Treba se bo znova povezati.", + "pad.modals.looping.explanation": "Zaznane so težave s povezavo za usklajevanje s strežnikom.", + "pad.modals.looping.cause": "Morda je vzpostavljena povezava preko neustrezno nastavljenega požarnega zidu ali posredniškega strežnika.", + "pad.modals.initsocketfail": "Dostop do strežnika ni mogoč.", + "pad.modals.initsocketfail.explanation": "Povezava s strežnikom za usklajevanje ni mogoča.", + "pad.modals.initsocketfail.cause": "Najverjetneje je težava v brskalniku, ali pa so težave z internetno povezavo.", + "pad.modals.slowcommit.explanation": "Strežnik se ne odziva.", + "pad.modals.slowcommit.cause": "Najverjetneje je prišlo do napake med vzpostavitvijo povezave.", + "pad.modals.deleted": "Izbrisano.", + "pad.modals.deleted.explanation": "Dokument je odstranjen.", + "pad.modals.disconnected": "Povezava je prekinjena.", + "pad.modals.disconnected.explanation": "Povezava s strežnikom je bila prekinjena.", + "pad.modals.disconnected.cause": "Strežnik je morda nedosegljiv. Prosimo, obvestite skrbnika storitve, če se to zgodi večkrat.", + "pad.share": "Določi souporabo dokumenta", + "pad.share.readonly": "Le za branje", + "pad.share.link": "Povezava", + "pad.share.emebdcode": "Vstavi naslov URL", + "pad.chat": "Klepet", + "pad.chat.title": "Odpri klepetalno okno dokumenta.", + "pad.chat.loadmessages": "Naloži več sporočil", + "timeslider.pageTitle": "Zgodovina dokumenta {{appTitle}}", + "timeslider.toolbar.returnbutton": "Vrni se na dokument", + "timeslider.toolbar.authors": "Autorji:", + "timeslider.toolbar.authorsList": "Ni določenih avtorjev", + "timeslider.toolbar.exportlink.title": "Izvozi", + "timeslider.exportCurrent": "Izvozi trenutno različico kot:", + "timeslider.version": "Različica {{version}}", + "timeslider.saved": "Shranjeno {{day}}.{{month}}.{{year}}", + "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Januar", + "timeslider.month.february": "Februar", + "timeslider.month.march": "Marec", + "timeslider.month.april": "April", + "timeslider.month.may": "Maj", + "timeslider.month.june": "Junij", + "timeslider.month.july": "Julij", + "timeslider.month.august": "August", + "timeslider.month.september": "September", + "timeslider.month.october": "Oktober", + "timeslider.month.november": "November", + "timeslider.month.december": "December", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: neimenovan avtor, plural(num) two: neimenovana avtorja, plural(num) few: neimenovani avtorji, other: neimenovanih avtorjev ]}", + "pad.savedrevs.marked": "Ta predelava je označena kot shranjena predelava.", + "pad.userlist.entername": "Vpišite ime", + "pad.userlist.unnamed": "neimenovana oseba", + "pad.userlist.guest": "Gost", + "pad.userlist.deny": "Zavrni", + "pad.userlist.approve": "Odobri", + "pad.editbar.clearcolors": "Ali naj se počistijo barve avtorstva v celotnem dokumentu?", + "pad.impexp.importbutton": "Uvozi takoj", + "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.uploadFailed": "Nalaganje je spodletelo, poskusite znova.", + "pad.impexp.importfailed": "Uvoz je spodletel.", + "pad.impexp.copypaste": "Vsebino kopirajte in prilepite.", + "pad.impexp.exportdisabled": "Izvoz v zapis {{type}} je onemogočen. Za več podrobnosti stopite v stik s skrbnikom." }
\ No newline at end of file diff --git a/src/locales/sq.json b/src/locales/sq.json index 6ae81135..0af02751 100644 --- a/src/locales/sq.json +++ b/src/locales/sq.json @@ -1,115 +1,121 @@ { - "@metadata": { - "authors": [ - "Besnik b" - ] - }, - "index.newPad": "Bllok i Ri", - "index.createOpenPad": "ose krijoni\/hapni nj\u00eb Bllok me emrin:", - "pad.toolbar.bold.title": "T\u00eb trasha (Ctrl-B)", - "pad.toolbar.italic.title": "T\u00eb pjerr\u00ebta (Ctrl-I)", - "pad.toolbar.underline.title": "T\u00eb n\u00ebnvizuara (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Hequrvije", - "pad.toolbar.ol.title": "List\u00eb e renditur", - "pad.toolbar.ul.title": "List\u00eb e parenditur", - "pad.toolbar.indent.title": "Brendazi", - "pad.toolbar.unindent.title": "Jashtazi", - "pad.toolbar.undo.title": "Zhb\u00ebje (Ctrl-Z)", - "pad.toolbar.redo.title": "Rib\u00ebje (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Hiq Ngjyra Autor\u00ebsish", - "pad.toolbar.import_export.title": "Importoni\/Eksportoni nga\/n\u00eb formate t\u00eb tjera kartelash", - "pad.toolbar.timeslider.title": "Rrjedha kohore", - "pad.toolbar.savedRevision.title": "Rishikime t\u00eb Ruajtura", - "pad.toolbar.settings.title": "Rregullime", - "pad.toolbar.embed.title": "Trup\u00ebzojeni k\u00ebt\u00eb bllok", - "pad.toolbar.showusers.title": "Shfaq p\u00ebrdoruesit n\u00eb k\u00ebt\u00eb bllok", - "pad.colorpicker.save": "Ruaje", - "pad.colorpicker.cancel": "Anuloje", - "pad.loading": "Po ngarkohet...", - "pad.passwordRequired": "Ju duhet nj\u00eb fjal\u00ebkalim q\u00eb t\u00eb mund t\u00eb p\u00ebrdorni k\u00ebt\u00eb bllok", - "pad.permissionDenied": "Nuk keni leje t\u00eb hyni n\u00eb k\u00ebt\u00eb bllok", - "pad.wrongPassword": "Fjal\u00ebkalimi juaj qe gabim", - "pad.settings.padSettings": "Rregullime blloku", - "pad.settings.myView": "Pamja Ime", - "pad.settings.stickychat": "Fjalosje p\u00ebrher\u00eb n\u00eb ekran", - "pad.settings.colorcheck": "Ngjyra autor\u00ebsish", - "pad.settings.linenocheck": "Numra rreshtash", - "pad.settings.fontType": "Lloj shkronjash:", - "pad.settings.fontType.normal": "Normale", - "pad.settings.fontType.monospaced": "Monospace", - "pad.settings.globalView": "Pamje Globale", - "pad.settings.language": "Gjuh\u00eb:", - "pad.importExport.import_export": "Import\/Eksport", - "pad.importExport.import": "Ngarkoni cil\u00ebndo kartel\u00eb teksti ose dokument", - "pad.importExport.importSuccessful": "Me sukses!", - "pad.importExport.export": "Eksportojeni bllokun e tanish\u00ebm si:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Tekst t\u00eb thjesht\u00eb", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Mund t\u00eb importoni vet\u00ebm prej formati tekst i thjesht\u00eb ose html. P\u00ebr ve\u00e7ori m\u00eb t\u00eb p\u00ebrparuara 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.forcereconnect": "Rilidhje e detyruar", - "pad.modals.userdup.explanation": "Ky bllok duket se gjendet i hapur n\u00eb m\u00eb shum\u00eb se nj\u00eb dritare shfletuesi n\u00eb k\u00ebt\u00eb kompjuter.", - "pad.modals.userdup.advice": "Rilidhu q\u00eb t\u00eb p\u00ebrdoret kjo dritare, m\u00eb mir\u00eb.", - "pad.modals.unauth": "I paautorizuar", - "pad.modals.unauth.explanation": "Nd\u00ebrkoh\u00eb q\u00eb shihnit k\u00ebt\u00eb dritare, lejet tuaja kan\u00eb ndryshuar. Provoni t\u00eb rilidheni.", - "pad.modals.looping": "I shk\u00ebputur.", - "pad.modals.looping.explanation": "Ka probleme komunikimi me sh\u00ebrbyesin e nj\u00ebkoh\u00ebsimit.", - "pad.modals.looping.cause": "Ndoshta jeni lidhur p\u00ebrmes nj\u00eb firewall-i ose nd\u00ebrmjet\u00ebsi t\u00eb pap\u00ebrputhsh\u00ebm.", - "pad.modals.initsocketfail": "Nuk kapet dot sh\u00ebrbyesi.", - "pad.modals.initsocketfail.explanation": "Nuk u lidh dot te sh\u00ebrbyesi i nj\u00ebkoh\u00ebsimit.", - "pad.modals.initsocketfail.cause": "Ka gjasa q\u00eb kjo vjen p\u00ebr shkak t\u00eb nj\u00eb problemi me shfletuesin tuaj ose lidhjen tuaj n\u00eb internet.", - "pad.modals.slowcommit": "I shk\u00ebputur.", - "pad.modals.slowcommit.explanation": "Sh\u00ebrbyesi nuk po p\u00ebrgjigjet.", - "pad.modals.slowcommit.cause": "Kjo mund t\u00eb vij\u00eb p\u00ebr shkak problemesh lidhjeje me rrjetin.", - "pad.modals.deleted": "I fshir\u00eb.", - "pad.modals.deleted.explanation": "Ky bllok \u00ebsht\u00eb hequr.", - "pad.modals.disconnected": "Jeni shk\u00ebputur.", - "pad.modals.disconnected.explanation": "U pre lidhja me sh\u00ebrbyesin", - "pad.modals.disconnected.cause": "Sh\u00ebrbyesi mund t\u00eb mos jet\u00eb n\u00eb pun\u00eb. Ju lutemi, na njoftoni, n\u00ebse kjo vazhdon t\u00eb ndodh\u00eb.", - "pad.share": "Ndajeni k\u00ebt\u00eb bllok me t\u00eb tjer\u00ebt", - "pad.share.readonly": "Vet\u00ebm p\u00ebr lexim", - "pad.share.link": "Lidhje", - "pad.share.emebdcode": "URL trup\u00ebzimi", - "pad.chat": "Fjalosje", - "pad.chat.title": "Hapni fjalosjen p\u00ebr k\u00ebt\u00eb bllok.", - "timeslider.pageTitle": "Rrjedh\u00eb kohore e {{appTitle}}", - "timeslider.toolbar.returnbutton": "Rikthehuni te blloku", - "timeslider.toolbar.authors": "Autor\u00eb:", - "timeslider.toolbar.authorsList": "Pa Autor\u00eb", - "timeslider.exportCurrent": "Eksportojeni versionin e tanish\u00ebm si:", - "timeslider.version": "Versioni {{version}}", - "timeslider.saved": "Ruajtur m\u00eb {{month}} {{day}}, {{year}}", - "timeslider.dateformat": "{{month}}\/{{day}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "Janar", - "timeslider.month.february": "Shkurt", - "timeslider.month.march": "Mars", - "timeslider.month.april": "Prill", - "timeslider.month.may": "Maj", - "timeslider.month.june": "Qershor", - "timeslider.month.july": "Korrik", - "timeslider.month.august": "Gusht", - "timeslider.month.september": "Shtator", - "timeslider.month.october": "Tetor", - "timeslider.month.november": "N\u00ebntor", - "timeslider.month.december": "Dhjetor", - "pad.savedrevs.marked": "Ky rishikim tani \u00ebsht\u00eb sh\u00ebnuar si rishikim i ruajtur", - "pad.userlist.entername": "Jepni emrin tuaj", - "pad.userlist.unnamed": "pa em\u00ebr", - "pad.userlist.guest": "Vizitor", - "pad.userlist.deny": "Mohoje", - "pad.userlist.approve": "Miratoje", - "pad.editbar.clearcolors": "T\u00eb hiqen ngjyra autor\u00ebsish n\u00eb krejt dokumentin?", - "pad.impexp.importbutton": "Importoje Tani", - "pad.impexp.importing": "Po importohet...", - "pad.impexp.confirmimport": "Importimi i nj\u00eb kartele do t\u00eb mbishkruaj\u00eb tekstin e tanish\u00ebm t\u00eb bllokut. Jeni i sigurt se doni t\u00eb vazhdohet?", - "pad.impexp.convertFailed": "Nuk qem\u00eb n\u00eb gjendje ta importonim k\u00ebt\u00eb kartel\u00eb. Ju lutemi, p\u00ebrdorni nj\u00eb format tjet\u00ebr dokumentesh ose kopjojeni dhe hidheni dorazi", - "pad.impexp.uploadFailed": "Ngarkimi d\u00ebshtoi, ju lutemi, riprovoni", - "pad.impexp.importfailed": "Importimi d\u00ebshtoi", - "pad.impexp.copypaste": "Ju lutemi, kopjojeni dhe ngjiteni", - "pad.impexp.exportdisabled": "Eksportimi n\u00eb formatin {{type}} \u00ebsht\u00eb i \u00e7aktivizuar. P\u00ebr holl\u00ebsi, ju lutemi, lidhuni me administratorin e sistemit." + "@metadata": { + "authors": [ + "Besnik b" + ] + }, + "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": "Hequrvije", + "pad.toolbar.ol.title": "Listë e renditur", + "pad.toolbar.ul.title": "Listë e parenditur", + "pad.toolbar.indent.title": "Brendazi", + "pad.toolbar.unindent.title": "Jashtazi", + "pad.toolbar.undo.title": "Zhbëje (Ctrl-Z)", + "pad.toolbar.redo.title": "Ribëje (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Hiq Ngjyra Autorësish", + "pad.toolbar.import_export.title": "Importoni/Eksportoni nga/në formate të tjera kartelash", + "pad.toolbar.timeslider.title": "Rrjedha kohore", + "pad.toolbar.savedRevision.title": "Ruaje Rishikin", + "pad.toolbar.settings.title": "Rregullime", + "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.passwordRequired": "Ju duhet një fjalëkalim që të mund të përdorni këtë bllok", + "pad.permissionDenied": "Nuk keni leje të hyni në këtë bllok", + "pad.wrongPassword": "Fjalëkalimi juaj qe gabim", + "pad.settings.padSettings": "Rregullime blloku", + "pad.settings.myView": "Pamja Ime", + "pad.settings.stickychat": "Fjalosje përherë në ekran", + "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 Globale", + "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!", + "pad.importExport.export": "Eksportojeni bllokun e tanishëm si:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Tekst të thjeshtë", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Mund të importoni vetëm prej formati tekst i thjeshtë ose html. Për veçori më të përparuara importimi, ju lutemi, \u003Ca 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\"\u003Einstaloni Abiword-in\u003C/a\u003E.", + "pad.modals.connected": "I lidhur.", + "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.", + "pad.modals.userdup.advice": "Rilidhu që të përdoret kjo dritare, më mirë.", + "pad.modals.unauth": "I paautorizuar", + "pad.modals.unauth.explanation": "Ndërkohë që shihnit këtë dritare, lejet tuaja kanë ndryshuar. 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": "Nuk kapet dot shërbyesi.", + "pad.modals.initsocketfail.explanation": "Nuk 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.", + "pad.modals.badChangeset.explanation": "Një përpunim që keni bërë u shpall i paligjshëm nga shërbyesu i njëkohësimit.", + "pad.modals.badChangeset.cause": "Kjo mund të jetë për shkak të një formësimi të gabuar të shërbyesit ose ndonjë tjetër sjelljeje të papritur. Ju lutemi, lidhuni me përgjegjësin e shërbimit, nëse mendoni që ky është një gabim. Provoni të rilidheni që të vazhdoni përpunimin.", + "pad.modals.corruptPad.explanation": "Blloku te i cili po përpiqeni të hyni është i dëmtuar.", + "pad.modals.corruptPad.cause": "Kjo mund të vijë nga një formësim i gabuar shërbyesi ose ndonjë tjetër sjellje e papritur. Ju lutemi, lidhuni me përgjegjësin e shërbimit.", + "pad.modals.deleted": "I fshirë.", + "pad.modals.deleted.explanation": "Ky bllok është hequr.", + "pad.modals.disconnected": "Jeni shkëputur.", + "pad.modals.disconnected.explanation": "U pre lidhja me shërbyesin", + "pad.modals.disconnected.cause": "Shërbyesi mund të mos jetë në punë. Ju lutemi, njoftoni përgjegjësin e shërbimit, nëse kjo vazhdon të ndodhë.", + "pad.share": "Ndajeni këtë bllok me të tjerët", + "pad.share.readonly": "Vetëm për lexim", + "pad.share.link": "Lidhje", + "pad.share.emebdcode": "URL trupëzimi", + "pad.chat": "Fjalosje", + "pad.chat.title": "Hapni fjalosjen për këtë bllok.", + "pad.chat.loadmessages": "Ngarko më tepër mesazhe", + "timeslider.pageTitle": "Rrjedhë kohore e {{appTitle}}", + "timeslider.toolbar.returnbutton": "Rikthehuni te blloku", + "timeslider.toolbar.authors": "Autorë:", + "timeslider.toolbar.authorsList": "Pa Autorë", + "timeslider.toolbar.exportlink.title": "Eksportoni", + "timeslider.exportCurrent": "Eksportojeni versionin e tanishëm si:", + "timeslider.version": "Versioni {{version}}", + "timeslider.saved": "Ruajtur më {{month}} {{day}}, {{year}}", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Janar", + "timeslider.month.february": "Shkurt", + "timeslider.month.march": "Mars", + "timeslider.month.april": "Prill", + "timeslider.month.may": "Maj", + "timeslider.month.june": "Qershor", + "timeslider.month.july": "Korrik", + "timeslider.month.august": "Gusht", + "timeslider.month.september": "Shtator", + "timeslider.month.october": "Tetor", + "timeslider.month.november": "Nëntor", + "timeslider.month.december": "Dhjetor", + "pad.savedrevs.marked": "Ky rishikim tani është shënuar si rishikim i ruajtur", + "pad.userlist.entername": "Jepni emrin tuaj", + "pad.userlist.unnamed": "pa emër", + "pad.userlist.guest": "Vizitor", + "pad.userlist.deny": "Mohoje", + "pad.userlist.approve": "Miratoje", + "pad.editbar.clearcolors": "Të hiqen ngjyra autorësish në krejt dokumentin?", + "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.uploadFailed": "Ngarkimi dështoi, ju lutemi, riprovoni", + "pad.impexp.importfailed": "Importimi dështoi", + "pad.impexp.copypaste": "Ju lutemi, kopjojeni dhe ngjiteni", + "pad.impexp.exportdisabled": "Eksportimi në formatin {{type}} është i çaktivizuar. Për hollësi, ju lutemi, lidhuni me administratorin e sistemit." }
\ No newline at end of file diff --git a/src/locales/sv.json b/src/locales/sv.json index 8c6c2d86..e0b9e69a 100644 --- a/src/locales/sv.json +++ b/src/locales/sv.json @@ -1,120 +1,123 @@ { - "@metadata": { - "authors": { - "1": "WikiPhoenix" - } - }, - "index.newPad": "Nytt block", - "index.createOpenPad": "eller skapa\/\u00f6ppna ett block med namnet:", - "pad.toolbar.bold.title": "Fet (Ctrl-B)", - "pad.toolbar.italic.title": "Kursiv (Ctrl-I)", - "pad.toolbar.underline.title": "Understruken (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Genomstruken", - "pad.toolbar.ol.title": "Numrerad lista", - "pad.toolbar.ul.title": "Ta bort numrerad lista", - "pad.toolbar.indent.title": "\u00d6ka indrag", - "pad.toolbar.unindent.title": "Minska indrag", - "pad.toolbar.undo.title": "\u00c5ngra (Ctrl-Z)", - "pad.toolbar.redo.title": "G\u00f6r om (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Rensa f\u00f6rfattarf\u00e4rger", - "pad.toolbar.import_export.title": "Importera\/exportera fr\u00e5n\/till olika filformat", - "pad.toolbar.timeslider.title": "Tidsreglage", - "pad.toolbar.savedRevision.title": "Sparade revisioner", - "pad.toolbar.settings.title": "Inst\u00e4llningar", - "pad.toolbar.embed.title": "B\u00e4dda in detta block", - "pad.toolbar.showusers.title": "Visa anv\u00e4ndarna p\u00e5 detta block", - "pad.colorpicker.save": "Spara", - "pad.colorpicker.cancel": "Avbryt", - "pad.loading": "L\u00e4ser in...", - "pad.passwordRequired": "Du beh\u00f6ver ett l\u00f6senord f\u00f6r att f\u00e5 tillg\u00e5ng till detta block", - "pad.permissionDenied": "Du har inte beh\u00f6righet att f\u00e5 tillg\u00e5ng till detta block", - "pad.wrongPassword": "Ditt l\u00f6senord \u00e4r fel", - "pad.settings.padSettings": "Blockinst\u00e4llningar", - "pad.settings.myView": "Min vy", - "pad.settings.stickychat": "Chatten alltid p\u00e5 sk\u00e4rmen", - "pad.settings.colorcheck": "F\u00f6rfattarskapsf\u00e4rger", - "pad.settings.linenocheck": "Radnummer", - "pad.settings.fontType": "Typsnitt:", - "pad.settings.fontType.normal": "Normal", - "pad.settings.fontType.monospaced": "Fast breddsteg", - "pad.settings.globalView": "Global vy", - "pad.settings.language": "Spr\u00e5k:", - "pad.importExport.import_export": "Importera\/exportera", - "pad.importExport.import": "Ladda upp en textfil eller dokument", - "pad.importExport.importSuccessful": "\u00c5tg\u00e4rden slutf\u00f6rdes!", - "pad.importExport.export": "Export aktuellt block som:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "Oformaterad text", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (Open Document Format)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "Du kan endast importera fr\u00e5n oformaterad text eller html-format. F\u00f6r mer avancerade importeringsfunktioner, var god <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\">installera abiword<\/a>.", - "pad.modals.connected": "Ansluten.", - "pad.modals.reconnecting": "\u00c5teransluter till ditt block...", - "pad.modals.forcereconnect": "Tvinga \u00e5teranslutning", - "pad.modals.userdup": "\u00d6ppnades i ett nytt f\u00f6nster", - "pad.modals.userdup.explanation": "Detta block verkar vara \u00f6ppet i mer \u00e4n ett f\u00f6nster p\u00e5 denna dator.", - "pad.modals.userdup.advice": "\u00c5teranslut f\u00f6r att anv\u00e4nda detta f\u00f6nster ist\u00e4llet.", - "pad.modals.unauth": "Inte godk\u00e4nd", - "pad.modals.unauth.explanation": "Din beh\u00f6righet \u00e4ndrades medan du visar denna sida. F\u00f6rs\u00f6k att \u00e5teransluta.", - "pad.modals.looping": "Fr\u00e5nkopplad.", - "pad.modals.looping.explanation": "Kommunikationsproblem med synkroniseringsservern har uppst\u00e5tt.", - "pad.modals.looping.cause": "Kanske du \u00e4r ansluten via en inkompatibel brandv\u00e4gg eller proxy.", - "pad.modals.initsocketfail": "Servern inte kan n\u00e5s.", - "pad.modals.initsocketfail.explanation": "Det gick inte att ansluta till synkroniseringsservern.", - "pad.modals.initsocketfail.cause": "Detta \u00e4r beror troligen p\u00e5 ett problem med din webbl\u00e4sare eller din internetanslutning.", - "pad.modals.slowcommit": "Fr\u00e5nkopplad.", - "pad.modals.slowcommit.explanation": "Servern svarar inte.", - "pad.modals.slowcommit.cause": "Detta kan bero p\u00e5 problem med n\u00e4tverksanslutningen.", - "pad.modals.deleted": "Raderad.", - "pad.modals.deleted.explanation": "Detta block har tagits bort.", - "pad.modals.disconnected": "Du har kopplats fr\u00e5n.", - "pad.modals.disconnected.explanation": "Anslutningen till servern avbr\u00f6ts", - "pad.modals.disconnected.cause": "Servern kanske inte \u00e4r tillg\u00e4nglig. Var god meddela oss om detta forts\u00e4tter att h\u00e4nda.", - "pad.share": "Dela detta block", - "pad.share.readonly": "Skrivskyddad", - "pad.share.link": "L\u00e4nk", - "pad.share.emebdcode": "B\u00e4dda in URL", - "pad.chat": "Chatt", - "pad.chat.title": "\u00d6ppna chatten f\u00f6r detta block.", - "pad.chat.loadmessages": "L\u00e4s in fler meddelanden", - "timeslider.pageTitle": "Tidsreglage f\u00f6r {{appTitle}}", - "timeslider.toolbar.returnbutton": "\u00c5terv\u00e4nd till blocket", - "timeslider.toolbar.authors": "F\u00f6rfattare:", - "timeslider.toolbar.authorsList": "Ingen f\u00f6rfattare", - "timeslider.toolbar.exportlink.title": "Exportera", - "timeslider.exportCurrent": "Exportera aktuell version som:", - "timeslider.version": "Version {{version}}", - "timeslider.saved": "Sparades den {{day}} {{month}} {{year}}", - "timeslider.dateformat": "{{day}}\/{{month}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "januari", - "timeslider.month.february": "februari", - "timeslider.month.march": "mars", - "timeslider.month.april": "april", - "timeslider.month.may": "maj", - "timeslider.month.june": "juni", - "timeslider.month.july": "juli", - "timeslider.month.august": "augusti", - "timeslider.month.september": "september", - "timeslider.month.october": "oktober", - "timeslider.month.november": "november", - "timeslider.month.december": "december", - "timeslider.unnamedauthor": "{{num}} namnl\u00f6s f\u00f6rfattare", - "timeslider.unnamedauthors": "{{num}} namnl\u00f6sa f\u00f6rfattare", - "pad.savedrevs.marked": "Denna revision \u00e4r nu markerad som en sparad revision", - "pad.userlist.entername": "Ange ditt namn", - "pad.userlist.unnamed": "namnl\u00f6s", - "pad.userlist.guest": "G\u00e4st", - "pad.userlist.deny": "Neka", - "pad.userlist.approve": "Godk\u00e4nn", - "pad.editbar.clearcolors": "Rensa f\u00f6rfattarf\u00e4rger p\u00e5 hela dokumentet?", - "pad.impexp.importbutton": "Importera nu", - "pad.impexp.importing": "Importerar...", - "pad.impexp.confirmimport": "Att importera en fil kommer att skriva \u00f6ver den aktuella texten i blocket. \u00c4r du s\u00e4ker p\u00e5 att du vill forts\u00e4tta?", - "pad.impexp.convertFailed": "Vi kunde inte importera denna fil. Var god anv\u00e4nd ett annat dokumentformat eller kopiera och klistra in den manuellt", - "pad.impexp.uploadFailed": "Uppladdningen misslyckades, var god f\u00f6rs\u00f6k igen", - "pad.impexp.importfailed": "Importering misslyckades", - "pad.impexp.copypaste": "Var god kopiera och klistra in", - "pad.impexp.exportdisabled": "Exportering av formatet {{type}} \u00e4r inaktiverad. Var god kontakta din systemadministrat\u00f6r f\u00f6r mer information." + "@metadata": { + "authors": { + "0": "Lokal Profil", + "2": "WikiPhoenix" + } + }, + "index.newPad": "Nytt block", + "index.createOpenPad": "eller skapa/öppna ett block med namnet:", + "pad.toolbar.bold.title": "Fet (Ctrl-B)", + "pad.toolbar.italic.title": "Kursiv (Ctrl-I)", + "pad.toolbar.underline.title": "Understruken (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Genomstruken", + "pad.toolbar.ol.title": "Numrerad lista", + "pad.toolbar.ul.title": "Ta bort numrerad lista", + "pad.toolbar.indent.title": "Öka indrag (TABB)", + "pad.toolbar.unindent.title": "Minska indrag (Shift+TABB)", + "pad.toolbar.undo.title": "Ångra (Ctrl-Z)", + "pad.toolbar.redo.title": "Gör om (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Rensa författarfärger", + "pad.toolbar.import_export.title": "Importera/exportera från/till olika filformat", + "pad.toolbar.timeslider.title": "Tidsreglage", + "pad.toolbar.savedRevision.title": "Spara revision", + "pad.toolbar.settings.title": "Inställningar", + "pad.toolbar.embed.title": "Dela och bädda in detta block", + "pad.toolbar.showusers.title": "Visa användarna på detta block", + "pad.colorpicker.save": "Spara", + "pad.colorpicker.cancel": "Avbryt", + "pad.loading": "Läser in...", + "pad.passwordRequired": "Du behöver ett lösenord för att få tillgång till detta block", + "pad.permissionDenied": "Du har inte behörighet att få tillgång till detta block", + "pad.wrongPassword": "Ditt lösenord var fel", + "pad.settings.padSettings": "Blockinställningar", + "pad.settings.myView": "Min vy", + "pad.settings.stickychat": "Chatten alltid på skärmen", + "pad.settings.colorcheck": "Författarskapsfärger", + "pad.settings.linenocheck": "Radnummer", + "pad.settings.rtlcheck": "Vill du läsa innehållet från höger till vänster?", + "pad.settings.fontType": "Typsnitt:", + "pad.settings.fontType.normal": "Normal", + "pad.settings.fontType.monospaced": "Fast breddsteg", + "pad.settings.globalView": "Global vy", + "pad.settings.language": "Språk:", + "pad.importExport.import_export": "Importera/Exportera", + "pad.importExport.import": "Ladda upp en textfil eller dokument", + "pad.importExport.importSuccessful": "Åtgärden slutfördes!", + "pad.importExport.export": "Export aktuellt block som:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Oformaterad text", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Du kan endast importera från oformaterad text eller html-format. För mer avancerade importeringsfunktioner, var god \u003Ca 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\"\u003Einstallera abiword\u003C/a\u003E.", + "pad.modals.connected": "Ansluten.", + "pad.modals.reconnecting": "Återansluter till ditt block...", + "pad.modals.forcereconnect": "Tvinga återanslutning", + "pad.modals.userdup": "Öppnades i ett nytt fönster", + "pad.modals.userdup.explanation": "Detta block verkar vara öppet i mer än ett fönster på denna dator.", + "pad.modals.userdup.advice": "Återanslut för att använda detta fönster istället.", + "pad.modals.unauth": "Inte godkänd", + "pad.modals.unauth.explanation": "Din behörighet ändrades medan du visar denna sida. Försök att återansluta.", + "pad.modals.looping.explanation": "Kommunikationsproblem med synkroniseringsservern har uppstått.", + "pad.modals.looping.cause": "Kanske du är ansluten via en inkompatibel brandvägg eller proxy.", + "pad.modals.initsocketfail": "Servern inte kan nås.", + "pad.modals.initsocketfail.explanation": "Det gick inte att ansluta till synkroniseringsservern.", + "pad.modals.initsocketfail.cause": "Detta är beror troligen på ett problem med din webbläsare eller din internetanslutning.", + "pad.modals.slowcommit.explanation": "Servern svarar inte.", + "pad.modals.slowcommit.cause": "Detta kan bero på problem med nätverksanslutningen.", + "pad.modals.badChangeset.explanation": "En redigering som du gjorde klassificerades som ogiltig av synkroniseringsservern.", + "pad.modals.badChangeset.cause": "Detta kan bero på en felaktig konfiguration av servern eller något annat oväntad beteende. Var god kontakta tjänstadministratören om du anser att detta är ett fel. Försök ansluta igen för att fortsätta redigera.", + "pad.modals.corruptPad.explanation": "Blocket du försöker komma åt är skadat.", + "pad.modals.corruptPad.cause": "Detta kan bero på en felaktig konfiguration av servern eller något annat oväntad beteende. Var god kontakta tjänstadministratören.", + "pad.modals.deleted": "Raderad.", + "pad.modals.deleted.explanation": "Detta block har tagits bort.", + "pad.modals.disconnected": "Du har kopplats från.", + "pad.modals.disconnected.explanation": "Anslutningen till servern avbröts", + "pad.modals.disconnected.cause": "Servern kanske är otillgänglig. Var god meddela tjänstadministratören om detta fortsätter att hända.", + "pad.share": "Dela detta block", + "pad.share.readonly": "Skrivskyddad", + "pad.share.link": "Länk", + "pad.share.emebdcode": "Bädda in URL", + "pad.chat": "Chatt", + "pad.chat.title": "Öppna chatten för detta block.", + "pad.chat.loadmessages": "Läs in fler meddelanden", + "timeslider.pageTitle": "Tidsreglage för {{appTitle}}", + "timeslider.toolbar.returnbutton": "Återvänd till blocket", + "timeslider.toolbar.authors": "Författare:", + "timeslider.toolbar.authorsList": "Inga författare", + "timeslider.toolbar.exportlink.title": "Exportera", + "timeslider.exportCurrent": "Exportera aktuell version som:", + "timeslider.version": "Version {{version}}", + "timeslider.saved": "Sparades den {{day}} {{month}} {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "januari", + "timeslider.month.february": "februari", + "timeslider.month.march": "mars", + "timeslider.month.april": "april", + "timeslider.month.may": "maj", + "timeslider.month.june": "juni", + "timeslider.month.july": "juli", + "timeslider.month.august": "augusti", + "timeslider.month.september": "september", + "timeslider.month.october": "oktober", + "timeslider.month.november": "november", + "timeslider.month.december": "december", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: namnlös författare, other: namnlösa författare]}", + "pad.savedrevs.marked": "Denna revision är nu markerad som en sparad revision", + "pad.userlist.entername": "Ange ditt namn", + "pad.userlist.unnamed": "namnlös", + "pad.userlist.guest": "Gäst", + "pad.userlist.deny": "Neka", + "pad.userlist.approve": "Godkänn", + "pad.editbar.clearcolors": "Rensa författarfärger på hela dokumentet?", + "pad.impexp.importbutton": "Importera nu", + "pad.impexp.importing": "Importerar...", + "pad.impexp.confirmimport": "Att importera en fil kommer att skriva över den aktuella texten i blocket. Är du säker på att du vill fortsätta?", + "pad.impexp.convertFailed": "Vi kunde inte importera denna fil. Var god använd ett annat dokumentformat eller kopiera och klistra in den manuellt", + "pad.impexp.uploadFailed": "Uppladdningen misslyckades, var god försök igen", + "pad.impexp.importfailed": "Importering misslyckades", + "pad.impexp.copypaste": "Var god kopiera och klistra in", + "pad.impexp.exportdisabled": "Exportering av formatet {{type}} är inaktiverad. Var god kontakta din systemadministratör för mer information." }
\ No newline at end of file diff --git a/src/locales/te.json b/src/locales/te.json index 7e18b7a4..2f4372bc 100644 --- a/src/locales/te.json +++ b/src/locales/te.json @@ -1,81 +1,81 @@ { - "@metadata": { - "authors": { - "0": "JVRKPRASAD", - "1": "Malkum", - "3": "Veeven" - } - }, - "index.newPad": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c32\u0c15", - "index.createOpenPad": "\u0c12\u0c15 \u0c2a\u0c47\u0c30\u0c41\u0c24\u0c4b \u0c2a\u0c32\u0c15\u0c28\u0c3f \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f \u0c32\u0c47\u0c26\u0c3e \u0c05\u0c26\u0c47 \u0c2a\u0c47\u0c30\u0c41\u0c24\u0c4b \u0c09\u0c28\u0c4d\u0c28 \u0c2a\u0c32\u0c15\u0c28\u0c3f \u0c24\u0c46\u0c30\u0c35\u0c02\u0c21\u0c3f", - "pad.toolbar.bold.title": "\u0c2e\u0c02\u0c26\u0c02", - "pad.toolbar.italic.title": "\u0c35\u0c3e\u0c32\u0c41 \u0c05\u0c15\u0c4d\u0c37\u0c30\u0c3e\u0c32\u0c41", - "pad.toolbar.underline.title": "\u0c15\u0c4d\u0c30\u0c3f\u0c02\u0c26\u0c17\u0c40\u0c24", - "pad.toolbar.strikethrough.title": "\u0c15\u0c4a\u0c1f\u0c4d\u0c1f\u0c3f\u0c35\u0c47\u0c24", - "pad.toolbar.ol.title": "\u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c47\u0c36\u0c3f\u0c02\u0c2a\u0c2c\u0c21\u0c3f\u0c28 \u0c1c\u0c3e\u0c2c\u0c3f\u0c24\u0c3e", - "pad.toolbar.ul.title": "\u0c05\u0c28\u0c3f\u0c30\u0c4d\u0c26\u0c47\u0c36\u0c3f\u0c24 \u0c1c\u0c3e\u0c2c\u0c3f\u0c24\u0c3e, ( \u0c15\u0c4d\u0c30\u0c2e\u0c2a\u0c26\u0c4d\u0c27\u0c24\u0c3f \u0c32\u0c47\u0c28\u0c3f \u0c1c\u0c3e\u0c2c\u0c3f\u0c24\u0c3e )", - "pad.toolbar.undo.title": "\u0c1a\u0c47\u0c2f\u0c35\u0c26\u0c4d\u0c26\u0c41", - "pad.toolbar.redo.title": "\u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f\u0c1a\u0c46\u0c2f\u0c4d\u0c2f\u0c3f", - "pad.toolbar.clearAuthorship.title": "\u0c2e\u0c42\u0c32\u0c15\u0c30\u0c4d\u0c24\u0c2a\u0c41 \u0c35\u0c30\u0c4d\u0c23\u0c3e\u0c32\u0c28\u0c41 \u0c24\u0c40\u0c38\u0c3f\u0c35\u0c47\u0c2f\u0c02\u0c21\u0c3f", - "pad.toolbar.import_export.title": "\u0c2d\u0c3f\u0c28\u0c4d\u0c28\u0c2e\u0c48\u0c28 \u0c30\u0c42\u0c2a\u0c32\u0c3e\u0c35\u0c28\u0c4d\u0c2f\u0c3e\u0c32\u0c28\u0c41 \u0c2c\u0c2f\u0c1f \u0c28\u0c41\u0c02\u0c21\u0c3f \u0c26\u0c3f\u0c17\u0c41\u0c2e\u0c24\u0c3f \u0c32\u0c47\u0c26\u0c3e \u0c2c\u0c2f\u0c1f\u0c15\u0c41 \u0c0e\u0c17\u0c41\u0c2e\u0c24\u0c3f \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f", - "pad.toolbar.timeslider.title": "\u0c2a\u0c28\u0c3f\u0c38\u0c2e\u0c2f \u0c38\u0c42\u0c1a\u0c3f\u0c15 \u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c02", - "pad.toolbar.savedRevision.title": "\u0c26\u0c3e\u0c1a\u0c3f\u0c28 \u0c2a\u0c41\u0c28\u0c30\u0c41\u0c1a\u0c4d\u0c1a\u0c30\u0c23\u0c32\u0c41", - "pad.toolbar.settings.title": "\u0c05\u0c2e\u0c30\u0c3f\u0c15\u0c32\u0c41", - "pad.toolbar.embed.title": "\u0c08 \u0c2a\u0c32\u0c15\u0c28\u0c3f \u0c2a\u0c4a\u0c26\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f", - "pad.toolbar.showusers.title": "\u0c08 \u0c2a\u0c32\u0c15 \u0c2f\u0c4a\u0c15\u0c4d\u0c15 \u0c35\u0c3f\u0c28\u0c3f\u0c2f\u0c4b\u0c17\u0c26\u0c3e\u0c30\u0c41\u0c32\u0c28\u0c41 \u0c1a\u0c42\u0c2a\u0c3f\u0c02\u0c1a\u0c41", - "pad.colorpicker.save": "\u0c2d\u0c26\u0c4d\u0c30\u0c2a\u0c30\u0c1a\u0c41", - "pad.colorpicker.cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41\u0c1a\u0c47\u0c2f\u0c3f", - "pad.loading": "\u0c32\u0c4b\u0c21\u0c35\u0c41\u0c24\u0c4b\u0c02\u0c26\u0c3f...", - "pad.settings.padSettings": "\u0c2a\u0c32\u0c15 \u0c05\u0c2e\u0c30\u0c3f\u0c15\u0c32\u0c41", - "pad.settings.myView": "\u0c28\u0c3e \u0c09\u0c26\u0c4d\u0c26\u0c47\u0c36\u0c4d\u0c2f\u0c2e\u0c41", - "pad.settings.stickychat": "\u0c24\u0c46\u0c30\u0c2a\u0c48\u0c28\u0c47 \u0c2e\u0c3e\u0c1f\u0c3e\u0c2e\u0c02\u0c24\u0c3f\u0c28\u0c3f \u0c0e\u0c32\u0c4d\u0c32\u0c2a\u0c41\u0c21\u0c41 \u0c1a\u0c47\u0c2f\u0c41\u0c2e\u0c41", - "pad.settings.colorcheck": "\u0c30\u0c1a\u0c2f\u0c3f\u0c24\u0c32\u0c15\u0c41 \u0c30\u0c02\u0c17\u0c41\u0c32\u0c41", - "pad.settings.linenocheck": "\u0c35\u0c30\u0c41\u0c38 \u0c38\u0c02\u0c16\u0c4d\u0c2f\u0c32\u0c41", - "pad.settings.fontType": "\u0c05\u0c15\u0c4d\u0c37\u0c30\u0c36\u0c48\u0c32\u0c3f \u0c30\u0c15\u0c02:", - "pad.settings.fontType.normal": "\u0c38\u0c3e\u0c27\u0c3e\u0c30\u0c23", - "pad.settings.fontType.monospaced": "\u0c2e\u0c4b\u0c28\u0c4b\u0c38\u0c4d\u0c2a\u0c47\u0c38\u0c4d", - "pad.settings.globalView": "\u0c2c\u0c2f\u0c1f\u0c15\u0c3f \u0c26\u0c30\u0c4d\u0c36\u0c28\u0c02", - "pad.settings.language": "\u0c2d\u0c3e\u0c37", - "pad.importExport.import_export": "\u0c26\u0c3f\u0c17\u0c41\u0c2e\u0c24\u0c3f\/\u0c0e\u0c17\u0c41\u0c2e\u0c24\u0c3f", - "pad.importExport.import": "\u0c2a\u0c3e\u0c20\u0c2e\u0c41 \u0c26\u0c38\u0c4d\u0c24\u0c4d\u0c30\u0c2e\u0c41 \u0c32\u0c47\u0c26\u0c3e \u0c2a\u0c24\u0c4d\u0c30\u0c2e\u0c41\u0c28\u0c41 \u0c26\u0c3f\u0c17\u0c41\u0c2e\u0c24\u0c3f \u0c1a\u0c47\u0c2f\u0c41\u0c2e\u0c41", - "pad.importExport.export": "\u0c2a\u0c4d\u0c30\u0c38\u0c4d\u0c24\u0c41\u0c24 \u0c2a\u0c32\u0c15\u0c28\u0c3f \u0c08 \u0c35\u0c3f\u0c27\u0c2e\u0c41\u0c17\u0c3e \u0c0e\u0c17\u0c41\u0c2e\u0c24\u0c3f \u0c1a\u0c47\u0c2f\u0c41\u0c2e\u0c41:", - "pad.importExport.exporthtml": "\u0c39\u0c46\u0c1a\u0c4d \u0c1f\u0c3f \u0c0e\u0c02 \u0c0e\u0c32\u0c4d", - "pad.importExport.exportplain": "\u0c38\u0c3e\u0c26\u0c3e \u0c2a\u0c3e\u0c20\u0c4d\u0c2f\u0c02", - "pad.importExport.exportword": "\u0c2e\u0c48\u0c15\u0c4d\u0c30\u0c4b\u0c38\u0c3e\u0c2b\u0c4d\u0c1f\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d", - "pad.importExport.exportpdf": "\u0c2a\u0c40 \u0c21\u0c3f \u0c0e\u0c2b\u0c4d", - "pad.importExport.exportopen": "\u0c13 \u0c21\u0c3f \u0c0e\u0c2b\u0c4d (\u0c13\u0c2a\u0c46\u0c28\u0c4d \u0c21\u0c3e\u0c15\u0c4d\u0c2f\u0c41\u0c2e\u0c46\u0c02\u0c1f\u0c4d \u0c2b\u0c3e\u0c30\u0c4d\u0c2e\u0c3e\u0c1f\u0c4d)", - "pad.importExport.exportdokuwiki": "\u0c21\u0c3e\u0c15\u0c4d\u0c2f\u0c41\u0c35\u0c3f\u0c15\u0c3f", - "pad.modals.connected": "\u0c38\u0c02\u0c2c\u0c02\u0c27\u0c02 \u0c15\u0c41\u0c26\u0c3f\u0c30\u0c3f\u0c02\u0c26\u0c3f.", - "pad.modals.reconnecting": "\u0c2e\u0c40 \u0c2a\u0c32\u0c15\u0c15\u0c41 \u0c2e\u0c30\u0c32 \u0c38\u0c02\u0c2c\u0c02\u0c27\u0c02 \u0c15\u0c32\u0c41\u0c2a\u0c41\u0c24\u0c41\u0c02\u0c26\u0c3f...", - "pad.modals.forcereconnect": "\u0c2c\u0c32\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e\u0c28\u0c48\u0c28\u0c3e \u0c38\u0c02\u0c2c\u0c02\u0c27\u0c02 \u0c15\u0c41\u0c26\u0c3f\u0c30\u0c3f\u0c02\u0c1a\u0c41", - "pad.modals.userdup.explanation": "\u0c08 \u0c2a\u0c32\u0c15, \u0c08 \u0c15\u0c02\u0c2a\u0c4d\u0c2f\u0c42\u0c1f\u0c30\u0c4d\u0c32\u0c4b \u0c12\u0c15\u0c1f\u0c3f\u0c15\u0c28\u0c4d\u0c28 \u0c0e\u0c15\u0c4d\u0c15\u0c41\u0c35 \u0c17\u0c35\u0c3e\u0c15\u0c4d\u0c37\u0c2e\u0c41\u0c32\u0c32\u0c4b \u0c24\u0c46\u0c30\u0c41\u0c1a\u0c41\u0c15\u0c41\u0c28\u0c4d\u0c28\u0c1f\u0c4d\u0c32\u0c41 \u0c05\u0c28\u0c3f\u0c2a\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f.", - "pad.modals.userdup.advice": "\u0c2c\u0c26\u0c41\u0c32\u0c41\u0c17\u0c3e \u0c08 \u0c17\u0c35\u0c3e\u0c15\u0c4d\u0c37\u0c2e\u0c41\u0c28\u0c41 \u0c35\u0c3e\u0c21\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2e\u0c30\u0c32 \u0c38\u0c02\u0c2c\u0c02\u0c27\u0c02 \u0c15\u0c32\u0c2a\u0c02\u0c21\u0c3f", - "pad.modals.unauth": "\u0c05\u0c27\u0c3f\u0c15\u0c3e\u0c30\u0c02 \u0c32\u0c47\u0c26\u0c41", - "pad.modals.unauth.explanation": "\u0c2e\u0c40\u0c30\u0c41 \u0c08 \u0c2a\u0c41\u0c1f\u0c28\u0c41 \u0c1a\u0c42\u0c38\u0c4d\u0c24\u0c42\u0c28\u0c4d\u0c28\u0c2a\u0c4d\u0c2a\u0c41\u0c21\u0c41 \u0c2e\u0c40 \u0c05\u0c28\u0c41\u0c2e\u0c24\u0c41\u0c32\u0c41 \u0c2e\u0c3e\u0c30\u0c3e\u0c2f\u0c3f. \u0c2e\u0c30\u0c32 \u0c38\u0c02\u0c2c\u0c02\u0c27\u0c02 \u0c15\u0c32\u0c2a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f.", - "pad.modals.looping": "\u0c38\u0c02\u0c2c\u0c02\u0c27\u0c02 \u0c15\u0c4b\u0c32\u0c4d\u0c2a\u0c4b\u0c2f\u0c3f\u0c02\u0c26\u0c3f.", - "pad.modals.slowcommit": "\u0c38\u0c02\u0c2c\u0c02\u0c27\u0c02 \u0c15\u0c4b\u0c32\u0c4d\u0c2a\u0c4b\u0c2f\u0c3f\u0c02\u0c26\u0c3f.", - "pad.modals.deleted": "\u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f ( \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c3f\u0c28\u0c26\u0c3f )", - "pad.share": "\u0c08 \u0c2a\u0c32\u0c15\u0c28\u0c41 \u0c2a\u0c02\u0c1a\u0c41\u0c15\u0c4a\u0c28\u0c41", - "pad.share.readonly": "\u0c1a\u0c26\u0c41\u0c35\u0c41\u0c1f\u0c15\u0c41 \u0c2e\u0c3e\u0c24\u0c4d\u0c30\u0c2e\u0c47", - "pad.share.link": "\u0c32\u0c02\u0c15\u0c46", - "pad.share.emebdcode": "\u0c2f\u0c41 \u0c06\u0c30\u0c4d \u0c0e\u0c32\u0c4d \u0c28\u0c41 \u0c2a\u0c4a\u0c26\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f", - "pad.chat": "\u0c2e\u0c3e\u0c1f\u0c3e\u0c2e\u0c02\u0c24\u0c3f", - "pad.chat.title": "\u0c08 \u0c2a\u0c32\u0c15\u0c15\u0c41 \u0c2e\u0c3e\u0c1f\u0c3e\u0c2e\u0c02\u0c24\u0c3f\u0c28\u0c3f \u0c24\u0c46\u0c30\u0c3f\u0c1a\u0c3f \u0c09\u0c02\u0c1a\u0c02\u0c21\u0c3f.", - "timeslider.pageTitle": "{{appTitle}} \u0c2a\u0c28\u0c3f\u0c38\u0c2e\u0c2f \u0c38\u0c42\u0c1a\u0c3f\u0c15 \u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c02", - "timeslider.toolbar.returnbutton": "\u0c2a\u0c32\u0c15\u0c15\u0c3f \u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c02\u0c21\u0c3f", - "timeslider.toolbar.authors": "\u0c30\u0c1a\u0c2f\u0c3f\u0c24\u0c32\u0c41:", - "timeslider.toolbar.authorsList": "\u0c30\u0c1a\u0c2f\u0c3f\u0c24\u0c32\u0c41 \u0c32\u0c47\u0c30\u0c41", - "timeslider.exportCurrent": "\u0c2a\u0c4d\u0c30\u0c38\u0c4d\u0c24\u0c41\u0c24 \u0c05\u0c35\u0c24\u0c3e\u0c30\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c08 \u0c35\u0c3f\u0c27\u0c02\u0c17\u0c3e \u0c0e\u0c17\u0c41\u0c2e\u0c24\u0c3f \u0c1a\u0c47\u0c2f\u0c41\u0c2e\u0c41:", - "timeslider.month.january": "\u0c1c\u0c28\u0c35\u0c30\u0c3f", - "timeslider.month.february": "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f", - "timeslider.month.march": "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f", - "timeslider.month.april": "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d", - "timeslider.month.may": "\u0c2e\u0c47", - "timeslider.month.june": "\u0c1c\u0c42\u0c28\u0c4d", - "timeslider.month.july": "\u0c1c\u0c42\u0c32\u0c48", - "timeslider.month.august": "\u0c06\u0c17\u0c37\u0c4d\u0c1f\u0c41", - "timeslider.month.september": "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c41", - "timeslider.month.october": "\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c41", - "timeslider.month.november": "\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c41", - "timeslider.month.december": "\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c41" + "@metadata": { + "authors": { + "0": "JVRKPRASAD", + "1": "Malkum", + "3": "Veeven" + } + }, + "index.newPad": "కొత్త పలక", + "index.createOpenPad": "ఒక పేరుతో పలకని సృష్టించండి లేదా అదే పేరుతో ఉన్న పలకని తెరవండి", + "pad.toolbar.bold.title": "మందం", + "pad.toolbar.italic.title": "వాలు అక్షరాలు", + "pad.toolbar.underline.title": "క్రిందగీత", + "pad.toolbar.strikethrough.title": "కొట్టివేత", + "pad.toolbar.ol.title": "నిర్ధేశింపబడిన జాబితా", + "pad.toolbar.ul.title": "అనిర్దేశిత జాబితా, ( క్రమపద్ధతి లేని జాబితా )", + "pad.toolbar.undo.title": "చేయవద్దు", + "pad.toolbar.redo.title": "తిరిగిచెయ్యి", + "pad.toolbar.clearAuthorship.title": "మూలకర్తపు వర్ణాలను తీసివేయండి", + "pad.toolbar.import_export.title": "భిన్నమైన రూపలావన్యాలను బయట నుండి దిగుమతి లేదా బయటకు ఎగుమతి చేయండి", + "pad.toolbar.timeslider.title": "పనిసమయ సూచిక పరికరం", + "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.padSettings": "పలక అమరికలు", + "pad.settings.myView": "నా ఉద్దేశ్యము", + "pad.settings.stickychat": "తెరపైనే మాటామంతిని ఎల్లపుడు చేయుము", + "pad.settings.colorcheck": "రచయితలకు రంగులు", + "pad.settings.linenocheck": "వరుస సంఖ్యలు", + "pad.settings.fontType": "అక్షరశైలి రకం:", + "pad.settings.fontType.normal": "సాధారణ", + "pad.settings.fontType.monospaced": "మోనోస్పేస్", + "pad.settings.globalView": "బయటకి దర్శనం", + "pad.settings.language": "భాష", + "pad.importExport.import_export": "దిగుమతి/ఎగుమతి", + "pad.importExport.import": "పాఠము దస్త్రము లేదా పత్రమును దిగుమతి చేయుము", + "pad.importExport.importSuccessful": "విజయవంతం!", + "pad.importExport.export": "ప్రస్తుత పలకని ఈ విధముగా ఎగుమతి చేయుము:", + "pad.importExport.exporthtml": "హెచ్ టి ఎం ఎల్", + "pad.importExport.exportplain": "సాదా పాఠ్యం", + "pad.importExport.exportword": "మైక్రోసాఫ్ట్ వర్డ్", + "pad.importExport.exportpdf": "పీ డి ఎఫ్", + "pad.importExport.exportopen": "ఓ డి ఎఫ్ (ఓపెన్ డాక్యుమెంట్ ఫార్మాట్)", + "pad.importExport.exportdokuwiki": "డాక్యువికి", + "pad.modals.connected": "సంబంధం కుదిరింది.", + "pad.modals.reconnecting": "మీ పలకకు మరల సంబంధం కలుపుతుంది...", + "pad.modals.forcereconnect": "బలవంతంగానైనా సంబంధం కుదిరించు", + "pad.modals.userdup.explanation": "ఈ పలక, ఈ కంప్యూటర్లో ఒకటికన్న ఎక్కువ గవాక్షములలో తెరుచుకున్నట్లు అనిపిస్తుంది.", + "pad.modals.userdup.advice": "బదులుగా ఈ గవాక్షమును వాడడానికి మరల సంబంధం కలపండి", + "pad.modals.unauth": "అధికారం లేదు", + "pad.modals.unauth.explanation": "మీరు ఈ పుటను చూస్తూన్నప్పుడు మీ అనుమతులు మారాయి. మరల సంబంధం కలపడానికి ప్రయత్నించండి.", + "pad.modals.deleted": "తొలగించబడింది ( తొలగించినది )", + "pad.share": "ఈ పలకను పంచుకొను", + "pad.share.readonly": "చదువుటకు మాత్రమే", + "pad.share.link": "లంకె", + "pad.share.emebdcode": "యు ఆర్ ఎల్ ను పొదగించండి", + "pad.chat": "మాటామంతి", + "pad.chat.title": "ఈ పలకకు మాటామంతిని తెరిచి ఉంచండి.", + "timeslider.pageTitle": "{{appTitle}} పనిసమయ సూచిక పరికరం", + "timeslider.toolbar.returnbutton": "పలకకి తిరిగి వెళ్ళండి", + "timeslider.toolbar.authors": "రచయితలు:", + "timeslider.toolbar.authorsList": "రచయితలు లేరు", + "timeslider.exportCurrent": "ప్రస్తుత అవతారాన్ని ఈ విధంగా ఎగుమతి చేయుము:", + "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": "డిసెంబరు" }
\ No newline at end of file diff --git a/src/locales/tr.json b/src/locales/tr.json new file mode 100644 index 00000000..27f308d6 --- /dev/null +++ b/src/locales/tr.json @@ -0,0 +1,124 @@ +{ + "@metadata": { + "authors": [ + "Emperyan", + "Erdemaslancan", + "Meelo" + ] + }, + "index.newPad": "Yeni Bloknot", + "index.createOpenPad": "ya da şu isimle bir Bloknot oluştur/aç:", + "pad.toolbar.bold.title": "Kalın (Ctrl-B)", + "pad.toolbar.italic.title": "Eğik (Ctrl-I)", + "pad.toolbar.underline.title": "Altı Çizili (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Üstü Çizili", + "pad.toolbar.ol.title": "Sıralı liste", + "pad.toolbar.ul.title": "Sırasız Liste", + "pad.toolbar.indent.title": "Girintiyi arttır", + "pad.toolbar.unindent.title": "Girintiyi azalt", + "pad.toolbar.undo.title": "Geri Al (Ctrl-Z)", + "pad.toolbar.redo.title": "Yenile (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Yazarlık Renklerini Temizle", + "pad.toolbar.import_export.title": "Farklı dosya biçimlerini içeri/dışarı aktar", + "pad.toolbar.timeslider.title": "Zaman Çizelgesi", + "pad.toolbar.savedRevision.title": "Düzeltmeyi Kaydet", + "pad.toolbar.settings.title": "Ayarlar", + "pad.toolbar.embed.title": "Bu bloknotu Paylaş ve Göm", + "pad.toolbar.showusers.title": "Kullanıcıları bu bloknotta göster", + "pad.colorpicker.save": "Kaydet", + "pad.colorpicker.cancel": "İptal", + "pad.loading": "Yükleniyor...", + "pad.passwordRequired": "Bu bloknota erişebilmeniz için parolaya ihtiyacınız var", + "pad.permissionDenied": "Bu bloknota erişmeye izniniz yok", + "pad.wrongPassword": "Parolanız yanlış", + "pad.settings.padSettings": "Bloknot Ayarları", + "pad.settings.myView": "Görünümüm", + "pad.settings.stickychat": "Ekranda her zaman sohbet edin", + "pad.settings.colorcheck": "Yazarlık renkleri", + "pad.settings.linenocheck": "Satır numaraları", + "pad.settings.rtlcheck": "İçerik sağdan sola doğru okunsun mu?", + "pad.settings.fontType": "Yazı tipi:", + "pad.settings.fontType.normal": "Olağan", + "pad.settings.fontType.monospaced": "Tek aralıklı", + "pad.settings.globalView": "Genel Görünüm", + "pad.settings.language": "Dil:", + "pad.importExport.import_export": "İçerik/Dışarı Aktar", + "pad.importExport.import": "Herhangi bir metin dosyası ya da belgesi yükle", + "pad.importExport.importSuccessful": "Başarılı!", + "pad.importExport.export": "Mevcut bloknotu şu olarak dışa aktar:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Düz metin", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Açık Doküman Biçimi)", + "pad.importExport.exportdokuwiki": "VikiBelge", + "pad.importExport.abiword.innerHTML": "Yalnızca düz metin ya da HTML biçimlerini içe aktarabilirsiniz. Daha fazla gelişmiş içe aktarım özellikleri için \u003Ca 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\"\u003EAbiWord'ü yükleyin\u003C/a\u003E.", + "pad.modals.connected": "Bağlandı.", + "pad.modals.reconnecting": "Bloknotunuza tekrar bağlanılıyor...", + "pad.modals.forcereconnect": "Yeniden bağlanmaya zorla", + "pad.modals.userdup": "Başka pencerede açıldı", + "pad.modals.userdup.explanation": "Bu bloknot bu bilgisayarda birden fazla tarayıcı penceresinde açılmış gibi görünüyor.", + "pad.modals.userdup.advice": "Bu pencereden kullanmak için yeniden bağlanın.", + "pad.modals.unauth": "Yetkili değil", + "pad.modals.unauth.explanation": "Bu sayfayı görüntülerken izinleriniz değiştirildi. Tekrar bağlanmayı deneyin.", + "pad.modals.looping.explanation": "Eşitleme sunucusu ile iletişim sorunları yaşanıyor.", + "pad.modals.looping.cause": "Belki de uygun olmayan güvenlik duvarı ya da vekil sunucu (proxy) ile bağlanmaya çalışıyorsunuz.", + "pad.modals.initsocketfail": "Sunucuya erişilemiyor.", + "pad.modals.initsocketfail.explanation": "Eşitleme sunucusuna bağlantı kurulamıyor.", + "pad.modals.initsocketfail.cause": "Bu sorun muhtemelen, tarayıcınızdan ya da internet bağlantınızdan kaynaklanıyor.", + "pad.modals.slowcommit.explanation": "Sunucu yanıt vermiyor.", + "pad.modals.slowcommit.cause": "Bu hata ağ bağlantısı sebebiyle olabilir.", + "pad.modals.badChangeset.explanation": "Yaptığınız bir düzenleme eşitleme sunucusu tarafından kullanışsız/kural dışı olarak sınıflandırıldı.", + "pad.modals.badChangeset.cause": "Bu, yanlış sunucu yapılandırması ya da başka bir beklenmedik davranışlar sonucunda olmuş olabilir. Bu size bir hataymış gibi geliyorsa lütfen servis yöneticisiyle iletişime geçin. Düzenlemeye devam etmek için yeniden bağlanmayı deneyin.", + "pad.modals.corruptPad.explanation": "Erişmeye çalıştığınız bloknot bozuk.", + "pad.modals.corruptPad.cause": "Bu, yanlış sunucu yapılandırması ya da başka bir beklenmedik davranışlardan kaynaklanabilir. Lütfen servis yöneticisiyle iletişime geçin.", + "pad.modals.deleted": "Silindi.", + "pad.modals.deleted.explanation": "Bu bloknot kaldırılmış.", + "pad.modals.disconnected": "Bağlantınız koptu.", + "pad.modals.disconnected.explanation": "Sunucu bağlantısı kaybedildi", + "pad.modals.disconnected.cause": "Sunucu kullanılamıyor olabilir. Bunun devam etmesi durumunda servis yöneticisine bildirin.", + "pad.share": "Bu bloknotu paylaş", + "pad.share.readonly": "Salt okunur", + "pad.share.link": "Bağlantı", + "pad.share.emebdcode": "URL'yi göm", + "pad.chat": "Sohbet", + "pad.chat.title": "Bu bloknot için sohbeti açın.", + "pad.chat.loadmessages": "Daha fazla mesaj yükle", + "timeslider.pageTitle": "{{appTitle}} Zaman Çizelgesi", + "timeslider.toolbar.returnbutton": "Bloknota geri dön", + "timeslider.toolbar.authors": "Yazarlar:", + "timeslider.toolbar.authorsList": "Yazar Yok", + "timeslider.toolbar.exportlink.title": "Dışa aktar", + "timeslider.exportCurrent": "Mevcut sürümü şu olarak dışa aktar:", + "timeslider.version": "{{version}} sürümü", + "timeslider.saved": "{{day}} {{month}} {{year}} tarihinde kaydedildi", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}.{{minutes}}.{{seconds}}", + "timeslider.month.january": "Ocak", + "timeslider.month.february": "Şubat", + "timeslider.month.march": "Mart", + "timeslider.month.april": "Nisan", + "timeslider.month.may": "Mayıs", + "timeslider.month.june": "Haziran", + "timeslider.month.july": "Temmuz", + "timeslider.month.august": "Ağustos", + "timeslider.month.september": "Eylül", + "timeslider.month.october": "Ekim", + "timeslider.month.november": "Kasım", + "timeslider.month.december": "Aralık", + "timeslider.unnamedauthors": "{{num}} adsız {[plural(num) one: yazar, other: yazar ]}", + "pad.savedrevs.marked": "Bu düzenleme artık kayıtlı bir düzeltme olarak işaretlendi", + "pad.userlist.entername": "Adınızı girin", + "pad.userlist.unnamed": "Adlandırılmamış", + "pad.userlist.guest": "Misafir", + "pad.userlist.deny": "Reddet", + "pad.userlist.approve": "Onayla", + "pad.editbar.clearcolors": "Bütün belgedeki yazarlık renkleri silinsin mi?", + "pad.impexp.importbutton": "Şimdi İçe Aktar", + "pad.impexp.importing": "İçe aktarıyor...", + "pad.impexp.confirmimport": "Bir dosya içe aktarılırken bloknotun mevcut metninin üzerine yazdırılır. Devam etmek istediğinizden emin misiniz?", + "pad.impexp.convertFailed": "Bu dosyayı içe aktarmak mümkün değil. Lütfen farklı bir belge biçimi kullanın ya da elle kopyala yapıştır yapın", + "pad.impexp.uploadFailed": "Yükleme başarısız, lütfen tekrar deneyin", + "pad.impexp.importfailed": "İçe aktarım başarısız oldu", + "pad.impexp.copypaste": "Lütfen kopyala yapıştır yapın", + "pad.impexp.exportdisabled": "{{type}} biçimiyle dışa aktarma devre dışı bırakıldı. Ayrıntılar için sistem yöneticinizle iletişime geçiniz." +}
\ No newline at end of file diff --git a/src/locales/uk.json b/src/locales/uk.json index 0da478cc..cddba571 100644 --- a/src/locales/uk.json +++ b/src/locales/uk.json @@ -1,122 +1,126 @@ { - "@metadata": { - "authors": { - "0": "Base", - "1": "Olvin", - "3": "Steve.rusyn" - } - }, - "index.newPad": "\u0421\u0442\u0432\u043e\u0440\u0438\u0442\u0438", - "index.createOpenPad": "\u0430\u0431\u043e \u0441\u0442\u0432\u043e\u0440\u0438\u0442\u0438\/\u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0437 \u043d\u0430\u0437\u0432\u043e\u044e:", - "pad.toolbar.bold.title": "\u041d\u0430\u043f\u0456\u0432\u0436\u0438\u0440\u043d\u0438\u0439 (Ctrl-B)", - "pad.toolbar.italic.title": "\u041a\u0443\u0440\u0441\u0438\u0432 (Ctrl-I)", - "pad.toolbar.underline.title": "\u041f\u0456\u0434\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u043d\u044f (Ctrl-U)", - "pad.toolbar.strikethrough.title": "\u0417\u0430\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u043d\u044f", - "pad.toolbar.ol.title": "\u0423\u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", - "pad.toolbar.ul.title": "\u041d\u0435\u0443\u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", - "pad.toolbar.indent.title": "\u0412\u0456\u0434\u0441\u0442\u0443\u043f", - "pad.toolbar.unindent.title": "\u0412\u0438\u0441\u0442\u0443\u043f", - "pad.toolbar.undo.title": "\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438 (Ctrl-Z)", - "pad.toolbar.redo.title": "\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0438 (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u043a\u043e\u043b\u044c\u043e\u0440\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443", - "pad.toolbar.import_export.title": "\u0406\u043c\u043f\u043e\u0440\u0442\/\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u0437 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f\u043c \u0440\u0456\u0437\u043d\u0438\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0456\u0432 \u0444\u0430\u0439\u043b\u0456\u0432", - "pad.toolbar.timeslider.title": "\u0428\u043a\u0430\u043b\u0430 \u0447\u0430\u0441\u0443", - "pad.toolbar.savedRevision.title": "\u0417\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0456 \u0432\u0435\u0440\u0441\u0456\u0457", - "pad.toolbar.settings.title": "\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f", - "pad.toolbar.embed.title": "\u0412\u0431\u0443\u0434\u0443\u0432\u0430\u0442\u0438 \u0446\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", - "pad.toolbar.showusers.title": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0456\u0432 \u0446\u044c\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443", - "pad.colorpicker.save": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438", - "pad.colorpicker.cancel": "\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438", - "pad.loading": "\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f\u2026", - "pad.passwordRequired": "\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0434\u043e \u0446\u044c\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443", - "pad.permissionDenied": "\u0412\u0438 \u043d\u0435 \u043c\u0430\u0454 \u0434\u043e\u0437\u0432\u043e\u043b\u0443 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0434\u043e \u0446\u044c\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443", - "pad.wrongPassword": "\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c", - "pad.settings.padSettings": "\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443", - "pad.settings.myView": "\u041c\u0456\u0439 \u0412\u0438\u0433\u043b\u044f\u0434", - "pad.settings.stickychat": "\u0417\u0430\u0432\u0436\u0434\u0438 \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0443\u0432\u0430\u0442\u0438 \u0447\u0430\u0442", - "pad.settings.colorcheck": "\u041a\u043e\u043b\u044c\u043e\u0440\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443", - "pad.settings.linenocheck": "\u041d\u043e\u043c\u0435\u0440\u0438 \u0440\u044f\u0434\u043a\u0456\u0432", - "pad.settings.fontType": "\u0422\u0438\u043f \u0448\u0440\u0438\u0444\u0442\u0443:", - "pad.settings.fontType.normal": "\u0417\u0432\u0438\u0447\u0430\u0439\u043d\u0438\u0439", - "pad.settings.fontType.monospaced": "\u041c\u043e\u043d\u043e\u0448\u0438\u0440\u0438\u043d\u043d\u0438\u0439", - "pad.settings.globalView": "\u0417\u0430\u0433\u0430\u043b\u044c\u043d\u0438\u0439 \u0432\u0438\u0433\u043b\u044f\u0434", - "pad.settings.language": "\u041c\u043e\u0432\u0430:", - "pad.importExport.import_export": "\u0406\u043c\u043f\u043e\u0440\u0442\/\u0415\u043a\u0441\u043f\u043e\u0440\u0442", - "pad.importExport.import": "\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0431\u0443\u0434\u044c-\u044f\u043a\u0438\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u0444\u0430\u0439\u043b \u0430\u0431\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", - "pad.importExport.importSuccessful": "\u0423\u0441\u043f\u0456\u0448\u043d\u043e!", - "pad.importExport.export": "\u0415\u043a\u0441\u043f\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u043f\u043e\u0442\u043e\u0447\u043d\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u044f\u043a:", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\u0417\u0432\u0438\u0447\u0430\u0439\u043d\u0438\u0439 \u0442\u0435\u043a\u0441\u0442", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF (\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 OpenOffice)", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0456\u043c\u043f\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u043b\u0438\u0449\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0443 \u0430\u0431\u043e html. \u0414\u043b\u044f \u0431\u0456\u043b\u044c\u0448 \u043f\u0440\u043e\u0441\u0443\u043d\u0443\u0442\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0456\u0432 \u0456\u043c\u043f\u043e\u0440\u0442\u0443 <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\">\u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0456\u0442\u044c abiword<\/a>.", - "pad.modals.connected": "\u0417'\u0454\u0434\u043d\u0430\u043d\u043e.", - "pad.modals.reconnecting": "\u041f\u0435\u0440\u0435\u043f\u0456\u0434\u043b\u044e\u0447\u0435\u043d\u043d\u044f \u0434\u043e \u0412\u0430\u0448\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443..", - "pad.modals.forcereconnect": "\u041f\u0440\u0438\u043c\u0443\u0441\u043e\u0432\u0435 \u043f\u0435\u0440\u0435\u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044f", - "pad.modals.userdup": "\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u043e \u0432 \u0456\u043d\u0448\u043e\u043c\u0443 \u0432\u0456\u043a\u043d\u0456", - "pad.modals.userdup.explanation": "\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u043c\u043e\u0436\u043b\u0438\u0432\u043e, \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u043e \u0431\u0456\u043b\u044c\u0448 \u043d\u0456\u0436 \u0432 \u043e\u0434\u043d\u043e\u043c\u0443 \u0432\u0456\u043a\u043d\u0456 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u043d\u0430 \u0446\u044c\u043e\u043c\u0443 \u043a\u043e\u043c\u043f'\u044e\u0442\u0435\u0440\u0456.", - "pad.modals.userdup.advice": "\u041f\u0435\u0440\u0435\u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0438\u0441\u044c \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u044e\u0447\u0438 \u0446\u0435 \u0432\u0456\u043a\u043d\u043e.", - "pad.modals.unauth": "\u041d\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043e", - "pad.modals.unauth.explanation": "\u0412\u0430\u0448\u0456 \u043f\u0440\u0430\u0432\u0430 \u0431\u0443\u043b\u043e \u0437\u043c\u0456\u043d\u0435\u043d\u043e \u043f\u0456\u0434 \u0447\u0430\u0441 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0443 \u0446\u0456\u0454\u0457 \u0441\u0442\u043e\u0440\u0456\u043d\u043a. \u0421\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0438\u0441\u044c.", - "pad.modals.looping": "\u0412\u0456\u0434'\u0454\u0434\u043d\u0430\u043d\u043e.", - "pad.modals.looping.explanation": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0437\u0432'\u0454\u0437\u043a\u0443 \u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0456\u0437\u0430\u0446\u0456\u0457.", - "pad.modals.looping.cause": "\u041c\u043e\u0436\u043b\u0438\u0432\u043e, \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438\u0441\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u0443\u043c\u0456\u0441\u043d\u0438\u0439 \u0431\u0440\u0430\u043d\u0434\u043c\u0430\u0443\u0435\u0440 \u0430\u0431\u043e \u043f\u0440\u043e\u043a\u0441\u0456-\u0441\u0435\u0440\u0432\u0435\u0440.", - "pad.modals.initsocketfail": "\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0438\u0439.", - "pad.modals.initsocketfail.explanation": "\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0438\u0441\u044f \u0434\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0456\u0437\u0430\u0446\u0456\u0457.", - "pad.modals.initsocketfail.cause": "\u0419\u043c\u043e\u0432\u0456\u0440\u043d\u043e, \u0446\u0435 \u043f\u043e\u0432'\u044f\u0437\u0430\u043d\u043e \u0437 \u0412\u0430\u0448\u0438\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u0430\u0431\u043e \u0456\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0437'\u0454\u0434\u043d\u0430\u043d\u043d\u044f\u043c.", - "pad.modals.slowcommit": "\u0412\u0456\u0434'\u0454\u0434\u043d\u0430\u043d\u043e.", - "pad.modals.slowcommit.explanation": "\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0430\u0454.", - "pad.modals.slowcommit.cause": "\u0426\u0435 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0437 \u043f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044f\u043c \u0434\u043e \u043c\u0435\u0440\u0435\u0436\u0456.", - "pad.modals.deleted": "\u0412\u0438\u043b\u0443\u0447\u0435\u043d\u043e.", - "pad.modals.deleted.explanation": "\u0426\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0431\u0443\u043b\u043e \u0432\u0438\u043b\u0443\u0447\u0435\u043d\u043e.", - "pad.modals.disconnected": "\u0412\u0430\u0441 \u0431\u0443\u043b\u043e \u0432\u0456\u0434'\u0454\u0434\u043d\u0430\u043d\u043e.", - "pad.modals.disconnected.explanation": "\u0417'\u0454\u0434\u043d\u0430\u043d\u043d\u044f \u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0432\u0442\u0440\u0430\u0447\u0435\u043d\u043e", - "pad.modals.disconnected.cause": "\u0421\u0435\u0440\u0432\u0435\u0440, \u043c\u043e\u0436\u043b\u0438\u0432\u043e, \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0438\u0439. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u0442\u0435 \u043d\u0430\u043c, \u044f\u043a\u0449\u043e \u0446\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044e\u0432\u0430\u0442\u0438\u043c\u0435\u0442\u044c\u0441\u044f.", - "pad.share": "\u041f\u043e\u0434\u0456\u043b\u0438\u0442\u0438\u0441\u044c", - "pad.share.readonly": "\u0422\u0456\u043b\u044c\u043a\u0438 \u0447\u0438\u0442\u0430\u043d\u043d\u044f", - "pad.share.link": "\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", - "pad.share.emebdcode": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 URL", - "pad.chat": "\u0427\u0430\u0442", - "pad.chat.title": "\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0447\u0430\u0442 \u0434\u043b\u044f \u0446\u044c\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443.", - "pad.chat.loadmessages": "\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0431\u0456\u043b\u044c\u0448\u0435 \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u044c", - "timeslider.pageTitle": "\u0427\u0430\u0441\u043e\u0432\u0430 \u0448\u043a\u0430\u043b\u0430 {{appTitle}}", - "timeslider.toolbar.returnbutton": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438\u0441\u044c \u0434\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443", - "timeslider.toolbar.authors": "\u0410\u0432\u0442\u043e\u0440\u0438:", - "timeslider.toolbar.authorsList": "\u041d\u0435\u043c\u0430\u0454 \u0430\u0432\u0442\u043e\u0440\u0456\u0432", - "timeslider.toolbar.exportlink.title": "\u0415\u043a\u0441\u043f\u043e\u0440\u0442", - "timeslider.exportCurrent": "\u0415\u043a\u0441\u043f\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u043f\u043e\u0442\u043e\u0447\u043d\u0443 \u0432\u0435\u0440\u0441\u0456\u044e \u044f\u043a:", - "timeslider.version": "\u0412\u0435\u0440\u0441\u0456\u044f {{version}}", - "timeslider.saved": "\u0417\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043e {{month}} {{day}}, {{year}}", - "timeslider.dateformat": "{{month}}\/{{day}}\/{{year}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "\u0421\u0456\u0447\u0435\u043d\u044c", - "timeslider.month.february": "\u041b\u044e\u0442\u0438\u0439", - "timeslider.month.march": "\u0411\u0435\u0440\u0435\u0437\u0435\u043d\u044c", - "timeslider.month.april": "\u041a\u0432\u0456\u0442\u0435\u043d\u044c", - "timeslider.month.may": "\u0422\u0440\u0430\u0432\u0435\u043d\u044c", - "timeslider.month.june": "\u0427\u0435\u0440\u0432\u0435\u043d\u044c", - "timeslider.month.july": "\u041b\u0438\u043f\u0435\u043d\u044c", - "timeslider.month.august": "\u0421\u0435\u0440\u043f\u0435\u043d\u044c", - "timeslider.month.september": "\u0412\u0435\u0440\u0435\u0441\u0435\u043d\u044c", - "timeslider.month.october": "\u0416\u043e\u0432\u0442\u0435\u043d\u044c", - "timeslider.month.november": "\u041b\u0438\u0441\u0442\u043e\u043f\u0430\u0434", - "timeslider.month.december": "\u0413\u0440\u0443\u0434\u0435\u043d\u044c", - "timeslider.unnamedauthor": "{{num}} \u0431\u0435\u0437\u0456\u043c\u0435\u043d\u043d\u0438\u0439 \u0430\u0432\u0442\u043e\u0440", - "timeslider.unnamedauthors": "\u0431\u0435\u0437\u0456\u043c\u0435\u043d\u043d\u0438\u0445 \u0430\u0432\u0442\u043e\u0440\u043e\u0432: {{num}}", - "pad.savedrevs.marked": "\u0426\u044e \u0432\u0435\u0440\u0441\u0456\u044e \u043f\u043e\u043c\u0456\u0447\u0435\u043d\u043e \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043e\u044e \u0432\u0435\u0440\u0441\u0456\u0454\u044e", - "pad.userlist.entername": "\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u0412\u0430\u0448\u0435 \u0456\u043c'\u044f", - "pad.userlist.unnamed": "\u0431\u0435\u0437\u0456\u043c\u0435\u043d\u043d\u0438\u0439", - "pad.userlist.guest": "\u0413\u0456\u0441\u0442\u044c", - "pad.userlist.deny": "\u0417\u0430\u0431\u043e\u0440\u043e\u043d\u0438\u0442\u0438", - "pad.userlist.approve": "\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438", - "pad.editbar.clearcolors": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u043a\u043e\u043b\u044c\u043e\u0440\u0438 \u0443 \u0432\u0441\u044c\u043e\u043c\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0456?", - "pad.impexp.importbutton": "\u0406\u043c\u043f\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u0437\u0430\u0440\u0430\u0437", - "pad.impexp.importing": "\u0406\u043c\u043f\u043e\u0440\u0442...", - "pad.impexp.confirmimport": "\u0406\u043c\u043f\u043e\u0440\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0444\u0430\u0439\u043b\u0443 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0448\u0435 \u043f\u043e\u0442\u043e\u0447\u043d\u0438\u0439 \u0442\u0435\u043a\u0441\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443. \u0412\u0438 \u0434\u0456\u0439\u0441\u043d\u043e \u0445\u043e\u0447\u0435\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438?", - "pad.impexp.convertFailed": "\u041c\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c\u043e \u0456\u043c\u043f\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u0446\u0435\u0439 \u0444\u0430\u0439\u043b. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u0456\u043d\u0448\u0438\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443, \u0430\u0431\u043e \u043f\u0440\u044f\u043c\u043e \u0441\u043a\u043e\u043f\u0456\u044e\u0439\u0442\u0435 \u0442\u0430 \u0432\u0441\u0442\u0430\u0432\u0442\u0435", - "pad.impexp.uploadFailed": "\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u043d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044c, \u0431\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0441\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0437\u043d\u043e\u0432\u0443", - "pad.impexp.importfailed": "\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0456\u043c\u043f\u043e\u0440\u0442\u0443\u0432\u0430\u043d\u043d\u0456", - "pad.impexp.copypaste": "\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0441\u043a\u043e\u043f\u0456\u044e\u0439\u0442\u0435 \u0442\u0430 \u0432\u0441\u0442\u0430\u0432\u0442\u0435", - "pad.impexp.exportdisabled": "\u0415\u043a\u0441\u043f\u043e\u0440\u0442 \u0443 \u0444\u043e\u0440\u043c\u0430\u0442 {{type}} \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0437\u0432'\u044f\u0436\u0456\u0442\u044c\u0441\u044f \u0456\u0437 \u0412\u0430\u0448\u0438\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u043c \u0430\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0437\u0430 \u0434\u0435\u0442\u0430\u043b\u044f\u043c\u0438." + "@metadata": { + "authors": { + "0": "Andriykopanytsia", + "1": "Base", + "2": "Olvin", + "4": "Steve.rusyn", + "5": "SteveR" + } + }, + "index.newPad": "Створити", + "index.createOpenPad": "або створити/відкрити документ з назвою:", + "pad.toolbar.bold.title": "Напівжирний (Ctrl-B)", + "pad.toolbar.italic.title": "Курсив (Ctrl-I)", + "pad.toolbar.underline.title": "Підкреслення (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Закреслення", + "pad.toolbar.ol.title": "Упорядкований список", + "pad.toolbar.ul.title": "Неупорядкований список", + "pad.toolbar.indent.title": "Відступ", + "pad.toolbar.unindent.title": "Виступ", + "pad.toolbar.undo.title": "Скасувати (Ctrl-Z)", + "pad.toolbar.redo.title": "Повторити (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Очистити кольори документу", + "pad.toolbar.import_export.title": "Імпорт/Експорт з використанням різних форматів файлів", + "pad.toolbar.timeslider.title": "Шкала часу", + "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.passwordRequired": "Вам необхідний пароль для доступу до цього документу", + "pad.permissionDenied": "Ви не має дозволу для доступу до цього документу", + "pad.wrongPassword": "Неправильний пароль", + "pad.settings.padSettings": "Налаштування документу", + "pad.settings.myView": "Мій Вигляд", + "pad.settings.stickychat": "Завжди відображувати чат", + "pad.settings.colorcheck": "Кольори документу", + "pad.settings.linenocheck": "Номери рядків", + "pad.settings.rtlcheck": "Читати вміст з права на ліво?", + "pad.settings.fontType": "Тип шрифту:", + "pad.settings.fontType.normal": "Звичайний", + "pad.settings.fontType.monospaced": "Моноширинний", + "pad.settings.globalView": "Загальний вигляд", + "pad.settings.language": "Мова:", + "pad.importExport.import_export": "Імпорт/Експорт", + "pad.importExport.import": "Завантажити будь-який текстовий файл або документ", + "pad.importExport.importSuccessful": "Успішно!", + "pad.importExport.export": "Експортувати поточний документ як:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Звичайний текст", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (документ OpenOffice)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Ви можете імпортувати лище формати простого тексту або html. Для більш просунутих способів імпорту \u003Ca 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\"\u003Eвстановіть abiword\u003C/a\u003E.", + "pad.modals.connected": "З'єднано.", + "pad.modals.reconnecting": "Перепідлючення до Вашого документу..", + "pad.modals.forcereconnect": "Примусове перепідключення", + "pad.modals.userdup": "Відкрито в іншому вікні", + "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": "Посилання", + "pad.share.emebdcode": "Вставити URL", + "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.saved": "Збережено {{month}} {{day}}, {{year}}", + "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "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": "Грудень", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: безіменний автор, few: безіменні автори, many: безіменних авторів, other: безіменних авторів]}", + "pad.savedrevs.marked": "Цю версію помічено збереженою версією", + "pad.userlist.entername": "Введіть Ваше ім'я", + "pad.userlist.unnamed": "безіменний", + "pad.userlist.guest": "Гість", + "pad.userlist.deny": "Заборонити", + "pad.userlist.approve": "Підтвердити", + "pad.editbar.clearcolors": "Очистити кольори у всьому документі?", + "pad.impexp.importbutton": "Імпортувати зараз", + "pad.impexp.importing": "Імпорт...", + "pad.impexp.confirmimport": "Імпортування файлу перезапише поточний текст документу. Ви дійсно хочете продовжити?", + "pad.impexp.convertFailed": "Ми не можемо імпортувати цей файл. Будь ласка, використайте інший формат документу, або прямо скопіюйте та вставте", + "pad.impexp.uploadFailed": "Завантаження не вдалось, будь ласка, спробуйте знову", + "pad.impexp.importfailed": "Помилка при імпортуванні", + "pad.impexp.copypaste": "Будь ласка, скопіюйте та вставте", + "pad.impexp.exportdisabled": "Експорт у формат {{type}} вимкнено. Будь ласка, зв'яжіться із Вашим системним адміністратором за деталями." }
\ No newline at end of file diff --git a/src/locales/vi.json b/src/locales/vi.json new file mode 100644 index 00000000..e85a2905 --- /dev/null +++ b/src/locales/vi.json @@ -0,0 +1,124 @@ +{ + "@metadata": { + "authors": [ + "Baonguyen21022003", + "Minh Nguyen", + "Tuankiet65" + ] + }, + "index.newPad": "Tạo một Pad mới", + "index.createOpenPad": "hay tạo/mở một Pad với tên:", + "pad.toolbar.bold.title": "In đậm (Ctrl-B)", + "pad.toolbar.italic.title": "In nghiêng (Ctrl-I)", + "pad.toolbar.underline.title": "Gạch chân (Ctrl-U)", + "pad.toolbar.strikethrough.title": "Gạch ngang", + "pad.toolbar.ol.title": "Danh sách Có Đánh số", + "pad.toolbar.ul.title": "Danh sách Không Đánh số", + "pad.toolbar.indent.title": "Tăng lề (TAB)", + "pad.toolbar.unindent.title": "Giảm lề (Shift+TAB)", + "pad.toolbar.undo.title": "Hoàn tác (Ctrl-Z)", + "pad.toolbar.redo.title": "Làm lại (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "Xóa Màu chỉ Tác giả", + "pad.toolbar.import_export.title": "Xuất/Nhập từ/đến các định dạng file khác nhau", + "pad.toolbar.timeslider.title": "Thanh thời gian", + "pad.toolbar.savedRevision.title": "Lưu Phiên bản", + "pad.toolbar.settings.title": "Thiết lập", + "pad.toolbar.embed.title": "Chia sẻ và Nhúng pad này", + "pad.toolbar.showusers.title": "Hiện các người dùng trên pad này", + "pad.colorpicker.save": "Lưu", + "pad.colorpicker.cancel": "Hủy bỏ", + "pad.loading": "Đang tải…", + "pad.passwordRequired": "Bạn cần mật khẩu để truy cập pad này", + "pad.permissionDenied": "Bạn không có quyền truy cập pad này.", + "pad.wrongPassword": "Bạn đã nhập sai mật khẩu", + "pad.settings.padSettings": "Tùy chọn Pad", + "pad.settings.myView": "Chỉ có tôi", + "pad.settings.stickychat": "Luân hiện cửa sổ trò chuyện trên màn hình", + "pad.settings.colorcheck": "Màu chỉ tác giả", + "pad.settings.linenocheck": "Số dòng", + "pad.settings.rtlcheck": "Đọc nội dung từ phải sang trái?", + "pad.settings.fontType": "Kiểu phông chữ:", + "pad.settings.fontType.normal": "Thường", + "pad.settings.fontType.monospaced": "Monospace", + "pad.settings.globalView": "Toàn cầu", + "pad.settings.language": "Ngôn ngữ:", + "pad.importExport.import_export": "Xuất/Nhập", + "pad.importExport.import": "Tải lên bất kỳ tập tin văn bản hoặc tài liệu", + "pad.importExport.importSuccessful": "Thành công!", + "pad.importExport.export": "Xuất pad hiện tại ra định dạng:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Văn bản thuần túy", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "Bạn chỉ có thể nhập vào từ văn bản thuần túy hay định dạng HTML. Nếu muốn có nhiều chức năng nhập hơn xin hãy \u003Ca 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\"\u003Ecài đặt abiword\u003C/a\u003E.", + "pad.modals.connected": "Đã kết nối lại.", + "pad.modals.reconnecting": "Kết nối lại tới pad của bạn", + "pad.modals.forcereconnect": "Ép kết nối lại", + "pad.modals.userdup": "Mở trong cửa sổ khác", + "pad.modals.userdup.explanation": "Pad này dường như được mở trên hơn một cửa sổ trình duyệt trên máy tính này.", + "pad.modals.userdup.advice": "Kết nối lại để sử dụng cửa sổ này.", + "pad.modals.unauth": "Không có quyền", + "pad.modals.unauth.explanation": "Quyền của bạn đã thay đổi trong khi bạn đang xem trang này. Hãy thử kết nối lại.", + "pad.modals.looping.explanation": "Có vấn đề khi giao tiếp với máy chủ đồng bộ", + "pad.modals.looping.cause": "Có thể bạn đã kết nối thông qua một tường lửa hay proxy không thích hợp", + "pad.modals.initsocketfail": "Không thể tiếp cận máy chủ", + "pad.modals.initsocketfail.explanation": "Không thể kết nối đến máy chủ đồng bộ.", + "pad.modals.initsocketfail.cause": "Điều này có thể là do một vấn đề với trình duyệt của bạn hay đường truyền internet của bạn.", + "pad.modals.slowcommit.explanation": "Máy chủ không phản hồi.", + "pad.modals.slowcommit.cause": "Điều này có thể là do vấn đề về kết nối mạng.", + "pad.modals.badChangeset.explanation": "Chỉnh sửa bạn đã thực hiện là bất hợp pháp phân loại bởi máy chủ đồng bộ hóa.", + "pad.modals.badChangeset.cause": "Điều này có thể là do một cấu hình máy chủ sai hoặc một số hành vi không mong muốn khác. Xin vui lòng liên hệ với quản trị viên dịch vụ, nếu bạn cảm thấy đây là một lỗi. Cố gắng kết nối lại để tiếp tục chỉnh sửa.", + "pad.modals.corruptPad.explanation": "Các phím bạn đang cố truy cập bị hỏng.", + "pad.modals.corruptPad.cause": "Điều này có thể là do một cấu hình máy chủ sai hoặc một số hành vi không mong muốn khác. Xin vui lòng liên hệ với người quản trị dịch vụ.", + "pad.modals.deleted": "Đã xóa", + "pad.modals.deleted.explanation": "Pad này đã được gỡ", + "pad.modals.disconnected": "Bạn đã ngắt kết nối", + "pad.modals.disconnected.explanation": "Kết nối tới máy chủ đã bị mất", + "pad.modals.disconnected.cause": "Hệ phục vụ có thể không sẵn dùng. Xin vui lòng thông báo cho người quản trị dịch vụ nếu điều này tiếp tục xảy ra.", + "pad.share": "Chia sẻ pad này", + "pad.share.readonly": "Chỉ đọc", + "pad.share.link": "Liên kết", + "pad.share.emebdcode": "URL nhúng", + "pad.chat": "Trò chuyện", + "pad.chat.title": "Mở trò chuyện cho pad này.", + "pad.chat.loadmessages": "Tải thêm tin nhắn", + "timeslider.pageTitle": "Thanh thời gian của {{appTitle}}", + "timeslider.toolbar.returnbutton": "Trở về pad", + "timeslider.toolbar.authors": "Tác giả:", + "timeslider.toolbar.authorsList": "Không có tác giả", + "timeslider.toolbar.exportlink.title": "Xuất", + "timeslider.exportCurrent": "Xuất phiên bản hiện tại thành:", + "timeslider.version": "Phiên bản {{version}}", + "timeslider.saved": "Đã lưu vào ngày {{day}} {{month}} năm {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Tháng Giêng", + "timeslider.month.february": "Tháng Hai", + "timeslider.month.march": "Tháng Ba", + "timeslider.month.april": "Tháng Tư", + "timeslider.month.may": "Tháng Năm", + "timeslider.month.june": "Tháng Sáu", + "timeslider.month.july": "Tháng Bảy", + "timeslider.month.august": "Tháng Tám", + "timeslider.month.september": "Tháng Chín", + "timeslider.month.october": "Tháng Mười", + "timeslider.month.november": "Tháng Mười Một", + "timeslider.month.december": "Tháng Mười Hai", + "timeslider.unnamedauthors": "Không tên {{in a}} {[plural(num) một: tác giả, khác: tác giả]}", + "pad.savedrevs.marked": "Phiên bản này đã được đánh dấu là một phiên bản đã lưu", + "pad.userlist.entername": "Nhập tên của bạn", + "pad.userlist.unnamed": "Không tên", + "pad.userlist.guest": "Khách", + "pad.userlist.deny": "Chặn", + "pad.userlist.approve": "Chấp nhận", + "pad.editbar.clearcolors": "Xóa màu chỉ tác giả trên toàn bộ tài liệu?", + "pad.impexp.importbutton": "Nhập ngay bây giờ", + "pad.impexp.importing": "Đang nhập…", + "pad.impexp.confirmimport": "Nhập một tập tin sẽ ghi đè nội dung hiện tại của pad. Bạn có muốn làm như vậy không?", + "pad.impexp.convertFailed": "Chúng tôi không thể nhập tập tin này. Hãy sử dụng định dạng tập tin khác hay sao chéo và dán một cách thủ công.", + "pad.impexp.uploadFailed": "Tải lên không thành công, vui lòng thử lại", + "pad.impexp.importfailed": "Nhập thất bại", + "pad.impexp.copypaste": "Xin vui lòng sao chép và dán", + "pad.impexp.exportdisabled": "Xuất ra định dạng {{type}} đã bị vô hiệu hóa. Xin hãy liên hệ với quản trị viên hệ thống để biết thêm thông tin chi tiết." +}
\ No newline at end of file diff --git a/src/locales/zh-hans.json b/src/locales/zh-hans.json index 7e29a3ae..a463ad9a 100644 --- a/src/locales/zh-hans.json +++ b/src/locales/zh-hans.json @@ -1,114 +1,131 @@ { - "@metadata": { - "authors": [ - "Dimension", - "Hydra", - "\u4e4c\u62c9\u8de8\u6c2a", - "\u71c3\u7389" - ] - }, - "index.newPad": "\u65b0\u8bb0\u4e8b\u672c", - "pad.toolbar.bold.title": "\u7c97\u4f53\uff08Ctrl-B\uff09", - "pad.toolbar.italic.title": "\u659c\u4f53 (Ctrl-I)", - "pad.toolbar.underline.title": "\u5e95\u7ebf\uff08Ctrl-U\uff09", - "pad.toolbar.strikethrough.title": "\u5220\u9664\u7ebf", - "pad.toolbar.ol.title": "\u6709\u5e8f\u5217\u8868", - "pad.toolbar.ul.title": "\u65e0\u5e8f\u5217\u8868", - "pad.toolbar.indent.title": "\u7f29\u6392", - "pad.toolbar.unindent.title": "\u51f8\u6392", - "pad.toolbar.undo.title": "\u64a4\u6d88 (Ctrl-Z)", - "pad.toolbar.redo.title": "\u91cd\u505a (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "\u6e05\u9664\u4f5c\u540d\u989c\u8272", - "pad.toolbar.timeslider.title": "\u65f6\u95f4\u8f74", - "pad.toolbar.savedRevision.title": "\u5df2\u4fdd\u5b58\u7684\u4fee\u8ba2", - "pad.toolbar.settings.title": "\u8bbe\u7f6e", - "pad.toolbar.embed.title": "\u5d4c\u5165\u6b64\u8bb0\u4e8b\u672c", - "pad.toolbar.showusers.title": "\u663e\u793a\u6b64\u8bb0\u4e8b\u672c\u7684\u7528\u6237", - "pad.colorpicker.save": "\u4fdd\u5b58", - "pad.colorpicker.cancel": "\u53d6\u6d88", - "pad.loading": "\u8f7d\u5165\u4e2d\u2026\u2026", - "pad.passwordRequired": "\u60a8\u9700\u8981\u4e00\u4e2a\u89c2\u770b\u8fd9\u4e2a\u8bb0\u4e8b\u672c\u7684\u5bc6\u7801", - "pad.permissionDenied": "\u60a8\u6ca1\u6709\u89c2\u770b\u8fd9\u4e2a\u8bb0\u4e8b\u672c\u7684\u6743\u9650", - "pad.wrongPassword": "\u60a8\u7684\u5bc6\u7801\u9519\u4e86", - "pad.settings.padSettings": "\u8bb0\u4e8b\u672c\u8bbe\u7f6e", - "pad.settings.myView": "\u6211\u7684\u89c6\u7a97", - "pad.settings.stickychat": "\u603b\u662f\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u804a\u5929", - "pad.settings.colorcheck": "\u4f5c\u8005\u989c\u8272", - "pad.settings.linenocheck": "\u884c\u53f7", - "pad.settings.fontType": "\u5b57\u4f53\u7c7b\u578b\uff1a", - "pad.settings.fontType.normal": "\u6b63\u5e38", - "pad.settings.fontType.monospaced": "\u7b49\u5bbd\u5b57\u4f53", - "pad.settings.globalView": "\u6240\u6709\u4eba\u7684\u89c6\u7a97", - "pad.settings.language": "\u8bed\u8a00\uff1a", - "pad.importExport.import_export": "\u5bfc\u5165\/\u5bfc\u51fa", - "pad.importExport.import": "\u4e0a\u8f7d\u4efb\u4f55\u6587\u5b57\u6863\u6216\u6587\u6863", - "pad.importExport.importSuccessful": "\u6210\u529f\uff01", - "pad.importExport.export": "\u5bfc\u51fa\u76ee\u524d\u7684\u8bb0\u4e8b\u7c3f\u4e3a\uff1a", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\u7eaf\u6587\u672c", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF\uff08\u5f00\u653e\u6587\u6863\u683c\u5f0f\uff09", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.modals.connected": "\u5df2\u8fde\u63a5\u3002", - "pad.modals.reconnecting": "\u91cd\u65b0\u8fde\u63a5\u5230\u60a8\u7684\u8bb0\u4e8b\u7c3f...", - "pad.modals.forcereconnect": "\u5f3a\u5236\u91cd\u65b0\u8fde\u63a5", - "pad.modals.userdup": "\u5728\u53e6\u4e00\u4e2a\u89c6\u7a97\u4e2d\u6253\u5f00", - "pad.modals.userdup.explanation": "\u6b64\u8bb0\u4e8b\u7c3f\u4f3c\u4e4e\u5728\u6b64\u7535\u8111\u4e0a\u5728\u591a\u4e2a\u6d4f\u89c8\u5668\u89c6\u7a97\u4e2d\u6253\u5f00\u3002", - "pad.modals.userdup.advice": "\u91cd\u65b0\u8fde\u63a5\u5230\u6b64\u89c6\u7a97\u3002", - "pad.modals.unauth": "\u672a\u6388\u6743", - "pad.modals.looping": "\u5df2\u79bb\u7ebf\u3002", - "pad.modals.initsocketfail": "\u65e0\u6cd5\u8bbf\u95ee\u670d\u52a1\u5668\u3002", - "pad.modals.initsocketfail.explanation": "\u65e0\u6cd5\u8fde\u63a5\u5230\u540c\u6b65\u670d\u52a1\u5668\u3002", - "pad.modals.initsocketfail.cause": "\u8fd9\u53ef\u80fd\u662f\u7531\u4e8e\u60a8\u7684\u6d4f\u89c8\u5668\u6216\u60a8\u7684\u4e92\u8054\u7f51\u8fde\u63a5\u7684\u95ee\u9898\u3002", - "pad.modals.slowcommit": "\u5df2\u79bb\u7ebf\u3002", - "pad.modals.slowcommit.explanation": "\u670d\u52a1\u5668\u6ca1\u6709\u54cd\u5e94\u3002", - "pad.modals.slowcommit.cause": "\u8fd9\u53ef\u80fd\u662f\u7531\u4e8e\u7f51\u7edc\u8fde\u63a5\u95ee\u9898\u3002", - "pad.modals.deleted": "\u5df2\u522a\u9664\u3002", - "pad.modals.deleted.explanation": "\u6b64\u8bb0\u4e8b\u672c\u5df2\u88ab\u79fb\u9664\u3002", - "pad.modals.disconnected": "\u60a8\u5df2\u88ab\u79bb\u7ebf\u3002", - "pad.modals.disconnected.explanation": "\u5230\u670d\u52a1\u5668\u7684\u8fde\u63a5\u5df2\u4e22\u5931", - "pad.modals.disconnected.cause": "\u670d\u52a1\u5668\u53ef\u80fd\u65e0\u6cd5\u4f7f\u7528\u3002\u82e5\u6b64\u60c5\u51b5\u6301\u7eed\u53d1\u751f\uff0c\u8bf7\u901a\u77e5\u6211\u4eec\u3002", - "pad.share": "\u5206\u4eab\u6b64\u8bb0\u4e8b\u672c", - "pad.share.readonly": "\u53ea\u80fd\u8bfb", - "pad.share.link": "\u94fe\u63a5", - "pad.share.emebdcode": "\u5d4c\u5165\u7f51\u5740", - "pad.chat": "\u804a\u5929", - "pad.chat.title": "\u6253\u5f00\u6b64\u8bb0\u4e8b\u7c3f\u7684\u804a\u5929\u3002", - "pad.chat.loadmessages": "\u52a0\u8f7d\u66f4\u591a\u4fe1\u606f", - "timeslider.toolbar.returnbutton": "\u8fd4\u56de\u8bb0\u4e8b\u672c", - "timeslider.toolbar.authors": "\u4f5c\u8005\uff1a", - "timeslider.toolbar.authorsList": "\u6ca1\u6709\u4f5c\u8005", - "timeslider.toolbar.exportlink.title": "\u5bfc\u51fa", - "timeslider.exportCurrent": "\u5bfc\u51fa\u76ee\u524d\u7248\u672c\u4e3a\uff1a", - "timeslider.version": "\u7b2c {{version}} \u7248\u672c", - "timeslider.saved": "\u5728{{year}}\u5e74{{month}}{{day}}\u65e5\u4fdd\u5b58", - "timeslider.month.january": "\u4e00\u6708", - "timeslider.month.february": "\u4e8c\u6708", - "timeslider.month.march": "\u4e09\u6708", - "timeslider.month.april": "\u56db\u6708", - "timeslider.month.may": "\u4e94\u6708", - "timeslider.month.june": "\u516d\u6708", - "timeslider.month.july": "\u4e03\u6708", - "timeslider.month.august": "\u516b\u6708", - "timeslider.month.september": "\u4e5d\u6708", - "timeslider.month.october": "\u5341\u6708", - "timeslider.month.november": "\u5341\u4e00\u6708", - "timeslider.month.december": "\u5341\u4e8c\u6708", - "timeslider.unnamedauthor": "{{num}}\u533f\u540d\u4f5c\u8005", - "timeslider.unnamedauthors": "{{num}}\u533f\u540d\u4f5c\u8005", - "pad.savedrevs.marked": "\u6b64\u4fee\u8ba2\u5df2\u6807\u8bb0\u4e3a\u4fdd\u5b58\u4fee\u8ba2", - "pad.userlist.entername": "\u8f93\u5165\u60a8\u7684\u59d3\u540d", - "pad.userlist.unnamed": "\u65e0\u540d", - "pad.userlist.guest": "\u8bbf\u5ba2", - "pad.userlist.deny": "\u62d2\u7edd", - "pad.userlist.approve": "\u6279\u51c6", - "pad.editbar.clearcolors": "\u6e05\u9664\u6574\u4e2a\u6587\u6863\u7684\u4f5c\u8005\u989c\u8272\u5417\uff1f", - "pad.impexp.importbutton": "\u73b0\u5728\u5bfc\u5165", - "pad.impexp.importing": "\u6b63\u5728\u5bfc\u5165...", - "pad.impexp.convertFailed": "\u6211\u4eec\u65e0\u6cd5\u5bfc\u5165\u6b64\u6587\u6863\u3002\u8bf7\u4f7f\u7528\u4ed6\u6587\u6863\u683c\u5f0f\u6216\u624b\u52a8\u590d\u5236\u8d34\u4e0a\u3002", - "pad.impexp.uploadFailed": "\u4e0a\u8f7d\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5", - "pad.impexp.importfailed": "\u5bfc\u5165\u5931\u8d25", - "pad.impexp.copypaste": "\u8bf7\u590d\u5236\u7c98\u8d34", - "pad.impexp.exportdisabled": "{{type}} \u683c\u5f0f\u7684\u5bfc\u51fa\u88ab\u7981\u7528\u3002\u6709\u5173\u8be6\u60c5\uff0c\u8bf7\u4e0e\u60a8\u7684\u7cfb\u7edf\u7ba1\u7406\u5458\u8054\u7cfb\u3002" + "@metadata": { + "authors": [ + "Dimension", + "Hydra", + "Hzy980512", + "Liuxinyu970226", + "Qiyue2001", + "Shangkuanlc", + "Shizhao", + "Yfdyh000", + "乌拉跨氪", + "燃玉" + ] + }, + "index.newPad": "新记事本", + "index.createOpenPad": "或者创建/打开带名字的记事本:", + "pad.toolbar.bold.title": "粗体(Ctrl-B)", + "pad.toolbar.italic.title": "斜体 (Ctrl-I)", + "pad.toolbar.underline.title": "下划线(Ctrl-U)", + "pad.toolbar.strikethrough.title": "删除线", + "pad.toolbar.ol.title": "有序列表", + "pad.toolbar.ul.title": "无序列表", + "pad.toolbar.indent.title": "增加缩进", + "pad.toolbar.unindent.title": "减少缩进", + "pad.toolbar.undo.title": "撤消 (Ctrl-Z)", + "pad.toolbar.redo.title": "重做 (Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "清除作者颜色", + "pad.toolbar.import_export.title": "从不同的文件格式导入/导出", + "pad.toolbar.timeslider.title": "时间轴", + "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.passwordRequired": "您需要密码才能访问这个记事本", + "pad.permissionDenied": "您没有访问这个记事本的权限", + "pad.wrongPassword": "您的密码错了", + "pad.settings.padSettings": "记事本设置", + "pad.settings.myView": "我的视窗", + "pad.settings.stickychat": "总是显示聊天屏幕", + "pad.settings.colorcheck": "作者颜色", + "pad.settings.linenocheck": "行号", + "pad.settings.rtlcheck": "从右到左阅读内容吗?", + "pad.settings.fontType": "字体类型:", + "pad.settings.fontType.normal": "正常", + "pad.settings.fontType.monospaced": "等宽字体", + "pad.settings.globalView": "所有人视窗", + "pad.settings.language": "语言:", + "pad.importExport.import_export": "导入/导出", + "pad.importExport.import": "上载任何文本文件或档案", + "pad.importExport.importSuccessful": "成功!", + "pad.importExport.export": "当前记事本导出为:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "纯文本", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF(开放文档格式)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "您只能导入纯文本或HTML格式。\u003Ca 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\"\u003E安裝abiword\u003C/a\u003E取得更多高级的导入功能。", + "pad.modals.connected": "已连接。", + "pad.modals.reconnecting": "重新连接到您的记事本...", + "pad.modals.forcereconnect": "强制重新连接", + "pad.modals.userdup": "在另一个窗口中打开", + "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": "链接", + "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.saved": "在{{year}}年{{month}}{{day}}日保存", + "timeslider.dateformat": "{{year}}年{{month}}{{day}}日 {{hours}}时:{{minutes}}分:{{seconds}}秒", + "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": "十二月", + "timeslider.unnamedauthors": "{{num}}个匿名作者", + "pad.savedrevs.marked": "这一修订现在被标记为已保存的修订版本", + "pad.userlist.entername": "输入您的姓名", + "pad.userlist.unnamed": "匿名", + "pad.userlist.guest": "访客", + "pad.userlist.deny": "拒绝", + "pad.userlist.approve": "批准", + "pad.editbar.clearcolors": "清除整个文档的作者颜色吗?", + "pad.impexp.importbutton": "现在导入", + "pad.impexp.importing": "正在导入...", + "pad.impexp.confirmimport": "导入的文件将覆盖记事本的当前文本。你确定要继续吗?", + "pad.impexp.convertFailed": "我们无法导入此文档。请使用他文档格式或手动复制贴上。", + "pad.impexp.uploadFailed": "上载失败,请重试", + "pad.impexp.importfailed": "导入失败", + "pad.impexp.copypaste": "请复制粘贴", + "pad.impexp.exportdisabled": "{{type}} 格式的导出被禁用。有关详情,请与您的系统管理员联系。" }
\ No newline at end of file diff --git a/src/locales/zh-hant.json b/src/locales/zh-hant.json index a5027a52..75431c24 100644 --- a/src/locales/zh-hant.json +++ b/src/locales/zh-hant.json @@ -1,120 +1,126 @@ { - "@metadata": { - "authors": { - "1": "Simon Shek" - } - }, - "index.newPad": "\u65b0Pad", - "index.createOpenPad": "\u6216\u5275\u5efa\uff0f\u958b\u555f\u4ee5\u4e0b\u540d\u7a31\u7684pad\uff1a", - "pad.toolbar.bold.title": "\u7c97\u9ad4\uff08Ctrl-B\uff09", - "pad.toolbar.italic.title": "\u659c\u9ad4\uff08Ctrl-I\uff09", - "pad.toolbar.underline.title": "\u5e95\u7dda\uff08Ctrl-U\uff09", - "pad.toolbar.strikethrough.title": "\u522a\u9664\u7dda", - "pad.toolbar.ol.title": "\u6709\u5e8f\u6e05\u55ae", - "pad.toolbar.ul.title": "\u7121\u5e8f\u6e05\u55ae", - "pad.toolbar.indent.title": "\u7e2e\u6392", - "pad.toolbar.unindent.title": "\u51f8\u6392", - "pad.toolbar.undo.title": "\u64a4\u92b7\uff08Ctrl-Z\uff09", - "pad.toolbar.redo.title": "\u91cd\u505a\uff08Ctrl-Y\uff09", - "pad.toolbar.clearAuthorship.title": "\u6e05\u9664\u4f5c\u540d\u984f\u8272", - "pad.toolbar.import_export.title": "\u4ee5\u5176\u4ed6\u6a94\u6848\u683c\u5f0f\u5c0e\u5165\uff0f\u532f\u51fa", - "pad.toolbar.timeslider.title": "\u6642\u9593\u8ef8", - "pad.toolbar.savedRevision.title": "\u5df2\u5132\u5b58\u7684\u4fee\u8a02", - "pad.toolbar.settings.title": "\u8a2d\u5b9a", - "pad.toolbar.embed.title": "\u5d4c\u5165\u6b64pad", - "pad.toolbar.showusers.title": "\u986f\u793a\u6b64pad\u7684\u7528\u6236", - "pad.colorpicker.save": "\u5132\u5b58", - "pad.colorpicker.cancel": "\u53d6\u6d88", - "pad.loading": "\u8f09\u5165\u4e2d...", - "pad.passwordRequired": "\u60a8\u9700\u8981\u5bc6\u78bc\u624d\u80fd\u8a2a\u554f\u9019\u500bpad", - "pad.permissionDenied": "\u4f60\u6c92\u6709\u8a2a\u554f\u9019\u500bpad\u7684\u6b0a\u9650", - "pad.wrongPassword": "\u5bc6\u78bc\u932f\u8aa4", - "pad.settings.padSettings": "Pad\u8a2d\u5b9a", - "pad.settings.myView": "\u6211\u7684\u8996\u7a97", - "pad.settings.stickychat": "\u6c38\u9060\u5728\u5c4f\u5e55\u4e0a\u986f\u793a\u804a\u5929", - "pad.settings.colorcheck": "\u4f5c\u8005\u984f\u8272", - "pad.settings.linenocheck": "\u884c\u865f", - "pad.settings.fontType": "\u5b57\u9ad4\u985e\u578b\uff1a", - "pad.settings.fontType.normal": "\u6b63\u5e38", - "pad.settings.fontType.monospaced": "\u7b49\u5bec", - "pad.settings.globalView": "\u6240\u6709\u4eba\u7684\u8996\u7a97", - "pad.settings.language": "\u8a9e\u8a00\uff1a", - "pad.importExport.import_export": "\u5c0e\u5165\uff0f\u532f\u51fa", - "pad.importExport.import": "\u4e0a\u8f09\u4efb\u4f55\u6587\u5b57\u6a94\u6216\u6587\u6a94", - "pad.importExport.importSuccessful": "\u5b8c\u6210\uff01", - "pad.importExport.export": "\u532f\u51fa\u7576\u524dpad\u70ba\uff1a", - "pad.importExport.exporthtml": "HTML", - "pad.importExport.exportplain": "\u7d14\u6587\u5b57", - "pad.importExport.exportword": "Microsoft Word", - "pad.importExport.exportpdf": "PDF", - "pad.importExport.exportopen": "ODF\uff08\u958b\u653e\u6587\u4ef6\u683c\u5f0f\uff09", - "pad.importExport.exportdokuwiki": "DokuWiki", - "pad.importExport.abiword.innerHTML": "\u60a8\u53ea\u53ef\u4ee5\u7d14\u6587\u5b57\u6216html\u683c\u5f0f\u6a94\u532f\u5165\u3002<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\">\u5b89\u88ddabiword<\/a>\u53d6\u5f97\u66f4\u591a\u9032\u968e\u7684\u532f\u5165\u529f\u80fd\u3002", - "pad.modals.connected": "\u5df2\u9023\u7dda\u3002", - "pad.modals.reconnecting": "\u91cd\u65b0\u9023\u63a5\u5230\u60a8\u7684pad...", - "pad.modals.forcereconnect": "\u5f37\u5236\u91cd\u65b0\u9023\u7dda", - "pad.modals.userdup": "\u5728\u53e6\u4e00\u500b\u8996\u7a97\u4e2d\u958b\u555f", - "pad.modals.userdup.explanation": "\u6b64pad\u4f3c\u4e4e\u5728\u6b64\u96fb\u8166\u4e0a\u7684\u591a\u500b\u700f\u89bd\u5668\u8996\u7a97\u4e2d\u958b\u555f\u3002", - "pad.modals.userdup.advice": "\u91cd\u65b0\u9023\u63a5\u5230\u6b64\u8996\u7a97\u3002", - "pad.modals.unauth": "\u672a\u6388\u6b0a", - "pad.modals.unauth.explanation": "\u60a8\u7684\u6b0a\u9650\u5728\u67e5\u770b\u6b64\u9801\u6642\u767c\u751f\u66f4\u6539\u3002\u8acb\u5617\u8a66\u91cd\u65b0\u9023\u63a5\u3002", - "pad.modals.looping": "\u5df2\u96e2\u7dda\u3002", - "pad.modals.looping.explanation": "\u8207\u540c\u6b65\u4f3a\u670d\u5668\u9593\u6709\u901a\u4fe1\u554f\u984c\u3002", - "pad.modals.looping.cause": "\u4e5f\u8a31\u60a8\u901a\u904e\u4e00\u500b\u4e0d\u76f8\u5bb9\u7684\u9632\u706b\u7246\u6216\u4ee3\u7406\u4f3a\u670d\u5668\u9023\u63a5\u3002", - "pad.modals.initsocketfail": "\u7121\u6cd5\u8a2a\u554f\u4f3a\u670d\u5668\u3002", - "pad.modals.initsocketfail.explanation": "\u7121\u6cd5\u9023\u63a5\u5230\u540c\u6b65\u4f3a\u670d\u5668\u3002", - "pad.modals.initsocketfail.cause": "\u53ef\u80fd\u662f\u7531\u65bc\u60a8\u7684\u700f\u89bd\u5668\u6216\u60a8\u7684\u4e92\u806f\u7db2\u9023\u63a5\u7684\u554f\u984c\u3002", - "pad.modals.slowcommit": "\u5df2\u96e2\u7dda\u3002", - "pad.modals.slowcommit.explanation": "\u4f3a\u670d\u5668\u6c92\u6709\u56de\u61c9\u3002", - "pad.modals.slowcommit.cause": "\u53ef\u80fd\u662f\u7531\u65bc\u7db2\u8def\u9023\u63a5\u554f\u984c\u3002", - "pad.modals.deleted": "\u5df2\u522a\u9664\u3002", - "pad.modals.deleted.explanation": "\u6b64pad\u5df2\u88ab\u79fb\u9664\u3002", - "pad.modals.disconnected": "\u60a8\u5df2\u4e2d\u65b7\u9023\u7dda\u3002", - "pad.modals.disconnected.explanation": "\u4f3a\u670d\u5668\u9023\u63a5\u66fe\u4e2d\u65b7", - "pad.modals.disconnected.cause": "\u4f3a\u670d\u5668\u53ef\u80fd\u7121\u6cd5\u4f7f\u7528\u3002\u82e5\u6b64\u60c5\u6cc1\u6301\u7e8c\u767c\u751f\uff0c\u8acb\u901a\u77e5\u6211\u5011\u3002", - "pad.share": "\u5206\u4eab\u6b64pad", - "pad.share.readonly": "\u552f\u8b80", - "pad.share.link": "\u9023\u7d50", - "pad.share.emebdcode": "\u5d4c\u5165\u7db2\u5740", - "pad.chat": "\u804a\u5929", - "pad.chat.title": "\u6253\u958b\u6b64pad\u7684\u804a\u5929\u3002", - "pad.chat.loadmessages": "\u8f09\u5165\u66f4\u591a\u8a0a\u606f", - "timeslider.pageTitle": "{{appTitle}}\u6642\u9593\u8ef8", - "timeslider.toolbar.returnbutton": "\u8fd4\u56de\u5230pad", - "timeslider.toolbar.authors": "\u4f5c\u8005\uff1a", - "timeslider.toolbar.authorsList": "\u7121\u4f5c\u8005", - "timeslider.toolbar.exportlink.title": "\u532f\u51fa", - "timeslider.exportCurrent": "\u532f\u51fa\u7576\u524d\u7248\u672c\u70ba\uff1a", - "timeslider.version": "\u7248\u672c{{version}}", - "timeslider.saved": "{{year}}{{month}}{{day}}\u4fdd\u5b58", - "timeslider.dateformat": "{{year}}{{month}}{{day}} {{hours}}:{{minutes}}:{{seconds}}", - "timeslider.month.january": "1\u6708", - "timeslider.month.february": "2\u6708", - "timeslider.month.march": "3\u6708", - "timeslider.month.april": "4\u6708", - "timeslider.month.may": "5\u6708", - "timeslider.month.june": "6\u6708", - "timeslider.month.july": "7\u6708", - "timeslider.month.august": "8\u6708", - "timeslider.month.september": "9\u6708", - "timeslider.month.october": "10\u6708", - "timeslider.month.november": "11\u6708", - "timeslider.month.december": "12\u6708", - "timeslider.unnamedauthor": "{{num}} \u533f\u540d\u4f5c\u8005", - "timeslider.unnamedauthors": "{{num}} \u533f\u540d\u4f5c\u8005", - "pad.savedrevs.marked": "\u6b64\u4fee\u8a02\u5df2\u6a19\u8a18\u70ba\u5df2\u4fdd\u5b58\u3002", - "pad.userlist.entername": "\u8f38\u5165\u60a8\u7684\u59d3\u540d", - "pad.userlist.unnamed": "\u672a\u547d\u540d", - "pad.userlist.guest": "\u8a2a\u5ba2", - "pad.userlist.deny": "\u62d2\u7d55", - "pad.userlist.approve": "\u6279\u51c6", - "pad.editbar.clearcolors": "\u6e05\u9664\u6574\u500b\u6587\u6a94\u7684\u4f5c\u8005\u984f\u8272\u55ce\uff1f", - "pad.impexp.importbutton": "\u73fe\u5728\u532f\u5165", - "pad.impexp.importing": "\u532f\u5165\u4e2d...", - "pad.impexp.confirmimport": "\u532f\u5165\u7684\u6a94\u6848\u5c07\u6703\u8986\u84cbpad\u5167\u76ee\u524d\u7684\u6587\u5b57\u3002\u60a8\u78ba\u5b9a\u8981\u7e7c\u7e8c\u55ce\uff1f", - "pad.impexp.convertFailed": "\u672a\u80fd\u532f\u5165\u6b64\u6a94\u6848\u3002\u8acb\u4ee5\u5176\u4ed6\u6a94\u6848\u683c\u5f0f\u6216\u624b\u52d5\u8907\u88fd\u8cbc\u4e0a\u532f\u5165\u3002", - "pad.impexp.uploadFailed": "\u4e0a\u8f09\u5931\u6557\uff0c\u8acb\u91cd\u8a66", - "pad.impexp.importfailed": "\u532f\u5165\u5931\u6557", - "pad.impexp.copypaste": "\u8acb\u8907\u88fd\u8cbc\u4e0a", - "pad.impexp.exportdisabled": "{{type}}\u683c\u5f0f\u7684\u532f\u51fa\u88ab\u7981\u7528\u3002\u6709\u95dc\u8a73\u60c5\uff0c\u8acb\u8207\u60a8\u7684\u7cfb\u7d71\u7ba1\u7406\u54e1\u806f\u7e6b\u3002" + "@metadata": { + "authors": { + "0": "Justincheng12345", + "1": "Liuxinyu970226", + "2": "Shangkuanlc", + "3": "Shirayuki", + "5": "Simon Shek" + } + }, + "index.newPad": "新Pad", + "index.createOpenPad": "或創建/開啟以下名稱的pad:", + "pad.toolbar.bold.title": "粗體(Ctrl-B)", + "pad.toolbar.italic.title": "斜體(Ctrl-I)", + "pad.toolbar.underline.title": "底線(Ctrl-U)", + "pad.toolbar.strikethrough.title": "刪除線", + "pad.toolbar.ol.title": "有序清單", + "pad.toolbar.ul.title": "無序清單", + "pad.toolbar.indent.title": "縮排(TAB)", + "pad.toolbar.unindent.title": "凸排(Shift+TAB)", + "pad.toolbar.undo.title": "撤銷(Ctrl-Z)", + "pad.toolbar.redo.title": "重做(Ctrl-Y)", + "pad.toolbar.clearAuthorship.title": "清除協作者顏色區別", + "pad.toolbar.import_export.title": "以其他檔案格式匯入/匯出", + "pad.toolbar.timeslider.title": "時間軸", + "pad.toolbar.savedRevision.title": "儲存修訂", + "pad.toolbar.settings.title": "設定", + "pad.toolbar.embed.title": "分享和嵌入此pad", + "pad.toolbar.showusers.title": "顯示此pad的用戶", + "pad.colorpicker.save": "儲存", + "pad.colorpicker.cancel": "取消", + "pad.loading": "載入中...", + "pad.passwordRequired": "您需要密碼才能訪問這個pad", + "pad.permissionDenied": "你沒有訪問這個pad的權限", + "pad.wrongPassword": "密碼錯誤", + "pad.settings.padSettings": "Pad設定", + "pad.settings.myView": "我的視窗", + "pad.settings.stickychat": "永遠在屏幕上顯示聊天", + "pad.settings.colorcheck": "協作者顏色", + "pad.settings.linenocheck": "行號", + "pad.settings.rtlcheck": "從右至左讀取內容?", + "pad.settings.fontType": "字體類型:", + "pad.settings.fontType.normal": "正常", + "pad.settings.fontType.monospaced": "等寬", + "pad.settings.globalView": "所有人的視窗", + "pad.settings.language": "語言:", + "pad.importExport.import_export": "匯入/匯出", + "pad.importExport.import": "上載任何文字檔或文檔", + "pad.importExport.importSuccessful": "完成!", + "pad.importExport.export": "匯出當前pad為:", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "純文字", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF(開放文件格式)", + "pad.importExport.exportdokuwiki": "DokuWiki", + "pad.importExport.abiword.innerHTML": "您只可以純文字或html格式檔匯入。\u003Ca 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\"\u003E安裝abiword\u003C/a\u003E取得更多進階的匯入功能。", + "pad.modals.connected": "已連線。", + "pad.modals.reconnecting": "重新連接到您的pad...", + "pad.modals.forcereconnect": "強制重新連線", + "pad.modals.userdup": "在另一個視窗中開啟", + "pad.modals.userdup.explanation": "此pad似乎在此電腦上的多個瀏覽器視窗中開啟。", + "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已被移除。", + "pad.modals.disconnected": "您已中斷連線。", + "pad.modals.disconnected.explanation": "伺服器連接曾中斷", + "pad.modals.disconnected.cause": "伺服器可能無法使用。若此情況持續發生,請通知伺服器管理員。", + "pad.share": "分享此pad", + "pad.share.readonly": "唯讀", + "pad.share.link": "連結", + "pad.share.emebdcode": "嵌入網址", + "pad.chat": "聊天功能", + "pad.chat.title": "打開pad聊天功能", + "pad.chat.loadmessages": "載入更多訊息", + "timeslider.pageTitle": "{{appTitle}}時間軸", + "timeslider.toolbar.returnbutton": "返回到pad", + "timeslider.toolbar.authors": "協作者:", + "timeslider.toolbar.authorsList": "無協作者", + "timeslider.toolbar.exportlink.title": "匯出", + "timeslider.exportCurrent": "匯出當前版本為:", + "timeslider.version": "版本{{version}}", + "timeslider.saved": "{{year}}年{{month}}月{{day}}日儲存", + "timeslider.dateformat": "{{year}}年{{month}}月{{day}}日 {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "1月", + "timeslider.month.february": "2月", + "timeslider.month.march": "3月", + "timeslider.month.april": "4月", + "timeslider.month.may": "5月", + "timeslider.month.june": "6月", + "timeslider.month.july": "7月", + "timeslider.month.august": "8月", + "timeslider.month.september": "9月", + "timeslider.month.october": "10月", + "timeslider.month.november": "11月", + "timeslider.month.december": "12月", + "timeslider.unnamedauthors": "{{num}}匿名{[plural(num) 作者]}", + "pad.savedrevs.marked": "標記此修訂版本為已儲存修訂版本。", + "pad.userlist.entername": "輸入您的姓名", + "pad.userlist.unnamed": "未命名", + "pad.userlist.guest": "訪客", + "pad.userlist.deny": "拒絕", + "pad.userlist.approve": "批准", + "pad.editbar.clearcolors": "清除整個文檔的協作者顏色區別嗎?", + "pad.impexp.importbutton": "現在匯入", + "pad.impexp.importing": "匯入中...", + "pad.impexp.confirmimport": "匯入的檔案將會覆蓋pad內目前的文字。您確定要繼續嗎?", + "pad.impexp.convertFailed": "未能匯入此檔案。請以其他檔案格式或手動複製貼上匯入。", + "pad.impexp.uploadFailed": "上載失敗,請重試", + "pad.impexp.importfailed": "匯入失敗", + "pad.impexp.copypaste": "請複製貼上", + "pad.impexp.exportdisabled": "{{type}}格式的匯出被禁用。有關詳情,請與您的系統管理員聯繫。" }
\ No newline at end of file diff --git a/src/node/db/API.js b/src/node/db/API.js index 7a9ce41f..00be1918 100644 --- a/src/node/db/API.js +++ b/src/node/db/API.js @@ -75,6 +75,124 @@ exports.listSessionsOfAuthor = sessionManager.listSessionsOfAuthor; /************************/ /** +getAttributePool(padID) returns the attribute pool of a pad + +Example returns: +{ + "code":0, + "message":"ok", + "data": { + "pool":{ + "numToAttrib":{ + "0":["author","a.X4m8bBWJBZJnWGSh"], + "1":["author","a.TotfBPzov54ihMdH"], + "2":["author","a.StiblqrzgeNTbK05"], + "3":["bold","true"] + }, + "attribToNum":{ + "author,a.X4m8bBWJBZJnWGSh":0, + "author,a.TotfBPzov54ihMdH":1, + "author,a.StiblqrzgeNTbK05":2, + "bold,true":3 + }, + "nextNum":4 + } + } +} + +*/ +exports.getAttributePool = function (padID, callback) +{ + getPadSafe(padID, true, function(err, pad) + { + if (ERR(err, callback)) return; + callback(null, {pool: pad.pool}); + }); +} + +/** +getRevisionChangeset (padID, [rev]) + +get the changeset at a given revision, or last revision if 'rev' is not defined. + +Example returns: +{ + "code" : 0, + "message" : "ok", + "data" : "Z:1>6b|5+6b$Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at http://etherpad.org\n" +} + +*/ +exports.getRevisionChangeset = function(padID, rev, callback) +{ + // check if rev is set + if (typeof rev === "function") + { + callback = rev; + rev = undefined; + } + + // check if rev is a number + if (rev !== undefined && typeof rev !== "number") + { + // try to parse the number + if (!isNaN(parseInt(rev))) + { + rev = parseInt(rev); + } + else + { + callback(new customError("rev is not a number", "apierror")); + return; + } + } + + // ensure this is not a negative number + if (rev !== undefined && rev < 0) + { + callback(new customError("rev is not a negative number", "apierror")); + return; + } + + // ensure this is not a float value + if (rev !== undefined && !is_int(rev)) + { + callback(new customError("rev is a float value", "apierror")); + return; + } + + // get the pad + getPadSafe(padID, true, function(err, pad) + { + if(ERR(err, callback)) return; + + //the client asked for a special revision + if(rev !== undefined) + { + //check if this is a valid revision + if(rev > pad.getHeadRevisionNumber()) + { + callback(new customError("rev is higher than the head revision of the pad","apierror")); + return; + } + + //get the changeset for this revision + pad.getRevisionChangeset(rev, function(err, changeset) + { + if(ERR(err, callback)) return; + + callback(null, changeset); + }) + } + //the client wants the latest changeset, lets return it to him + else + { + callback(null, {"changeset": pad.getRevisionChangeset(pad.getHeadRevisionNumber())}); + } + }); +} + +/** getText(padID, [rev]) returns the text of a pad Example returns: @@ -326,8 +444,8 @@ exports.getChatHistory = function(padID, start, end, callback) // fall back to getting the whole chat-history if a parameter is missing if(!start || !end) { - start = 0; - end = pad.chatHead; + start = 0; + end = pad.chatHead; } if(start >= chatHead && chatHead > 0) @@ -439,6 +557,46 @@ exports.deletePad = function(padID, callback) } /** +copyPad(sourceID, destinationID[, force=false]) copies a pad. If force is true, + the destination will be overwritten if it exists. + +Example returns: + +{code: 0, message:"ok", data: {padID: destinationID}} +{code: 1, message:"padID does not exist", data: null} +*/ +exports.copyPad = function(sourceID, destinationID, force, callback) +{ + getPadSafe(sourceID, true, function(err, pad) + { + if(ERR(err, callback)) return; + + pad.copy(destinationID, force, callback); + }); +} + +/** +movePad(sourceID, destinationID[, force=false]) moves a pad. If force is true, + the destination will be overwritten if it exists. + +Example returns: + +{code: 0, message:"ok", data: {padID: destinationID}} +{code: 1, message:"padID does not exist", data: null} +*/ +exports.movePad = function(sourceID, destinationID, force, callback) +{ + getPadSafe(sourceID, true, function(err, pad) + { + if(ERR(err, callback)) return; + + pad.copy(destinationID, force, function(err) { + if(ERR(err, callback)) return; + pad.remove(callback); + }); + }); +} +/** getReadOnlyLink(padID) returns the read only link of a pad Example returns: @@ -664,7 +822,7 @@ createDiffHTML(padID, startRev, endRev) returns an object of diffs from 2 points Example returns: -{"code":0,"message":"ok","data":{"html":"<style>\n.authora_HKIv23mEbachFYfH {background-color: #a979d9}\n.authora_n4gEeMLsv1GivNeh {background-color: #a9b5d9}\n.removed {text-decoration: line-through; -ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)'; filter: alpha(opacity=80); opacity: 0.8; }\n</style>Welcome to Etherpad Lite!<br><br>This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!<br><br>Get involved with Etherpad at <a href=\"http://etherpad.org\">http://etherpad.org</a><br><span class=\"authora_HKIv23mEbachFYfH\">aw</span><br><br>","authors":["a.HKIv23mEbachFYfH",""]}} +{"code":0,"message":"ok","data":{"html":"<style>\n.authora_HKIv23mEbachFYfH {background-color: #a979d9}\n.authora_n4gEeMLsv1GivNeh {background-color: #a9b5d9}\n.removed {text-decoration: line-through; -ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)'; filter: alpha(opacity=80); opacity: 0.8; }\n</style>Welcome to Etherpad!<br><br>This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!<br><br>Get involved with Etherpad at <a href=\"http://etherpad.org\">http://etherpad.org</a><br><span class=\"authora_HKIv23mEbachFYfH\">aw</span><br><br>","authors":["a.HKIv23mEbachFYfH",""]}} {"code":4,"message":"no or wrong API Key","data":null} */ exports.createDiffHTML = function(padID, startRev, endRev, callback){ diff --git a/src/node/db/AuthorManager.js b/src/node/db/AuthorManager.js index 667e0605..5ba608e9 100644 --- a/src/node/db/AuthorManager.js +++ b/src/node/db/AuthorManager.js @@ -22,6 +22,7 @@ var ERR = require("async-stacktrace"); var db = require("./DB").db; var async = require("async"); +var customError = require("../utils/customError"); var randomString = require('ep_etherpad-lite/static/js/pad_utils').randomString; exports.getColorPalette = function(){ @@ -272,4 +273,4 @@ exports.removePad = function (authorID, padID) db.set("globalAuthor:" + authorID, author); } }); -}
\ No newline at end of file +} diff --git a/src/node/db/GroupManager.js b/src/node/db/GroupManager.js index 81b0cb9e..82c14c39 100644 --- a/src/node/db/GroupManager.js +++ b/src/node/db/GroupManager.js @@ -215,25 +215,32 @@ exports.createGroupIfNotExistsFor = function(groupMapper, callback) { if(ERR(err, callback)) return; + // there is a group for this mapper + if(groupID) { + exports.doesGroupExist(groupID, function(err, exists) { + if(ERR(err, callback)) return; + if(exists) return callback(null, {groupID: groupID}); + + // hah, the returned group doesn't exist, let's create one + createGroupForMapper(callback) + }) + } //there is no group for this mapper, let's create a group - if(groupID == null) - { + else { + createGroupForMapper(callback) + } + + function createGroupForMapper(cb) { exports.createGroup(function(err, responseObj) { - if(ERR(err, callback)) return; + if(ERR(err, cb)) return; //create the mapper entry for this group db.set("mapper2group:"+groupMapper, responseObj.groupID); - callback(null, responseObj); + cb(null, responseObj); }); } - //there is a group for this mapper, let's return it - else - { - if(ERR(err, callback)) return; - callback(null, {groupID: groupID}); - } }); } diff --git a/src/node/db/Pad.js b/src/node/db/Pad.js index 4701e82a..180517d1 100644 --- a/src/node/db/Pad.js +++ b/src/node/db/Pad.js @@ -13,6 +13,8 @@ var settings = require('../utils/Settings'); var authorManager = require("./AuthorManager"); var padManager = require("./PadManager"); var padMessageHandler = require("../handler/PadMessageHandler"); +var groupManager = require("./GroupManager"); +var customError = require("../utils/customError"); var readOnlyManager = require("./ReadOnlyManager"); var crypto = require("crypto"); var randomString = require("../utils/randomstring"); @@ -404,6 +406,152 @@ Pad.prototype.init = function init(text, callback) { }); }; +Pad.prototype.copy = function copy(destinationID, force, callback) { + var sourceID = this.id; + var _this = this; + + // make force optional + if (typeof force == "function") { + callback = force; + force = false; + } + else if (force == undefined || force.toLowerCase() != "true") { + force = false; + } + else force = true; + + //kick everyone from this pad + // TODO: this presents a message on the client saying that the pad was 'deleted'. Fix this? + padMessageHandler.kickSessionsFromPad(sourceID); + + // flush the source pad: + _this.saveToDatabase(); + + async.series([ + // if it's a group pad, let's make sure the group exists. + function(callback) + { + if (destinationID.indexOf("$") != -1) + { + groupManager.doesGroupExist(destinationID.split("$")[0], function (err, exists) + { + if(ERR(err, callback)) return; + + //group does not exist + if(exists == false) + { + callback(new customError("groupID does not exist for destinationID","apierror")); + return; + } + //everything is fine, continue + else + { + callback(); + } + }); + } + else + callback(); + }, + // if the pad exists, we should abort, unless forced. + function(callback) + { + console.log("destinationID", destinationID, force); + padManager.doesPadExists(destinationID, function (err, exists) + { + if(ERR(err, callback)) return; + + if(exists == true) + { + if (!force) + { + console.log("erroring out without force"); + callback(new customError("destinationID already exists","apierror")); + console.log("erroring out without force - after"); + return; + } + else // exists and forcing + { + padManager.getPad(destinationID, function(err, pad) { + if (ERR(err, callback)) return; + pad.remove(callback); + }); + } + } + else + { + callback(); + } + }); + }, + // copy the 'pad' entry + function(callback) + { + db.get("pad:"+sourceID, function(err, pad) { + db.set("pad:"+destinationID, pad); + }); + callback(); + }, + //copy all relations + function(callback) + { + async.parallel([ + //copy all chat messages + function(callback) + { + var chatHead = _this.chatHead; + + for(var i=0;i<=chatHead;i++) + { + db.get("pad:"+sourceID+":chat:"+i, function (err, chat) { + if (ERR(err, callback)) return; + db.set("pad:"+destinationID+":chat:"+i, chat); + }); + } + + callback(); + }, + //copy all revisions + function(callback) + { + var revHead = _this.head; + //console.log(revHead); + for(var i=0;i<=revHead;i++) + { + db.get("pad:"+sourceID+":revs:"+i, function (err, rev) { + //console.log("HERE"); + + if (ERR(err, callback)) return; + db.set("pad:"+destinationID+":revs:"+i, rev); + }); + } + + callback(); + }, + //add the new pad to all authors who contributed to the old one + function(callback) + { + var authorIDs = _this.getAllAuthors(); + + authorIDs.forEach(function (authorID) + { + console.log("authors"); + authorManager.addPad(authorID, destinationID); + }); + + callback(); + }, + // parallel + ], callback); + }, + // series + ], function(err) + { + if(ERR(err, callback)) return; + callback(null, {padID: destinationID}); + }); +}; + Pad.prototype.remove = function remove(callback) { var padID = this.id; var _this = this; @@ -487,7 +635,7 @@ Pad.prototype.remove = function remove(callback) { authorIDs.forEach(function (authorID) { - authorManager.removePad(authorID, padID); + authorManager.removePad(authorID, padID); }); callback(); diff --git a/src/node/db/PadManager.js b/src/node/db/PadManager.js index 5e0af464..2ecd6e27 100644 --- a/src/node/db/PadManager.js +++ b/src/node/db/PadManager.js @@ -24,7 +24,9 @@ var Pad = require("../db/Pad").Pad; var db = require("./DB").db; /** - * An Object containing all known Pads. Provides "get" and "set" functions, + * A cache of all loaded Pads. + * + * Provides "get" and "set" functions, * which should be used instead of indexing with brackets. These prepend a * colon to the key, to avoid conflicting with built-in Object methods or with * these functions themselves. @@ -37,39 +39,55 @@ var globalPads = { set: function (name, value) { this[':'+name] = value; - padList.addPad(name); }, - remove: function (name) { delete this[':'+name]; } + remove: function (name) { + delete this[':'+name]; + } }; +/** + * A cache of the list of all pads. + * + * Updated without db access as new pads are created/old ones removed. + */ var padList = { list: [], sorted : false, - init: function() + initiated: false, + init: function(cb) { db.findKeys("pad:*", "*:*:*", function(err, dbData) { - if(ERR(err)) return; + if(ERR(err, cb)) return; if(dbData != null){ + padList.initiated = true dbData.forEach(function(val){ padList.addPad(val.replace(/pad:/,""),false); }); + cb && cb() } }); return this; }, + load: function(cb) { + if(this.initiated) cb && cb() + else this.init(cb) + }, /** * Returns all pads in alphabetical order as array. */ - getPads: function(){ - if(!this.sorted){ - this.list=this.list.sort(); - this.sorted=true; - } - return this.list; + getPads: function(cb){ + this.load(function() { + if(!padList.sorted){ + padList.list = padList.list.sort(); + padList.sorted = true; + } + cb && cb(padList.list); + }) }, addPad: function(name) { + if(!this.initiated) return; if(this.list.indexOf(name) == -1){ this.list.push(name); this.sorted=false; @@ -77,7 +95,8 @@ var padList = { }, removePad: function(name) { - var index=this.list.indexOf(name); + if(!this.initiated) return; + var index = this.list.indexOf(name); if(index>-1){ this.list.splice(index,1); this.sorted=false; @@ -85,7 +104,6 @@ var padList = { } }; //initialises the allknowing data structure -padList.init(); /** * An array of padId transformations. These represent changes in pad name policy over @@ -146,25 +164,23 @@ exports.getPad = function(id, text, callback) else { pad = new Pad(id); - + //initalize the pad pad.init(text, function(err) { if(ERR(err, callback)) return; - globalPads.set(id, pad); + padList.addPad(id); callback(null, pad); }); } } -exports.listAllPads = function(callback) +exports.listAllPads = function(cb) { - if(callback != null){ - callback(null,{padIDs: padList.getPads()}); - }else{ - return {padIDs: padList.getPads()}; - } + padList.getPads(function(list) { + cb && cb(null, {padIDs: list}); + }); } //checks if a pad exists @@ -230,9 +246,8 @@ exports.removePad = function(padId){ padList.removePad(padId); } -//removes a pad from the array +//removes a pad from the cache exports.unloadPad = function(padId) { - if(globalPads.get(padId)) - globalPads.remove(padId); + globalPads.remove(padId); } diff --git a/src/node/db/ReadOnlyManager.js b/src/node/db/ReadOnlyManager.js index b135e613..dd1e478e 100644 --- a/src/node/db/ReadOnlyManager.js +++ b/src/node/db/ReadOnlyManager.js @@ -77,28 +77,22 @@ exports.getPadId = function(readOnlyId, callback) * returns a the padId and readonlyPadId in an object for any id * @param {String} padIdOrReadonlyPadId read only id or real pad id */ -exports.getIds = function(padIdOrReadonlyPadId, callback) { - var handleRealPadId = function () { - exports.getReadOnlyId(padIdOrReadonlyPadId, function (err, value) { +exports.getIds = function(id, callback) { + if (id.indexOf("r.") == 0) + exports.getPadId(id, function (err, value) { + if(ERR(err, callback)) return; + callback(null, { + readOnlyPadId: id, + padId: value, // Might be null, if this is an unknown read-only id + readonly: true + }); + }); + else + exports.getReadOnlyId(id, function (err, value) { callback(null, { readOnlyPadId: value, - padId: padIdOrReadonlyPadId, + padId: id, readonly: false }); }); - } - - if (padIdOrReadonlyPadId.indexOf("r.") != 0) - return handleRealPadId(); - - exports.getPadId(padIdOrReadonlyPadId, function (err, value) { - if(ERR(err, callback)) return; - if (value == null) - return handleRealPadId(); - callback(null, { - readOnlyPadId: padIdOrReadonlyPadId, - padId: value, - readonly: true - }); - }); } diff --git a/src/node/db/SecurityManager.js b/src/node/db/SecurityManager.js index 4289e39c..66cfd292 100644 --- a/src/node/db/SecurityManager.js +++ b/src/node/db/SecurityManager.js @@ -27,6 +27,8 @@ var padManager = require("./PadManager"); var sessionManager = require("./SessionManager"); var settings = require("../utils/Settings"); var randomString = require('ep_etherpad-lite/static/js/pad_utils').randomString; +var log4js = require('log4js'); +var authLogger = log4js.getLogger("auth"); /** * This function controlls the access to a pad, it checks if the user can access a pad. @@ -39,6 +41,11 @@ var randomString = require('ep_etherpad-lite/static/js/pad_utils').randomString; exports.checkAccess = function (padID, sessionCookie, token, password, callback) { var statusObject; + + if(!padID) { + callback(null, {accessStatus: "deny"}); + return; + } // a valid session is required (api-only mode) if(settings.requireSession) @@ -117,31 +124,43 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) //get information about all sessions contained in this cookie function(callback) { - if (!sessionCookie) { + if (!sessionCookie) + { callback(); return; } var sessionIDs = sessionCookie.split(','); - async.forEach(sessionIDs, function(sessionID, callback) { - sessionManager.getSessionInfo(sessionID, function(err, sessionInfo) { + async.forEach(sessionIDs, function(sessionID, callback) + { + sessionManager.getSessionInfo(sessionID, function(err, sessionInfo) + { //skip session if it doesn't exist - if(err && err.message == "sessionID does not exist") return; + if(err && err.message == "sessionID does not exist") + { + authLogger.debug("Auth failed: unknown session"); + callback(); + return; + } if(ERR(err, callback)) return; var now = Math.floor(new Date().getTime()/1000); //is it for this group? - if(sessionInfo.groupID != groupID) { - callback(); - return; + if(sessionInfo.groupID != groupID) + { + authLogger.debug("Auth failed: wrong group"); + callback(); + return; } //is validUntil still ok? - if(sessionInfo.validUntil <= now){ - callback(); - return; + if(sessionInfo.validUntil <= now) + { + authLogger.debug("Auth failed: validUntil"); + callback(); + return; } // There is a valid session @@ -234,7 +253,11 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) //--> grant access statusObject = {accessStatus: "grant", authorID: sessionAuthor}; //--> deny access if user isn't allowed to create the pad - if(settings.editOnly) statusObject.accessStatus = "deny"; + if(settings.editOnly) + { + authLogger.debug("Auth failed: valid session & pad does not exist"); + statusObject.accessStatus = "deny"; + } } // there is no valid session avaiable AND pad exists else if(!validSession && padExists) @@ -266,6 +289,7 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) //- its not public else if(!isPublic) { + authLogger.debug("Auth failed: invalid session & pad is not public"); //--> deny access statusObject = {accessStatus: "deny"}; } @@ -277,6 +301,7 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) // there is no valid session avaiable AND pad doesn't exists else { + authLogger.debug("Auth failed: invalid session & pad does not exist"); //--> deny access statusObject = {accessStatus: "deny"}; } diff --git a/src/node/db/SessionManager.js b/src/node/db/SessionManager.js index 5ce4f748..60e0a7ac 100644 --- a/src/node/db/SessionManager.js +++ b/src/node/db/SessionManager.js @@ -1,5 +1,5 @@ /** - * The Session Manager provides functions to manage session in the database + * The Session Manager provides functions to manage session in the database, it only provides session management for sessions created by the API */ /* diff --git a/src/node/db/SessionStore.js b/src/node/db/SessionStore.js new file mode 100644 index 00000000..52a504f1 --- /dev/null +++ b/src/node/db/SessionStore.js @@ -0,0 +1,82 @@ + /* + * Stores session data in the database + * Source; https://github.com/edy-b/SciFlowWriter/blob/develop/available_plugins/ep_sciflowwriter/db/DirtyStore.js + * This is not used for authors that are created via the API at current + */ + +var Store = require('ep_etherpad-lite/node_modules/connect/lib/middleware/session/store'), + utils = require('ep_etherpad-lite/node_modules/connect/lib/utils'), + Session = require('ep_etherpad-lite/node_modules/connect/lib/middleware/session/session'), + db = require('ep_etherpad-lite/node/db/DB').db, + log4js = require('ep_etherpad-lite/node_modules/log4js'), + messageLogger = log4js.getLogger("SessionStore"); + +var SessionStore = module.exports = function SessionStore() {}; + +SessionStore.prototype.__proto__ = Store.prototype; + +SessionStore.prototype.get = function(sid, fn){ + messageLogger.debug('GET ' + sid); + var self = this; + db.get("sessionstorage:" + sid, function (err, sess) + { + if (sess) { + sess.cookie.expires = 'string' == typeof sess.cookie.expires ? new Date(sess.cookie.expires) : sess.cookie.expires; + if (!sess.cookie.expires || new Date() < sess.cookie.expires) { + fn(null, sess); + } else { + self.destroy(sid, fn); + } + } else { + fn(); + } + }); +}; + +SessionStore.prototype.set = function(sid, sess, fn){ + messageLogger.debug('SET ' + sid); + db.set("sessionstorage:" + sid, sess); + process.nextTick(function(){ + if(fn) fn(); + }); +}; + +SessionStore.prototype.destroy = function(sid, fn){ + messageLogger.debug('DESTROY ' + sid); + db.remove("sessionstorage:" + sid); + process.nextTick(function(){ + if(fn) fn(); + }); +}; + +SessionStore.prototype.all = function(fn){ + messageLogger.debug('ALL'); + var sessions = []; + db.forEach(function(key, value){ + if (key.substr(0,15) === "sessionstorage:") { + sessions.push(value); + } + }); + fn(null, sessions); +}; + +SessionStore.prototype.clear = function(fn){ + messageLogger.debug('CLEAR'); + db.forEach(function(key, value){ + if (key.substr(0,15) === "sessionstorage:") { + db.db.remove("session:" + key); + } + }); + if(fn) fn(); +}; + +SessionStore.prototype.length = function(fn){ + messageLogger.debug('LENGTH'); + var i = 0; + db.forEach(function(key, value){ + if (key.substr(0,15) === "sessionstorage:") { + i++; + } + }); + fn(null, i); +}; diff --git a/src/node/handler/APIHandler.js b/src/node/handler/APIHandler.js index 9f86277a..7206eb87 100644 --- a/src/node/handler/APIHandler.js +++ b/src/node/handler/APIHandler.js @@ -31,7 +31,7 @@ try { apikey = fs.readFileSync("./APIKEY.txt","utf8"); } -catch(e) +catch(e) { apikey = randomString(32); fs.writeFileSync("./APIKEY.txt",apikey,"utf8"); @@ -180,7 +180,7 @@ var version = , "deleteGroup" : ["groupID"] , "listPads" : ["groupID"] , "listAllPads" : [] - , "createDiffHTML" : ["padID", "startRev", "endRev"] + , "createDiffHTML" : ["padID", "startRev", "endRev"] , "createPad" : ["padID", "text"] , "createGroupPad" : ["groupID", "padName", "text"] , "createAuthor" : ["name"] @@ -214,8 +214,100 @@ var version = , "getChatHistory" : ["padID", "start", "end"] , "getChatHead" : ["padID"] } +, "1.2.8": + { "createGroup" : [] + , "createGroupIfNotExistsFor" : ["groupMapper"] + , "deleteGroup" : ["groupID"] + , "listPads" : ["groupID"] + , "listAllPads" : [] + , "createDiffHTML" : ["padID", "startRev", "endRev"] + , "createPad" : ["padID", "text"] + , "createGroupPad" : ["groupID", "padName", "text"] + , "createAuthor" : ["name"] + , "createAuthorIfNotExistsFor": ["authorMapper" , "name"] + , "listPadsOfAuthor" : ["authorID"] + , "createSession" : ["groupID", "authorID", "validUntil"] + , "deleteSession" : ["sessionID"] + , "getSessionInfo" : ["sessionID"] + , "listSessionsOfGroup" : ["groupID"] + , "listSessionsOfAuthor" : ["authorID"] + , "getText" : ["padID", "rev"] + , "setText" : ["padID", "text"] + , "getHTML" : ["padID", "rev"] + , "setHTML" : ["padID", "html"] + , "getAttributePool" : ["padID"] + , "getRevisionsCount" : ["padID"] + , "getRevisionChangeset" : ["padID", "rev"] + , "getLastEdited" : ["padID"] + , "deletePad" : ["padID"] + , "getReadOnlyID" : ["padID"] + , "setPublicStatus" : ["padID", "publicStatus"] + , "getPublicStatus" : ["padID"] + , "setPassword" : ["padID", "password"] + , "isPasswordProtected" : ["padID"] + , "listAuthorsOfPad" : ["padID"] + , "padUsersCount" : ["padID"] + , "getAuthorName" : ["authorID"] + , "padUsers" : ["padID"] + , "sendClientsMessage" : ["padID", "msg"] + , "listAllGroups" : [] + , "checkToken" : [] + , "getChatHistory" : ["padID"] + , "getChatHistory" : ["padID", "start", "end"] + , "getChatHead" : ["padID"] + } +, "1.2.9": + { "createGroup" : [] + , "createGroupIfNotExistsFor" : ["groupMapper"] + , "deleteGroup" : ["groupID"] + , "listPads" : ["groupID"] + , "listAllPads" : [] + , "createDiffHTML" : ["padID", "startRev", "endRev"] + , "createPad" : ["padID", "text"] + , "createGroupPad" : ["groupID", "padName", "text"] + , "createAuthor" : ["name"] + , "createAuthorIfNotExistsFor": ["authorMapper" , "name"] + , "listPadsOfAuthor" : ["authorID"] + , "createSession" : ["groupID", "authorID", "validUntil"] + , "deleteSession" : ["sessionID"] + , "getSessionInfo" : ["sessionID"] + , "listSessionsOfGroup" : ["groupID"] + , "listSessionsOfAuthor" : ["authorID"] + , "getText" : ["padID", "rev"] + , "setText" : ["padID", "text"] + , "getHTML" : ["padID", "rev"] + , "setHTML" : ["padID", "html"] + , "getAttributePool" : ["padID"] + , "getRevisionsCount" : ["padID"] + , "getRevisionChangeset" : ["padID", "rev"] + , "getLastEdited" : ["padID"] + , "deletePad" : ["padID"] + , "copyPad" : ["sourceID", "destinationID", "force"] + , "movePad" : ["sourceID", "destinationID", "force"] + , "getReadOnlyID" : ["padID"] + , "setPublicStatus" : ["padID", "publicStatus"] + , "getPublicStatus" : ["padID"] + , "setPassword" : ["padID", "password"] + , "isPasswordProtected" : ["padID"] + , "listAuthorsOfPad" : ["padID"] + , "padUsersCount" : ["padID"] + , "getAuthorName" : ["authorID"] + , "padUsers" : ["padID"] + , "sendClientsMessage" : ["padID", "msg"] + , "listAllGroups" : [] + , "checkToken" : [] + , "getChatHistory" : ["padID"] + , "getChatHistory" : ["padID", "start", "end"] + , "getChatHead" : ["padID"] + } }; +// set the latest available API version here +exports.latestApiVersion = '1.2.9'; + +// exports the versions so it can be used by the new Swagger endpoint +exports.version = version; + /** * Handles a HTTP API call * @param functionName the name of the called function @@ -235,7 +327,7 @@ exports.handle = function(apiVersion, functionName, fields, req, res) break; } } - + //say goodbye if this is an unkown API version if(!isKnownApiVersion) { @@ -243,7 +335,7 @@ exports.handle = function(apiVersion, functionName, fields, req, res) res.send({code: 3, message: "no such api version", data: null}); return; } - + //check if this is a valid function name var isKnownFunctionname = false; for(var knownFunctionname in version[apiVersion]) @@ -254,15 +346,17 @@ exports.handle = function(apiVersion, functionName, fields, req, res) break; } } - + //say goodbye if this is a unkown function if(!isKnownFunctionname) { res.send({code: 3, message: "no such function", data: null}); return; } - + //check the api key! + fields["apikey"] = fields["apikey"] || fields["api_key"]; + if(fields["apikey"] != apikey.trim()) { res.send({code: 4, message: "no or wrong API Key", data: null}); @@ -296,21 +390,19 @@ exports.handle = function(apiVersion, functionName, fields, req, res) function callAPI(apiVersion, functionName, fields, req, res) { //put the function parameters in an array - var functionParams = []; - for(var i=0;i<version[apiVersion][functionName].length;i++) - { - functionParams.push(fields[ version[apiVersion][functionName][i] ]); - } - + var functionParams = version[apiVersion][functionName].map(function (field) { + return fields[field] + }) + //add a callback function to handle the response functionParams.push(function(err, data) - { + { // no error happend, everything is fine if(err == null) { if(!data) data = null; - + res.send({code: 0, message: "ok", data: data}); } // parameters were wrong and the api stopped execution, pass the error @@ -325,7 +417,7 @@ function callAPI(apiVersion, functionName, fields, req, res) ERR(err); } }); - + //call the api function - api[functionName](functionParams[0],functionParams[1],functionParams[2],functionParams[3],functionParams[4]); + api[functionName].apply(this, functionParams); } diff --git a/src/node/handler/ExportHandler.js b/src/node/handler/ExportHandler.js index 1b7fcc26..8ff5bc48 100644 --- a/src/node/handler/ExportHandler.js +++ b/src/node/handler/ExportHandler.js @@ -20,6 +20,7 @@ var ERR = require("async-stacktrace"); var exporthtml = require("../utils/ExportHtml"); +var exporttxt = require("../utils/ExportTxt"); var exportdokuwiki = require("../utils/ExportDokuWiki"); var padManager = require("../db/PadManager"); var async = require("async"); @@ -48,22 +49,75 @@ exports.doExport = function(req, res, padId, type) res.attachment(padId + "." + type); //if this is a plain text export, we can do this directly + // We have to over engineer this because tabs are stored as attributes and not plain text + if(type == "txt") { - padManager.getPad(padId, function(err, pad) - { - ERR(err); - if(req.params.rev){ - pad.getInternalRevisionAText(req.params.rev, function(junk, text) + var txt; + var randNum; + var srcFile, destFile; + + async.series([ + //render the txt document + function(callback) + { + exporttxt.getPadTXTDocument(padId, req.params.rev, false, function(err, _txt) { - res.send(text.text ? text.text : null); + if(ERR(err, callback)) return; + txt = _txt; + callback(); }); - } - else + }, + //decide what to do with the txt export + function(callback) + { + //if this is a txt export, we can send this from here directly + res.send(txt); + callback("stop"); + }, + //send the convert job to abiword + function(callback) + { + //ensure html can be collected by the garbage collector + txt = null; + + destFile = tempDirectory + "/eplite_export_" + randNum + "." + type; + abiword.convertFile(srcFile, destFile, type, callback); + }, + //send the file + function(callback) { - res.send(pad.text()); + res.sendfile(destFile, null, callback); + }, + //clean up temporary files + function(callback) + { + async.parallel([ + function(callback) + { + fs.unlink(srcFile, callback); + }, + function(callback) + { + //100ms delay to accomidate for slow windows fs + if(os.type().indexOf("Windows") > -1) + { + setTimeout(function() + { + fs.unlink(destFile, callback); + }, 100); + } + else + { + fs.unlink(destFile, callback); + } + } + ], callback); } - }); + ], function(err) + { + if(err && err != "stop") ERR(err); + }) } else if(type == 'dokuwiki') { diff --git a/src/node/handler/ImportHandler.js b/src/node/handler/ImportHandler.js index ac856a60..f58076bb 100644 --- a/src/node/handler/ImportHandler.js +++ b/src/node/handler/ImportHandler.js @@ -28,7 +28,9 @@ var ERR = require("async-stacktrace") , settings = require('../utils/Settings') , formidable = require('formidable') , os = require("os") - , importHtml = require("../utils/ImportHtml"); + , importHtml = require("../utils/ImportHtml") + , log4js = require("log4js") + , hooks = require("ep_etherpad-lite/static/js/pluginfw/hooks.js"); //load abiword only if its enabled if(settings.abiword != null) @@ -42,13 +44,18 @@ var tmpDirectory = process.env.TEMP || process.env.TMPDIR || process.env.TMP || */ exports.doImport = function(req, res, padId) { + var apiLogger = log4js.getLogger("ImportHandler"); + //pipe to a file //convert file to html via abiword //set html in the pad var srcFile, destFile , pad - , text; + , text + , importHandledByPlugin; + + var randNum = Math.floor(Math.random()*0xFFFFFFFF); async.series([ //save the uploaded file to /tmp @@ -60,7 +67,7 @@ exports.doImport = function(req, res, padId) form.parse(req, function(err, fields, files) { //the upload failed, stop at this point if(err || files.file === undefined) { - console.warn("Uploading Error: " + err.stack); + if(err) console.warn("Uploading Error: " + err.stack); callback("uploadFailed"); } //everything ok, continue @@ -87,32 +94,69 @@ exports.doImport = function(req, res, padId) else { var oldSrcFile = srcFile; srcFile = path.join(path.dirname(srcFile),path.basename(srcFile, fileEnding)+".txt"); - fs.rename(oldSrcFile, srcFile, callback); } }, - - //convert file to html - function(callback) { - var randNum = Math.floor(Math.random()*0xFFFFFFFF); + function(callback){ destFile = path.join(tmpDirectory, "eplite_import_" + randNum + ".htm"); - if (abiword) { - abiword.convertFile(srcFile, destFile, "htm", function(err) { - //catch convert errors - if(err) { - console.warn("Converting Error:", err); - return callback("convertFailed"); - } else { + // Logic for allowing external Import Plugins + hooks.aCallAll("import", {srcFile: srcFile, destFile: destFile}, function(err, result){ + if(ERR(err, callback)) return callback(); + if(result.length > 0){ // This feels hacky and wrong.. + importHandledByPlugin = true; + callback(); + }else{ + callback(); + } + }); + }, + //convert file to html + function(callback) { + if(!importHandledByPlugin){ + if (abiword) { + abiword.convertFile(srcFile, destFile, "htm", function(err) { + //catch convert errors + if(err) { + console.warn("Converting Error:", err); + return callback("convertFailed"); + } else { + callback(); + } + }); + } else { + // if no abiword only rename + fs.rename(srcFile, destFile, callback); + } + }else{ + callback(); + } + }, + + function(callback) { + if (!abiword) { + // Read the file with no encoding for raw buffer access. + fs.readFile(destFile, function(err, buf) { + if (err) throw err; + var isAscii = true; + // Check if there are only ascii chars in the uploaded file + for (var i=0, len=buf.length; i<len; i++) { + if (buf[i] > 240) { + isAscii=false; + break; + } + } + if (isAscii) { callback(); + } else { + callback("uploadFailed"); } }); } else { - // if no abiword only rename - fs.rename(srcFile, destFile, callback); + callback(); } }, - + //get the pad object function(callback) { padManager.getPad(padId, function(err, _pad){ @@ -127,7 +171,10 @@ exports.doImport = function(req, res, padId) fs.readFile(destFile, "utf8", function(err, _text){ if(ERR(err, callback)) return; text = _text; - + // Title needs to be stripped out else it appends it to the pad.. + text = text.replace("<title>", "<!-- <title>"); + text = text.replace("</title>","</title>-->"); + //node on windows has a delay on releasing of the file lock. //We add a 100ms delay to work around this if(os.type().indexOf("Windows") > -1){ @@ -142,7 +189,11 @@ exports.doImport = function(req, res, padId) function(callback) { var fileEnding = path.extname(srcFile).toLowerCase(); if (abiword || fileEnding == ".htm" || fileEnding == ".html") { - importHtml.setPadHTML(pad, text); + try{ + importHtml.setPadHTML(pad, text); + }catch(e){ + apiLogger.warn("Error importing, possibly caused by malformed HTML"); + } } else { pad.setText(text); } @@ -176,7 +227,7 @@ exports.doImport = function(req, res, padId) ERR(err); //close the connection - res.send("<head><script type='text/javascript' src='../../static/js/jquery.js'></script></head><script>$(window).load(function(){if ( (!$.browser.msie) && (!($.browser.mozilla && $.browser.version.indexOf(\"1.8.\") == 0)) ){document.domain = document.domain;}var impexp = window.parent.padimpexp.handleFrameCall('" + status + "');})</script>", 200); + res.send("<head><script type='text/javascript' src='../../static/js/jquery.js'></script><script type='text/javascript' src='../../static/js/jquery_browser.js'></script></head><script>$(window).load(function(){if ( (!$.browser.msie) && (!($.browser.mozilla && $.browser.version.indexOf(\"1.8.\") == 0)) ){document.domain = document.domain;}var impexp = window.parent.padimpexp.handleFrameCall('" + status + "');})</script>", 200); }); } diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js index 7cd945af..748b8382 100644 --- a/src/node/handler/PadMessageHandler.js +++ b/src/node/handler/PadMessageHandler.js @@ -35,6 +35,8 @@ var messageLogger = log4js.getLogger("message"); var accessLogger = log4js.getLogger("access"); var _ = require('underscore'); var hooks = require("ep_etherpad-lite/static/js/pluginfw/hooks.js"); +var channels = require("channels"); +var stats = require('../stats'); /** * A associative array that saves informations about a session @@ -47,6 +49,17 @@ var hooks = require("ep_etherpad-lite/static/js/pluginfw/hooks.js"); * author = the author name of this session */ var sessioninfos = {}; +exports.sessioninfos = sessioninfos; + +// Measure total amount of users +stats.gauge('totalUsers', function() { + return Object.keys(socketio.sockets.sockets).length +}) + +/** + * A changeset queue per pad that is processed by handleUserChanges() + */ +var padChannels = new channels.channels(handleUserChanges); /** * Saves the Socket class we need to send and recieve data from the client @@ -67,7 +80,9 @@ exports.setSocketIO = function(socket_io) * @param client the new client */ exports.handleConnect = function(client) -{ +{ + stats.meter('connects').mark(); + //Initalize sessioninfos for this new session sessioninfos[client.id]={}; } @@ -92,12 +107,23 @@ exports.kickSessionsFromPad = function(padID) */ exports.handleDisconnect = function(client) { + stats.meter('disconnects').mark(); + //save the padname of this session var session = sessioninfos[client.id]; //if this connection was already etablished with a handshake, send a disconnect message to the others if(session && session.author) { + client.get('remoteAddress', function(er, ip) { + //Anonymize the IP address if IP logging is disabled + if(settings.disableIPlogging) { + ip = 'ANONYMOUS'; + } + + accessLogger.info('[LEAVE] Pad "'+session.padId+'": Author "'+session.author+'" on client '+client.id+' with IP "'+ip+'" left the pad') + }) + //get the author color out of the db authorManager.getAuthorColorId(session.author, function(err, color) { @@ -122,10 +148,6 @@ exports.handleDisconnect = function(client) }); } - client.get('remoteAddress', function(er, ip) { - accessLogger.info('[LEAVE] Pad "'+session.padId+'": Author "'+session.author+'" on client '+client.id+' with IP "'+ip+'" left the pad') - }) - //Delete the sessioninfos entrys of this session delete sessioninfos[client.id]; } @@ -137,26 +159,25 @@ exports.handleDisconnect = function(client) */ exports.handleMessage = function(client, message) { - if(message == null) { - messageLogger.warn("Message is null!"); return; } if(!message.type) { - messageLogger.warn("Message has no type attribute!"); + return; + } + if(!sessioninfos[client.id]) { + messageLogger.warn("Dropped message from an unknown connection.") return; } var handleMessageHook = function(callback){ var dropMessage = false; - // Call handleMessage hook. If a plugin returns null, the message will be dropped. Note that for all messages // handleMessage will be called, even if the client is not authorized hooks.aCallAll("handleMessage", { client: client, message: message }, function ( err, messages ) { if(ERR(err, callback)) return; - _.each(messages, function(newMessage){ if ( newMessage === null ) { dropMessage = true; @@ -178,7 +199,8 @@ exports.handleMessage = function(client, message) if (sessioninfos[client.id].readonly) { messageLogger.warn("Dropped message, COLLABROOM for readonly pad"); } else if (message.data.type == "USER_CHANGES") { - handleUserChanges(client, message); + stats.counter('pendingEdits').inc() + padChannels.emit(message.padId, {client: client, message: message});// add to pad queue } else if (message.data.type == "USERINFO_UPDATE") { handleUserInfoUpdate(client, message); } else if (message.data.type == "CHAT_MESSAGE") { @@ -205,31 +227,61 @@ exports.handleMessage = function(client, message) //check permissions function(callback) { - - // If the message has a padId we assume the client is already known to the server and needs no re-authorization - if(!message.padId) - return callback(); + // client tried to auth for the first time (first msg from the client) + if(message.type == "CLIENT_READY") { + // Remember this information since we won't + // have the cookie in further socket.io messages. + // This information will be used to check if + // the sessionId of this connection is still valid + // since it could have been deleted by the API. + sessioninfos[client.id].auth = + { + sessionID: message.sessionID, + padID: message.padId, + token : message.token, + password: message.password + }; + } // Note: message.sessionID is an entirely different kind of - // session from the sessions we use here! Beware! FIXME: Call - // our "sessions" "connections". + // session from the sessions we use here! Beware! + // FIXME: Call our "sessions" "connections". // FIXME: Use a hook instead // FIXME: Allow to override readwrite access with readonly - securityManager.checkAccess(message.padId, message.sessionID, message.token, message.password, function(err, statusObject) - { - if(ERR(err, callback)) return; - //access was granted - if(statusObject.accessStatus == "grant") - { - callback(); - } - //no access, send the client a message that tell him why - else + // FIXME: A message might arrive but wont have an auth object, this is obviously bad so we should deny it + // Simulate using the load testing tool + if(!sessioninfos[client.id].auth){ + console.error("Auth was never applied to a session. If you are using the stress-test tool then restart Etherpad and the Stress test tool.") + callback(); + }else{ + var auth = sessioninfos[client.id].auth; + var checkAccessCallback = function(err, statusObject) { - client.json.send({accessStatus: statusObject.accessStatus}) + if(ERR(err, callback)) return; + + //access was granted + if(statusObject.accessStatus == "grant") + { + callback(); + } + //no access, send the client a message that tell him why + else + { + client.json.send({accessStatus: statusObject.accessStatus}) + } + }; + //check if pad is requested via readOnly + if (auth.padID.indexOf("r.") === 0) { + //Pad is readOnly, first get the real Pad ID + readOnlyManager.getPadId(auth.padID, function(err, value) { + ERR(err); + securityManager.checkAccess(value, auth.sessionID, auth.token, auth.password, checkAccessCallback); + }); + } else { + securityManager.checkAccess(auth.padID, auth.sessionID, auth.token, auth.password, checkAccessCallback); } - }); + } }, finalHandler ]); @@ -255,6 +307,25 @@ function handleSaveRevisionMessage(client, message){ } /** + * Handles a custom message, different to the function below as it handles objects not strings and you can + * direct the message to specific sessionID + * + * @param msg {Object} the message we're sending + * @param sessionID {string} the socketIO session to which we're sending this message + */ +exports.handleCustomObjectMessage = function (msg, sessionID, cb) { + if(msg.data.type === "CUSTOM"){ + if(sessionID){ // If a sessionID is targeted then send directly to this sessionID + socketio.sockets.socket(sessionID).json.send(msg); // send a targeted message + }else{ + socketio.sockets.in(msg.data.payload.padId).json.send(msg); // broadcast to all clients on this pad + } + } + cb(null, {}); +} + + +/** * Handles a custom message (sent via HTTP API request) * * @param padID {Pad} the pad to which we're sending this message @@ -384,7 +455,7 @@ function handleGetChatMessages(client, message) pad.getChatMessages(start, end, function(err, chatMessages) { if(ERR(err, callback)) return; - + var infoMsg = { type: "COLLABROOM", data: { @@ -392,7 +463,7 @@ function handleGetChatMessages(client, message) messages: chatMessages } }; - + // send the messages back to the client client.json.send(infoMsg); }); @@ -493,23 +564,29 @@ function handleUserInfoUpdate(client, message) * @param client the client that send this message * @param message the message from the client */ -function handleUserChanges(client, message) +function handleUserChanges(data, cb) { + var client = data.client + , message = data.message + + // This one's no longer pending, as we're gonna process it now + stats.counter('pendingEdits').dec() + // Make sure all required fields are present if(message.data.baseRev == null) { messageLogger.warn("Dropped message, USER_CHANGES Message has no baseRev!"); - return; + return cb(); } if(message.data.apool == null) { messageLogger.warn("Dropped message, USER_CHANGES Message has no apool!"); - return; + return cb(); } if(message.data.changeset == null) { messageLogger.warn("Dropped message, USER_CHANGES Message has no changeset!"); - return; + return cb(); } //get all Vars we need @@ -521,6 +598,9 @@ function handleUserChanges(client, message) var thisSession = sessioninfos[client.id]; var r, apool, pad; + + // Measure time to process edit + var stopWatch = stats.timer('edits').start(); async.series([ //get the pad @@ -547,23 +627,37 @@ function handleUserChanges(client, message) // defined in the accompanying attribute pool. Changeset.eachAttribNumber(changeset, function(n) { if (! wireApool.getAttrib(n)) { - throw "Attribute pool is missing attribute "+n+" for changeset "+changeset; + throw new Error("Attribute pool is missing attribute "+n+" for changeset "+changeset); } }); + + // Validate all added 'author' attribs to be the same value as the current user + var iterator = Changeset.opIterator(Changeset.unpack(changeset).ops) + , op + while(iterator.hasNext()) { + op = iterator.next() + if(op.opcode != '+') continue; + op.attribs.split('*').forEach(function(attr) { + if(!attr) return + attr = wireApool.getAttrib(attr) + if(!attr) return + if('author' == attr[0] && attr[1] != thisSession.author) throw new Error("Trying to submit changes as another author in changeset "+changeset); + }) + } + + //ex. adoptChangesetAttribs + + //Afaik, it copies the new attributes from the changeset, to the global Attribute Pool + changeset = Changeset.moveOpsToNewPool(changeset, wireApool, pad.pool); } catch(e) { // There is an error in this changeset, so just refuse it - console.warn("Can't apply USER_CHANGES "+changeset+", because it failed checkRep"); client.json.send({disconnect:"badChangeset"}); - return; + stats.meter('failedChangesets').mark(); + return callback(new Error("Can't apply USER_CHANGES, because "+e.message)); } - //ex. adoptChangesetAttribs - - //Afaik, it copies the new attributes from the changeset, to the global Attribute Pool - changeset = Changeset.moveOpsToNewPool(changeset, wireApool, pad.pool); - //ex. applyUserChanges apool = pad.pool; r = baseRev; @@ -586,7 +680,14 @@ function handleUserChanges(client, message) // client) are relative to revision r - 1. The follow function // rebases "changeset" so that it is relative to revision r // and can be applied after "c". - changeset = Changeset.follow(c, changeset, false, apool); + try + { + changeset = Changeset.follow(c, changeset, false, apool); + }catch(e){ + client.json.send({disconnect:"badChangeset"}); + stats.meter('failedChangesets').mark(); + return callback(new Error("Can't apply USER_CHANGES, because "+e.message)); + } if ((r - baseRev) % 200 == 0) { // don't let the stack get too deep async.nextTick(callback); @@ -606,10 +707,9 @@ function handleUserChanges(client, message) if (Changeset.oldLen(changeset) != prevText.length) { - console.warn("Can't apply USER_CHANGES "+changeset+" with oldLen " + Changeset.oldLen(changeset) + " to document of length " + prevText.length); client.json.send({disconnect:"badChangeset"}); - callback(); - return; + stats.meter('failedChangesets').mark(); + return callback(new Error("Can't apply USER_CHANGES "+changeset+" with oldLen " + Changeset.oldLen(changeset) + " to document of length " + prevText.length)); } pad.appendRevision(changeset, thisSession.author); @@ -625,11 +725,16 @@ function handleUserChanges(client, message) pad.appendRevision(nlChangeset); } - exports.updatePadClients(pad, callback); + exports.updatePadClients(pad, function(er) { + ERR(er) + }); + callback(); } ], function(err) { - ERR(err); + stopWatch.end() + cb(); + if(err) console.warn(err.stack || err) }); } @@ -713,7 +818,7 @@ exports.updatePadClients = function(pad, callback) } /** - * Copied from the Etherpad Source Code. Don't know what this methode does excatly... + * Copied from the Etherpad Source Code. Don't know what this method does excatly... */ function _correctMarkersInPad(atext, apool) { var text = atext.text; @@ -882,8 +987,7 @@ function handleClientReady(client, message) authorManager.getAuthor(authorId, function(err, author) { if(ERR(err, callback)) return; - delete author.timestamp; - historicalAuthorData[authorId] = author; + historicalAuthorData[authorId] = {name: author.name, colorId: author.colorId}; // Filter author attribs (e.g. don't send author's pads to all clients) callback(); }); }, callback); @@ -917,6 +1021,11 @@ function handleClientReady(client, message) //Log creation/(re-)entering of a pad client.get('remoteAddress', function(er, ip) { + //Anonymize the IP address if IP logging is disabled + if(settings.disableIPlogging) { + ip = 'ANONYMOUS'; + } + if(pad.head > 0) { accessLogger.info('[ENTER] Pad "'+padIds.padId+'": Client '+client.id+' with IP "'+ip+'" entered the pad'); } @@ -928,17 +1037,25 @@ function handleClientReady(client, message) //If this is a reconnect, we don't have to send the client the ClientVars again if(message.reconnect == true) { + //Join the pad and start receiving updates + client.join(padIds.padId); //Save the revision in sessioninfos, we take the revision from the info the client send to us sessioninfos[client.id].rev = message.client_rev; } //This is a normal first connect else { - //prepare all values for the wire - var atext = Changeset.cloneAText(pad.atext); - var attribsForWire = Changeset.prepareForWire(atext.attribs, pad.pool); - var apool = attribsForWire.pool.toJsonable(); - atext.attribs = attribsForWire.translated; + //prepare all values for the wire, there'S a chance that this throws, if the pad is corrupted + try { + var atext = Changeset.cloneAText(pad.atext); + var attribsForWire = Changeset.prepareForWire(atext.attribs, pad.pool); + var apool = attribsForWire.pool.toJsonable(); + atext.attribs = attribsForWire.translated; + }catch(e) { + console.error(e.stack || e) + client.json.send({disconnect:"corruptPad"});// pull the breaks + return callback(); + } // Warning: never ever send padIds.padId to the client. If the // client is read only you would open a security hole 1 swedish @@ -959,7 +1076,6 @@ function handleClientReady(client, message) "historicalAuthorData": historicalAuthorData, "apool": apool, "rev": pad.getHeadRevisionNumber(), - "globalPadId": message.padId, "time": currentTime, }, "colorPalette": authorManager.getColorPalette(), @@ -976,7 +1092,6 @@ function handleClientReady(client, message) "readOnlyId": padIds.readOnlyPadId, "readonly": padIds.readonly, "serverTimestamp": new Date().getTime(), - "globalPadId": message.padId, "userId": author, "abiwordAvailable": settings.abiwordAvailable(), "plugins": { @@ -1035,7 +1150,7 @@ function handleClientReady(client, message) } // notify all existing users about new user - client.broadcast.to(padIds.padIds).json.send(messageToTheOtherUsers); + client.broadcast.to(padIds.padId).json.send(messageToTheOtherUsers); //Run trough all sessions of this pad async.forEach(socketio.sockets.clients(padIds.padId), function(roomClient, callback) @@ -1429,7 +1544,7 @@ function composePadChangesets(padId, startNum, endNum, callback) */ exports.padUsersCount = function (padID, callback) { callback(null, { - padUsersCount: socketio.sockets.clients(padId).length + padUsersCount: socketio.sockets.clients(padID).length }); } @@ -1439,7 +1554,7 @@ exports.padUsersCount = function (padID, callback) { exports.padUsers = function (padID, callback) { var result = []; - async.forEach(socketio.sockets.clients(padId), function(roomClient, callback) { + async.forEach(socketio.sockets.clients(padID), function(roomClient, callback) { var s = sessioninfos[roomClient.id]; if(s) { authorManager.getAuthor(s.author, function(err, author) { @@ -1447,6 +1562,7 @@ exports.padUsers = function (padID, callback) { author.id = s.author; result.push(author); + callback(); }); } }, function(err) { @@ -1455,3 +1571,5 @@ exports.padUsers = function (padID, callback) { callback(null, {padUsers: result}); }); } + +exports.sessioninfos = sessioninfos; diff --git a/src/node/handler/SocketIORouter.js b/src/node/handler/SocketIORouter.js index 483bb1d1..b3e046d2 100644 --- a/src/node/handler/SocketIORouter.js +++ b/src/node/handler/SocketIORouter.js @@ -23,6 +23,8 @@ var ERR = require("async-stacktrace"); var log4js = require('log4js'); var messageLogger = log4js.getLogger("message"); var securityManager = require("../db/SecurityManager"); +var readOnlyManager = require("../db/ReadOnlyManager"); +var settings = require('../utils/Settings'); /** * Saves all components @@ -48,88 +50,68 @@ exports.addComponent = function(moduleName, module) /** * sets the socket.io and adds event functions for routing */ -exports.setSocketIO = function(_socket) -{ +exports.setSocketIO = function(_socket) { //save this socket internaly socket = _socket; socket.sockets.on('connection', function(client) { - client.set('remoteAddress', client.handshake.address.address); + if(settings.trustProxy && client.handshake.headers['x-forwarded-for'] !== undefined){ + client.set('remoteAddress', client.handshake.headers['x-forwarded-for']); + } + else{ + client.set('remoteAddress', client.handshake.address.address); + } var clientAuthorized = false; //wrap the original send function to log the messages client._send = client.send; - client.send = function(message) - { + client.send = function(message) { messageLogger.debug("to " + client.id + ": " + stringifyWithoutPassword(message)); client._send(message); } //tell all components about this connect - for(var i in components) - { + for(var i in components) { components[i].handleConnect(client); - } - - //try to handle the message of this client - function handleMessage(message) - { - if(message.component && components[message.component]) - { - //check if component is registered in the components array - if(components[message.component]) - { - messageLogger.debug("from " + client.id + ": " + stringifyWithoutPassword(message)); - components[message.component].handleMessage(client, message); - } - } - else - { - messageLogger.error("Can't route the message:" + stringifyWithoutPassword(message)); - } - } - + } + client.on('message', function(message) { - if(message.protocolVersion && message.protocolVersion != 2) - { + if(message.protocolVersion && message.protocolVersion != 2) { messageLogger.warn("Protocolversion header is not correct:" + stringifyWithoutPassword(message)); return; } //client is authorized, everything ok - if(clientAuthorized) - { - handleMessage(message); - } - //try to authorize the client - else - { - //this message has everything to try an authorization - if(message.padId !== undefined && message.sessionID !== undefined && message.token !== undefined && message.password !== undefined) - { - securityManager.checkAccess (message.padId, message.sessionID, message.token, message.password, function(err, statusObject) - { + if(clientAuthorized) { + handleMessage(client, message); + } else { //try to authorize the client + if(message.padId !== undefined && message.sessionID !== undefined && message.token !== undefined && message.password !== undefined) { + var checkAccessCallback = function(err, statusObject) { ERR(err); - + //access was granted, mark the client as authorized and handle the message - if(statusObject.accessStatus == "grant") - { + if(statusObject.accessStatus == "grant") { clientAuthorized = true; - handleMessage(message); + handleMessage(client, message); } //no access, send the client a message that tell him why - else - { + else { messageLogger.warn("Authentication try failed:" + stringifyWithoutPassword(message)); client.json.send({accessStatus: statusObject.accessStatus}); } - }); - } - //drop message - else - { + }; + if (message.padId.indexOf("r.") === 0) { + readOnlyManager.getPadId(message.padId, function(err, value) { + ERR(err); + securityManager.checkAccess (value, message.sessionID, message.token, message.password, checkAccessCallback); + }); + } else { + //this message has everything to try an authorization + securityManager.checkAccess (message.padId, message.sessionID, message.token, message.password, checkAccessCallback); + } + } else { //drop message messageLogger.warn("Dropped message cause of bad permissions:" + stringifyWithoutPassword(message)); } } @@ -146,6 +128,21 @@ exports.setSocketIO = function(_socket) }); } +//try to handle the message of this client +function handleMessage(client, message) +{ + + if(message.component && components[message.component]) { + //check if component is registered in the components array + if(components[message.component]) { + messageLogger.debug("from " + client.id + ": " + stringifyWithoutPassword(message)); + components[message.component].handleMessage(client, message); + } + } else { + messageLogger.error("Can't route the message:" + stringifyWithoutPassword(message)); + } +} + //returns a stringified representation of a message, removes the password //this ensures there are no passwords in the log function stringifyWithoutPassword(message) diff --git a/src/node/hooks/express.js b/src/node/hooks/express.js index 34baca40..f2bb18b8 100644 --- a/src/node/hooks/express.js +++ b/src/node/hooks/express.js @@ -19,7 +19,7 @@ exports.createServer = function () { var refPath = rootPath + "/.git/" + ref.substring(5, ref.indexOf("\n")); version = fs.readFileSync(refPath, "utf-8"); version = version.substring(0, 7); - console.log("Your Etherpad Lite git version is " + version); + console.log("Your Etherpad git version is " + version); } catch(e) { @@ -27,11 +27,11 @@ exports.createServer = function () { } console.log("Report bugs at https://github.com/ether/etherpad-lite/issues") - serverName = "Etherpad-Lite " + version + " (http://etherpad.org)"; + serverName = "Etherpad " + version + " (http://etherpad.org)"; exports.restartServer(); - console.log("You can access your Etherpad-Lite instance at http://" + settings.ip + ":" + settings.port + "/"); + console.log("You can access your Etherpad instance at http://" + settings.ip + ":" + settings.port + "/"); if(!_.isEmpty(settings.users)){ console.log("The plugin admin page is at http://" + settings.ip + ":" + settings.port + "/admin/plugins"); } @@ -75,6 +75,10 @@ exports.restartServer = function () { next(); }); + if(settings.trustProxy){ + app.enable('trust proxy'); + } + app.configure(function() { hooks.callAll("expressConfigure", {"app": app}); }); diff --git a/src/node/hooks/express/admin.js b/src/node/hooks/express/admin.js index 766370fc..70539f0c 100644 --- a/src/node/hooks/express/admin.js +++ b/src/node/hooks/express/admin.js @@ -2,6 +2,7 @@ var eejs = require('ep_etherpad-lite/node/eejs'); exports.expressCreateServer = function (hook_name, args, cb) { args.app.get('/admin', function(req, res) { + if('/' != req.path[req.path.length-1]) return res.redirect('/admin/'); res.send( eejs.require("ep_etherpad-lite/templates/admin/index.html", {}) ); }); } diff --git a/src/node/hooks/express/adminplugins.js b/src/node/hooks/express/adminplugins.js index 7e221cf1..d8f19bba 100644 --- a/src/node/hooks/express/adminplugins.js +++ b/src/node/hooks/express/adminplugins.js @@ -27,49 +27,84 @@ exports.socketio = function (hook_name, args, cb) { io.on('connection', function (socket) { if (!socket.handshake.session.user || !socket.handshake.session.user.is_admin) return; - socket.on("load", function (query) { + socket.on("getInstalled", function (query) { // send currently installed plugins - socket.emit("installed-results", {results: plugins.plugins}); - socket.emit("progress", {progress:1}); + var installed = Object.keys(plugins.plugins).map(function(plugin) { + return plugins.plugins[plugin].package + }) + socket.emit("results:installed", {installed: installed}); }); socket.on("checkUpdates", function() { - socket.emit("progress", {progress:0, message:'Checking for plugin updates...'}); // Check plugins for updates - installer.search({offset: 0, pattern: '', limit: 500}, /*useCache:*/true, function(data) { // hacky - if (!data.results) return; + installer.getAvailablePlugins(/*maxCacheAge:*/60*10, function(er, results) { + if(er) { + console.warn(er); + socket.emit("results:updatable", {updatable: {}}); + return; + } var updatable = _(plugins.plugins).keys().filter(function(plugin) { - if(!data.results[plugin]) return false; - var latestVersion = data.results[plugin]['dist-tags'].latest + if(!results[plugin]) return false; + var latestVersion = results[plugin].version var currentVersion = plugins.plugins[plugin].package.version return semver.gt(latestVersion, currentVersion) }); - socket.emit("updatable", {updatable: updatable}); - socket.emit("progress", {progress:1}); + socket.emit("results:updatable", {updatable: updatable}); }); }) + + socket.on("getAvailable", function (query) { + installer.getAvailablePlugins(/*maxCacheAge:*/false, function (er, results) { + if(er) { + console.error(er) + results = {} + } + socket.emit("results:available", results); + }); + }); socket.on("search", function (query) { - socket.emit("progress", {progress:0, message:'Fetching results...'}); - installer.search(query, true, function (progress) { - if (progress.results) - socket.emit("search-result", progress); - socket.emit("progress", progress); + installer.search(query.searchTerm, /*maxCacheAge:*/60*10, function (er, results) { + if(er) { + console.error(er) + results = {} + } + var res = Object.keys(results) + .map(function(pluginName) { + return results[pluginName] + }) + .filter(function(plugin) { + return !plugins.plugins[plugin.name] + }); + res = sortPluginList(res, query.sortBy, query.sortDir) + .slice(query.offset, query.offset+query.limit); + socket.emit("results:search", {results: res, query: query}); }); }); socket.on("install", function (plugin_name) { - socket.emit("progress", {progress:0, message:'Downloading and installing ' + plugin_name + "..."}); - installer.install(plugin_name, function (progress) { - socket.emit("progress", progress); + installer.install(plugin_name, function (er) { + if(er) console.warn(er) + socket.emit("finished:install", {plugin: plugin_name, error: er? er.message : null}); }); }); socket.on("uninstall", function (plugin_name) { - socket.emit("progress", {progress:0, message:'Uninstalling ' + plugin_name + "..."}); - installer.uninstall(plugin_name, function (progress) { - socket.emit("progress", progress); + installer.uninstall(plugin_name, function (er) { + if(er) console.warn(er) + socket.emit("finished:uninstall", {plugin: plugin_name, error: er? er.message : null}); }); }); }); } + +function sortPluginList(plugins, property, /*ASC?*/dir) { + return plugins.sort(function(a, b) { + if (a[property] < b[property]) + return dir? -1 : 1; + if (a[property] > b[property]) + return dir? 1 : -1; + // a must be equal to b + return 0; + }) +}
\ No newline at end of file diff --git a/src/node/hooks/express/apicalls.js b/src/node/hooks/express/apicalls.js index e57e1d35..db0fc81f 100644 --- a/src/node/hooks/express/apicalls.js +++ b/src/node/hooks/express/apicalls.js @@ -1,5 +1,6 @@ var log4js = require('log4js'); var apiLogger = log4js.getLogger("API"); +var clientLogger = log4js.getLogger("client"); var formidable = require('formidable'); var apiHandler = require('../../handler/APIHandler'); @@ -42,10 +43,10 @@ exports.expressCreateServer = function (hook_name, args, cb) { }); }); - //The Etherpad client side sends information about how a disconnect happen + //The Etherpad client side sends information about how a disconnect happened args.app.post('/ep/pad/connection-diagnostic-info', function(req, res) { new formidable.IncomingForm().parse(req, function(err, fields, files) { - console.log("DIAGNOSTIC-INFO: " + fields.diagnosticInfo); + clientLogger.info("DIAGNOSTIC-INFO: " + fields.diagnosticInfo); res.end("OK"); }); }); @@ -53,8 +54,18 @@ exports.expressCreateServer = function (hook_name, args, cb) { //The Etherpad client side sends information about client side javscript errors args.app.post('/jserror', function(req, res) { new formidable.IncomingForm().parse(req, function(err, fields, files) { - console.error("CLIENT SIDE JAVASCRIPT ERROR: " + fields.errorInfo); + try { + var data = JSON.parse(fields.errorInfo) + }catch(e){ + return res.end() + } + clientLogger.warn(data.msg+' --', data); res.end("OK"); }); }); + + //Provide a possibility to query the latest available API version + args.app.get('/api', function (req, res) { + res.json({"currentVersion" : apiHandler.latestApiVersion}); + }); } diff --git a/src/node/hooks/express/errorhandling.js b/src/node/hooks/express/errorhandling.js index 3c595683..087dd50e 100644 --- a/src/node/hooks/express/errorhandling.js +++ b/src/node/hooks/express/errorhandling.js @@ -1,5 +1,6 @@ var os = require("os"); var db = require('../../db/DB'); +var stats = require('ep_etherpad-lite/node/stats') exports.onShutdown = false; @@ -28,6 +29,7 @@ exports.gracefulShutdown = function(err) { }, 3000); } +process.on('uncaughtException', exports.gracefulShutdown); exports.expressCreateServer = function (hook_name, args, cb) { exports.app = args.app; @@ -39,6 +41,7 @@ exports.expressCreateServer = function (hook_name, args, cb) { // allowing you to respond however you like res.send(500, { error: 'Sorry, something bad happened!' }); console.error(err.stack? err.stack : err.toString()); + stats.meter('http500').mark() }) //connect graceful shutdown with sigint and uncaughtexception @@ -47,6 +50,4 @@ exports.expressCreateServer = function (hook_name, args, cb) { //https://github.com/joyent/node/issues/1553 process.on('SIGINT', exports.gracefulShutdown); } - - process.on('uncaughtException', exports.gracefulShutdown); -} +}
\ No newline at end of file diff --git a/src/node/hooks/express/importexport.js b/src/node/hooks/express/importexport.js index 9754ffa6..f5a3e5a1 100644 --- a/src/node/hooks/express/importexport.js +++ b/src/node/hooks/express/importexport.js @@ -15,7 +15,7 @@ exports.expressCreateServer = function (hook_name, args, cb) { //if abiword is disabled, and this is a format we only support with abiword, output a message if (settings.abiword == null && ["odt", "pdf", "doc"].indexOf(req.params.type) !== -1) { - res.send("Abiword is not enabled at this Etherpad Lite instance. Set the path to Abiword in settings.json to enable this feature"); + res.send("Abiword is not enabled at this Etherpad instance. Set the path to Abiword in settings.json to enable this feature"); return; } diff --git a/src/node/hooks/express/padreadonly.js b/src/node/hooks/express/padreadonly.js index af5cbed3..9a0a52bf 100644 --- a/src/node/hooks/express/padreadonly.js +++ b/src/node/hooks/express/padreadonly.js @@ -16,50 +16,50 @@ exports.expressCreateServer = function (hook_name, args, cb) { //translate the read only pad to a padId function(callback) { - readOnlyManager.getPadId(req.params.id, function(err, _padId) - { - if(ERR(err, callback)) return; + readOnlyManager.getPadId(req.params.id, function(err, _padId) + { + if(ERR(err, callback)) return; - padId = _padId; + padId = _padId; - //we need that to tell hasPadAcess about the pad - req.params.pad = padId; + //we need that to tell hasPadAcess about the pad + req.params.pad = padId; - callback(); - }); + callback(); + }); }, //render the html document function(callback) { - //return if the there is no padId - if(padId == null) - { - callback("notfound"); - return; - } + //return if the there is no padId + if(padId == null) + { + callback("notfound"); + return; + } - hasPadAccess(req, res, function() - { - //render the html document - exporthtml.getPadHTMLDocument(padId, null, false, function(err, _html) - { - if(ERR(err, callback)) return; - html = _html; - callback(); - }); - }); + hasPadAccess(req, res, function() + { + //render the html document + exporthtml.getPadHTMLDocument(padId, null, false, function(err, _html) + { + if(ERR(err, callback)) return; + html = _html; + callback(); + }); + }); } ], function(err) { //throw any unexpected error if(err && err != "notfound") - ERR(err); + ERR(err); if(err == "notfound") - res.send(404, '404 - Not Found'); + res.send(404, '404 - Not Found'); else - res.send(html); + res.send(html); }); }); -}
\ No newline at end of file +} diff --git a/src/node/hooks/express/padurlsanitize.js b/src/node/hooks/express/padurlsanitize.js index 29782b69..2aadccdc 100644 --- a/src/node/hooks/express/padurlsanitize.js +++ b/src/node/hooks/express/padurlsanitize.js @@ -12,20 +12,20 @@ exports.expressCreateServer = function (hook_name, args, cb) { else { padManager.sanitizePadId(padId, function(sanitizedPadId) { - //the pad id was sanitized, so we redirect to the sanitized version - if(sanitizedPadId != padId) - { + //the pad id was sanitized, so we redirect to the sanitized version + if(sanitizedPadId != padId) + { var real_url = sanitizedPadId; var query = url.parse(req.url).query; if ( query ) real_url += '?' + query; - res.header('Location', real_url); - res.send(302, 'You should be redirected to <a href="' + real_url + '">' + real_url + '</a>'); - } - //the pad id was fine, so just render it - else - { - next(); - } + res.header('Location', real_url); + res.send(302, 'You should be redirected to <a href="' + real_url + '">' + real_url + '</a>'); + } + //the pad id was fine, so just render it + else + { + next(); + } }); } }); diff --git a/src/node/hooks/express/specialpages.js b/src/node/hooks/express/specialpages.js index 44002461..7d051965 100644 --- a/src/node/hooks/express/specialpages.js +++ b/src/node/hooks/express/specialpages.js @@ -2,6 +2,10 @@ var path = require('path'); var eejs = require('ep_etherpad-lite/node/eejs'); exports.expressCreateServer = function (hook_name, args, cb) { + // expose current stats + args.app.get('/stats', function(req, res) { + res.json(require('ep_etherpad-lite/node/stats').toJSON()) + }) //serve index.html under / args.app.get('/', function(req, res) @@ -45,11 +49,11 @@ exports.expressCreateServer = function (hook_name, args, cb) { //there is no custom favicon, send the default favicon if(err) { - filePath = path.normalize(__dirname + "/../../../static/favicon.ico"); - res.sendfile(filePath); + filePath = path.normalize(__dirname + "/../../../static/favicon.ico"); + res.sendfile(filePath); } }); }); -}
\ No newline at end of file +} diff --git a/src/node/hooks/express/swagger.js b/src/node/hooks/express/swagger.js new file mode 100644 index 00000000..e8daa61c --- /dev/null +++ b/src/node/hooks/express/swagger.js @@ -0,0 +1,430 @@ +var log4js = require('log4js'); +var express = require('express'); +var apiHandler = require('../../handler/APIHandler'); +var apiCaller = require('./apicalls').apiCaller; +var settings = require("../../utils/Settings"); + +var swaggerModels = { + 'models': { + 'SessionInfo' : { + "id": 'SessionInfo', + "properties": { + "id": { + "type": "string" + }, + "authorID": { + "type": "string" + }, + "groupID":{ + "type":"string" + }, + "validUntil":{ + "type":"long" + } + } + }, + 'UserInfo' : { + "id": 'UserInfo', + "properties": { + "id": { + "type": "string" + }, + "colorId": { + "type": "string" + }, + "name":{ + "type":"string" + }, + "timestamp":{ + "type":"long" + } + } + }, + 'Message' : { + "id": 'Message', + "properties": { + "text": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "userName":{ + "type":"string" + }, + "time":{ + "type":"long" + } + } + } + } +}; + +function sessionListResponseProcessor(res) { + if (res.data) { + var sessions = []; + for (var sessionId in res.data) { + var sessionInfo = res.data[sessionId]; + sessionId["id"] = sessionId; + sessions.push(sessionInfo); + } + res.data = sessions; + } + + return res; +} + +// We'll add some more info to the API methods +var API = { + + // Group + "group": { + "create" : { + "func" : "createGroup", + "description": "creates a new group", + "response": {"groupID":{"type":"string"}} + }, + "createIfNotExistsFor" : { + "func": "createGroupIfNotExistsFor", + "description": "this functions helps you to map your application group ids to Etherpad group ids", + "response": {"groupID":{"type":"string"}} + }, + "delete" : { + "func": "deleteGroup", + "description": "deletes a group" + }, + "listPads" : { + "func": "listPads", + "description": "returns all pads of this group", + "response": {"padIDs":{"type":"List", "items":{"type":"string"}}} + }, + "createPad" : { + "func": "createGroupPad", + "description": "creates a new pad in this group" + }, + "listSessions": { + "func": "listSessionsOfGroup", + "responseProcessor": sessionListResponseProcessor, + "description": "", + "response": {"sessions":{"type":"List", "items":{"type":"SessionInfo"}}} + }, + "list": { + "func": "listAllGroups", + "description": "", + "response": {"groupIDs":{"type":"List", "items":{"type":"string"}}} + }, + }, + + // Author + "author": { + "create" : { + "func" : "createAuthor", + "description": "creates a new author", + "response": {"authorID":{"type":"string"}} + }, + "createIfNotExistsFor": { + "func": "createAuthorIfNotExistsFor", + "description": "this functions helps you to map your application author ids to Etherpad author ids", + "response": {"authorID":{"type":"string"}} + }, + "listPads": { + "func": "listPadsOfAuthor", + "description": "returns an array of all pads this author contributed to", + "response": {"padIDs":{"type":"List", "items":{"type":"string"}}} + }, + "listSessions": { + "func": "listSessionsOfAuthor", + "responseProcessor": sessionListResponseProcessor, + "description": "returns all sessions of an author", + "response": {"sessions":{"type":"List", "items":{"type":"SessionInfo"}}} + }, + // We need an operation that return a UserInfo so it can be picked up by the codegen :( + "getName" : { + "func": "getAuthorName", + "description": "Returns the Author Name of the author", + "responseProcessor": function(response) { + if (response.data) { + response["info"] = {"name": response.data.authorName}; + delete response["data"]; + } + }, + "response": {"info":{"type":"UserInfo"}} + } + }, + "session": { + "create" : { + "func": "createSession", + "description": "creates a new session. validUntil is an unix timestamp in seconds", + "response": {"sessionID":{"type":"string"}} + }, + "delete" : { + "func": "deleteSession", + "description": "deletes a session" + }, + // We need an operation that returns a SessionInfo so it can be picked up by the codegen :( + "info": { + "func": "getSessionInfo", + "description": "returns informations about a session", + "responseProcessor": function(response) { + // move this to info + if (response.data) { + response["info"] = response.data; + delete response["data"]; + } + }, + "response": {"info":{"type":"SessionInfo"}} + } + }, + "pad": { + "listAll" : { + "func": "listAllPads", + "description": "list all the pads", + "response": {"padIDs":{"type":"List", "items": {"type" : "string"}}} + }, + "createDiffHTML" : { + "func" : "createDiffHTML", + "description": "", + "response": {} + }, + "create" : { + "func" : "createPad", + "description": "creates a new (non-group) pad. Note that if you need to create a group Pad, you should call createGroupPad" + }, + "getText" : { + "func" : "getText", + "description": "returns the text of a pad", + "response": {"text":{"type":"string"}} + }, + "setText" : { + "func" : "setText", + "description": "sets the text of a pad" + }, + "getHTML": { + "func" : "getHTML", + "description": "returns the text of a pad formatted as HTML", + "response": {"html":{"type":"string"}} + }, + "setHTML": { + "func" : "setHTML", + "description": "sets the text of a pad with HTML" + }, + "getRevisionsCount": { + "func" : "getRevisionsCount", + "description": "returns the number of revisions of this pad", + "response": {"revisions":{"type":"long"}} + }, + "getLastEdited": { + "func" : "getLastEdited", + "description": "returns the timestamp of the last revision of the pad", + "response": {"lastEdited":{"type":"long"}} + }, + "delete": { + "func" : "deletePad", + "description": "deletes a pad" + }, + "getReadOnlyID": { + "func" : "getReadOnlyID", + "description": "returns the read only link of a pad", + "response": {"readOnlyID":{"type":"string"}} + }, + "setPublicStatus": { + "func": "setPublicStatus", + "description": "sets a boolean for the public status of a pad" + }, + "getPublicStatus": { + "func": "getPublicStatus", + "description": "return true of false", + "response": {"publicStatus":{"type":"boolean"}} + }, + "setPassword": { + "func": "setPassword", + "description": "returns ok or a error message" + }, + "isPasswordProtected": { + "func": "isPasswordProtected", + "description": "returns true or false", + "response": {"passwordProtection":{"type":"boolean"}} + }, + "authors": { + "func": "listAuthorsOfPad", + "description": "returns an array of authors who contributed to this pad", + "response": {"authorIDs":{"type":"List", "items":{"type" : "string"}}} + }, + "usersCount": { + "func": "padUsersCount", + "description": "returns the number of user that are currently editing this pad", + "response": {"padUsersCount":{"type": "long"}} + }, + "users": { + "func": "padUsers", + "description": "returns the list of users that are currently editing this pad", + "response": {"padUsers":{"type":"List", "items":{"type": "UserInfo"}}} + }, + "sendClientsMessage": { + "func": "sendClientsMessage", + "description": "sends a custom message of type msg to the pad" + }, + "checkToken" : { + "func": "checkToken", + "description": "returns ok when the current api token is valid" + }, + "getChatHistory": { + "func": "getChatHistory", + "description": "returns the chat history", + "response": {"messages":{"type":"List", "items": {"type" : "Message"}}} + }, + // We need an operation that returns a Message so it can be picked up by the codegen :( + "getChatHead": { + "func": "getChatHead", + "description": "returns the chatHead (chat-message) of the pad", + "responseProcessor": function(response) { + // move this to info + if (response.data) { + response["chatHead"] = {"time": response.data["chatHead"]}; + delete response["data"]; + } + }, + "response": {"chatHead":{"type":"Message"}} + } + } +}; + +function capitalise(string){ + return string.charAt(0).toUpperCase() + string.slice(1); +} + +for (var resource in API) { + for (var func in API[resource]) { + + // The base response model + var responseModel = { + "properties": { + "code":{ + "type":"int" + }, + "message":{ + "type":"string" + } + } + }; + + var responseModelId = "Response"; + + // Add the data properties (if any) to the response + if (API[resource][func]["response"]) { + // This is a specific response so let's set a new id + responseModelId = capitalise(resource) + capitalise(func) + "Response"; + + for(var prop in API[resource][func]["response"]) { + var propType = API[resource][func]["response"][prop]; + responseModel["properties"][prop] = propType; + } + } + + // Add the id + responseModel["id"] = responseModelId; + + // Add this to the swagger models + swaggerModels['models'][responseModelId] = responseModel; + + // Store the response model id + API[resource][func]["responseClass"] = responseModelId; + + } +} + +function newSwagger() { + var swagger_module = require.resolve("swagger-node-express"); + if (require.cache[swagger_module]) { + // delete the child modules from cache + require.cache[swagger_module].children.forEach(function(m) {delete require.cache[m.id];}); + // delete the module from cache + delete require.cache[swagger_module]; + } + return require("swagger-node-express"); +} + +exports.expressCreateServer = function (hook_name, args, cb) { + + for (var version in apiHandler.version) { + + var swagger = newSwagger(); + var basePath = "/rest/" + version; + + // Let's put this under /rest for now + var subpath = express(); + + args.app.use(basePath, subpath); + + swagger.setAppHandler(subpath); + + swagger.addModels(swaggerModels); + + for (var resource in API) { + + for (var funcName in API[resource]) { + var func = API[resource][funcName]; + + // get the api function + var apiFunc = apiHandler.version[version][func["func"]]; + + // Skip this one if it does not exist in the version + if(!apiFunc) { + continue; + } + + var swaggerFunc = { + 'spec': { + "description" : func["description"], + "path" : "/" + resource + "/" + funcName, + "summary" : funcName, + "nickname" : funcName, + "method": "GET", + "params" : apiFunc.map( function(param) { + return swagger.queryParam(param, param, "string"); + }), + "responseClass" : func["responseClass"] + }, + 'action': (function(func, responseProcessor) { + return function (req,res) { + req.params.version = version; + req.params.func = func; // call the api function + + //wrap the send function so we can process the response + res.__swagger_send = res.send; + res.send = function (response) { + // ugly but we need to get this as json + response = JSON.parse(response); + // process the response if needed + if (responseProcessor) { + response = responseProcessor(response); + } + // Let's move everything out of "data" + if (response.data) { + for(var prop in response.data) { + response[prop] = response.data[prop]; + delete response.data; + } + } + response = JSON.stringify(response); + res.__swagger_send(response); + }; + + apiCaller(req, res, req.query); + }; + })(func["func"], func["responseProcessor"]) // must use a closure here + }; + + swagger.addGet(swaggerFunc); + } + } + + swagger.setHeaders = function setHeaders(res) { + res.header('Access-Control-Allow-Origin', "*"); + }; + + swagger.configureSwaggerPaths("", "/api" , ""); + + swagger.configure("http://" + settings.ip + ":" + settings.port + basePath, version); + } +}; diff --git a/src/node/hooks/express/webaccess.js b/src/node/hooks/express/webaccess.js index 50323ef6..433d5094 100644 --- a/src/node/hooks/express/webaccess.js +++ b/src/node/hooks/express/webaccess.js @@ -4,7 +4,8 @@ var httpLogger = log4js.getLogger("http"); var settings = require('../../utils/Settings'); var randomString = require('ep_etherpad-lite/static/js/pad_utils').randomString; var hooks = require('ep_etherpad-lite/static/js/pluginfw/hooks'); - +var ueberStore = require('../../db/SessionStore'); +var stats = require('ep_etherpad-lite/node/stats') //checks for basic http auth exports.basicAuth = function (req, res, next) { @@ -32,8 +33,8 @@ exports.basicAuth = function (req, res, next) { // If auth headers are present use them to authenticate... if (req.headers.authorization && req.headers.authorization.search('Basic ') === 0) { var userpass = new Buffer(req.headers.authorization.split(' ')[1], 'base64').toString().split(":") - var username = userpass[0]; - var password = userpass[1]; + var username = userpass.shift(); + var password = userpass.join(':'); if (settings.users[username] != undefined && settings.users[username].password == password) { settings.users[username].username = username; @@ -91,10 +92,21 @@ exports.basicAuth = function (req, res, next) { exports.secret = null; exports.expressConfigure = function (hook_name, args, cb) { + // Measure response time + args.app.use(function(req, res, next) { + var stopWatch = stats.timer('httpRequests').start(); + var sendFn = res.send + res.send = function() { + stopWatch.end() + sendFn.apply(res, arguments) + } + next() + }) + // If the log level specified in the config file is WARN or ERROR the application server never starts listening to requests as reported in issue #158. // Not installing the log4js connect logger when the log level has a higher severity than INFO since it would not log at that level anyway. if (!(settings.loglevel === "WARN" || settings.loglevel == "ERROR")) - args.app.use(log4js.connectLogger(httpLogger, { level: log4js.levels.INFO, format: ':status, :method :url'})); + args.app.use(log4js.connectLogger(httpLogger, { level: log4js.levels.DEBUG, format: ':status, :method :url'})); /* Do not let express create the session, so that we can retain a * reference to it for socket.io to use. Also, set the key (cookie @@ -102,15 +114,14 @@ exports.expressConfigure = function (hook_name, args, cb) { * handling it cleaner :) */ if (!exports.sessionStore) { - exports.sessionStore = new express.session.MemoryStore(); - exports.secret = randomString(32); + exports.sessionStore = new ueberStore(); + exports.secret = settings.sessionKey; // Isn't this being reset each time the server spawns? } - - args.app.use(express.cookieParser(exports.secret)); + args.app.use(express.cookieParser(exports.secret)); args.app.sessionStore = exports.sessionStore; - args.app.use(express.session({store: args.app.sessionStore, - key: 'express_sid' })); + args.app.use(express.session({secret: exports.secret, store: args.app.sessionStore, key: 'express_sid' })); args.app.use(exports.basicAuth); } + diff --git a/src/node/server.js b/src/node/server.js index db75d7e3..605ce847 100755 --- a/src/node/server.js +++ b/src/node/server.js @@ -23,10 +23,15 @@ var log4js = require('log4js') , async = require('async') + , stats = require('./stats') ; log4js.replaceConsole(); +stats.gauge('memoryUsage', function() { + return process.memoryUsage().rss +}) + var settings , db , plugins @@ -48,7 +53,6 @@ async.waterfall([ plugins = require("ep_etherpad-lite/static/js/pluginfw/plugins"); hooks = require("ep_etherpad-lite/static/js/pluginfw/hooks"); hooks.plugins = plugins; - callback(); }, diff --git a/src/node/stats.js b/src/node/stats.js new file mode 100644 index 00000000..24efaf4a --- /dev/null +++ b/src/node/stats.js @@ -0,0 +1,3 @@ +var measured = require('measured') + +module.exports = measured.createCollection();
\ No newline at end of file diff --git a/src/node/utils/Abiword.js b/src/node/utils/Abiword.js index 27138e64..5f12bd97 100644 --- a/src/node/utils/Abiword.js +++ b/src/node/utils/Abiword.js @@ -63,7 +63,7 @@ if(os.type().indexOf("Windows") > -1) callback(); }); - } + }; exports.convertFile = function(srcFile, destFile, type, callback) { @@ -100,7 +100,7 @@ else { //add data to buffer stdoutBuffer+=data.toString(); - + //we're searching for the prompt, cause this means everything we need is in the buffer if(stdoutBuffer.search("AbiWord:>") != -1) { @@ -121,27 +121,29 @@ else firstPrompt = false; } }); - } + }; spawnAbiword(); doConvertTask = function(task, callback) { abiword.stdin.write("convert " + task.srcFile + " " + task.destFile + " " + task.type + "\n"); - //create a callback that calls the task callback and the caller callback stdoutCallback = function (err) { callback(); console.log("queue continue"); - task.callback(err); + try{ + task.callback(err); + }catch(e){ + console.error("Abiword File failed to convert", e); + } }; - } + }; //Queue with the converts we have to do var queue = async.queue(doConvertTask, 1); - exports.convertFile = function(srcFile, destFile, type, callback) - { + { queue.push({"srcFile": srcFile, "destFile": destFile, "type": type, "callback": callback}); }; } diff --git a/src/node/utils/ExportDokuWiki.js b/src/node/utils/ExportDokuWiki.js index d2f71236..f5d2d177 100644 --- a/src/node/utils/ExportDokuWiki.js +++ b/src/node/utils/ExportDokuWiki.js @@ -316,7 +316,7 @@ exports.getPadDokuWikiDocument = function (padId, revNum, callback) getPadDokuWiki(pad, revNum, callback); }); -} +}; function _escapeDokuWiki(s) { diff --git a/src/node/utils/ExportHelper.js b/src/node/utils/ExportHelper.js new file mode 100644 index 00000000..136896f0 --- /dev/null +++ b/src/node/utils/ExportHelper.js @@ -0,0 +1,87 @@ +/** + * Helpers for export requests + */ + +/* + * 2011 Peter 'Pita' Martischka (Primary Technology Ltd) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS-IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var async = require("async"); +var Changeset = require("ep_etherpad-lite/static/js/Changeset"); +var padManager = require("../db/PadManager"); +var ERR = require("async-stacktrace"); +var Security = require('ep_etherpad-lite/static/js/security'); +var hooks = require('ep_etherpad-lite/static/js/pluginfw/hooks'); + +exports.getPadPlainText = function(pad, revNum){ + var atext = ((revNum !== undefined) ? pad.getInternalRevisionAText(revNum) : pad.atext()); + var textLines = atext.text.slice(0, -1).split('\n'); + var attribLines = Changeset.splitAttributionLines(atext.attribs, atext.text); + var apool = pad.pool(); + + var pieces = []; + for (var i = 0; i < textLines.length; i++){ + var line = _analyzeLine(textLines[i], attribLines[i], apool); + if (line.listLevel){ + var numSpaces = line.listLevel * 2 - 1; + var bullet = '*'; + pieces.push(new Array(numSpaces + 1).join(' '), bullet, ' ', line.text, '\n'); + } + else{ + pieces.push(line.text, '\n'); + } + } + + return pieces.join(''); +}; + + +exports._analyzeLine = function(text, aline, apool){ + var line = {}; + + // identify list + var lineMarker = 0; + line.listLevel = 0; + if (aline){ + var opIter = Changeset.opIterator(aline); + if (opIter.hasNext()){ + var listType = Changeset.opAttributeValue(opIter.next(), 'list', apool); + if (listType){ + lineMarker = 1; + listType = /([a-z]+)([12345678])/.exec(listType); + if (listType){ + line.listTypeName = listType[1]; + line.listLevel = Number(listType[2]); + } + } + } + } + if (lineMarker){ + line.text = text.substring(1); + line.aline = Changeset.subattribution(aline, 1); + } + else{ + line.text = text; + line.aline = aline; + } + return line; +}; + + +exports._encodeWhitespace = function(s){ + return s.replace(/[^\x21-\x7E\s\t\n\r]/g, function(c){ + return "&#" +c.charCodeAt(0) + ";"; + }); +}; diff --git a/src/node/utils/ExportHtml.js b/src/node/utils/ExportHtml.js index 06919488..5179adf6 100644 --- a/src/node/utils/ExportHtml.js +++ b/src/node/utils/ExportHtml.js @@ -21,31 +21,9 @@ var padManager = require("../db/PadManager"); var ERR = require("async-stacktrace"); var Security = require('ep_etherpad-lite/static/js/security'); var hooks = require('ep_etherpad-lite/static/js/pluginfw/hooks'); -function getPadPlainText(pad, revNum) -{ - var atext = ((revNum !== undefined) ? pad.getInternalRevisionAText(revNum) : pad.atext()); - var textLines = atext.text.slice(0, -1).split('\n'); - var attribLines = Changeset.splitAttributionLines(atext.attribs, atext.text); - var apool = pad.pool(); - - var pieces = []; - for (var i = 0; i < textLines.length; i++) - { - var line = _analyzeLine(textLines[i], attribLines[i], apool); - if (line.listLevel) - { - var numSpaces = line.listLevel * 2 - 1; - var bullet = '*'; - pieces.push(new Array(numSpaces + 1).join(' '), bullet, ' ', line.text, '\n'); - } - else - { - pieces.push(line.text, '\n'); - } - } - - return pieces.join(''); -} +var getPadPlainText = require('./ExportHelper').getPadPlainText; +var _analyzeLine = require('./ExportHelper')._analyzeLine; +var _encodeWhitespace = require('./ExportHelper')._encodeWhitespace; function getPadHTML(pad, revNum, callback) { @@ -469,7 +447,7 @@ function getHTMLFromAtext(pad, atext, authorColors) pieces.push('</li></ul>'); } lists.length--; - } + } var lineContentFromHook = hooks.callAllStr("getLineHTMLForExport", { line: line, @@ -477,14 +455,14 @@ function getHTMLFromAtext(pad, atext, authorColors) attribLine: attribLines[i], text: textLines[i] }, " ", " ", ""); - if (lineContentFromHook) - { - pieces.push(lineContentFromHook, ''); - } - else - { - pieces.push(lineContent, '<br>'); - } + if (lineContentFromHook) + { + pieces.push(lineContentFromHook, ''); + } + else + { + pieces.push(lineContent, '<br>'); + } } } @@ -503,45 +481,6 @@ function getHTMLFromAtext(pad, atext, authorColors) return pieces.join(''); } -function _analyzeLine(text, aline, apool) -{ - var line = {}; - - // identify list - var lineMarker = 0; - line.listLevel = 0; - if (aline) - { - var opIter = Changeset.opIterator(aline); - if (opIter.hasNext()) - { - var listType = Changeset.opAttributeValue(opIter.next(), 'list', apool); - if (listType) - { - lineMarker = 1; - listType = /([a-z]+)([12345678])/.exec(listType); - if (listType) - { - line.listTypeName = listType[1]; - line.listLevel = Number(listType[2]); - } - } - } - } - if (lineMarker) - { - line.text = text.substring(1); - line.aline = Changeset.subattribution(aline, 1); - } - else - { - line.text = text; - line.aline = aline; - } - - return line; -} - exports.getPadHTMLDocument = function (padId, revNum, noDocType, callback) { padManager.getPad(padId, function (err, pad) @@ -551,7 +490,7 @@ exports.getPadHTMLDocument = function (padId, revNum, noDocType, callback) var head = (noDocType ? '' : '<!doctype html>\n') + '<html lang="en">\n' + (noDocType ? '' : '<head>\n' + - '<title>' + Security.escapeHTML(padId) + '</title>\n' + + '<title>' + Security.escapeHTML(padId) + '</title>\n' + '<meta charset="utf-8">\n' + '<style> * { font-family: arial, sans-serif;\n' + 'font-size: 13px;\n' + @@ -576,103 +515,83 @@ exports.getPadHTMLDocument = function (padId, revNum, noDocType, callback) callback(null, head + html + foot); }); }); -} +}; -function _encodeWhitespace(s) { - return s.replace(/[^\x21-\x7E\s\t\n\r]/g, function(c) - { - return "&#" +c.charCodeAt(0) + ";" - }); -} // copied from ACE +var _REGEX_WORDCHAR = /[\u0030-\u0039\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u1FFF\u3040-\u9FFF\uF900-\uFDFF\uFE70-\uFEFE\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFDC]/; +var _REGEX_SPACE = /\s/; +var _REGEX_URLCHAR = new RegExp('(' + /[-:@a-zA-Z0-9_.,~%+\/\\?=&#;()$]/.source + '|' + _REGEX_WORDCHAR.source + ')'); +var _REGEX_URL = new RegExp(/(?:(?:https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt):\/\/|mailto:)/.source + _REGEX_URLCHAR.source + '*(?![:.,;])' + _REGEX_URLCHAR.source, 'g'); + +// returns null if no URLs, or [[startIndex1, url1], [startIndex2, url2], ...] -function _processSpaces(s) +function _findURLs(text) { - var doesWrap = true; - if (s.indexOf("<") < 0 && !doesWrap) + _REGEX_URL.lastIndex = 0; + var urls = null; + var execResult; + while ((execResult = _REGEX_URL.exec(text))) { + urls = (urls || []); + var startIndex = execResult.index; + var url = execResult[0]; + urls.push([startIndex, url]); + } + + return urls; +} + + +// copied from ACE +function _processSpaces(s){ + var doesWrap = true; + if (s.indexOf("<") < 0 && !doesWrap){ // short-cut return s.replace(/ /g, ' '); } var parts = []; - s.replace(/<[^>]*>?| |[^ <]+/g, function (m) - { + s.replace(/<[^>]*>?| |[^ <]+/g, function (m){ parts.push(m); }); - if (doesWrap) - { + if (doesWrap){ var endOfLine = true; var beforeSpace = false; // last space in a run is normal, others are nbsp, // end of line is nbsp - for (var i = parts.length - 1; i >= 0; i--) - { + for (var i = parts.length - 1; i >= 0; i--){ var p = parts[i]; - if (p == " ") - { + if (p == " "){ if (endOfLine || beforeSpace) parts[i] = ' '; endOfLine = false; beforeSpace = true; } - else if (p.charAt(0) != "<") - { + else if (p.charAt(0) != "<"){ endOfLine = false; beforeSpace = false; } } // beginning of line is nbsp - for (var i = 0; i < parts.length; i++) - { + for (var i = 0; i < parts.length; i++){ var p = parts[i]; - if (p == " ") - { + if (p == " "){ parts[i] = ' '; break; } - else if (p.charAt(0) != "<") - { + else if (p.charAt(0) != "<"){ break; } } } else { - for (var i = 0; i < parts.length; i++) - { + for (var i = 0; i < parts.length; i++){ var p = parts[i]; - if (p == " ") - { + if (p == " "){ parts[i] = ' '; } } } return parts.join(''); } - - -// copied from ACE -var _REGEX_WORDCHAR = /[\u0030-\u0039\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u1FFF\u3040-\u9FFF\uF900-\uFDFF\uFE70-\uFEFE\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFDC]/; -var _REGEX_SPACE = /\s/; -var _REGEX_URLCHAR = new RegExp('(' + /[-:@a-zA-Z0-9_.,~%+\/\\?=&#;()$]/.source + '|' + _REGEX_WORDCHAR.source + ')'); -var _REGEX_URL = new RegExp(/(?:(?:https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt):\/\/|mailto:)/.source + _REGEX_URLCHAR.source + '*(?![:.,;])' + _REGEX_URLCHAR.source, 'g'); - -// returns null if no URLs, or [[startIndex1, url1], [startIndex2, url2], ...] - - -function _findURLs(text) -{ - _REGEX_URL.lastIndex = 0; - var urls = null; - var execResult; - while ((execResult = _REGEX_URL.exec(text))) - { - urls = (urls || []); - var startIndex = execResult.index; - var url = execResult[0]; - urls.push([startIndex, url]); - } - - return urls; -} diff --git a/src/node/utils/ExportTxt.js b/src/node/utils/ExportTxt.js new file mode 100644 index 00000000..f0b62743 --- /dev/null +++ b/src/node/utils/ExportTxt.js @@ -0,0 +1,292 @@ +/** + * TXT export + */ + +/* + * 2013 John McLear + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS-IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var async = require("async"); +var Changeset = require("ep_etherpad-lite/static/js/Changeset"); +var padManager = require("../db/PadManager"); +var ERR = require("async-stacktrace"); +var Security = require('ep_etherpad-lite/static/js/security'); +var hooks = require('ep_etherpad-lite/static/js/pluginfw/hooks'); +var getPadPlainText = require('./ExportHelper').getPadPlainText; +var _analyzeLine = require('./ExportHelper')._analyzeLine; + +// This is slightly different than the HTML method as it passes the output to getTXTFromAText +function getPadTXT(pad, revNum, callback) +{ + var atext = pad.atext; + var html; + async.waterfall([ + // fetch revision atext + + + function (callback) + { + if (revNum != undefined) + { + pad.getInternalRevisionAText(revNum, function (err, revisionAtext) + { + if(ERR(err, callback)) return; + atext = revisionAtext; + callback(); + }); + } + else + { + callback(null); + } + }, + + // convert atext to html + + + function (callback) + { + html = getTXTFromAtext(pad, atext); // only this line is different to the HTML function + callback(null); + }], + // run final callback + + + function (err) + { + if(ERR(err, callback)) return; + callback(null, html); + }); +} + +exports.getPadTXT = getPadTXT; + + +// This is different than the functionality provided in ExportHtml as it provides formatting +// functionality that is designed specifically for TXT exports +function getTXTFromAtext(pad, atext, authorColors) +{ + var apool = pad.apool(); + var textLines = atext.text.slice(0, -1).split('\n'); + var attribLines = Changeset.splitAttributionLines(atext.attribs, atext.text); + + var tags = ['h1', 'h2', 'strong', 'em', 'u', 's']; + var props = ['heading1', 'heading2', 'bold', 'italic', 'underline', 'strikethrough']; + var anumMap = {}; + var css = ""; + + props.forEach(function (propName, i) + { + var propTrueNum = apool.putAttrib([propName, true], true); + if (propTrueNum >= 0) + { + anumMap[propTrueNum] = i; + } + }); + + function getLineTXT(text, attribs) + { + var propVals = [false, false, false]; + var ENTER = 1; + var STAY = 2; + var LEAVE = 0; + + // Use order of tags (b/i/u) as order of nesting, for simplicity + // and decent nesting. For example, + // <b>Just bold<b> <b><i>Bold and italics</i></b> <i>Just italics</i> + // becomes + // <b>Just bold <i>Bold and italics</i></b> <i>Just italics</i> + var taker = Changeset.stringIterator(text); + var assem = Changeset.stringAssembler(); + var openTags = []; + + var idx = 0; + + function processNextChars(numChars) + { + if (numChars <= 0) + { + return; + } + + var iter = Changeset.opIterator(Changeset.subattribution(attribs, idx, idx + numChars)); + idx += numChars; + + while (iter.hasNext()) + { + var o = iter.next(); + var propChanged = false; + Changeset.eachAttribNumber(o.attribs, function (a) + { + if (a in anumMap) + { + var i = anumMap[a]; // i = 0 => bold, etc. + if (!propVals[i]) + { + propVals[i] = ENTER; + propChanged = true; + } + else + { + propVals[i] = STAY; + } + } + }); + for (var i = 0; i < propVals.length; i++) + { + if (propVals[i] === true) + { + propVals[i] = LEAVE; + propChanged = true; + } + else if (propVals[i] === STAY) + { + propVals[i] = true; // set it back + } + } + // now each member of propVal is in {false,LEAVE,ENTER,true} + // according to what happens at start of span + if (propChanged) + { + // leaving bold (e.g.) also leaves italics, etc. + var left = false; + for (var i = 0; i < propVals.length; i++) + { + var v = propVals[i]; + if (!left) + { + if (v === LEAVE) + { + left = true; + } + } + else + { + if (v === true) + { + propVals[i] = STAY; // tag will be closed and re-opened + } + } + } + + var tags2close = []; + + for (var i = propVals.length - 1; i >= 0; i--) + { + if (propVals[i] === LEAVE) + { + //emitCloseTag(i); + tags2close.push(i); + propVals[i] = false; + } + else if (propVals[i] === STAY) + { + //emitCloseTag(i); + tags2close.push(i); + } + } + + for (var i = 0; i < propVals.length; i++) + { + if (propVals[i] === ENTER || propVals[i] === STAY) + { + propVals[i] = true; + } + } + // propVals is now all {true,false} again + } // end if (propChanged) + + var chars = o.chars; + if (o.lines) + { + chars--; // exclude newline at end of line, if present + } + + var s = taker.take(chars); + + // removes the characters with the code 12. Don't know where they come + // from but they break the abiword parser and are completly useless + // s = s.replace(String.fromCharCode(12), ""); + + // remove * from s, it's just not needed on a blank line.. This stops + // plugins from being able to display * at the beginning of a line + // s = s.replace("*", ""); // Then remove it + + assem.append(s); + } // end iteration over spans in line + + var tags2close = []; + for (var i = propVals.length - 1; i >= 0; i--) + { + if (propVals[i]) + { + tags2close.push(i); + propVals[i] = false; + } + } + + } // end processNextChars + processNextChars(text.length - idx); + return(assem.toString()); + } // end getLineHTML + var pieces = [css]; + + // Need to deal with constraints imposed on HTML lists; can + // only gain one level of nesting at once, can't change type + // mid-list, etc. + // People might use weird indenting, e.g. skip a level, + // so we want to do something reasonable there. We also + // want to deal gracefully with blank lines. + // => keeps track of the parents level of indentation + var lists = []; // e.g. [[1,'bullet'], [3,'bullet'], ...] + for (var i = 0; i < textLines.length; i++) + { + var line = _analyzeLine(textLines[i], attribLines[i], apool); + var lineContent = getLineTXT(line.text, line.aline); + if(line.listTypeName == "bullet"){ + lineContent = "* " + lineContent; // add a bullet + } + if(line.listLevel > 0){ + for (var j = line.listLevel - 1; j >= 0; j--){ + pieces.push('\t'); + } + if(line.listTypeName == "number"){ + pieces.push(line.listLevel + ". "); + // This is bad because it doesn't truly reflect what the user + // sees because browsers do magic on nested <ol><li>s + } + pieces.push(lineContent, '\n'); + }else{ + pieces.push(lineContent, '\n'); + } + } + + return pieces.join(''); +} +exports.getTXTFromAtext = getTXTFromAtext; + +exports.getPadTXTDocument = function (padId, revNum, noDocType, callback) +{ + padManager.getPad(padId, function (err, pad) + { + if(ERR(err, callback)) return; + + getPadTXT(pad, revNum, function (err, html) + { + if(ERR(err, callback)) return; + callback(null, html); + }); + }); +}; diff --git a/src/node/utils/ImportHtml.js b/src/node/utils/ImportHtml.js index 9f2fd351..abba2ac1 100644 --- a/src/node/utils/ImportHtml.js +++ b/src/node/utils/ImportHtml.js @@ -26,7 +26,13 @@ function setPadHTML(pad, html, callback) var apiLogger = log4js.getLogger("ImportHtml"); // Parse the incoming HTML with jsdom - var doc = jsdom(html.replace(/>\n+</g, '><')); + try{ + var doc = jsdom(html.replace(/>\n+</g, '><')); + }catch(e){ + apiLogger.warn("Error importing, possibly caused by malformed HTML"); + var doc = jsdom("<html><body><div>Error during import, possibly malformed HTML</div></body></html>"); + } + apiLogger.debug('html:'); apiLogger.debug(html); diff --git a/src/node/utils/Minify.js b/src/node/utils/Minify.js index 5fc8accb..58d08b30 100644 --- a/src/node/utils/Minify.js +++ b/src/node/utils/Minify.js @@ -125,11 +125,11 @@ function requestURIs(locations, method, headers, callback) { } function completed() { - var statuss = responses.map(function (x) {return x[0]}); - var headerss = responses.map(function (x) {return x[1]}); - var contentss = responses.map(function (x) {return x[2]}); + var statuss = responses.map(function (x) {return x[0];}); + var headerss = responses.map(function (x) {return x[1];}); + var contentss = responses.map(function (x) {return x[2];}); callback(statuss, headerss, contentss); - }; + } } /** @@ -263,7 +263,7 @@ function getAceFile(callback) { var filename = item.match(/"([^"]*)"/)[1]; var request = require('request'); - var baseURI = 'http://localhost:' + settings.port + var baseURI = 'http://localhost:' + settings.port; var resourceURI = baseURI + path.normalize(path.join('/static/', filename)); resourceURI = resourceURI.replace(/\\/g, '/'); // Windows (safe generally?) diff --git a/src/node/utils/Settings.js b/src/node/utils/Settings.js index 8435ab2c..ee696b03 100644 --- a/src/node/utils/Settings.js +++ b/src/node/utils/Settings.js @@ -1,5 +1,5 @@ /** - * The Settings Modul reads the settings out of settings.json and provides + * The Settings Modul reads the settings out of settings.json and provides * this information to the other modules */ @@ -24,8 +24,10 @@ var os = require("os"); var path = require('path'); var argv = require('./Cli').argv; var npm = require("npm/lib/npm.js"); -var vm = require('vm'); +var jsonminify = require("jsonminify"); var log4js = require("log4js"); +var randomString = require('ep_etherpad-lite/static/js/pad_utils').randomString; + /* Root path of the installation */ exports.root = path.normalize(path.join(npm.dir, "..")); @@ -33,7 +35,7 @@ exports.root = path.normalize(path.join(npm.dir, "..")); /** * The app title, visible e.g. in the browser window */ -exports.title = "Etherpad Lite"; +exports.title = "Etherpad"; /** * The app favicon fully specified url, visible e.g. in the browser window @@ -46,7 +48,7 @@ exports.faviconTimeslider = "../../" + exports.favicon; * The IP ep-lite should listen to */ exports.ip = "0.0.0.0"; - + /** * The Port ep-lite should listen to */ @@ -75,7 +77,7 @@ exports.dbSettings = { "filename" : path.join(exports.root, "dirty.db") }; /** * The default Text of a new pad */ -exports.defaultPadText = "Welcome to Etherpad Lite!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nEtherpad Lite on Github: http:\/\/j.mp/ep-lite\n"; +exports.defaultPadText = "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nEtherpad on Github: http:\/\/j.mp/ep-lite\n"; /** * A flag that requires any user to have a valid session (via the api) before accessing a pad @@ -107,11 +109,26 @@ exports.abiword = null; */ exports.loglevel = "INFO"; +/** + * Disable IP logging + */ +exports.disableIPlogging = false; + /* * log4js appender configuration */ exports.logconfig = { appenders: [{ type: "console" }]}; +/* +* Session Key, do not sure this. +*/ +exports.sessionKey = false; + +/* +* Trust Proxy, whether or not trust the x-forwarded-for header. +*/ +exports.trustProxy = false; + /* This setting is used if you need authentication and/or * authorization. Note: /admin always requires authentication, and * either authorization by a module, or a user with is_admin set */ @@ -130,14 +147,12 @@ exports.abiwordAvailable = function() { return "no"; } -} - - +}; exports.reloadSettings = function reloadSettings() { // Discover where the settings file lives var settingsFilename = argv.settings || "settings.json"; - settingsFilename = path.resolve(path.join(root, settingsFilename)); + settingsFilename = path.resolve(path.join(exports.root, settingsFilename)); var settingsStr; try{ @@ -151,7 +166,8 @@ exports.reloadSettings = function reloadSettings() { var settings; try { if(settingsStr) { - settings = vm.runInContext('exports = '+settingsStr, vm.createContext(), "settings.json"); + settingsStr = jsonminify(settingsStr).replace(",]","]").replace(",}","}"); + settings = JSON.parse(settingsStr); } }catch(e){ console.error('There was an error processing your settings.json file: '+e.message); @@ -179,15 +195,20 @@ exports.reloadSettings = function reloadSettings() { console.warn("Unknown Setting: '" + i + "'. This setting doesn't exist or it was removed"); } } - + log4js.configure(exports.logconfig);//Configure the logging appenders log4js.setGlobalLogLevel(exports.loglevel);//set loglevel log4js.replaceConsole(); + if(!exports.sessionKey){ // If the secretKey isn't set we also create yet another unique value here + exports.sessionKey = randomString(32); + console.warn("You need to set a sessionKey value in settings.json, this will allow your users to reconnect to your Etherpad Instance if your instance restarts"); + } + if(exports.dbType === "dirty"){ - console.warn("DirtyDB is used. This is fine for testing but not recommended for production.") + console.warn("DirtyDB is used. This is fine for testing but not recommended for production."); } -} +}; // initially load settings exports.reloadSettings(); diff --git a/src/node/utils/caching_middleware.js b/src/node/utils/caching_middleware.js index c6b23713..d30dc398 100644 --- a/src/node/utils/caching_middleware.js +++ b/src/node/utils/caching_middleware.js @@ -23,7 +23,7 @@ var util = require('util'); var settings = require('./Settings'); var semver = require('semver'); -var existsSync = (semver.satisfies(process.version, '>=0.8.0')) ? fs.existsSync : path.existsSync +var existsSync = (semver.satisfies(process.version, '>=0.8.0')) ? fs.existsSync : path.existsSync; var CACHE_DIR = path.normalize(path.join(settings.root, 'var/')); CACHE_DIR = existsSync(CACHE_DIR) ? CACHE_DIR : undefined; @@ -133,7 +133,7 @@ CachingMiddleware.prototype = new function () { old_res.write = res.write; old_res.end = res.end; res.write = function(data, encoding) {}; - res.end = function(data, encoding) { respond() }; + res.end = function(data, encoding) { respond(); }; } else { res.writeHead(status, headers); } @@ -168,7 +168,7 @@ CachingMiddleware.prototype = new function () { } else if (req.method == 'GET') { var readStream = fs.createReadStream(pathStr); res.writeHead(statusCode, headers); - util.pump(readStream, res); + readStream.pipe(res); } else { res.writeHead(statusCode, headers); res.end(); diff --git a/src/node/utils/padDiff.js b/src/node/utils/padDiff.js index 1b3cf58f..88fa5cba 100644 --- a/src/node/utils/padDiff.js +++ b/src/node/utils/padDiff.js @@ -68,7 +68,7 @@ PadDiff.prototype._isClearAuthorship = function(changeset){ return false; return true; -} +}; PadDiff.prototype._createClearAuthorship = function(rev, callback){ var self = this; @@ -84,7 +84,7 @@ PadDiff.prototype._createClearAuthorship = function(rev, callback){ callback(null, changeset); }); -} +}; PadDiff.prototype._createClearStartAtext = function(rev, callback){ var self = this; @@ -107,7 +107,7 @@ PadDiff.prototype._createClearStartAtext = function(rev, callback){ callback(null, newAText); }); }); -} +}; PadDiff.prototype._getChangesetsInBulk = function(startRev, count, callback) { var self = this; @@ -124,7 +124,7 @@ PadDiff.prototype._getChangesetsInBulk = function(startRev, count, callback) { async.forEach(revisions, function(rev, callback){ self._pad.getRevision(rev, function(err, revision){ if(err){ - return callback(err) + return callback(err); } var arrayNum = rev-startRev; @@ -137,7 +137,7 @@ PadDiff.prototype._getChangesetsInBulk = function(startRev, count, callback) { }, function(err){ callback(err, changesets, authors); }); -} +}; PadDiff.prototype._addAuthors = function(authors) { var self = this; @@ -147,7 +147,7 @@ PadDiff.prototype._addAuthors = function(authors) { self._authors.push(author); } }); -} +}; PadDiff.prototype._createDiffAtext = function(callback) { var self = this; @@ -219,7 +219,7 @@ PadDiff.prototype._createDiffAtext = function(callback) { } ); }); -} +}; PadDiff.prototype.getHtml = function(callback){ //cache the html @@ -279,7 +279,7 @@ PadDiff.prototype.getAuthors = function(callback){ } else { callback(null, self._authors); } -} +}; PadDiff.prototype._extendChangesetWithAuthor = function(changeset, author, apool) { //unpack @@ -312,7 +312,7 @@ PadDiff.prototype._extendChangesetWithAuthor = function(changeset, author, apool //return the modified changeset return Changeset.pack(unpacked.oldLen, unpacked.newLen, assem.toString(), unpacked.charBank); -} +}; //this method is 80% like Changeset.inverse. I just changed so instead of reverting, it adds deletions and attribute changes to to the atext. PadDiff.prototype._createDeletionChangeset = function(cs, startAText, apool) { @@ -331,14 +331,6 @@ PadDiff.prototype._createDeletionChangeset = function(cs, startAText, apool) { } } - function lines_length() { - if ((typeof lines.length) == "number") { - return lines.length; - } else { - return lines.length(); - } - } - function alines_get(idx) { if (alines.get) { return alines.get(idx); @@ -347,14 +339,6 @@ PadDiff.prototype._createDeletionChangeset = function(cs, startAText, apool) { } } - function alines_length() { - if ((typeof alines.length) == "number") { - return alines.length; - } else { - return alines.length(); - } - } - var curLine = 0; var curChar = 0; var curLineOpIter = null; @@ -463,7 +447,7 @@ PadDiff.prototype._createDeletionChangeset = function(cs, startAText, apool) { // If the text this operator applies to is only a star, than this is a false positive and should be ignored if (csOp.attribs && textBank != "*") { var deletedAttrib = apool.putAttrib(["removed", true]); - var authorAttrib = apool.putAttrib(["author", ""]);; + var authorAttrib = apool.putAttrib(["author", ""]); attribKeys.length = 0; attribValues.length = 0; @@ -473,7 +457,7 @@ PadDiff.prototype._createDeletionChangeset = function(cs, startAText, apool) { if(apool.getAttribKey(n) === "author"){ authorAttrib = n; - }; + } }); var undoBackToAttribs = cachedStrFunc(function (attribs) { diff --git a/src/node/utils/tar.json b/src/node/utils/tar.json index b010f851..70001f8f 100644 --- a/src/node/utils/tar.json +++ b/src/node/utils/tar.json @@ -46,7 +46,6 @@ , "Changeset.js" , "ChangesetUtils.js" , "skiplist.js" - , "virtual_lines.js" , "cssmanager.js" , "colorutils.js" , "undomodule.js" diff --git a/src/package.json b/src/package.json index 03df87f9..0c59cfbb 100644 --- a/src/package.json +++ b/src/package.json @@ -5,7 +5,7 @@ "keywords" : ["etherpad", "realtime", "collaborative", "editor"], "author" : "Peter 'Pita' Martischka <petermartischka@googlemail.com> - Primary Technology Ltd", "contributors" : [ - { "name": "John McLear" }, + { "name": "John McLear" }, { "name": "Hans Pinckaers" }, { "name": "Robin Buse" }, { "name": "Marcel Klehr" } @@ -16,18 +16,18 @@ "require-kernel" : "1.0.5", "resolve" : "0.2.x", "socket.io" : "0.9.x", - "ueberDB" : "0.1.91", + "ueberDB" : "0.2.x", + "express" : "3.1.0", "async" : "0.1.x", - "express" : "3.x", - "connect" : "2.4.x", + "connect" : "2.7.x", "clean-css" : "0.3.2", "uglify-js" : "1.2.5", "formidable" : "1.0.9", - "log4js" : "0.5.x", + "log4js" : "0.6.6", + "nodemailer" : "0.3.x", "jsdom-nocontextifiy" : "0.2.10", "async-stacktrace" : "0.0.2", - "npm" : "1.1.x", - "npm-registry-client" : "0.2.10", + "npm" : "1.2.x", "ejs" : "0.6.1", "graceful-fs" : "1.1.5", "slide" : "1.1.3", @@ -36,7 +36,11 @@ "tinycon" : "0.0.1", "underscore" : "1.3.1", "unorm" : "1.0.0", - "languages4translatewiki" : "0.1.3" + "languages4translatewiki" : "0.1.3", + "swagger-node-express" : "1.2.3", + "channels" : "0.0.x", + "jsonminify" : "0.2.2", + "measured" : "0.1.3" }, "bin": { "etherpad-lite": "./node/server.js" }, "devDependencies": { @@ -44,6 +48,9 @@ }, "engines" : { "node" : ">=0.6.3", "npm" : ">=1.0" - }, - "version" : "1.2.8" + }, + "repository" : { "type" : "git", + "url" : "http://github.com/ether/etherpad-lite.git" + }, + "version" : "1.3.0" } diff --git a/src/static/css/admin.css b/src/static/css/admin.css index b6823842..97104de9 100644 --- a/src/static/css/admin.css +++ b/src/static/css/admin.css @@ -43,7 +43,7 @@ div.innerwrapper { box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.2);
margin: auto;
max-width: 1150px;
- min-height: 100%;
+ min-height: 101%;/*always display a scrollbar*/
}
h1 {
@@ -102,12 +102,26 @@ input[type="text"] { max-width: 500px;
}
+.sort {
+ cursor: pointer;
+}
+.sort:after {
+ content: '▲▼'
+}
+.sort.up:after {
+ content:'▲'
+}
+.sort.down:after {
+ content:'▼'
+}
+
table {
border: 1px solid #ddd;
border-radius: 3px;
border-spacing: 0;
width: 100%;
margin: 20px 0;
+ position:relative; /* Allows us to position the loading indicator relative to the table */
}
table thead tr {
@@ -122,13 +136,42 @@ td, th { display: none;
}
-#progress {
+#installed-plugins td>div {
+ position: relative;/* Allows us to position the loading indicator relative to this row */
+ display: inline-block; /*make this fill the whole cell*/
+ width:100%;
+}
+
+.messages {
+ height: 5em;
+}
+.messages * {
+ display: none;
+ text-align: center;
+}
+.messages .fetching {
+ display: block;
+}
+
+.progress {
position: absolute;
- bottom: 50px;
+ top: 0; left: 0; bottom:0; right:0;
+ padding: auto;
+
+ background: rgb(255,255,255);
+ display: none;
}
-#progress img {
- vertical-align: top;
+#search-progress.progress {
+ padding-top: 20%;
+ background: rgba(255,255,255,0.3);
+}
+
+.progress * {
+ display: block;
+ margin: 0 auto;
+ text-align: center;
+ color: #666;
}
.settings {
@@ -147,7 +190,25 @@ a:link, a:visited, a:hover, a:focus { }
a:focus, a:hover {
- border-bottom: #333333 1px solid;
+ text-decoration: underline;
+}
+
+.installed-results a:link,
+.search-results a:link,
+.installed-results a:visited,
+.search-results a:visited,
+.installed-results a:hover,
+.search-results a:hover,
+.installed-results a:focus,
+.search-results a:focus {
+ text-decoration: underline;
+}
+
+.installed-results a:focus,
+.search-results a:focus,
+.installed-results a:hover,
+.search-results a:hover {
+ text-decoration: none;
}
pre {
diff --git a/src/static/css/iframe_editor.css b/src/static/css/iframe_editor.css index dd7452b2..beec4971 100644 --- a/src/static/css/iframe_editor.css +++ b/src/static/css/iframe_editor.css @@ -17,6 +17,7 @@ ul, ol, li { padding: 0; margin: 0; } + ul { margin-left: 1.5em; } ul ul { margin-left: 0 !important; } ul.list-bullet1 { margin-left: 1.5em; } @@ -38,25 +39,6 @@ ul.list-bullet6 { list-style-type: square; } ul.list-bullet7 { list-style-type: disc; } ul.list-bullet8 { list-style-type: circle; } -ol.list-number1 { margin-left: 1.9em; } -ol.list-number2 { margin-left: 3em; } -ol.list-number3 { margin-left: 4.5em; } -ol.list-number4 { margin-left: 6em; } -ol.list-number5 { margin-left: 7.5em; } -ol.list-number6 { margin-left: 9em; } -ol.list-number7 { margin-left: 10.5em; } -ol.list-number8 { margin-left: 12em; } - -ol { list-style-type: decimal; } -ol.list-number1 { list-style-type: decimal; } -ol.list-number2 { list-style-type: lower-latin; } -ol.list-number3 { list-style-type: lower-roman; } -ol.list-number4 { list-style-type: decimal; } -ol.list-number5 { list-style-type: lower-latin; } -ol.list-number6 { list-style-type: lower-roman; } -ol.list-number7 { list-style-type: decimal; } -ol.list-number8 { list-style-type: lower-latin; } - ul.list-indent1 { margin-left: 1.5em; } ul.list-indent2 { margin-left: 3em; } ul.list-indent3 { margin-left: 4.5em; } @@ -78,7 +60,8 @@ ul.list-indent8 { list-style-type: none; } body { margin: 0; white-space: nowrap; -} + word-wrap: normal; +} #outerdocbody { background-color: #fff; @@ -92,7 +75,8 @@ body.grayedout { background-color: #eee !important } } body.doesWrap { - white-space: normal; + white-space: pre-wrap; /*Must be pre-wrap to keep trailing spaces. Otherwise you get a zombie caret, walking around your screen (see #1766) */ + word-wrap: break-word; /* fix for issue #1648 - firefox not wrapping long lines (without spaces) correctly */ } #innerdocbody { @@ -175,8 +159,80 @@ p { font-family: monospace; /* overridden by lineMetricsDiv.style */ } -#overlaysdiv { position: absolute; left: -1000px; top: -1000px; } - +/* Stops super long lines without being spaces such as aaaaaaaaaaaaaa*100 breaking the editor + Commented out because it stops IE from being able to render the document, crazy IE bug is crazy. */ +/* .ace-line{ - overflow:hidden; /* Stops super long lines without being spaces such as aaaaaaaaaaaaaa*100 breaking the editor */ + overflow:hidden; +} +*/ + +ol { + list-style-type: decimal; +} + +ol > li { + display:inline; +} + +/* Set the indentation */ +ol.list-number1{ text-indent: 0px; } +ol.list-number2{ text-indent: 10px; } +ol.list-number3{ text-indent: 20px; } +ol.list-number4{ text-indent: 30px; } +ol.list-number5{ text-indent: 40px; } +ol.list-number6{ text-indent: 50px; } +ol.list-number7{ text-indent: 60px; } +ol.list-number8{ text-indent: 70px; } + +/* Add styling to the first item in a list */ + +.list-start-number1 { counter-reset: first second; } +.list-start-number2 { counter-reset: second; } +.list-start-number3 { counter-reset: third; } +.list-start-number4 { counter-reset: fourth; } +.list-start-number5 { counter-reset: fifth; } +.list-start-number6 { counter-reset: sixth; } +.list-start-number7 { counter-reset: seventh; } +.list-start-number8 { counter-reset: eighth; } + +/* The behavior for incrementing and the prefix */ +.list-number1 li:before { + content: counter(first) ". " ; + counter-increment: first; +} + +.list-number2 li:before { + content: counter(first) "." counter(second) ". "; + counter-increment: second; +} + +.list-number3 li:before { + content: counter(first) "." counter(second) "." counter(third) ". "; + counter-increment: third 1; +} + +.list-number4 li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) ". "; + counter-increment: fourth 1; +} + +.list-number5 li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) ". "; + counter-increment: fifth 1; +} + +.list-number6 li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) ". "; + counter-increment: sixth 1; +} + +.list-number7 li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) ". "; + counter-increment: seventh 1; +} + +.list-number8 li:before { + content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(eighth) ". " ; + counter-increment: eighth 1; } diff --git a/src/static/css/pad.css b/src/static/css/pad.css index 6034b5ed..0c1153fd 100644 --- a/src/static/css/pad.css +++ b/src/static/css/pad.css @@ -168,9 +168,9 @@ a img { } #editorcontainer { position: absolute; - width: 100%; top: 37px; /* + 1px border */ left: 0px; + right: 0px; bottom: 0px; z-index: 1; } @@ -179,6 +179,7 @@ a img { width: 100%; padding: 0; margin: 0; + left: 0; /* Required for safari fixes RTL */ } #editorloadingbox { padding-top: 100px; @@ -558,6 +559,15 @@ table#otheruserstable { margin: 4px 0 0 4px; position: absolute; } +#titlesticky{ + font-size: 10px; + padding-top:2px; + float: right; + text-align: right; + text-decoration: none; + cursor: pointer; + color: #555; +} #titlecross { font-size: 25px; float: right; @@ -575,6 +585,9 @@ table#otheruserstable { margin-right: 3px; margin-top: 2px; } +#exportColumn{ + margin-top:20px; +} .exporttype { margin-top: 4px; background-repeat: no-repeat; @@ -582,6 +595,7 @@ table#otheruserstable { background-image: url("../../static/img/etherpad_lite_icons.png"); color: #333; text-decoration: none; + padding-bottom:2px; } #exporthtml { background-position: 0px -299px @@ -616,9 +630,8 @@ table#otheruserstable { } #importsubmitinput { - height: 25px; - width: 85px; margin-top: 12px; + padding:2px 4px 2px 4px; } #importstatusball { height: 50px @@ -736,8 +749,9 @@ input[type=checkbox] { float: right } .popup { - font-size: 14px; - width: 450px; + font-size: 12px; + width: 80%; + max-width: 500px; padding: 10px; border-radius: 0 0 6px 6px; border: 1px solid #ccc; @@ -794,7 +808,6 @@ input[type=checkbox] { } .column { float: left; - width: 50%; } #settings, #importexport, @@ -827,7 +840,44 @@ input[type=checkbox] { padding: 4px 1px } } -@media screen and (max-width: 400px){ +@media all and (max-width: 400px){ + #gritter-notice-wrapper{ + max-height:172px; + overflow:hidden; + width:100% !important; + background-color: #ccc; + bottom:20px; + left:0px; + right:0px; + color:#000; + } + .gritter-close { + display:block !important; + left: auto !important; + right:5px; + } + #gritter-notice-wrapper.bottom-right{ + left:0px !important; + bottom:30px !important; + right:0px !important; + } + .gritter-item p{ + color:black; + font-size:16px; + } + .gritter-title{ + text-shadow: none !important; + color:black; + } + .gritter-item{ + padding:2px 11px 8px 4px; + } + .gritter-item-wrapper{ + margin:0; + } + .gritter-item-wrapper > div{ + background: none; + } #editorcontainer { top: 68px; } @@ -1017,3 +1067,14 @@ input[type=checkbox] { } /* End of gritter stuff */ +.activeButton{ + background: #eee; + background: -webkit-linear-gradient(#ddd, #fff); + background: -moz-linear-gradient(#ddd, #fff); + background: -o-linear-gradient(#ddd, #fff); + background: -ms-linear-gradient(#ddd, #fff); + background: linear-gradient(#ddd, #fff); + -webkit-box-shadow: 0 0 8px rgba(0,0,0,.1) inset; + -moz-box-shadow: 0 0 8px rgba(0,0,0,.1) inset; + box-shadow: 0 0 8px rgba(0,0,0,.1) inset; +} diff --git a/src/static/js/Changeset.js b/src/static/js/Changeset.js index b1604212..e47b3052 100644 --- a/src/static/js/Changeset.js +++ b/src/static/js/Changeset.js @@ -42,15 +42,15 @@ exports.error = function error(msg) { }; /** - * This method is user for assertions with Messages - * if assert fails, the error function called. + * This method is used for assertions with Messages + * if assert fails, the error function is called. * @param b {boolean} assertion condition * @param msgParts {string} error to be passed if it fails */ exports.assert = function assert(b, msgParts) { if (!b) { var msg = Array.prototype.slice.call(arguments, 1).join(''); - exports.error("exports: " + msg); + exports.error("Failed assertion: " + msg); } }; @@ -281,7 +281,7 @@ exports.checkRep = function (cs) { assem.endDocument(); var normalized = exports.pack(oldLen, calcNewLen, assem.toString(), charBank); - exports.assert(normalized == cs, normalized, ' != ', cs); + exports.assert(normalized == cs, 'Invalid changeset (checkRep failed)'); return cs; } @@ -673,9 +673,9 @@ exports.textLinesMutator = function (lines) { } //print(inSplice+" / "+isCurLineInSplice()+" / "+curSplice[0]+" / "+curSplice[1]+" / "+lines.length); /*if (inSplice && (! isCurLineInSplice()) && (curSplice[0] + curSplice[1] < lines.length)) { - print("BLAH"); - putCurLineInSplice(); - }*/ + print("BLAH"); + putCurLineInSplice(); +}*/ // tests case foo in remove(), which isn't otherwise covered in current impl } //debugPrint("skip"); @@ -1296,7 +1296,7 @@ exports.compose = function (cs1, cs2, pool) { var unpacked2 = exports.unpack(cs2); var len1 = unpacked1.oldLen; var len2 = unpacked1.newLen; - exports.assert(len2 == unpacked2.oldLen, "mismatched composition"); + exports.assert(len2 == unpacked2.oldLen, "mismatched composition of two changesets"); var len3 = unpacked2.newLen; var bankIter1 = exports.stringIterator(unpacked1.charBank); var bankIter2 = exports.stringIterator(unpacked2.charBank); @@ -1504,6 +1504,7 @@ exports.moveOpsToNewPool = function (cs, oldPool, newPool) { return upToDollar.replace(/\*([0-9a-z]+)/g, function (_, a) { var oldNum = exports.parseNum(a); var pair = oldPool.getAttrib(oldNum); + if(!pair) exports.error('Can\'t copy unknown attrib (reference attrib string to non-existant pool entry). Inconsistent attrib state!'); var newNum = newPool.putAttrib(pair); return '*' + exports.numToString(newNum); }) + fromDollar; @@ -1840,14 +1841,6 @@ exports.inverse = function (cs, lines, alines, pool) { } } - function lines_length() { - if ((typeof lines.length) == "number") { - return lines.length; - } else { - return lines.length(); - } - } - function alines_get(idx) { if (alines.get) { return alines.get(idx); @@ -1856,14 +1849,6 @@ exports.inverse = function (cs, lines, alines, pool) { } } - function alines_length() { - if ((typeof alines.length) == "number") { - return alines.length; - } else { - return alines.length(); - } - } - var curLine = 0; var curChar = 0; var curLineOpIter = null; @@ -2010,7 +1995,7 @@ exports.follow = function (cs1, cs2, reverseInsertOrder, pool) { var unpacked2 = exports.unpack(cs2); var len1 = unpacked1.oldLen; var len2 = unpacked2.oldLen; - exports.assert(len1 == len2, "mismatched follow"); + exports.assert(len1 == len2, "mismatched follow - cannot transform cs1 on top of cs2"); var chars1 = exports.stringIterator(unpacked1.charBank); var chars2 = exports.stringIterator(unpacked2.charBank); @@ -2105,7 +2090,9 @@ exports.follow = function (cs1, cs2, reverseInsertOrder, pool) { exports.copyOp(op2, opOut); op2.opcode = ''; } else if (!op2.opcode) { - exports.copyOp(op1, opOut); + // @NOTE: Critical bugfix for EPL issue #1625. We do not copy op1 here + // in order to prevent attributes from leaking into result changesets. + // exports.copyOp(op1, opOut); op1.opcode = ''; } else { // both keeps @@ -2188,7 +2175,7 @@ exports.composeWithDeletions = function (cs1, cs2, pool) { var unpacked2 = exports.unpack(cs2); var len1 = unpacked1.oldLen; var len2 = unpacked1.newLen; - exports.assert(len2 == unpacked2.oldLen, "mismatched composition"); + exports.assert(len2 == unpacked2.oldLen, "mismatched composition of two changesets"); var len3 = unpacked2.newLen; var bankIter1 = exports.stringIterator(unpacked1.charBank); var bankIter2 = exports.stringIterator(unpacked2.charBank); diff --git a/src/static/js/ace.js b/src/static/js/ace.js index 83ad9447..d2bbb484 100644 --- a/src/static/js/ace.js +++ b/src/static/js/ace.js @@ -1,5 +1,5 @@ /** - * This code is mostly from the old Etherpad. Please help us to comment this code. + * This code is mostly from the old Etherpad. Please help us to comment this code. * This helps other people to understand this code better and helps them to improve it. * TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED */ @@ -86,7 +86,7 @@ function Ace2Editor() }); actionsPendingInit = []; } - + ace2.registry[info.id] = info; // The following functions (prefixed by 'ace_') are exposed by editor, but @@ -97,7 +97,7 @@ function Ace2Editor() 'applyChangesToBase', 'applyPreparedChangesetToBase', 'setUserChangeNotificationCallback', 'setAuthorInfo', 'setAuthorSelectionRange', 'callWithAce', 'execCommand', 'replaceRange']; - + _.each(aceFunctionsPendingInit, function(fnName,i){ var prefix = 'ace_'; var name = prefix + fnName; @@ -105,18 +105,18 @@ function Ace2Editor() info[prefix + fnName].apply(this, arguments); }); }); - + editor.exportText = function() { if (!loaded) return "(awaiting init)\n"; return info.ace_exportText(); }; - + editor.getFrame = function() { return info.frame || null; }; - + editor.getDebugProperty = function(prop) { return info.ace_getDebugProperty(prop); @@ -221,16 +221,16 @@ function Ace2Editor() // calls to these functions ($$INCLUDE_...) are replaced when this file is processed // and compressed, putting the compressed code from the named file directly into the // source here. - // these lines must conform to a specific format because they are passed by the build script: + // these lines must conform to a specific format because they are passed by the build script: var includedCSS = []; var $$INCLUDE_CSS = function(filename) {includedCSS.push(filename)}; $$INCLUDE_CSS("../static/css/iframe_editor.css"); $$INCLUDE_CSS("../static/css/pad.css"); $$INCLUDE_CSS("../static/custom/pad.css"); - + var additionalCSS = _(hooks.callAll("aceEditorCSS")).map(function(path){ return '../static/plugins/' + path }); includedCSS = includedCSS.concat(additionalCSS); - + pushStyleTagsFor(iframeHTML, includedCSS); if (!Ace2Editor.EMBEDED && Ace2Editor.EMBEDED[KERNEL_SOURCE]) { @@ -304,16 +304,16 @@ window.onload = function () {\n\ $$INCLUDE_CSS("../static/css/iframe_editor.css"); $$INCLUDE_CSS("../static/css/pad.css"); $$INCLUDE_CSS("../static/custom/pad.css"); - - + + var additionalCSS = _(hooks.callAll("aceEditorCSS")).map(function(path){ return '../static/plugins/' + path }); includedCSS = includedCSS.concat(additionalCSS); - + pushStyleTagsFor(outerHTML, includedCSS); // bizarrely, in FF2, a file with no "external" dependencies won't finish loading properly // (throbs busy while typing) - outerHTML.push('<link rel="stylesheet" type="text/css" href="data:text/css,"/>', scriptTag(outerScript), '</head><body id="outerdocbody"><div id="sidediv"><!-- --></div><div id="linemetricsdiv">x</div><div id="overlaysdiv"><!-- --></div></body></html>'); + outerHTML.push('<style type="text/css" title="dynamicsyntax"></style>', '<link rel="stylesheet" type="text/css" href="data:text/css,"/>', scriptTag(outerScript), '</head><body id="outerdocbody"><div id="sidediv"><!-- --></div><div id="linemetricsdiv">x</div></body></html>'); var outerFrame = document.createElement("IFRAME"); outerFrame.name = "ace_outer"; diff --git a/src/static/js/ace2_inner.js b/src/static/js/ace2_inner.js index 8209c9bf..0aa9998a 100644 --- a/src/static/js/ace2_inner.js +++ b/src/static/js/ace2_inner.js @@ -1,5 +1,5 @@ /** - * This code is mostly from the old Etherpad. Please help us to comment this code. + * This code is mostly from the old Etherpad. Please help us to comment this code. * This helps other people to understand this code better and helps them to improve it. * TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED */ @@ -36,10 +36,10 @@ var isNodeText = Ace2Common.isNodeText, htmlPrettyEscape = Ace2Common.htmlPrettyEscape, noop = Ace2Common.noop; var hooks = require('./pluginfw/hooks'); - + function Ace2Inner(){ - + var makeChangesetTracker = require('./changesettracker').makeChangesetTracker; var colorutils = require('./colorutils').colorutils; var makeContentCollector = require('./contentcollector').makeContentCollector; @@ -51,11 +51,10 @@ function Ace2Inner(){ var linestylefilter = require('./linestylefilter').linestylefilter; var SkipList = require('./skiplist'); var undoModule = require('./undomodule').undoModule; - var makeVirtualLineView = require('./virtual_lines').makeVirtualLineView; var AttributeManager = require('./AttributeManager'); - + var DEBUG = false; //$$ build script replaces the string "var DEBUG=true;//$$" with "var DEBUG=false;" - // changed to false + // changed to false var isSetUp = false; var THE_TAB = ' '; //4 @@ -79,13 +78,12 @@ function Ace2Inner(){ iframe.ace_outerWin = null; // prevent IE 6 memory leak var sideDiv = iframe.nextSibling; var lineMetricsDiv = sideDiv.nextSibling; - var overlaysdiv = lineMetricsDiv.nextSibling; initLineNumbers(); var outsideKeyDown = noop; - + var outsideKeyPress = function(){return true;}; - + var outsideNotifyDirty = noop; // selFocusAtStart -- determines whether the selection extends "backwards", so that the focus @@ -101,19 +99,19 @@ function Ace2Inner(){ alines: [], apool: new AttribPool() }; - - // lines, alltext, alines, and DOM are set up in setup() + + // lines, alltext, alines, and DOM are set up in init() if (undoModule.enabled) { undoModule.apool = rep.apool; } - var root, doc; // set in setup() + var root, doc; // set in init() var isEditable = true; var doesWrap = true; var hasLineNumbers = true; var isStyled = true; - + // space around the innermost iframe element var iframePadLeft = MIN_LINEDIV_WIDTH + LINE_NUMBER_PADDING_RIGHT + EDIT_BODY_PADDING_LEFT; var iframePadTop = EDIT_BODY_PADDING_TOP; @@ -122,7 +120,7 @@ function Ace2Inner(){ var console = (DEBUG && window.console); var documentAttributeManager; - + if (!window.console) { var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; @@ -159,7 +157,7 @@ function Ace2Inner(){ var textFace = 'monospace'; var textSize = 12; - + function textLineHeight() { @@ -167,12 +165,14 @@ function Ace2Inner(){ } var dynamicCSS = null; + var outerDynamicCSS = null; var parentDynamicCSS = null; function initDynamicCSS() { dynamicCSS = makeCSSManager("dynamicsyntax"); - parentDynamicCSS = makeCSSManager("dynamicsyntax", true); + outerDynamicCSS = makeCSSManager("dynamicsyntax", "outer"); + parentDynamicCSS = makeCSSManager("dynamicsyntax", "parent"); } var changesetTracker = makeChangesetTracker(scheduler, rep.apool, { @@ -208,67 +208,89 @@ function Ace2Inner(){ }; editorInfo.ace_getAuthorInfos= getAuthorInfos; - function setAuthorInfo(author, info) + function setAuthorStyle(author, info) { - if ((typeof author) != "string") + if (!dynamicCSS) { + return; + } + var authorSelector = getAuthorColorClassSelector(getAuthorClassName(author)); + + var authorStyleSet = hooks.callAll('aceSetAuthorStyle', { + dynamicCSS: dynamicCSS, + parentDynamicCSS: parentDynamicCSS, + outerDynamicCSS: outerDynamicCSS, + info: info, + author: author, + authorSelector: authorSelector, + }); + + // Prevent default behaviour if any hook says so + if (_.any(authorStyleSet, function(it) { return it })) { - throw new Error("setAuthorInfo: author (" + author + ") is not a string"); + return } + if (!info) { - delete authorInfos[author]; - if (dynamicCSS) - { - dynamicCSS.removeSelectorStyle(getAuthorColorClassSelector(getAuthorClassName(author))); - parentDynamicCSS.removeSelectorStyle(getAuthorColorClassSelector(getAuthorClassName(author))); - } + dynamicCSS.removeSelectorStyle(authorSelector); + parentDynamicCSS.removeSelectorStyle(authorSelector); } else { - authorInfos[author] = info; if (info.bgcolor) { - if (dynamicCSS) + var bgcolor = info.bgcolor; + if ((typeof info.fade) == "number") { - var bgcolor = info.bgcolor; - if ((typeof info.fade) == "number") - { - bgcolor = fadeColor(bgcolor, info.fade); - } - - var authorStyle = dynamicCSS.selectorStyle(getAuthorColorClassSelector( - getAuthorClassName(author))); - var parentAuthorStyle = parentDynamicCSS.selectorStyle(getAuthorColorClassSelector( - getAuthorClassName(author))); - var anchorStyle = dynamicCSS.selectorStyle(getAuthorColorClassSelector( - getAuthorClassName(author))+' > a') - - // author color - authorStyle.backgroundColor = bgcolor; - parentAuthorStyle.backgroundColor = bgcolor; - - // text contrast - if(colorutils.luminosity(colorutils.css2triple(bgcolor)) < 0.5) - { - authorStyle.color = '#ffffff'; - parentAuthorStyle.color = '#ffffff'; - }else{ - authorStyle.color = null; - parentAuthorStyle.color = null; - } - - // anchor text contrast - if(colorutils.luminosity(colorutils.css2triple(bgcolor)) < 0.55) - { - anchorStyle.color = colorutils.triple2css(colorutils.complementary(colorutils.css2triple(bgcolor))); - }else{ - anchorStyle.color = null; - } + bgcolor = fadeColor(bgcolor, info.fade); + } + + var authorStyle = dynamicCSS.selectorStyle(authorSelector); + var parentAuthorStyle = parentDynamicCSS.selectorStyle(authorSelector); + var anchorStyle = dynamicCSS.selectorStyle(authorSelector + ' > a') + + // author color + authorStyle.backgroundColor = bgcolor; + parentAuthorStyle.backgroundColor = bgcolor; + + // text contrast + if(colorutils.luminosity(colorutils.css2triple(bgcolor)) < 0.5) + { + authorStyle.color = '#ffffff'; + parentAuthorStyle.color = '#ffffff'; + }else{ + authorStyle.color = null; + parentAuthorStyle.color = null; + } + + // anchor text contrast + if(colorutils.luminosity(colorutils.css2triple(bgcolor)) < 0.55) + { + anchorStyle.color = colorutils.triple2css(colorutils.complementary(colorutils.css2triple(bgcolor))); + }else{ + anchorStyle.color = null; } } } } + function setAuthorInfo(author, info) + { + if ((typeof author) != "string") + { + throw new Error("setAuthorInfo: author (" + author + ") is not a string"); + } + if (!info) + { + delete authorInfos[author]; + } + else + { + authorInfos[author] = info; + } + setAuthorStyle(author, info); + } + function getAuthorClassName(author) { return "author-" + author.replace(/[^a-y0-9]/g, function(c) @@ -322,19 +344,6 @@ function Ace2Inner(){ } } - function boldColorFromColor(lightColorCSS) - { - var color = colorutils.css2triple(lightColorCSS); - - // amp up the saturation to full - color = colorutils.saturate(color); - - // normalize brightness based on luminosity - color = colorutils.scaleColor(color, 0, 0.5 / colorutils.luminosity(color)); - - return colorutils.triple2css(color); - } - function fadeColor(colorCSS, fadeFrac) { var color = colorutils.css2triple(colorCSS); @@ -527,22 +536,6 @@ function Ace2Inner(){ } editorInfo.ace_inCallStackIfNecessary = inCallStackIfNecessary; - function recolorLineByKey(key) - { - if (rep.lines.containsKey(key)) - { - var offset = rep.lines.offsetOfKey(key); - var width = rep.lines.atKey(key).width; - recolorLinesInRange(offset, offset + width); - } - } - - function getLineKeyForOffset(charOffset) - { - return rep.lines.atOffset(charOffset).key; - } - - function dispose() { disposed = true; @@ -897,14 +890,14 @@ function Ace2Inner(){ editorInfo.ace_doReturnKey = doReturnKey; editorInfo.ace_isBlockElement = isBlockElement; editorInfo.ace_getLineListType = getLineListType; - + editorInfo.ace_callWithAce = function(fn, callStack, normalize) { var wrapper = function() { return fn(editorInfo); }; - + if (normalize !== undefined) { var wrapper1 = wrapper; @@ -930,14 +923,14 @@ function Ace2Inner(){ // @param value the value to set to editorInfo.ace_setProperty = function(key, value) { - - // Convinience function returning a setter for a class on an element + + // Convinience function returning a setter for a class on an element var setClassPresenceNamed = function(element, cls){ return function(value){ setClassPresence(element, cls, !! value) } }; - + // These properties are exposed var setters = { wraps: setWraps, @@ -952,19 +945,23 @@ function Ace2Inner(){ }, grayedout: setClassPresenceNamed(outerWin.document.body, "grayedout"), dmesg: function(){ dmesg = window.dmesg = value; }, - userauthor: function(value){ + userauthor: function(value){ thisAuthor = String(value); documentAttributeManager.author = thisAuthor; }, styled: setStyled, textface: setTextFace, textsize: setTextSize, - rtlistrue: setClassPresenceNamed(root, "rtl") + rtlistrue: function(value) { + setClassPresence(root, "rtl", value) + setClassPresence(root, "ltr", !value) + document.documentElement.dir = value? 'rtl' : 'ltr' + } }; - + var setter = setters[key.toLowerCase()]; - - // check if setter is present + + // check if setter is present if(setter !== undefined){ setter(value) } @@ -1009,6 +1006,11 @@ function Ace2Inner(){ return caughtErrors.slice(); }; + editorInfo.ace_getDocument = function() + { + return doc; + }; + editorInfo.ace_getDebugProperty = function(prop) { if (prop == "debugger") @@ -1068,7 +1070,7 @@ function Ace2Inner(){ return false; } }; - + isTimeUp.elapsed = function() { return now() - startTime; @@ -1140,34 +1142,6 @@ function Ace2Inner(){ } editorInfo.ace_fastIncorp = fastIncorp; - function incorpIfQuick() - { - var me = incorpIfQuick; - var failures = (me.failures || 0); - if (failures < 5) - { - var isTimeUp = newTimeLimit(40); - var madeChanges = incorporateUserChanges(isTimeUp); - if (isTimeUp()) - { - me.failures = failures + 1; - } - return true; - } - else - { - var skipCount = (me.skipCount || 0); - skipCount++; - if (skipCount == 20) - { - skipCount = 0; - me.failures = 0; - } - me.skipCount = skipCount; - } - return false; - } - var idleWorkTimer = makeIdleAction(function() { @@ -1449,7 +1423,7 @@ function Ace2Inner(){ var p = PROFILER("getSelection", false); var selection = getSelection(); p.end(); - + function topLevel(n) { if ((!n) || n == root) return null; @@ -1459,7 +1433,7 @@ function Ace2Inner(){ } return n; } - + if (selection) { var node1 = topLevel(selection.startPoint.node); @@ -1622,9 +1596,17 @@ function Ace2Inner(){ lines = ccData.lines; var lineAttribs = ccData.lineAttribs; var linesWrapped = ccData.linesWrapped; + var scrollToTheLeftNeeded = false; if (linesWrapped > 0) { + if(!browser.ie){ + // chrome decides in it's infinite wisdom that its okay to put the browsers visisble window in the middle of the span + // an outcome of this is that the first chars of the string are no longer visible to the user.. Yay chrome.. + // Move the browsers visible area to the left hand side of the span + // Firefox isn't quite so bad, but it's still pretty quirky. + var scrollToTheLeftNeeded = true; + } // console.log("Editor warning: " + linesWrapped + " long line" + (linesWrapped == 1 ? " was" : "s were") + " hard-wrapped into " + ccData.numLinesAfter + " lines."); } @@ -1692,6 +1674,10 @@ function Ace2Inner(){ //console.log("removed: "+id); }); + if(scrollToTheLeftNeeded){ // needed to stop chrome from breaking the ui when long strings without spaces are pasted + $("#innerdocbody").scrollLeft(0); + } + p.mark("findsel"); // if the nodes that define the selection weren't encountered during // content collection, figure out where those nodes are now. @@ -1705,7 +1691,7 @@ function Ace2Inner(){ root:root, point:selection.startPoint, documentAttributeManager: documentAttributeManager - }); + }); selStart = (selStartFromHook==null||selStartFromHook.length==0)?getLineAndCharForPoint(selection.startPoint):selStartFromHook; } if (selection && !selEnd) @@ -1718,7 +1704,7 @@ function Ace2Inner(){ point:selection.endPoint, documentAttributeManager: documentAttributeManager }); - selEnd = (selEndFromHook==null||selEndFromHook.length==0)?getLineAndCharForPoint(selection.endPoint):selEndFromHook; + selEnd = (selEndFromHook==null||selEndFromHook.length==0)?getLineAndCharForPoint(selection.endPoint):selEndFromHook; } // selection from content collection can, in various ways, extend past final @@ -1739,7 +1725,7 @@ function Ace2Inner(){ // update rep if we have a new selection // NOTE: IE loses the selection when you click stuff in e.g. the // editbar, so removing the selection when it's lost is not a good - // idea. + // idea. if (selection) repSelectionChange(selStart, selEnd, selection && selection.focusAtStart); // update browser selection p.mark("browsel"); @@ -1762,13 +1748,6 @@ function Ace2Inner(){ return domChanges; } - function htmlForRemovedChild(n) - { - var div = doc.createElement("DIV"); - div.appendChild(n); - return div.innerHTML; - } - var STYLE_ATTRIBS = { bold: true, italic: true, @@ -1874,19 +1853,19 @@ function Ace2Inner(){ return rep.selStart[0]; } editorInfo.ace_caretLine = caretLine; - + function caretColumn() { return rep.selStart[1]; } editorInfo.ace_caretColumn = caretColumn; - + function caretDocChar() { return rep.lines.offsetOfIndex(caretLine()) + caretColumn(); } editorInfo.ace_caretDocChar = caretDocChar; - + function handleReturnIndentation() { // on return, indent to level of previous line @@ -1897,7 +1876,7 @@ function Ace2Inner(){ var prevLine = rep.lines.prev(thisLine); var prevLineText = prevLine.text; var theIndent = /^ *(?:)/.exec(prevLineText)[0]; - if (/[\[\(\{]\s*$/.exec(prevLineText)) theIndent += THE_TAB; + if (/[\[\(\:\{]\s*$/.exec(prevLineText)) theIndent += THE_TAB; var cs = Changeset.builder(rep.lines.totalWidth()).keep( rep.lines.offsetOfIndex(lineNum), lineNum).insert( theIndent, [ @@ -2315,8 +2294,8 @@ function Ace2Inner(){ documentAttributeManager.setAttributesOnRange(lineAndColumnFromChar(start), lineAndColumnFromChar(end), attribs); } editorInfo.ace_performDocumentApplyAttributesToCharRange = performDocumentApplyAttributesToCharRange; - - + + function setAttributeOnSelection(attributeName, attributeValue) { if (!(rep.selStart && rep.selEnd)) return; @@ -2327,6 +2306,73 @@ function Ace2Inner(){ } editorInfo.ace_setAttributeOnSelection = setAttributeOnSelection; + function getAttributeOnSelection(attributeName){ + if (!(rep.selStart && rep.selEnd)) return; + var selectionAllHasIt = true; + var withIt = Changeset.makeAttribsString('+', [ + [attributeName, 'true'] + ], rep.apool); + var withItRegex = new RegExp(withIt.replace(/\*/g, '\\*') + "(\\*|$)"); + + function hasIt(attribs) + { + return withItRegex.test(attribs); + } + + var selStartLine = rep.selStart[0]; + var selEndLine = rep.selEnd[0]; + for (var n = selStartLine; n <= selEndLine; n++) + { + var opIter = Changeset.opIterator(rep.alines[n]); + var indexIntoLine = 0; + var selectionStartInLine = 0; + var selectionEndInLine = rep.lines.atIndex(n).text.length; // exclude newline + if(rep.lines.atIndex(n).text.length == 0){ + return false; // If the line length is 0 we basically treat it as having no formatting + } + if(rep.selStart[1] == rep.selEnd[1] && rep.selStart[1] == rep.lines.atIndex(n).text.length){ + return false; // If we're at the end of a line we treat it as having no formatting + } + if(rep.selStart[1] == 0 && rep.selEnd[1] == 0){ + return false; // If we're at the start of a line attributes get confused.. + } + if (n == selStartLine) + { + selectionStartInLine = rep.selStart[1]; + } + if (n == selEndLine) + { + selectionEndInLine = rep.selEnd[1]; + } + while (opIter.hasNext()) + { + var op = opIter.next(); + var opStartInLine = indexIntoLine; + var opEndInLine = opStartInLine + op.chars; + if (!hasIt(op.attribs)) + { + // does op overlap selection? + if (!(opEndInLine <= selectionStartInLine || opStartInLine >= selectionEndInLine)) + { + selectionAllHasIt = false; + break; + } + } + indexIntoLine = opEndInLine; + } + if (!selectionAllHasIt) + { + break; + } + } + if(selectionAllHasIt){ + return true; + }else{ + return false; + } + } + editorInfo.ace_getAttributeOnSelection = getAttributeOnSelection; + function toggleAttributeOnSelection(attributeName) { if (!(rep.selStart && rep.selEnd)) return; @@ -2879,7 +2925,7 @@ function Ace2Inner(){ { if (lineClass !== null) lineElem.className = lineClass; }; - + result.prepareForAdd = writeClass; result.finishUpdate = writeClass; result.getInnerHTML = function() @@ -3241,7 +3287,7 @@ function Ace2Inner(){ { return (n.tagName || '').toLowerCase() == "a" && n.href; } - + // only want to catch left-click if ((!evt.ctrlKey) && (evt.button != 2) && (evt.button != 3)) { @@ -3277,7 +3323,7 @@ function Ace2Inner(){ { return; } - + var lineNum = rep.selStart[0]; var listType = getLineListType(lineNum); @@ -3287,7 +3333,7 @@ function Ace2Inner(){ listType = /([a-z]+)([12345678])/.exec(listType); var type = listType[1]; var level = Number(listType[2]); - + //detect empty list item; exclude indentation if(text === '*' && type !== "indent") { @@ -3317,8 +3363,10 @@ function Ace2Inner(){ function doIndentOutdent(isOut) { - if (!(rep.selStart && rep.selEnd) || - ((rep.selStart[0] == rep.selEnd[0]) && (rep.selStart[1] == rep.selEnd[1]) && rep.selEnd[1] > 1)) + if (!((rep.selStart && rep.selEnd) || + ((rep.selStart[0] == rep.selEnd[0]) && (rep.selStart[1] == rep.selEnd[1]) && rep.selEnd[1] > 1)) && + (isOut != true) + ) { return false; } @@ -3326,7 +3374,6 @@ function Ace2Inner(){ var firstLine, lastLine; firstLine = rep.selStart[0]; lastLine = Math.max(firstLine, rep.selEnd[0] - ((rep.selEnd[1] === 0) ? 1 : 0)); - var mods = []; for (var n = firstLine; n <= lastLine; n++) { @@ -3401,9 +3448,9 @@ function Ace2Inner(){ var thisLineListType = getLineListType(theLine); var prevLineEntry = (theLine > 0 && rep.lines.atIndex(theLine - 1)); var prevLineBlank = (prevLineEntry && prevLineEntry.text.length == prevLineEntry.lineMarker); - + var thisLineHasMarker = documentAttributeManager.lineHasMarker(theLine); - + if (thisLineListType) { // this line is a list @@ -3478,7 +3525,7 @@ function Ace2Inner(){ return !!REGEX_WORDCHAR.exec(c); } editorInfo.ace_isWordChar = isWordChar; - + function isSpaceChar(c) { return !!REGEX_SPACE.exec(c); @@ -3539,7 +3586,6 @@ function Ace2Inner(){ { // if (DEBUG && window.DONT_INCORP) return; if (!isEditable) return; - var type = evt.type; var charCode = evt.charCode; var keyCode = evt.keyCode; @@ -3567,8 +3613,8 @@ function Ace2Inner(){ } var specialHandled = false; - var isTypeForSpecialKey = ((browser.msie || browser.safari) ? (type == "keydown") : (type == "keypress")); - var isTypeForCmdKey = ((browser.msie || browser.safari) ? (type == "keydown") : (type == "keypress")); + var isTypeForSpecialKey = ((browser.msie || browser.safari || browser.chrome) ? (type == "keydown") : (type == "keypress")); + var isTypeForCmdKey = ((browser.msie || browser.safari || browser.chrome) ? (type == "keydown") : (type == "keypress")); var stopped = false; @@ -3628,6 +3674,11 @@ function Ace2Inner(){ if ((!specialHandled) && isTypeForCmdKey && String.fromCharCode(which).toLowerCase() == "s" && (evt.metaKey || evt.ctrlKey)) /* Do a saved revision on ctrl S */ { evt.preventDefault(); + var originalBackground = parent.parent.$('#revisionlink').css("background") + parent.parent.$('#revisionlink').css({"background":"lightyellow"}); + scheduler.setTimeout(function(){ + parent.parent.$('#revisionlink').css({"background":originalBackground}); + }, 1000); parent.parent.pad.collabClient.sendMessage({"type":"SAVE_REVISION"}); /* The parent.parent part of this is BAD and I feel bad.. It may break something */ specialHandled = true; } @@ -3695,7 +3746,11 @@ function Ace2Inner(){ doDeleteKey(); specialHandled = true; } + if((evt.which == 36 && evt.ctrlKey == true)){ setScrollY(0); } // Control Home send to Y = 0 if((evt.which == 33 || evt.which == 34) && type == 'keydown'){ + + evt.preventDefault(); // This is required, browsers will try to do normal default behavior on page up / down and the default behavior SUCKS + var oldVisibleLineRange = getVisibleLineRange(); var topOffset = rep.selStart[0] - oldVisibleLineRange[0]; if(topOffset < 0 ){ @@ -3706,31 +3761,89 @@ function Ace2Inner(){ var isPageUp = evt.which === 33; scheduler.setTimeout(function(){ - var newVisibleLineRange = getVisibleLineRange(); - var linesCount = rep.lines.length(); + var newVisibleLineRange = getVisibleLineRange(); // the visible lines IE 1,10 + var linesCount = rep.lines.length(); // total count of lines in pad IE 10 + var numberOfLinesInViewport = newVisibleLineRange[1] - newVisibleLineRange[0]; // How many lines are in the viewport right now? - var newCaretRow = rep.selStart[0]; if(isPageUp){ - newCaretRow = oldVisibleLineRange[0]; + rep.selEnd[0] = rep.selEnd[0] - numberOfLinesInViewport; // move to the bottom line +1 in the viewport (essentially skipping over a page) + rep.selStart[0] = rep.selStart[0] - numberOfLinesInViewport; // move to the bottom line +1 in the viewport (essentially skipping over a page) } - if(isPageDown){ - newCaretRow = newVisibleLineRange[0] + topOffset; + if(isPageDown){ // if we hit page down + if(rep.selEnd[0] >= oldVisibleLineRange[0]){ // If the new viewpoint position is actually further than where we are right now + rep.selStart[0] = oldVisibleLineRange[1] -1; // dont go further in the page down than what's visible IE go from 0 to 50 if 50 is visible on screen but dont go below that else we miss content + rep.selEnd[0] = oldVisibleLineRange[1] -1; // dont go further in the page down than what's visible IE go from 0 to 50 if 50 is visible on screen but dont go below that else we miss content + } } //ensure min and max - if(newCaretRow < 0){ - newCaretRow = 0; + if(rep.selEnd[0] < 0){ + rep.selEnd[0] = 0; } - if(newCaretRow >= linesCount){ - newCaretRow = linesCount-1; + if(rep.selStart[0] < 0){ + rep.selStart[0] = 0; + } + if(rep.selEnd[0] >= linesCount){ + rep.selEnd[0] = linesCount-1; } - - rep.selStart[0] = newCaretRow; - rep.selEnd[0] = newCaretRow; updateBrowserSelectionFromRep(); + var myselection = document.getSelection(); // get the current caret selection, can't use rep. here because that only gives us the start position not the current + var caretOffsetTop = myselection.focusNode.parentNode.offsetTop | myselection.focusNode.offsetTop; // get the carets selection offset in px IE 214 + // top.console.log(caretOffsetTop); + setScrollY(caretOffsetTop); // set the scrollY offset of the viewport on the document + }, 200); } + /* Attempt to apply some sanity to cursor handling in Chrome after a copy / paste event + We have to do this the way we do because rep. doesn't hold the value for keyheld events IE if the user + presses and holds the arrow key .. Sorry if this is ugly, blame Chrome's weird handling of viewports after new content is added*/ + if((evt.which == 37 || evt.which == 38 || evt.which == 39 || evt.which == 40) && $.browser.chrome){ + var viewport = getViewPortTopBottom(); + var myselection = document.getSelection(); // get the current caret selection, can't use rep. here because that only gives us the start position not the current + var caretOffsetTop = myselection.focusNode.parentNode.offsetTop || myselection.focusNode.offsetTop; // get the carets selection offset in px IE 214 + var lineHeight = $(myselection.focusNode.parentNode).parent("div").height(); // get the line height of the caret line + // top.console.log("offsetTop", myselection.focusNode.parentNode.parentNode.offsetTop); + try { + lineHeight = $(myselection.focusNode).height() // needed for how chrome handles line heights of null objects + // console.log("lineHeight now", lineHeight); + }catch(e){} + var caretOffsetTopBottom = caretOffsetTop + lineHeight; + var visibleLineRange = getVisibleLineRange(); // the visible lines IE 1,10 + + if(caretOffsetTop){ // sometimes caretOffsetTop bugs out and returns 0, not sure why, possible Chrome bug? Either way if it does we don't wanna mess with it + // top.console.log(caretOffsetTop, viewport.top, caretOffsetTopBottom, viewport.bottom); + var caretIsNotVisible = (caretOffsetTop < viewport.top || caretOffsetTopBottom >= viewport.bottom); // Is the Caret Visible to the user? + // Expect some weird behavior caretOffsetTopBottom is greater than viewport.bottom on a keypress down + var offsetTopSamePlace = caretOffsetTop == viewport.top; // sometimes moving key left & up leaves the caret at the same point as the viewport.top, technically the caret is visible but it's not fully visible so we should move to it + if(offsetTopSamePlace && (evt.which == 37 || evt.which == 38)){ + var newY = caretOffsetTop; + setScrollY(newY); + } + + if(caretIsNotVisible){ // is the cursor no longer visible to the user? + // top.console.log("Caret is NOT visible to the user"); + // top.console.log(caretOffsetTop,viewport.top,caretOffsetTopBottom,viewport.bottom); + // Oh boy the caret is out of the visible area, I need to scroll the browser window to lineNum. + if(evt.which == 37 || evt.which == 38){ // If left or up arrow + var newY = caretOffsetTop; // That was easy! + } + if(evt.which == 39 || evt.which == 40){ // if down or right arrow + // only move the viewport if we're at the bottom of the viewport, if we hit down any other time the viewport shouldn't change + // NOTE: This behavior only fires if Chrome decides to break the page layout after a paste, it's annoying but nothing I can do + var selection = getSelection(); + top.console.log("line #", rep.selStart[0]); // the line our caret is on + top.console.log("firstvisible", visibleLineRange[0]); // the first visiblel ine + top.console.log("lastVisible", visibleLineRange[1]); // the last visible line + top.console.log(rep.selStart[0], visibleLineRange[1], rep.selStart[0], visibleLineRange[0]); + var newY = viewport.top + lineHeight; + } + if(newY){ + setScrollY(newY); // set the scrollY offset of the viewport on the document + } + } + } + } } if (type == "keydown") @@ -3750,7 +3863,7 @@ function Ace2Inner(){ } else if (type == "keyup") { - var wait = 200; + var wait = 0; idleWorkTimer.atLeast(wait); idleWorkTimer.atMost(wait); } @@ -3770,7 +3883,7 @@ function Ace2Inner(){ if ((!specialHandled) && (!thisKeyDoesntTriggerNormalize) && (!inInternationalComposition)) { - if (type != "keyup" || !incorpIfQuick()) + if (type != "keyup") { observeChangesAroundSelection(); } @@ -3836,7 +3949,6 @@ function Ace2Inner(){ selection.endPoint = getPointForLineAndChar(se); selection.focusAtStart = !! rep.selFocusAtStart; - setSelection(selection); } @@ -4050,7 +4162,7 @@ function Ace2Inner(){ maxIndex: tn.nodeValue.length }; }; - + var selection = {}; if (origSelectionRange.compareEndPoints("StartToEnd", origSelectionRange) === 0) { @@ -4076,7 +4188,7 @@ function Ace2Inner(){ selection.startPoint.index+" / "+ selection.endPoint.node.uniqueId()+","+ selection.endPoint.index); - }*/ +}*/ } return selection; } @@ -4154,7 +4266,7 @@ function Ace2Inner(){ selection.startPoint = pointFromRangeBound(range.startContainer, range.startOffset); selection.endPoint = pointFromRangeBound(range.endContainer, range.endOffset); selection.focusAtStart = (((range.startContainer != range.endContainer) || (range.startOffset != range.endOffset)) && browserSelection.anchorNode && (browserSelection.anchorNode == range.endContainer) && (browserSelection.anchorOffset == range.endOffset)); - + if(selection.startPoint.node.ownerDocument !== window.document){ return null; } @@ -4722,54 +4834,6 @@ function Ace2Inner(){ else $(elem).removeClass(className); } - function setup() - { - doc = document; // defined as a var in scope outside - inCallStackIfNecessary("setup", function() - { - var body = doc.getElementById("innerdocbody"); - root = body; // defined as a var in scope outside - if (browser.mozilla) addClass(root, "mozilla"); - if (browser.safari) addClass(root, "safari"); - if (browser.msie) addClass(root, "msie"); - if (browser.msie) - { - // cache CSS background images - try - { - doc.execCommand("BackgroundImageCache", false, true); - } - catch (e) - { /* throws an error in some IE 6 but not others! */ - } - } - setClassPresence(root, "authorColors", true); - setClassPresence(root, "doesWrap", doesWrap); - - initDynamicCSS(); - - enforceEditability(); - - // set up dom and rep - while (root.firstChild) root.removeChild(root.firstChild); - var oneEntry = createDomLineEntry(""); - doRepLineSplice(0, rep.lines.length(), [oneEntry]); - insertDomLines(null, [oneEntry.domInfo], null); - rep.alines = Changeset.splitAttributionLines( - Changeset.makeAttribution("\n"), "\n"); - - bindTheEventHandlers(); - - }); - - scheduler.setTimeout(function() - { - parent.readyFunc(); // defined in code that sets up the inner iframe - }, 0); - - isSetUp = true; - } - function focus() { window.focus(); @@ -4919,9 +4983,9 @@ function Ace2Inner(){ } } } - + var listAttributeName = 'list'; - + function getLineListType(lineNum) { return documentAttributeManager.getAttributeOnLine(lineNum, listAttributeName) @@ -4934,7 +4998,7 @@ function Ace2Inner(){ }else{ documentAttributeManager.setAttributeOnLine(lineNum, listAttributeName, listType); } - + //if the list has been removed, it is necessary to renumber //starting from the *next* line because the list may have been //separated. If it returns null, it means that the list was not cut, try @@ -4944,7 +5008,7 @@ function Ace2Inner(){ renumberList(lineNum); } } - + function renumberList(lineNum){ //1-check we are in a list var type = getLineListType(lineNum); @@ -4957,7 +5021,7 @@ function Ace2Inner(){ { return null; } - + //2-find the first line of the list while(lineNum-1 >= 0 && (type=getLineListType(lineNum-1))) { @@ -4966,7 +5030,7 @@ function Ace2Inner(){ break; lineNum--; } - + //3-renumber every list item of the same level from the beginning, level 1 //IMPORTANT: never skip a level because there imbrication may be arbitrary var builder = Changeset.builder(rep.lines.totalWidth()); @@ -4993,7 +5057,7 @@ function Ace2Inner(){ ChangesetUtils.buildKeepRange(rep, builder, loc, (loc = [line, 1]), [ ['start', position] ], rep.apool); - + position++; line++; } @@ -5008,19 +5072,19 @@ function Ace2Inner(){ } return line; } - + applyNumberList(lineNum, 1); var cs = builder.toString(); if (!Changeset.isIdentity(cs)) { performDocumentApplyChangeset(cs); } - + //4-apply the modifications - - + + } - + function doInsertList(type) { @@ -5058,12 +5122,12 @@ function Ace2Inner(){ var t = getLineListType(n); mods.push([n, allLinesAreList ? 'indent' + level : (t ? type + level : type + '1')]); } - + _.each(mods, function(mod){ setLineListType(mod[0], mod[1]); }); } - + function doInsertUnorderedList(){ doInsertList('bullet'); } @@ -5072,14 +5136,14 @@ function Ace2Inner(){ } editorInfo.ace_doInsertUnorderedList = doInsertUnorderedList; editorInfo.ace_doInsertOrderedList = doInsertOrderedList; - + var lineNumbersShown; var sideDivInner; function initLineNumbers() { lineNumbersShown = 1; - sideDiv.innerHTML = '<table border="0" cellpadding="0" cellspacing="0" align="right">' + '<tr><td id="sidedivinner"><div>1</div></td></tr></table>'; + sideDiv.innerHTML = '<table border="0" cellpadding="0" cellspacing="0" align="right"><tr><td id="sidedivinner"><div>1</div></td></tr></table>'; sideDivInner = outerWin.document.getElementById("sidedivinner"); } @@ -5088,11 +5152,11 @@ function Ace2Inner(){ var newNumLines = rep.lines.length(); if (newNumLines < 1) newNumLines = 1; //update height of all current line numbers - + var a = sideDivInner.firstChild; var b = doc.body.firstChild; var n = 0; - + if (currentCallStack && currentCallStack.domClean) { @@ -5100,7 +5164,6 @@ function Ace2Inner(){ { if(n > lineNumbersShown) //all updated, break break; - var h = (b.clientHeight || b.offsetHeight); if (b.nextSibling) { @@ -5122,8 +5185,8 @@ function Ace2Inner(){ b = b.nextSibling; n++; } - } - + } + if (newNumLines != lineNumbersShown) { var container = sideDivInner; @@ -5133,21 +5196,27 @@ function Ace2Inner(){ { lineNumbersShown++; var n = lineNumbersShown; - var div = odoc.createElement("DIV"); + var div = odoc.createElement("DIV"); //calculate height for new line number - var h = (b.clientHeight || b.offsetHeight); - - if (b.nextSibling) - h = b.nextSibling.offsetTop - b.offsetTop; - - if(h) // apply style to div + if(b){ + var h = (b.clientHeight || b.offsetHeight); + + if (b.nextSibling){ + h = b.nextSibling.offsetTop - b.offsetTop; + } + } + + if(h){ // apply style to div div.style.height = h +"px"; - + } + div.appendChild(odoc.createTextNode(String(n))); fragment.appendChild(div); - b = b.nextSibling; + if(b){ + b = b.nextSibling; + } } - + container.appendChild(fragment); while (lineNumbersShown > newNumLines) { @@ -5156,8 +5225,8 @@ function Ace2Inner(){ } } } - - + + // Init documentAttributeManager documentAttributeManager = new AttributeManager(rep, performDocumentApplyChangeset); editorInfo.ace_performDocumentApplyAttributesToRange = function () { @@ -5203,13 +5272,13 @@ function Ace2Inner(){ bindTheEventHandlers(); }); - + hooks.callAll('aceInitialized', { editorInfo: editorInfo, rep: rep, documentAttributeManager: documentAttributeManager }); - + scheduler.setTimeout(function() { parent.readyFunc(); // defined in code that sets up the inner iframe diff --git a/src/static/js/admin/plugins.js b/src/static/js/admin/plugins.js index a973875c..885c028d 100644 --- a/src/static/js/admin/plugins.js +++ b/src/static/js/admin/plugins.js @@ -12,176 +12,270 @@ $(document).ready(function () { //connect socket = io.connect(url, {resource : resource}).of("/pluginfw/installer"); - $('.search-results').data('query', { - pattern: '', - offset: 0, - limit: 12, - }); + function search(searchTerm, limit) { + if(search.searchTerm != searchTerm) { + search.offset = 0 + search.results = [] + search.end = false + } + limit = limit? limit : search.limit + search.searchTerm = searchTerm; + socket.emit("search", {searchTerm: searchTerm, offset:search.offset, limit: limit, sortBy: search.sortBy, sortDir: search.sortDir}); + search.offset += limit; + + $('#search-progress').show() + search.messages.show('fetching') + storeScrollPosition() + search.searching = true + } + search.searching = false; + search.offset = 0; + search.limit = 25; + search.results = []; + search.sortBy = 'name'; + search.sortDir = /*DESC?*/true; + search.end = true;// have we received all results already? + search.messages = { + show: function(msg) { + //$('.search-results .messages').show() + $('.search-results .messages .'+msg+'').show() + $('.search-results .messages .'+msg+' *').show() + }, + hide: function(msg) { + //$('.search-results .messages').hide() + $('.search-results .messages .'+msg+'').hide() + $('.search-results .messages .'+msg+' *').hide() + } + } - var doUpdate = false; + var installed = { + progress: { + show: function(plugin, msg) { + $('.installed-results .'+plugin+' .progress').show() + $('.installed-results .'+plugin+' .progress .message').text(msg) + if($(window).scrollTop() > $('.'+plugin).offset().top)$(window).scrollTop($('.'+plugin).offset().top-100) + }, + hide: function(plugin) { + $('.installed-results .'+plugin+' .progress').hide() + $('.installed-results .'+plugin+' .progress .message').text('') + } + }, + messages: { + show: function(msg) { + $('.installed-results .messages').show() + $('.installed-results .messages .'+msg+'').show() + }, + hide: function(msg) { + $('.installed-results .messages').hide() + $('.installed-results .messages .'+msg+'').hide() + } + }, + list: [] + } + + function displayPluginList(plugins, container, template) { + plugins.forEach(function(plugin) { + var row = template.clone(); + + for (attr in plugin) { + if(attr == "name"){ // Hack to rewrite URLS into name + row.find(".name").html("<a target='_blank' title='Plugin details' href='https://npmjs.org/package/"+plugin['name']+"'>"+plugin['name'].substr(3)+"</a>"); // remove 'ep_' + }else{ + row.find("." + attr).html(plugin[attr]); + } + } + row.find(".version").html( plugin.version ); + row.addClass(plugin.name) + row.data('plugin', plugin.name) + container.append(row); + }) + updateHandlers(); + } + + function sortPluginList(plugins, property, /*ASC?*/dir) { + return plugins.sort(function(a, b) { + if (a[property] < b[property]) + return dir? -1 : 1; + if (a[property] > b[property]) + return dir? 1 : -1; + // a must be equal to b + return 0; + }) + } - var search = function () { - socket.emit("search", $('.search-results').data('query')); - tasks++; + // Infinite scroll + var scrollPosition + function storeScrollPosition() { + scrollPosition = $(window).scrollTop() + } + function restoreScrollPosition() { + setTimeout(function() { + $(window).scrollTop(scrollPosition) + }, 0) + } + + $(window).scroll(checkInfiniteScroll) + function checkInfiniteScroll() { + if(search.end || search.searching) return;// don't keep requesting if there are no more results + setTimeout(function() { + try{ + var top = $('.results>tr:last').offset().top + if($(window).scrollTop()+$(window).height() > top) search(search.searchTerm) + }catch(e){} + }, 1) } function updateHandlers() { - $("form").submit(function(){ - var query = $('.search-results').data('query'); - query.pattern = $("#search-query").val(); - query.offset = 0; - search(); - return false; - }); - + // Search $("#search-query").unbind('keyup').keyup(function () { - var query = $('.search-results').data('query'); - query.pattern = $("#search-query").val(); - query.offset = 0; - search(); + search($("#search-query").val()); }); + // update & install $(".do-install, .do-update").unbind('click').click(function (e) { - var row = $(e.target).closest("tr"); - doUpdate = true; - socket.emit("install", row.find(".name").text()); - tasks++; + var $row = $(e.target).closest("tr") + , plugin = $row.data('plugin'); + if($(this).hasClass('do-install')) { + $row.remove().appendTo('#installed-plugins') + installed.progress.show(plugin, 'Installing') + }else{ + installed.progress.show(plugin, 'Updating') + } + socket.emit("install", plugin); + installed.messages.hide("nothing-installed") }); + // uninstall $(".do-uninstall").unbind('click').click(function (e) { - var row = $(e.target).closest("tr"); - doUpdate = true; - socket.emit("uninstall", row.find(".name").text()); - tasks++; + var $row = $(e.target).closest("tr") + , pluginName = $row.data('plugin'); + socket.emit("uninstall", pluginName); + installed.progress.show(pluginName, 'Uninstalling') + installed.list = installed.list.filter(function(plugin) { + return plugin.name != pluginName + }) }); - $(".do-prev-page").unbind('click').click(function (e) { - var query = $('.search-results').data('query'); - query.offset -= query.limit; - if (query.offset < 0) { - query.offset = 0; - } - search(); - }); - $(".do-next-page").unbind('click').click(function (e) { - var query = $('.search-results').data('query'); - var total = $('.search-results').data('total'); - if (query.offset + query.limit < total) { - query.offset += query.limit; - } - search(); - }); + // Sort + $('.sort.up').unbind('click').click(function() { + search.sortBy = $(this).text().toLowerCase(); + search.sortDir = false; + search.offset = 0; + search(search.searchTerm, search.results.length); + search.results = []; + }) + $('.sort.down, .sort.none').unbind('click').click(function() { + search.sortBy = $(this).text().toLowerCase(); + search.sortDir = true; + search.offset = 0; + search(search.searchTerm, search.results.length); + search.results = []; + }) } - updateHandlers(); - - var tasks = 0; - socket.on('progress', function (data) { - $("#progress").show(); - $('#progress').data('progress', data.progress); - - var message = "Unknown status"; - if (data.message) { - message = data.message.toString(); - } - if (data.error) { - data.progress = 1; - } + socket.on('results:search', function (data) { + if(!data.results.length) search.end = true; + search.messages.hide('nothing-found') + search.messages.hide('fetching') + $("#search-query").removeAttr('disabled') - $("#progress .message").html(message); - - if (data.progress >= 1) { - tasks--; - if (tasks <= 0) { - // Hide the activity indicator once all tasks are done - $("#progress").hide(); - tasks = 0; - } - - if (data.error) { - alert('An error occurred: '+data.error+' -- the server log might know more...'); - }else { - if (doUpdate) { - doUpdate = false; - socket.emit("load"); - tasks++; - } - } - } - }); + console.log('got search results', data) - socket.on('search-result', function (data) { - var widget=$(".search-results"); + // add to results + search.results = search.results.concat(data.results); - widget.data('query', data.query); - widget.data('total', data.total); + // Update sorting head + $('.sort') + .removeClass('up down') + .addClass('none'); + $('.search-results thead th[data-label='+data.query.sortBy+']') + .removeClass('none') + .addClass(data.query.sortDir? 'up' : 'down'); - widget.find('.offset').html(data.query.offset); - if (data.query.offset + data.query.limit > data.total){ - widget.find('.limit').html(data.total); - }else{ - widget.find('.limit').html(data.query.offset + data.query.limit); + // re-render search results + var searchWidget = $(".search-results"); + searchWidget.find(".results *").remove(); + if(search.results.length > 0) { + displayPluginList(search.results, searchWidget.find(".results"), searchWidget.find(".template tr")) + }else { + search.messages.show('nothing-found') } - widget.find('.total').html(data.total); + search.messages.hide('fetching') + $('#search-progress').hide() + restoreScrollPosition() + checkInfiniteScroll() + search.searching = false + }); - widget.find(".results *").remove(); - for (plugin_name in data.results) { - var plugin = data.results[plugin_name]; - var row = widget.find(".template tr").clone(); - - for (attr in plugin) { - if(attr == "name"){ // Hack to rewrite URLS into name - row.find(".name").html("<a target='_blank' href='https://npmjs.org/package/"+plugin['name']+"'>"+plugin[attr]+"</a>"); - }else{ - row.find("." + attr).html(plugin[attr]); - } - } - row.find(".version").html( data.results[plugin_name]['dist-tags'].latest ); - - widget.find(".results").append(row); - } + socket.on('results:installed', function (data) { + installed.messages.hide("fetching") + installed.messages.hide("nothing-installed") - updateHandlers(); - }); + installed.list = data.installed + sortPluginList(installed.list, 'name', /*ASC?*/true); - socket.on('installed-results', function (data) { - $("#installed-plugins *").remove(); + // filter out epl + installed.list = installed.list.filter(function(plugin) { + return plugin.name != 'ep_etherpad-lite' + }) - for (plugin_name in data.results) { - if (plugin_name == "ep_etherpad-lite") continue; // Hack... - var plugin = data.results[plugin_name]; - var row = $("#installed-plugin-template").clone(); + // remove all installed plugins (leave plugins that are still being installed) + installed.list.forEach(function(plugin) { + $('#installed-plugins .'+plugin.name).remove() + }) - for (attr in plugin.package) { - if(attr == "name"){ // Hack to rewrite URLS into name - row.find(".name").html("<a target='_blank' href='https://npmjs.org/package/"+plugin.package['name']+"'>"+plugin.package[attr]+"</a>"); - }else{ - row.find("." + attr).html(plugin.package[attr]); - } - } - $("#installed-plugins").append(row); + if(installed.list.length > 0) { + displayPluginList(installed.list, $("#installed-plugins"), $("#installed-plugin-template")); + socket.emit('checkUpdates'); + }else { + installed.messages.show("nothing-installed") } - updateHandlers(); - - socket.emit('checkUpdates'); - tasks++; }); - socket.on('updatable', function(data) { - $('#installed-plugins>tr').each(function(i,tr) { - var pluginName = $(tr).find('.name').text() - - if (data.updatable.indexOf(pluginName) >= 0) { - var actions = $(tr).find('.actions') - actions.append('<input class="do-update" type="button" value="Update" />') - actions.css('width', 200) - } + socket.on('results:updatable', function(data) { + data.updatable.forEach(function(pluginName) { + var $row = $('#installed-plugins > tr.'+pluginName) + , actions = $row.find('.actions') + actions.append('<input class="do-update" type="button" value="Update" />') }) updateHandlers(); }) - socket.emit("load"); - tasks++; - - search(); + socket.on('finished:install', function(data) { + if(data.error) { + alert('An error occured while installing '+data.plugin+' \n'+data.error) + $('#installed-plugins .'+data.plugin).remove() + } + + socket.emit("getInstalled"); + + // update search results + search.offset = 0; + search(search.searchTerm, search.results.length); + search.results = []; + }) + + socket.on('finished:uninstall', function(data) { + if(data.error) alert('An error occured while uninstalling the '+data.plugin+' \n'+data.error) + + // remove plugin from installed list + $('#installed-plugins .'+data.plugin).remove() + + socket.emit("getInstalled"); + + // update search results + search.offset = 0; + search(search.searchTerm, search.results.length); + search.results = []; + }) + + // init + updateHandlers(); + socket.emit("getInstalled"); + search(''); + + // check for updates every 5mins + setInterval(function() { + socket.emit('checkUpdates'); + }, 1000*60*5) }); diff --git a/src/static/js/admin/settings.js b/src/static/js/admin/settings.js index ebe4a25a..fb3f2e97 100644 --- a/src/static/js/admin/settings.js +++ b/src/static/js/admin/settings.js @@ -55,6 +55,8 @@ $(document).ready(function () { function isJSONClean(data){ var cleanSettings = JSON.minify(data); + // this is a bit naive. In theory some key/value might contain the sequences ',]' or ',}' + cleanSettings = cleanSettings.replace(",]","]").replace(",}","}"); try{ var response = jQuery.parseJSON(cleanSettings); } diff --git a/src/static/js/broadcast.js b/src/static/js/broadcast.js index 6bd135bd..d4bda111 100644 --- a/src/static/js/broadcast.js +++ b/src/static/js/broadcast.js @@ -77,7 +77,6 @@ function loadBroadcastJS(socket, sendSocketMsg, fireWhenAllScriptsAreLoaded, Bro } - var socketId; //var socket; var channelState = "DISCONNECTED"; diff --git a/src/static/js/broadcast_slider.js b/src/static/js/broadcast_slider.js index 9427c191..8179b7b5 100644 --- a/src/static/js/broadcast_slider.js +++ b/src/static/js/broadcast_slider.js @@ -198,11 +198,7 @@ function loadBroadcastSliderJS(fireWhenAllScriptsAreLoaded) }); if (numAnonymous > 0) { - var anonymousAuthorString; - if(numAnonymous == 1) - anonymousAuthorString = html10n.get("timeslider.unnamedauthor", { num: numAnonymous }); - else - anonymousAuthorString = html10n.get("timeslider.unnamedauthors", { num: numAnonymous }); + var anonymousAuthorString = html10n.get("timeslider.unnamedauthors", { num: numAnonymous }); if (numNamed !== 0){ authorsList.append(' + ' + anonymousAuthorString); @@ -465,10 +461,10 @@ function loadBroadcastSliderJS(fireWhenAllScriptsAreLoaded) var startPos = clientVars.collab_client_vars.rev; if(window.location.hash.length > 1) { - var hashRev = Number(window.location.hash.substr(1)); - if(!isNaN(hashRev)) - { - // this is necessary because of the socket.io-event which loads the changesets + var hashRev = Number(window.location.hash.substr(1)); + if(!isNaN(hashRev)) + { + // this is necessary because of the socket.io-event which loads the changesets setTimeout(function() { setSliderPosition(hashRev); }, 1); } } diff --git a/src/static/js/changesettracker.js b/src/static/js/changesettracker.js index 58ef21cb..f3efc407 100644 --- a/src/static/js/changesettracker.js +++ b/src/static/js/changesettracker.js @@ -57,6 +57,7 @@ function makeChangesetTracker(scheduler, apool, aceCallbacksProvider) { changeCallback(); } + catch(pseudoError) {} finally { changeCallbackTimeout = null; @@ -161,6 +162,55 @@ function makeChangesetTracker(scheduler, apool, aceCallbacksProvider) } else { + + // add forEach function to Array.prototype for IE8 + if (!('forEach' in Array.prototype)) { + Array.prototype.forEach= function(action, that /*opt*/) { + for (var i= 0, n= this.length; i<n; i++) + if (i in this) + action.call(that, this[i], i, this); + }; + } + + // Get my authorID + var authorId = parent.parent.pad.myUserInfo.userId; + + // Sanitize authorship + // We need to replace all author attribs with thisSession.author, in case they copy/pasted or otherwise inserted other peoples changes + if(apool.numToAttrib){ + for (var attr in apool.numToAttrib){ + if (apool.numToAttrib[attr][0] == 'author' && apool.numToAttrib[attr][1] == authorId) authorAttr = Number(attr).toString(36) + } + + // Replace all added 'author' attribs with the value of the current user + var cs = Changeset.unpack(userChangeset) + , iterator = Changeset.opIterator(cs.ops) + , op + , assem = Changeset.mergingOpAssembler(); + + while(iterator.hasNext()) { + op = iterator.next() + if(op.opcode == '+') { + var newAttrs = '' + + op.attribs.split('*').forEach(function(attrNum) { + if(!attrNum) return + var attr = apool.getAttrib(parseInt(attrNum, 36)) + if(!attr) return + if('author' == attr[0]) { + // replace that author with the current one + newAttrs += '*'+authorAttr; + } + else newAttrs += '*'+attrNum // overtake all other attribs as is + }) + op.attribs = newAttrs + } + assem.append(op) + } + assem.endDocument(); + userChangeset = Changeset.pack(cs.oldLen, cs.newLen, assem.toString(), cs.charBank) + Changeset.checkRep(userChangeset) + } if (Changeset.isIdentity(userChangeset)) toSubmit = null; else toSubmit = userChangeset; } diff --git a/src/static/js/chat.js b/src/static/js/chat.js index 2dff2edf..65fc8dd9 100644 --- a/src/static/js/chat.js +++ b/src/static/js/chat.js @@ -17,6 +17,7 @@ var padutils = require('./pad_utils').padutils; var padcookie = require('./pad_cookie').padcookie; var Tinycon = require('tinycon/tinycon'); +var hooks = require('./pluginfw/hooks'); var chat = (function() { @@ -41,13 +42,15 @@ var chat = (function() padcookie.setPref("chatAlwaysVisible", true); $('#chatbox').addClass("stickyChat"); $('#chattext').css({"top":"0px"}); - $('#editorcontainer').css({"right":"192px", "width":"auto"}); + $('#editorcontainer').css({"right":"192px"}); + $('.stickyChat').css("top",$('#editorcontainer').offset().top+"px"); isStuck = true; } else { // Unstick it padcookie.setPref("chatAlwaysVisible", false); + $('.stickyChat').css("top", "auto"); $('#chatbox').removeClass("stickyChat"); $('#chattext').css({"top":"25px"}); - $('#editorcontainer').css({"right":"0px", "width":"100%"}); + $('#editorcontainer').css({"right":"0px"}); isStuck = false; } }, @@ -77,7 +80,7 @@ var chat = (function() $("#chatinput").val(""); }, addMessage: function(msg, increment, isHistoryAdd) - { + { //correct the time msg.time += this._pad.clientTimeOffset; @@ -99,74 +102,68 @@ var chat = (function() var text = padutils.escapeHtmlWithClickableLinks(msg.text, "_blank"); - /* Performs an action if your name is mentioned */ + var authorName = msg.userName == null ? _('pad.userlist.unnamed') : padutils.escapeHtml(msg.userName); + + // the hook args + var ctx = { + "authorName" : authorName, + "author" : msg.userId, + "text" : text, + "sticky" : false, + "timestamp" : msg.time, + "timeStr" : timeStr + } + + // is the users focus already in the chatbox? + var alreadyFocused = $("#chatinput").is(":focus"); + + // does the user already have the chatbox open? + var chatOpen = $("#chatbox").is(":visible"); + + // does this message contain this user's name? (is the curretn user mentioned?) var myName = $('#myusernameedit').val(); - myName = myName.toLowerCase(); - var chatText = text.toLowerCase(); - var wasMentioned = false; - if (chatText.indexOf(myName) !== -1 && myName != "undefined"){ - wasMentioned = true; + var wasMentioned = (text.toLowerCase().indexOf(myName.toLowerCase()) !== -1 && myName != "undefined"); + + if(wasMentioned && !alreadyFocused && !isHistoryAdd && !chatOpen) + { // If the user was mentioned show for twice as long and flash the browser window + chatMentions++; + Tinycon.setBubble(chatMentions); + ctx.sticky = true; } - /* End of new action */ - var authorName = msg.userName == null ? _('pad.userlist.unnamed') : padutils.escapeHtml(msg.userName); - - var html = "<p class='" + authorClass + "'><b>" + authorName + ":</b><span class='time " + authorClass + "'>" + timeStr + "</span> " + text + "</p>"; - if(isHistoryAdd) - $(html).insertAfter('#chatloadmessagesbutton'); - else - $("#chattext").append(html); - - //should we increment the counter?? - if(increment && !isHistoryAdd) - { - var count = Number($("#chatcounter").text()); - count++; - - // is the users focus already in the chatbox? - var alreadyFocused = $("#chatinput").is(":focus"); - - // does the user already have the chatbox open? - var chatOpen = $("#chatbox").is(":visible"); - - $("#chatcounter").text(count); - // chat throb stuff -- Just make it throw for twice as long - if(wasMentioned && !alreadyFocused && !isHistoryAdd && !chatOpen) - { // If the user was mentioned show for twice as long and flash the browser window - $.gritter.add({ - // (string | mandatory) the heading of the notification - title: authorName, - // (string | mandatory) the text inside the notification - text: text, - // (bool | optional) if you want it to fade out on its own or just sit there - sticky: true, - // (int | optional) the time you want it to be alive for before fading out - time: '2000' - }); - - chatMentions++; - Tinycon.setBubble(chatMentions); - } + // Call chat message hook + hooks.aCallAll("chatNewMessage", ctx, function() { + + var html = "<p data-authorId='" + msg.userId + "' class='" + authorClass + "'><b>" + authorName + ":</b><span class='time " + authorClass + "'>" + ctx.timeStr + "</span> " + ctx.text + "</p>"; + if(isHistoryAdd) + $(html).insertAfter('#chatloadmessagesbutton'); else + $("#chattext").append(html); + + //should we increment the counter?? + if(increment && !isHistoryAdd) { - if(!chatOpen){ + // Update the counter of unread messages + var count = Number($("#chatcounter").text()); + count++; + $("#chatcounter").text(count); + + if(!chatOpen) { $.gritter.add({ // (string | mandatory) the heading of the notification - title: authorName, + title: ctx.authorName, // (string | mandatory) the text inside the notification - text: text, - + text: ctx.text, // (bool | optional) if you want it to fade out on its own or just sit there - sticky: false, + sticky: ctx.sticky, // (int | optional) the time you want it to be alive for before fading out time: '4000' }); - Tinycon.setBubble(count); - } } - } - // Clear the chat mentions when the user clicks on the chat input box + }); + + // Clear the chat mentions when the user clicks on the chat input box $('#chatinput').click(function(){ chatMentions = 0; Tinycon.setBubble(0); @@ -186,12 +183,12 @@ var chat = (function() self.send(); } }); - - // initial messages are loaded in pad.js' _afterHandshake - - $("#chatcounter").text(0); - $("#chatloadmessagesbutton").click(function() - { + + // initial messages are loaded in pad.js' _afterHandshake + + $("#chatcounter").text(0); + $("#chatloadmessagesbutton").click(function() + { var start = Math.max(self.historyPointer - 20, 0); var end = self.historyPointer; @@ -203,7 +200,7 @@ var chat = (function() pad.collabClient.sendMessage({"type": "GET_CHAT_MESSAGES", "start": start, "end": end}); self.historyPointer = start; - }); + }); } } diff --git a/src/static/js/collab_client.js b/src/static/js/collab_client.js index 7df0b711..146ec51b 100644 --- a/src/static/js/collab_client.js +++ b/src/static/js/collab_client.js @@ -40,11 +40,9 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) var rev = serverVars.rev; var padId = serverVars.padId; - var globalPadId = serverVars.globalPadId; var state = "IDLE"; var stateMessage; - var stateMessageSocketId; var channelState = "CONNECTING"; var appLevelDisconnectReason = null; @@ -52,12 +50,10 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) var initialStartConnectTime = 0; var userId = initialUserInfo.userId; - var socketId; //var socket; var userSet = {}; // userId -> userInfo userSet[userId] = initialUserInfo; - var reconnectTimes = []; var caughtErrors = []; var caughtErrorCatchers = []; var caughtErrorTimes = []; @@ -196,7 +192,6 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) changeset: userChangesData.changeset, apool: userChangesData.apool }; - stateMessageSocketId = socketId; sendMessage(stateMessage); sentMessage = true; callbacks.onInternalAction("commitPerformed"); @@ -209,17 +204,6 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) } } - function getStats() - { - var stats = {}; - - stats.screen = [$(window).width(), $(window).height(), window.screen.availWidth, window.screen.availHeight, window.screen.width, window.screen.height].join(','); - stats.ip = serverVars.clientIp; - stats.useragent = serverVars.clientAgent; - - return stats; - } - function setUpSocket() { hiccupCount = 0; @@ -278,8 +262,9 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) if (!getSocket()) return; if (!evt.data) return; var wrapper = evt; - if (wrapper.type != "COLLABROOM") return; + if (wrapper.type != "COLLABROOM" && wrapper.type != "CUSTOM") return; var msg = wrapper.data; + if (msg.type == "NEW_CHANGES") { var newRev = msg.newRev; @@ -294,8 +279,8 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) if (newRev != (oldRev + 1)) { - dmesg("bad message revision on NEW_CHANGES: " + newRev + " not " + (oldRev + 1)); - setChannelState("DISCONNECTED", "badmessage_newchanges"); + parent.parent.console.warn("bad message revision on NEW_CHANGES: " + newRev + " not " + (oldRev + 1)); + // setChannelState("DISCONNECTED", "badmessage_newchanges"); return; } msgQueue.push(msg); @@ -304,8 +289,8 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) if (newRev != (rev + 1)) { - dmesg("bad message revision on NEW_CHANGES: " + newRev + " not " + (rev + 1)); - setChannelState("DISCONNECTED", "badmessage_newchanges"); + parent.parent.console.warn("bad message revision on NEW_CHANGES: " + newRev + " not " + (rev + 1)); + // setChannelState("DISCONNECTED", "badmessage_newchanges"); return; } rev = newRev; @@ -318,8 +303,8 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) { if (newRev != (msgQueue[msgQueue.length - 1].newRev + 1)) { - dmesg("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (msgQueue[msgQueue.length - 1][0] + 1)); - setChannelState("DISCONNECTED", "badmessage_acceptcommit"); + parent.parent.console.warn("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (msgQueue[msgQueue.length - 1][0] + 1)); + // setChannelState("DISCONNECTED", "badmessage_acceptcommit"); return; } msgQueue.push(msg); @@ -328,8 +313,8 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) if (newRev != (rev + 1)) { - dmesg("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (rev + 1)); - setChannelState("DISCONNECTED", "badmessage_acceptcommit"); + parent.parent.console.warn("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (rev + 1)); + // setChannelState("DISCONNECTED", "badmessage_acceptcommit"); return; } rev = newRev; @@ -390,6 +375,7 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) callbacks.onUserLeave(userInfo); } } + else if (msg.type == "DISCONNECT_REASON") { appLevelDisconnectReason = msg.reason; @@ -503,16 +489,6 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) } } - function keys(obj) - { - var array = []; - $.each(obj, function(k, v) - { - array.push(k); - }); - return array; - } - function valuesArray(obj) { var array = []; @@ -591,7 +567,6 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) { obj.committedChangeset = stateMessage.changeset; obj.committedChangesetAPool = stateMessage.apool; - obj.committedChangesetSocketId = stateMessageSocketId; editor.applyPreparedChangesetToBase(); } var userChangesData = editor.prepareUserChangeset(); diff --git a/src/static/js/contentcollector.js b/src/static/js/contentcollector.js index 645b7fce..ee0a1c27 100644 --- a/src/static/js/contentcollector.js +++ b/src/static/js/contentcollector.js @@ -311,7 +311,6 @@ function makeContentCollector(collectStyles, browser, apool, domInterface, class ['insertorder', 'first'] ].concat( _.map(state.lineAttributes,function(value,key){ - if (typeof(window)!= 'undefined' && window.console) console.log([key, value]) return [key, value]; }) ); @@ -399,7 +398,7 @@ function makeContentCollector(collectStyles, browser, apool, domInterface, class if (endPoint && node == endPoint.node) { selEnd = _pointHere(0, state); - } + } } while (txt.length > 0) { @@ -468,7 +467,7 @@ function makeContentCollector(collectStyles, browser, apool, domInterface, class var startNewLine= (typeof(induceLineBreak)=='object'&&induceLineBreak.length==0)?true:induceLineBreak[0]; if(startNewLine){ cc.startNewLine(state); - } + } } else if (tname == "script" || tname == "style") { diff --git a/src/static/js/cssmanager.js b/src/static/js/cssmanager.js index 62f17496..710cdbe5 100644 --- a/src/static/js/cssmanager.js +++ b/src/static/js/cssmanager.js @@ -1,5 +1,5 @@ /** - * This code is mostly from the old Etherpad. Please help us to comment this code. + * This code is mostly from the old Etherpad. Please help us to comment this code. * This helps other people to understand this code better and helps them to improve it. * TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED */ @@ -20,14 +20,32 @@ * limitations under the License. */ -function makeCSSManager(emptyStylesheetTitle, parentCss) +function makeCSSManager(emptyStylesheetTitle, doc) { + if (doc === true) + { + doc = 'parent'; + } else if (!doc) { + doc = 'inner'; + } function getSheetByTitle(title) { - if (parentCss) var allSheets = window.parent.parent.document.styleSheets; - else var allSheets = document.styleSheets; - + if (doc === 'parent') + { + win = window.parent.parent; + } + else if (doc === 'inner') { + win = window; + } + else if (doc === 'outer') { + win = window.parent; + } + else { + throw "Unknown dynamic style container"; + } + var allSheets = win.document.styleSheets; + for (var i = 0; i < allSheets.length; i++) { var s = allSheets[i]; @@ -38,8 +56,8 @@ function makeCSSManager(emptyStylesheetTitle, parentCss) } return null; } - - var browserSheet = getSheetByTitle(emptyStylesheetTitle, parentCss); + + var browserSheet = getSheetByTitle(emptyStylesheetTitle); function browserRules() { diff --git a/src/static/js/domline.js b/src/static/js/domline.js index 43b5f21a..82dafb42 100644 --- a/src/static/js/domline.js +++ b/src/static/js/domline.js @@ -104,7 +104,6 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument) if (listType) { listType = listType[1]; - start = start?'start="'+Security.escapeHTMLAttribute(start[1])+'"':''; if (listType) { if(listType.indexOf("number") < 0) @@ -114,7 +113,14 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument) } else { - preHtml = '<ol '+start+' class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>'; + if(start){ // is it a start of a list with more than one item in? + if(start[1] == 1){ // if its the first one at this level? + lineClass = lineClass + " " + "list-start-" + listType; // Add start class to DIV node + } + preHtml = '<ol start='+start[1]+' class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>'; + }else{ + preHtml = '<ol class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>'; // Handles pasted contents into existing lists + } postHtml = '</li></ol>'; } } @@ -179,7 +185,7 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument) { if (href) { - if(!~href.indexOf("http")) // if the url doesn't include http or https etc prefix it. + if(!~href.indexOf("://") && !~href.indexOf("mailto:")) // if the url doesn't include a protocol prefix, assume http { href = "http://"+href; } @@ -228,10 +234,10 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument) result.node.innerHTML = curHTML; } if (lineClass !== null) result.node.className = lineClass; - - hooks.callAll("acePostWriteDomLineHTML", { - node: result.node - }); + + hooks.callAll("acePostWriteDomLineHTML", { + node: result.node + }); } result.prepareForAdd = writeHTML; result.finishUpdate = writeHTML; diff --git a/src/static/js/draggable.js b/src/static/js/draggable.js deleted file mode 100644 index 8d197545..00000000 --- a/src/static/js/draggable.js +++ /dev/null @@ -1,197 +0,0 @@ -/** - * This code is mostly from the old Etherpad. Please help us to comment this code. - * This helps other people to understand this code better and helps them to improve it. - * TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED - */ - -/** - * Copyright 2009 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS-IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -function makeDraggable(jqueryNodes, eventHandler) -{ - jqueryNodes.each(function() - { - var node = $(this); - var state = {}; - var inDrag = false; - - function dragStart(evt) - { - if (inDrag) - { - return; - } - inDrag = true; - if (eventHandler('dragstart', evt, state) !== false) - { - $(document).bind('mousemove', dragUpdate); - $(document).bind('mouseup', dragEnd); - } - evt.preventDefault(); - return false; - } - - function dragUpdate(evt) - { - if (!inDrag) - { - return; - } - eventHandler('dragupdate', evt, state); - evt.preventDefault(); - return false; - } - - function dragEnd(evt) - { - if (!inDrag) - { - return; - } - inDrag = false; - try - { - eventHandler('dragend', evt, state); - } - finally - { - $(document).unbind('mousemove', dragUpdate); - $(document).unbind('mouseup', dragEnd); - evt.preventDefault(); - } - return false; - } - node.bind('mousedown', dragStart); - }); -} - -function makeResizableVPane(top, sep, bottom, minTop, minBottom, callback) -{ - if (minTop === undefined) minTop = 0; - if (minBottom === undefined) minBottom = 0; - - makeDraggable($(sep), function(eType, evt, state) - { - if (eType == 'dragstart') - { - state.startY = evt.pageY; - state.topHeight = $(top).height(); - state.bottomHeight = $(bottom).height(); - state.minTop = minTop; - state.maxTop = (state.topHeight + state.bottomHeight) - minBottom; - } - else if (eType == 'dragupdate') - { - var change = evt.pageY - state.startY; - - var topHeight = state.topHeight + change; - if (topHeight < state.minTop) - { - topHeight = state.minTop; - } - if (topHeight > state.maxTop) - { - topHeight = state.maxTop; - } - change = topHeight - state.topHeight; - - var bottomHeight = state.bottomHeight - change; - var sepHeight = $(sep).height(); - - var totalHeight = topHeight + sepHeight + bottomHeight; - topHeight = 100.0 * topHeight / totalHeight; - sepHeight = 100.0 * sepHeight / totalHeight; - bottomHeight = 100.0 * bottomHeight / totalHeight; - - $(top).css('bottom', 'auto'); - $(top).css('height', topHeight + "%"); - $(sep).css('top', topHeight + "%"); - $(bottom).css('top', (topHeight + sepHeight) + '%'); - $(bottom).css('height', 'auto'); - if (callback) callback(); - } - }); -} - -function makeResizableHPane(left, sep, right, minLeft, minRight, sepWidth, sepOffset, callback) -{ - if (minLeft === undefined) minLeft = 0; - if (minRight === undefined) minRight = 0; - - makeDraggable($(sep), function(eType, evt, state) - { - if (eType == 'dragstart') - { - state.startX = evt.pageX; - state.leftWidth = $(left).width(); - state.rightWidth = $(right).width(); - state.minLeft = minLeft; - state.maxLeft = (state.leftWidth + state.rightWidth) - minRight; - } - else if (eType == 'dragend' || eType == 'dragupdate') - { - var change = evt.pageX - state.startX; - - var leftWidth = state.leftWidth + change; - if (leftWidth < state.minLeft) - { - leftWidth = state.minLeft; - } - if (leftWidth > state.maxLeft) - { - leftWidth = state.maxLeft; - } - change = leftWidth - state.leftWidth; - - var rightWidth = state.rightWidth - change; - newSepWidth = sepWidth; - if (newSepWidth == undefined) newSepWidth = $(sep).width(); - newSepOffset = sepOffset; - if (newSepOffset == undefined) newSepOffset = 0; - - if (change == 0) - { - if (rightWidth != minRight || state.lastRightWidth == undefined) - { - state.lastRightWidth = rightWidth; - rightWidth = minRight; - } - else - { - rightWidth = state.lastRightWidth; - state.lastRightWidth = minRight; - } - change = state.rightWidth - rightWidth; - leftWidth = change + state.leftWidth; - } - - var totalWidth = leftWidth + newSepWidth + rightWidth; - leftWidth = 100.0 * leftWidth / totalWidth; - newSepWidth = 100.0 * newSepWidth / totalWidth; - newSepOffset = 100.0 * newSepOffset / totalWidth; - rightWidth = 100.0 * rightWidth / totalWidth; - - $(left).css('right', 'auto'); - $(left).css('width', leftWidth + "%"); - $(sep).css('left', (leftWidth + newSepOffset) + "%"); - $(right).css('left', (leftWidth + newSepWidth) + '%'); - $(right).css('width', 'auto'); - if (callback) callback(); - } - }); -} - -exports.makeDraggable = makeDraggable; diff --git a/src/static/js/farbtastic.js b/src/static/js/farbtastic.js index 0045703d..114c4d72 100644 --- a/src/static/js/farbtastic.js +++ b/src/static/js/farbtastic.js @@ -2,7 +2,7 @@ (function ($) { var __debug = false; -var __factor = 0.5; +var __factor = 0.8; $.fn.farbtastic = function (options) { $.farbtastic(this, options); diff --git a/src/static/js/gritter.js b/src/static/js/gritter.js index c32cc758..9778707e 100644 --- a/src/static/js/gritter.js +++ b/src/static/js/gritter.js @@ -21,8 +21,6 @@ $.gritter.options = { position: '', class_name: '', // could be set to 'gritter-light' to use white notifications - fade_in_speed: 'medium', // how fast notifications fade in - fade_out_speed: 1000, // how fast the notices fade out time: 6000 // hang on the screen for... } diff --git a/src/static/js/html10n.js b/src/static/js/html10n.js index e1c025c4..856729b5 100644 --- a/src/static/js/html10n.js +++ b/src/static/js/html10n.js @@ -23,30 +23,43 @@ window.html10n = (function(window, document, undefined) { // fix console - var console = window.console; + var console = window.console function interceptConsole(method){ - if (!console) return function() {}; + if (!console) return function() {} - var original = console[method]; + var original = console[method] // do sneaky stuff if (original.bind){ // Do this for normal browsers - return original.bind(console); + return original.bind(console) }else{ return function() { // Do this for IE - var message = Array.prototype.slice.apply(arguments).join(' '); - original(message); + var message = Array.prototype.slice.apply(arguments).join(' ') + original(message) } } } var consoleLog = interceptConsole('log') , consoleWarn = interceptConsole('warn') - , consoleError = interceptConsole('warn'); + , consoleError = interceptConsole('warn') - // fix Array.prototype.instanceOf in, guess what, IE! <3 + // fix Array#forEach in IE + // taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach + if (!Array.prototype.forEach) { + Array.prototype.forEach = function(fn, scope) { + for(var i = 0, len = this.length; i < len; ++i) { + if (i in this) { + fn.call(scope, this[i], i, this); + } + } + }; + } + + // fix Array#indexOf in, guess what, IE! <3 + // taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) { "use strict"; @@ -84,23 +97,23 @@ window.html10n = (function(window, document, undefined) { * MicroEvent - to make any js object an event emitter (server or browser) */ - var MicroEvent = function(){} - MicroEvent.prototype = { - bind : function(event, fct){ + var MicroEvent = function(){} + MicroEvent.prototype = { + bind: function(event, fct){ this._events = this._events || {}; - this._events[event] = this._events[event] || []; + this._events[event] = this._events[event] || []; this._events[event].push(fct); }, - unbind : function(event, fct){ + unbind: function(event, fct){ this._events = this._events || {}; - if( event in this._events === false ) return; + if( event in this._events === false ) return; this._events[event].splice(this._events[event].indexOf(fct), 1); }, - trigger : function(event /* , args... */){ + trigger: function(event /* , args... */){ this._events = this._events || {}; - if( event in this._events === false ) return; + if( event in this._events === false ) return; for(var i = 0; i < this._events[event].length; i++){ - this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1)); + this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1)) } } }; @@ -108,8 +121,8 @@ window.html10n = (function(window, document, undefined) { * mixin will delegate all MicroEvent.js function in the destination object * @param {Object} the object which will support MicroEvent */ - MicroEvent.mixin = function(destObject){ - var props = ['bind', 'unbind', 'trigger']; + MicroEvent.mixin = function(destObject){ + var props = ['bind', 'unbind', 'trigger']; if(!destObject) return; for(var i = 0; i < props.length; i ++){ destObject[props[i]] = MicroEvent.prototype[props[i]]; @@ -122,50 +135,50 @@ window.html10n = (function(window, document, undefined) { * and caching all necessary resources */ function Loader(resources) { - this.resources = resources; - this.cache = {}; // file => contents - this.langs = {}; // lang => strings + this.resources = resources + this.cache = {} // file => contents + this.langs = {} // lang => strings } Loader.prototype.load = function(lang, cb) { - if(this.langs[lang]) return cb(); + if(this.langs[lang]) return cb() if (this.resources.length > 0) { var reqs = 0; for (var i=0, n=this.resources.length; i < n; i++) { this.fetch(this.resources[i], lang, function(e) { reqs++; - if(e) return setTimeout(function(){ throw e }, 0); + if(e) consoleWarn(e) if (reqs < n) return;// Call back once all reqs are completed - cb && cb(); + cb && cb() }) } } } Loader.prototype.fetch = function(href, lang, cb) { - var that = this; + var that = this if (this.cache[href]) { this.parse(lang, href, this.cache[href], cb) return; } - var xhr = new XMLHttpRequest(); - xhr.open('GET', href, /*async: */true); + var xhr = new XMLHttpRequest() + xhr.open('GET', href, /*async: */true) if (xhr.overrideMimeType) { xhr.overrideMimeType('application/json; charset=utf-8'); } xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if (xhr.status == 200 || xhr.status === 0) { - var data = JSON.parse(xhr.responseText); - that.cache[href] = data; + var data = JSON.parse(xhr.responseText) + that.cache[href] = data // Pass on the contents for parsing - that.parse(lang, href, data, cb); + that.parse(lang, href, data, cb) } else { - cb(new Error('Failed to load '+href)); + cb(new Error('Failed to load '+href)) } } }; @@ -174,39 +187,38 @@ window.html10n = (function(window, document, undefined) { Loader.prototype.parse = function(lang, currHref, data, cb) { if ('object' != typeof data) { - cb(new Error('A file couldn\'t be parsed as json.')); - return; + cb(new Error('A file couldn\'t be parsed as json.')) + return } - - if (!data[lang]) lang = lang.substr(0, lang.indexOf('-') == -1? lang.length : lang.indexOf('-')); + if (!data[lang]) { - cb(new Error('Couldn\'t find translations for '+lang)); - return; + cb(new Error('Couldn\'t find translations for '+lang)) + return } if ('string' == typeof data[lang]) { // Import rule // absolute path - var importUrl = data[lang]; + var importUrl = data[lang] // relative path if(data[lang].indexOf("http") != 0 && data[lang].indexOf("/") != 0) { - importUrl = currHref+"/../"+data[lang]; + importUrl = currHref+"/../"+data[lang] } - this.fetch(importUrl, lang, cb); - return; + this.fetch(importUrl, lang, cb) + return } if ('object' != typeof data[lang]) { - cb(new Error('Translations should be specified as JSON objects!')); - return; + cb(new Error('Translations should be specified as JSON objects!')) + return } - this.langs[lang] = data[lang]; + this.langs[lang] = data[lang] // TODO: Also store accompanying langs - cb(); + cb() } @@ -216,11 +228,11 @@ window.html10n = (function(window, document, undefined) { var html10n = { language : null } - MicroEvent.mixin(html10n); + MicroEvent.mixin(html10n) - html10n.macros = {}; + html10n.macros = {} - html10n.rtl = ["ar","dv","fa","ha","he","ks","ku","ps","ur","yi"]; + html10n.rtl = ["ar","dv","fa","ha","he","ks","ku","ps","ur","yi"] /** * Get rules for plural forms (shared with JetPack), see: @@ -635,25 +647,26 @@ window.html10n = (function(window, document, undefined) { /** * pre-defined 'plural' macro */ - html10n.macros.plural = function(translations, key, str, param) { - var n = parseFloat(param); + html10n.macros.plural = function(key, param, opts) { + var str + , n = parseFloat(param); if (isNaN(n)) - return str; + return; // initialize _pluralRules if (!this._pluralRules) this._pluralRules = getPluralRules(html10n.language); - var index = '[' + this._pluralRules(n) + ']'; + var index = this._pluralRules(n); // try to find a [zero|one|two] key if it's defined - if (n === 0 && (key + '[zero]') in translations) { - str = translations[key + '[zero]']; - } else if (n == 1 && (key + '[one]') in translations) { - str = translations[key + '[one]']; - } else if (n == 2 && (key + '[two]') in translations) { - str = translations[key + '[two]']; - } else if ((key + index) in translations) { - str = translations[key + index][prop]; + if (n === 0 && ('zero') in opts) { + str = opts['zero']; + } else if (n == 1 && ('one') in opts) { + str = opts['one']; + } else if (n == 2 && ('two') in opts) { + str = opts['two']; + } else if (index in opts) { + str = opts[index]; } return str; @@ -664,14 +677,22 @@ window.html10n = (function(window, document, undefined) { * @param langs An array of lang codes defining fallbacks */ html10n.localize = function(langs) { - var that = this; + var that = this // if only one string => create an array - if ('string' == typeof langs) langs = [langs]; - + if ('string' == typeof langs) langs = [langs] + + // Expand two-part locale specs + var i=0 + langs.forEach(function(lang) { + if(!lang) return + langs[i++] = lang + if(~lang.indexOf('-')) langs[i++] = lang.substr(0, lang.indexOf('-')) + }) + this.build(langs, function(er, translations) { - html10n.translations = translations; - html10n.translateElement(translations); - that.trigger('localized'); + html10n.translations = translations + html10n.translateElement(translations) + that.trigger('localized') }) } @@ -682,132 +703,148 @@ window.html10n = (function(window, document, undefined) { * @param element A DOM element, if omitted, the document element will be used */ html10n.translateElement = function(translations, element) { - element = element || document.documentElement; + element = element || document.documentElement var children = element? getTranslatableChildren(element) : document.childNodes; for (var i=0, n=children.length; i < n; i++) { - this.translateNode(translations, children[i]); + this.translateNode(translations, children[i]) } // translate element itself if necessary - this.translateNode(translations, element); + this.translateNode(translations, element) } function asyncForEach(list, iterator, cb) { var i = 0 - , n = list.length; + , n = list.length iterator(list[i], i, function each(err) { - if(err) consoleLog(err); - i++; + if(err) consoleLog(err) + i++ if (i < n) return iterator(list[i],i, each); - cb(); + cb() }) } function getTranslatableChildren(element) { if(!document.querySelectorAll) { - if (!element) return []; + if (!element) return [] var nodes = element.getElementsByTagName('*') - , l10nElements = []; + , l10nElements = [] for (var i=0, n=nodes.length; i < n; i++) { if (nodes[i].getAttribute('data-l10n-id')) l10nElements.push(nodes[i]); } - return l10nElements; + return l10nElements } - return element.querySelectorAll('*[data-l10n-id]'); + return element.querySelectorAll('*[data-l10n-id]') } html10n.get = function(id, args) { - var translations = html10n.translations; - if(!translations) return consoleWarn('No translations available (yet)'); - if(!translations[id]) return consoleWarn('Could not find string '+id); + var translations = html10n.translations + if(!translations) return consoleWarn('No translations available (yet)') + if(!translations[id]) return consoleWarn('Could not find string '+id) + + // apply macros + var str = translations[id] + + str = substMacros(id, str, args) // apply args - var str = substArguments(translations[id], args); + str = substArguments(str, args) - // apply macros - return substMacros(id, str, args); + return str + } + + // replace {{arguments}} with their values or the + // associated translation string (based on its key) + function substArguments(str, args) { + var reArgs = /\{\{\s*([a-zA-Z\.]+)\s*\}\}/ + , match - // replace {{arguments}} with their values or the - // associated translation string (based on its key) - function substArguments(str, args) { - var reArgs = /\{\{\s*([a-zA-Z\.]+)\s*\}\}/ - , match; - - while (match = reArgs.exec(str)) { - if (!match || match.length < 2) - return str; // argument key not found - - var arg = match[1] - , sub = ''; - if (arg in args) { - sub = args[arg]; - } else if (arg in translations) { - sub = translations[arg]; - } else { - consoleWarn('Could not find argument {{' + arg + '}}'); - return str; - } - - str = str.substring(0, match.index) + sub + str.substr(match.index + match[0].length); + while (match = reArgs.exec(str)) { + if (!match || match.length < 2) + return str // argument key not found + + var arg = match[1] + , sub = '' + if (arg in args) { + sub = args[arg] + } else if (arg in translations) { + sub = translations[arg] + } else { + consoleWarn('Could not find argument {{' + arg + '}}') + return str } - - return str; + + str = str.substring(0, match.index) + sub + str.substr(match.index + match[0].length) } - // replace {[macros]} with their values - function substMacros(key, str, args) { - var regex = /\{\[\s*([a-zA-Z]+):([a-zA-Z]+)\s*\]\}/ - , match = regex.exec(str); - if (!match || !match.length) - return str; - + return str + } + + // replace {[macros]} with their values + function substMacros(key, str, args) { + var regex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)((\s*([a-zA-Z]+)\: ?([ a-zA-Z{}]+),?)+)*\s*\]\}/ //.exec('{[ plural(n) other: are {{n}}, one: is ]}') + , match + + while(match = regex.exec(str)) { // a macro has been found // Note: at the moment, only one parameter is supported - var macroName = reMatch[1] - , paramName = reMatch[2]; + var macroName = match[1] + , paramName = match[2] + , optv = match[3] + , opts = {} - if (!(macroName in gMacros)) return str; + if (!(macroName in html10n.macros)) continue - var param; + if(optv) { + optv.match(/(?=\s*)([a-zA-Z]+)\: ?([ a-zA-Z{}]+)(?=,?)/g).forEach(function(arg) { + var parts = arg.split(':') + , name = parts[0] + , value = parts[1].trim() + opts[name] = value + }) + } + + var param if (args && paramName in args) { - param = args[paramName]; - } else if (paramName in translations) { - param = translations[paramName]; + param = args[paramName] + } else if (paramName in html10n.translations) { + param = translations[paramName] } - // there's no macro parser yet: it has to be defined in gMacros - var macro = html10n.macros[macroName]; - str = macro(translations, key, str, param); - return str; + // there's no macro parser: it has to be defined in html10n.macros + var macro = html10n.macros[macroName] + str = str.substr(0, match.index) + macro(key, param, opts) + str.substr(match.index+match[0].length) } + + return str } /** * Applies translations to a DOM node (recursive) */ html10n.translateNode = function(translations, node) { - var str = {}; + var str = {} // get id - str.id = node.getAttribute('data-l10n-id'); - if (!str.id) return; + str.id = node.getAttribute('data-l10n-id') + if (!str.id) return - if(!translations[str.id]) return consoleWarn('Couldn\'t find translation key '+str.id); + if(!translations[str.id]) return consoleWarn('Couldn\'t find translation key '+str.id) // get args if(window.JSON) { - str.args = JSON.parse(node.getAttribute('data-l10n-args')); + str.args = JSON.parse(node.getAttribute('data-l10n-args')) }else{ try{ - str.args = eval(node.getAttribute('data-l10n-args')); + str.args = eval(node.getAttribute('data-l10n-args')) }catch(e) { - consoleWarn('Couldn\'t parse args for '+str.id); + consoleWarn('Couldn\'t parse args for '+str.id) } } - str.str = html10n.get(str.id, str.args); + str.str = html10n.get(str.id, str.args) // get attribute name to apply str to var prop @@ -817,31 +854,31 @@ window.html10n = (function(window, document, undefined) { , "innerHTML": 1 , "alt": 1 , "textContent": 1 - }; + } if (index > 0 && str.id.substr(index + 1) in attrList) { // an attribute has been specified - prop = str.id.substr(index + 1); + prop = str.id.substr(index + 1) } else { // no attribute: assuming text content by default - prop = document.body.textContent ? 'textContent' : 'innerText'; + prop = document.body.textContent ? 'textContent' : 'innerText' } // Apply translation if (node.children.length === 0 || prop != 'textContent') { - node[prop] = str.str; + node[prop] = str.str } else { var children = node.childNodes, - found = false; + found = false for (var i=0, n=children.length; i < n; i++) { if (children[i].nodeType === 3 && /\S/.test(children[i].textContent)) { if (!found) { - children[i].nodeValue = str.str; - found = true; + children[i].nodeValue = str.str + found = true } else { - children[i].nodeValue = ''; + children[i].nodeValue = '' } } } if (!found) { - consoleWarn('Unexpected error: could not translate element content for key '+str.id, node); + consoleWarn('Unexpected error: could not translate element content for key '+str.id, node) } } } @@ -852,32 +889,32 @@ window.html10n = (function(window, document, undefined) { */ html10n.build = function(langs, cb) { var that = this - , build = {}; + , build = {} asyncForEach(langs, function (lang, i, next) { if(!lang) return next(); - that.loader.load(lang, next); + that.loader.load(lang, next) }, function() { - var lang; - langs.reverse(); + var lang + langs.reverse() // loop through priority array... for (var i=0, n=langs.length; i < n; i++) { - lang = langs[i]; + lang = langs[i] if(!lang || !(lang in that.loader.langs)) continue; // ... and apply all strings of the current lang in the list // to our build object for (var string in that.loader.langs[lang]) { - build[string] = that.loader.langs[lang][string]; + build[string] = that.loader.langs[lang][string] } // the last applied lang will be exposed as the // lang the page was translated to - that.language = lang; + that.language = lang } - cb(null, build); + cb(null, build) }) } @@ -893,8 +930,9 @@ window.html10n = (function(window, document, undefined) { * Returns the direction of the language returned be html10n#getLanguage */ html10n.getDirection = function() { - var langCode = this.language.indexOf('-') == -1? this.language : this.language.substr(0, this.language.indexOf('-')); - return html10n.rtl.indexOf(langCode) == -1? 'ltr' : 'rtl'; + if(!this.language) return + var langCode = this.language.indexOf('-') == -1? this.language : this.language.substr(0, this.language.indexOf('-')) + return html10n.rtl.indexOf(langCode) == -1? 'ltr' : 'rtl' } /** @@ -903,28 +941,28 @@ window.html10n = (function(window, document, undefined) { html10n.index = function () { // Find all <link>s var links = document.getElementsByTagName('link') - , resources = []; + , resources = [] for (var i=0, n=links.length; i < n; i++) { if (links[i].type != 'application/l10n+json') continue; - resources.push(links[i].href); + resources.push(links[i].href) } - this.loader = new Loader(resources); - this.trigger('indexed'); + this.loader = new Loader(resources) + this.trigger('indexed') } if (document.addEventListener) // modern browsers and IE9+ document.addEventListener('DOMContentLoaded', function() { - html10n.index(); - }, false); + html10n.index() + }, false) else if (window.attachEvent) window.attachEvent('onload', function() { - html10n.index(); - }, false); + html10n.index() + }, false) // gettext-like shortcut if (window._ === undefined) window._ = html10n.get; - return html10n; -})(window, document); + return html10n +})(window, document) diff --git a/src/static/js/l10n.js b/src/static/js/l10n.js index a67a7c1a..c79ea706 100644 --- a/src/static/js/l10n.js +++ b/src/static/js/l10n.js @@ -1,8 +1,8 @@ (function(document) { // Set language for l10n - var language = document.cookie.match(/language=((\w{2,3})(-w+)?)/); + var language = document.cookie.match(/language=((\w{2,3})(-\w+)?)/); if(language) language = language[1]; - + html10n.bind('indexed', function() { html10n.localize([language, navigator.language, navigator.userLanguage, 'en']) }) diff --git a/src/static/js/linestylefilter.js b/src/static/js/linestylefilter.js index e6fbc209..034822a4 100644 --- a/src/static/js/linestylefilter.js +++ b/src/static/js/linestylefilter.js @@ -146,7 +146,7 @@ linestylefilter.getLineStyleFilter = function(lineLength, aline, textAndClassFun return function(txt, cls) { - + var disableAuthColorForThisLine = hooks.callAll("disableAuthorColorsForThisLine", { linestylefilter: linestylefilter, text: txt, @@ -260,7 +260,7 @@ linestylefilter.getRegexpFilter = function(regExp, tag) linestylefilter.REGEX_WORDCHAR = /[\u0030-\u0039\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u1FFF\u3040-\u9FFF\uF900-\uFDFF\uFE70-\uFEFE\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFDC]/; linestylefilter.REGEX_URLCHAR = new RegExp('(' + /[-:@a-zA-Z0-9_.,~%+\/\\?=&#!;()$]/.source + '|' + linestylefilter.REGEX_WORDCHAR.source + ')'); -linestylefilter.REGEX_URL = new RegExp(/(?:(?:https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt):\/\/|mailto:|www\.)/.source + linestylefilter.REGEX_URLCHAR.source + '*(?![:.,;])' + linestylefilter.REGEX_URLCHAR.source, 'g'); +linestylefilter.REGEX_URL = new RegExp(/(?:(?:https?|s?ftp|ftps|file|nfs):\/\/|mailto:|www\.)/.source + linestylefilter.REGEX_URLCHAR.source + '*(?![:.,;])' + linestylefilter.REGEX_URLCHAR.source, 'g'); linestylefilter.getURLFilter = linestylefilter.getRegexpFilter( linestylefilter.REGEX_URL, 'url'); diff --git a/src/static/js/pad.js b/src/static/js/pad.js index 6e8b2ae0..cca2f3eb 100644 --- a/src/static/js/pad.js +++ b/src/static/js/pad.js @@ -191,7 +191,7 @@ function handshake() createCookie("token", token, 60); } - var sessionID = readCookie("sessionID"); + var sessionID = decodeURIComponent(readCookie("sessionID")); var password = readCookie("password"); var msg = { @@ -242,7 +242,7 @@ function handshake() pad.collabClient.setChannelState("RECONNECTING"); - disconnectTimeout = setTimeout(disconnectEvent, 10000); + disconnectTimeout = setTimeout(disconnectEvent, 20000); } }); @@ -252,14 +252,22 @@ function handshake() socket.on('message', function(obj) { //the access was not granted, give the user a message - if(!receivedClientVars && obj.accessStatus) + if(obj.accessStatus) { - $('.passForm').submit(require(module.id).savePassword); + if(!receivedClientVars) + $('.passForm').submit(require(module.id).savePassword); if(obj.accessStatus == "deny") { $('#loading').hide(); $("#permissionDenied").show(); + + if(receivedClientVars) + { + // got kicked + $("#editorcontainer").hide(); + $("#editorloadingbox").show(); + } } else if(obj.accessStatus == "needPassword") { @@ -313,7 +321,7 @@ function handshake() if (settings.rtlIsTrue == true) { - pad.changeViewOption('rtl', true); + pad.changeViewOption('rtlIsTrue', true); } // If the Monospacefont value is set to true then change it to monospace. @@ -326,7 +334,7 @@ function handshake() { pad.notifyChangeName(settings.globalUserName); // Notifies the server pad.myUserInfo.name = settings.globalUserName; - $('#myusernameedit').attr({"value":settings.globalUserName}); // Updates the current users UI + $('#myusernameedit').val(settings.globalUserName); // Updates the current users UI } if (settings.globalUserColor !== false && colorutils.isCssHex(settings.globalUserColor)) { @@ -365,8 +373,7 @@ function handshake() $.extend($.gritter.options, { position: 'bottom-right', // defaults to 'top-right' but can be 'bottom-left', 'bottom-right', 'top-left', 'top-right' (added in 1.7.1) - fade_in_speed: 'medium', // how fast notifications fade in (string or int) - fade_out_speed: 2000, // how fast the notices fade out + fade: false, // dont fade, too jerky on mobile time: 6000 // hang on the screen for... }); @@ -442,6 +449,7 @@ var pad = { //initialize the chat chat.init(this); + padcookie.init(); // initialize the cookies pad.initTime = +(new Date()); pad.padOptions = clientVars.initialOptions; @@ -455,7 +463,7 @@ var pad = { { try { - doc.execCommand("BackgroundImageCache", false, true); + document.execCommand("BackgroundImageCache", false, true); } catch (e) {} @@ -470,14 +478,6 @@ var pad = { userAgent: pad.getDisplayUserAgent() }; - if (clientVars.specialKey) - { - pad.myUserInfo.specialKey = clientVars.specialKey; - if (clientVars.specialKeyTranslation) - { - $("#specialkeyarea").html("mode: " + String(clientVars.specialKeyTranslation).toUpperCase()); - } - } padimpexp.init(this); padsavedrevs.init(this); @@ -524,7 +524,7 @@ var pad = { if(padcookie.getPref("showAuthorshipColors") == false){ pad.changeViewOption('showAuthorColors', false); } - hooks.aCallAll("postAceInit", {ace: padeditor.ace}); + hooks.aCallAll("postAceInit", {ace: padeditor.ace, pad: pad}); } }, dispose: function() @@ -663,8 +663,8 @@ var pad = { { alertBar.displayMessage(function(abar) { - abar.find("#servermsgdate").html(" (" + padutils.simpleDateTime(new Date) + ")"); - abar.find("#servermsgtext").html(m.text); + abar.find("#servermsgdate").text(" (" + padutils.simpleDateTime(new Date) + ")"); + abar.find("#servermsgtext").text(m.text); }); } if (m.js) diff --git a/src/static/js/pad_connectionstatus.js b/src/static/js/pad_connectionstatus.js index c592afbd..76eedbc4 100644 --- a/src/static/js/pad_connectionstatus.js +++ b/src/static/js/pad_connectionstatus.js @@ -21,7 +21,6 @@ */ var padmodals = require('./pad_modals').padmodals; -var padeditbar = require('./pad_editbar').padeditbar; var padconnectionstatus = (function() { @@ -43,9 +42,8 @@ var padconnectionstatus = (function() status = { what: 'connected' }; - padmodals.showModal('connected'); - padmodals.hideOverlay(500); + padmodals.hideOverlay(); }, reconnecting: function() { @@ -54,7 +52,7 @@ var padconnectionstatus = (function() }; padmodals.showModal('reconnecting'); - padmodals.showOverlay(500); + padmodals.showOverlay(); }, disconnected: function(msg) { @@ -66,14 +64,14 @@ var padconnectionstatus = (function() why: msg }; - var k = String(msg).toLowerCase(); // known reason why - if (!(k == 'userdup' || k == 'deleted' || k == 'looping' || k == 'slowcommit' || k == 'initsocketfail' || k == 'unauth')) + var k = String(msg); // known reason why + if (!(k == 'userdup' || k == 'deleted' || k == 'looping' || k == 'slowcommit' || k == 'initsocketfail' || k == 'unauth' || k == 'badChangeset' || k == 'corruptPad')) { k = 'disconnected'; } - + padmodals.showModal(k); - padmodals.showOverlay(500); + padmodals.showOverlay(); }, isFullyConnected: function() { diff --git a/src/static/js/pad_editbar.js b/src/static/js/pad_editbar.js index 91a07bf9..1b824031 100644 --- a/src/static/js/pad_editbar.js +++ b/src/static/js/pad_editbar.js @@ -140,7 +140,7 @@ var padeditbar = (function() } else if (cmd == 'import_export') { - self.toggleDropDown("importexport"); + self.toggleDropDown("importexport"); } else if (cmd == 'savedRevision') { @@ -156,10 +156,7 @@ var padeditbar = (function() else if (cmd == 'insertorderedlist') ace.ace_doInsertOrderedList(); else if (cmd == 'indent') { - if (!ace.ace_doIndentOutdent(false)) - { - ace.ace_doInsertUnorderedList(); - } + ace.ace_doIndentOutdent(false); } else if (cmd == 'outdent') { diff --git a/src/static/js/pad_editor.js b/src/static/js/pad_editor.js index dd0cbbbb..b73409ff 100644 --- a/src/static/js/pad_editor.js +++ b/src/static/js/pad_editor.js @@ -62,20 +62,36 @@ var padeditor = (function() }, initViewOptions: function() { + // Line numbers padutils.bindCheckboxChange($("#options-linenoscheck"), function() { pad.changeViewOption('showLineNumbers', padutils.getCheckbox($("#options-linenoscheck"))); }); + + // Author colors padutils.bindCheckboxChange($("#options-colorscheck"), function() { padcookie.setPref('showAuthorshipColors', padutils.getCheckbox("#options-colorscheck")); pad.changeViewOption('showAuthorColors', padutils.getCheckbox("#options-colorscheck")); }); + + // Right to left + padutils.bindCheckboxChange($("#options-rtlcheck"), function() + { + pad.changeViewOption('rtlIsTrue', padutils.getCheckbox($("#options-rtlcheck"))) + }); + html10n.bind('localized', function() { + pad.changeViewOption('rtlIsTrue', ('rtl' == html10n.getDirection())); + padutils.setCheckbox($("#options-rtlcheck"), ('rtl' == html10n.getDirection())); + }) + + // font face $("#viewfontmenu").change(function() { pad.changeViewOption('useMonospaceFont', $("#viewfontmenu").val() == 'monospace'); }); + // Language html10n.bind('localized', function() { $("#languagemenu").val(html10n.getLanguage()); // translate the value of 'unnamed' and 'Enter your name' textboxes in the userlist @@ -104,12 +120,14 @@ var padeditor = (function() if (value == "false") return false; return defaultValue; } - self.ace.setProperty("rtlIsTrue", settings.rtlIsTrue); var v; - v = getOption('rtlIsTrue', false); + v = getOption('rtlIsTrue', ('rtl' == html10n.getDirection())); + // Override from parameters if true + if(settings.rtlIsTrue === true) v = true; self.ace.setProperty("rtlIsTrue", v); + padutils.setCheckbox($("#options-rtlcheck"), v); v = getOption('showLineNumbers', true); self.ace.setProperty("showslinenumbers", v); diff --git a/src/static/js/pad_modals.js b/src/static/js/pad_modals.js index 0292e048..67b03662 100644 --- a/src/static/js/pad_modals.js +++ b/src/static/js/pad_modals.js @@ -20,7 +20,6 @@ * limitations under the License. */ -var padutils = require('./pad_utils').padutils; var padeditbar = require('./pad_editbar').padeditbar; var padmodals = (function() @@ -39,23 +38,11 @@ var padmodals = (function() padeditbar.toggleDropDown("connectivity"); }); }, - showOverlay: function(duration) { - $("#overlay").show().css( - { - 'opacity': 0 - }).animate( - { - 'opacity': 1 - }, duration); + showOverlay: function() { + $("#overlay").show(); }, - hideOverlay: function(duration) { - $("#overlay").animate( - { - 'opacity': 0 - }, duration, function() - { - $("#modaloverlay").hide(); - }); + hideOverlay: function() { + $("#overlay").hide(); } }; return self; diff --git a/src/static/js/pad_userlist.js b/src/static/js/pad_userlist.js index 962595d2..f54b3e54 100644 --- a/src/static/js/pad_userlist.js +++ b/src/static/js/pad_userlist.js @@ -116,12 +116,12 @@ var paduserlist = (function() nameHtml = '<input data-l10n-id="pad.userlist.unnamed" type="text" class="editempty newinput" value="'+_('pad.userlist.unnamed')+'" ' + (isNameEditable(data) ? '' : 'disabled="disabled" ') + '/>'; } - return ['<td style="height:', height, 'px" class="usertdswatch"><div class="swatch" style="background:' + data.color + '"> </div></td>', '<td style="height:', height, 'px" class="usertdname">', nameHtml, '</td>', '<td style="height:', height, 'px" class="activity">', padutils.escapeHtml(data.activity), '</td>'].join(''); + return ['<td style="height:', height, 'px" class="usertdswatch"><div class="swatch" style="background:' + padutils.escapeHtml(data.color) + '"> </div></td>', '<td style="height:', height, 'px" class="usertdname">', nameHtml, '</td>', '<td style="height:', height, 'px" class="activity">', padutils.escapeHtml(data.activity), '</td>'].join(''); } - function getRowHtml(id, innerHtml) + function getRowHtml(id, innerHtml, authorId) { - return '<tr id="' + id + '">' + innerHtml + '</tr>'; + return '<tr data-authorId="'+authorId+'" id="' + id + '">' + innerHtml + '</tr>'; } function rowNode(row) @@ -191,18 +191,20 @@ var paduserlist = (function() domId: domId, animationPower: animationPower }; + var authorId = data.id; + handleRowData(row); rowsPresent.splice(position, 0, row); var tr; if (animationPower == 0) { - tr = $(getRowHtml(domId, getUserRowHtml(getAnimationHeight(0), data))); + tr = $(getRowHtml(domId, getUserRowHtml(getAnimationHeight(0), data), authorId)); row.animationStep = 0; } else { rowsFadingIn.push(row); - tr = $(getRowHtml(domId, getEmptyRowHtml(getAnimationHeight(ANIMATION_START)))); + tr = $(getRowHtml(domId, getEmptyRowHtml(getAnimationHeight(ANIMATION_START)), authorId)); } handleRowNode(tr, data); if (position == 0) @@ -631,6 +633,9 @@ var paduserlist = (function() otherUsersInfo.splice(newExistingIndex, 1); otherUsersData.splice(newExistingIndex, 1); rowManager.removeRow(newExistingIndex); + hooks.callAll('userLeave', { + userInfo: info + }); updateInviteNotice(); } } diff --git a/src/static/js/pad_utils.js b/src/static/js/pad_utils.js index 82f7fcad..bab6aa43 100644 --- a/src/static/js/pad_utils.js +++ b/src/static/js/pad_utils.js @@ -176,7 +176,7 @@ var padutils = { // copied from ACE var _REGEX_WORDCHAR = /[\u0030-\u0039\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u1FFF\u3040-\u9FFF\uF900-\uFDFF\uFE70-\uFEFE\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFDC]/; var _REGEX_URLCHAR = new RegExp('(' + /[-:@a-zA-Z0-9_.,~%+\/?=&#;()$]/.source + '|' + _REGEX_WORDCHAR.source + ')'); - var _REGEX_URL = new RegExp(/(?:(?:https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt):\/\/|mailto:)/.source + _REGEX_URLCHAR.source + '*(?![:.,;])' + _REGEX_URLCHAR.source, 'g'); + var _REGEX_URL = new RegExp(/(?:(?:https?|s?ftp|ftps|file|nfs):\/\/|mailto:)/.source + _REGEX_URLCHAR.source + '*(?![:.,;])' + _REGEX_URLCHAR.source, 'g'); // returns null if no URLs, or [[startIndex1, url1], [startIndex2, url2], ...] @@ -519,12 +519,12 @@ 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 send this error message to us: </span><div style='color:black;font-size:14px'>'" - + "ErrorId: " + errorId + "<br>UserAgent: " + navigator.userAgent + "<br>" + msg + " in " + url + " at line " + linenumber + "'</div></div>"); + $("#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'>'" + + "ErrorId: " + errorId + "<br>URL: " + window.location.href + "<br>UserAgent: " + navigator.userAgent + "<br>" + msg + " in " + url + " at line " + linenumber + "'</div></div>"); } //send javascript errors to the server - var errObj = {errorInfo: JSON.stringify({errorId: errorId, msg: msg, url: url, linenumber: linenumber, userAgent: navigator.userAgent})}; + var errObj = {errorInfo: JSON.stringify({errorId: errorId, msg: msg, url: window.location.href, linenumber: linenumber, userAgent: navigator.userAgent})}; var loc = document.location; var url = loc.protocol + "//" + loc.hostname + ":" + loc.port + "/" + loc.pathname.substr(1, loc.pathname.indexOf("/p/")) + "jserror"; diff --git a/src/static/js/pluginfw/hooks.js b/src/static/js/pluginfw/hooks.js index d9a14d85..106e9ce6 100644 --- a/src/static/js/pluginfw/hooks.js +++ b/src/static/js/pluginfw/hooks.js @@ -61,7 +61,7 @@ exports.flatten = function (lst) { if (lst[i] != undefined && lst[i] != null) { for (var j = 0; j < lst[i].length; j++) { res.push(lst[i][j]); - } + } } } } @@ -70,10 +70,12 @@ exports.flatten = function (lst) { exports.callAll = function (hook_name, args) { if (!args) args = {}; - if (exports.plugins.hooks[hook_name] === undefined) return []; - return _.flatten(_.map(exports.plugins.hooks[hook_name], function (hook) { - return hookCallWrapper(hook, hook_name, args); - }), true); + if (exports.plugins){ + if (exports.plugins.hooks[hook_name] === undefined) return []; + return _.flatten(_.map(exports.plugins.hooks[hook_name], function (hook) { + return hookCallWrapper(hook, hook_name, args); + }), true); + } } exports.aCallAll = function (hook_name, args, cb) { diff --git a/src/static/js/pluginfw/installer.js b/src/static/js/pluginfw/installer.js index 15d87940..e5602616 100644 --- a/src/static/js/pluginfw/installer.js +++ b/src/static/js/pluginfw/installer.js @@ -1,118 +1,92 @@ var plugins = require("ep_etherpad-lite/static/js/pluginfw/plugins"); var hooks = require("ep_etherpad-lite/static/js/pluginfw/hooks"); var npm = require("npm"); -var RegClient = require("npm-registry-client") -var registry = new RegClient( -{ registry: "http://registry.npmjs.org" -, cache: npm.cache } -); - -var withNpm = function (npmfn, final, cb) { +var npmIsLoaded = false; +var withNpm = function (npmfn) { + if(npmIsLoaded) return npmfn(); npm.load({}, function (er) { - if (er) return cb({progress:1, error:er}); + if (er) return npmfn(er); + npmIsLoaded = true; npm.on("log", function (message) { - cb({progress: 0.5, message:message.msg + ": " + message.pref}); - }); - npmfn(function (er, data) { - if (er) { - console.error(er); - return cb({progress:1, error: er.message}); - } - if (!data) data = {}; - data.progress = 1; - data.message = "Done."; - cb(data); - final(); + console.log('npm: ',message) }); + npmfn(); }); } -// All these functions call their callback multiple times with -// {progress:[0,1], message:STRING, error:object}. They will call it -// with progress = 1 at least once, and at all times will either -// message or error be present, not both. It can be called multiple -// times for all values of propgress except for 1. +var tasks = 0 +function wrapTaskCb(cb) { + tasks++ + return function() { + cb && cb.apply(this, arguments); + tasks--; + if(tasks == 0) onAllTasksFinished(); + } +} +function onAllTasksFinished() { + hooks.aCallAll("restartServer", {}, function () {}); +} exports.uninstall = function(plugin_name, cb) { - withNpm( - function (cb) { - npm.commands.uninstall([plugin_name], function (er) { + cb = wrapTaskCb(cb); + withNpm(function (er) { + if (er) return cb && cb(er); + npm.commands.uninstall([plugin_name], function (er) { + if (er) return cb && cb(er); + hooks.aCallAll("pluginUninstall", {plugin_name: plugin_name}, function (er, data) { if (er) return cb(er); - hooks.aCallAll("pluginUninstall", {plugin_name: plugin_name}, function (er, data) { - if (er) return cb(er); - plugins.update(cb); - }); + plugins.update(cb); }); - }, - function () { - hooks.aCallAll("restartServer", {}, function () {}); - }, - cb - ); + }); + }); }; exports.install = function(plugin_name, cb) { - withNpm( - function (cb) { - npm.commands.install([plugin_name], function (er) { + cb = wrapTaskCb(cb) + withNpm(function (er) { + if (er) return cb && cb(er); + npm.commands.install([plugin_name], function (er) { + if (er) return cb && cb(er); + hooks.aCallAll("pluginInstall", {plugin_name: plugin_name}, function (er, data) { if (er) return cb(er); - hooks.aCallAll("pluginInstall", {plugin_name: plugin_name}, function (er, data) { - if (er) return cb(er); - plugins.update(cb); - }); + plugins.update(cb); }); - }, - function () { - hooks.aCallAll("restartServer", {}, function () {}); - }, - cb - ); + }); + }); +}; + +exports.availablePlugins = null; +var cacheTimestamp = 0; + +exports.getAvailablePlugins = function(maxCacheAge, cb) { + withNpm(function (er) { + if (er) return cb && cb(er); + if(exports.availablePlugins && maxCacheAge && Math.round(+new Date/1000)-cacheTimestamp <= maxCacheAge) { + return cb && cb(null, exports.availablePlugins) + } + npm.commands.search(['ep_'], /*silent?*/true, function(er, results) { + if(er) return cb && cb(er); + exports.availablePlugins = results; + cacheTimestamp = Math.round(+new Date/1000); + cb && cb(null, results) + }) + }); }; -exports.searchCache = null; -exports.search = function(query, cache, cb) { - withNpm( - function (cb) { - var getData = function (cb) { - if (cache && exports.searchCache) { - cb(null, exports.searchCache); - } else { - registry.get( - "/-/all", 600, false, true, - function (er, data) { - if (er) return cb(er); - exports.searchCache = data; - cb(er, data); - } - ); - } - } - getData( - function (er, data) { - if (er) return cb(er); - var res = {}; - var i = 0; - var pattern = query.pattern.toLowerCase(); - for (key in data) { // for every plugin in the data from npm - if ( key.indexOf(plugins.prefix) == 0 - && key.indexOf(pattern) != -1 - || key.indexOf(plugins.prefix) == 0 - && data[key].description.indexOf(pattern) != -1 - ) { // If the name contains ep_ and the search string is in the name or description - i++; - if (i > query.offset - && i <= query.offset + query.limit) { - res[key] = data[key]; - } - } - } - cb(null, {results:res, query: query, total:i}); - } - ); - }, - function () { }, - cb - ); +exports.search = function(searchTerm, maxCacheAge, cb) { + exports.getAvailablePlugins(maxCacheAge, function(er, results) { + if(er) return cb && cb(er); + var res = {}; + if (searchTerm) + searchTerm = searchTerm.toLowerCase(); + for (var pluginName in results) { // for every available plugin + if (pluginName.indexOf(plugins.prefix) != 0) continue; // TODO: Also search in keywords here! + + if(searchTerm && !~pluginName.toLowerCase().indexOf(searchTerm) && !~results[pluginName].description.toLowerCase().indexOf(searchTerm)) continue; + res[pluginName] = results[pluginName]; + } + cb && cb(null, res) + }) }; diff --git a/src/static/js/timeslider.js b/src/static/js/timeslider.js index 5203e57b..fd22c69a 100644 --- a/src/static/js/timeslider.js +++ b/src/static/js/timeslider.js @@ -28,9 +28,9 @@ JSON = require('./json2'); var createCookie = require('./pad_utils').createCookie; var readCookie = require('./pad_utils').readCookie; var randomString = require('./pad_utils').randomString; -var _ = require('./underscore'); +var hooks = require('./pluginfw/hooks'); -var socket, token, padId, export_links; +var token, padId, export_links; function init() { $(document).ready(function () @@ -106,13 +106,17 @@ function init() { window.location.reload(); }); + exports.socket = socket; // make the socket available + exports.BroadcastSlider = BroadcastSlider; // Make the slider available + + hooks.aCallAll("postTimesliderInit"); }); } //sends a message over the socket function sendSocketMsg(type, data) { - var sessionID = readCookie("sessionID"); + var sessionID = decodeURIComponent(readCookie("sessionID")); var password = readCookie("password"); var msg = { "component" : "pad", // FIXME: Remove this stupidity! @@ -129,7 +133,7 @@ function sendSocketMsg(type, data) var fireWhenAllScriptsAreLoaded = []; -var BroadcastSlider, changesetLoader; +var changesetLoader; function handleClientVars(message) { //save the client Vars diff --git a/src/static/js/virtual_lines.js b/src/static/js/virtual_lines.js deleted file mode 100644 index 2bcf5ed6..00000000 --- a/src/static/js/virtual_lines.js +++ /dev/null @@ -1,388 +0,0 @@ -/** - * This code is mostly from the old Etherpad. Please help us to comment this code. - * This helps other people to understand this code better and helps them to improve it. - * TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED - */ - -/** - * Copyright 2009 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS-IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -function makeVirtualLineView(lineNode) -{ - - // how much to jump forward or backward at once in a charSeeker before - // constructing a DOM node and checking the coordinates (which takes a - // significant fraction of a millisecond). From the - // coordinates and the approximate line height we can estimate how - // many lines we have moved. We risk being off if the number of lines - // we move is on the order of the line height in pixels. Fortunately, - // when the user boosts the font-size they increase both. - var maxCharIncrement = 20; - var seekerAtEnd = null; - - function getNumChars() - { - return lineNode.textContent.length; - } - - function getNumVirtualLines() - { - if (!seekerAtEnd) - { - var seeker = makeCharSeeker(); - seeker.forwardByWhile(maxCharIncrement); - seekerAtEnd = seeker; - } - return seekerAtEnd.getVirtualLine() + 1; - } - - function getVLineAndOffsetForChar(lineChar) - { - var seeker = makeCharSeeker(); - seeker.forwardByWhile(maxCharIncrement, null, lineChar); - var theLine = seeker.getVirtualLine(); - seeker.backwardByWhile(8, function() - { - return seeker.getVirtualLine() == theLine; - }); - seeker.forwardByWhile(1, function() - { - return seeker.getVirtualLine() != theLine; - }); - var lineStartChar = seeker.getOffset(); - return { - vline: theLine, - offset: (lineChar - lineStartChar) - }; - } - - function getCharForVLineAndOffset(vline, offset) - { - // returns revised vline and offset as well as absolute char index within line. - // if offset is beyond end of line, for example, will give new offset at end of line. - var seeker = makeCharSeeker(); - // go to start of line - seeker.binarySearch(function() - { - return seeker.getVirtualLine() >= vline; - }); - var lineStart = seeker.getOffset(); - var theLine = seeker.getVirtualLine(); - // go to offset, overshooting the virtual line only if offset is too large for it - seeker.forwardByWhile(maxCharIncrement, null, lineStart + offset); - // get back into line - seeker.backwardByWhile(1, function() - { - return seeker.getVirtualLine() != theLine; - }, lineStart); - var lineChar = seeker.getOffset(); - var theOffset = lineChar - lineStart; - // handle case of last virtual line; should be able to be at end of it - if (theOffset < offset && theLine == (getNumVirtualLines() - 1)) - { - var lineLen = getNumChars(); - theOffset += lineLen - lineChar; - lineChar = lineLen; - } - - return { - vline: theLine, - offset: theOffset, - lineChar: lineChar - }; - } - - return { - getNumVirtualLines: getNumVirtualLines, - getVLineAndOffsetForChar: getVLineAndOffsetForChar, - getCharForVLineAndOffset: getCharForVLineAndOffset, - makeCharSeeker: function() - { - return makeCharSeeker(); - } - }; - - function deepFirstChildTextNode(nd) - { - nd = nd.firstChild; - while (nd && nd.firstChild) nd = nd.firstChild; - if (nd.data) return nd; - return null; - } - - function makeCharSeeker( /*lineNode*/ ) - { - - function charCoords(tnode, i) - { - var container = tnode.parentNode; - - // treat space specially; a space at the end of a virtual line - // will have weird coordinates - var isSpace = (tnode.nodeValue.charAt(i) === " "); - if (isSpace) - { - if (i == 0) - { - if (container.previousSibling && deepFirstChildTextNode(container.previousSibling)) - { - tnode = deepFirstChildTextNode(container.previousSibling); - i = tnode.length - 1; - container = tnode.parentNode; - } - else - { - return { - top: container.offsetTop, - left: container.offsetLeft - }; - } - } - else - { - i--; // use previous char - } - } - - - var charWrapper = document.createElement("SPAN"); - - // wrap the character - var tnodeText = tnode.nodeValue; - var frag = document.createDocumentFragment(); - frag.appendChild(document.createTextNode(tnodeText.substring(0, i))); - charWrapper.appendChild(document.createTextNode(tnodeText.substr(i, 1))); - frag.appendChild(charWrapper); - frag.appendChild(document.createTextNode(tnodeText.substring(i + 1))); - container.replaceChild(frag, tnode); - - var result = { - top: charWrapper.offsetTop, - left: charWrapper.offsetLeft + (isSpace ? charWrapper.offsetWidth : 0), - height: charWrapper.offsetHeight - }; - - while (container.firstChild) container.removeChild(container.firstChild); - container.appendChild(tnode); - - return result; - } - - var lineText = lineNode.textContent; - var lineLength = lineText.length; - - var curNode = null; - var curChar = 0; - var curCharWithinNode = 0 - var curTop; - var curLeft; - var approxLineHeight; - var whichLine = 0; - - function nextNode() - { - var n = curNode; - if (!n) n = lineNode.firstChild; - else n = n.nextSibling; - while (n && !deepFirstChildTextNode(n)) - { - n = n.nextSibling; - } - return n; - } - - function prevNode() - { - var n = curNode; - if (!n) n = lineNode.lastChild; - else n = n.previousSibling; - while (n && !deepFirstChildTextNode(n)) - { - n = n.previousSibling; - } - return n; - } - - var seeker; - if (lineLength > 0) - { - curNode = nextNode(); - var firstCharData = charCoords(deepFirstChildTextNode(curNode), 0); - approxLineHeight = firstCharData.height; - curTop = firstCharData.top; - curLeft = firstCharData.left; - - function updateCharData(tnode, i) - { - var coords = charCoords(tnode, i); - whichLine += Math.round((coords.top - curTop) / approxLineHeight); - curTop = coords.top; - curLeft = coords.left; - } - - seeker = { - forward: function(numChars) - { - var oldChar = curChar; - var newChar = curChar + numChars; - if (newChar > (lineLength - 1)) newChar = lineLength - 1; - while (curChar < newChar) - { - var curNodeLength = deepFirstChildTextNode(curNode).length; - var toGo = curNodeLength - curCharWithinNode; - if (curChar + toGo > newChar || !nextNode()) - { - // going to next node would be too far - var n = newChar - curChar; - if (n >= toGo) n = toGo - 1; - curChar += n; - curCharWithinNode += n; - break; - } - else - { - // go to next node - curChar += toGo; - curCharWithinNode = 0; - curNode = nextNode(); - } - } - updateCharData(deepFirstChildTextNode(curNode), curCharWithinNode); - return curChar - oldChar; - }, - backward: function(numChars) - { - var oldChar = curChar; - var newChar = curChar - numChars; - if (newChar < 0) newChar = 0; - while (curChar > newChar) - { - if (curChar - curCharWithinNode <= newChar || !prevNode()) - { - // going to prev node would be too far - var n = curChar - newChar; - if (n > curCharWithinNode) n = curCharWithinNode; - curChar -= n; - curCharWithinNode -= n; - break; - } - else - { - // go to prev node - curChar -= curCharWithinNode + 1; - curNode = prevNode(); - curCharWithinNode = deepFirstChildTextNode(curNode).length - 1; - } - } - updateCharData(deepFirstChildTextNode(curNode), curCharWithinNode); - return oldChar - curChar; - }, - getVirtualLine: function() - { - return whichLine; - }, - getLeftCoord: function() - { - return curLeft; - } - }; - } - else - { - curLeft = lineNode.offsetLeft; - seeker = { - forward: function(numChars) - { - return 0; - }, - backward: function(numChars) - { - return 0; - }, - getVirtualLine: function() - { - return 0; - }, - getLeftCoord: function() - { - return curLeft; - } - }; - } - seeker.getOffset = function() - { - return curChar; - }; - seeker.getLineLength = function() - { - return lineLength; - }; - seeker.toString = function() - { - return "seeker[curChar: " + curChar + "(" + lineText.charAt(curChar) + "), left: " + seeker.getLeftCoord() + ", vline: " + seeker.getVirtualLine() + "]"; - }; - - function moveByWhile(isBackward, amount, optCondFunc, optCharLimit) - { - var charsMovedLast = null; - var hasCondFunc = ((typeof optCondFunc) == "function"); - var condFunc = optCondFunc; - var hasCharLimit = ((typeof optCharLimit) == "number"); - var charLimit = optCharLimit; - while (charsMovedLast !== 0 && ((!hasCondFunc) || condFunc())) - { - var toMove = amount; - if (hasCharLimit) - { - var untilLimit = (isBackward ? curChar - charLimit : charLimit - curChar); - if (untilLimit < toMove) toMove = untilLimit; - } - if (toMove < 0) break; - charsMovedLast = (isBackward ? seeker.backward(toMove) : seeker.forward(toMove)); - } - } - - seeker.forwardByWhile = function(amount, optCondFunc, optCharLimit) - { - moveByWhile(false, amount, optCondFunc, optCharLimit); - } - seeker.backwardByWhile = function(amount, optCondFunc, optCharLimit) - { - moveByWhile(true, amount, optCondFunc, optCharLimit); - } - seeker.binarySearch = function(condFunc) - { - // returns index of boundary between false chars and true chars; - // positions seeker at first true char, or else last char - var trueFunc = condFunc; - var falseFunc = function() - { - return !condFunc(); - }; - seeker.forwardByWhile(20, falseFunc); - seeker.backwardByWhile(20, trueFunc); - seeker.forwardByWhile(10, falseFunc); - seeker.backwardByWhile(5, trueFunc); - seeker.forwardByWhile(1, falseFunc); - return seeker.getOffset() + (condFunc() ? 0 : 1); - } - - return seeker; - } - -} - -exports.makeVirtualLineView = makeVirtualLineView; diff --git a/src/templates/admin/index.html b/src/templates/admin/index.html index 48776515..750a4b52 100644 --- a/src/templates/admin/index.html +++ b/src/templates/admin/index.html @@ -1,24 +1,24 @@ -<!doctype html>
-<html>
- <head>
- <title>Admin Dashboard - Etherpad</title>
- <meta name="viewport" content="width=device-width">
- <link rel="stylesheet" href="../static/css/admin.css">
- <script src="../static/js/jquery.js"></script>
- <script src="../socket.io/socket.io.js"></script>
- </head>
- <body>
- <div id="wrapper">
- <div class="menu">
- <h1>Etherpad</h1>
- <ul>
- <% e.begin_block("adminMenu"); %>
- <li><a href="plugins">Plugin manager</a> </li>
- <li><a href="settings">Settings</a> </li>
- <li><a href="plugins/info">Troubleshooting information</a> </li>
- <% e.end_block(); %>
- </ul>
- </div>
- </div>
- </body>
-</html>
+<!doctype html> +<html> + <head> + <title>Admin Dashboard - Etherpad</title> + <meta name="viewport" content="width=device-width"> + <link rel="stylesheet" href="../static/css/admin.css"> + <script src="../static/js/jquery.js"></script> + <script src="../socket.io/socket.io.js"></script> + </head> + <body> + <div id="wrapper"> + <div class="menu"> + <h1><a href="../../">Etherpad</a></h1> + <ul> + <% e.begin_block("adminMenu"); %> + <li><a href="plugins">Plugin manager</a> </li> + <li><a href="settings">Settings</a> </li> + <li><a href="plugins/info">Troubleshooting information</a> </li> + <% e.end_block(); %> + </ul> + </div> + </div> + </body> +</html> diff --git a/src/templates/admin/plugins-info.html b/src/templates/admin/plugins-info.html index d1ca9a11..ca6fbc82 100644 --- a/src/templates/admin/plugins-info.html +++ b/src/templates/admin/plugins-info.html @@ -1,7 +1,7 @@ <% var plugins = require("ep_etherpad-lite/static/js/pluginfw/plugins"); %> -<!doctype html> +<!doctype html> <html> <head> <title>Plugin information - Etherpad</title> @@ -11,7 +11,7 @@ <body> <div id="wrapper"> <div class="menu"> - <h1>Etherpad</h1> + <h1><a href="../../../">Etherpad</a></h1> <ul> <% e.begin_block("adminMenu"); %> <li><a href="../plugins">Plugin manager</a> </li> @@ -35,7 +35,7 @@ <h3>Client side hooks</h3> <div><%- plugins.formatHooks("client_hooks") %></div> - + </div> </div> </body> diff --git a/src/templates/admin/plugins.html b/src/templates/admin/plugins.html index 7c2a7abf..75c47ad4 100644 --- a/src/templates/admin/plugins.html +++ b/src/templates/admin/plugins.html @@ -1,97 +1,114 @@ -<!doctype html>
-<html>
- <head>
- <title>Plugin manager - Etherpad</title>
- <meta name="viewport" content="width=device-width">
- <link rel="stylesheet" href="../static/css/admin.css">
- <script src="../static/js/jquery.js"></script>
- <script src="../socket.io/socket.io.js"></script>
- <script src="../static/js/admin/plugins.js"></script>
- </head>
- <body>
- <div id="wrapper">
-
- <% if (errors.length) { %>
- <div class="errors">
- <% errors.forEach(function (item) { %>
- <div class="error"><%= item.toString() %></div>
- <% }) %>
- </div>
- <% } %>
-
- <div class="menu">
- <h1>Etherpad</h1>
- <ul>
- <% e.begin_block("adminMenu"); %>
- <li><a href="plugins">Plugin manager</a> </li>
- <li><a href="settings">Settings</a> </li>
- <li><a href="plugins/info">Troubleshooting information</a> </li>
- <% e.end_block(); %>
- </ul>
- <div id="progress"><img src="../static/img/loading.gif"> <span class="message"></span></div>
- </div>
-
- <div class="innerwrapper">
- <h2>Installed plugins</h2>
- <table>
- <thead>
- <tr>
- <th>Name</th>
- <th>Description</th>
- <th>Version</th>
- <td></td>
- </tr>
- </thead>
- <tbody class="template">
- <tr id="installed-plugin-template">
- <td class="name" data-label="Name"></td>
- <td class="description" data-label="Description"></td>
- <td class="version" data-label="Version"></td>
- <td class="actions">
- <input type="button" value="Uninstall" class="do-uninstall">
- </td>
- </tr>
- </tbody>
- <tbody id="installed-plugins">
- </tbody>
- </table>
-
- <div class="paged listing search-results">
- <div class="separator"></div>
-
- <h2>Available plugins</h2>
- <form>
- <input type="text" name="search" placeholder="Search for plugins to install" id="search-query">
- </form>
-
- <table>
- <thead>
- <tr>
- <th>Name</th>
- <th>Description</th>
- <th>Version</th>
- <td></td>
- </tr>
- </thead>
- <tbody class="template">
- <tr>
- <td class="name" data-label="Name"></td>
- <td class="description" data-label="Description"></td>
- <td class="version" data-label="Version"></td>
- <td class="actions">
- <input type="button" value="Install" class="do-install">
- </td>
- </tr>
- </tbody>
- <tbody class="results">
- </tbody>
- </table>
- <input type="button" value="<<" class="do-prev-page">
- <span class="offset"></span>..<span class="limit"></span> of <span class="total"></span>.
- <input type="button" value=">>" class="do-next-page">
- </div>
-
- </div>
- </div>
- </body>
-</html>
+<!doctype html> +<html> + <head> + <title>Plugin manager - Etherpad</title> + <meta name="viewport" content="width=device-width"> + <link rel="stylesheet" href="../static/css/admin.css"> + <script src="../static/js/jquery.js"></script> + <script src="../socket.io/socket.io.js"></script> + <script src="../static/js/admin/plugins.js"></script> + </head> + <body> + <div id="wrapper"> + + <% if (errors.length) { %> + <div class="errors"> + <% errors.forEach(function (item) { %> + <div class="error"><%= item.toString() %></div> + <% }) %> + </div> + <% } %> + + <div class="menu"> + <h1><a href="../../">Etherpad</a></h1> + <ul> + <% e.begin_block("adminMenu"); %> + <li><a href="plugins">Plugin manager</a> </li> + <li><a href="settings">Settings</a> </li> + <li><a href="plugins/info">Troubleshooting information</a> </li> + <% e.end_block(); %> + </ul> + </div> + + <div class="innerwrapper"> + <h2>Installed plugins</h2> + <table class="installed-results"> + <thead> + <tr> + <th>Name</th> + <th>Description</th> + <th>Version</th> + <td></td> + </tr> + </thead> + <tbody class="template"> + <tr id="installed-plugin-template"> + <td class="name" data-label="Name"></td> + <td class="description" data-label="Description"></td> + <td class="version" data-label="Version"></td> + <td> + <div class="actions"> + <input type="button" value="Uninstall" class="do-uninstall"> + <div class="progress"><p><img src="../static/img/loading.gif"/></p><p><span class="message"></span></p></div> + </div> + </td> + </tr> + </tbody> + <tbody id="installed-plugins"> + </tbody> + <tbody class="messages"> + <tr><td></td><td> + <p class="nothing-installed">You haven't installed any plugins yet.</p> + <p class="fetching"><img src="../static/img/loading.gif"/><br/>Fetching installed plugins...</p> + </td><td></td></tr> + </tbody> + </table> + + <div class="paged listing search-results"> + <div class="separator"></div> + + <h2>Available plugins</h2> + <form> + <input type="text" name="search" disabled placeholder="Search for plugins to install" id="search-query"> + </form> + + <table> + <thead> + <tr> + <th class="sort up" data-label="name">Name</th> + <th class="sort none" data-label="description">Description</th> + <th class="sort none" data-label="version">Version</th> + <td></td> + </tr> + </thead> + <tbody class="template"> + <tr> + <td class="name" data-label="Name"></td> + <td class="description" data-label="Description"></td> + <td class="version" data-label="Version"></td> + <td> + <div class="actions"> + <input type="button" value="Install" class="do-install"> + <div class="progress"><p><img src="../static/img/loading.gif"/></p><p><span class="message"></span></p></div> + </div> + </td> + </tr> + </tbody> + <tbody class="results"> + </tbody> + <tbody> + <tr><td></td><td> + <div class="messages"> + <div id="search-progress" class="progress"><p> </p></div> + <p class="nothing-found">No plugins found.</p> + <p class="fetching"><img src="../static/img/loading.gif"/><br/>Fetching...</p> + </div> + </td><td></td></tr> + </tbody> + </table> + </div> + + </div> + </div> + </body> +</html> diff --git a/src/templates/admin/settings.html b/src/templates/admin/settings.html index 4476b733..f6b8087c 100644 --- a/src/templates/admin/settings.html +++ b/src/templates/admin/settings.html @@ -1,49 +1,49 @@ -<!doctype html>
-<html>
- <head>
- <title>Settings - Etherpad</title>
- <meta name="viewport" content="width=device-width">
- <link rel="stylesheet" href="../static/css/admin.css">
- <script src="../static/js/jquery.js"></script>
- <script src="../socket.io/socket.io.js"></script>
- <script src="../static/js/admin/minify.json.js"></script>
- <script src="../static/js/admin/settings.js"></script>
- <script src="../static/js/admin/jquery.autosize.js"></script>
-
- </head>
- <body>
- <div id="wrapper">
-
- <% if (errors.length) { %>
- <div class="errors">
- <% errors.forEach(function (item) { %>
- <div class="error"><%= item.toString() %></div>
- <% }) %>
- </div>
- <% } %>
-
-
- <div class="menu">
- <h1>Etherpad</h1>
- <ul>
- <% e.begin_block("adminMenu"); %>
- <li><a href="plugins">Plugin manager</a> </li>
- <li><a href="settings">Settings</a> </li>
- <li><a href="plugins/info">Troubleshooting information</a> </li>
- <% e.end_block(); %>
- </ul>
- </div>
-
- <div class="innerwrapper">
- <h2>Current configuration</h2>
- <textarea class="settings"></textarea>
- <input type="button" class="settingsButton" id="saveSettings" value="Save Settings">
- <input type="button" class="settingsButton" id="restartEtherpad" value="Restart Etherpad">
- <div id="response"></div>
- <div class="separator"></div>
- <a href='https://github.com/ether/etherpad-lite/wiki/Example-Production-Settings.JSON'>Example production settings template</a>
- <a href='https://github.com/ether/etherpad-lite/wiki/Example-Development-Settings.JSON'>Example development settings template</a>
- </div>
- </div>
- </body>
-</html>
+<!doctype html> +<html> + <head> + <title>Settings - Etherpad</title> + <meta name="viewport" content="width=device-width"> + <link rel="stylesheet" href="../static/css/admin.css"> + <script src="../static/js/jquery.js"></script> + <script src="../socket.io/socket.io.js"></script> + <script src="../static/js/admin/minify.json.js"></script> + <script src="../static/js/admin/settings.js"></script> + <script src="../static/js/admin/jquery.autosize.js"></script> + + </head> + <body> + <div id="wrapper"> + + <% if (errors.length) { %> + <div class="errors"> + <% errors.forEach(function (item) { %> + <div class="error"><%= item.toString() %></div> + <% }) %> + </div> + <% } %> + + + <div class="menu"> + <h1><a href="../../">Etherpad</a></h1> + <ul> + <% e.begin_block("adminMenu"); %> + <li><a href="plugins">Plugin manager</a> </li> + <li><a href="settings">Settings</a> </li> + <li><a href="plugins/info">Troubleshooting information</a> </li> + <% e.end_block(); %> + </ul> + </div> + + <div class="innerwrapper"> + <h2>Current configuration</h2> + <textarea class="settings"></textarea> + <input type="button" class="settingsButton" id="saveSettings" value="Save Settings"> + <input type="button" class="settingsButton" id="restartEtherpad" value="Restart Etherpad"> + <div id="response"></div> + <div class="separator"></div> + <a href='https://github.com/ether/etherpad-lite/wiki/Example-Production-Settings.JSON'>Example production settings template</a> + <a href='https://github.com/ether/etherpad-lite/wiki/Example-Development-Settings.JSON'>Example development settings template</a> + </div> + </div> + </body> +</html> diff --git a/src/templates/index.html b/src/templates/index.html index 4f6d500b..02ecf67a 100644 --- a/src/templates/index.html +++ b/src/templates/index.html @@ -5,29 +5,29 @@ <html> <title><%=settings.title%></title> - <script> - /* - |@licstart The following is the entire license notice for the - JavaScript code in this page.| + <script> + /* + |@licstart The following is the entire license notice for the + JavaScript code in this page.| - Copyright 2011 Peter Martischka, Primary Technology. + Copyright 2011 Peter Martischka, Primary Technology. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. - |@licend The above is the entire license notice - for the JavaScript code in this page.| - */ - </script> + |@licend The above is the entire license notice + for the JavaScript code in this page.| + */ + </script> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> diff --git a/src/templates/pad.html b/src/templates/pad.html index 76df5133..d03bcbe4 100644 --- a/src/templates/pad.html +++ b/src/templates/pad.html @@ -154,6 +154,7 @@ <% e.end_block(); %> </ul> </div> + <% e.begin_block("afterEditbar"); %><% e.end_block(); %> <div id="users"> <% e.begin_block("userlist"); %> @@ -195,7 +196,9 @@ <div id="wrongPassword"> <p data-l10n-id="pad.wrongPassword">Your password was wrong</p> </div> + <% e.begin_block("loading"); %> <p data-l10n-id="pad.loading" id="loading">Loading...</p> + <% e.end_block(); %> <noscript><strong>Sorry, you have to enable Javascript in order to use this.</strong></noscript> </div> </div> @@ -217,6 +220,10 @@ <input type="checkbox" id="options-linenoscheck" checked> <label for="options-linenoscheck" data-l10n-id="pad.settings.linenocheck"></label> </p> + <p> + <input type="checkbox" id="options-rtlcheck"> + <label for="options-rtlcheck" data-l10n-id="pad.settings.rtlcheck"></label> + </p> <% e.end_block(); %> <table> <% e.begin_block("mySettings.dropdowns"); %> @@ -267,7 +274,6 @@ <div id="import"></div> <div class="importmessage" id="importmessagesuccess" data-l10n-id="pad.importExport.importSuccessful"></div> <div class="importformdiv" id="importformsubmitdiv"> - <input type="hidden" name="padId" value="blpmaXT35R"> <span class="nowrap"> <input type="submit" name="submit" value="Import Now" disabled="disabled" id="importsubmitinput"> <img alt="" id="importstatusball" src="../static/img/loading.gif" align="top"> @@ -277,7 +283,7 @@ </form> <% e.end_block(); %> </div> - <div class="column"> + <div class="column" id="exportColumn"> <h2 data-l10n-id="pad.importExport.export"></h2> <% e.begin_block("exportColumn"); %> <a id="exporthtmla" target="_blank" class="exportlink"><div class="exporttype" id="exporthtml" data-l10n-id="pad.importExport.exporthtml"></div></a> @@ -311,7 +317,7 @@ <button id="forcereconnect" data-l10n-id="pad.modals.forcereconnect"></button> </div> <div class="looping"> - <h1 data-l10n-id="pad.modals.looping"></h1> + <h1 data-l10n-id="pad.modals.disconnected"></h1> <h2 data-l10n-id="pad.modals.looping.explanation"></h2> <p data-l10n-id="pad.modals.looping.cause"></p> </div> @@ -321,11 +327,22 @@ <p data-l10n-id="pad.modals.initsocketfail.cause"></p> </div> <div class="slowcommit"> - <h1 data-l10n-id="pad.modals.slowcommit"></h1> + <h1 data-l10n-id="pad.modals.disconnected"></h1> <h2 data-l10n-id="pad.modals.slowcommit.explanation"></h2> <p data-l10n-id="pad.modals.slowcommit.cause"></p> <button id="forcereconnect" data-l10n-id="pad.modals.forcereconnect"></button> </div> + <div class="badChangeset"> + <h1 data-l10n-id="pad.modals.disconnected"></h1> + <h2 data-l10n-id="pad.modals.badChangeset.explanation"></h2> + <p data-l10n-id="pad.modals.badChangeset.cause"></p> + <button id="forcereconnect" data-l10n-id="pad.modals.forcereconnect"></button> + </div> + <div class="corruptPad"> + <h1 data-l10n-id="pad.modals.disconnected"></h1> + <h2 data-l10n-id="pad.modals.corruptPad.explanation"></h2> + <p data-l10n-id="pad.modals.corruptPad.cause"></p> + </div> <div class="deleted"> <h1 data-l10n-id="pad.modals.deleted"></h1> <p data-l10n-id="pad.modals.deleted.explanation"></p> @@ -355,12 +372,12 @@ <h1 data-l10n-id="pad.share"></h1> <div id="linkcode"> <h2 data-l10n-id="pad.share.link"></h2> - <input id="linkinput" type="text" value=""> + <input id="linkinput" type="text" value="" onclick="this.select()"> </div> <br> <div id="embedcode"> <h2 data-l10n-id="pad.share.emebdcode"></h2> - <input id="embedinput" type="text" value=""> + <input id="embedinput" type="text" value="" onclick="this.select()"> </div> <% e.end_block(); %> </div> @@ -372,7 +389,10 @@ </div> <div id="chatbox"> - <div id="titlebar"><span id ="titlelabel" data-l10n-id="pad.chat"></span><a id="titlecross" onClick="chat.hide();return false;">- </a></div> + <div id="titlebar"><span id ="titlelabel" data-l10n-id="pad.chat"></span> + <a id="titlecross" onClick="chat.hide();return false;">- </a> + <a id="titlesticky" onClick="chat.stickToScreen(true);$('#options-stickychat').prop('checked', true);return false;" title="Stick chat to screen">█ </a> + </div> <div id="chattext" class="authorColors"> <img alt="loading.." id="chatloadmessagesball" class="chatloadmessages" src="../static/img/loading.gif" align="top"> <button id="chatloadmessagesbutton" class="chatloadmessages" data-l10n-id="pad.chat.loadmessages"></button> diff --git a/src/templates/timeslider.html b/src/templates/timeslider.html index 4a8543c5..2e00b8c2 100644 --- a/src/templates/timeslider.html +++ b/src/templates/timeslider.html @@ -40,8 +40,10 @@ <% e.end_block(); %> <link rel="localizations" type="application/l10n+json" href="../../locales.json" /> + <% e.begin_block("timesliderScripts"); %> <script type="text/javascript" src="../../static/js/html10n.js"></script> <script type="text/javascript" src="../../static/js/l10n.js"></script> + <% e.end_block(); %> </head> <% e.begin_block("timesliderBody"); %> @@ -133,7 +135,7 @@ <button id="forcereconnect" data-l10n-id="pad.modals.forcereconnect"></button> </div> <div class="looping"> - <h1 data-l10n-id="pad.modals.looping"></h1> + <h1 data-l10n-id="pad.modals.disconnected"></h1> <h2 data-l10n-id="pad.modals.looping.explanation"></h2> <p data-l10n-id="pad.modals.looping.cause"></p> </div> @@ -143,20 +145,33 @@ <p data-l10n-id="pad.modals.initsocketfail.cause"></p> </div> <div class="slowcommit"> - <h1 data-l10n-id="pad.modals.slowcommit"></h1> + <h1 data-l10n-id="pad.modals.disconnected"></h1> <h2 data-l10n-id="pad.modals.slowcommit.explanation"></h2> <p data-l10n-id="pad.modals.slowcommit.cause"></p> <button id="forcereconnect" data-l10n-id="pad.modals.forcereconnect"></button> </div> + <div class="badChangeset"> + <h1 data-l10n-id="pad.modals.disconnected"></h1> + <h2 data-l10n-id="pad.modals.badChangeset.explanation"></h2> + <p data-l10n-id="pad.modals.badChangeset.cause"></p> + <button id="forcereconnect" data-l10n-id="pad.modals.forcereconnect"></button> + </div> + <div class="corruptPad"> + <h1 data-l10n-id="pad.modals.disconnected"></h1> + <h2 data-l10n-id="pad.modals.corruptPad.explanation"></h2> + <p data-l10n-id="pad.modals.corruptPad.cause"></p> + </div> <div class="deleted"> <h1 data-l10n-id="pad.modals.deleted"></h1> <p data-l10n-id="pad.modals.deleted.explanation"></p> </div> <div class="disconnected"> + <% e.begin_block("disconnected"); %> <h1 data-l10n-id="pad.modals.disconnected"></h1> <h2 data-l10n-id="pad.modals.disconnected.explanation"></h2> <p data-l10n-id="pad.modals.disconnected.cause"></p> <button id="forcereconnect" data-l10n-id="pad.modals.forcereconnect"></button> + <% e.end_block(); %> </div> <form id="reconnectform" method="post" action="/ep/pad/reconnect" accept-charset="UTF-8" style="display: none;"> <input type="hidden" class="padId" name="padId"> @@ -192,7 +207,7 @@ <!-- Bootstrap --> <script type="text/javascript" > var clientVars = {}; - + var BroadcastSlider; (function () { var pathComponents = location.pathname.split('/'); @@ -211,6 +226,8 @@ } var plugins = require('ep_etherpad-lite/static/js/pluginfw/client_plugins'); + var socket = require('ep_etherpad-lite/static/js/timeslider').socket; + BroadcastSlider = require('ep_etherpad-lite/static/js/timeslider').BroadcastSlider; plugins.baseURL = baseURL; plugins.update(function () { |