+
+
+
diff --git a/locales/bg/app.properties b/locales/bg/app.properties
new file mode 100644
index 0000000..08cc6a0
--- /dev/null
+++ b/locales/bg/app.properties
@@ -0,0 +1,109 @@
+about-firetext=Относно Файъртекст
+alignment=Подравняване
+allow-sdcard=Моля, позволете на Файъртекст да достъпи Вашата SD карта памет.
+always-off=Винаги изключено
+always-on=Винаги включено
+auto=Автоматично
+automatic-printing-failed=Не можем да принтираме този файл автоматично. Моля, изберете „Принтиране“ от браузъра си, ако това е възможно.
+bold=Получер
+cancel=Отказ
+center=Центрирано
+clear=Изчистване
+clear-recents.innerHTML=Изчистване на скорошните файлове
+click-compose-icon-to-create=Натиснете иконката за съставяне, за да създадете нов документ.
+close=Затваряне
+cloud=Облак
+contains-special-characters=Специалните символи не са позволени. Моля прегледайте отново.
+content-not-defined=Съдържанието не беше определено
+could-not-initialize-filesystem=Грешка: файловата система не може да бъде достъпена
+create=Създаване
+credits=За създателите на Firetext
+delete-selected=Изтриване на избраното
+delete-unsuccessful=Неуспешно изтриване на файла. Подробности за грешката:
+deselect-all=Размаркиране на всичко
+design=Дизайн
+documents=Документи
+documents-device=Документи на това устройство
+documents-dropbox=Документи във Вашия Дропбокс
+done=Готово
+dropbox-full=Вашият Дропбокс е пълен. Опресняването няма да помогне.
+edit-docs=Редактиране на документи
+editing=Редактиране
+elements=Елементи
+enable-autosave.innerHTML=Включване на автоматичното запазване
+enable-file-previews.innerHTML=Включване на прегледа на файловете
+enable-night-mode.innerHTML=Включване на нощния режим
+enter-name=Моля въведете име за новия файл.
+export=Изнасяне
+file-creation-fail=Неуспешно създаване на файла. Подробности за грешката:
+file-exists=Такъв файл вече съществува, моля изберете друго име.
+firetext-support=Поддръжка на Firetext
+formatting=Форматиране
+help=Помощ
+horizontal-rule=Хоризонтална линия
+insert=Вмъкване
+insert-image=Вмъкване на изображение
+insert-link=Вмъкване на връзка
+insert-table=Вмъкване на таблица
+internal-storage=Вътрешно съхранение
+invalid-location=Файлът не можа да бъде създаден. Моля, изберете валидно място.
+image=Изображение
+image-location=Местоположение на изображението
+import=Внасяне
+italic=Курсив
+justified=Двустранно
+language.innerHTML=Език на потребителския интерфейс
+left=Ляво
+link=Връзка
+list=Списък
+load-last-file.innerHTML=Зареждане на последния файл при стартриране
+load-unsuccessful=Неуспешно зареждане. Подробности за грешката:
+menu=Меню
+needs-restart=Тази настройка ще бъде приложена след като Файъртекст бъде рестартиран. Искате ли да го рестартирате сега?
+network-error=Изглежда мрежата Ви не е налична. Моля, проверете връзката си и опитайте отново
+no=Не
+no-dropbox-documents-found=Няма открити документи в Дропбокс
+no-documents-found=Няма открити документи
+no-files-selected=Няма избрани файлове
+no-recent-documents=Няма скорошни документи
+no-storage-method=Моля, настройте система за съхранение, за да можете да променяте файлове:
+not-functional-link=Тази връзка не работи...
+not-signed-in=Не сте вписани
+number-of-columns.placeholder=Брой колони
+number-of-rows.placeholder=Брой редове
+numbered-list=Номериран списък
+okay=Добре
+open=Отваряне
+other=Друго
+path-not-defined=Пътят не беше определен
+print=Принтиране
+privacy=Лични данни
+rate-firetext=Оценете Файъртекст
+raw=Суров
+recent-documents=Наскоро отваряни документи
+recents-eliminated=Списъкът с наскоро отваряните от Вас документи беше изчистен успешно!
+right=Дясно
+save=Запазване
+save-as=Запазване като
+save-changes-question=Желаете ли да запазите промените си?
+save-unsuccessful=Неуспешно запазване. Подробности за грешката:
+select-all=Избиране на всички
+select-language=Изберете език
+send-error-stats.innerHTML=Изпращане на статистики за грешки
+settings=Настройки
+shared-sdcard=SD картата памет в устройството Ви не е споделена и затова не е достъпна. Опитайте да изключите възможността за USB съхранение от настройките.
+strikethrough=Зачертан
+successfully-saved=Успешно запазване
+table=Таблица
+the-web=Мрежата
+tools=Инструменти
+unable-to-get-sdcard=Неуспешно заемане на мястото, използвано от SD картата памет:
+underline=Подчертан
+unknown-error=Неизвестна грешка
+use-dropbox.innerHTML=Използване на Дропбокс
+valid-integer-value=Моля, въведете правилна стойност (например 2 или 5)
+visual=Визуално
+want-to-delete-singular=Желаете ли да изтриете този файл?
+want-to-delete-plural=Желаете ли да изтриете тези файлове?
+warning-unsupported-technology=Внимание: Вашият браузър не поддържа някои съществени функционалности, нужни на Файъртекст. Моля, изтеглете Файърфокс от https://mozilla.org/firefox.
+yes=Да
diff --git a/locales/bn-BD/app.properties b/locales/bn-BD/app.properties
index 6796d3c..73f7557 100644
--- a/locales/bn-BD/app.properties
+++ b/locales/bn-BD/app.properties
@@ -1,104 +1,109 @@
-about-firetext = ফায়ারটেক্সট সম্পর্কে
-alignment = একসারিতে সাজানো
-allow-sdcard = অনুগ্রহপূর্বক ফায়ারটেক্সটকে আপনার এসডি কার্ড ব্যবহারের অনুমতি দিন
-always-off = সবসময় বন্ধ
-always-on = সবসময় চালু
-auto = স্বয়ংক্রিয়
-bold = মোটা
-cancel = বাতিল করুন
-center = মাঝখানে
-clear = পরিষ্কার করা
-clear-recents.innerHTML = তালিকায়সাম্প্রতিকগুলো পরিষ্কার করুন
-click-compose-icon-to-create = নতুন নথি তৈরী করার জন্যে রচনা প্রতীকটি চাপুন।
-close-document = নথি বন্ধ করুন
-cloud = ক্লাউড
-contains-special-characters = বিশেষ অক্ষরগুলোর অনুমতি নেই। অনুগ্রহ করে পুনরায় দেখুন।
-content-not-defined = এই বিষয়বস্তুটি পূর্বে সংজ্ঞায়িত নয়
-could-not-initialize-filesystem = ত্রুটি: ফাইলসিস্টেম চালু করা যাচ্ছে না
-create-document = নথি তৈরী করা
-create = তৈরী করা
-credits = ফায়ারটেক্সট সম্মাননা
-delete-selected = বাছাইকরাটুকু মুছে দিন
-delete-unsuccessful = নথি মুছতে ব্যর্থ।\n\n\nত্রুটির বিস্তারিত:\n
-deselect-all = সবগুলি অবাছাইকৃত
-design = নকশা
-document-actions = নথির কাজসমূহ
-documents-device = এই যন্ত্রে থাকা নথিসমূহ
-documents-dropbox = আপনার ড্রপবক্সের নথিসমূহ
-done = সম্পন্ন হয়েছে
-dropbox-full = আপনার ড্রপবক্স পূর্ণ হয়ে গিয়েছে। রিফ্রেশ করে লাভ হবে না।
-edit-docs = নথিগুলি সম্পাদনা করুন
-edit-with-zen-mode.innerHTML = সম্পাদনা করুন ঐকান্তিক রূপে
-editing = সম্পাদনা করছে
-elements = উপাদানসমূহ
-enable-autosave.innerHTML = স্বয়ংক্রিয় সংরক্ষণ সক্ষম করুন
-enable-file-previews.innerHTML = নথির পূর্বরূপ সক্ষম করুন
-enable-night-mode.innerHTML = রাতের প্রক্রিয়াসক্ষম করুন
-enter-name = অনুগ্রহ করে নতুন নথিটিকে একটি নাম দিন।
-file-creation-fail = নথি তৈরিতে ব্যর্থ।\n\n\nত্রুটির বিস্তারিত:\n
-file-exists = এই নথিটি ইতোমধ্যেই রয়েছে, অনুগ্রহ করে নতুন আরেকটি নাম বেছে নিন।
-firetext-support = ফায়ারটেক্সট সমর্থন
-formatting = সজ্জিত হচ্ছে
-help = সহায়তা
-horizontal-rule = অনুভূমিক রীতি
-insert = প্রবেশ করান
-insert-image = চিত্র প্রবেশ করান
-insert-link = লিংক প্রবেশ করান
-insert-table = সারনি প্রবেশ করান
-internal-storage = অভ্যন্তরীণ সংরক্ষণাগার
-image = চিত্র
-image-location = চিত্রের অবস্থান
-invalid-location = নথি তৈরি করতে পারছে না। অনুগ্রহপূর্বক একটি বৈধ অবস্থান নির্বাচন করুন।
-italic = বাঁকানো
-justified = ন্যায্যকৃত
-language.innerHTML = ইন্টারফেসের ভাষা
-left = বামে
-link = লিংক
-list = তালিকা
-load-last-file.innerHTML = সর্বশেষ নথিটি লোড করুন চালু হতেই
-load-unsuccessful = লোড করতে পারেনি।\n\n\nত্রুটির বিবরন:\n
-menu = মেন্যু
-network-error = আপনার নেটওয়ার্ক প্রাপ্য নয় বলেই মনে হচ্ছে।\n\n\nআপনার সংযোগ পরীক্ষা করুন এবং পুনরায় চেষ্টা করুন।
-no = না
-no-dropbox-documents-found = ড্রপবক্সের কোন নথি খুঁজে পায়নি
-no-documents-found = কোন নথি পাওয়া যায়নি
-no-files-selected = কোনো নথিই নির্বাচন করা হয়নি
-no-recent-documents = কোন সাম্প্রতিক নথি নেই
-no-storage-method = সংরক্ষন করার কোন মাধ্যম অাপনি নির্ধারন করেননি
-not-signed-in = অাপনি সাইন ইন করেননি
-number-of-columns.placeholder = কলামের সংখ্যা
-number-of-rows.placeholder = সারির সংখ্যা
-numbered-list = সংখ্যায়িত তালিকা
-okay = ঠিক আছে
-open-document = নথি খুলুন
-other = অন্য কিছু
-path-not-defined = পথটি নির্দেশিত নয়
-privacy = গোপনীয়তা
-rate-firetext = ফায়ারটেক্সটের গুনমান বিচার করুন
-raw = অরূপান্তরিত
-recent-documents = সাম্প্রতিককালে খোলা নথিগুলো
-recents-eliminated = অাপনার সাম্প্রতিক নথিগুলোর তালিকা সফলভাবে বিলুপ্ত হয়েছে !
-right = ডানে
-save-changes-question = আপনি কি আপনার করা পরিবর্তনগুলো সংরক্ষণ করতে চান?
-save-document = নথি সংরক্ষণ করুন
-save-unsuccessful = সংরক্ষণ করা যায়নি।\n\n\nত্রুটির বিবরন:\n
-select-all = সবগুলো নির্বাচন করা
-select-language = আপনার ভাষা বেছে নিন
-send-error-stats.innerHTML = ত্রুটি পাঠানো পরিসংখ্যান
-settings = সেটিংস
-shared-sdcard = আপনার ডিভাইসের এস.ডি. কার্ড শেয়ার করা এবং সেজন্যেই এখন সুলভ নয়। সেটিংসে আপনার ইউএসবি গণ সংরক্ষণাগারটি অক্ষম করার চেষ্টা করুন।
-strikethrough = মাঝবরাবরে দাগান্কিত করা
-successfully-saved = সফলভাবে সংরক্ষিত।
-table = সারনি
-the-web = ওয়েব
-tools = সরঞ্জামাদি
-unable-to-get-sdcard = এসডি কার্ড কর্তৃক ব্যবহৃত স্থানটি পেতে ব্যর্থ:
-underline = নিম্নরেখাংকণ
-unknown-error = অজানা ত্রুটি
-use-dropbox.innerHTML = ড্রপবক্সব্যবহার করুন
-valid-integer-value = দয়া করে একটি বৈধ মান লিখুন (যেমন- 2 অথবা 5 )
-visual = দৃষ্টিলব্ধ
-want-to-delete-singular = আপনি কি এই নথিটি মুছে ফেলতে চান?
-want-to-delete-plural = আপনি কি এই নথিগুলো মুছে ফেলতে চান?
-warning-unsupported-technology = সতর্কবার্তাঃ আপনার ব্রাউজারটি ফায়ারটেক্সট এর কিছু অত্যাবশ্যক প্রযুক্তিকে সমর্থন করে না। দয়া করে এখান থেকে https://mozilla.org/firefox ফায়ারফক্স নামিয়ে নিন।
-yes = হ্যাঁ
+about-firetext=ফায়ারটেক্সট সম্পর্কে
+alignment=একসারিতে সাজানো
+allow-sdcard=অনুগ্রহপূর্বক ফায়ারটেক্সটকে আপনার এসডি কার্ড ব্যবহারের অনুমতি দিন
+always-off=সবসময় বন্ধ
+always-on=সবসময় চালু
+auto=স্বয়ংক্রিয়
+automatic-printing-failed=আমরা স্বয়ংক্রিয়ভাবে এই ফাইল প্রিন্ট করতে পারবেন না. এটি পাওয়া যায় যদি আপনার ব্রাউজার ভিতর থেকে 'প্রিন্ট' নির্বাচন করুন.
+bold=মোটা
+cancel=বাতিল করুন
+center=মাঝখানে
+clear=পরিষ্কার করা
+clear-recents.innerHTML=তালিকায়সাম্প্রতিকগুলো পরিষ্কার করুন
+click-compose-icon-to-create=নতুন নথি তৈরী করার জন্যে রচনা প্রতীকটি চাপুন।
+close=বন্ধ করুন
+cloud=ক্লাউড
+contains-special-characters=বিশেষ অক্ষরগুলোর অনুমতি নেই। অনুগ্রহ করে পুনরায় দেখুন।
+content-not-defined=এই বিষয়বস্তুটি পূর্বে সংজ্ঞায়িত নয়
+could-not-initialize-filesystem=ত্রুটি: ফাইলসিস্টেম চালু করা যাচ্ছে না
+create=তৈরী করা
+credits=ফায়ারটেক্সট সম্মাননা
+delete-selected=বাছাইকরাটুকু মুছে দিন
+delete-unsuccessful=নথি মুছতে ব্যর্থ। ত্রুটির বিস্তারিত:
+deselect-all=সবগুলি অবাছাইকৃত
+design=নকশা
+documents=কাগজপত্র
+documents-device=এই যন্ত্রে থাকা নথিসমূহ
+documents-dropbox=আপনার ড্রপবক্সের নথিসমূহ
+done=সম্পন্ন হয়েছে
+dropbox-full=আপনার ড্রপবক্স পূর্ণ হয়ে গিয়েছে । বার বার রিফ্রেশ করে লাভ হবে না।
+edit-docs=নথিগুলি সম্পাদনা করুন
+editing=সম্পাদনা করছে
+elements=উপাদানসমূহ
+enable-autosave.innerHTML=স্বয়ংক্রিয় সংরক্ষণ সক্ষম করুন
+enable-file-previews.innerHTML=নথির পূর্বরূপ সক্ষম করুন
+enable-night-mode.innerHTML=রাতের প্রক্রিয়াসক্ষম করুন
+enter-name=অনুগ্রহ করে নতুন নথিটিকে একটি নাম দিন।
+export=রপ্তানি
+file-creation-fail=নথি তৈরিতে ব্যর্থ। ত্রুটির বিস্তারিত:
+file-exists=এই নথিটি ইতোমধ্যেই রয়েছে, অনুগ্রহ করে নতুন আরেকটি নাম বেছে নিন।
+firetext-support=ফায়ারটেক্সট সমর্থন
+formatting=সজ্জিত হচ্ছে
+help=সহায়তা
+horizontal-rule=অনুভূমিক রীতি
+insert=প্রবেশ করান
+insert-image=চিত্র প্রবেশ করান
+insert-link=লিংক প্রবেশ করান
+insert-table=সারনি প্রবেশ করান
+internal-storage=অভ্যন্তরীণ সংরক্ষণাগার
+invalid-location=নথি তৈরি করতে পারছে না। অনুগ্রহপূর্বক একটি বৈধ অবস্থান নির্বাচন করুন।
+image=চিত্র
+image-location=চিত্রের অবস্থান
+import=আমদানি
+italic=বাঁকানো
+justified=ন্যায্যকৃত
+language.innerHTML=ইন্টারফেসের ভাষা
+left=বামে
+link=লিংক
+list=তালিকা
+load-last-file.innerHTML=সর্বশেষ নথিটি লোড করুন চালু হতেই
+load-unsuccessful=লোড করতে অসফল হয়েছে। ত্রুটির বিবরন:
+menu=মেন্যু
+needs-restart=এই সেটিং Firetext পুনরায় আরম্ভ করার পরে প্রয়োগ করা হবে. এখন পুর্নসূচনা করবেন?
+network-error=আপনার নেটওয়ার্ক অপ্রাপ্য বলে মনে হচ্ছে। আপনার সংযোগ পরীক্ষা করুন এবং আবার চেষ্টা করুন।
+no=না
+no-dropbox-documents-found=ড্রপবক্সের কোন নথি খুঁজে পায়নি
+no-documents-found=কোন নথি পাওয়া যায়নি
+no-files-selected=কোনো নথিই নির্বাচন করা হয়নি
+no-recent-documents=কোন সাম্প্রতিক নথি নেই
+no-storage-method=সংরক্ষন করার কোন মাধ্যম অাপনি নির্ধারন করেননি:
+not-functional-link=এই লিংকটি কার্যকরী নয়
+not-signed-in=অাপনি সাইন ইন করেননি
+number-of-columns.placeholder=কলামের সংখ্যা
+number-of-rows.placeholder=সারির সংখ্যা
+numbered-list=সংখ্যায়িত তালিকা
+okay=ঠিক আছে
+open=ওপেন
+other=অন্য কিছু
+path-not-defined=পথটি নির্দেশিত নয়
+print=ছাপা
+privacy=গোপনীয়তা
+rate-firetext=ফায়ারটেক্সটের গুনমান বিচার করুন
+raw=অরূপান্তরিত
+recent-documents=সাম্প্রতিককালে খোলা নথিগুলো
+recents-eliminated=অাপনার সাম্প্রতিক নথিগুলোর তালিকা সফলভাবে বিলুপ্ত হয়েছে !
+right=ডানে
+save=সংরক্ষণ
+save-as=হিসাবে সংরক্ষণ করুন
+save-changes-question=আপনি কি আপনার করা পরিবর্তনগুলো সংরক্ষণ করতে চান?
+save-unsuccessful=সংরক্ষণ করা যায়নি। ত্রুটির বিবরন:
+select-all=সবগুলো নির্বাচন করা
+select-language=আপনার ভাষা বেছে নিন
+send-error-stats.innerHTML=ত্রুটি পাঠানো পরিসংখ্যান
+settings=সেটিংস
+shared-sdcard=আপনার ডিভাইসের এস.ডি. কার্ড শেয়ার করা এবং সেজন্যেই এখন সুলভ নয়। সেটিংসে আপনার ইউএসবি গণ সংরক্ষণাগারটি অক্ষম করার চেষ্টা করুন।
+strikethrough=মাঝবরাবরে দাগান্কিত করা
+successfully-saved=সফলভাবে সংরক্ষিত।
+table=সারনি
+the-web=ওয়েব
+tools=সরঞ্জামাদি
+unable-to-get-sdcard=এসডি কার্ড কর্তৃক ব্যবহৃত স্থানটি পেতে ব্যর্থ:
+underline=নিম্নরেখাংকণ
+unknown-error=অজানা ত্রুটি
+use-dropbox.innerHTML=ড্রপবক্সব্যবহার করুন
+valid-integer-value=দয়া করে একটি বৈধ মান লিখুন (যেমন- 2 অথবা 5 )
+visual=দৃষ্টিলব্ধ
+want-to-delete-singular=আপনি কি এই নথিটি মুছে ফেলতে চান?
+want-to-delete-plural=আপনি কি এই নথিগুলো মুছে ফেলতে চান?
+warning-unsupported-technology=সতর্কবার্তাঃ আপনার ব্রাউজারটি ফায়ারটেক্সট এর কিছু অত্যাবশ্যক প্রযুক্তিকে সমর্থন করে না। দয়া করে এখান থেকে https://mozilla.org/firefox ফায়ারফক্স নামিয়ে নিন।
+yes=হ্যাঁ
diff --git a/locales/cs/app.properties b/locales/cs/app.properties
index 20b58ed..a305b84 100644
--- a/locales/cs/app.properties
+++ b/locales/cs/app.properties
@@ -1,104 +1,109 @@
-about-firetext = O službě Firetext
-alignment = Zarovnání
-allow-sdcard = Povolte službě Firetext přístup k SD kartě.
-always-off = Vždy vypnuto
-always-on = Vždy zapnuto
-auto = Automaticky
-bold = Tučné
-cancel = Zrušit
-center = Na střed
-clear = Vymazat
-clear-recents.innerHTML = Vymazat seznam nedávných položek
-click-compose-icon-to-create = Chcete-li vytvořit nový dokument, klikněte na ikonu Vytvořit.
-close-document = Zavřít dokument
-cloud = Cloud
-contains-special-characters = Speciální znaky nejsou povoleny. Zkontrolujte obsah.
-content-not-defined = Obsah nebyl definován.
-could-not-initialize-filesystem = Chyba: Systém souborů nelze inicializovat.
-create-document = Vytvořit dokument
-create = Vytvořit
-credits = Kredit služby Firetext
-delete-selected = Odstranit vybrané
-delete-unsuccessful = Odstranění souboru nebylo úspěšné.\n\nPodrobnosti o chybě:
-deselect-all = Zrušit výběr všech
-design = Návrh
-document-actions = Akce dokumentů
-documents-device = Dokumenty v tomto zařízení
-documents-dropbox = Dokumenty ve službě Dropbox
-done = Hotovo
-dropbox-full = Vaše schránka služby Dropbox je plná. Aktualizace nepomůže.
-edit-docs = Upravit dokumenty
-edit-with-zen-mode.innerHTML = Upravit pomocí režimu Zen
-editing = Úpravy
-elements = Prvky
-enable-autosave.innerHTML = Povolit automatické ukládání
-enable-file-previews.innerHTML = Povolit zobrazení náhledů souborů
-enable-night-mode.innerHTML = Povolit noční režim
-enter-name = Zadejte název nového souboru.
-file-creation-fail = Vytvoření souboru bylo neúspěšné.\n\nPodrobnosti o chybě:
-file-exists = Tento soubor již neexistuje, zvolte jiný název.
-firetext-support = Podpora služby Firetext
-formatting = Formátování
-help = Nápověda
-horizontal-rule = Horizontální pravidlo
-insert = Vložit
-insert-image = Vložit obrázek
-insert-link = Vložit odkaz
-insert-table = Vložit tabulku
-internal-storage = Vnitřní úložiště
-image = Obrázek
-image-location = Umístění obrázku
-invalid-location = Soubor nelze vytvořit. Vyberte platné umístění.
-italic = Kurzíva
-justified = Do bloku
-language.innerHTML = Jazyk rozhraní
-left = Vlevo
-link = Odkaz
-list = Seznam
-load-last-file.innerHTML = Při spuštění načíst poslední soubor
-load-unsuccessful = Načtení nebylo úspěšné.\n\nPodrobnosti o chybě:
-menu = Nabídka
-network-error = Vaše síť pravděpodobně není k dispozici.\n\nZkontrolujte připojení a opakujte akci.
-no = Ne
-no-dropbox-documents-found = Nebyly nalezeny žádné dokumenty služby Dropbox.
-no-documents-found = Nebyly nalezeny žádné dokumenty.
-no-files-selected = Nebyly vybrány žádné soubory.
-no-recent-documents = Nebyly zjištěny žádné nedávné dokumenty.
-no-storage-method = Nemáte nastaven způsob ukládání.
-not-signed-in = Nejste přihlášeni
-number-of-columns.placeholder = Počet sloupců
-number-of-rows.placeholder = Počet řádků
-numbered-list = Číslovaný seznam
-okay = OK
-open-document = Otevřít dokument
-other = Jiné
-path-not-defined = Cesta nebyla definována.
-privacy = Soukromí
-rate-firetext = Hodnotit službu Firetext
-raw = Nezpracované
-recent-documents = Nedávno otevřené dokumenty
-recents-eliminated = Váš seznam nedávných dokumentů byl úspěšně odstraněn.
-right = Vpravo
-save-changes-question = Chcete tyto změny uložit?
-save-document = Uložit dokument
-save-unsuccessful = Uložení nebylo úspěšné.\n\nPodrobnosti o chybě:
-select-all = Vybrat vše
-select-language = Vyberte jazyk
-send-error-stats.innerHTML = Odeslat statistiky chyby
-settings = Nastavení
-shared-sdcard = Karta SDCard ve vašem zařízení je sdílená. Z toho důvodu není k dispozici. Zkuste v nastavení vypnout Velkokapacitní paměťové zařízení USB.
-strikethrough = Přeškrtnout
-successfully-saved = Úspěšně uloženo
-table = Tabulka
-the-web = Web
-tools = Nástroje
-unable-to-get-sdcard = Nelze získat prostor používaný kartou SDCard:
-underline = Podtrhnout
-unknown-error = Neznámá chyba
-use-dropbox.innerHTML = Použít službu Dropbox
-valid-integer-value = Zadejte platnou hodnotu (např. 2 nebo 5)
-visual = Vizuální
-want-to-delete-singular = Chcete tento soubor odstranit?
-want-to-delete-plural = Chcete tyto soubory odstranit?
-warning-unsupported-technology = Upozornění: Váš prohlížeč nepodporuje některou důležitou technologii služby Firetext. Stáhněte aplikaci Firefox z adresy https://mozilla.org/firefox.
-yes = Ano
+about-firetext=O službě Firetext
+alignment=Zarovnání
+allow-sdcard=Povolte službě Firetext přístup k SD kartě.
+always-off=Vždy vypnuto
+always-on=Vždy zapnuto
+auto=Automaticky
+automatic-printing-failed=Nemůžeme vytisknout tento soubor automaticky. Prosím, vyberte 'Tisk' zevnitř vašeho prohlížeče, pokud je k dispozici.
+bold=Tučné
+cancel=Zrušit
+center=Na střed
+clear=Vymazat
+clear-recents.innerHTML=Vymazat seznam nedávných položek
+click-compose-icon-to-create=Chcete-li vytvořit nový dokument, klikněte na ikonu Vytvořit.
+close=Uzavřít
+cloud=Cloud
+contains-special-characters=Speciální znaky nejsou povoleny. Zkontrolujte obsah.
+content-not-defined=Obsah nebyl definován.
+could-not-initialize-filesystem=Chyba: Systém souborů nelze inicializovat.
+create=Vytvořit
+credits=Kredit služby Firetext
+delete-selected=Odstranit vybrané
+delete-unsuccessful=Odstranění souboru nebylo úspěšné. Podrobnosti o chybě:
+deselect-all=Zrušit výběr všech
+design=Návrh
+documents=Dokumenty
+documents-device=Dokumenty v tomto zařízení
+documents-dropbox=Dokumenty ve službě Dropbox
+done=Hotovo
+dropbox-full=Vaše schránka služby Dropbox je plná. Aktualizace nepomůže.
+edit-docs=Upravit dokumenty
+editing=Úpravy
+elements=Prvky
+enable-autosave.innerHTML=Povolit automatické ukládání
+enable-file-previews.innerHTML=Povolit zobrazení náhledů souborů
+enable-night-mode.innerHTML=Povolit noční režim
+enter-name=Zadejte název nového souboru.
+export=Ke stažení
+file-creation-fail=Vytvoření souboru bylo neúspěšné. Podrobnosti o chybě:
+file-exists=Tento soubor již neexistuje, zvolte jiný název.
+firetext-support=Podpora služby Firetext
+formatting=Formátování
+help=Nápověda
+horizontal-rule=Horizontální pravidlo
+insert=Vložit
+insert-image=Vložit obrázek
+insert-link=Vložit odkaz
+insert-table=Vložit tabulku
+internal-storage=Vnitřní úložiště
+invalid-location=Soubor nelze vytvořit. Vyberte platné umístění.
+image=Obrázek
+image-location=Umístění obrázku
+import=Importovat
+italic=Kurzíva
+justified=Do bloku
+language.innerHTML=Jazyk rozhraní
+left=Vlevo
+link=Odkaz
+list=Seznam
+load-last-file.innerHTML=Při spuštění načíst poslední soubor
+load-unsuccessful=Načtení nebylo úspěšné. Podrobnosti o chybě:
+menu=Nabídka
+needs-restart=Toto nastavení se projeví až po restartování Firetext. Restartovat nyní?
+network-error=Vaše síť pravděpodobně není k dispozici. Zkontrolujte připojení a opakujte akci.
+no=Ne
+no-dropbox-documents-found=Nebyly nalezeny žádné dokumenty služby Dropbox.
+no-documents-found=Nebyly nalezeny žádné dokumenty.
+no-files-selected=Nebyly vybrány žádné soubory.
+no-recent-documents=Nebyly zjištěny žádné nedávné dokumenty.
+no-storage-method=Nemáte nastaven způsob ukládání:
+not-functional-link=Tento odkaz není funkční ...
+not-signed-in=Nejste přihlášeni
+number-of-columns.placeholder=Počet sloupců
+number-of-rows.placeholder=Počet řádků
+numbered-list=Číslovaný seznam
+okay=OK
+open=Otevřít
+other=Jiné
+path-not-defined=Cesta nebyla definována.
+print=Tisk
+privacy=Soukromí
+rate-firetext=Hodnotit službu Firetext
+raw=Nezpracované
+recent-documents=Nedávno otevřené dokumenty
+recents-eliminated=Váš seznam nedávných dokumentů byl úspěšně odstraněn.
+right=Vpravo
+save=Uložit
+save-as=Uložit jako
+save-changes-question=Chcete tyto změny uložit?
+save-unsuccessful=Uložení nebylo úspěšné. Podrobnosti o chybě:
+select-all=Vybrat vše
+select-language=Vyberte jazyk
+send-error-stats.innerHTML=Odeslat statistiky chyby
+settings=Nastavení
+shared-sdcard=Karta SDCard ve vašem zařízení je sdílená. Z toho důvodu není k dispozici. Zkuste v nastavení vypnout Velkokapacitní paměťové zařízení USB.
+strikethrough=Přeškrtnout
+successfully-saved=Úspěšně uloženo
+table=Tabulka
+the-web=Web
+tools=Nástroje
+unable-to-get-sdcard=Nelze získat prostor používaný kartou SDCard:
+underline=Podtrhnout
+unknown-error=Neznámá chyba
+use-dropbox.innerHTML=Použít službu Dropbox
+valid-integer-value=Zadejte platnou hodnotu (např. 2 nebo 5)
+visual=Vizuální
+want-to-delete-singular=Chcete tento soubor odstranit?
+want-to-delete-plural=Chcete tyto soubory odstranit?
+warning-unsupported-technology=Upozornění: Váš prohlížeč nepodporuje některou důležitou technologii služby Firetext. Stáhněte aplikaci Firefox z adresy https://mozilla.org/firefox.
+yes=Ano
diff --git a/locales/de/app.properties b/locales/de/app.properties
index ead89f1..e60d178 100644
--- a/locales/de/app.properties
+++ b/locales/de/app.properties
@@ -1,104 +1,109 @@
-about-firetext = Über Firetext
-alignment = Ausrichtung
-allow-sdcard = Bitte erlaube Firetext, auf deine SD-Karte zugreifen zu dürfen
-always-off = Immer aus
-always-on = Immer an
-auto = Auto
-bold = Fett
-cancel = Abbrechen
-center = Zentriert
-clear = Klären
-clear-recents.innerHTML = Liste der letzten geöffneten klären
-click-compose-icon-to-create = Klicke auf das Erstellen-Icon um ein neues Dokument zu kreieren.
-close-document = Dokument schließen
-cloud = Wolke
-contains-special-characters = Sonderzeichen sind nicht erlaubt. Bitte korrigieren.
-content-not-defined = Der Inhalt wurde nicht definiert
-could-not-initialize-filesystem = Fehler: konnte nicht Dateisystem initialisieren
-create-document = Dokument erstellen
-create = Erstellen
-credits = Firetext Credits
-delete-selected = Ausgewählten löschen
-delete-unsuccessful = Löschen von Dateien nicht erfolgreich. \nFehlerdetails:\n
-deselect-all = Auswahl aufheben
-design = Design
-document-actions = Dokument Aktionen
-documents-device = Dokumente auf diesem Geräte
-documents-dropbox = Dokumente auf Dropbox
-done = Erledig
-dropbox-full = Ihr Dropbox ist voll. Aktualisieren wird nicht helfen.
-edit-docs = Docs bearbeiten
-edit-with-zen-mode.innerHTML = Editieren mit Zen Mode
-editing = Editieren
-elements = Elemente
-enable-autosave.innerHTML = automatisches Speichern aktivieren
-enable-file-previews.innerHTML = Datei-Vorschau aktivieren
-enable-night-mode.innerHTML = Nacht-Modus aktivieren
-enter-name = Bitte einen Namen für die Datei eingeben.
-file-creation-fail = File konnte nicht erstellt werden. \n\nFehler Details:\n
-file-exists = Diese Datei ist bereits vorhanden, bitte wählen Sie einen anderen Namen.
-firetext-support = Firetext Hilfe
-formatting = Formatierung
-help = Hilfe
-horizontal-rule = Horizontales Lineal
-insert = Einfügen
-insert-image = Bild einfügen
-insert-link = Link einfügen
-insert-table = Tabelle einfügen
-internal-storage = Interner Speicher
-image = Bild
-image-location = Bild Ablageort
-invalid-location = Datei konnte nicht erstellt werden. Bitte wählen Sie eine gültige Position.
-italic = Kursiv
-justified = gerechtfertigt
-language.innerHTML = Sprache der Schnittstelle
-left = Links
-link = Link
-list = Liste
-load-last-file.innerHTML = Beim Aufstarten letzte Datei laden
-load-unsuccessful = Laden war nicht erfolgreich.\n\nFehler Details:\n
-menu = Menu
-network-error = Netzwerk ist nicht verfügbar.\n\nBitte Verbindung überprüfen und nochmals versuchen.
-no = Nein
-no-dropbox-documents-found = Keine Dropbox Dokumente gefunden
-no-documents-found = Keine Dokumente gefunden
-no-files-selected = Keine Dateien ausgewählt
-no-recent-documents = Keine zuletzt geöffneten Dokumente
-no-storage-method = Sie haben noch keine Speichermethode eingestellt
-not-signed-in = Sie sind nicht angemeldet
-number-of-columns.placeholder = Anzahl Spalten
-number-of-rows.placeholder = Anzahl Zeilen
-numbered-list = nummerierte Liste
-okay = OK
-open-document = Dokument öffnen
-other = andere
-path-not-defined = Der Pfad wurde nicht definiert
-privacy = Privatsphäre
-rate-firetext = Rate Firetext
-raw = Roh
-recent-documents = Zuletzt geöffneten Dokumente
-recents-eliminated = Ihre zuletzt geöffneten Dokumenteliste wurde erfolgreich beseitigt
-right = Rechts
-save-changes-question = Willst du deine Änderungen speichern?
-save-document = Dokument speichern
-save-unsuccessful = Speichern war nicht erfolgreich.\n\nFehler Details:\n
-select-all = alle auswählen
-select-language = Wähle deine Sprache
-send-error-stats.innerHTML = Sende Fehler-Statistik
-settings = Einstellungen
-shared-sdcard = Die SD-Karte auf dem Gerät ist freigegeben, und somit nicht nicht Verfügbar. Deaktivieren Sie USB-Massenspeicher in Ihren Einstellungen.
-strikethrough = durchgestrichen
-successfully-saved = Erfolgreich gespeichert
-table = Tabelle
-the-web = Das Web
-tools = Werkzeuge
-unable-to-get-sdcard = Der benutzte Speicher konnte nicht von der SD-Card abgerufen werden.
-underline = Unterstreichen
-unknown-error = Unbekannter Fehler
-use-dropbox.innerHTML = Dropbox benutzen
-valid-integer-value = Bitte einen gültigen Wert eingeben (wie 2 oder 5)
-visual = visuell
-want-to-delete-singular = Willst du dieses File löschen?
-want-to-delete-plural = Willst du diese Files löschen?
-warning-unsupported-technology = Achtung: Ihr Browser unterstützt keine der wichtigen Technologies die Firetext benutz . Bitte laden Sie Firefox von https://mozilla.org/firefox.
-yes = Ja
+about-firetext=Über Firetext
+alignment=Ausrichtung
+allow-sdcard=Bitte erlaube Firetext den Zugriff auf Deine SD-Karte.
+always-off=Immer aus
+always-on=Immer an
+auto=Auto
+automatic-printing-failed=Diese Datei kann nicht automatisch ausgedruckt werden. Bitte wähle die Funktion 'Drucken' direkt in deinem Browser, falls verfügbar.
+bold=Fett
+cancel=Abbrechen
+center=Zentriert
+clear=Löschen
+clear-recents.innerHTML=Liste der zuletzt geöffneten Dateien löschen
+click-compose-icon-to-create=Klicke auf das Icon für ein neues Dokument.
+close=Schliessen
+cloud=Wolke
+contains-special-characters=Sonderzeichen sind nicht erlaubt. Bitte korrigieren.
+content-not-defined=Inhalt nicht definiert
+could-not-initialize-filesystem=Fehler: konnte Dateisystem nicht initialisieren.
+create=Erstellen
+credits=Firetext Danksagung
+delete-selected=Ausgewählte löschen
+delete-unsuccessful=Datei konnte nicht gelöscht werden. Fehlerdetails:
+deselect-all=Auswahl aufheben
+design=Design
+documents=Dokumente
+documents-device=Dokumente auf diesem Gerät
+documents-dropbox=Dokumente in der Dropbox
+done=Erledigt
+dropbox-full=Deine Dropbox ist voll. Ein Refresh wird nicht helfen.
+edit-docs=Dokumente bearbeiten
+editing=Bearbeiten
+elements=Elemente
+enable-autosave.innerHTML=Automatisches Speichern aktivieren
+enable-file-previews.innerHTML=Dateivorschau aktivieren
+enable-night-mode.innerHTML=Nachtansicht aktivieren
+enter-name=Bitte gib einen Namen für die Datei ein.
+export=Exportieren
+file-creation-fail=Datei konnte nicht erstellt werden. Fehlerdetails:
+file-exists=Dieser Dateiname ist bereits vorhanden, bitte wähle einen anderen Namen.
+firetext-support=Firetext-Hilfe
+formatting=Formatierung
+help=Hilfe
+horizontal-rule=Horizontales Lineal
+insert=Einfügen
+insert-image=Bild einfügen
+insert-link=Link einfügen
+insert-table=Tabelle einfügen
+internal-storage=Interner Speicher
+invalid-location=Datei konnte nicht erstellt werden. Bitte wähle einen gültigen Speicherort.
+image=Bild
+image-location=Bild Speicherort
+import=Importieren
+italic=kursiv
+justified=gerechtfertigt
+language.innerHTML=Sprache
+left=Links
+link=Link
+list=Liste
+load-last-file.innerHTML=Beim Programmstart zuletzt geöffnete Datei laden
+load-unsuccessful=Datei konnte nicht geladen werden. Fehlerdetails:
+menu=Menü
+needs-restart=Diese Einstellung wird wirksam, wenn Firetext neu gestartet wird. Jetzt neu starten?
+network-error=Dein Netzwerk scheint nicht zur Verfügung zu stehen. Bitte überprüfe deine Verbindung und versuche es nochmals.
+no=Nein
+no-dropbox-documents-found=Keine Dokumente in der Dropbox gefunden.
+no-documents-found=Keine Dokumente gefunden
+no-files-selected=Keine Dateien ausgewählt
+no-recent-documents=Keine zuletzt geöffneten Dokumente
+no-storage-method=Richte bitte ein Ablagesystem ein, um Dateien zu ändern:
+not-functional-link=Dieser Link funktioniert nicht...
+not-signed-in=Du bist nicht angemeldet.
+number-of-columns.placeholder=Anzahl Spalten
+number-of-rows.placeholder=Anzahl Zeilen
+numbered-list=nummerierte Liste
+okay=OK
+open=Öffnen
+other=andere
+path-not-defined=Der Pfad wurde nicht definiert.
+print=Drucken
+privacy=Privatsphäre
+rate-firetext=Bewerte Firetext
+raw=Roh
+recent-documents=Zuletzt geöffnete Dokumente
+recents-eliminated=Die Liste der zuletzt geöffneten Dokumente wurde erfolgreich geleert.
+right=Rechts
+save=Speichern
+save-as=Speichern unter
+save-changes-question=Willst Du die Änderungen speichern?
+save-unsuccessful=Datei konnte nicht gespeichert werden. Fehlerdetails:
+select-all=Alles auswählen
+select-language=Wähle Deine Sprache
+send-error-stats.innerHTML=Sende Fehlerstatistik
+settings=Einstellungen
+shared-sdcard=Die SD-Karte auf dem Gerät ist in Benutzung und daher nicht verfügbar. Deaktiviere den USB-Massenspeicher in den Einstellungen.
+strikethrough=durchgestrichen
+successfully-saved=Erfolgreich gespeichert
+table=Tabelle
+the-web=Das Internet
+tools=Werkzeuge
+unable-to-get-sdcard=Der gewünschte Inhalt konnte nicht von der SD-Karte abgerufen werden.
+underline=Unterstreichen
+unknown-error=Unbekannter Fehler
+use-dropbox.innerHTML=Dropbox benutzen
+valid-integer-value=Bitte gib einen gültigen Wert ein (z.B. 2)
+visual=visuell
+want-to-delete-singular=Willst Du diese Datei wirklich löschen?
+want-to-delete-plural=Willst Du diese Dateien wirklich löschen?
+warning-unsupported-technology=Achtung: Dein Browser unterstützt keine der von Firetext benutzten Technologien. Bitte lade die aktuelle Version des Firefox-Browsers über https://mozilla.com/firefox herunter
+yes=Ja
diff --git a/locales/en-US/app.properties b/locales/en-US/app.properties
index a9f75ed..6b2c7ec 100644
--- a/locales/en-US/app.properties
+++ b/locales/en-US/app.properties
@@ -4,38 +4,38 @@ allow-sdcard=Please allow Firetext to access your SD card.
always-off=Always off
always-on=Always on
auto=Auto
+automatic-printing-failed=We cannot print this file automatically. Please select 'Print' from inside your browser if it is available.
bold=Bold
cancel=Cancel
center=Center
clear=Clear
clear-recents.innerHTML=Clear recents list
click-compose-icon-to-create=Click the compose icon to create a new document.
-close-document=Close document
+close=Close
cloud=Cloud
contains-special-characters=Special characters are not allowed. Please revise.
content-not-defined=The content was not defined
could-not-initialize-filesystem=Error: could not initialize filesystem
-create-document=Create document
create=Create
credits=Firetext credits
delete-selected=Delete selected
-delete-unsuccessful=File deletion unsuccessful.\n\nError details:\n
+delete-unsuccessful=File deletion unsuccessful. Error details:
deselect-all=Deselect all
design=Design
-document-actions=Document actions
+documents=Documents
documents-device=Documents on this Device
documents-dropbox=Documents on your Dropbox
done=Done
-dropbox-full=Your Dropbox is full. Refreshing will not help.
+dropbox-full=Your Dropbox is full. Refreshing will not help.
edit-docs=Edit docs
-edit-with-zen-mode.innerHTML=Edit with zen mode
editing=Editing
elements=Elements
enable-autosave.innerHTML=Enable autosave
enable-file-previews.innerHTML=Enable file previews
enable-night-mode.innerHTML=Enable night mode
enter-name=Please enter a name for the new file.
-file-creation-fail=File creation unsuccessful.\n\nError details:\n
+export=Export
+file-creation-fail=File creation unsuccessful. Error details:
file-exists=This file already exists, please choose another name.
firetext-support=Firetext support
formatting=Formatting
@@ -46,9 +46,10 @@ insert-image=Insert image
insert-link=Insert link
insert-table=Insert table
internal-storage=Internal storage
+invalid-location=Could not create file. Please choose a valid location.
image=Image
image-location=Image location
-invalid-location=Could not create file. Please choose a valid location.
+import=Import
italic=Italic
justified=Justified
language.innerHTML=Interface language
@@ -56,33 +57,36 @@ left=Left
link=Link
list=List
load-last-file.innerHTML=Load last file on startup
-load-unsuccessful=Load unsuccessful.\n\nError details:\n
+load-unsuccessful=Load unsuccessful. Error details:
menu=Menu
-network-error=Your network appears to be unavailable.\n\nPlease check your connection and try again.
+needs-restart=This setting will be applied after Firetext restarts. Restart now?
+network-error=Your network appears to be unavailable. Please check your connection and try again.
no=No
no-dropbox-documents-found=No Dropbox documents found
no-documents-found=No documents found
no-files-selected=No files selected
no-recent-documents=No recent documents
-no-storage-method=You have not set up a storage method
+no-storage-method=Please set up a storage system to modify files:
not-functional-link=This link is not functional...
not-signed-in=You are not signed in
number-of-columns.placeholder=Number of columns
number-of-rows.placeholder=Number of rows
numbered-list=Numbered list
okay=Okay
-open-document=Open document
+open=Open
other=Other
path-not-defined=The path was not defined
+print=Print
privacy=Privacy
rate-firetext=Rate Firetext
raw=Raw
recent-documents=Recently opened documents
recents-eliminated=Your recent documents list has been successfully eliminated!
right=Right
+save=Save
+save-as=Save as
save-changes-question=Would you like to save your changes?
-save-document=Save document
-save-unsuccessful=Save unsuccessful.\n\nError details:\n
+save-unsuccessful=Save unsuccessful. Error details:
select-all=Select all
select-language=Select your language
send-error-stats.innerHTML=Send error stats
@@ -93,7 +97,7 @@ successfully-saved=Successfully saved
table=Table
the-web=The web
tools=Tools
-unable-to-get-sdcard=Unable to get the space used by the SDCard:
+unable-to-get-sdcard=Unable to get the space used by the SDCard:
underline=Underline
unknown-error=Unknown error
use-dropbox.innerHTML=Use Dropbox
diff --git a/locales/eo/app.properties b/locales/eo/app.properties
index 869aee5..b4c76c8 100644
--- a/locales/eo/app.properties
+++ b/locales/eo/app.properties
@@ -1,104 +1,109 @@
-about-firetext = Pri Firetext
-alignment = Ĝisrandigo
-allow-sdcard = Bonvole permesu Firetext atingi vian SD-karton.
-always-off = Ĉiam malŝaltite
-always-on = Ĉiam enŝaltite
-auto = Aŭtomate
-bold = Grase
-cancel = Nuligi
-center = Centrigite
-clear = Vakigi
-clear-recents.innerHTML = Vakigi recentaĵan liston
-click-compose-icon-to-create = Presi la krean piktogramon por krei novan dokumenton.
-close-document = Fermi dokumenton
-cloud = Nube
-contains-special-characters = Specialaj karaktroj ne estas permesitaj. Bonvole kontrolu vian dokumenton.
-content-not-defined = La enhavo ne estas difinita
-could-not-initialize-filesystem = Eraro: dosiersistemo nepravalorizeblas
-create-document = Krei dokumenton
-create = Krei
-credits = Kreditoj pri Firetext
-delete-selected = Forigi elekton
-delete-unsuccessful = Forigo de dokumentoj fiakis.\n\nDetaloj pri eraro:\n
-deselect-all = Malelektigi ĉion
-design = Fasonado
-document-actions = Agoj de dokumento
-documents-device = Dokumentoj en ĉi tiu aparato
-documents-dropbox = Dokumentoj en via konto ĉe Dropbox
-done = Farite
-dropbox-full = Via konto ĉe Dropbox estas plena. Aktualigado ne helpos.
-edit-docs = Redakti dokumentojn
-edit-with-zen-mode.innerHTML = Redakti per zena reĝimo
-editing = Redaktado
-elements = Eroj
-enable-autosave.innerHTML = Enŝalti aŭtomatan konservadon
-enable-file-previews.innerHTML = Enŝalti antaŭrigardon por dosieroj
-enable-night-mode.innerHTML = Enŝalti noktan reĝimon
-enter-name = Bonvole enigu nomon por la nova dosiero.
-file-creation-fail = Kreado de dosiero fiaskis.\n\nDetaloj pri eraro:\n
-file-exists = Ĉi tiu dosiero jam ekzistas. Bonvole elektu alian nomon.
-firetext-support = Subteno por Firetext
-formatting = Aranĝado
-help = Helpo
-horizontal-rule = Horizontala interlinio
-insert = Enigi
-insert-image = Enigi bildon
-insert-link = Enigi ligilon
-insert-table = Enigi tabelon
-internal-storage = Ena amasmemorilo
-image = Bildo
-image-location = Lokado de bildo
-invalid-location = Dosiero nekreeblas. Bonvole elektu validan lokadon.
-italic = Korsive
-justified = Ĝisrandigite
-language.innerHTML = Interface language
-left = Maldekstre
-link = Ligilo
-list = Listo
-load-last-file.innerHTML = Meti lastan dosieron je startigo
-load-unsuccessful = Metado fiaskis.\n\nDetaloj pri eraro:\n
-menu = Menuo
-network-error = Ŝajne, ke via reto nedisponeblas.\n\nBonvole kontrolu vian konekton kaj provu denove.
-no = Ne
-no-dropbox-documents-found = Neniu dokumento trovata en Dropbox
-no-documents-found = Neniu dokumento trovata
-no-files-selected = Neniu dosiero elektita
-no-recent-documents = Neniu lasta dokumento
-no-storage-method = Vi ne agordis metodon por konservado
-not-signed-in = Vi ne ensalutis
-number-of-columns.placeholder = Numero da kolumnoj
-number-of-rows.placeholder = Numero da vicoj
-numbered-list = Numerita listo
-okay = Bone
-open-document = Malfermi dokumenton
-other = Alia
-path-not-defined = La pado ne estas difinita
-privacy = Privateco
-rate-firetext = Voĉdoni por Firetext
-raw = Krude
-recent-documents = Laste malfermitaj dokumentoj
-recents-eliminated = Via listo de lastaj dokumentoj estis sukcese forigita!
-right = Dekstre
-save-changes-question = Ĉu vi volas konservi viajn ŝanĝojn?
-save-document = Konservi dokumenton
-save-unsuccessful = Konservado fiaskis.\n\nDetaloj pri eraro:\n
-select-all = Elekti ĉion
-select-language = Elektu vian lingvon
-send-error-stats.innerHTML = Sendi statistikojn pri eraroj
-settings = Agordoj
-shared-sdcard = La SD-karto en via aparato estas kunhavigita, do ĝi nedisponeblas. Klopodu malŝalti trajton por USB-amasmemorilo en viaj agordoj.
-strikethrough = Trastrekite
-successfully-saved = Sukcese konserivite
-table = Tabelo
-the-web = La reto
-tools = Iloj
-unable-to-get-sdcard = Spaco uzata en bia SD-karto neobteneblas:
-underline = Substrekite
-unknown-error = Nekonata eraro
-use-dropbox.innerHTML = Uzi Dropbox
-valid-integer-value = Bonvole tajpu validan valoron (ekz. 2 aŭ 5)
-visual = Vide
-want-to-delete-singular = Ĉu vi volas forigi ĉi tiun dosieron?
-want-to-delete-plural = Ĉu vi volas forigi ĉi tiujn dosierojn?
-warning-unsupported-technology = Atentu: via retumilo ne subtenas kelkajn gravajn trajtojn de Firetext. Bonvole elŝutu Firefox el https://mozilla.org/firefox.
-yes = Jes
+about-firetext=Pri Firetext
+alignment=Ĝisrandigo
+allow-sdcard=Bonvole permesu Firetext atingi vian SD-karton.
+always-off=Ĉiam malŝaltite
+always-on=Ĉiam enŝaltite
+auto=Aŭtomate
+automatic-printing-failed=La programaro ne presas la dosierojn aŭtomate. Bonvole elektu "Presi" en via retumilo se ĝi disponeblas.
+bold=Grase
+cancel=Nuligi
+center=Centrigite
+clear=Vakigi
+clear-recents.innerHTML=Vakigi recentaĵan liston
+click-compose-icon-to-create=Presi la krean piktogramon por krei novan dokumenton.
+close=Fermi
+cloud=Nube
+contains-special-characters=Specialaj karaktroj ne estas permesitaj. Bonvole kontrolu vian dokumenton.
+content-not-defined=La enhavo ne estas difinita
+could-not-initialize-filesystem=Eraro: dosiersistemo nepravalorizeblas
+create=Krei
+credits=Kreditoj pri Firetext
+delete-selected=Forigi elekton
+delete-unsuccessful=Forigo de dokumentoj fiakis. Detaloj pri eraro:
+deselect-all=Malelektigi ĉion
+design=Fasonado
+documents=Dokumentoj
+documents-device=Dokumentoj en ĉi tiu aparato
+documents-dropbox=Dokumentoj en via konto ĉe Dropbox
+done=Farite
+dropbox-full=Via konto ĉe Dropbox estas plena. Aktualigado ne helpos.
+edit-docs=Redakti dokumentojn
+editing=Redaktado
+elements=Eroj
+enable-autosave.innerHTML=Enŝalti aŭtomatan konservadon
+enable-file-previews.innerHTML=Enŝalti antaŭrigardon por dosieroj
+enable-night-mode.innerHTML=Enŝalti noktan reĝimon
+enter-name=Bonvole enigu nomon por la nova dosiero.
+export=Elporti
+file-creation-fail=Kreado de dosiero fiaskis. Detaloj pri eraro:
+file-exists=Ĉi tiu dosiero jam ekzistas. Bonvole elektu alian nomon.
+firetext-support=Subteno por Firetext
+formatting=Aranĝado
+help=Helpo
+horizontal-rule=Horizontala interlinio
+insert=Enigi
+insert-image=Enigi bildon
+insert-link=Enigi ligilon
+insert-table=Enigi tabelon
+internal-storage=Ena amasmemorilo
+invalid-location=Dosiero nekreeblas. Bonvole elektu validan lokadon.
+image=Bildo
+image-location=Lokado de bildo
+import=Enporti
+italic=Korsive
+justified=Ĝisrandigite
+language.innerHTML=Interface language
+left=Maldekstre
+link=Ligilo
+list=Listo
+load-last-file.innerHTML=Meti lastan dosieron je startigo
+load-unsuccessful=Metado fiaskis. Detaloj pri eraro:
+menu=Menuo
+needs-restart=Ĉi tiu agordo estos aplikata post restartigo de Firetext. Ĉu restartigi nun?
+network-error=Ŝajne, ke via reto nedisponeblas. Bonvole kontrolu vian konekton kaj provu denove.
+no=Ne
+no-dropbox-documents-found=Neniu dokumento trovata en Dropbox
+no-documents-found=Neniu dokumento trovata
+no-files-selected=Neniu dosiero elektita
+no-recent-documents=Neniu lasta dokumento
+no-storage-method=Bonvole agordi memorsistemon por redakti dosierojn:
+not-functional-link=Ĉi tiu ligilo ne funkcias...
+not-signed-in=Vi ne ensalutis
+number-of-columns.placeholder=Numero da kolumnoj
+number-of-rows.placeholder=Numero da vicoj
+numbered-list=Numerita listo
+okay=Bone
+open=Malfermita
+other=Alia
+path-not-defined=La pado ne estas difinita
+print=Presi
+privacy=Privateco
+rate-firetext=Voĉdoni por Firetext
+raw=Krude
+recent-documents=Laste malfermitaj dokumentoj
+recents-eliminated=Via listo de lastaj dokumentoj estis sukcese forigita!
+right=Dekstre
+save=Konservi
+save-as=Konservi kiel
+save-changes-question=Ĉu vi volas konservi viajn ŝanĝojn?
+save-unsuccessful=Konservado fiaskis. Detaloj pri eraro:
+select-all=Elekti ĉion
+select-language=Elektu vian lingvon
+send-error-stats.innerHTML=Sendi statistikojn pri eraroj
+settings=Agordoj
+shared-sdcard=La SD-karto en via aparato estas kunhavigita, do ĝi nedisponeblas. Klopodu malŝalti trajton por USB-amasmemorilo en viaj agordoj.
+strikethrough=Trastrekite
+successfully-saved=Sukcese konserivite
+table=Tabelo
+the-web=La reto
+tools=Iloj
+unable-to-get-sdcard=Spaco uzata en bia SD-karto neobteneblas:
+underline=Substrekite
+unknown-error=Nekonata eraro
+use-dropbox.innerHTML=Uzi Dropbox
+valid-integer-value=Bonvole tajpu validan valoron (ekz. 2 aŭ 5)
+visual=Vide
+want-to-delete-singular=Ĉu vi volas forigi ĉi tiun dosieron?
+want-to-delete-plural=Ĉu vi volas forigi ĉi tiujn dosierojn?
+warning-unsupported-technology=Atentu: via retumilo ne subtenas kelkajn gravajn trajtojn de Firetext. Bonvole elŝutu Firefox el https://mozilla.org/firefox.
+yes=Jes
diff --git a/locales/es/app.properties b/locales/es/app.properties
index fa971fb..d5f4fa1 100644
--- a/locales/es/app.properties
+++ b/locales/es/app.properties
@@ -1,104 +1,109 @@
-about-firetext = Acerca de Firetext
-alignment = Alineación
-allow-sdcard = Por favor, permita a Firetext acceder a su tarjeta SD.
-always-off = Nunca activo
-always-on = Siempre activo
-auto = Automático
-bold = Negritas
-cancel = Cancelar
-center = Centrar
-clear = Limpiar
-clear-recents.innerHTML = Limpiar la lista de recientes
-click-compose-icon-to-create = Haga clic en el icono de escritura para crear un nuevo documento.
-close-document = Cerrar documento
-cloud = La nube
-contains-special-characters = Los caracteres especiales no están permitidos. Por favor, revise.
-content-not-defined = El contenido no fue definido
-could-not-initialize-filesystem = Error: no puede inicializar el sistema de archivos.
-create-document = Crear documento
-create = Crear
-credits = Créditos de Firetext
-delete-selected = Eliminar seleccionado
-delete-unsuccessful = Falló la eliminación del archivo.\n\nDetalles del error:\n
-deselect-all = Deseleccionar todo
-design = Diseño
-document-actions = Acciones de documentos
-documents-device = Documentos en este dispositivo
-documents-dropbox = Documentos en su Dropbox
-done = Hecho
-dropbox-full = Su Dropbox está lleno. Refrescar no será de ayuda.
-edit-docs = Editar documentos
-edit-with-zen-mode.innerHTML = Editar en modo zen
-editing = Editando
-elements = Elementos
-enable-autosave.innerHTML = Autoguardado
-enable-file-previews.innerHTML = Previsualización de archivos
-enable-night-mode.innerHTML = Modo nocturno
-enter-name = Por favor, ingrese un nombre para el nuevo archivo.
-file-creation-fail = Falló la creación del archivo.\n\nDetalles del error:\n
-file-exists = Este archivo ya existe, por favor, escoja otro nombre.
-firetext-support = Soporte de Firetext
-formatting = Formato
-help = Ayuda
-horizontal-rule = Regla horizontal
-insert = Insertar
-insert-image = Insertar imagen
-insert-link = Insertar enlace
-insert-table = Insertar tabla
-internal-storage = Almacenamiento interno
-image = Imagen
-image-location = Ubicación de imagen
-invalid-location = No se pudo crear el archivo. Por favor, escoja una ubicación válida.
-italic = Itálicas
-justified = Justificado
-language.innerHTML = Idioma de la interfaz
-left = Izquierda
-link = Enlace
-list = Lista
-load-last-file.innerHTML = Cargar último archivo al inicio
-load-unsuccessful = Falló la carga.\n\nDetalles del error:\n
-menu = Menú
-network-error = Su red parece no estar disponible.\n\nPor favor, revise su conexión y pruebe nuevamente.
-no = No
-no-dropbox-documents-found = No se encontraron documentos en Dropbox
-no-documents-found = No se encontraron documentos
-no-files-selected = No hay archivos seleccionados
-no-recent-documents = No hay documentos recientes
-no-storage-method = No ha configurado un método de almacenamiento
-not-signed-in = No ha iniciado sesión
-number-of-columns.placeholder = Número de columnas
-number-of-rows.placeholder = Número de filas
-numbered-list = Lista numerada
-okay = Aceptar
-open-document = Abrir documento
-other = Otro
-path-not-defined = La dirección no fue definida
-privacy = Privacidad
-rate-firetext = Evaluar Firetext
-raw = Fuente
-recent-documents = Documentos abiertos recientemente
-recents-eliminated = ¡Su lista de documentos recientes ha sido eliminada exitosamente!
-right = Derecha
-save-changes-question = ¿Desea guardar sus cambios?
-save-document = Guardar documento
-save-unsuccessful = Falló la operación de guardado.\n\nDetalles del error:\n
-select-all = Seleccionar todo
-select-language = Seleccione su idioma
-send-error-stats.innerHTML = Enviar estadísticas de errores
-settings = Ajustes
-shared-sdcard = La tarjeta SD en su dispositivo está compartida, y por ello no se encuentra disponible. Intente desactivar Almacenamiento USB en sus ajustes.
-strikethrough = Tachar
-successfully-saved = Guardado exitosamente
-table = Tabla
-the-web = La web
-tools = Herramientas
-unable-to-get-sdcard = No puede obtener el espacio utilizado por la tarjeta de memoria SD:
-underline = Subrayar
-unknown-error = Error desconocido
-use-dropbox.innerHTML = Usar Dropbox
-valid-integer-value = Por favor, ingrese un valor válido (Por ej. 2 ó 5)
-visual = Visual
-want-to-delete-singular = ¿Desea eliminar este archivo?
-want-to-delete-plural = ¿Desea eliminar estos archivos?
-warning-unsupported-technology = Advertencia: Su navegador no soporta parte de la tecnología vital de Firetext. Por favor, descargue Firefox desde https://mozilla.org/firefox.
-yes = Sí
+about-firetext=Acerca de Firetext
+alignment=Alineación
+allow-sdcard=Por favor, permita a Firetext acceder a su tarjeta SD.
+always-off=Nunca activo
+always-on=Siempre activo
+auto=Automático
+automatic-printing-failed=No pudimos imprimir este archivo automáticamente. Por favor, seleccione 'Imprimir' dentro de su navegador si es que es posible.
+bold=Negritas
+cancel=Cancelar
+center=Centrar
+clear=Limpiar
+clear-recents.innerHTML=Limpiar la lista de recientes
+click-compose-icon-to-create=Haga clic en el icono de escritura para crear un nuevo documento.
+close=Cerrar
+cloud=La nube
+contains-special-characters=Los caracteres especiales no están permitidos. Por favor, revise.
+content-not-defined=El contenido no fue definido
+could-not-initialize-filesystem=Error: no puede inicializar el sistema de archivos.
+create=Crear
+credits=Créditos de Firetext
+delete-selected=Eliminar seleccionado
+delete-unsuccessful=Falló la eliminación del archivo. Detalles del error:
+deselect-all=Deseleccionar todo
+design=Diseño
+documents=Documentos
+documents-device=Documentos en este dispositivo
+documents-dropbox=Documentos en su Dropbox
+done=Hecho
+dropbox-full=Su Dropbox está lleno. Refrescar no será de ayuda.
+edit-docs=Editar documentos
+editing=Editando
+elements=Elementos
+enable-autosave.innerHTML=Autoguardado
+enable-file-previews.innerHTML=Previsualización de archivos
+enable-night-mode.innerHTML=Modo nocturno
+enter-name=Por favor, ingrese un nombre para el nuevo archivo.
+export=Exportar
+file-creation-fail=Falló la creación del archivo. Detalles del error:
+file-exists=Este archivo ya existe, por favor, escoja otro nombre.
+firetext-support=Soporte de Firetext
+formatting=Formato
+help=Ayuda
+horizontal-rule=Regla horizontal
+insert=Insertar
+insert-image=Insertar imagen
+insert-link=Insertar enlace
+insert-table=Insertar tabla
+internal-storage=Almacenamiento interno
+invalid-location=No se pudo crear el archivo. Por favor, escoja una ubicación válida.
+image=Imagen
+image-location=Ubicación de imagen
+import=Importar
+italic=Itálicas
+justified=Justificado
+language.innerHTML= Idioma de la interfaz
+left=Izquierda
+link=Enlace
+list=Lista
+load-last-file.innerHTML=Cargar último archivo al inicio
+load-unsuccessful=Falló la carga. Detalles del error:
+menu=Menú
+needs-restart=Este ajuste será aplicado la próxima vez que Firetext sea iniciado. ¿Reiniciar ahora?
+network-error=Su red parece no estar disponible. Por favor, revise su conexión y pruebe nuevamente.
+no=No
+no-dropbox-documents-found=No se encontraron documentos en Dropbox
+no-documents-found=No se encontraron documentos
+no-files-selected=No hay archivos seleccionados
+no-recent-documents=No hay documentos recientes
+no-storage-method=Por favor, escoja un sistema de almacenamiento en el cual modificar archivos:
+not-functional-link=Este enlace no es funcional...
+not-signed-in=No ha iniciado sesión
+number-of-columns.placeholder=Número de columnas
+number-of-rows.placeholder=Número de filas
+numbered-list=Lista numerada
+okay=Aceptar
+open=Abrir
+other=Otro
+path-not-defined=La dirección no fue definida
+print=Imprimir
+privacy=Privacidad
+rate-firetext=Evaluar Firetext
+raw=Fuente
+recent-documents=Documentos abiertos recientemente
+recents-eliminated=¡Su lista de documentos recientes ha sido eliminada exitosamente!
+right=Derecha
+save=Guardar
+save-as=Guardar como
+save-changes-question=¿Desea guardar sus cambios?
+save-unsuccessful=Falló el guardado. Detalles del error:
+select-all=Seleccionar todo
+select-language=Seleccione su idioma
+send-error-stats.innerHTML=Enviar estadísticas de errores
+settings=Ajustes
+shared-sdcard=La tarjeta SD en su dispositivo está compartida, y por ello no se encuentra disponible. Intente desactivar Almacenamiento USB en sus ajustes.
+strikethrough=Tachar
+successfully-saved=Guardado exitosamente
+table=Tabla
+the-web=La web
+tools=Herramientas
+unable-to-get-sdcard=No puede obtener el espacio utilizado por la tarjeta de memoria SD:
+underline=Subrayar
+unknown-error=Error desconocido
+use-dropbox.innerHTML=Usar Dropbox
+valid-integer-value=Por favor, ingrese un valor válido (Por ej. 2 ó 5)
+visual=Visual
+want-to-delete-singular=¿Desea eliminar este archivo?
+want-to-delete-plural=¿Desea eliminar estos archivos?
+warning-unsupported-technology=Advertencia: Su navegador no soporta parte de la tecnología vital de Firetext. Por favor, descargue Firefox desde https://mozilla.org/firefox.
+yes=Sí
diff --git a/locales/fr/app.properties b/locales/fr/app.properties
index 4aa5e56..fcc8ddd 100644
--- a/locales/fr/app.properties
+++ b/locales/fr/app.properties
@@ -1,104 +1,109 @@
-about-firetext = A propos de Firetext
-alignment = Alignement
-allow-sdcard = Permettre à Firetext d’accéder à votre carte SD
-always-off = Toujours off
-always-on = Toujours on
-auto = Auto
-bold = Gras
-cancel = Annuler
-center = Centré
-clear = Supprimer
-clear-recents.innerHTML = Effacer liste récente
-click-compose-icon-to-create = Cliquez sur l’icône d'écriture pour créer un nouveau document.
-close-document = Fermer document
-cloud = Cloud
-contains-special-characters = Caractères spéciaux non autorisés. Corriger s'il vous plait.
-content-not-defined = Le contenu n'a pas été défini
-could-not-initialize-filesystem = Erreur : ne peut pas initialiser les fichiers systèmes
-create-document = Créer un document
-create = Créer
-credits = Crédits Firetext
-delete-selected = Supprimer sélection
-delete-unsuccessful = Suppression de fichier échouée.\n\nDétails erreur:\n
-deselect-all = Désélectionner tout
-design = Style
-document-actions = Document actions
-documents-device = Documents sur l'appareil
-documents-dropbox = Documents sur votre Dropbox
-done = Fait
-dropbox-full = Votre Dropbox est pleine. Réactualiser n'aidera pas.
-edit-docs = Éditer docs
-edit-with-zen-mode.innerHTML = Éditer avec mode zen
-editing = Correction
-elements = Éléments
-enable-autosave.innerHTML = Activer sauvegarde auto
-enable-file-previews.innerHTML = Activer prévisualisation des fichiers
-enable-night-mode.innerHTML = Activer mode nuit
-enter-name = Entrez un nom pour le nouveau fichier.
-file-creation-fail = Création de fichier échouée.\n\nDétails erreur:\n
-file-exists = Ce fichier existe déjà, choisissez un autre nom.
-firetext-support = Firetext support
-formatting = Formatage
-help = Aide
-horizontal-rule = Barre horizontale
-insert = Insérer
-insert-image = Insérer image
-insert-link = Insérer lien
-insert-table = Insérer tableau
-internal-storage = Stockage interne
-image = Image
-image-location = Localisation image
-invalid-location = Ne peut pas créer le fichier. Choisissez une location valide.
-italic = Italique
-justified = Justifié
-language.innerHTML = Langage interface
-left = Gauche
-link = Lien
-list = Liste
-load-last-file.innerHTML = Charger dernier fichier à l'ouverture
-load-unsuccessful = Échec du chargement.\n\nDétails erreur:\n
-menu = Menu
-network-error = Votre réseau semble être indisponible.\n\nVérifiez votre connexion et réessayez.
-no = Non
-no-dropbox-documents-found = Aucun document Dropbox trouvé
-no-documents-found = Aucun documents trouvés
-no-files-selected = Pas de fichiers sélectionnés
-no-recent-documents = Pas de documents récents
-no-storage-method = Vous n'avez pas réglé de méthode stockage
-not-signed-in = Vous n’êtes pas connectés
-number-of-columns.placeholder = Nombre de colonnes
-number-of-rows.placeholder = Nombre de lignes
-numbered-list = Liste numéroté
-okay = D'accord
-open-document = Ouvrir document
-other = Autre
-path-not-defined = Dossier non défini
-privacy = Confidentialité
-rate-firetext = Noter Firetext
-raw = Code brut
-recent-documents = Documents ouverts récemment
-recents-eliminated = Votre liste de documents récents a été supprimée avec succès!
-right = Droit
-save-changes-question = Voulez-vous sauver vos changements?
-save-document = Sauvegarder document
-save-unsuccessful = Sauvegarder échouée.\n\nDétails erreur:\n
-select-all = Sélectionner tout
-select-language = Sélectionnez votre langage
-send-error-stats.innerHTML = Envoyer statistiques d'erreurs
-settings = Paramètres
-shared-sdcard = La carte SD sur votre appareil est partagée et n'est donc pas disponible.\nEssayez de désactiver USB Mass Storage dans vos paramètre.
-strikethrough = Barré
-successfully-saved = Sauvegarde réussie
-table = Tableau
-the-web = Internet
-tools = Outils
-unable-to-get-sdcard = Impossible d'accéder à l'espace utilisé par la carte SD:
-underline = Souligné
-unknown-error = Erreur inconnue
-use-dropbox.innerHTML = Utiliser Dropbox
-valid-integer-value = Entrez une valeur valide (2 ou 5)
-visual = Aperçu
-want-to-delete-singular = Voulez-vous vraiment supprimer ce fichier ?
-want-to-delete-plural = Voulez vous vraiment supprimer ces fichiers?
-warning-unsupported-technology = Attention : Votre navigateur ne supporte pas certaines technologies nécessaires à Firetext. Télécharger Firefox depuis https://mozilla.org/firefox.
-yes = Oui
+about-firetext=A propos de Firetext
+alignment=Alignement
+allow-sdcard=Permettre à Firetext d’accéder à votre carte SD
+always-off=Toujours off
+always-on=Toujours on
+auto=Auto
+automatic-printing-failed=Nous ne pouvons pas imprimer automatiquement ce fichier. Veuillez sélectionner « Imprimer » depuis votre navigateur si cette fonction est disponible.
+bold=Gras
+cancel=Annuler
+center=Centré
+clear=Supprimer
+clear-recents.innerHTML=Effacer liste récente
+click-compose-icon-to-create=Cliquez sur l’icône d'écriture pour créer un nouveau document.
+close=Fermer
+cloud=Cloud
+contains-special-characters=Caractères spéciaux non autorisés. Corriger s'il vous plait.
+content-not-defined=Le contenu n'a pas été défini
+could-not-initialize-filesystem=Erreur : ne peut pas initialiser les fichiers systèmes
+create=Créer
+credits=Crédits Firetext
+delete-selected=Supprimer sélection
+delete-unsuccessful=La suppression du fichier a échoué. Détails du problème :
+deselect-all=Désélectionner tout
+design=Style
+documents=Documents
+documents-device=Documents sur l'appareil
+documents-dropbox=Documents sur votre Dropbox
+done=Fait
+dropbox-full=Votre Dropbox est pleine. Rafraîchir ne servira à rien.
+edit-docs=Éditer docs
+editing=Correction
+elements=Éléments
+enable-autosave.innerHTML=Activer sauvegarde auto
+enable-file-previews.innerHTML=Activer prévisualisation des fichiers
+enable-night-mode.innerHTML=Activer mode nuit
+enter-name=Entrez un nom pour le nouveau fichier.
+export=Exporter
+file-creation-fail=La création du fichier a échoué. Détails du problème :
+file-exists=Ce fichier existe déjà, choisissez un autre nom.
+firetext-support=Firetext support
+formatting=Formatage
+help=Aide
+horizontal-rule=Barre horizontale
+insert=Insérer
+insert-image=Insérer image
+insert-link=Insérer lien
+insert-table=Insérer tableau
+internal-storage=Stockage interne
+invalid-location=Impossible de créer ce fichier. Veuillez choisir un emplacement valide.
+image=Image
+image-location=Localisation image
+import=Importer
+italic=Italique
+justified=Justifié
+language.innerHTML=Langage interface
+left=Gauche
+link=Lien
+list=Liste
+load-last-file.innerHTML=Charger dernier fichier à l'ouverture
+load-unsuccessful=Le chargement a échoué. Détails du problème :
+menu=Menu
+needs-restart=Ce réglage sera appliqué après le redémarrage de Firetext. Souhaitez-vous redémarrer maintenant ?
+network-error=Votre réseau semble être indisponible. Veuillez vérifier votre connexion et réessayer.
+no=Non
+no-dropbox-documents-found=Aucun document Dropbox trouvé
+no-documents-found=Aucun documents trouvés
+no-files-selected=Pas de fichiers sélectionnés
+no-recent-documents=Pas de documents récents
+no-storage-method=Veuillez installer un système de stockage pour modifier les fichiers :
+not-functional-link=Ce lien n'est pas opérationnel…
+not-signed-in=Vous n’êtes pas connectés
+number-of-columns.placeholder=Nombre de colonnes
+number-of-rows.placeholder=Nombre de lignes
+numbered-list=Liste numéroté
+okay=D'accord
+open=Ouvrir
+other=Autre
+path-not-defined=Dossier non défini
+print=Imprimer
+privacy=Confidentialité
+rate-firetext=Noter Firetext
+raw=Code brut
+recent-documents=Documents ouverts récemment
+recents-eliminated=Votre liste de documents récents a été supprimée avec succès!
+right=Droit
+save=Enregistrer
+save-as=Enregistrer sous
+save-changes-question=Voulez-vous sauver vos changements?
+save-unsuccessful=L'enregistrement a échoué. Détails du problème :
+select-all=Sélectionner tout
+select-language=Sélectionnez votre langage
+send-error-stats.innerHTML=Envoyer statistiques d'erreurs
+settings=Paramètres
+shared-sdcard=La carte SD sur votre appareil est partagée et n'est donc pas disponible.\nEssayez de désactiver USB Mass Storage dans vos paramètre.
+strikethrough=Barré
+successfully-saved=Sauvegarde réussie
+table=Tableau
+the-web=Internet
+tools=Outils
+unable-to-get-sdcard=Impossible d'accéder à l'espace utilisé par la carte SD:
+underline=Souligné
+unknown-error=Erreur inconnue
+use-dropbox.innerHTML=Utiliser Dropbox
+valid-integer-value=Entrez une valeur valide (2 ou 5)
+visual=Aperçu
+want-to-delete-singular=Voulez-vous vraiment supprimer ce fichier ?
+want-to-delete-plural=Voulez vous vraiment supprimer ces fichiers?
+warning-unsupported-technology=Attention : Votre navigateur ne supporte pas certaines technologies nécessaires à Firetext. Télécharger Firefox depuis https://mozilla.org/firefox.
+yes=Oui
diff --git a/locales/he/app.properties b/locales/he/app.properties
index fbcea70..fe996db 100644
--- a/locales/he/app.properties
+++ b/locales/he/app.properties
@@ -1,104 +1,109 @@
-about-firetext = אודות Firetext
-alignment = יישור
-allow-sdcard = נא הרשה ל-Firetext לגשת לכרטיס ה-SD שלך.
-always-off = תמיד מכובה
-always-on = תמיד דלוק
-auto = אוטומטי
-bold = מודגש
-cancel = ביטול
-center = מרכז
-clear = נקה
-clear-recents.innerHTML = נקה רשימת מסמכים אחרונים
-click-compose-icon-to-create = לחץ על אייקון חיבור מסמך כדי ליצור מסמך חדש.
-close-document = סגור מסמך
-cloud = ענן
-contains-special-characters = תווים מיוחדים לא מורשים. נא ערוך.
-content-not-defined = התוכן לא הוגדר
-could-not-initialize-filesystem = שגיאה: לא ניתן לאתחל את מערכת הקבצים
-create-document = צור מסמך
-create = צור
-credits = תודות וזכויות יוצרים של Firetext
-delete-selected = מחק הנבחר
-delete-unsuccessful = מחיקת קובץ לא מוצלחת.\n\nפרטי השגיאה:
-deselect-all = בטל בחירה של הכל
-design = עיצוב
-document-actions = פעולות המסמך
-documents-device = מסמכים על התקן זה
-documents-dropbox = מסמכים על ה-Dropbox שלך
-done = בוצע
-dropbox-full = ה-Dropbox שלך מלא. רענון לא יעזור.
-edit-docs = ערוך מסמכים
-edit-with-zen-mode.innerHTML = ערוך במצב זן
-editing = עריכה
-elements = גורמים
-enable-autosave.innerHTML = הפעל שמירה אוטומטית
-enable-file-previews.innerHTML = הפעל תצוגה מקדימה של קבצים
-enable-night-mode.innerHTML = הפעל מצב לילה
-enter-name = נא הזן שם לקובץ החדש.
-file-creation-fail = יצירת קובץ לא מוצלחת.\n\nפרטי השגיאה:\n
-file-exists = קובץ זה כבר קיים, בחר נא שם אחר.
-firetext-support = תמיכת Firetext
-formatting = עיצוב
-help = עזרה
-horizontal-rule = קו אופקי
-insert = הכנס
-insert-image = הכנס תמונה
-insert-link = הכנס קישור
-insert-table = הכנס טבלה
-internal-storage = אחסון פנימי
-image = תמונה
-image-location = מיקום התמונה
-invalid-location = לא ניתן ליצור קובץ. בחר נא מיקום חוקי.
-italic = נטוי
-justified = מיושר
-language.innerHTML = שפת הממשק
-left = שמאל
-link = קישור
-list = רשימה
-load-last-file.innerHTML = טען קובץ אחרון בזמן ההפעלה
-load-unsuccessful = טעינה לא מוצלחת.\n\nפרטי השגיאה:\n
-menu = תפריט
-network-error = הרשת שלך כנראה לא נגישה.\n\nאנא בדוק את החיבור שלך ונסה שוב.
-no = לא
-no-dropbox-documents-found = לא נמצאו מסמכי Dropbox
-no-documents-found = לא נמצאו מסמכים
-no-files-selected = לא נבחרו קבצים
-no-recent-documents = אין מסמכים אחרונים
-no-storage-method = לא הגדרת שיטת אחסון
-not-signed-in = אתה לא מחובר
-number-of-columns.placeholder = מספר הטורים
-number-of-rows.placeholder = מספר השורות
-numbered-list = רשימה ממוספרת
-okay = בסדר
-open-document = פתח מסמך
-other = אחר
-path-not-defined = הנתיב לא הוגדר
-privacy = פרטיות
-rate-firetext = דרג את Firetext
-raw = גולמי
-recent-documents = מסמכים שנפתחו לאחרונה
-recents-eliminated = רשימת המסמכים האחרונים שלך נוקתה בהצלחה!
-right = ימין
-save-changes-question = תרצה לשמור את השינויים שלך?
-save-document = שמור מסמך
-save-unsuccessful = שמירה לא מוצלחת.\n\nפרטי השגיאה:\n
-select-all = בחר הכל
-select-language = בחר את השפה שלך
-send-error-stats.innerHTML = שלח סטטיסטיקות שגיאה
-settings = הגדרות
-shared-sdcard = כרטיס ה-SD בהתקן שלך משותף ולכן לא נגיש. נסה לבטל הגדרת התקן אחסון USB.
-strikethrough = קו חוצה
-successfully-saved = נשמר בהצלחה
-table = טבלה
-the-web = האינטרנט
-tools = כלים
-unable-to-get-sdcard = לא ניתן לקבל את השטח המשמש את כרטיס ה-SD:
-underline = קו תחתי
-unknown-error = שגיאה לא ידועה
-use-dropbox.innerHTML = השתמש ב-Dropbox
-valid-integer-value = נא הכנס ערך חוקי (כמו 2 או 5)
-visual = ויזואלי
-want-to-delete-singular = תרצה למחוק את הקובץ הזה?
-want-to-delete-plural = תרצה למחוק את הקבצים האלו?
-warning-unsupported-technology = אזהרה: הדפדפן שלך לא תומך בטכנולוגיה חיונית מסוימת של פיירפוקס. נא להוריד פיירפוקס מכאן https://mozilla.org/firefox
-yes = כן
+about-firetext=אודות Firetext
+alignment=יישור
+allow-sdcard=נא הרשה ל-Firetext לגשת לכרטיס ה-SD שלך.
+always-off=תמיד מכובה
+always-on=תמיד דלוק
+auto= אוטומטי
+automatic-printing-failed=אנחנו לא יכולים להדפיס קובץ זה באופן אוטומטי. אנא בחר 'הדפסה' מתוך הדפדפן שלך, אם הוא זמין.
+bold=מודגש
+cancel=ביטול
+center=מרכז
+clear=נקה
+clear-recents.innerHTML=נקה רשימת מסמכים אחרונים
+click-compose-icon-to-create=לחץ על אייקון חיבור מסמך כדי ליצור מסמך חדש.
+close=קרוב
+cloud=ענן
+contains-special-characters=תווים מיוחדים לא מורשים. נא ערוך.
+content-not-defined=התוכן לא הוגדר
+could-not-initialize-filesystem=שגיאה: לא ניתן לאתחל את מערכת הקבצים
+create=צור
+credits=תודות וזכויות יוצרים של Firetext
+delete-selected=מחק הנבחר
+delete-unsuccessful=מחיקת קובץ לא מוצלחת. פרטי השגיאה:
+deselect-all=בטל בחירה של הכל
+design=עיצוב
+documents=מסמכים
+documents-device=מסמכים על התקן זה
+documents-dropbox=מסמכים על ה-Dropbox שלך
+done=בוצע
+dropbox-full=ה-Dropbox שלך מלא. רענון לא יעזור.
+edit-docs=ערוך מסמכים
+editing=עריכה
+elements=גורמים
+enable-autosave.innerHTML=הפעל שמירה אוטומטית
+enable-file-previews.innerHTML=הפעל תצוגה מקדימה של קבצים
+enable-night-mode.innerHTML=הפעל מצב לילה
+enter-name=נא הזן שם לקובץ החדש.
+export=היצוא
+file-creation-fail=יצירת קובץ לא מוצלחת. פרטי השגיאה:
+file-exists=קובץ זה כבר קיים, בחר נא שם אחר.
+firetext-support=תמיכת Firetext
+formatting=עיצוב
+help=עזרה
+horizontal-rule=קו אופקי
+insert=הכנס
+insert-image=הכנס תמונה
+insert-link=הכנס קישור
+insert-table=הכנס טבלה
+internal-storage=אחסון פנימי
+invalid-location=לא ניתן ליצור קובץ. בחר נא מיקום חוקי.
+image=תמונה
+image-location=מיקום התמונה
+import=היבוא
+italic=נטוי
+justified=מיושר
+language.innerHTML=שפת הממשק
+left=שמאל
+link=קישור
+list=רשימה
+load-last-file.innerHTML=טען קובץ אחרון בזמן ההפעלה
+load-unsuccessful=טעינה לא מוצלחת. פרטי השגיאה:
+menu=תפריט
+needs-restart=הגדרה זו תיושם לאחר הפעלה מחדש של Firetext. הפעל מחדש עכשיו?
+network-error=הרשת שלך כנראה לא נגישה. אנא בדוק את החיבור שלך ונסה שוב.
+no=לא
+no-dropbox-documents-found=לא נמצאו מסמכי Dropbox
+no-documents-found=לא נמצאו מסמכים
+no-files-selected=לא נבחרו קבצים
+no-recent-documents=אין מסמכים אחרונים
+no-storage-method=לא הגדרת שיטת אחסון:
+not-functional-link=הקישור הזה לא בשימוש...
+not-signed-in=אתה לא מחובר
+number-of-columns.placeholder=מספר הטורים
+number-of-rows.placeholder=מספר השורות
+numbered-list=רשימה ממוספרת
+okay=בסדר
+open=פתוח
+other=אחר
+path-not-defined=הנתיב לא הוגדר
+print=ההדפסה
+privacy= פרטיות
+rate-firetext=דרג את Firetext
+raw=גולמי
+recent-documents=מסמכים שנפתחו לאחרונה
+recents-eliminated=רשימת המסמכים האחרונים שלך נוקתה בהצלחה!
+right=ימין
+save=שמור
+save-as=שמירה כ
+save-changes-question=תרצה לשמור את השינויים שלך?
+save-unsuccessful=שמירה לא מוצלחת. פרטי השגיאה:
+select-all=בחר הכל
+select-language=בחר את השפה שלך
+send-error-stats.innerHTML=שלח סטטיסטיקות שגיאה
+settings=הגדרות
+shared-sdcard=כרטיס ה-SD בהתקן שלך משותף ולכן לא נגיש. נסה לבטל הגדרת התקן אחסון USB.
+strikethrough=קו חוצה
+successfully-saved=נשמר בהצלחה
+table=טבלה
+the-web=האינטרנט
+tools=כלים
+unable-to-get-sdcard=לא ניתן לקבל את השטח המשמש את כרטיס ה-SD:
+underline=קו תחתי
+unknown-error=שגיאה לא ידועה
+use-dropbox.innerHTML=השתמש ב-Dropbox
+valid-integer-value=נא הכנס ערך חוקי (כמו 2 או 5)
+visual=ויזואלי
+want-to-delete-singular=תרצה למחוק את הקובץ הזה?
+want-to-delete-plural=תרצה למחוק את הקבצים האלו?
+warning-unsupported-technology=אזהרה: הדפדפן שלך לא תומך בטכנולוגיה חיונית מסוימת של פיירפוקס. נא להוריד פיירפוקס מכאן https://mozilla.org/firefox
+yes=כן
diff --git a/locales/hu/app.properties b/locales/hu/app.properties
new file mode 100644
index 0000000..3b88b8f
--- /dev/null
+++ b/locales/hu/app.properties
@@ -0,0 +1,109 @@
+about-firetext=Firetext névjegy
+alignment=Igazítás
+allow-sdcard=Kérem, engedélyezze a Firetext-nek az SD kártya elérését.
+always-off=Mindig ki
+always-on=Mindig be
+auto=Automatikus
+automatic-printing-failed=Nem tudjuk nyomtatni a fájlt automatikusan. Kérjük, válassza ki a "Print" belülről a böngésző, ha elérhető.
+bold=Félkövér
+cancel=Mégsem
+center=Középre
+clear=Törlés
+clear-recents.innerHTML=Előzmények törlése lista FIXME
+click-compose-icon-to-create=Kattintson a Szerkesztés ikonra új dokumentum létrehozásához.
+close=Bezár
+cloud=Felhő
+contains-special-characters=Speciális karaktereket nem lehet használni. Kérem, ellenőrizze!
+content-not-defined=A tartalom nincs meghatározva
+could-not-initialize-filesystem=Hiba: Nem lehet inicializálni a fájlrendszert
+create=Létrehozás
+credits=Firetext készítők
+delete-selected=Kijelölt törlése
+delete-unsuccessful=Fájl törlése sikertelen. Hiba részletei:
+deselect-all=Kijelölés törlése
+design=Kinézet
+documents=Dokumentumok
+documents-device=Dokumentumok az eszközön
+documents-dropbox=Dokumentumok a Dropbox-on
+done=Kész
+dropbox-full=A Dropbox-a betellt. A frissítés nem segít.
+edit-docs=Dokumentumok szerkesztése
+editing=Szerkesztés
+elements=Elemek
+enable-autosave.innerHTML=automentés engedélyezése
+enable-file-previews.innerHTML=Fájl előnézet engedélyezése
+enable-night-mode.innerHTML=Éjszakai mód engedélyezése
+enter-name=Kérem adjon meg egy nevet az új fájlnak.
+export=Kiviteli
+file-creation-fail=A fájl létrehozása sikertelen. Hiba részletei:
+file-exists=A fájl már létezik, kérem, válasszon egy másik nevet.
+firetext-support=Firetext támogatás
+formatting=Formázás
+help=Súgó
+horizontal-rule=Vízszintes vonal
+insert=Beszúrás
+insert-image=Kép beszúrása
+insert-link=Hivatkozás beszúrása
+insert-table=Táblázat beszúrása
+internal-storage=Belső tároló
+invalid-location=Nem sikerült létrehozni a fájlt. Kérem, válasszon egy érvényes helyet.
+image=Kép
+image-location=Kép helye
+import=Importál
+italic=Dőlt
+justified=Igazított
+language.innerHTML=A felület nyelve
+left=Bal
+link=Hivatkozás
+list=Lista
+load-last-file.innerHTML=Előző fájl megnyitása induláskor
+load-unsuccessful=A betöltés sikertelen. Hiba részletei:
+menu=Menü
+needs-restart=Ez a beállítás után alkalmazandó Firetext újraindul. Újraindítja most?
+network-error=Úgy tűnik, a hálózat elérhetetlen. Ellenőrizze a kapcsolatát és próbálja újra.
+no=Nem
+no-dropbox-documents-found=Nem található dokumentum a Dropbox-on
+no-documents-found=Dokumentum nem található
+no-files-selected=Nincs kiválasztva fájl
+no-recent-documents=Nincsenek előzőleg megnyitott dokumentumok
+no-storage-method=Nincs tárolási mód beállítva:
+not-functional-link=Ez a hivatkozás nem működik...
+not-signed-in=Nincs bejelentkezve
+number-of-columns.placeholder=Oszlopok száma
+number-of-rows.placeholder=Sorok száma
+numbered-list=Sorszámozott lista
+okay=Ok
+open=Megnyitása
+other=Egyéb
+path-not-defined=Az útvonal nem volt definiálva.
+print=Nyomtatás
+privacy=Magánszféra
+rate-firetext=A Firetext ajánlása
+raw=Nyers
+recent-documents=Előzőleg megnyitott dokumentumok
+recents-eliminated=Az előzőleg megnyitott dokumentumok listája sikeresen ki lett ürítve.
+right=Jobb
+save=Mentése
+save-as=Mentés másként
+save-changes-question=El szeretné menteni a változtatásokat?
+save-unsuccessful=Mentés sikertelen. Hiba részletei:
+select-all=Összes kijelölése
+select-language=Nyelv választása
+send-error-stats.innerHTML=Hiba küldés statisztikák
+settings=Beállítások
+shared-sdcard=Az eszközében lévő SD kártya megosztott, ezért nem elérhető. Kérem, tiltsa le az USB tároló opciót a beállításokban.
+strikethrough=Áthúzott
+successfully-saved=Sikeresen mentve
+table=Táblázat
+the-web=Internet
+tools=Eszközök
+unable-to-get-sdcard=Nem tudom lekérdezni az SD kártyán a foglalt helyet.
+underline=Aláhúzás
+unknown-error=Ismeretlen hiba
+use-dropbox.innerHTML=Dropbox használata
+valid-integer-value=Kérem, adjon meg egy érvényes értéket (pl. 2 vagy 5)
+visual=Kinézet
+want-to-delete-singular=Biztosan törölni szeretné ezt a fájlt?
+want-to-delete-plural=Biztosan törölni szeretné ezeket a fájlokat?
+warning-unsupported-technology=Figyelem: Az ön böngészője nem támogat bizonyos Firetext technológiákat. Kérem, töltse le a Firefox-ot a https://mozilla.org/firefox címről.
+yes=Igen
diff --git a/locales/id/app.properties b/locales/id/app.properties
index 81e81b0..325fc9a 100644
--- a/locales/id/app.properties
+++ b/locales/id/app.properties
@@ -1,104 +1,109 @@
-about-firetext = Tentang Firetext
-alignment = Penyelarasan
-allow-sdcard = Harap ijinkan Firetext untuk mengakses kartu SD anda.
-always-off = Selalu deaktif
-always-on = Selalu aktif
-auto = Auto
-bold = Tebal
-cancel = Batalkan
-center = Tengah
-clear = Bersihkan
-clear-recents.innerHTML = Bersihkan daftar sebelumnya
-click-compose-icon-to-create = Klik pada ikon susun untuk membuat berkas baru
-close-document = Tutup dokumen
-cloud = Awan
-contains-special-characters = Karakter khusus tidak dibolehkan. Mohon diperbaiki.
-content-not-defined = Konten tidak terdefinisikan
-could-not-initialize-filesystem = Kesalahan: Tidak dapat menginisialisasi filesystem
-create-document = Membuat berkas
-create = Membuat
-credits = Kredit Firetext
-delete-selected = Hapus yang terpilih
-delete-unsuccessful = Gagal menghapus berkas.\n\nDetil kesalahan:\n
-deselect-all = Batalkan pemilihan semua
-design = Desain
-document-actions = Aksi dokumen
-documents-device = Dokumen di perangkat Anda
-documents-dropbox = Dokunen di Dropbox Anda
-done = Selesai
-dropbox-full = Dropbox Anda penuh. Refresh tidak akan membantu
-edit-docs = Sunting dokumen
-edit-with-zen-mode.innerHTML = Sunting dengan mode zen
-editing = Penyuntingan
-elements = Elemen
-enable-autosave.innerHTML = Aktifkan penyimpanan otomatis
-enable-file-previews.innerHTML = Aktifkan pratinjau berkas
-enable-night-mode.innerHTML = Aktifkan mode malam
-enter-name = Masukkan nama untuk berkas baru
-file-creation-fail = Gagal membuat berkas.\n\nDetil kesalahan:\n
-file-exists = Berkas telah ada sebelumnya, silakan pilih nama lainnya
-firetext-support = Dukungan Firetext
-formatting = Memformat
-help = Panduan
-horizontal-rule = Garis horisontal
-insert = Sisipkan
-insert-image = Sisipkan gambar
-insert-link = Sisipkan tautan
-insert-table = Sisipkan tabel
-internal-storage = Penyimpanan internal
-image = Gambar
-image-location = Lokasi gambar
-invalid-location = Tidak dapat membuat berkas. Silakan pilih lokasi yang tepat
-italic = Miring
-justified = Rata kiri-kanan
-language.innerHTML = Antarmuka bahasa
-left = Kiri
-link = Tautan
-list = Daftar
-load-last-file.innerHTML = Muat berkas terakhir saat memulai
-load-unsuccessful = Gagal memuat.\n\nDetil kesalahan:\n
-menu = Menu
-network-error = Anda sepertinya tidak terhubung dengan jaringan.\n\nSilakan periksa koneksi Anda dan coba kembali.
-no = Tidak
-no-dropbox-documents-found = Dokumen Dropbox tidak ditemukan
-no-documents-found = Dokumen tidak ditemukan
-no-files-selected = Tidak ada berkas yang dipilih
-no-recent-documents = Tidak ada dokumen sebelumnya
-no-storage-method = Anda belum menentukan metode penyimpanan
-not-signed-in = Anda belum mendaftar
-number-of-columns.placeholder = Jumlah kolom
-number-of-rows.placeholder = Jumlah baris
-numbered-list = Daftar dengan nomor
-okay = OK
-open-document = Buka dokumen
-other = Lainnya
-path-not-defined = Letak tidak terdefinisikan
-privacy = Privasi
-rate-firetext = Nilai Firetext
-raw = Mentah
-recent-documents = Dokumen-dokumen yang sebelumnya dibuka
-recents-eliminated = Daftar dokumen Anda sebelumnya telah berhasil dihapus!
-right = Kanan
-save-changes-question = Apakah anda ingin menyimpan perubahan yang telah dilakukan?
-save-document = Simpan dokumen
-save-unsuccessful = Gagal menyimpan.\n\nDetil kesalahan:\n
-select-all = Pilih semua
-select-language = Pilihan bahasa
-send-error-stats.innerHTML = Kirimkan statistik kesalahan
-settings = Pengaturan
-shared-sdcard = SD Card pada perangkat Anda bersama, dan dengan demikian tidak tersedia. Coba nonaktifkan USB Mass Storage dalam pengaturan Anda.
-strikethrough = Line melalui
-successfully-saved = Berhasil tersimpan
-table = Tabel
-the-web = Web
-tools = Alat
-unable-to-get-sdcard = Tidak dapat mendapatkan ruang yang digunakan oleh kartu SD:
-underline = Garis bawah
-unknown-error = Kesalahan yang tidak terdefinisikan
-use-dropbox.innerHTML = Gunakan Dropbox
-valid-integer-value = Mohon isi nilai yang benar (contoh: 2 atau 5)
-visual = Visual
-want-to-delete-singular = Anda ingin menghapus berkas ini?
-want-to-delete-plural = Anda ingin menghapus berkas-berkas berikut ini?
-warning-unsupported-technology = Peringata: Peramban anda tidak mendukung beberapa teknologi vital yang digunakan Firetext. Silakan unduh Firefox dari https://mozilla.org/firefox.
-yes = Ya
+about-firetext=Tentang Firetext
+alignment=Penyelarasan
+allow-sdcard=Harap ijinkan Firetext untuk mengakses kartu SD anda.
+always-off=Selalu deaktif
+always-on=Selalu aktif
+auto=Auto
+automatic-printing-failed=Kita tidak dapat mencetak file ini secara otomatis. Silakan pilih 'Cetak' dari dalam browser Anda jika tersedia.
+bold=Tebal
+cancel=Batalkan
+center=Tengah
+clear=Bersihkan
+clear-recents.innerHTML=Bersihkan daftar sebelumnya
+click-compose-icon-to-create=Klik pada ikon susun untuk membuat berkas baru
+close=Tutup
+cloud=Awan
+contains-special-characters=Karakter khusus tidak dibolehkan. Mohon diperbaiki.
+content-not-defined=Konten tidak terdefinisikan
+could-not-initialize-filesystem=Kesalahan: Tidak dapat menginisialisasi filesystem
+create=Membuat
+credits=Kredit Firetext
+delete-selected=Hapus yang terpilih
+delete-unsuccessful=Gagal menghapus berkas. Detil kesalahan:
+deselect-all=Batalkan pemilihan semua
+design=Desain
+documents=Dokumen
+documents-device=Dokumen di perangkat Anda
+documents-dropbox=Dokunen di Dropbox Anda
+done=Selesai
+dropbox-full=Dropbox Anda penuh. Refresh tidak akan membantu.
+edit-docs=Sunting dokumen
+editing=Penyuntingan
+elements=Elemen
+enable-autosave.innerHTML=Aktifkan penyimpanan otomatis
+enable-file-previews.innerHTML=Aktifkan pratinjau berkas
+enable-night-mode.innerHTML=Aktifkan mode malam
+enter-name=Masukkan nama untuk berkas baru
+export=Ekspor
+file-creation-fail=Gagal membuat berkas. Detil kesalahan:
+file-exists=Berkas telah ada sebelumnya, silakan pilih nama lainnya
+firetext-support=Dukungan Firetext
+formatting=Memformat
+help=Panduan
+horizontal-rule=Garis horisontal
+insert=Sisipkan
+insert-image=Sisipkan gambar
+insert-link=Sisipkan tautan
+insert-table=Sisipkan tabel
+internal-storage=Penyimpanan internal
+invalid-location=Tidak dapat membuat berkas. Silakan pilih lokasi yang tepat.
+image=Gambar
+image-location=Lokasi gambar
+import=Impor
+italic=Miring
+justified=Rata kiri-kanan
+language.innerHTML=Antarmuka bahasa
+left=Kiri
+link=Tautan
+list=Daftar
+load-last-file.innerHTML=Muat berkas terakhir saat memulai
+load-unsuccessful=Gagal memuat. Detil kesalahan:
+menu=Menu
+needs-restart=Pengaturan ini akan diterapkan setelah Firetext restart. Restart sekarang?
+network-error=Anda sepertinya tidak terhubung dengan jaringan. Silakan periksa koneksi Anda dan coba kembali.
+no=Tidak
+no-dropbox-documents-found=Dokumen Dropbox tidak ditemukan
+no-documents-found=Dokumen tidak ditemukan
+no-files-selected=Tidak ada berkas yang dipilih
+no-recent-documents=Tidak ada dokumen sebelumnya
+no-storage-method=Anda belum menentukan metode penyimpanan:
+not-functional-link=Link ini tidak fungsional.
+not-signed-in=Anda belum mendaftar
+number-of-columns.placeholder=Jumlah kolom
+number-of-rows.placeholder=Jumlah baris
+numbered-list=Daftar dengan nomor
+okay=OK
+open=Terbuka
+other=Lainnya
+path-not-defined=Letak tidak terdefinisikan
+print=Cetak
+privacy=Privasi
+rate-firetext=Nilai Firetext
+raw=Mentah
+recent-documents=Dokumen-dokumen yang sebelumnya dibuka
+recents-eliminated=Daftar dokumen Anda sebelumnya telah berhasil dihapus!
+right=Kanan
+save=Simpan
+save-as=Simpan sebagai
+save-changes-question=Apakah anda ingin menyimpan perubahan yang telah dilakukan?
+save-unsuccessful=Gagal menyimpan. Detil kesalahan:
+select-all=Pilih semua
+select-language=Pilihan bahasa
+send-error-stats.innerHTML=Kirimkan statistik kesalahan
+settings=Pengaturan
+shared-sdcard=SD Card pada perangkat Anda bersama, dan dengan demikian tidak tersedia. Coba nonaktifkan USB Mass Storage dalam pengaturan Anda.
+strikethrough=Line melalui
+successfully-saved=Berhasil tersimpan
+table=Tabel
+the-web=Web
+tools=Alat
+unable-to-get-sdcard=Tidak dapat mendapatkan ruang yang digunakan oleh kartu SD:
+underline=Garis bawah
+unknown-error=Kesalahan yang tidak terdefinisikan
+use-dropbox.innerHTML=Gunakan Dropbox
+valid-integer-value=Mohon isi nilai yang benar (contoh: 2 atau 5)
+visual=Visual
+want-to-delete-singular=Anda ingin menghapus berkas ini?
+want-to-delete-plural=Anda ingin menghapus berkas-berkas berikut ini?
+warning-unsupported-technology=Peringata: Peramban anda tidak mendukung beberapa teknologi vital yang digunakan Firetext. Silakan unduh Firefox dari https://mozilla.org/firefox.
+yes=Ya
diff --git a/locales/it/app.properties b/locales/it/app.properties
index 5c49a7b..7d1be2d 100644
--- a/locales/it/app.properties
+++ b/locales/it/app.properties
@@ -1,104 +1,109 @@
-about-firetext = Informazioni su Firetext
-alignment = Allineamento
-allow-sdcard = Permetti a Firetext di accedere alla tua scheda SD
-always-off = Sempre disattivato
-always-on = Sempre attivato
-auto = Automatico
-bold = Grassetto
-cancel = Cancella
-center = Centrato
-clear = Pulisci
-clear-recents.innerHTML = Pulisci lista dei file recenti
-click-compose-icon-to-create = Premi l'icona di scrittura per creare un nuovo documento.
-close-document = Chiudi documento
-cloud = Cloud
-contains-special-characters = I caratteri speciali non sono permessi. Controlla il tuo testo.
-content-not-defined = Il contenuto non è stato definito
-could-not-initialize-filesystem = Errore: non è stato possibile inizializzare il filesystem
-create-document = Crea documento
-create = Crea
-credits = Crediti di Firetext
-delete-selected = Elimina selezione
-delete-unsuccessful = Eliminazione file senza successo\n\nDettagli errore:
-deselect-all = Deseleziona tutto
-design = Design
-document-actions = Azioni del documento
-documents-device = Documenti in questo dispositivo
-documents-dropbox = Documenti su Dropbox
-done = Fatto
-dropbox-full = Il tuo account di Dropbox è pieno. Aggiornare non risolve il problema.
-edit-docs = Modifica documenti
-edit-with-zen-mode.innerHTML = Modifica in modalità zen
-editing = Modifica
-elements = Elementi
-enable-autosave.innerHTML = Abilita salvataggio automatico
-enable-file-previews.innerHTML = Abilita anteprima file
-enable-night-mode.innerHTML = Abilita modalità notturna
-enter-name = Inserisci un nome per il file nuovo.
-file-creation-fail = Creazione file senza successo.\n\nDettagli errore:
-file-exists = Questo file esiste già. Inserisci un altro nome.
-firetext-support = Supporto per Firetext
-formatting = Formattazione
-help = Aiuto
-horizontal-rule = Riga orizzontale
-insert = Inserisci
-insert-image = Inserisci immagine
-insert-link = Inserisci URL
-insert-table = Inserisci tabella
-internal-storage = Spazio interno
-image = Immagine
-image-location = Posizione immagine
-invalid-location = Non è stato possibile creare il file. Seleziona una posizione valida.
-italic = Corsivo
-justified = Giustificato
-language.innerHTML = Lingua dell'interfaccia
-left = Destra
-link = Link
-list = Lista
-load-last-file.innerHTML = Carica l'ultimo file all'avvio
-load-unsuccessful = Caricamento senza successo.\n\nDettagli errore:\n
-menu = Menù
-network-error = La tua connessione sembra non essere disponibile.\n\nVerifica la tua connessione e riprova.
-no = No
-no-dropbox-documents-found = Nessun documento trovato su Dropbox
-no-documents-found = Nessun documento trovato
-no-files-selected = Nessun file selezionato
-no-recent-documents = Nessun documento recente
-no-storage-method = Non hai impostato un metodo di salvataggio
-not-signed-in = Non hai fatto il login
-number-of-columns.placeholder = Numero di colonne
-number-of-rows.placeholder = Numero di righe
-numbered-list = Lista numerata
-okay = Ok
-open-document = Apri documento
-other = Altro
-path-not-defined = Il percorso non è definito
-privacy = Privacy
-rate-firetext = Vota Firetext
-raw = Sorgente
-recent-documents = Documenti aperti recentemente
-recents-eliminated = La lista dei tuoi documenti recenti è stata eliminata con successo!
-right = Sinistra
-save-changes-question = Vuoi salvare le tue modifiche?
-save-document = Salva documento
-save-unsuccessful = Salvataggio non riuscito.\n\nDettagli errore:\n
-select-all = Seleziona tutto
-select-language = Seleziona la tua lingua
-send-error-stats.innerHTML = Invia le statistiche d'errore
-settings = Impostazioni
-shared-sdcard = La scheda SD del tuo dispositivo è condivisa e questo non è disponibile. Prova a disattivare la l'impostazione della memoria USB.
-strikethrough = Sottolineato sopra
-successfully-saved = Salvato con successo
-table = Tabella
-the-web = Il web
-tools = Strumenti
-unable-to-get-sdcard = Non è stato possibile ottenere lo spazio libero dalla scheda SD:
-underline = Sottolineato
-unknown-error = Errore sconosciuto
-use-dropbox.innerHTML = Usa Dropbox
-valid-integer-value = Inserisci un valore valido (es. 2 o 5)
-visual = Visuale
-want-to-delete-singular = Vuoi cancellare questo file?
-want-to-delete-plural = Vuoi cancellare questi file?
-warning-unsupported-technology = Attenzione: il tuo browser non supporta alcune funzioni vitali della tecnologia di Firetext. Scarica Firefox da https://mozilla.org/firefox.
-yes = Sì
+about-firetext=Informazioni su Firetext
+alignment=Allineamento
+allow-sdcard=Permetti a Firetext di accedere alla tua scheda SD
+always-off=Sempre disattivato
+always-on=Sempre attivato
+auto=Automatico
+automatic-printing-failed=Non possiamo stampare i file automaticamente. Seleziona 'Stampa' dal tuo browser se è disponibile nel tuo browser.
+bold=Grassetto
+cancel=Cancella
+center=Centrato
+clear=Pulisci
+clear-recents.innerHTML=Pulisci lista dei file recenti
+click-compose-icon-to-create=Premi l'icona di scrittura per creare un nuovo documento.
+close=Chiudi
+cloud=Cloud
+contains-special-characters=I caratteri speciali non sono permessi. Controlla il tuo testo.
+content-not-defined=Il contenuto non è stato definito
+could-not-initialize-filesystem=Errore: non è stato possibile inizializzare il filesystem
+create=Crea
+credits=Crediti di Firetext
+delete-selected=Elimina selezione
+delete-unsuccessful=Il file non è stato eliminato. Dettagli dell'errore:
+deselect-all=Deseleziona tutto
+design=Design
+documents=Documenti
+documents-device=Documenti in questo dispositivo
+documents-dropbox=Documenti su Dropbox
+done=Fatto
+dropbox-full=Il tuo Dropbox è pieno. Ricaricare non risolverà il problema.
+edit-docs=Modifica documenti
+editing=Modifica
+elements=Elementi
+enable-autosave.innerHTML=Abilita salvataggio automatico
+enable-file-previews.innerHTML=Abilita anteprima file
+enable-night-mode.innerHTML=Abilita modalità notturna
+enter-name=Inserisci un nome per il file nuovo.
+export=Esporta
+file-creation-fail=Il file non è stato creato. Dettagli dell'errore:
+file-exists=Questo file esiste già. Inserisci un altro nome.
+firetext-support=Supporto per Firetext
+formatting=Formattazione
+help=Aiuto
+horizontal-rule=Riga orizzontale
+insert=Inserisci
+insert-image=Inserisci immagine
+insert-link=Inserisci URL
+insert-table=Inserisci tabella
+internal-storage=Spazio interno
+invalid-location=Non è stato possibile creare il file. Scegli un altro percorso.
+image=Immagine
+image-location=Posizione immagine
+import=Importa
+italic=Corsivo
+justified=Giustificato
+language.innerHTML=Lingua dell'interfaccia
+left=Destra
+link=Link
+list=Lista
+load-last-file.innerHTML=Carica l'ultimo file all'avvio
+load-unsuccessful=Caricamento senza successo. Dettagli dell'errore:
+menu=Menù
+needs-restart=Queste impostazioni saranno disponibili al riavvio di FireText. Riavvia ora?
+network-error=La tua connessione sembra non disponibile. Verifica la connessione e prova di nuovo.
+no=No
+no-dropbox-documents-found=Nessun documento trovato su Dropbox
+no-documents-found=Nessun documento trovato
+no-files-selected=Nessun file selezionato
+no-recent-documents=Nessun documento recente
+no-storage-method=Imposta uno spazio per modificare i file:
+not-functional-link=Questo link non funziona...
+not-signed-in=Non hai fatto il login
+number-of-columns.placeholder=Numero di colonne
+number-of-rows.placeholder=Numero di righe
+numbered-list=Lista numerata
+okay=Ok
+open=Apri
+other=Altro
+path-not-defined=Il percorso non è definito
+print=Stampa
+privacy=Privacy
+rate-firetext=Vota Firetext
+raw=Sorgente
+recent-documents=Documenti aperti recentemente
+recents-eliminated=La lista dei tuoi documenti recenti è stata eliminata con successo!
+right=Sinistra
+save=Salva
+save-as=Salva come
+save-changes-question=Vuoi salvare le tue modifiche?
+save-unsuccessful=Salvataggio senza successo: Dettagli dell'errore:
+select-all=Seleziona tutto
+select-language=Seleziona la tua lingua
+send-error-stats.innerHTML=Invia le statistiche d'errore
+settings=Impostazioni
+shared-sdcard=La scheda SD del tuo dispositivo è condivisa e questo non è disponibile. Prova a disattivare la l'impostazione della memoria USB.
+strikethrough=Sottolineato sopra
+successfully-saved=Salvato con successo
+table=Tabella
+the-web=Il web
+tools=Strumenti
+unable-to-get-sdcard=Non è stato possibile ottenere lo spazio libero dalla scheda SD:
+underline=Sottolineato
+unknown-error=Errore sconosciuto
+use-dropbox.innerHTML=Usa Dropbox
+valid-integer-value=Inserisci un valore valido (es. 2 o 5)
+visual=Visuale
+want-to-delete-singular=Vuoi cancellare questo file?
+want-to-delete-plural=Vuoi cancellare questi file?
+warning-unsupported-technology=Attenzione: il tuo browser non supporta alcune funzioni vitali della tecnologia di Firetext. Scarica Firefox da https://mozilla.org/firefox.
+yes=Sì
diff --git a/locales/locales.ini b/locales/locales.ini
index ed55dd9..e65203a 100644
--- a/locales/locales.ini
+++ b/locales/locales.ini
@@ -1,5 +1,8 @@
@import url(en-US/app.properties)
+[bg]
+@import url(bg/app.properties)
+
[bn-BD]
@import url(bn-BD/app.properties)
@@ -24,6 +27,9 @@
[he]
@import url(he/app.properties)
+[hu]
+@import url(hu/app.properties)
+
[id]
@import url(id/app.properties)
diff --git a/locales/nl/app.properties b/locales/nl/app.properties
index 3308b1d..b2d40b7 100644
--- a/locales/nl/app.properties
+++ b/locales/nl/app.properties
@@ -1,104 +1,109 @@
-about-firetext = Over Firetext
-alignment = Uitlijning
-allow-sdcard = Geef aub permissie aan Firetext om de SD kaart te gebruiken.
-always-off = Altijd uit
-always-on = Altijd aan
-auto = Automatisch
-bold = Dikgedrukt
-cancel = Annuleren
-center = Midden
-clear = Verwijderen
-clear-recents.innerHTML = Verwijder recent lijst
-click-compose-icon-to-create = Klik op het maak icoon om een nieuw document te maken.
-close-document = Sluit document
-cloud = Cloud
-contains-special-characters = Speciale tekens zijn niet toegestaan, gelieve dit te herzien.
-content-not-defined = De inhoud was niet gedefinieerd.
-could-not-initialize-filesystem = Fout: het bestandssysteem kon niet worden geïnitialiseerd
-create-document = Document aanmaken
-create = Aanmaken
-credits = Met dank aan
-delete-selected = Verwijder het geselecteerde
-delete-unsuccessful = Verwijderen van bestand mislukt\n\nFoutdetails:\n
-deselect-all = Alles deselecteren
-design = Ontwerp
-document-actions = Documentacties
-documents-device = Documenten op dit apparaat
-documents-dropbox = Documenten in uw Dropbox
-done = Gereed
-dropbox-full = Uw Dropbox is vol. Vernieuwen helpt niet.
-edit-docs = Documenten bewerken
-edit-with-zen-mode.innerHTML = Bewerken in de minimalistische modus
-editing = Bewerken
-elements = Elementen
-enable-autosave.innerHTML = Automatisch opslaan inschakelen
-enable-file-previews.innerHTML = Bestandsvoorvertoning inschakelen
-enable-night-mode.innerHTML = Nachtmodus inschakelen
-enter-name = Voer een naam in voor het nieuwe bestand
-file-creation-fail = Aanmaken van bestand mislukt\n\nFoutdetails:\n
-file-exists = Dit bestand bestaat al, kies alstublieft een andere naam
-firetext-support = Firetext-ondersteuning
-formatting = Opmaak
-help = Help
-horizontal-rule = Horizontale lijn
-insert = Invoegen
-insert-image = Afbeelding invoegen
-insert-link = Link invoegen
-insert-table = Tabel invoegen
-internal-storage = Interne opslag
-image = Afbeelding
-image-location = Afbeeldingslocatie
-invalid-location = Het bestand kon niet worden aangemaakt. Kies een geldige locatie.
-italic = Cursief
-justified = Uitvullen
-language.innerHTML = Interfacetaal
-left = Links
-link = Koppeling
-list = Lijst
-load-last-file.innerHTML = Laatste bestand laden bij het opstarten
-load-unsuccessful = Laden mislukt.\n\nFoutdetails:\n
-menu = Menu
-network-error = Uw netwerk lijkt niet beschikbaar te zijn.\n\nControleer uw verbinding en probeer het opnieuw.
-no = Nee
-no-dropbox-documents-found = Geen Dropbox-documenten gevonden
-no-documents-found = Geen documenten gevonden
-no-files-selected = Geen bestanden geselecteerd
-no-recent-documents = Geen recente bestanden
-no-storage-method = U hebt geen opslagmethode ingesteld
-not-signed-in = U bent niet ingelogd
-number-of-columns.placeholder = Aantal kolommen
-number-of-rows.placeholder = Aantal rijen
-numbered-list = Genummerde lijst
-okay = OK
-open-document = Document openen
-other = Andere
-path-not-defined = Het pad was niet ingesteld
-privacy = Privacy
-rate-firetext = Firetext beoordelen
-raw = Onbewerkt
-recent-documents = Recent geopende documenten
-recents-eliminated = Uw lijst met recent geopende documenten is gewist!
-right = Rechts
-save-changes-question = Wilt u uw wijzigingen opslaan=
-save-document = Document opslaan
-save-unsuccessful = Opslaan mislukt.\n\nFoutdetails:\n
-select-all = Alles selecteren
-select-language = Selecteer uw taal
-send-error-stats.innerHTML = Foutstatistieken verzenden
-settings = Instellingen
-shared-sdcard = De SD-kaart van uw apparaat is niet beschikbaar omdat deze gedeeld is. Probeer USB-opslag uit te schakelen in de instellingen.
-strikethrough = Doorhalen
-successfully-saved = Succesvol opgeslagen
-table = Tabel
-the-web = Het internet
-tools = Gereedschap
-unable-to-get-sdcard = Het is niet gelukt om door de SD-kaart gebruikte ruimte op te halen:
-underline = Onderstrepen
-unknown-error = Onbekende fout
-use-dropbox.innerHTML = Gebruik Dropbox
-valid-integer-value = Voer een geldige waarde in (bijv. 2 of 5)
-visual = Visueel
-want-to-delete-singular = Wilt u dit bestand verwijderen?
-want-to-delete-plural = Wilt u deze bestanden verwijderen?
-warning-unsupported-technology = Waarschuwing: Uw browser ondersteunt sommige door Firetext vereiste techniek niet. Download Firefox van https://mozilla.org/firefox
-yes = Ja
+about-firetext=Over Firetext
+alignment=Uitlijning
+allow-sdcard=Geef aub permissie aan Firetext om de SD kaart te gebruiken.
+always-off=Altijd uit
+always-on=Altijd aan
+auto=Automatisch
+automatic-printing-failed=Wij kunnen dit bestand niet automatisch afgedrukt. Selecteer 'Print' in in je browser als deze beschikbaar is.
+bold=Dikgedrukt
+cancel=Annuleren
+center=Midden
+clear=Verwijderen
+clear-recents.innerHTML=Verwijder recent lijst
+click-compose-icon-to-create=Klik op het maak icoon om een nieuw document te maken.
+close=Sluiten
+cloud=Cloud
+contains-special-characters=Speciale tekens zijn niet toegestaan, gelieve dit te herzien.
+content-not-defined=De inhoud was niet gedefinieerd.
+could-not-initialize-filesystem=Fout: het bestandssysteem kon niet worden geïnitialiseerd
+create=Aanmaken
+credits=Met dank aan
+delete-selected=Verwijder het geselecteerde
+delete-unsuccessful=Verwijderen van bestand mislukt. Foutdetails:
+deselect-all=Alles deselecteren
+design=Ontwerp
+documents=Documenten
+documents-device=Documenten op dit apparaat
+documents-dropbox=Documenten in uw Dropbox
+done=Gereed
+dropbox-full=Uw Dropbox is vol. Vernieuwen helpt niet.
+edit-docs=Documenten bewerken
+editing=Bewerken
+elements=Elementen
+enable-autosave.innerHTML=Automatisch opslaan inschakelen
+enable-file-previews.innerHTML=Bestandsvoorvertoning inschakelen
+enable-night-mode.innerHTML=Nachtmodus inschakelen
+enter-name=Voer een naam in voor het nieuwe bestand
+export=Export
+file-creation-fail=Aanmaken van bestand mislukt. Foutdetails:
+file-exists=Dit bestand bestaat al, kies alstublieft een andere naam
+firetext-support=Firetext-ondersteuning
+formatting=Opmaak
+help=Help
+horizontal-rule=Horizontale lijn
+insert=Invoegen
+insert-image=Afbeelding invoegen
+insert-link=Link invoegen
+insert-table=Tabel invoegen
+internal-storage=Interne opslag
+invalid-location=Het bestand kon niet worden aangemaakt. Kies een geldige locatie.
+image=Afbeelding
+image-location=Afbeeldingslocatie
+import=Importeren
+italic=Cursief
+justified=Uitvullen
+language.innerHTML=Interfacetaal
+left=Links
+link=Koppeling
+list=Lijst
+load-last-file.innerHTML=Laatste bestand laden bij het opstarten
+load-unsuccessful=Laden mislukt. Foutdetails:
+menu=Menu
+needs-restart=Deze instelling wordt toegepast nadat Firetext opnieuw opgestart. Nu opnieuw opstarten?
+network-error=Uw netwerk lijkt niet beschikbaar te zijn. Controleer uw verbinding en probeer het opnieuw.
+no=Nee
+no-dropbox-documents-found=Geen Dropbox-documenten gevonden
+no-documents-found=Geen documenten gevonden
+no-files-selected=Geen bestanden geselecteerd
+no-recent-documents=Geen recente bestanden
+no-storage-method=U hebt geen opslagmethode ingesteld:
+not-functional-link=Deze link is niet functioneel.
+not-signed-in=U bent niet ingelogd
+number-of-columns.placeholder=Aantal kolommen
+number-of-rows.placeholder=Aantal rijen
+numbered-list=Genummerde lijst
+okay=OK
+open=Open
+other=Andere
+path-not-defined=Het pad was niet ingesteld
+print=Afdruk
+privacy=Privacy
+rate-firetext=Firetext beoordelen
+raw=Onbewerkt
+recent-documents=Recent geopende documenten
+recents-eliminated=Uw lijst met recent geopende documenten is gewist!
+right=Rechts
+save=Opslaan
+save-as=Opslaan als
+save-changes-question=Wilt u uw wijzigingen opslaan?
+save-unsuccessful=Opslaan mislukt. Foutdetails:
+select-all=Alles selecteren
+select-language=Selecteer uw taal
+send-error-stats.innerHTML=Foutstatistieken verzenden
+settings=Instellingen
+shared-sdcard=De SD-kaart van uw apparaat is niet beschikbaar omdat deze gedeeld is. Probeer USB-opslag uit te schakelen in de instellingen.
+strikethrough=Doorhalen
+successfully-saved=Succesvol opgeslagen
+table=Tabel
+the-web=Het internet
+tools=Gereedschap
+unable-to-get-sdcard=Het is niet gelukt om door de SD-kaart gebruikte ruimte op te halen:
+underline=Onderstrepen
+unknown-error=Onbekende fout
+use-dropbox.innerHTML=Gebruik Dropbox
+valid-integer-value=Voer een geldige waarde in (bijv. 2 of 5)
+visual=Visueel
+want-to-delete-singular=Wilt u dit bestand verwijderen?
+want-to-delete-plural=Wilt u deze bestanden verwijderen?
+warning-unsupported-technology=Waarschuwing: Uw browser ondersteunt sommige door Firetext vereiste techniek niet. Download Firefox van https://mozilla.org/firefox
+yes=Ja
diff --git a/locales/pl/app.properties b/locales/pl/app.properties
index 09b87af..8ff6474 100644
--- a/locales/pl/app.properties
+++ b/locales/pl/app.properties
@@ -1,104 +1,109 @@
-about-firetext = Informacje o Firetext
-alignment = Wyrównanie
-allow-sdcard = Pozwól aplikacji Firetext na dostęp do Twojej karty SD.
-always-off = Zawsze wyłączone
-always-on = Zawsze włączone
-auto = Automat.
-bold = Pogrubienie
-cancel = Anuluj
-center = Środek
-clear = Wyczyść
-clear-recents.innerHTML = Wyczyść listę ostatnio używanych
-click-compose-icon-to-create = Aby utworzyć nowy dokument, kliknij ikonę redagowania.
-close-document = Zamknij dokument
-cloud = Chmura
-contains-special-characters = Znaki specjalne są niedozwolone. Popraw.
-content-not-defined = Zawartość nie została zdefiniowana
-could-not-initialize-filesystem = Błąd: nie można zainicjować systemu plików
-create-document = Utwórz dokument
-create = Utwórz
-credits = Twórcy aplikacji Firetext
-delete-selected = Usuń zaznaczone
-delete-unsuccessful = Usuwanie pliku nie powiodło się.\n\nSzczegóły błędu:
-deselect-all = Usuń zaznaczenie wszystkich
-design = Projekt
-document-actions = Akcje dot. dokumentu
-documents-device = Dokumenty na tym urządzeniu
-documents-dropbox = Dokumenty w Twojej skrzynce Dropbox
-done = Gotowe
-dropbox-full = Twoja skrzynka Dropbox jest pełna. Odświeżanie nie pomoże.
-edit-docs = Edytuj dokumenty
-edit-with-zen-mode.innerHTML = Edytuj za pomocą trybu zen
-editing = Edytowanie
-elements = Elementy
-enable-autosave.innerHTML = Włącz zapis automatyczny
-enable-file-previews.innerHTML = Włącz podgląd plików
-enable-night-mode.innerHTML = Włącz tryb nocny
-enter-name = Wprowadź nazwę dla nowego pliku.
-file-creation-fail = Utworzenie pliku nie powiodło się.\n\nSzczegóły błędu:
-file-exists = Ten plik już istnieje, wybierz inną nazwę.
-firetext-support = Pomoc techniczna dla Firetext
-formatting = Formatowanie
-help = Pomoc
-horizontal-rule = Linijka pozioma
-insert = Wstaw
-insert-image = Wstaw obraz
-insert-link = Wstaw łącze
-insert-table = Wstaw tabelę
-internal-storage = Wewnętrzna pamięć masowa
-image = Obraz
-image-location = Położenie obrazu
-invalid-location = Nie można utworzyć pliku. Wybierz poprawne położenie.
-italic = Kursywa
-justified = Wyjustowane
-language.innerHTML = Język interfejsu
-left = Z lewej
-link = Łącze
-list = Lista
-load-last-file.innerHTML = Wczytaj ostatni plik przy uruchamianiu
-load-unsuccessful = Wczytywanie nie powiodło się.\n\nSzczegóły błędu:
-menu = Menu
-network-error = Sieć jest prawdopodobnie niedostępna.\n\nSprawdź połączenie i spróbuj ponownie.
-no = Brak
-no-dropbox-documents-found = Nie znaleziono dokumentów w Dropbox
-no-documents-found = Nie znaleziono żadnych dokumentów
-no-files-selected = Nie wybrano żadnych plików
-no-recent-documents = Brak ostatnio używanych dokumentów
-no-storage-method = Nie skonfigurowano metody zapisu
-not-signed-in = Użytkownik niezalogowany
-number-of-columns.placeholder = Liczba kolumn
-number-of-rows.placeholder = Liczba wierszy
-numbered-list = Lista numerowana
-okay = W porządku
-open-document = Otwórz dokument
-other = Inne
-path-not-defined = Ścieżka nie została zdefiniowana
-privacy = Prywatność
-rate-firetext = Oceń Firetext
-raw = Nieprzetworzone
-recent-documents = Ostatnio otwarte dokumenty
-recents-eliminated = Lista Twoich ostatnio używanych dokumentów została pomyślnie usunięta!
-right = Z prawej
-save-changes-question = Czy chcesz zapisać zmiany?
-save-document = Zapisz dokument
-save-unsuccessful = Zapis nie powiódł się.\n\nSzczegóły błędu:
-select-all = Zaznacz wszystko
-select-language = Wybierz język
-send-error-stats.innerHTML = Statystyki błędu wysyłania
-settings = Ustawienia
-shared-sdcard = Karta SD w Twoim urządzeniu jest współużytkowana i dlatego jest niedostępna. Spróbuj wyłączyć w ustawieniach pamięć masową USB.
-strikethrough = Przekreślenie
-successfully-saved = Pomyślnie zapisano
-table = Tabela
-the-web = Sieć
-tools = Narzędzia
-unable-to-get-sdcard = Nie można odzyskać miejsca zajętego na karcie SD:
-underline = Podkreślenie
-unknown-error = Nieznany błąd
-use-dropbox.innerHTML = Użyj usługi Dropbox
-valid-integer-value = Wprowadź poprawną wartość (np. 2 lub 5)
-visual = Wizualne
-want-to-delete-singular = Czy chcesz usunąć ten plik?
-want-to-delete-plural = Czy chcesz usunąć te pliki?
-warning-unsupported-technology = Ostrzeżenie: Twoja przeglądarka nie obsługuje niektórych istotnych technologii aplikacji Firetext. Pobierz przeglądarkę Firefox ze strony https://mozilla.org/firefox.
-yes = Tak
+about-firetext=Informacje o Firetext
+alignment=Wyrównanie
+allow-sdcard=Pozwól aplikacji Firetext na dostęp do Twojej karty SD.
+always-off=Zawsze wyłączone
+always-on=Zawsze włączone
+auto=Automat.
+automatic-printing-failed=Nie można automatycznie wydrukować ten plik. Proszę wybrać opcję "Drukuj" z wnętrza swojej przeglądarce, jeśli jest on dostępny.
+bold=Pogrubienie
+cancel=Anuluj
+center=Środek
+clear=Wyczyść
+clear-recents.innerHTML=Wyczyść listę ostatnio używanych
+click-compose-icon-to-create=Aby utworzyć nowy dokument, kliknij ikonę redagowania.
+close=Zamknij
+cloud=Chmura
+contains-special-characters=Znaki specjalne są niedozwolone. Popraw.
+content-not-defined=Zawartość nie została zdefiniowana
+could-not-initialize-filesystem=Błąd: nie można zainicjować systemu plików
+create=Utwórz
+credits=Twórcy aplikacji Firetext
+delete-selected=Usuń zaznaczone
+delete-unsuccessful=Usuwanie pliku nie powiodło się. Szczegóły błędu:
+deselect-all=Usuń zaznaczenie wszystkich
+design=Projekt
+documents=Dokumenty
+documents-device=Dokumenty na tym urządzeniu
+documents-dropbox=Dokumenty w Twojej skrzynce Dropbox
+done=Gotowe
+dropbox-full=Twoja skrzynka Dropbox jest pełna. Odświeżanie nie pomoże.
+edit-docs=Edytuj dokumenty
+editing=Edytowanie
+elements=Elementy
+enable-autosave.innerHTML=Włącz zapis automatyczny
+enable-file-previews.innerHTML=Włącz podgląd plików
+enable-night-mode.innerHTML=Włącz tryb nocny
+enter-name=Wprowadź nazwę dla nowego pliku.
+export=Eksport
+file-creation-fail=Utworzenie pliku nie powiodło się. Szczegóły błędu:
+file-exists=Ten plik już istnieje, wybierz inną nazwę.
+firetext-support=Pomoc techniczna dla Firetext
+formatting=Formatowanie
+help=Pomoc
+horizontal-rule=Linijka pozioma
+insert=Wstaw
+insert-image=Wstaw obraz
+insert-link=Wstaw łącze
+insert-table=Wstaw tabelę
+internal-storage=Wewnętrzna pamięć masowa
+invalid-location=Nie można utworzyć pliku. Wybierz poprawne położenie.
+image=Obraz
+image-location=Położenie obrazu
+import=Importuj
+italic=Kursywa
+justified=Wyjustowane
+language.innerHTML=Język interfejsu
+left=Z lewej
+link=Łącze
+list=Lista
+load-last-file.innerHTML=Wczytaj ostatni plik przy uruchamianiu
+load-unsuccessful=Wczytywanie nie powiodło się. Szczegóły błędu:
+menu=Menu
+needs-restart=To ustawienie zostanie zastosowane po ponownym uruchomieniu Firetext. Uruchom ponownie teraz?
+network-error=Sieć jest prawdopodobnie niedostępna. Sprawdź połączenie i spróbuj ponownie.
+no=Brak
+no-dropbox-documents-found=Nie znaleziono dokumentów w Dropbox
+no-documents-found=Nie znaleziono żadnych dokumentów
+no-files-selected=Nie wybrano żadnych plików
+no-recent-documents=Brak ostatnio używanych dokumentów
+no-storage-method=Nie skonfigurowano metody zapisu:
+not-functional-link=Ten link nie jest funkcjonalny...
+not-signed-in=Użytkownik niezalogowany
+number-of-columns.placeholder=Liczba kolumn
+number-of-rows.placeholder=Liczba wierszy
+numbered-list=Lista numerowana
+okay=W porządku
+open=Otwórz
+other=Inne
+path-not-defined=Ścieżka nie została zdefiniowana
+print=Drukować
+privacy=Prywatność
+rate-firetext=Oceń Firetext
+raw=Nieprzetworzone
+recent-documents=Ostatnio otwarte dokumenty
+recents-eliminated=Lista Twoich ostatnio używanych dokumentów została pomyślnie usunięta!
+right=Z prawej
+save=Zapisz
+save-as=Zapisz jako
+save-changes-question=Czy chcesz zapisać zmiany?
+save-unsuccessful=Zapis nie powiódł się. Szczegóły błędu:
+select-all=Zaznacz wszystko
+select-language=Wybierz język
+send-error-stats.innerHTML=Statystyki błędu wysyłania
+settings=Ustawienia
+shared-sdcard=Karta SD w Twoim urządzeniu jest współużytkowana i dlatego jest niedostępna. Spróbuj wyłączyć w ustawieniach pamięć masową USB.
+strikethrough=Przekreślenie
+successfully-saved=Pomyślnie zapisano
+table=Tabela
+the-web=Sieć
+tools=Narzędzia
+unable-to-get-sdcard=Nie można odzyskać miejsca zajętego na karcie SD:
+underline=Podkreślenie
+unknown-error=Nieznany błąd
+use-dropbox.innerHTML=Użyj usługi Dropbox
+valid-integer-value=Wprowadź poprawną wartość (np. 2 lub 5)
+visual=Wizualne
+want-to-delete-singular=Czy chcesz usunąć ten plik?
+want-to-delete-plural=Czy chcesz usunąć te pliki?
+warning-unsupported-technology=Ostrzeżenie: Twoja przeglądarka nie obsługuje niektórych istotnych technologii aplikacji Firetext. Pobierz przeglądarkę Firefox ze strony https://mozilla.org/firefox.
+yes=Tak
diff --git a/locales/pt-BR/app.properties b/locales/pt-BR/app.properties
index 8dfdd96..ae811e0 100644
--- a/locales/pt-BR/app.properties
+++ b/locales/pt-BR/app.properties
@@ -1,104 +1,109 @@
-about-firetext = Sobre o Firetext
-alignment = Alinhamento
-allow-sdcard = Por favor, permita que o Firetext acesse seu cartão SD.
-always-off = Sempre desligado
-always-on = Sempre ligado
-auto = Auto
-bold = Negrito
-cancel = Cancelar
-center = Centralizar
-clear = Limpar
-clear-recents.innerHTML = Limpar lista de recentes
-click-compose-icon-to-create = Clique no ícone Compor para criar um novo documento.
-close-document = Fechar documento
-cloud = Nuvem
-contains-special-characters = Caracteres especiais não são possíveis. Por favor, corrija.
-content-not-defined = O conteúdo não foi definido
-could-not-initialize-filesystem = Erro: não foi possível inicializar o sistema de arquivos
-create-document = Criar documento
-create = Criar
-credits = Créditos do Firetext
-delete-selected = Apagar selecionado
-delete-unsuccessful = Exclusão do arquivo malsucedida.\n\nDetalhes do erro:
-deselect-all = Desmarcar tudo
-design = Design
-document-actions = Ações do documento
-documents-device = Documentos neste Dispositivo
-documents-dropbox = Documentos em seu Dropbox
-done = Feito
-dropbox-full = O seu Dropbox está cheio. Atualizar a página não irá ajudar.
-edit-docs = Editar documentos
-edit-with-zen-mode.innerHTML = Edite com o modo zen
-editing = Edição
-elements = Elementos
-enable-autosave.innerHTML = Habilitar salvamento automático
-enable-file-previews.innerHTML = Habilitar pré-visualização do arquivo
-enable-night-mode.innerHTML = Habilitar modo noturno
-enter-name = Por favor, digite um nome para o novo arquivo.
-file-creation-fail = Criação de arquivo malsucedida.\n\nDetalhes do erro:\n
-file-exists = Este arquivo já existe, por favor, escolha outro nome
-firetext-support = Suporte ao Firetext
-formatting = Formatação
-help = Ajuda
-horizontal-rule = Régua horizontal
-insert = Inserir
-insert-image = Inserir imagem
-insert-link = Inserir link
-insert-table = Inserir tabela
-internal-storage = Memória Interna
-image = Imagem
-image-location = Localização da imagem
-invalid-location = Não foi possível criar o arquivo. Por favor, escolha um local válido
-italic = Itálico
-justified = Justificado
-language.innerHTML = Idioma da interface
-left = Alinhar à esquerda
-link = Link
-list = Lista
-load-last-file.innerHTML = Carregar último arquivo na inicialização
-load-unsuccessful = Carregamento malsucedido.\n\nDetalhes do erro:
-menu = Menu
-network-error = Sua rede aparenta estar indisponível.\n\nPor favor, verifique sua conexão e tente novamente.
-no = Não
-no-dropbox-documents-found = Nenhum documento do Dropbox encontrado
-no-documents-found = Nenhum documento encontrado
-no-files-selected = Nenhum arquivo selecionado
-no-recent-documents = Nenhum documento recente
-no-storage-method = Você não configurou o método de armazenamento
-not-signed-in = Você não está conectado
-number-of-columns.placeholder = Número de colunas
-number-of-rows.placeholder = Número de linhas
-numbered-list = Lista numerada
-okay = Certo
-open-document = Abrir documento
-other = Outro
-path-not-defined = O destino não foi definido
-privacy = Privacidade
-rate-firetext = Avaliar o Firetext
-raw = Raw
-recent-documents = Documentos abertos recentemente
-recents-eliminated = Sua lista de documentos recentes foi eliminada com sucesso!
-right = Alinhar à direita
-save-changes-question = Você gostaria de salvar suas modificações?
-save-document = Salvar documento
-save-unsuccessful = Salvamento malsucedido.\n\nDetalhes do erro:
-select-all = Selecionar tudo
-select-language = Selecione o seu idioma
-send-error-stats.innerHTML = Estatísticas do envio de relatório de erro
-settings = Configurações
-shared-sdcard = O cartão SD em seu dispositivo está no modo Compartilhar Mídia e por isso não está disponível. Tente desativar o Modo de Compartilhamento em Massa USB em suas configurações.
-strikethrough = Riscado
-successfully-saved = Salvo com sucesso
-table = Tabela
-the-web = A web
-tools = Ferramentas
-unable-to-get-sdcard = Incapaz de acessar o espaço utilizado pelo cartão SD:
-underline = Sublinhar
-unknown-error = Erro desconhecido
-use-dropbox.innerHTML = Usar Dropbox
-valid-integer-value = Por favor, insira um valor válido (p.ex. 2 ou 5)
-visual = Visual
-want-to-delete-singular = Você quer apagar este arquivo?
-want-to-delete-plural = Você quer deletar estes arquivos?
-warning-unsupported-technology = Atenção: O seu navegador não tem suporte à imprescindível tecnologia Firetext. Por favor, faça o download do navegador Firefox em https://mozilla.org/firefox.
-yes = Sim
+about-firetext=Sobre o Firetext
+alignment=Alinhamento
+allow-sdcard=Por favor, permita que o Firetext acesse seu cartão SD.
+always-off=Sempre desligado
+always-on=Sempre ligado
+auto=Auto
+automatic-printing-failed=Não podemos imprimir esse arquivo automaticamente. Por favor, selecione "Imprimir" a partir de dentro do seu navegador se ele estiver disponível.
+bold=Negrito
+cancel=Cancelar
+center=Centralizar
+clear=Limpar
+clear-recents.innerHTML=Limpar lista de recentes
+click-compose-icon-to-create=Clique no ícone Compor para criar um novo documento.
+close=Fechado
+cloud=Nuvem
+contains-special-characters=Caracteres especiais não são possíveis. Por favor, corrija.
+content-not-defined=O conteúdo não foi definido
+could-not-initialize-filesystem=Erro: não foi possível inicializar o sistema de arquivos
+create=Criar
+credits=Créditos do Firetext
+delete-selected=Apagar selecionado
+delete-unsuccessful=Exclusão do arquivo malsucedida. Detalhes do erro:
+deselect-all=Desmarcar tudo
+design=Design
+documents=Documentos
+documents-device=Documentos neste Dispositivo
+documents-dropbox=Documentos em seu Dropbox
+done=Feito
+dropbox-full=O seu Dropbox está cheio. Atualizar a página não irá ajudar.
+edit-docs=Editar documentos
+editing=Edição
+elements=Elementos
+enable-autosave.innerHTML=Habilitar salvamento automático
+enable-file-previews.innerHTML=Habilitar pré-visualização do arquivo
+enable-night-mode.innerHTML=Habilitar modo noturno
+enter-name=Por favor, digite um nome para o novo arquivo.
+export=Baixar
+file-creation-fail=Criação de arquivo malsucedida. Detalhes do erro:
+file-exists=Este arquivo já existe, por favor, escolha outro nome
+firetext-support=Suporte ao Firetext
+formatting=Formatação
+help=Ajuda
+horizontal-rule=Régua horizontal
+insert=Inserir
+insert-image=Inserir imagem
+insert-link=Inserir link
+insert-table=Inserir tabela
+internal-storage=Memória Interna
+invalid-location=Não foi possível criar o arquivo. Por favor, escolha um local válido.
+image=Imagem
+image-location=Localização da imagem
+import=Importar
+italic=Itálico
+justified=Justificado
+language.innerHTML=Idioma da interface
+left=Alinhar à esquerda
+link=Link
+list=Lista
+load-last-file.innerHTML=Carregar último arquivo na inicialização
+load-unsuccessful=Carregamento malsucedido. Detalhes do erro:
+menu=Menu
+needs-restart=Esta definição será aplicada após Firetext reiniciado. Reiniciar agora?
+network-error=Sua rede aparenta estar indisponível. Por favor, verifique sua conexão e tente novamente.
+no=Não
+no-dropbox-documents-found=Nenhum documento do Dropbox encontrado
+no-documents-found=Nenhum documento encontrado
+no-files-selected=Nenhum arquivo selecionado
+no-recent-documents=Nenhum documento recente
+no-storage-method=Você não configurou o método de armazenamento:
+not-functional-link=Este link não está funcionando ...
+not-signed-in=Você não está conectado
+number-of-columns.placeholder=Número de colunas
+number-of-rows.placeholder=Número de linhas
+numbered-list=Lista numerada
+okay=Certo
+open=Aberto
+other=Outro
+path-not-defined=O destino não foi definido
+print=Imprimir
+privacy=Privacidade
+rate-firetext=Avaliar o Firetext
+raw=Raw
+recent-documents=Documentos abertos recentemente
+recents-eliminated=Sua lista de documentos recentes foi eliminada com sucesso!
+right=Alinhar à direita
+save=Salvar
+save-as=Salvar como
+save-changes-question=Você gostaria de salvar suas modificações?
+save-unsuccessful=Salvamento malsucedido. Detalhes do erro:
+select-all=Selecionar tudo
+select-language=Selecione o seu idioma
+send-error-stats.innerHTML=Estatísticas do envio de relatório de erro
+settings=Configurações
+shared-sdcard=O cartão SD em seu dispositivo está no modo Compartilhar Mídia e por isso não está disponível. Tente desativar o Modo de Compartilhamento em Massa USB em suas configurações.
+strikethrough=Riscado
+successfully-saved=Salvo com sucesso
+table=Tabela
+the-web=A web
+tools=Ferramentas
+unable-to-get-sdcard=Incapaz de acessar o espaço utilizado pelo cartão SD:
+underline=Sublinhar
+unknown-error=Erro desconhecido
+use-dropbox.innerHTML=Usar Dropbox
+valid-integer-value=Por favor, insira um valor válido (p.ex. 2 ou 5)
+visual=Visual
+want-to-delete-singular=Você quer apagar este arquivo?
+want-to-delete-plural=Você quer deletar estes arquivos?
+warning-unsupported-technology=Atenção: O seu navegador não tem suporte à imprescindível tecnologia Firetext. Por favor, faça o download do navegador Firefox em https://mozilla.org/firefox.
+yes=Sim
diff --git a/locales/ro/app.properties b/locales/ro/app.properties
index 0b46c98..3f508fa 100644
--- a/locales/ro/app.properties
+++ b/locales/ro/app.properties
@@ -1,104 +1,109 @@
-about-firetext = Despre Firetext
-alignment = Aliniere
-allow-sdcard = Te rugăm să permiți aplicației Firetext să-ți acceseze cardul SD.
-always-off = Mereu dezactivat
-always-on = Mereu activat
-auto = Automat
-bold = Aldin
-cancel = Renunță
-center = Centru
-clear = Curăță
-clear-recents.innerHTML = Curăță lista recentă
-click-compose-icon-to-create = Clic pe iconița de compunere pentru a crea un document nou.
-close-document = Închide documentul
-cloud = Cloud
-contains-special-characters = Caracterele speciale nu sunt permise. Te rugăm să corectezi.
-content-not-defined = Conținutul nu a fost definit
-could-not-initialize-filesystem = Eroare: nu se poate inițializa sistemul de fişiere
-create-document = Creează document
-create = Creează
-credits = Meritele pt. Firetext
-delete-selected = Șterge selecția
-delete-unsuccessful = Nu s-a reușit ștergerea fișierului.\n\nDetalii despre eroare:\n
-deselect-all = Deselectează tot
-design = Proiectare
-document-actions = Acțiuni pt. document
-documents-device = Documente pe dispozitiv
-documents-dropbox = Documente pe Dropbox-ul tău
-done = Gata
-dropbox-full = Dropbox-ul tău este plin. Reîmprospătarea nu va ajuta.
-edit-docs = Editează documente
-edit-with-zen-mode.innerHTML = Editează cu modul zen
-editing = Editare
-elements = Elemente
-enable-autosave.innerHTML = Activează autosalvarea
-enable-file-previews.innerHTML = Activează previzionări pt. fișiere
-enable-night-mode.innerHTML = Activează modul nocturn
-enter-name = Te rugăm să introduci un nume pentru fișierul nou.
-file-creation-fail = Nu s-a reușit crearea fişierului.\n\nDetalii despre eroare:\n
-file-exists = Acest fișier există deja, te rugăm să selectezi alt nume.
-firetext-support = Asistență Firetext
-formatting = Formatare
-help = Ajutor
-horizontal-rule = Riglă orizontală
-insert = Inserează
-insert-image = Inserează imagine
-insert-link = Inserează link
-insert-table = Inserează tabel
-internal-storage = Stocare internă
-image = Imagine
-image-location = Locația imaginii
-invalid-location = Nu se poate crea fișierul. Te rugăm să alegi o locație validă.
-italic = Cursiv
-justified = Aliniat
-language.innerHTML = Limba pt. interfață
-left = Stânga
-link = Link
-list = Listă
-load-last-file.innerHTML = Încarcă ultimul fișier la pornire
-load-unsuccessful = Nu s-a reuşit încărcarea.\n\nDetalii despre eroare:\n
-menu = Meniu
-network-error = Conexiunea pare să nu fie disponibilă.\n\nTe rugăm să verifici conexiunea și să încerci din nou.
-no = Nu
-no-dropbox-documents-found = Niciun document găsit pe Dropbox
-no-documents-found = Niciun document găsit
-no-files-selected = Niciun fișier selectat
-no-recent-documents = Niciun document recent
-no-storage-method = Nu ai configurat nicio metodă de stocare
-not-signed-in = Nu ești autentificat
-number-of-columns.placeholder = Număr de coloane
-number-of-rows.placeholder = Număr de rânduri
-numbered-list = Listă numerotată
-okay = Ok
-open-document = Deschide documentul
-other = Altul
-path-not-defined = Calea nu a fost definită
-privacy = Confidențialitate
-rate-firetext = Evaluează Firetext
-raw = Raw
-recent-documents = Documente deschise recent
-recents-eliminated = Lista documentelor recente a fost eliminată cu succes!
-right = Dreapta
-save-changes-question = Dorești să salvezi modificările?
-save-document = Salvează documentul
-save-unsuccessful = Nu s-a reușit salvarea.\n\nDetalii despre eroare:\n
-select-all = Selectează tot
-select-language = Selectează limba
-send-error-stats.innerHTML = Trimite statistici ale erorilor
-settings = Setări
-shared-sdcard = Cardul SD de pe dispozitiv este partajat și, prin urmare, indisponibil. Încearcă să dezactivezi stocarea în masă USB din Setări.
-strikethrough = Tăiere text cu o linie
-successfully-saved = Salvat cu succes
-table = Tabel
-the-web = Web
-tools = Unelte
-unable-to-get-sdcard = Nu se poate obține spațiul folosit de către cardul SD:
-underline = Subliniere
-unknown-error = Eroare necunoscută
-use-dropbox.innerHTML = Folosește Dropbox
-valid-integer-value = Te rugăm să introduci o valoare validă (ex: 2 sau 5)
-visual = Vizual
-want-to-delete-singular = Dorești să ștergi acest fișier?
-want-to-delete-plural = Dorești să ștergi aceste fișiere?
-warning-unsupported-technology = Avertisment: Navigatorul tău nu suportă unele tehnologii vitale Firetext. Te rugăm să descarci Firefox de pe https://mozilla.org/firefox.
-yes = Da
+about-firetext=Despre Firetext
+alignment=Aliniere
+allow-sdcard=Te rugăm să permiți aplicației Firetext să-ți acceseze cardul SD.
+always-off=Mereu dezactivat
+always-on=Mereu activat
+auto=Automat
+automatic-printing-failed=Nu putem tipări acest fișier automat. Te rugăm să selectezi 'Tipărește' din browser dacă este disponibil.
+bold=Aldin
+cancel=Renunță
+center=Centru
+clear=Curăță
+clear-recents.innerHTML=Curăță lista recentă
+click-compose-icon-to-create=Clic pe iconița de compunere pentru a crea un document nou.
+close=Închide
+cloud=Cloud
+contains-special-characters=Caracterele speciale nu sunt permise. Te rugăm să corectezi.
+content-not-defined=Conținutul nu a fost definit
+could-not-initialize-filesystem=Eroare: nu se poate inițializa sistemul de fişiere
+create=Creează
+credits=Meritele pt. Firetext
+delete-selected=Șterge selecția
+delete-unsuccessful=Ștergerea fișierului fără succes. Detaliile erorii:
+deselect-all=Deselectează tot
+design=Proiectare
+documents=Documente
+documents-device=Documente pe dispozitiv
+documents-dropbox=Documente pe Dropbox-ul tău
+done=Gata
+dropbox-full=Dropbox-ul tău este plin. Reîmprospătarea nu va ajuta.
+edit-docs=Editează documente
+editing=Editare
+elements=Elemente
+enable-autosave.innerHTML=Activează autosalvarea
+enable-file-previews.innerHTML=Activează previzionări pt. fișiere
+enable-night-mode.innerHTML=Activează modul nocturn
+enter-name=Te rugăm să introduci un nume pentru fișierul nou.
+export=Exportă
+file-creation-fail=Crearea fișierului fără succes. Detaliile erorii:
+file-exists=Acest fișier există deja, te rugăm să selectezi alt nume.
+firetext-support=Asistență Firetext
+formatting=Formatare
+help=Ajutor
+horizontal-rule=Riglă orizontală
+insert=Inserează
+insert-image=Inserează imagine
+insert-link=Inserează link
+insert-table=Inserează tabel
+internal-storage=Stocare internă
+invalid-location=Nu se poate crea fişierul. Te rugăm să alegi o locaţie validă.
+image=Imagine
+image-location=Locația imaginii
+import=Importă
+italic=Cursiv
+justified=Aliniat
+language.innerHTML=Limba pt. interfață
+left=Stânga
+link=Link
+list=Listă
+load-last-file.innerHTML=Încarcă ultimul fișier la pornire
+load-unsuccessful=Încărcare fără succes. Detaliile erorii:
+menu=Meniu
+needs-restart=Această setare va fi aplicată după ce Firetext repornește. Repornești acum?
+network-error=Conexiunea pare să nu fie disponibilă. Te rugăm să verifici conexiunea și să încerci din nou.
+no=Nu
+no-dropbox-documents-found=Niciun document găsit pe Dropbox
+no-documents-found=Niciun document găsit
+no-files-selected=Niciun fișier selectat
+no-recent-documents=Niciun document recent
+no-storage-method=Te rugăm să configurezi un sistem de stocare pentru a modifica fișierele:
+not-functional-link=Linkul nu este funcțional...
+not-signed-in=Nu ești autentificat
+number-of-columns.placeholder=Număr de coloane
+number-of-rows.placeholder=Număr de rânduri
+numbered-list=Listă numerotată
+okay=Ok
+open=Deschide
+other=Altul
+path-not-defined=Calea nu a fost definită
+print=Tipărește
+privacy=Confidențialitate
+rate-firetext=Evaluează Firetext
+raw=Raw
+recent-documents=Documente deschise recent
+recents-eliminated=Lista documentelor recente a fost eliminată cu succes!
+right=Dreapta
+save=Salvează
+save-as=Salvează ca
+save-changes-question=Dorești să salvezi modificările?
+save-unsuccessful=Salvare fără succes. Detaliile erorii:
+select-all=Selectează tot
+select-language=Selectează limba
+send-error-stats.innerHTML=Trimite statistici ale erorilor
+settings=Setări
+shared-sdcard=Cardul SD de pe dispozitiv este partajat și, prin urmare, indisponibil. Încearcă să dezactivezi stocarea în masă USB din Setări.
+strikethrough=Tăiere text cu o linie
+successfully-saved=Salvat cu succes
+table=Tabel
+the-web=Web
+tools=Unelte
+unable-to-get-sdcard=Nu se poate obține spațiul folosit de către cardul SD:
+underline=Subliniere
+unknown-error=Eroare necunoscută
+use-dropbox.innerHTML=Folosește Dropbox
+valid-integer-value=Te rugăm să introduci o valoare validă (ex: 2 sau 5)
+visual=Vizual
+want-to-delete-singular=Dorești să ștergi acest fișier?
+want-to-delete-plural=Dorești să ștergi aceste fișiere?
+warning-unsupported-technology=Avertisment: Navigatorul tău nu suportă unele tehnologii vitale Firetext. Te rugăm să descarci Firefox de pe https://mozilla.org/firefox.
+yes=Da
diff --git a/locales/ru/app.properties b/locales/ru/app.properties
index 1ae011c..5c7ded5 100644
--- a/locales/ru/app.properties
+++ b/locales/ru/app.properties
@@ -1,104 +1,109 @@
-about-firetext = О Firetext
-alignment = Выравнивание
-allow-sdcard = Пожалуйста, предоставьте Firetext доступ к SD карточке.
-always-off = Всегда отключен
-always-on = Всегда включен
-auto = Автоматически
-bold = Жирный
-cancel = Отмена
-center = Центр
-clear = Очистить
-clear-recents.innerHTML = Очистить список свежих
-click-compose-icon-to-create = Для создания нового документа нажмите кнопку «Создать».
-close-document = Закрыть документ
-cloud = Облако
-contains-special-characters = Нельзя пользоваться спецсимволами. Пожалуйста, поправьте.
-content-not-defined = Содержимое не определено
-could-not-initialize-filesystem = Ошибка: не могу инициировать файловую систему
-create-document = Создать документ
-create = Создать
-credits = Firetext кредитов
-delete-selected = Удалить выбранные
-delete-unsuccessful = Удаление файла не удалось.\n\nОшибка:\n
-deselect-all = Снять выделение со всех
-design = Дизайн
-document-actions = Действия о документе
-documents-device = Документы на этом устройстве
-documents-dropbox = Документы на Dropbox
-done = Готово
-dropbox-full = У Вас переполнилась Dropbox. Обновление не поможет.
-edit-docs = Редактировать документы
-edit-with-zen-mode.innerHTML = Редактировать в режиме zen
-editing = Редактирование
-elements = Элементы
-enable-autosave.innerHTML = Включить автосохранение
-enable-file-previews.innerHTML = Включить превьюшки файлов
-enable-night-mode.innerHTML = Включить ночной режим
-enter-name = Пожалуйста, введите наименование нового файла.
-file-creation-fail = Создание файла не удалось.\n\nОшибка:\n
-file-exists = Файл уже существует. Пожалуйста, введите другое имя.
-firetext-support = Поддержва Firetext
-formatting = Форматирование
-help = Справка
-horizontal-rule = Горизонтальная линия
-insert = Вставить
-insert-image = Вставить картинку
-insert-link = Вставить ссылку
-insert-table = Вставить таблицу
-internal-storage = Встроенная память
-image = Картинка
-image-location = Путь к картинке
-invalid-location = Не могу создать файл. Пожалуйста, выберите правильный путь.
-italic = Курсив
-justified = Выравнивание по обоим краям
-language.innerHTML = Язык интерфейса
-left = Выравнивание по левому краю
-link = Ссылка
-list = Список
-load-last-file.innerHTML = Загружать последний файл на запуске
-load-unsuccessful = Загрузка не удалась.\n\nОшибка:\n
-menu = Меню
-network-error = Сеть недоступна.\n\nПроверьте связь и попробуйте ещё раз.
-no = Нет
-no-dropbox-documents-found = Не найдено документов в Dropbox
-no-documents-found = Документов не найдено
-no-files-selected = Файлы не выбраны
-no-recent-documents = Нет свежих документов
-no-storage-method = Вы не указали способ хранения
-not-signed-in = Вы не представились
-number-of-columns.placeholder = Количество столбцов
-number-of-rows.placeholder = Количество рядов
-numbered-list = Нумерованный список
-okay = ОК
-open-document = Открыть документ
-other = Другие
-path-not-defined = Путь не указан
-privacy = Приватность
-rate-firetext = Оцените Firetext
-raw = Сырой
-recent-documents = Свежие документы
-recents-eliminated = Ваш список свежих документов очищен!
-right = Выравнивание по правому краю
-save-changes-question = Сохранить изменения?
-save-document = Сохранить документ
-save-unsuccessful = Сохранить не удалось.\n\nОшибка:\n
-select-all = Выделить все
-select-language = Выберите язык
-send-error-stats.innerHTML = Отправить статистику ошибок
-settings = Параметры
-shared-sdcard = SD-карточка занята, не могу пользоваться! Попробуйте отключить USB-накопитель в приложении Параметры.
-strikethrough = Вычёркивание
-successfully-saved = Успешно сохранил
-table = Таблица
-the-web = Интернет
-tools = Инструменты
-unable-to-get-sdcard = Не могу оценить занятое место на SD-карточке
-underline = Подчёркивание
-unknown-error = Неизвестная ошибка
-use-dropbox.innerHTML = Пользоваться Dropbox
-valid-integer-value = Введите осмысленное значение (например, 2 или 5)
-visual = Графический
-want-to-delete-singular = Удалить файл?
-want-to-delete-plural = Удалить эти файлы?
-warning-unsupported-technology = Внимание: Ваш браузер не поддерживает существенные требуемые Firetext свойства. Пожалуйста, скачайте Firefox на https://mozilla.org/firefox.
-yes = Да
+about-firetext=О Firetext
+alignment=Выравнивание
+allow-sdcard=Пожалуйста, предоставьте Firetext доступ к SD карточке.
+always-off=Всегда отключен
+always-on=Всегда включен
+auto=Автоматически
+automatic-printing-failed=Мы не можем напечатать этот файл автоматически. Пожалуйста, выберите "Печать" изнутри вашем браузере, если это возможно.
+bold=Жирный
+cancel=Отмена
+center=Центр
+clear=Очистить
+clear-recents.innerHTML=Очистить список свежих
+click-compose-icon-to-create=Для создания нового документа нажмите кнопку «Создать».
+close=закрыть
+cloud=Облако
+contains-special-characters=Нельзя пользоваться спецсимволами. Пожалуйста, поправьте.
+content-not-defined=Содержимое не определено
+could-not-initialize-filesystem=Ошибка: не могу инициировать файловую систему
+create=Создать
+credits=Firetext кредитов
+delete-selected=Удалить выбранные
+delete-unsuccessful=Удаление файла не удалось. Ошибка:
+deselect-all=Снять выделение со всех
+design=Дизайн
+documents=документы
+documents-device=Документы на этом устройстве
+documents-dropbox=Документы на Dropbox
+done=Готово
+dropbox-full=У Вас переполнилась Dropbox. Обновление не поможет.
+edit-docs=Редактировать документы
+editing=Редактирование
+elements=Элементы
+enable-autosave.innerHTML=Включить автосохранение
+enable-file-previews.innerHTML=Включить превьюшки файлов
+enable-night-mode.innerHTML=Включить ночной режим
+enter-name=Пожалуйста, введите наименование нового файла.
+export=скачать
+file-creation-fail=Создание файла не удалось. Ошибка:
+file-exists=Файл уже существует. Пожалуйста, введите другое имя.
+firetext-support=Поддержва Firetext
+formatting=Форматирование
+help=Справка
+horizontal-rule=Горизонтальная линия
+insert=Вставить
+insert-image=Вставить картинку
+insert-link=Вставить ссылку
+insert-table=Вставить таблицу
+internal-storage=Встроенная память
+invalid-location=Не могу создать файл. Пожалуйста, выберите правильный путь.
+image=Картинка
+image-location=Путь к картинке
+import=ввозить
+italic=Курсив
+justified=Выравнивание по обоим краям
+language.innerHTML=Язык интерфейса
+left=Выравнивание по левому краю
+link=Ссылка
+list=Список
+load-last-file.innerHTML=Загружать последний файл на запуске
+load-unsuccessful=Загрузка не удалась. Ошибка:
+menu=Меню
+needs-restart=Эта установка будет применяться после Firetext перезагрузки. Перезагрузить сейчас?
+network-error=Сеть недоступна. Проверьте связь и попробуйте ещё раз.
+no=Нет
+no-dropbox-documents-found=Не найдено документов в Dropbox
+no-documents-found=Документов не найдено
+no-files-selected=Файлы не выбраны
+no-recent-documents=Нет свежих документов
+no-storage-method=Вы не указали способ хранения:
+not-functional-link=Эта ссылка не работает.
+not-signed-in=Вы не представились
+number-of-columns.placeholder=Количество столбцов
+number-of-rows.placeholder=Количество рядов
+numbered-list=Нумерованный список
+okay=ОК
+open=Открыть
+other=Другие
+path-not-defined=Путь не указан
+print=печать
+privacy=Приватность
+rate-firetext=Оцените Firetext
+raw=Сырой
+recent-documents=Свежие документы
+recents-eliminated=Ваш список свежих документов очищен!
+right=Выравнивание по правому краю
+save=Сохранить
+save-as=Сохранить как
+save-changes-question=Сохранить изменения?
+save-unsuccessful=Сохранить не удалось. Ошибка:
+select-all=Выделить все
+select-language=Выберите язык
+send-error-stats.innerHTML=Отправить статистику ошибок
+settings=Параметры
+shared-sdcard=SD-карточка занята, не могу пользоваться! Попробуйте отключить USB-накопитель в приложении Параметры.
+strikethrough=Вычёркивание
+successfully-saved=Успешно сохранил
+table=Таблица
+the-web=Интернет
+tools=Инструменты
+unable-to-get-sdcard=Не могу оценить занятое место на SD-карточке
+underline=Подчёркивание
+unknown-error=Неизвестная ошибка
+use-dropbox.innerHTML=Пользоваться Dropbox
+valid-integer-value=Введите осмысленное значение (например, 2 или 5)
+visual=Графический
+want-to-delete-singular=Удалить файл?
+want-to-delete-plural=Удалить эти файлы?
+warning-unsupported-technology=Внимание: Ваш браузер не поддерживает существенные требуемые Firetext свойства. Пожалуйста, скачайте Firefox на https://mozilla.org/firefox.
+yes=Да
diff --git a/locales/zh-CN/app.properties b/locales/zh-CN/app.properties
index 295fd5c..a22e327 100644
--- a/locales/zh-CN/app.properties
+++ b/locales/zh-CN/app.properties
@@ -1,104 +1,109 @@
-about-firetext = 关于 Firetext
-alignment = 对齐
-allow-sdcard = 请允许 Firetext 访问您的 SD 卡。
-always-off = 总是关
-always-on = 总是开
-auto = 自动
-bold = 粗体
-cancel = 取消
-center = 居中
-clear = 清除
-clear-recents.innerHTML = 清除最近项目列表
-click-compose-icon-to-create = 点击撰写图标创建一个新文档。
-close-document = 关闭文档
-cloud = 云
-contains-special-characters = 不允许特殊字符。请修改。
-content-not-defined = 内容没有定义
-could-not-initialize-filesystem = 错误:无法初始化文件系统
-create-document = 创建文档
-create = 创建
-credits = Firetext 贡献者
-delete-selected = 删除选中
-delete-unsuccessful = 文件删除失败。\n\n错误详情:\n
-deselect-all = 取消所有
-design = 设计
-document-actions = 文档操作
-documents-device = 此设备上的文档
-documents-dropbox = 您的 Dropbox 上的文档
-done = 完成
-dropbox-full = 您的 Dropbox 已满,刷新并无效果。
-edit-docs = 编辑文档
-edit-with-zen-mode.innerHTML = 在禅境模式下编辑
-editing = 编辑中
-elements = 元素
-enable-autosave.innerHTML = 启用自动保存
-enable-file-previews.innerHTML = 启用文件预览
-enable-night-mode.innerHTML = 启用夜间模式
-enter-name = 为新文件起个名吧。
-file-creation-fail = 文件创建未成功。\n\n错误详情:\n
-file-exists = 此文件已存在,请选择其他名称。
-firetext-support = Firetext 支持
-formatting = 格式
-help = 帮助
-horizontal-rule = 水平线
-insert = 插入
-insert-image = 插入图像
-insert-link = 插入链接
-insert-table = 插入表格
-internal-storage = 内部存储
-image = 图像
-image-location = 图像位置
-invalid-location = 无法创建文件。请选择有效的位置。
-italic = 斜体
-justified = 两端对齐
-language.innerHTML = 界面语言
-left = 居左
-link = 链接
-list = 列表
-load-last-file.innerHTML = 启动时载入上一次的文件
-load-unsuccessful = 载入失败。\n\n错误详情:\n
-menu = 菜单
-network-error = 您的网络看起来不可用。\n\n请检查您的连接并重试。
-no = 否
-no-dropbox-documents-found = 没有找到 Dropbox 文档
-no-documents-found = 没有找到文档
-no-files-selected = 没有选中文件
-no-recent-documents = 没有最近的文档
-no-storage-method = 您还没有设置一个存储方案
-not-signed-in = 您未登录
-number-of-columns.placeholder = 列数
-number-of-rows.placeholder = 行数
-numbered-list = 编号列表
-okay = 良好
-open-document = 打开文档
-other = 其他
-path-not-defined = 路径没有定义
-privacy = 私有
-rate-firetext = 评价 Firetext
-raw = 原始
-recent-documents = 最近打开的文档
-recents-eliminated = 您的最近文档列表已成功清除!
-right = 居右
-save-changes-question = 您要保存更改吗?
-save-document = 保存文档
-save-unsuccessful = 保存失败。\n\n错误详情:\n
-select-all = 选择所有
-select-language = 选择您的语言
-send-error-stats.innerHTML = 发送错误统计
-settings = 设置
-shared-sdcard = 您的设备上的 SD 卡处于共享状态并因此不可用。请尝试在您的设置中禁用 USB 大容量存储。
-strikethrough = 删除线
-successfully-saved = 保存成功
-table = 表格
-the-web = 网络
-tools = 工具
-unable-to-get-sdcard = 无法获得 SD 卡的已用空间:
-underline = 下划线
-unknown-error = 未知错误
-use-dropbox.innerHTML = 使用 Dropbox
-valid-integer-value = 请输入有效的数值(例如 2 或 5)
-visual = 可视
-want-to-delete-singular = 您要删除此文件吗?
-want-to-delete-plural = 您要删除这些文件吗?
-warning-unsupported-technology = 警告:您的浏览器不支持 Firetext 的部分重要技术。请从 https://mozilla.org/firefox 下载 Firefox。
-yes = 是
+about-firetext=关于 Firetext
+alignment=对齐
+allow-sdcard=请允许 Firetext 访问您的 SD 卡。
+always-off=总是关
+always-on=总是开
+auto=自动
+automatic-printing-failed=我们无法自动打印此文件。请在您的浏览器内选择“打印”(如果可用)。
+bold=粗体
+cancel=取消
+center=居中
+clear=清除
+clear-recents.innerHTML=清除最近项目列表
+click-compose-icon-to-create=点击撰写图标创建一个新文档。
+close=关闭
+cloud=云
+contains-special-characters=不允许特殊字符。请修改。
+content-not-defined=内容没有定义
+could-not-initialize-filesystem=错误:无法初始化文件系统
+create=创建
+credits=Firetext 贡献者
+delete-selected=删除选中
+delete-unsuccessful=文件删除失败。错误详情:
+deselect-all=取消所有
+design=设计
+documents=文档
+documents-device=此设备上的文档
+documents-dropbox=您的 Dropbox 上的文档
+done=完成
+dropbox-full=您的 Dropbox 已满。刷新并不会产生效果。
+edit-docs=编辑文档
+editing=编辑中
+elements=元素
+enable-autosave.innerHTML=启用自动保存
+enable-file-previews.innerHTML=启用文件预览
+enable-night-mode.innerHTML=启用夜间模式
+enter-name=为新文件起个名吧。
+export=导出
+file-creation-fail=文件创建未成功。错误详情:
+file-exists=此文件已存在,请选择其他名称。
+firetext-support=Firetext 支持
+formatting=格式
+help=帮助
+horizontal-rule=水平线
+insert=插入
+insert-image=插入图像
+insert-link=插入链接
+insert-table=插入表格
+internal-storage=内部存储
+invalid-location=无法创建文件。请选择有效的位置。
+image=图像
+image-location=图像位置
+import=导入
+italic=斜体
+justified=两端对齐
+language.innerHTML=界面语言
+left=居左
+link=链接
+list=列表
+load-last-file.innerHTML=启动时载入上一次的文件
+load-unsuccessful=载入失败。错误详情:
+menu=菜单
+needs-restart=此设置在 Firetext 重启后被应用。立即重启?
+network-error=您的网络看起来不可用。请检查您的连接并重试。
+no=否
+no-dropbox-documents-found=没有找到 Dropbox 文档
+no-documents-found=没有找到文档
+no-files-selected=没有选中文件
+no-recent-documents=没有最近的文档
+no-storage-method=请设置一个存储修改文件的系统:
+not-functional-link=此链接无功能...
+not-signed-in=您未登录
+number-of-columns.placeholder=列数
+number-of-rows.placeholder=行数
+numbered-list=编号列表
+okay=良好
+open=打开
+other=其他
+path-not-defined=路径没有定义
+print=打印
+privacy=私有
+rate-firetext=评价 Firetext
+raw=原始
+recent-documents=最近打开的文档
+recents-eliminated=您的最近文档列表已成功清除!
+right=居右
+save=保存
+save-as=另存为
+save-changes-question=您要保存更改吗?
+save-unsuccessful=保存失败。错误详情:
+select-all=选择所有
+select-language=选择您的语言
+send-error-stats.innerHTML=发送错误统计
+settings=设置
+shared-sdcard=您的设备上的 SD 卡处于共享状态并因此不可用。请尝试在您的设置中禁用 USB 大容量存储。
+strikethrough=删除线
+successfully-saved=保存成功
+table=表格
+the-web=网络
+tools=工具
+unable-to-get-sdcard=无法获得 SD 卡的已用空间:
+underline=下划线
+unknown-error=未知错误
+use-dropbox.innerHTML=使用 Dropbox
+valid-integer-value=请输入有效的数值(例如 2 或 5)
+visual=可视
+want-to-delete-singular=您要删除此文件吗?
+want-to-delete-plural=您要删除这些文件吗?
+warning-unsupported-technology=警告:您的浏览器不支持 Firetext 的部分重要技术。请从 https://mozilla.org/firefox 下载 Firefox。
+yes=是
diff --git a/manifest.webapp b/manifest.webapp
index 3ac2646..b775e97 100644
--- a/manifest.webapp
+++ b/manifest.webapp
@@ -1,7 +1,7 @@
{
"name": "Firetext",
"description": "The word processor for Firefox OS",
- "version": "0.3.3",
+ "version": "0.4",
"type": "privileged",
"launch_path": "/index.html",
"developer": {
@@ -16,7 +16,10 @@
"256": "/style/icons/app/256.png"
},
"default_locale": "en-US",
- "locales": {
+ "locales": {
+ "bg": {
+ "description": "Програмата за текстова обработка на Файърфокс ОС"
+ },
"bn-BD": {
"description": "ফায়ারফক্স ওএস এর জন্য ওয়ার্ড প্রসেসর"
},
@@ -38,6 +41,9 @@
"he": {
"description": "מעבד התמלילים ל-Firefox OS"
},
+ "hu": {
+ "description": "A Firefox OS szövegszerkesztője"
+ },
"id": {
"description": "Pengolah kata untuk Firefox OS"
},
diff --git a/modules/editor/editor.html b/modules/editor/editor.html
new file mode 100644
index 0000000..a2828f8
--- /dev/null
+++ b/modules/editor/editor.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+ Firetext Editor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/editor/scripts/contentscript.js b/modules/editor/scripts/contentscript.js
new file mode 100644
index 0000000..292f5be
--- /dev/null
+++ b/modules/editor/scripts/contentscript.js
@@ -0,0 +1,90 @@
+(function(mainOrigin, _parentMessageProxy, initNight, filetype, odtdoc, readOnly) {
+ function fixupDocument() {
+ if(document.body.children.length === 0) {
+ document.body.appendChild(document.createElement('br'));
+ }
+ if(filetype === '.odt') {
+ try {
+ odtdoc.setHTML(getHTML());
+ } catch(e) {
+ document.execCommand('undo');
+ evt.stopImmediatePropagation();
+ }
+ }
+ }
+
+ var parentMessageProxy = new MessageProxy();
+ parentMessageProxy.setSend(parent);
+ parentMessageProxy.setRecv(window);
+ parentMessageProxy.setMessageHandlers(_parentMessageProxy.getMessageHandlers());
+
+ // Initialize Designer
+ if(!readOnly) {
+ document.documentElement.contentEditable = "true";
+ document.execCommand('enableObjectResizing', false, 'true');
+ }
+
+ // Hide and show toolbar.
+ // For reviewers, just in case this looks like a security problem:
+ // This frame is sandboxed, so I had to add the listeners to do this.
+ // The content CANNOT call any of the parents functions, so this is not a security issue.
+ window.addEventListener('focus', function (event) {
+ parentMessageProxy.postMessage({
+ command: "focus",
+ focus: true
+ });
+ });
+ window.addEventListener('blur', function (event) {
+ parentMessageProxy.postMessage({
+ command: "focus",
+ focus: false
+ });
+ });
+
+ // Keyboard shortcuts
+ document.addEventListener('keypress', function (event) {
+ if((event.ctrlKey || event.metaKey) && !event.shiftKey) {
+ if(event.which === 98) { // b
+ document.execCommand('bold');
+ } else if(event.which === 105) { // i
+ document.execCommand('italic');
+ } else if(event.which === 117) { // u
+ document.execCommand('underline');
+ } else {
+ return;
+ }
+ event.preventDefault();
+ }
+ });
+
+ // Fix up document
+ document.addEventListener('input', fixupDocument);
+ fixupDocument();
+
+ // night mode
+ initNight(document, parentMessageProxy);
+
+ // format document
+ parentMessageProxy.registerMessageHandler(function(e) { document.execCommand(e.data.sCmd, false, e.data.sValue); }, "format")
+
+ function getHTML() {
+ /*** This function is duplicated in docIO.js ***/
+ var doctype = document.doctype;
+ var doctypeString = doctype ? '' : '';
+ return doctypeString + document.documentElement.outerHTML.replace(/<(style|link)[^>]*_firetext_remove=""[^>]*>[^<>]*(?:<\/\1>)?/g, '').replace(' _firetext_night=""', '');
+ }
+
+ // Add listener to update raw
+ document.addEventListener('input', function() {
+ parentMessageProxy.postMessage({
+ command: "doc-changed",
+ html: getHTML(),
+ filetype: filetype
+ });
+ });
+})(mainOrigin, parentMessageProxy, initNight, filetype, odtdoc, readOnly);
diff --git a/modules/editor/scripts/docIO.js b/modules/editor/scripts/docIO.js
new file mode 100644
index 0000000..35f8458
--- /dev/null
+++ b/modules/editor/scripts/docIO.js
@@ -0,0 +1,147 @@
+/*
+* Document I/O
+* Copyright (C) Codexa Organization 2013.
+*/
+
+'use strict'
+
+function initDocIO(document, messageProxy, loadCallback) {
+ /* 0.4
+ var docxeditor;
+ */
+ var odtdoc;
+ var filetype;
+
+ // Unsupported odt features flag
+ var readOnly;
+
+ function getHTML() {
+ /*** This function is duplicated in contentscript.js ***/
+ var doctype = document.doctype;
+ var doctypeString = doctype ? '' : '';
+ return doctypeString + document.documentElement.outerHTML.replace(/<(style|link)[^>]*_firetext_remove=""[^>]*>[^<>]*(?:<\/\1>)?/g, '').replace(' _firetext_night=""', '');
+ }
+ function getText() {
+ return document.documentElement.textContent;
+ }
+
+ function load(content, ft) {
+ // Check for night
+ var wasNight = false
+ if (document.documentElement.hasAttribute('_firetext_night')) {
+ wasNight = true;
+ }
+
+ filetype = ft;
+ readOnly = false;
+ document.open();
+ switch (filetype) {
+ case ".txt":
+ content = firetext.parsers.plain.parse(content, "HTML");
+ document.write(content);
+ break;
+ case ".odt":
+ odtdoc = new ODTDocument(content);
+ var html = odtdoc.getHTMLUnsafe();
+ try {
+ html = odtdoc.getHTML();
+ } catch(e) {
+ readOnly = true;
+ }
+ document.write(html);
+ break;
+ /* 0.4
+ case ".docx":
+ docxeditor = new firetext.parsers.DocxEditor(content);
+ content = result.HTMLout();
+ doc.appendChild(content);
+ break;
+ */
+ case ".html":
+ default:
+ if(!/' + content;
+ document.write(content);
+ break;
+ }
+ document.close();
+
+ if (wasNight) {
+ nightEditor(true);
+ }
+
+ loadCallback(filetype, odtdoc, readOnly);
+ }
+
+ messageProxy.registerMessageHandler(function(e) {
+ var content;
+ var type;
+ var binary = false;
+ switch (filetype) {
+ case ".html":
+ content = getHTML();
+ if(!/]+charset/.test(content)) content = content.replace('', '');
+ type = "text\/html";
+ break;
+ case ".txt":
+ content = firetext.parsers.plain.encode(getHTML(), "HTML");
+ type = "text\/plain";
+ break;
+ case ".odt":
+ if(!readOnly) odtdoc.setHTML(getHTML());
+ content = odtdoc.getODT({type: 'string'});
+ type = "application\/vnd.oasis.opendocument.text";
+ binary = true;
+ break;
+ /* 0.4
+ case ".docx":
+ content = docxeditor.generate("uint8array");
+ application/vnd.openxmlformats-officedocument.wordprocessingml.document
+ break;
+ */
+ default:
+ content = getText();
+ break;
+ }
+
+ messageProxy.postMessage({
+ command: e.data.key,
+ content: binary ? btoa(content) : new StringView(content).toBase64(),
+ type: type
+ });
+ }, "get-content-blob");
+
+ messageProxy.registerMessageHandler(function(e) {
+ messageProxy.postMessage({
+ command: e.data.key,
+ content: getHTML()
+ });
+ }, "get-content-html");
+
+ messageProxy.registerMessageHandler(function(e) {
+ load(e.data.content, e.data.filetype);
+ if(e.data.key) {
+ messageProxy.postMessage({
+ command: e.data.key
+ });
+ }
+ }, "load");
+
+ messageProxy.registerMessageHandler(function(e) {
+ var commands = e.data.commands
+ var commandStates = {};
+ for(var i = 0; i < commands.length; i++) {
+ commandStates[commands[i]] = {};
+ commandStates[commands[i]].state = document.queryCommandState(commands[i]);
+ commandStates[commands[i]].value = document.queryCommandValue(commands[i]);
+ }
+ messageProxy.postMessage({
+ command: e.data.key,
+ commandStates: commandStates
+ })
+ }, "query-command-states");
+}
diff --git a/modules/editor/scripts/editor.js b/modules/editor/scripts/editor.js
new file mode 100644
index 0000000..77a8cb4
--- /dev/null
+++ b/modules/editor/scripts/editor.js
@@ -0,0 +1,65 @@
+/*
+* Editor Communication Proxy
+* Copyright (C) Codexa Organization 2013.
+*/
+
+'use strict'
+
+// Closure to isolate code from tampering by scripts in document
+var mainClosure = function() {
+ // document to be edited
+ var doc;
+
+ // WARNING: DO NOT REPLACE, THIS STRING IS REPLACED WITH THE ORIGIN AUTOMATICALLY WHEN LOADED FROM editorProxy.js
+ var mainOrigin = "[ORIGIN_OF_MAIN_DOCUMENT]";
+
+ // Overide popups
+ window.alert = null;
+ window.confirm = null;
+ window.prompt = null;
+
+ // Proxy for communication with parent page
+ var parentMessageProxy = new MessageProxy();
+ parentMessageProxy.setSend(parent);
+ parentMessageProxy.setRecv(window);
+
+ parentMessageProxy.registerMessageHandler(function(e){
+ if(e.origin !== mainOrigin) {
+ throw new Error("origin did not match");
+ }
+
+ // initialize modules/register handlers
+ // night mode
+ initNight(doc, parentMessageProxy);
+
+ var content_styles = document.querySelectorAll('link[data-for-content]');
+
+ var content_scripts = document.querySelectorAll('script[data-for-content]');
+
+ initDocIO(document, parentMessageProxy, function loadCallback(filetype, odtdoc, readOnly) {
+ window.mainOrigin = mainOrigin;
+ window.parentMessageProxy = parentMessageProxy;
+ window.initNight = initNight;
+ window.filetype = filetype;
+ window.odtdoc = odtdoc;
+ window.readOnly = readOnly;
+
+ // Content styles
+ [].forEach.call(content_styles, function(content_style) {
+ content_style.setAttribute('_firetext_remove', '');
+ content_style.setAttribute('type', 'text/css');
+ document.head.appendChild(document.adoptNode(content_style));
+ });
+
+ // Content scripts
+ [].forEach.call(content_scripts, function(content_script) {
+ window.eval(atob(content_script.src.split(',')[1]));
+ });
+ });
+
+ // success
+ parentMessageProxy.postMessage({command: "init-success"});
+ }, "init");
+}
+mainClosure();
+mainClosure = undefined;
diff --git a/modules/editor/scripts/editor_night.js b/modules/editor/scripts/editor_night.js
new file mode 100644
index 0000000..3cc58f3
--- /dev/null
+++ b/modules/editor/scripts/editor_night.js
@@ -0,0 +1,12 @@
+function initNight(document, messageProxy){
+ messageProxy.registerMessageHandler(function(e) { nightEditor(e.data.nightMode); }, "night");
+}
+
+function nightEditor(nightMode) {
+ var html = document.getElementsByTagName('html')[0];
+ if(nightMode) {
+ document.documentElement.setAttribute('_firetext_night', '');
+ } else {
+ document.documentElement.removeAttribute('_firetext_night');
+ }
+}
\ No newline at end of file
diff --git a/modules/editor/style/editor.css b/modules/editor/style/editor.css
new file mode 100644
index 0000000..eccf8b7
--- /dev/null
+++ b/modules/editor/style/editor.css
@@ -0,0 +1,100 @@
+html {
+ padding: 0;
+ margin: 0 auto;
+ max-width: 690px;
+ position: relative;
+}
+
+[_firetext_night] {
+ background-color: #000000;
+}
+
+body {
+ padding: 10px 10px 65px;
+ margin: 0;
+ font-size: 20px;
+ outline: none;
+ word-wrap: break-word;
+}
+
+[_firetext_night] body, [_firetext_night] img {
+ filter: url('data:image/svg+xml;utf8,#invertBrightness');
+ -webkit-filter: invert(100%) hue-rotate(180deg);
+ filter: invert(100%) hue-rotate(180deg);
+}
+
+html:before,
+html:after,
+body:before,
+body:after {
+ display: block;
+ position: absolute;
+ content: " ";
+ box-sizing: border-box;
+ width: 8px;
+ height: 8px;
+ margin: -8px 2px;
+ border: 1px solid #999;
+ pointer-events: none;
+}
+
+[_firetext_night]:before,
+[_firetext_night]:after,
+[_firetext_night] body:before,
+[_firetext_night] body:after {
+ border-color: rgb(127, 127, 127);
+}
+
+html:before {
+ top: 10px;
+ border-top-width: 0;
+ border-left-width: 0;
+}
+
+html:after {
+ margin-top: -65px;
+ border-bottom-width: 0;
+ border-left-width: 0;
+}
+
+body:before {
+ right: 0;
+ border-top-width: 0;
+ border-right-width: 0;
+}
+
+body:after {
+ right: 0;
+ margin-top: 0;
+ border-bottom-width: 0;
+ border-right-width: 0;
+}
+
+@media (min-width: 767px) {
+ html {
+ padding-top: 65px;
+ padding-bottom: 65px;
+ background-color: #efefef;
+ }
+
+ body {
+ border: 1px solid #ddd;
+ box-shadow: 0 0 5px #ddd;
+ padding-bottom: 10px;
+ background-color: #ffffff;
+ }
+
+ html:before,
+ body:before {
+ top: 75px;
+ z-index: 1;
+ }
+
+ html:after {
+ margin-top: -10px;
+ }
+
+ body {
+ margin: -1px;
+ }
+}
diff --git a/modules/printButton/printButton.html b/modules/printButton/printButton.html
new file mode 100644
index 0000000..a69fed0
--- /dev/null
+++ b/modules/printButton/printButton.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/printButton/scripts/printButton.js b/modules/printButton/scripts/printButton.js
new file mode 100644
index 0000000..35a0746
--- /dev/null
+++ b/modules/printButton/scripts/printButton.js
@@ -0,0 +1,96 @@
+window.addEventListener('DOMContentLoaded', function() {
+ // Proxy for communication with parent page
+ var parentMessageProxy = new MessageProxy();
+ parentMessageProxy.setSend(parent);
+ parentMessageProxy.setRecv(window);
+
+ window.addEventListener('click', function() {
+ var win = window.open(URL.createObjectURL(new Blob([
+ "",
+ ], {type: 'text/html'})));
+ var key = parentMessageProxy.registerMessageHandler(function(e){
+ win.postMessage({
+ content:
+ e.data.content
+ .replace('', [
+ '',
+ ' ', // Default to utf-8
+ ' ' + e.data.filename.replace(/',
+ ' ',
+ '',
+ ].join('\n'))
+ .replace('
',
+ ' ',
+ '
', [
+ "",
+ "",
+ "",
+ ].join('\n'))
+ }, '*');
+ }, null, true);
+ parentMessageProxy.postMessage({
+ command: "print-button-pressed",
+ key: key
+ });
+ });
+});
\ No newline at end of file
diff --git a/modules/printButton/style/printButton.css b/modules/printButton/style/printButton.css
new file mode 100644
index 0000000..ae93f8e
--- /dev/null
+++ b/modules/printButton/style/printButton.css
@@ -0,0 +1,4 @@
+html {
+ height: 100%;
+ cursor: pointer;
+}
\ No newline at end of file
diff --git a/scripts/cloud/cloud.js b/scripts/cloud/cloud.js
index 4ad5442..53b3214 100644
--- a/scripts/cloud/cloud.js
+++ b/scripts/cloud/cloud.js
@@ -17,7 +17,7 @@ var cloud = {};
cloud.init = function () {
// Dropbox
cloud.dropbox.init();
- if (firetext.settings.get('dropbox.enabled') == 'true') {
+ if (firetext.settings.get('dropbox.enabled') == 'true' && cloud.dropbox.auth) {
// Error Handler
cloud.dropbox.auth.onError.addListener(function (error) {
if (window.console) {
@@ -89,44 +89,15 @@ cloud.init = function () {
}
}
- /* 0.4
- // Google Drive
- if (firetext.settings.get('gdrive.enabled') == 'true') {
- // Code to get Google Drive files
- updateDocLists();
-
- // Show UI Elements
- welcomeGoogleArea.style.display = 'block';
- openDialogGoogleArea.style.display = 'block';
- locationGoogle = document.createElement('option');
- locationGoogle.textContent = 'Google Drive';
- locationSelect.appendChild(locationGoogle);
- } else {
- // Hide/Remove UI elements
- welcomeGoogleArea.style.display = 'none';
- openDialogGoogleArea.style.display = 'none';
- if (locationGoogle) {
- locationSelect.removeChild(locationGoogle);
- locationGoogle = undefined;
- }
-
- // Remove Google recents
- var driveRecents = firetext.recents.get();
- for (var i = 0; i < driveRecents.length; i++) {
- if (driveRecents[i][4] == 'gdrive') {
- firetext.recents.remove([driveRecents[i][0], driveRecents[i][1], driveRecents[i][2]], driveRecents[i][3], driveRecents[i][4]);
- }
- }
- }
- */
-
updateAddDialog();
};
cloud.updateDocLists = function (lists) {
if (firetext.settings.get('dropbox.enabled') == 'true' && cloud.dropbox.client) {
+ spinner();
cloud.dropbox.enumerate('/Documents/', function(DOCS) {
buildDocList(DOCS, [welcomeDropboxList, openDialogDropboxList], "dropbox-documents-found", 'dropbox');
+ spinner('hide');
});
}
}
diff --git a/scripts/cloud/dropbox.js b/scripts/cloud/dropbox.js
index 0f95cff..0c4ac91 100644
--- a/scripts/cloud/dropbox.js
+++ b/scripts/cloud/dropbox.js
@@ -19,16 +19,18 @@ cloud.dropbox.client = undefined;
/* Auth
------------------------*/
cloud.dropbox.init = function(){
- cloud.dropbox.auth = new Dropbox.Client({
- key: "CBB0GYTWGYA=|aeSB7VBcIP94mzfQPoykIzGm++Z97KtaDn2snjXCGQ=="
- });
+ if (urls.dropboxAuth) {
+ cloud.dropbox.auth = new Dropbox.Client({
+ key: "CBB0GYTWGYA=|aeSB7VBcIP94mzfQPoykIzGm++Z97KtaDn2snjXCGQ=="
+ });
- cloud.dropbox.auth.authDriver(new Dropbox.Drivers.Popup({
- rememberUser: true,
- receiverUrl: urls.dropboxAuth
- }));
+ cloud.dropbox.auth.authDriver(new Dropbox.Drivers.Popup({
+ rememberUser: true,
+ receiverUrl: urls.dropboxAuth
+ }));
- cloud.dropbox.auth.onAuth = new CustomEvent('cloud.dropbox.authed');
+ cloud.dropbox.auth.onAuth = new CustomEvent('cloud.dropbox.authed');
+ }
}
@@ -50,7 +52,7 @@ cloud.dropbox.enumerate = function (directory, callback) {
entries[i].push('');
// Only get documents
- if (entries[i][2] != '.txt' && entries[i][2] != '.html' && entries[i][2] != '.htm') { // 0.4 && entries[i][2] != '.docx') {
+ if (entries[i][2] != '.txt' && entries[i][2] != '.html' && entries[i][2] != '.htm' && entries[i][2] != '.odt') { // 0.4 && entries[i][2] != '.docx') {
entries.splice(i, 1);
i = (i - 1);
}
@@ -77,9 +79,11 @@ cloud.dropbox.enumerate = function (directory, callback) {
}
};
-cloud.dropbox.load = function (path, callback) {
+cloud.dropbox.load = function (path, filetype, callback) {
if (cloud.dropbox.client && path) {
- cloud.dropbox.client.readFile(path, function(e, d) {
+ cloud.dropbox.client.readFile(path, {
+ binary: filetype === '.odt',
+ }, function(e, d) {
// Hide spinner
spinner('hide');
@@ -151,12 +155,12 @@ cloud.dropbox.error = function (error) {
case Dropbox.ApiError.OVER_QUOTA:
// The user is over their Dropbox quota.
// Tell them their Dropbox is full. Refreshing the page won't help.
- alert(navigator.mozL10n.get('dropbox-full'));
+ firetext.notify(navigator.mozL10n.get('dropbox-full'));
break;
case Dropbox.ApiError.NETWORK_ERROR:
- alert(navigator.mozL10n.get('network-error'));
+ firetext.notify(navigator.mozL10n.get('network-error'));
break;
case Dropbox.ApiError.RATE_LIMITED:
diff --git a/scripts/editorLoader.js b/scripts/editorLoader.js
deleted file mode 100644
index c6b668e..0000000
--- a/scripts/editorLoader.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var loadEditor = (function () {
- var editorURL;
- var loadEditor = function loadEditor(callback) {
- if(editorURL) {
- callback(editorURL);
- return;
- }
- var editorDoc;
-
- var editorReq = new XMLHttpRequest();
- editorReq.open("GET", "editor/editor.html", true);
- editorReq.responseType = "document";
- editorReq.overrideMimeType("text/html");
- editorReq.addEventListener("load", function(e) {
- if(this.status === 200) {
- editorDoc = this.response;
- var scriptTags = editorDoc.querySelectorAll("script");
- var scripts = {};
- for (var i = 0; i < scriptTags.length; i++) {
- if(scriptTags[i].src) {
- (function() {
- var scriptURL = new URI(scriptTags[i].src, new URI("editor", location.href)).toString();
- if(!scripts[scriptURL]) {
- scripts[scriptURL] = [];
- var scriptReq = new XMLHttpRequest();
- scriptReq.open("GET", scriptURL, true);
- scriptReq.responseType = "text";
- scriptReq.addEventListener("load", function(e) {
- var done = true;
- if(this.status === 200) {
- var inlineScript = editorDoc.createElement("script");
- var scriptText = this.response;
- scriptText = scriptText.replace(/\[ORIGIN_OF_MAIN_DOCUMENT\]/g, window.location.origin ? window.location.origin : window.location.protocol + "//" + window.location.host);
- inlineScript.type = "text/javascript";
- inlineScript.src = "data:text/javascript;base64," + btoa(scriptText);
- scripts[scriptURL][0].parentNode.replaceChild(inlineScript, scripts[scriptURL][0]);
- for (var i = 1; i < scripts[scriptURL].length; i++) {
- scripts[scriptURL][i].parentNode.removeChild(scripts[scriptURL][i]);
- }
- delete scripts[scriptURL];
- for(var x in scripts) {
- done = false;
- break;
- }
- if (done) {
- var editorBlob = new Blob([editorDoc.documentElement.outerHTML], {type: "text/html"})
- editorURL = URL.createObjectURL ? URL.createObjectURL(editorBlob) : URL.webkitCreateObjectURL ? URL.webkitCreateObjectURL(editorBlob) : null;
- callback(editorURL);
- }
- }
- }, false);
- scriptReq.send();
- }
- scripts[scriptURL].push(scriptTags[i]);
- })();
- }
- }
- }
- }, false);
- editorReq.send();
- }
- return loadEditor;
-})();
\ No newline at end of file
diff --git a/scripts/firetext.js b/scripts/firetext.js
index be5ed4e..40eefeb 100644
--- a/scripts/firetext.js
+++ b/scripts/firetext.js
@@ -21,13 +21,13 @@ firetext.initialized = new CustomEvent('firetext.initialized');
firetext.isInitialized = false;
var html = document.getElementsByTagName('html')[0], head = document.getElementsByTagName("head")[0];
var themeColor = document.getElementById("theme-color");
-var loadSpinner, editor, toolbar, toolbarInterval, editWindow, editState, rawEditor, tabRaw, tabDesign;
-var deviceType, fileChanged, saveTimeout, saving, tempAutozen, urls={}, version = '0.3.3';
+var loadSpinner, editor, toolbar, toolbarInterval, editWindow, editState, rawEditor, rawEditorElement, tempText, tabRaw, tabDesign, printButton;
+var deviceType, fileChanged, saveTimeout, saving, urls={}, version = '0.4';
var bold, boldCheckbox, italic, italicCheckbox, justifySelect, strikethrough, strikethroughCheckbox;
var underline, underlineCheckbox;
var locationLegend, locationSelect, locationDevice, locationDropbox;
-var bugsense, bugsenseKey = '';
-var editorMessageProxy;
+var bugsenseInitialized = false, bugsenseKey = '';
+var editorMessageProxy, editorURL;
// Lists
var welcomeDocsList, welcomeDeviceArea, welcomeDeviceList, openDialogDeviceArea, openDialogDeviceList;
@@ -41,42 +41,115 @@ var appCache = window.applicationCache;
------------------------*/
window.addEventListener('DOMContentLoaded', function() {firetext.init();}, false);
-firetext.init = function () {
+firetext.init = function () {
+ // l10n catch
+ navigator.mozL10n.once(function () {
+ // Select elements
+ initElements();
+
+ // Load modules
+ initModules(function() {
+ // Update Doc Lists
+ updateDocLists();
+
+ // Check for recent file, and if found, load it.
+ if (firetext.settings.get('autoload') == 'true') {
+ var lastDoc = [firetext.settings.get('autoload.dir'), firetext.settings.get('autoload.name'), firetext.settings.get('autoload.ext'), firetext.settings.get('autoload.loc')];
+ if (firetext.settings.get('autoload.wasEditing') == 'true') {
+ // Wait until Dropbox is authenticated
+ if (lastDoc[3] == 'dropbox') {
+ if (firetext.settings.get('dropbox.enabled') == 'true') {
+ window.addEventListener('cloud.dropbox.authed', function() {
+ loadToEditor(lastDoc[0], lastDoc[1], lastDoc[2], lastDoc[3]);
+ spinner('hide');
+ });
+ } else {
+ spinner('hide');
+ }
+ } else {
+ loadToEditor(lastDoc[0], lastDoc[1], lastDoc[2], lastDoc[3]);
+ spinner('hide');
+ }
+ } else {
+ regions.nav('welcome');
+ spinner('hide');
+ }
+ } else {
+ regions.nav('welcome');
+ spinner('hide');
+ }
+
+ // Create listeners
+ initListeners();
+
+ // Dispatch init event
+ window.dispatchEvent(firetext.initialized);
+ firetext.isInitialized = true;
+ });
+ });
+};
+
+function initModules(callback) {
// Initialize Bugsense
bugsenseInit();
- // Initialize l10n
- navigator.mozL10n.once(function () {
-
+ // Fix menu before url request
+ fixMenu(true);
+
// Initialize urls
- getURLs(function(){
+ initURLs(function(){
+ // Modify links in menu
fixMenu();
+
+ // Initialize cloud services
+ cloud.init();
});
+
+ // Find device type
+ checkDevice();
// Initialize Settings
firetext.settings.init();
- // Initialize language handler
+ // Initialize Language
firetext.language(firetext.settings.get('language'));
- // Find device type
- checkDevice();
-
- // Initialize gestures
+ // Initialize Gestures
initGestures();
+
+ // Initialize night
+ night();
+
+ // Initialize extIcon
+ extIcon();
+
+ // Initalize recent docs
+ firetext.recents.init();
+
+ // Initialize IO
+ firetext.io.init(null, function() {
+ callback();
+ });
+
+ // Initialize print button
+ initPrintButton(function() {
+
+ });
+}
- /* Select important elements for later */
+function initElements() {
// Misc
loadSpinner = document.getElementById('loadSpinner');
spinner();
tabDesign = document.getElementById('tab-design');
tabRaw = document.getElementById('tab-raw');
editor = document.getElementById('editor');
- rawEditor = document.getElementById('rawEditor');
+ rawEditorElement = document.getElementById('rawEditor');
toolbar = document.getElementById('edit-zone');
editWindow = document.getElementById('edit');
locationLegend = document.getElementById('locationLegend');
- locationSelect = document.getElementById('createDialogFileLocation');
+ locationSelect = document.getElementById('createDialogFileLocation');
+ printButton = document.getElementById('printButton');
// Lists
welcomeDocsList = document.getElementById('welcome-docs-list');
@@ -90,7 +163,7 @@ firetext.init = function () {
welcomeDropboxList = document.getElementById('welcome-dropbox-list');
openDialogDropboxArea = document.getElementById('open-dialog-dropbox-area');
openDialogDropboxList = document.getElementById('open-dialog-dropbox-list');
-
+
// Formatting
bold = document.getElementById('bold');
boldCheckbox = document.getElementById('boldCheckbox');
@@ -101,95 +174,32 @@ firetext.init = function () {
strikethroughCheckbox = document.getElementById('strikethroughCheckbox');
underline = document.getElementById('underline');
underlineCheckbox = document.getElementById('underlineCheckbox');
-
- // Initalize recent docs
- firetext.recents.init();
-
- // Initialize the editor
- initEditor(function() {
- // Init extIcon
- extIcon();
-
- // Add event listeners
- toolbar.addEventListener(
- 'mousedown', function mouseDown(event) {
- event.preventDefault();
- event.target.classList.toggle('active');
- }
- );
- toolbar.addEventListener(
- 'mouseup', function mouseDown(event) {
- if (event.target.classList.contains('sticky') != true) {
- event.target.classList.remove('active');
- }
- }
- );
- editWindow.addEventListener(
- 'mouseenter', function mouseDown(event) {
- editor.focus();
- }
- );
-
- document.getElementById('welcome-main-area').addEventListener(
- 'contextmenu', function contextmenu(event) {
- event.preventDefault();
- editDocs();
- }
- );
-
- // Initialize IO
- firetext.io.init(null, function() {
- // Update Doc Lists
- updateDocLists();
-
- // Initialize sharing
- cloud.init();
-
- // Check for recent file, and if found, load it.
- if (firetext.settings.get('autoload') == 'true') {
- var lastDoc = [firetext.settings.get('autoload.dir'), firetext.settings.get('autoload.name'), firetext.settings.get('autoload.ext'), firetext.settings.get('autoload.loc')];
- var wasEditing = firetext.settings.get('autoload.wasEditing');
-
- // Navigate to welcome region
- regions.nav('welcome');
-
- // Load file
- if (wasEditing == 'true') {
- // Wait until Dropbox is authenticated
- if (lastDoc[3] == 'dropbox') {
- if (firetext.settings.get('dropbox.enabled') == 'true') {
- window.addEventListener('cloud.dropbox.authed', function() {
- spinner('hide');
- loadToEditor(lastDoc[0], lastDoc[1], lastDoc[2], lastDoc[3]);
- });
- } else {
- spinner('hide');
- }
- } else {
- spinner('hide');
- loadToEditor(lastDoc[0], lastDoc[1], lastDoc[2], lastDoc[3]);
- }
- } else {
- spinner('hide');
- }
- } else {
- spinner('hide');
- regions.nav('welcome');
+}
+
+function initListeners() {
+ // Add event listeners
+ toolbar.addEventListener(
+ 'mousedown', function mouseDown(event) {
+ event.preventDefault();
+ event.target.classList.toggle('active');
+ }
+ );
+ toolbar.addEventListener(
+ 'mouseup', function mouseDown(event) {
+ if (event.target.classList.contains('sticky') != true) {
+ event.target.classList.remove('active');
}
-
- // Night
- night();
-
- // Dispatch init event
- window.dispatchEvent(firetext.initialized);
- firetext.isInitialized = true;
- });
- });
-
- });
-};
+ }
+ );
+ welcomeDocsList.addEventListener(
+ 'contextmenu', function contextmenu(event) {
+ event.preventDefault();
+ editDocs();
+ }
+ );
+}
-function getURLs(callback) {
+function initURLs(callback) {
var xhr = new XMLHttpRequest();
xhr.open('post','http://firetext.codexa.bugs3.com/',true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
@@ -205,33 +215,44 @@ function getURLs(callback) {
xhr.send('request=urls&version='+version);
}
-function fixMenu() {
- var tempElements = [];
+function fixMenu(soft) {
+ var tempElements = [], tempLinks = [];
var urlNames = ['about','support','credits','rate'];
// Find empty urls
urlNames.forEach(function(v){
if (!urls[v]) {
tempElements = addMenuElementsToArray(tempElements, document.querySelectorAll('[data-type="sidebar"] nav [data-click-location="'+v+'"]'));
+ } else {
+ tempLinks = addMenuElementsToArray(tempLinks, document.querySelectorAll('[data-type="sidebar"] nav [data-click-location="'+v+'"]'));
+ for (var i = 0; i < tempLinks.length; i++) {
+ tempLinks[i].parentNode.classList.remove('hidden-item');
+ }
}
});
- // Remove list items
- for (var i = 0; i < tempElements.length; i++) {
- var tempParent = tempElements[i].parentNode.parentNode;
- if (tempParent) {
- tempParent.removeChild(tempElements[i].parentNode);
+ if (soft === true) {
+ for (var i = 0; i < tempElements.length; i++) {
+ tempElements[i].parentNode.classList.add('hidden-item');
+ }
+ } else {
+ // Remove list items
+ for (var i = 0; i < tempElements.length; i++) {
+ var tempParent = tempElements[i].parentNode.parentNode;
+ if (tempParent) {
+ tempParent.removeChild(tempElements[i].parentNode);
+ }
}
- }
- // Remove empty lists
- var tempLists = document.querySelectorAll('[data-type="sidebar"] nav ul');
- for (var i = 0; i < tempLists.length; i++) {
- if (tempLists[i].childElementCount == 0) {
- if (tempLists[i].previousElementSibling) {
- tempLists[i].parentNode.removeChild(tempLists[i].previousElementSibling);
+ // Remove empty lists
+ var tempLists = document.querySelectorAll('[data-type="sidebar"] nav ul');
+ for (var i = 0; i < tempLists.length; i++) {
+ if (tempLists[i].childElementCount == 0) {
+ if (tempLists[i].previousElementSibling) {
+ tempLists[i].parentNode.removeChild(tempLists[i].previousElementSibling);
+ }
+ tempLists[i].parentNode.removeChild(tempLists[i]);
}
- tempLists[i].parentNode.removeChild(tempLists[i]);
}
}
}
@@ -248,28 +269,38 @@ function addMenuElementsToArray(array, elements) {
------------------------*/
function updateAddDialog() {
if (locationSelect.length < 1) {
- // Disable elements
- document.getElementById('add-dialog-create-button').style.pointerEvents = 'none';
- document.getElementById('add-dialog-create-button').style.color = '#999';
- document.querySelector('#add [role="main"]').style.display = 'none';
-
- // Create notice
- if (!document.getElementById('no-storage-notice')) {
- var noStorageNotice = document.createElement('div');
- noStorageNotice.id = 'no-storage-notice';
- noStorageNotice.classList.add('redAlert');
- noStorageNotice.textContent = navigator.mozL10n.get('no-storage-method');
- document.getElementById('add').insertBefore(noStorageNotice, document.querySelector('#add [role="main"]'));
- }
+ [].forEach.call(document.getElementsByClassName('create-dialog'), function(createDialog) {
+ // Disable elements
+ createDialog.getElementsByClassName('create-button')[0].style.pointerEvents = 'none';
+ createDialog.getElementsByClassName('create-button')[0].style.color = '#999';
+ createDialog.querySelector('[role="main"]').style.display = 'none';
+
+ // Show notice
+ var noStorageNotice = createDialog.getElementsByClassName('no-storage-notice')[0];
+ if (noStorageNotice.classList.contains('hidden-item')) {
+ noStorageNotice.classList.remove('hidden-item');
+ }
+ });
} else {
- // Enable elements
- document.getElementById('add-dialog-create-button').setAttribute('style', 'pointer-events: auto;');
- document.querySelector('#add [role="main"]').style.display = 'block';
-
- // Remove notice if present
- if (document.getElementById('no-storage-notice')) {
- document.getElementById('no-storage-notice').parentNode.removeChild(document.getElementById('no-storage-notice'));
- }
+ [].forEach.call(document.getElementsByClassName('create-dialog'), function(createDialog) {
+ // Disable elements
+ createDialog.getElementsByClassName('create-button')[0].style.pointerEvents = '';
+ createDialog.getElementsByClassName('create-button')[0].style.color = '';
+ createDialog.querySelector('[role="main"]').style.display = '';
+
+ // Hide location select if only one option exists
+ if (locationSelect.length === 1) {
+ locationLegend.style.display = 'none';
+ } else {
+ locationLegend.style.display = 'block';
+ }
+
+ // Hide notice
+ var noStorageNotice = createDialog.getElementsByClassName('no-storage-notice')[0];
+ if (!noStorageNotice.classList.contains('hidden-item')) {
+ noStorageNotice.classList.add('hidden-item');
+ }
+ });
}
}
@@ -278,14 +309,10 @@ function updateAddDialog() {
------------------------*/
function bugsenseInit() {
if (bugsenseKey) {
- if (firetext.settings.get('stats.enabled') != 'false') {
- bugsense = new Bugsense({ appversion: version, apiKey: bugsenseKey });
- } else {
- bugsense = null;
- }
- } else {
- if (firetext.settings.get('stats.enabled') != 'false') {
- firetext.settings.save('stats.enabled','false');
+ if (firetext.settings.get('stats.enabled') != 'false' &&
+ !bugsenseInitialized) {
+ Bugsense.initAndStartSession({ appname: 'Firetext', appVersion: version, apiKey: bugsenseKey });
+ bugsenseInitialized = true;
}
}
}
@@ -306,8 +333,10 @@ function updateDocLists(lists) {
if (lists.indexOf('all') != '-1' | lists.indexOf('internal') != '-1') {
// Internal
+ spinner();
firetext.io.enumerate('/', function(DOCS) {
buildDocList(DOCS, [welcomeDeviceList, openDialogDeviceList], "documents-found", 'internal');
+ spinner('hide');
});
}
@@ -491,9 +520,6 @@ function cleanForPreview(text, documentType) {
return htmlNode.innerHTML;
}
return text;
- case ".docx":
- console.warn("cleanForPreview docx not implemented text = %s.", text);
- return text;
}
}
@@ -501,24 +527,29 @@ function sortByCellIndex(a,b) {
return a.cellIndex - b.cellIndex;
}
-function buildDocListItems(DOCS, listElms, description, output, location, preview) {
+function buildDocListItems(DOCS, listElms, description, output, location, preview, error) {
// Handle description
if (!description) {
description = '';
}
- if (firetext.settings.get('previews.enabled') != 'false') {
- switch (DOCS[0][2]) {
+ if (preview && firetext.settings.get('previews.enabled') != 'false') {
+ switch (error ? ".txt" : DOCS[0][2]) {
case ".txt":
- description = firetext.parsers.plain.parse(cleanForPreview(description, DOCS[0][2]), "HTML");
+ description = firetext.parsers.plain.parse(cleanForPreview(description, ".txt"), "HTML");
break;
case ".docx":
- var tmp = document.createElement("DIV");
- var docx = new DocxEditor(description);
- tmp.appendChild(docx.HTMLout());
- description = tmp.innerHTML;
+ case ".odt":
+ if(DOCS[0][2] === ".docx") {
+ var tmp = document.createElement("DIV");
+ var docx = new DocxEditor(description);
+ tmp.appendChild(docx.HTMLout());
+ description = tmp.innerHTML;
+ } else {
+ description = new JSZip(description).file('content.xml').asText();
+ }
case ".html":
- description = cleanForPreview(description, DOCS[0][2]);
+ description = cleanForPreview(description, ".html");
break;
default:
break;
@@ -569,11 +600,11 @@ function buildDocListItems(DOCS, listElms, description, output, location, previe
// build next item
if (preview == true) {
- firetext.io.load(DOCS[1][0], DOCS[1][1], DOCS[1][2], function (result) {
- buildDocListItems(DOCS.slice(1, DOCS.length), listElms, result, output, location, preview);
+ firetext.io.load(DOCS[1][0], DOCS[1][1], DOCS[1][2], function (result, error) {
+ buildDocListItems(DOCS.slice(1, DOCS.length), listElms, result, output, location, preview, error);
}, location);
} else {
- buildDocListItems(DOCS.slice(1, DOCS.length), listElms, null, output, location);
+ buildDocListItems(DOCS.slice(1, DOCS.length), listElms, null, output, location, preview, true);
}
}
@@ -592,11 +623,11 @@ function buildDocList(DOCS, listElms, display, location, preview) {
// build next item
if (preview == true) {
- firetext.io.load(DOCS[0][0], DOCS[0][1], DOCS[0][2], function (result) {
- buildDocListItems(DOCS, listElms, result, "", location, preview);
+ firetext.io.load(DOCS[0][0], DOCS[0][1], DOCS[0][2], function (result, error) {
+ buildDocListItems(DOCS, listElms, result, "", location, preview, error);
}, location);
} else {
- buildDocListItems(DOCS, listElms, null, "", location, preview);
+ buildDocListItems(DOCS, listElms, null, "", location, preview, true);
}
} else {
// No docs message
@@ -644,17 +675,8 @@ function buildEditDocList(DOCS, listElm, display, location) {
/* Display
------------------------*/
-// Make save banner hidden after 4 seconds
-function hideSaveBanner() {
- window.setTimeout(function() {
- document.getElementById("save-banner").hidden = true;
- }, 4000);
-}
-
-// Show the banner
-function showSaveBanner() {
- document.getElementById("save-banner").hidden = false;
- hideSaveBanner();
+function showSaveBanner(filepath) {
+ firetext.notify(navigator.mozL10n.get('successfully-saved')+' '+filepath);
}
// File Extension Icon on Create new file
@@ -671,70 +693,77 @@ function extIcon() {
/* Editor
------------------------*/
function initEditor(callback) {
- loadEditor(function(editorURL) {
- editor.onload = null;
- editor.src = editorURL;
- editor.onload = function() {
- var editorMessageChannel = new MessageChannel();
- // See: scripts/messages.js
- editorMessageProxy = new MessageProxy(editorMessageChannel.port1);
- // Successful initialization
- editorMessageProxy.registerMessageHandler(function(e) {
- // Initialize Raw Editor
- rawEditor.setAttribute('contentEditable', 'true');
- rawEditor.addEventListener('focus',function(){
- processActions('data-focus', rawEditor);
- });
- rawEditor.addEventListener('blur',function(){
- processActions('data-blur', rawEditor);
- });
-
- // Nav to the design tab
- regions.tab(document.querySelector('#editTabs'), 'design');
+ if (editorURL) {
+ app.modules.fill(editorURL, editor, function() {
+ editorCommunication(function(){
+ callback();
+ });
+ });
+ } else {
+ app.modules.load('modules/editor/editor.html', editor, function(u) {
+ editorURL = u;
+ editorCommunication(function(){
callback();
+ });
+ }, true, true);
+ }
+}
+
+function editorCommunication(callback) {
+ editor.onload = null;
+ editor.onload = function() {
+ // Stop listening to editor
+ if(editorMessageProxy) editorMessageProxy.setRecv(null);
- // Initialize Night Mode
- night();
- }, "init-success", true);
-
- editorMessageProxy.registerMessageHandler(function(e) {
- fileChanged = true;
- if(e.data.filetype === ".html") {
- rawEditor.textContent = e.data.html;
- }
- autosave();
- }, "doc-changed");
+ // See: scripts/messages.js
+ editorMessageProxy = new MessageProxy();
+ editorMessageProxy.setSend(editor.contentWindow);
+ editorMessageProxy.setRecv(window);
+ // Successful initialization
+ editorMessageProxy.registerMessageHandler(function(e) {
+ callback();
+ }, "init-success", true);
+
+ editorMessageProxy.registerMessageHandler(function(e) {
+ tempText = e.data.html;
+ fileChanged = true;
+ autosave();
+ }, "doc-changed");
- // editor focus and blur
- editorMessageProxy.registerMessageHandler(function(e) {
- if(e.data.focus) {
- processActions('data-focus', editor);
- } else {
- processActions('data-blur', editor);
- }
- }, "focus");
- Window.postMessage(editor.contentWindow, {command: "init"}, "*", [editorMessageChannel.port2]);
- editorMessageProxy.getPort().start();
+ // editor focus and blur
+ editorMessageProxy.registerMessageHandler(function(e) {
+ if(e.data.focus) {
+ processActions('data-focus', editor);
+ } else {
+ processActions('data-blur', editor);
+ }
+ }, "focus");
+ editorMessageProxy.postMessage({command: "init"});
+
+ editor.onload = function() {
+ editorMessageProxy.setSend(editor.contentWindow);
}
- })
+ }
}
function watchDocument(filetype) {
if(filetype === ".html") {
- prettyPrint();
// Add listener to update design
- rawEditor.addEventListener('input', function() {
+ rawEditor.on('change', function() {
fileChanged = true;
- var callbackKey = editorMessageProxy.registerMessageHandler(function(e) { autosave(); }, null, true);
- editorMessageProxy.getPort().postMessage({
+ editorMessageProxy.registerMessageHandler(function(e) { autosave(); }, 'autosave-ready');
+ editorMessageProxy.postMessage({
command: "load",
- content: rawEditor.textContent,
+ content: rawEditor.getValue(),
filetype: ".html",
- key: callbackKey
+ key: 'autosave-ready'
});
});
- rawEditor.addEventListener('blur', function() {
- prettyPrint();
+ rawEditor.on('focus', function() {
+ processActions('data-focus',rawEditorElement);
+ });
+ rawEditor.on('blur', function() {
+ processActions('data-blur',rawEditorElement);
});
}
}
@@ -745,7 +774,7 @@ function forceAutosave() {
function autosave(force) {
if (firetext.settings.get('autosave') != 'false') {
- if (!saveTimeout | force == true) {
+ if (!saveTimeout || force == true) {
if (saving != true) {
// Add timeout for saving
saveTimeout = window.setTimeout(saveFromEditor, 1000);
@@ -866,7 +895,7 @@ function deleteSelected(confirmed) {
} else if (selected.length > 1) {
var confirmDeletion = confirm(navigator.mozL10n.get('want-to-delete-plural'));
} else {
- alert(navigator.mozL10n.get('no-files-selected'));
+ firetext.notify(navigator.mozL10n.get('no-files-selected'));
return;
}
if (confirmDeletion != true) {
@@ -897,7 +926,7 @@ function deleteSelected(confirmed) {
/* Format
------------------------*/
function formatDoc(sCmd, sValue) {
- editorMessageProxy.getPort().postMessage({
+ editorMessageProxy.postMessage({
command: "format",
sCmd: sCmd,
sValue: sValue
@@ -955,7 +984,7 @@ function updateToolbar() {
strikethroughCheckbox.checked = false;
}
}, null, true);
- editorMessageProxy.getPort().postMessage({
+ editorMessageProxy.postMessage({
command: "query-command-states",
commands: ["bold", "italic", "justifyCenter", "justifyFull", "justifyRight", "underline", "strikeThrough"],
key: key
@@ -1044,6 +1073,8 @@ function processActions(eventAttribute, target) {
regions.sidebar(target.getAttribute(eventAttribute + '-id'), target.getAttribute(eventAttribute + '-state'));
} else if (calledFunction == 'saveFromEditor') {
saveFromEditor(true, true);
+ } else if (calledFunction == 'downloadFile') {
+ download();
} else if (calledFunction == 'closeFile') {
// Check if file is changed. If so, prompt the user to save it.
if (firetext.settings.get('autosave') == 'false' && fileChanged == true) {
@@ -1078,6 +1109,10 @@ function processActions(eventAttribute, target) {
}
} else if (calledFunction == 'createFromDialog') {
createFromDialog();
+ } else if (calledFunction == 'uploadFromDialog') {
+ uploadFromDialog();
+ } else if (calledFunction == 'saveAsFromDialog') {
+ saveAsFromDialog();
} else if (calledFunction == 'editDocs') {
editDocs();
} else if (calledFunction == 'extIcon') {
@@ -1096,12 +1131,12 @@ function processActions(eventAttribute, target) {
}
} else if (calledFunction == 'clearCreateForm') {
clearCreateForm();
+ } else if (calledFunction == 'clearSaveAsForm') {
+ clearSaveAsForm();
} else if (calledFunction == 'fullscreen') {
if (target.getAttribute(eventAttribute + '-state') == 'off') {
- tempAutozen = false;
editFullScreen(false);
} else {
- tempAutozen = true;
editFullScreen();
}
} else if (calledFunction == 'browser') {
@@ -1121,7 +1156,7 @@ function processActions(eventAttribute, target) {
// Fix for empty locations
if(!browseLocation || browseLocation==''){
- alert(navigator.mozL10n.get('not-functional-link'));
+ firetext.notify(navigator.mozL10n.get('not-functional-link'));
return;
}
@@ -1140,14 +1175,18 @@ function processActions(eventAttribute, target) {
}
formatDoc('justify'+justifyDirection);
} else if (calledFunction == 'hideToolbar') {
- if (document.getElementById('currentFileType').textContent != '.txt' &&
- target.id === 'editor') {
- document.getElementById('edit-bar').style.display = 'none';
- editor.classList.add('no-toolbar');
+ if (deviceType != 'desktop') {
+ if (document.getElementById('currentFileType').textContent != '.txt' &&
+ document.getElementById('currentFileType').textContent != '.odt' &&
+ target.id === 'editor') {
+ document.getElementById('edit-bar').style.display = 'none';
+ editor.classList.add('no-toolbar');
+ }
+ document.getElementById('hide-keyboard-button').classList.add('shown');
}
- document.getElementById('hide-keyboard-button').classList.add('shown');
} else if (calledFunction == 'showToolbar') {
if (document.getElementById('currentFileType').textContent != '.txt' &&
+ document.getElementById('currentFileType').textContent != '.odt' &&
target.id === 'editor') {
document.getElementById('edit-bar').style.display = 'block';
editor.classList.remove('no-toolbar');
@@ -1169,7 +1208,7 @@ function processActions(eventAttribute, target) {
}
regions.nav('hyperlink');
}, null, true);
- editorMessageProxy.getPort().postMessage({
+ editorMessageProxy.postMessage({
command: "query-command-states",
commands: ["createLink"],
key: key
@@ -1235,7 +1274,7 @@ function processActions(eventAttribute, target) {
var rows = parseInt(document.getElementById('table-rows').value);
var cols = parseInt(document.getElementById('table-columns').value);
} else {
- alert(navigator.mozL10n.get('valid-integer-value'));
+ firetext.notify(navigator.mozL10n.get('valid-integer-value'));
return;
}
@@ -1270,7 +1309,7 @@ function processActions(eventAttribute, target) {
document.getElementById('table-columns').value = null;
} else if (calledFunction == 'clearRecents') {
firetext.recents.reset();
- alert(navigator.mozL10n.get('recents-eliminated'));
+ firetext.notify(navigator.mozL10n.get('recents-eliminated'));
}
}
}
@@ -1297,7 +1336,7 @@ function checkDevice() {
}
if (window.opera) {
- alert(navigator.mozL10n.get('warning-unsupported-technology'));
+ firetext.notify(navigator.mozL10n.get('warning-unsupported-technology'));
}
};
@@ -1307,6 +1346,10 @@ function clearCreateForm() {
extIcon();
}
+function clearSaveAsForm() {
+ document.getElementById('saveAsDialogFileName').value = '';
+}
+
function spinner(state) {
if (state == 'hide') {
loadSpinner.classList.remove('shown');
@@ -1316,7 +1359,9 @@ function spinner(state) {
}
function editFullScreen(enter) {
- if (enter != false) { // current working methods
+ if (enter === true ||
+ enter != false &&
+ !html.classList.contains('fullscreen')) { // current working methods
// Make app fullscreen
if (document.documentElement.requestFullscreen) {
document.documentElement.requestFullscreen();
@@ -1325,12 +1370,6 @@ function editFullScreen(enter) {
} else if (document.documentElement.webkitRequestFullscreen) {
document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
-
- // Special editor UI
- document.querySelector('#edit header:first-child').style.display = 'none';
- document.getElementById('editTabs').setAttribute('data-items', '4.1');
- document.querySelector('#editTabs .tabToolbar').classList.add('visible');
- html.classList.add('fullscreen');
} else {
// Exit fullscreen
if (document.cancelFullScreen) {
@@ -1340,11 +1379,75 @@ function editFullScreen(enter) {
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
-
+ }
+}
+
+function onFullScreenChange() {
+ if (
+ document.fullscreenElement ||
+ document.mozFullScreenElement ||
+ document.webkitFullscreenElement
+ ) {
+ // Special editor UI
+ html.classList.add('fullscreen');
+ document.querySelector('#editor-zen-button span').classList.remove('icon-fs');
+ document.querySelector('#editor-zen-button span').classList.add('icon-efs');
+ } else {
// Regular editor UI
- document.querySelector('#edit header:first-child').style.display = 'block';
- document.getElementById('editTabs').setAttribute('data-items', '2');
- document.querySelector('#editTabs .tabToolbar').classList.remove('visible');
html.classList.remove('fullscreen');
+ document.querySelector('#editor-zen-button span').classList.remove('icon-efs');
+ document.querySelector('#editor-zen-button span').classList.add('icon-fs');
+ }
+}
+
+function onFullScreenError() {
+ firetext.notify('Could not enter into fullscreen.');
+}
+
+document.addEventListener('fullscreenchange', onFullScreenChange);
+document.addEventListener('mozfullscreenchange', onFullScreenChange);
+document.addEventListener('webkitfullscreenchange', onFullScreenChange);
+
+document.addEventListener('fullscreenerror', onFullScreenError);
+document.addEventListener('mozfullscreenerror', onFullScreenError);
+document.addEventListener('webkitfullscreenerror', onFullScreenError);
+
+/* Print button
+------------------------*/
+function initPrintButton(callback) {
+ app.modules.load('modules/printButton/printButton.html', printButton, function() {
+ printButtonCommunication(function(){
+ callback();
+ });
+ }, true, true);
+}
+
+function printButtonCommunication(callback) {
+ printButton.onload = null;
+ printButton.onload = function() {
+ // See: scripts/messages.js
+ var printButtonMessageProxy = new MessageProxy();
+ printButtonMessageProxy.setSend(printButton.contentWindow);
+ printButtonMessageProxy.setRecv(window);
+
+ printButtonMessageProxy.registerMessageHandler(function(printEvt) {
+ var key = editorMessageProxy.registerMessageHandler(function(editorEvt){
+ var filename = document.getElementById('currentFileName').textContent;
+ var filetype = document.getElementById('currentFileType').textContent;
+
+ printButtonMessageProxy.postMessage({
+ command: printEvt.data.key,
+ filename: filename,
+ filetype: filetype,
+ content: editorEvt.data.content,
+ 'automatic-printing-failed': navigator.mozL10n.get('automatic-printing-failed')
+ });
+ }, null, true);
+ editorMessageProxy.postMessage({
+ command: "get-content-html",
+ key: key
+ });
+ regions.nav('edit');
+ }, "print-button-pressed");
}
}
diff --git a/scripts/io.js b/scripts/io.js
index 1f26504..7348b5c 100644
--- a/scripts/io.js
+++ b/scripts/io.js
@@ -13,7 +13,7 @@ firetext.io = {};
/* Variables
------------------------*/
-var storage, deviceAPI, locationDevice
+var storage, deviceAPI, locationDevice;
/* Init
@@ -36,13 +36,14 @@ firetext.io.init = function (api, callback) {
if (this.result != "available") {
deviceAPI = null;
storage = null;
- alert(navigator.mozL10n.get('shared-sdcard'));
+ firetext.notify(navigator.mozL10n.get('shared-sdcard'));
firetext.io.init('file', callback);
return;
} else {
storage.onchange = function (change) {
updateDocLists(['internal', 'recents']);
}
+ enableInternalStorage();
callback();
}
};
@@ -50,7 +51,7 @@ firetext.io.init = function (api, callback) {
request.onerror = function () {
deviceAPI = null;
storage = null;
- alert(navigator.mozL10n.get('unable-to-get-sdcard') + this.error);
+ firetext.notify(navigator.mozL10n.get('unable-to-get-sdcard') + this.error.name);
firetext.io.init('file', callback);
return;
};
@@ -59,7 +60,7 @@ firetext.io.init = function (api, callback) {
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
if (window.requestFileSystem) {
var onFSError = function() {
- alert(navigator.mozL10n.get('could-not-initialize-filesystem'));
+ firetext.notify(navigator.mozL10n.get('could-not-initialize-filesystem'));
deviceAPI = 'none';
disableInternalStorage();
callback();
@@ -70,6 +71,7 @@ firetext.io.init = function (api, callback) {
storage = fs;
storage.root.getDirectory("Documents/", {create: true});
deviceAPI = 'file';
+ enableInternalStorage();
callback();
}, onFSError);
} else {
@@ -94,13 +96,16 @@ firetext.io.init = function (api, callback) {
return;
}
}
-
+}
+
+function enableInternalStorage() {
// Create storage option
locationDevice = document.createElement('option');
locationDevice.value = 'internal';
locationDevice.setAttribute('data-l10n-id','internal-storage');
locationDevice.textContent = navigator.mozL10n.get('internal-storage');
locationSelect.appendChild(locationDevice);
+ updateAddDialog();
}
function disableInternalStorage() {
@@ -117,7 +122,7 @@ firetext.io.enumerate = function (directory, callback) {
var FILES = [];
// Put directory in proper form
- if (directory.length > 1 && directory[0] == '/') {
+ if (directory[0] == '/') {
directory = directory.slice(1);
}
if (directory[directory.length - 1] != '/') {
@@ -134,9 +139,9 @@ firetext.io.enumerate = function (directory, callback) {
cursor.onerror = function() {
if (cursor.error.name == 'SecurityError') {
- alert(navigator.mozL10n.get('allow-sdcard'));
+ firetext.notify(navigator.mozL10n.get('allow-sdcard'));
} else {
- alert(navigator.mozL10n.get('load-unsuccessful')+cursor.error.name);
+ firetext.notify(navigator.mozL10n.get('load-unsuccessful')+cursor.error.name);
}
};
cursor.onsuccess = function() {
@@ -157,8 +162,8 @@ firetext.io.enumerate = function (directory, callback) {
// Don't get any files but docs
if (!thisFile[1] |
thisFile[3] != 'text/html' &&
- thisFile[3] != 'text/plain') { /* 0.4 &&
- thisFile[3] != 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') {*/
+ thisFile[3] != 'text/plain' &&
+ thisFile[2] != '.odt') {
cursor.continue();
return;
}
@@ -215,7 +220,7 @@ firetext.io.enumerate = function (directory, callback) {
fileparts = results[i].name.split(".");
filetype = fileparts.length >= 2 ? "." + fileparts[fileparts.length - 1] : "";
filename = filetype.length >= 2 ? fileparts.slice(0, -1).join("") : fileparts[0];
- if (filetype !== ".txt" && filetype !== ".html") { // 0.4 && filetype !== ".docx") {
+ if (filetype !== ".txt" && filetype !== ".html" && filetype !== ".odt") {
continue;
}
FILES.push([directory, filename, filetype]);
@@ -228,7 +233,7 @@ firetext.io.enumerate = function (directory, callback) {
if(err.code == FileError.NOT_FOUND_ERR) {
callback();
} else {
- alert(navigator.mozL10n.get('load-unsuccessful')+err.code);
+ firetext.notify(navigator.mozL10n.get('load-unsuccessful')+err.code);
}
});
}
@@ -239,63 +244,19 @@ firetext.io.enumerate = function (directory, callback) {
/* File IO
------------------------*/
-function createFromDialog() {
- var directory = 'Documents/';
- var location = document.getElementById('createDialogFileLocation').value;
- var filename = document.getElementById('createDialogFileName').value;
- var filetype = document.getElementById('createDialogFileType').value;
- if (filename == null | filename == undefined | filename == '') {
- alert(navigator.mozL10n.get('enter-name'));
- return;
- } else if (!isValidFileName(filename)) {
- alert(navigator.mozL10n.get('contains-special-characters'));
- return;
- }
-
- // Navigate back to the previous screen
- regions.navBack();
-
- // Convert location to lower case
- location = location.toLowerCase();
-
+
+function createAndOpen(location, directory, filename, filetype, contentBlob) {
// Save the file
- if (!location | location == '' | location == 'internal') {
-
- // Get mime
- var type = "text";
- switch (filetype) {
- case ".html":
- type = "text\/html";
- break;
- case ".txt":
- type = "text\/plain";
- break;
- /* 0.4
- case ".docx":
- type = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
- break;
- */
- default:
- break;
- }
- var contentBlob;
- //if (type === "application/vnd.openxmlformats-officedocument.wordprocessingml.document") {
- // contentBlob = new Blob([firetext.parsers.DocxEditor.blank], {type: type});
- //} else {
- contentBlob = new Blob([' '], { "type" : type });
- //}
+ if (!location | location == '' | location == 'internal') {
if (deviceAPI == 'deviceStorage') {
- // Make directory accurate
- directory = ('/sdcard/'+directory);
-
var filePath = (directory + filename + filetype);
var req = storage.addNamed(contentBlob, filePath);
req.onerror = function () {
if (this.error.name == "NoModificationAllowedError" | this.error.name == "FileExistsError") {
- alert(navigator.mozL10n.get('file-exists'));
+ firetext.notify(navigator.mozL10n.get('file-exists'));
}
else {
- alert(navigator.mozL10n.get('file-creation-fail')+this.error.name);
+ firetext.notify(navigator.mozL10n.get('file-creation-fail')+this.error.name);
}
};
req.onsuccess = function () {
@@ -314,29 +275,29 @@ function createFromDialog() {
loadToEditor(directory, filename, filetype, 'internal');
}
e.target.onerror = function(e) {
- alert(navigator.mozL10n.get('file-creation-fail')+e.message);
+ firetext.notify(navigator.mozL10n.get('file-creation-fail')+e.message);
}
};
fileWriter.onerror = function(e) {
- alert(navigator.mozL10n.get('file-creation-fail')+e.message);
+ firetext.notify(navigator.mozL10n.get('file-creation-fail')+e.message);
};
fileWriter.truncate(0);
}, function(err) {
- alert(navigator.mozL10n.get('file-creation-fail')+err.code);
+ firetext.notify(navigator.mozL10n.get('file-creation-fail')+err.code);
});
}, function(err) {
if(err.code === FileError.INVALID_MODIFICATION_ERR) {
- alert(navigator.mozL10n.get('file-exists'));
+ firetext.notify(navigator.mozL10n.get('file-exists'));
} else {
- alert(navigator.mozL10n.get('file-creation-fail')+err.code);
+ firetext.notify(navigator.mozL10n.get('file-creation-fail')+err.code);
}
});
}
} else if (location == 'dropbox') {
directory = ('/' + directory);
- firetext.io.save(directory, filename, filetype, ' ', false, function () {
+ firetext.io.save(directory, filename, filetype, contentBlob, false, function () {
// Load to editor
loadToEditor(directory, filename, filetype, location);
@@ -344,8 +305,38 @@ function createFromDialog() {
updateDocLists(['cloud']);
}, location);
} else {
- alert(navigator.mozL10n.get('invalid-location'));
+ firetext.notify(navigator.mozL10n.get('invalid-location'));
}
+}
+
+function createFromDialog() {
+ var directory = 'Documents/';
+ var location = document.getElementById('createDialogFileLocation').value; // Moved back and forth in regions.js
+ var filename = document.getElementById('createDialogFileName').value;
+ var filetype = document.getElementById('createDialogFileType').value;
+ if (filename == null | filename == undefined | filename == '') {
+ firetext.notify(navigator.mozL10n.get('enter-name'));
+ return;
+ } else if (!isValidFileName(filename)) {
+ firetext.notify(navigator.mozL10n.get('contains-special-characters'));
+ return;
+ }
+
+ // Navigate back to the previous screen
+ regions.navBack();
+
+ // Convert location to lower case
+ location = location.toLowerCase();
+
+ // Get default file contents
+ var contentData = firetext.io.getDefaultContent(filetype);
+
+ // Get mime
+ var type = firetext.io.getMime(filetype);
+
+ var contentBlob = new Blob([contentData], { "type" : type });
+
+ createAndOpen(location, directory, filename, filetype, contentBlob);
// Clear file fields
document.getElementById('createDialogFileName').value = '';
@@ -353,6 +344,74 @@ function createFromDialog() {
extIcon();
}
+function uploadFromDialog() {
+ var directory = 'Documents/';
+ var location = document.getElementById('createDialogFileLocation').value; // Moved back and forth in regions.js
+ var files = document.getElementById('uploadDialogFiles').files;
+
+ // Navigate back to the previous screen
+ regions.navBack();
+
+ // Convert location to lower case
+ location = location.toLowerCase();
+
+ for (var i = 0; i < files.length; i++) {
+ var file = files[i];
+
+ if(file.name.lastIndexOf(".") !== -1) {
+ var filename = file.name.substr(0, file.name.lastIndexOf("."));
+ var filetype = file.name.substr(file.name.lastIndexOf("."));
+ } else {
+ var filename = file.name;
+ var filetype = "";
+ }
+
+ if (filename == null | filename == undefined | filename == '') {
+ continue;
+ } else if (!isValidFileName(filename)) {
+ firetext.notify(navigator.mozL10n.get('contains-special-characters'));
+ continue;
+ }
+
+ if (['text/html', 'text/plain', 'application/vnd.oasis.opendocument.text'].indexOf(file.type) === -1) {
+ continue;
+ }
+
+ createAndOpen(location, directory, filename, filetype, file);
+ }
+
+ // Clear file fields
+ document.getElementById('uploadDialogFiles').value = '';
+}
+
+function saveAsFromDialog() {
+ var directory = 'Documents/';
+ var location = document.getElementById('createDialogFileLocation').value; // Moved back and forth in regions.js
+ var filename = document.getElementById('saveAsDialogFileName').value;
+ var filetype = document.getElementById('currentFileType').textContent; // Current filetype
+ if (filename == null | filename == undefined | filename == '') {
+ firetext.notify(navigator.mozL10n.get('enter-name'));
+ return;
+ } else if (!isValidFileName(filename)) {
+ firetext.notify(navigator.mozL10n.get('contains-special-characters'));
+ return;
+ }
+
+ // Navigate back to the previous screen
+ regions.navBack();
+
+ // Convert location to lower case
+ location = location.toLowerCase();
+
+ var key = editorMessageProxy.registerMessageHandler(function(e){
+ createAndOpen(location, directory, filename, filetype, new Blob([StringView.base64ToBytes(e.data.content)], {type: e.data.type}));
+ }, null, true);
+ editorMessageProxy.postMessage({
+ command: "get-content-blob",
+ key: key
+ });
+}
+
function isValidFileName(filename) {
return (/^[a-zA-Z0-9-\._ ]+$/.test(filename) && !(/\.\./.test(filename)) && !(/\.$/.test(filename)));
}
@@ -370,65 +429,84 @@ function saveFromEditor(banner, spinner) {
var key = editorMessageProxy.registerMessageHandler(function(e){
firetext.io.save(directory, filename, filetype, new Blob([StringView.base64ToBytes(e.data.content)], {type: e.data.type}), banner, function(){ fileChanged = false; }, location, spinner);
}, null, true);
- editorMessageProxy.getPort().postMessage({
+ editorMessageProxy.postMessage({
+ command: "get-content-blob",
+ key: key
+ });
+}
+
+function download() {
+ // Select elements
+ var location = document.getElementById('currentFileLocation').textContent;
+ var directory = document.getElementById('currentFileDirectory').textContent;
+ var filename = document.getElementById('currentFileName').textContent;
+ var filetype = document.getElementById('currentFileType').textContent;
+
+ var key = editorMessageProxy.registerMessageHandler(function(e){
+ saveAs(new Blob([StringView.base64ToBytes(e.data.content)], {type: e.data.type}), filename + filetype);
+ }, null, true);
+ editorMessageProxy.postMessage({
command: "get-content-blob",
key: key
});
}
function loadToEditor(directory, filename, filetype, location, editable) {
- // Clear editor
- rawEditor.textContent = '';
+ // Reset variables
+ tempText = undefined;
+
+ // Initialize raw editor
+ if (!rawEditor) {
+ rawEditor = CodeMirror(rawEditorElement, {
+ lineNumbers: true
+ });
+ }
// Set file name and type
document.getElementById('currentFileLocation').textContent = location;
document.getElementById('currentFileDirectory').textContent = directory;
document.getElementById('currentFileName').textContent = filename;
document.getElementById('currentFileType').textContent = filetype;
-
- // Set alert banner name and type
- document.getElementById('save-banner-name').textContent = (directory + filename);
- document.getElementById('save-banner-type').textContent = filetype;
+ [].forEach.call(document.getElementsByClassName('file-name'), function(element) {
+ element.textContent = filename + filetype;
+ });
// Show/hide toolbar
switch (filetype) {
- /* 0.4
- case ".docx":
- */
case ".html":
- document.getElementById('edit-bar').style.display = 'block'; // 0.2 only
- editor.classList.remove('no-toolbar'); // 0.2 only
+ document.getElementById('edit-bar').style.display = 'block';
+ editor.classList.remove('no-toolbar');
toolbar.classList.remove('hidden');
break;
case ".txt":
+ case ".odt":
default:
- document.getElementById('edit-bar').style.display = 'none'; // 0.2 only
- editor.classList.add('no-toolbar'); // 0.2 only
+ document.getElementById('edit-bar').style.display = 'none';
+ editor.classList.add('no-toolbar');
toolbar.classList.add('hidden');
break;
}
// Fill editor
- firetext.io.load(directory, filename, filetype, function(result, error) {
+ firetext.io.load(directory, filename, filetype, function(result, error, fileInfo) {
if (!error) {
initEditor(function() {
- editorMessageProxy.getPort().postMessage({
+ editorMessageProxy.postMessage({
command: "load",
content: result,
filetype: filetype
});
switch (filetype) {
case ".txt":
- /* 0.4
- case ".docx":
- */
- tabRaw.classList.add('hidden');
- regions.tab(document.querySelector('#editTabs'), 'design');
+ case ".odt":
+ document.querySelector('[data-tab-id="raw"]').classList.add('hidden-item');
+ tabRaw.classList.add('hidden-item');
break;
case ".html":
default:
- rawEditor.textContent = result;
- tabRaw.classList.remove('hidden');
+ document.querySelector('[data-tab-id="raw"]').classList.remove('hidden-item');
+ tabRaw.classList.remove('hidden-item');
+ rawEditor.swapDoc(new CodeMirror.Doc(result, 'text/html'));
break;
}
@@ -446,22 +524,24 @@ function loadToEditor(directory, filename, filetype, location, editable) {
toolbarInterval = window.setInterval(updateToolbar, 100);
// Add file to recent docs
- firetext.recents.add([directory, filename, filetype], location);
+ firetext.recents.add([fileInfo[0], fileInfo[1], fileInfo[2]], location);
// Show editor
regions.nav('edit');
+ regions.tab(document.querySelector('#editTabs'), 'design');
// Hide save button if autosave is enabled
if (firetext.settings.get('autosave') != 'false') {
document.getElementById('editorSaveButton').style.display = 'none';
- document.getElementById('zenSaveButton').style.display = 'none';
} else {
document.getElementById('editorSaveButton').style.display = 'inline-block';
- document.getElementById('zenSaveButton').style.display = 'inline-block';
}
+
+ // Re-initialize night
+ night();
})
} else {
- alert(navigator.mozL10n.get('load-unsuccessful')+result);
+ firetext.notify(navigator.mozL10n.get('load-unsuccessful')+result);
}
}, location);
}
@@ -480,11 +560,11 @@ firetext.io.save = function (directory, filename, filetype, contentBlob, showBan
// Save file
if (deviceAPI == 'deviceStorage') {
- var req = storage.addNamed(contentBlob, filePath);
+ var req = storage.addNamed(contentBlob, filePath);
req.onsuccess = function () {
// Show banner or hide spinner
if (showBanner) {
- showSaveBanner();
+ showSaveBanner(filePath);
}
if (showSpinner == true) {
spinner('hide');
@@ -503,10 +583,10 @@ firetext.io.save = function (directory, filename, filetype, contentBlob, showBan
}, location, showSpinner);
};
req2.onerror = function () {
- alert(navigator.mozL10n.get('save-unsuccessful')+this.error.name);
+ firetext.notify(navigator.mozL10n.get('save-unsuccessful')+this.error.name);
}
} else {
- alert(navigator.mozL10n.get('save-unsuccessful')+this.error.name);
+ firetext.notify(navigator.mozL10n.get('save-unsuccessful')+this.error.name);
}
saving = false;
};
@@ -517,7 +597,7 @@ firetext.io.save = function (directory, filename, filetype, contentBlob, showBan
e.target.onwriteend = function(e) {
// Show banner or hide spinner
if (showBanner) {
- showSaveBanner();
+ showSaveBanner(filePath);
}
if (showSpinner == true) {
spinner('hide');
@@ -529,30 +609,30 @@ firetext.io.save = function (directory, filename, filetype, contentBlob, showBan
}
e.target.onerror = function(e) {
saving = false;
- alert(navigator.mozL10n.get('save-unsuccessful')+e.message);
+ firetext.notify(navigator.mozL10n.get('save-unsuccessful')+e.message);
}
e.target.write(contentBlob);
};
fileWriter.onerror = function(e) {
saving = false;
- alert(navigator.mozL10n.get('save-unsuccessful')+e.message);
+ firetext.notify(navigator.mozL10n.get('save-unsuccessful')+e.message);
};
fileWriter.truncate(0);
}, function(err) {
saving = false;
- alert(navigator.mozL10n.get('save-unsuccessful')+err.code);
+ firetext.notify(navigator.mozL10n.get('save-unsuccessful')+err.code);
});
}, function(err) {
saving = false;
- alert(navigator.mozL10n.get('load-unsuccessful')+err.code);
+ firetext.notify(navigator.mozL10n.get('load-unsuccessful')+err.code);
});
}
} else if (location == 'dropbox') {
cloud.dropbox.save(filePath, contentBlob, showSpinner, function () {
// Show banner
if (showBanner) {
- showSaveBanner();
+ showSaveBanner(filePath);
}
// Finish
@@ -587,29 +667,28 @@ firetext.io.load = function (directory, filename, filetype, callback, location)
var file = req.result;
var reader = new FileReader();
- /* 0.4
- if (filetype == ".docx") {
+ if (filetype == ".odt") {
reader.readAsArrayBuffer(file);
} else {
reader.readAsText(file);
}
- */
-
- // 0.3 only
- reader.readAsText(file);
reader.onerror = function () {
// Hide spinner
spinner('hide');
- alert(navigator.mozL10n.get('load-unsuccessful')+this.error.name);
+ firetext.notify(navigator.mozL10n.get('load-unsuccessful')+this.error.name);
callback(this.error.name, true);
};
reader.onload = function () {
// Hide spinner
spinner('hide');
- callback(this.result);
+ // Update file info
+ var thisFile = firetext.io.split(file.name);
+ thisFile[3] = file.type;
+
+ callback(this.result,undefined,thisFile);
};
};
req.onerror = function () {
@@ -617,7 +696,7 @@ firetext.io.load = function (directory, filename, filetype, callback, location)
// New file, leave user to edit and save it
}
else {
- alert(navigator.mozL10n.get('load-unsuccessful')+this.error.name);
+ firetext.notify(navigator.mozL10n.get('load-unsuccessful')+this.error.name);
}
// Hide spinner
@@ -632,37 +711,32 @@ firetext.io.load = function (directory, filename, filetype, callback, location)
// Hide spinner
spinner('hide');
- alert(navigator.mozL10n.get('load-unsuccessful')+this.error.name);
+ firetext.notify(navigator.mozL10n.get('load-unsuccessful')+this.error.name);
callback(this.error.name, true);
};
reader.onload = function () {
// Hide spinner
spinner('hide');
- callback(this.result);
+ callback(this.result, undefined, [directory, filename, filetype]);
};
- /* 0.4
- if (filetype === ".docx") {
+ if (filetype === ".odt") {
reader.readAsArrayBuffer(file);
} else {
reader.readAsText(file);
}
- */
-
- // 0.3 only
- reader.readAsText(file);
}, function(err) {
- alert(navigator.mozL10n.get('load-unsuccessful')+err.code);
+ firetext.notify(navigator.mozL10n.get('load-unsuccessful')+err.code);
// Hide spinner
spinner('hide');
});
}, function(err) {
if (err.code === FileError.NOT_FOUND_ERR) {
- alert(navigator.mozL10n.get('load-unsuccessful')+err.code);
+ firetext.notify(navigator.mozL10n.get('load-unsuccessful')+err.code);
} else {
- alert(navigator.mozL10n.get('load-unsuccessful')+err.code);
+ firetext.notify(navigator.mozL10n.get('load-unsuccessful')+err.code);
}
// Hide spinner
@@ -670,11 +744,11 @@ firetext.io.load = function (directory, filename, filetype, callback, location)
});
}
} else if (location = 'dropbox') {
- cloud.dropbox.load(filePath, function (result, error) {
+ cloud.dropbox.load(filePath, filetype, function (result, error) {
// Hide spinner
spinner('hide');
- callback(result, error);
+ callback(result, error, [directory, filename, filetype]);
});
}
};
@@ -688,17 +762,17 @@ firetext.io.delete = function (name, location) {
// Code to show a deleted banner
}
req.onerror = function () {
- // Code to show an error banner (the alert is temporary)
- alert(navigator.mozL10n.get('delete-unsuccessful')+this.error.name);
+ // Code to show an error banner (the firetext.notify is temporary)
+ firetext.notify(navigator.mozL10n.get('delete-unsuccessful')+this.error.name);
}
} else if (deviceAPI == 'file') {
storage.root.getFile(path, {}, function(fileEntry) {
fileEntry.remove(function() {
}, function(err) {
- alert(navigator.mozL10n.get('delete-unsuccessful')+err.code);
+ firetext.notify(navigator.mozL10n.get('delete-unsuccessful')+err.code);
});
}, function(err) {
- alert(navigator.mozL10n.get('delete-unsuccessful')+err.code);
+ firetext.notify(navigator.mozL10n.get('delete-unsuccessful')+err.code);
});
}
} else if (location == 'dropbox') {
@@ -714,6 +788,55 @@ firetext.io.rename = function (directory, name, type, newname, location) {
}, location);
};
+firetext.io.getDefaultContent = function (extension) {
+ var contentData;
+ switch (extension) {
+ case ".html":
+ contentData = [
+ '',
+ '',
+ '