diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000..797acea
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 3bf842d..ef444b8 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,156 +2,25 @@
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -195,6 +64,7 @@
+
@@ -249,24 +119,20 @@
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -278,6 +144,10 @@
1553526292376
+
+
+
+
@@ -310,10 +180,19 @@
-
+
-
-
+
+
+
+
+
diff --git a/app.js b/app.js
index 6b28695..9954186 100644
--- a/app.js
+++ b/app.js
@@ -1,4 +1,5 @@
-const { BrowserWindow, ipcMain, nativeTheme, app } = require("electron");
+const { BrowserWindow, ipcMain, nativeTheme, app, session } = require("electron");
+require("@electron/remote/main").initialize();
const store = require("./src/helpers/store");
const config = require("./src/helpers/config");
@@ -8,6 +9,9 @@ const {
} = require("./src/helpers/util");
const { createMainWindow } = require("./src/js/mainwindow");
+const path = require("path");
+const {userAgent, signInURL} = require("./src/helpers/config");
+const isPackaged = require('electron-is-packaged').isPackaged;
// Listen for theme requests from windows to set theme
ipcMain.on("theme-request", function (_, webContentsId) {
@@ -31,8 +35,25 @@ const unsubscribeStoreWatch = store.onDidChange(USER_PREF_KEYS.THEME, () => {
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
-app.whenReady().then(() => {
- createMainWindow();
+app.whenReady().then(async () => {
+
+ // Assumes that you put the unpacked extension in the project folder and called the folder "offline"
+ let appPackagedPath = "offline";
+ let offlineToolsPath = path.join(path.resolve("."), appPackagedPath);;
+ if (isPackaged){
+ appPackagedPath = `${config.osPlatform === OS_PLATFORMS.MAC_OS ? ".." : "."}/offline`;
+ offlineToolsPath = path.join(path.dirname(process.execPath), appPackagedPath);
+ }
+ await session.defaultSession.loadExtension(offlineToolsPath).then(() => createMainWindow()).catch((e) => console.error(e));
+ // Check the urls and pass the weird User-Agent to let google sign you in.
+ session.defaultSession.webRequest.onBeforeSendHeaders((details, callback) => {
+ if (details.url.includes("accounts.google")){
+ details.requestHeaders['User-Agent'] = "Chrome";
+ } else {
+ details.requestHeaders['User-Agent'] = userAgent;
+ }
+ callback({ cancel: false, requestHeaders: details.requestHeaders });
+ });
app.on("activate", function () {
// On macOS it's common to re-create a window in the app when the
@@ -45,7 +66,7 @@ app.whenReady().then(() => {
app.on("window-all-closed", function () {
// On macOS it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
- if (config.osPlatform !== OS_PLATFORMS.MAC_OS) app.quit();
+ if (config.osPlatform === OS_PLATFORMS.MAC_OS) app.quit();
unsubscribeStoreWatch();
});
diff --git a/offline/128.png b/offline/128.png
new file mode 100644
index 0000000..638e12c
Binary files /dev/null and b/offline/128.png differ
diff --git a/offline/_locales/af/messages.json b/offline/_locales/af/messages.json
new file mode 100644
index 0000000..c32d1a6
--- /dev/null
+++ b/offline/_locales/af/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"SKEP NUWE"},"explanationofflinedisabled":{"message":"Jy is vanlyn. As jy Google Dokumente sonder 'n internetverbinding wil gebruik, moet jy die volgende keer as jy aan die internet gekoppel is na instellings op die Google Dokumente-tuisblad gaan en vanlynsinkronisering aanskakel."},"explanationofflineenabled":{"message":"Jy is vanlyn, maar jy kan nog steeds beskikbare l\u00eaers redigeer of nuwes skep."},"extdesc":{"message":"Skep, wysig en bekyk jou dokumente, sigblaaie en aanbiedings \u2013 alles sonder toegang tot die internet."},"extname":{"message":"Google Vanlyn Dokumente"},"learnmore":{"message":"Kom meer te wete"},"popuphelptext":{"message":"Skryf, redigeer en werk saam, waar jy ook al is, met of sonder 'n internetverbinding."}}
diff --git a/offline/_locales/am/messages.json b/offline/_locales/am/messages.json
new file mode 100644
index 0000000..10d592e
--- /dev/null
+++ b/offline/_locales/am/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "አዲስ ፍጠር"
+ },
+ "explanationofflinedisabled": {
+ "message": "ከመስመር ውጪ ነዎት። Google ሰነዶችን ያለበይነመረብ ግንኙነት ለመጠቀም በGoogle ሰነዶች መነሻ ገጽ ላይ ወደ ቅንብሮች ይሂዱና ከበይነመረቡ ጋር በሚገናኙበት ቀጣዩ ጊዜ ላይ የመስመር ውጭ ስምረትን ያብሩ።"
+ },
+ "explanationofflineenabled": {
+ "message": "ከመስመር ውጪ ነዎት፣ ነገር ግን አሁንም የሚገኙ ፋይሎችን ማርትዕ ወይም አዲሶችን መፍጠር ይችላሉ።"
+ },
+ "extdesc": {
+ "message": "የእርስዎን ሰነዶች፣ የተመን ሉሆች እና የዝግጅት አቀራረቦች ያርትዑ፣ ይፍጠሩ እና ይመልከቱ — ሁሉንም ያለ በይነመረብ መዳረሻ።"
+ },
+ "extname": {
+ "message": "ከመስመር ውጪ Google ሰነዶች"
+ },
+ "learnmore": {
+ "message": "ተጨማሪ ለመረዳት"
+ },
+ "popuphelptext": {
+ "message": "የትም ይሁኑ በበይነመረብ ግንኙነት ወይም ያለእሱ ይጻፉ፣ ያርትዑ እና ይተባበሩ።"
+ }
+}
diff --git a/offline/_locales/ar/messages.json b/offline/_locales/ar/messages.json
new file mode 100644
index 0000000..29a5b0d
--- /dev/null
+++ b/offline/_locales/ar/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "إنشاء جديد"
+ },
+ "explanationofflinedisabled": {
+ "message": "أنت بلا اتصال، لاستخدام مستندات Google بلا اتصال بالإنترنت، انتقل إلى الإعدادات في الصفحة الرئيسية لمستندات Google وشغّل المزامنة بلا اتصال في المرة القادمة التي تتصل فيها بالإنترنت."
+ },
+ "explanationofflineenabled": {
+ "message": "أنت بلا اتصال، ولكن لا يزال بإمكانك تعديل الملفات المتاحة أو إنشاء ملفات جديدة."
+ },
+ "extdesc": {
+ "message": "تعديل المستندات وجداول البيانات والعروض التقديمية وإنشاؤها وعرضها، كل ذلك بلا اتصال بالإنترنت"
+ },
+ "extname": {
+ "message": "مستندات Google بلا إنترنت"
+ },
+ "learnmore": {
+ "message": "المزيد من المعلومات"
+ },
+ "popuphelptext": {
+ "message": "يمكنك الكتابة والتعديل والتعاون من أي مكان، سواء كنت متصلاً بالإنترنت أو لا."
+ }
+}
diff --git a/offline/_locales/az/messages.json b/offline/_locales/az/messages.json
new file mode 100644
index 0000000..900c08d
--- /dev/null
+++ b/offline/_locales/az/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "YENİSİNİ YARADIN"
+ },
+ "explanationofflinedisabled": {
+ "message": "Oflaynsınız. Google Sənədi internet bağlantısı olmadan istifadə etmək istəyirsinizsə, Google Sənədin əsas səhifəsində ayarlara gedin və növbəti dəfə internetə qoşulanda oflayn sinxronizasiyanı aktiv edin."
+ },
+ "explanationofflineenabled": {
+ "message": "Oflaynsınız, amma mövcud faylları redaktə edə və yenilərini yarada bilərsiniz."
+ },
+ "extdesc": {
+ "message": "Sənəd, cədvəl və təqdimatların hamısını internet olmadan redaktə edin, yaradın və baxın."
+ },
+ "extname": {
+ "message": "Google Sənəd Oflayn"
+ },
+ "learnmore": {
+ "message": "Ətraflı Məlumat"
+ },
+ "popuphelptext": {
+ "message": "Harda olmağınızdan və internetə qoşulu olub-olmadığınızdan asılı olmayaraq, yazın, redaktə edin və əməkdaşlıq edin."
+ }
+}
diff --git a/offline/_locales/be/messages.json b/offline/_locales/be/messages.json
new file mode 100644
index 0000000..2af08fe
--- /dev/null
+++ b/offline/_locales/be/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u0421\u0422\u0412\u0410\u0420\u042b\u0426\u042c \u041d\u041e\u0412\u042b"},"explanationofflinedisabled":{"message":"\u0412\u044b \u045e \u043f\u0430\u0437\u0430\u0441\u0435\u0442\u043a\u0430\u0432\u044b\u043c \u0440\u044d\u0436\u044b\u043c\u0435. \u041a\u0430\u0431 \u043a\u0430\u0440\u044b\u0441\u0442\u0430\u0446\u0446\u0430 \u0414\u0430\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0456 Google \u0431\u0435\u0437 \u043f\u0430\u0434\u043a\u043b\u044e\u0447\u044d\u043d\u043d\u044f \u0434\u0430 \u0456\u043d\u0442\u044d\u0440\u043d\u044d\u0442\u0443, \u043f\u0435\u0440\u0430\u0439\u0434\u0437\u0456\u0446\u0435 \u0434\u0430 \u043d\u0430\u043b\u0430\u0434 \u043d\u0430 \u0433\u0430\u043b\u043e\u045e\u043d\u0430\u0439 \u0441\u0442\u0430\u0440\u043e\u043d\u0446\u044b \u0414\u0430\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u045e Google \u0456 \u045e\u043a\u043b\u044e\u0447\u044b\u0446\u0435 \u0441\u0456\u043d\u0445\u0440\u0430\u043d\u0456\u0437\u0430\u0446\u044b\u044e \u043f\u0430\u0434\u0447\u0430\u0441 \u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0430\u0433\u0430 \u043f\u0430\u0434\u043a\u043b\u044e\u0447\u044d\u043d\u043d\u044f \u0434\u0430 \u0456\u043d\u0442\u044d\u0440\u043d\u044d\u0442\u0443."},"explanationofflineenabled":{"message":"\u0412\u044b \u045e \u043f\u0430\u0437\u0430\u0441\u0435\u0442\u043a\u0430\u0432\u044b\u043c \u0440\u044d\u0436\u044b\u043c\u0435, \u0430\u043b\u0435 \u0432\u044b \u045e\u0441\u0451 \u0440\u043e\u045e\u043d\u0430 \u043c\u043e\u0436\u0430\u0446\u0435 \u0440\u044d\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044c \u0434\u0430\u0441\u0442\u0443\u043f\u043d\u044b\u044f \u0444\u0430\u0439\u043b\u044b \u0456 \u0441\u0442\u0432\u0430\u0440\u0430\u0446\u044c \u043d\u043e\u0432\u044b\u044f."},"extdesc":{"message":"\u0420\u044d\u0434\u0430\u0433\u0430\u0432\u0430\u043d\u043d\u0435, \u0441\u0442\u0432\u0430\u0440\u044d\u043d\u043d\u0435 \u0456 \u043f\u0440\u0430\u0433\u043b\u044f\u0434 \u0434\u0430\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u045e, \u0442\u0430\u0431\u043b\u0456\u0446 \u0456 \u043f\u0440\u044d\u0437\u0435\u043d\u0442\u0430\u0446\u044b\u0439 \u0431\u0435\u0437 \u043f\u0430\u0434\u043a\u043b\u044e\u0447\u044d\u043d\u043d\u044f \u0434\u0430 \u0456\u043d\u0442\u044d\u0440\u043d\u044d\u0442\u0443."},"extname":{"message":"\u0414\u0430\u043a\u0443\u043c\u0435\u043d\u0442\u044b Google \u0443 \u043f\u0430\u0437\u0430\u0441\u0435\u0442\u043a\u0430\u0432\u044b\u043c \u0440\u044d\u0436\u044b\u043c\u0435"},"learnmore":{"message":"\u0414\u0430\u0432\u0435\u0434\u0430\u0446\u0446\u0430 \u0431\u043e\u043b\u044c\u0448"},"popuphelptext":{"message":"\u041f\u0456\u0448\u044b\u0446\u0435, \u0440\u044d\u0434\u0430\u0433\u0443\u0439\u0446\u0435 \u0456 \u0441\u0443\u043c\u0435\u0441\u043d\u0430 \u043f\u0440\u0430\u0446\u0443\u0439\u0446\u0435 \u043d\u0430\u0434 \u0434\u0430\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0456 \u0437 \u043f\u0430\u0434\u043a\u043b\u044e\u0447\u044d\u043d\u043d\u0435\u043c \u0434\u0430 \u0456\u043d\u0442\u044d\u0440\u043d\u044d\u0442\u0443 \u0456 \u0431\u0435\u0437 \u044f\u0433\u043e."}}
diff --git a/offline/_locales/bg/messages.json b/offline/_locales/bg/messages.json
new file mode 100644
index 0000000..2717d70
--- /dev/null
+++ b/offline/_locales/bg/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "СЪЗДАВАНЕ"
+ },
+ "explanationofflinedisabled": {
+ "message": "Офлайн сте. За да използвате Google Документи без интернет връзка, отворете настройките в началната страница на Google Документи и включете офлайн синхронизиране следващия път, когато имате връзка с интернет."
+ },
+ "explanationofflineenabled": {
+ "message": "Офлайн сте, но пак можете да редактирате наличните файлове или да създавате нови."
+ },
+ "extdesc": {
+ "message": "Редактирайте, създавайте и преглеждайте своите документи, електронни таблици и презентации – всичко това без достъп до интернет."
+ },
+ "extname": {
+ "message": "Google Документи офлайн"
+ },
+ "learnmore": {
+ "message": "Научете повече"
+ },
+ "popuphelptext": {
+ "message": "Пишете, редактирайте и работете съвместно където и да сте, независимо дали имате връзка с интернет."
+ }
+}
diff --git a/offline/_locales/bn/messages.json b/offline/_locales/bn/messages.json
new file mode 100644
index 0000000..f515a3b
--- /dev/null
+++ b/offline/_locales/bn/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "নতুন তৈরী করুন"
+ },
+ "explanationofflinedisabled": {
+ "message": "আপনি অফলাইনে রয়েছেন৷ কোনো ইন্টারনেট সংযোগ ছাড়াই Google দস্তাবেজ ব্যবহার করতে, Google দস্তাবেজের হোমপেজের সেটিংসে যান এবং আপনি যখন পরের বার ইন্টারনেটের সাথে সংযুক্ত হবেন তখন অফলাইন সিঙ্ক চালু করুন৷"
+ },
+ "explanationofflineenabled": {
+ "message": "আপনি অফলাইনে রয়েছেন, কিন্তু আপনি এখনও উপলব্ধ ফাইলগুলিকে সম্পাদনা করতে বা একটি নতুন তৈরি করতে পারবেন৷"
+ },
+ "extdesc": {
+ "message": "ইন্টারনেট অ্যাক্সেস ছাড়াই আপনার ডকুমেন্ট, স্প্রেডশিট এবং উপস্থাপনা এডিট, তৈরি করুন এবং দেখুন।"
+ },
+ "extname": {
+ "message": "Google দস্তাবেজ অফলাইন"
+ },
+ "learnmore": {
+ "message": "আরও জানুন"
+ },
+ "popuphelptext": {
+ "message": "ইন্টারনেটে সংযোগ থাকা বা না থাকা অবস্থায় আপনি যে কোনো স্থান থেকে লিখুন, সম্পদনা এবং সহযোগিতা করুন৷"
+ }
+}
diff --git a/offline/_locales/ca/messages.json b/offline/_locales/ca/messages.json
new file mode 100644
index 0000000..c0ea175
--- /dev/null
+++ b/offline/_locales/ca/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CREA'N UN DE NOU"
+ },
+ "explanationofflinedisabled": {
+ "message": "No tens connexió. Per utilitzar Documents de Google sense connexió a Internet, ves a la configuració de la pàgina d'inici d'aquest servei i activa l'opció per sincronitzar-se sense connexió la propera vegada que estiguis connectat a la xarxa."
+ },
+ "explanationofflineenabled": {
+ "message": "Tot i que no tens connexió, pots editar o crear fitxers."
+ },
+ "extdesc": {
+ "message": "Edita, crea i consulta documents, fulls de càlcul i presentacions, tot sense accés a Internet."
+ },
+ "extname": {
+ "message": "Documents de Google sense connexió"
+ },
+ "learnmore": {
+ "message": "Més informació"
+ },
+ "popuphelptext": {
+ "message": "Escriu text, edita fitxers i col·labora-hi siguis on siguis, amb o sense connexió a Internet."
+ }
+}
diff --git a/offline/_locales/cs/messages.json b/offline/_locales/cs/messages.json
new file mode 100644
index 0000000..bda8fcc
--- /dev/null
+++ b/offline/_locales/cs/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "VYTVOŘIT"
+ },
+ "explanationofflinedisabled": {
+ "message": "Jste offline. Pokud chcete Dokumenty Google používat bez připojení k internetu, až budete příště online, přejděte do nastavení na domovské stránce Dokumentů Google a zapněte offline synchronizaci."
+ },
+ "explanationofflineenabled": {
+ "message": "Jste offline, ale stále můžete upravovat dostupné soubory nebo vytvářet nové."
+ },
+ "extdesc": {
+ "message": "Upravujte, vytvářejte a zobrazujte své dokumenty, tabulky a prezentace – vše bez přístupu k internetu."
+ },
+ "extname": {
+ "message": "Dokumenty Google offline"
+ },
+ "learnmore": {
+ "message": "Další informace"
+ },
+ "popuphelptext": {
+ "message": "Pište, upravujte a spolupracujte kdekoli, s připojením k internetu i bez něj."
+ }
+}
diff --git a/offline/_locales/cy/messages.json b/offline/_locales/cy/messages.json
new file mode 100644
index 0000000..50c0c02
--- /dev/null
+++ b/offline/_locales/cy/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"CREU NEWYDD"},"explanationofflinedisabled":{"message":"Rydych chi all-lein. I ddefnyddio Dogfennau Google heb gysylltiad \u00e2'r rhyngrwyd, ewch i'r gosodiadau ar dudalen hafan Dogfennau Google a throi 'offine sync' ymlaen y tro nesaf y byddwch wedi'ch cysylltu \u00e2'r rhyngrwyd."},"explanationofflineenabled":{"message":"Rydych chi all-lein, ond gallwch barhau i olygu'r ffeiliau sydd ar gael neu greu rhai newydd."},"extdesc":{"message":"Gallwch olygu, creu a gweld eich dogfennau, taenlenni a chyflwyniadau \u2013 i gyd heb fynediad i'r rhyngrwyd."},"extname":{"message":"Dogfennau Google All-lein"},"learnmore":{"message":"DYSGU MWY"},"popuphelptext":{"message":"Ysgrifennwch, golygwch a chydweithiwch lle bynnag yr ydych, gyda chysylltiad \u00e2'r rhyngrwyd neu hebddo."}}
diff --git a/offline/_locales/da/messages.json b/offline/_locales/da/messages.json
new file mode 100644
index 0000000..91d2126
--- /dev/null
+++ b/offline/_locales/da/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "OPRET NYT"
+ },
+ "explanationofflinedisabled": {
+ "message": "Du er offline. Hvis du vil bruge Google Docs uden en internetforbindelse, kan du gå til indstillinger på startsiden for Google Docs og aktivere offlinesynkronisering, næste gang du har internetforbindelse."
+ },
+ "explanationofflineenabled": {
+ "message": "Du er offline, men du kan stadig redigere tilgængelige filer eller oprette nye."
+ },
+ "extdesc": {
+ "message": "Rediger, opret og se dine dokumenter, regneark og præsentationer helt uden internetadgang."
+ },
+ "extname": {
+ "message": "Google Docs Offline"
+ },
+ "learnmore": {
+ "message": "Få flere oplysninger"
+ },
+ "popuphelptext": {
+ "message": "Skriv, rediger og samarbejd, uanset hvor du er, og uanset om du har internetforbindelse."
+ }
+}
diff --git a/offline/_locales/de/messages.json b/offline/_locales/de/messages.json
new file mode 100644
index 0000000..9e20167
--- /dev/null
+++ b/offline/_locales/de/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "NEU ERSTELLEN"
+ },
+ "explanationofflinedisabled": {
+ "message": "Sie sind offline. Um Google Docs ohne Internetverbindung zu verwenden, gehen Sie auf der Google Docs-Startseite auf \"Einstellungen\" und schalten die Offlinesynchronisierung ein, wenn Sie das nächste Mal mit dem Internet verbunden sind."
+ },
+ "explanationofflineenabled": {
+ "message": "Sie sind offline, aber können weiterhin verfügbare Dateien bearbeiten oder neue Dateien erstellen."
+ },
+ "extdesc": {
+ "message": "Mit der Erweiterung können Sie Dokumente, Tabellen und Präsentationen bearbeiten, erstellen und aufrufen – ganz ohne Internetverbindung."
+ },
+ "extname": {
+ "message": "Google Docs Offline"
+ },
+ "learnmore": {
+ "message": "Weitere Informationen"
+ },
+ "popuphelptext": {
+ "message": "Mit oder ohne Internetverbindung: Sie können von überall Dokumente erstellen, ändern und zusammen mit anderen Nutzern bearbeiten."
+ }
+}
diff --git a/offline/_locales/el/messages.json b/offline/_locales/el/messages.json
new file mode 100644
index 0000000..e1943af
--- /dev/null
+++ b/offline/_locales/el/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "ΔΗΜΙΟΥΡΓΙΑ ΝΕΟΥ"
+ },
+ "explanationofflinedisabled": {
+ "message": "Είστε εκτός σύνδεσης. Για να χρησιμοποιήσετε τα Έγγραφα Google χωρίς σύνδεση στο διαδίκτυο, μεταβείτε στις ρυθμίσεις στην αρχική σελίδα των Εγγράφων Google και ενεργοποιήστε τον συγχρονισμό εκτός σύνδεσης την επόμενη φορά που θα είστε συνδεδεμένοι στο διαδίκτυο."
+ },
+ "explanationofflineenabled": {
+ "message": "Είστε εκτός σύνδεσης αλλά μπορείτε να επεξεργαστείτε τα διαθέσιμα αρχεία ή να δημιουργήσετε νέα αρχεία."
+ },
+ "extdesc": {
+ "message": "Επεξεργαστείτε, δημιουργήστε και δείτε τα έγγραφα, τα υπολογιστικά φύλλα και τις παρουσιάσεις σας και όλα αυτά χωρίς πρόσβαση στο διαδίκτυο."
+ },
+ "extname": {
+ "message": "Έγγραφα Google εκτός σύνδεσης"
+ },
+ "learnmore": {
+ "message": "Μάθετε περισσότερα"
+ },
+ "popuphelptext": {
+ "message": "Γράψτε, επεξεργαστείτε και συνεργαστείτε με άλλους χρήστες όπου και αν βρίσκεστε, με ή χωρίς σύνδεση στο διαδίκτυο."
+ }
+}
diff --git a/offline/_locales/en/messages.json b/offline/_locales/en/messages.json
new file mode 100644
index 0000000..b501961
--- /dev/null
+++ b/offline/_locales/en/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CREATE NEW"
+ },
+ "explanationofflinedisabled": {
+ "message": "You're offline. To use Google Docs without an internet connection, go to settings on the Google Docs homepage and turn on offline sync the next time you're connected to the internet."
+ },
+ "explanationofflineenabled": {
+ "message": "You're offline, but you can still edit available files or create new ones."
+ },
+ "extdesc": {
+ "message": "Edit, create, and view your documents, spreadsheets, and presentations — all without internet access."
+ },
+ "extname": {
+ "message": "Google Docs Offline"
+ },
+ "learnmore": {
+ "message": "Learn More"
+ },
+ "popuphelptext": {
+ "message": "Write, edit, and collaborate wherever you are, with or without an internet connection."
+ }
+}
diff --git a/offline/_locales/en_CA/messages.json b/offline/_locales/en_CA/messages.json
new file mode 100644
index 0000000..8b6af29
--- /dev/null
+++ b/offline/_locales/en_CA/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CREATE NEW"
+ },
+ "explanationofflinedisabled": {
+ "message": "You're offline. To use Google Docs without an Internet connection, go to settings on the Google Docs homepage and turn on offline sync the next time you're connected to the Internet."
+ },
+ "explanationofflineenabled": {
+ "message": "You're offline, but you can still edit available files or create new ones."
+ },
+ "extdesc": {
+ "message": "Edit, create and view your documents, spreadsheets and presentations – all without Internet access."
+ },
+ "extname": {
+ "message": "Google Docs Offline"
+ },
+ "learnmore": {
+ "message": "Learn more"
+ },
+ "popuphelptext": {
+ "message": "Write, edit and collaborate wherever you are, with or without an Internet connection."
+ }
+}
diff --git a/offline/_locales/en_GB/messages.json b/offline/_locales/en_GB/messages.json
new file mode 100644
index 0000000..8b6af29
--- /dev/null
+++ b/offline/_locales/en_GB/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CREATE NEW"
+ },
+ "explanationofflinedisabled": {
+ "message": "You're offline. To use Google Docs without an Internet connection, go to settings on the Google Docs homepage and turn on offline sync the next time you're connected to the Internet."
+ },
+ "explanationofflineenabled": {
+ "message": "You're offline, but you can still edit available files or create new ones."
+ },
+ "extdesc": {
+ "message": "Edit, create and view your documents, spreadsheets and presentations – all without Internet access."
+ },
+ "extname": {
+ "message": "Google Docs Offline"
+ },
+ "learnmore": {
+ "message": "Learn more"
+ },
+ "popuphelptext": {
+ "message": "Write, edit and collaborate wherever you are, with or without an Internet connection."
+ }
+}
diff --git a/offline/_locales/en_US/messages.json b/offline/_locales/en_US/messages.json
new file mode 100644
index 0000000..e1987f1
--- /dev/null
+++ b/offline/_locales/en_US/messages.json
@@ -0,0 +1,30 @@
+{
+ "createNew": {
+ "description": "Text shown in the extension pop up for creating a new document",
+ "message": "CREATE NEW"
+ },
+ "explanationOfflineDisabled": {
+ "description": "Text shown in the extension popup when the user is offline and offline is disabled.",
+ "message": "You're offline. To use Google Docs without an internet connection, go to settings on the Google Docs homepage and turn on offline sync the next time you're connected to the internet."
+ },
+ "explanationOfflineEnabled": {
+ "description": "Text shown in the extension popup when the user is offline and offline is enabled.",
+ "message": "You're offline, but you can still edit available files or create new ones."
+ },
+ "extDesc": {
+ "description": "Extension description",
+ "message": "Edit, create, and view your documents, spreadsheets, and presentations — all without internet access."
+ },
+ "extName": {
+ "description": "Extension name",
+ "message": "Google Docs Offline"
+ },
+ "learnMore": {
+ "description": "Text shown after the help text that the user can click to learn more.",
+ "message": "Learn More"
+ },
+ "popupHelpText": {
+ "description": "Help text that is shown as part of the extension pop-up title",
+ "message": "Write, edit, and collaborate wherever you are, with or without an internet connection."
+ }
+}
diff --git a/offline/_locales/es/messages.json b/offline/_locales/es/messages.json
new file mode 100644
index 0000000..9b0409f
--- /dev/null
+++ b/offline/_locales/es/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CREAR"
+ },
+ "explanationofflinedisabled": {
+ "message": "No tienes conexión. Para usar Documentos de Google sin conexión a Internet, ve a Configuración en la página principal de Documentos de Google y activa la sincronización sin conexión la próxima vez que te conectes a Internet."
+ },
+ "explanationofflineenabled": {
+ "message": "No tienes conexión. Aun así, puedes crear archivos o editar los que estén disponibles."
+ },
+ "extdesc": {
+ "message": "Edita, crea y consulta tus documentos, hojas de cálculo y presentaciones; todo ello, sin acceso a Internet."
+ },
+ "extname": {
+ "message": "Documentos de Google sin conexión"
+ },
+ "learnmore": {
+ "message": "Más información"
+ },
+ "popuphelptext": {
+ "message": "Escribe o edita contenido y colabora con otras personas desde cualquier lugar, con o sin conexión a Internet."
+ }
+}
diff --git a/offline/_locales/es_419/messages.json b/offline/_locales/es_419/messages.json
new file mode 100644
index 0000000..c1a4af1
--- /dev/null
+++ b/offline/_locales/es_419/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CREAR NUEVO"
+ },
+ "explanationofflinedisabled": {
+ "message": "No tienes conexión. Para usar Documentos de Google sin conexión a Internet, ve a la configuración de la página principal de Documentos de Google y activa la sincronización sin conexión la próxima vez que estés conectado a Internet."
+ },
+ "explanationofflineenabled": {
+ "message": "No tienes conexión, pero aún puedes modificar los archivos disponibles o crear otros nuevos."
+ },
+ "extdesc": {
+ "message": "Edita, crea y consulta tus documentos, hojas de cálculo y presentaciones aunque no tengas acceso a Internet"
+ },
+ "extname": {
+ "message": "Documentos de Google sin conexión"
+ },
+ "learnmore": {
+ "message": "Más información"
+ },
+ "popuphelptext": {
+ "message": "Escribe, modifica y colabora dondequiera que estés, con conexión a Internet o sin ella."
+ }
+}
diff --git a/offline/_locales/et/messages.json b/offline/_locales/et/messages.json
new file mode 100644
index 0000000..f844692
--- /dev/null
+++ b/offline/_locales/et/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "LOO UUS"
+ },
+ "explanationofflinedisabled": {
+ "message": "Teil ei ole võrguühendust. Teenuse Google’i dokumendid kasutamiseks ilma Interneti-ühenduseta avage järgmine kord, kui olete Internetiga ühendatud, teenuse Google’i dokumendid avalehel seaded ja lülitage sisse võrguühenduseta sünkroonimine."
+ },
+ "explanationofflineenabled": {
+ "message": "Teil ei ole võrguühendust, kuid saate endiselt saadaolevaid faile muuta või uusi luua."
+ },
+ "extdesc": {
+ "message": "Saate luua, muuta ja vaadata oma dokumente, arvustustabeleid ning esitlusi ilma Interneti-ühenduseta."
+ },
+ "extname": {
+ "message": "Võrguühenduseta Google’i dokumendid"
+ },
+ "learnmore": {
+ "message": "Lisateave"
+ },
+ "popuphelptext": {
+ "message": "Kirjutage, muutke ja tehke koostööd ükskõik kus olenemata sellest, kas teil on Interneti-ühendus."
+ }
+}
diff --git a/offline/_locales/eu/messages.json b/offline/_locales/eu/messages.json
new file mode 100644
index 0000000..b152542
--- /dev/null
+++ b/offline/_locales/eu/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"SORTU"},"explanationofflinedisabled":{"message":"Ez zaude konektatuta Internetera. Google Dokumentuak konexiorik gabe erabiltzeko, joan Google Dokumentuak zerbitzuaren orri nagusiko ezarpenetara eta aktibatu konexiorik gabeko sinkronizazioa Internetera konektatzen zaren hurrengoan."},"explanationofflineenabled":{"message":"Ez zaude konektatuta Internetera, baina erabilgarri dauden fitxategiak edita ditzakezu, baita beste batzuk sortu ere."},"extdesc":{"message":"Editatu, sortu eta ikusi dokumentuak, kalkulu-orriak eta aurkezpenak Interneteko konexiorik gabe."},"extname":{"message":"Google Dokumentuak konexiorik gabe"},"learnmore":{"message":"Lortu informazio gehiago"},"popuphelptext":{"message":"Edonon zaudela ere, ez duzu zertan konektatuta egon idatzi, editatu eta lankidetzan jardun ahal izateko."}}
diff --git a/offline/_locales/fa/messages.json b/offline/_locales/fa/messages.json
new file mode 100644
index 0000000..6aa93b5
--- /dev/null
+++ b/offline/_locales/fa/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "ایجاد سند جدید"
+ },
+ "explanationofflinedisabled": {
+ "message": "آفلاین هستید. برای استفاده از سندنگار Google بدون اتصال اینترنت، دفعه بعد که به اینترنت وصل شدید، به تنظیمات در صفحه اصلی سندنگار Google بروید و همگامسازی آفلاین را فعال کنید."
+ },
+ "explanationofflineenabled": {
+ "message": "آفلاین هستید اما همچنان میتوانید فایلهایی را که در دسترس هستند ویرایش کنید یا فایلهای جدیدی ایجاد کنید."
+ },
+ "extdesc": {
+ "message": "اسناد، صفحاتگسترده و ارائهها را ویرایش، ایجاد و مشاهده کنید — همه این کارها بدون دسترسی به اینترنت."
+ },
+ "extname": {
+ "message": "سندنگار Google آفلاین"
+ },
+ "learnmore": {
+ "message": "بیشتر بدانید"
+ },
+ "popuphelptext": {
+ "message": "هرکجا هستید، با اتصال به اینترنت یا بدون اتصال به اینترنت، بنویسید، ویرایش و مشارکت کنید."
+ }
+}
diff --git a/offline/_locales/fi/messages.json b/offline/_locales/fi/messages.json
new file mode 100644
index 0000000..69f14b4
--- /dev/null
+++ b/offline/_locales/fi/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "LUO UUSI"
+ },
+ "explanationofflinedisabled": {
+ "message": "Olet offline-tilassa. Jos haluat käyttää Google Docsia ilman internetyhteyttä, siirry Google Docsin etusivulle ja ota asetuksissa käyttöön offline-synkronointi, kun seuraavan kerran olet yhteydessä internetiin."
+ },
+ "explanationofflineenabled": {
+ "message": "Olet offline-tilassa. Voit kuitenkin muokata käytettävissä olevia tiedostoja tai luoda uusia."
+ },
+ "extdesc": {
+ "message": "Muokkaa, luo ja katso dokumentteja, laskentataulukoita ja esityksiä ilman internetyhteyttä."
+ },
+ "extname": {
+ "message": "Google Docsin offline-tila"
+ },
+ "learnmore": {
+ "message": "Lisätietoja"
+ },
+ "popuphelptext": {
+ "message": "Kirjoita, muokkaa ja tee yhteistyötä paikasta riippumatta, myös ilman internetyhteyttä."
+ }
+}
diff --git a/offline/_locales/fil/messages.json b/offline/_locales/fil/messages.json
new file mode 100644
index 0000000..23a9260
--- /dev/null
+++ b/offline/_locales/fil/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "GUMAWA NG BAGO"
+ },
+ "explanationofflinedisabled": {
+ "message": "Naka-offline ka. Upang magamit ang Google Docs nang walang koneksyon sa internet, pumunta sa mga setting sa homepage ng Google Docs at i-on ang offline na pag-sync sa susunod na nakakonekta ka sa internet."
+ },
+ "explanationofflineenabled": {
+ "message": "Naka-offline ka, ngunit maaari mo pa ring i-edit ang mga available na file o gumawa ng mga bago."
+ },
+ "extdesc": {
+ "message": "I-edit, gawin, at tingnan ang iyong mga dokumento, spreadsheet, at presentation — lahat ng ito nang walang access sa internet."
+ },
+ "extname": {
+ "message": "Google Docs Offline"
+ },
+ "learnmore": {
+ "message": "Matuto Pa"
+ },
+ "popuphelptext": {
+ "message": "Magsulat, mag-edit at makipag-collaborate nasaan ka man, nang mayroon o walang koneksyon sa internet."
+ }
+}
diff --git a/offline/_locales/fr/messages.json b/offline/_locales/fr/messages.json
new file mode 100644
index 0000000..dc059df
--- /dev/null
+++ b/offline/_locales/fr/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CRÉER"
+ },
+ "explanationofflinedisabled": {
+ "message": "Vous êtes hors connexion. Pour pouvoir utiliser Google Docs sans connexion Internet, accédez aux paramètres de la page d'accueil de Google Docs et activez la synchronisation hors connexion lors de votre prochaine connexion à Internet."
+ },
+ "explanationofflineenabled": {
+ "message": "Vous êtes hors connexion, mais vous pouvez quand même modifier les fichiers disponibles ou créer des fichiers."
+ },
+ "extdesc": {
+ "message": "Modifiez, créez et consultez des documents, feuilles de calcul et présentations, sans accès à Internet."
+ },
+ "extname": {
+ "message": "Google Docs hors connexion"
+ },
+ "learnmore": {
+ "message": "En savoir plus"
+ },
+ "popuphelptext": {
+ "message": "Rédigez des documents, modifiez-les et collaborez où que vous soyez, avec ou sans connexion Internet."
+ }
+}
diff --git a/offline/_locales/fr_CA/messages.json b/offline/_locales/fr_CA/messages.json
new file mode 100644
index 0000000..7d5bf60
--- /dev/null
+++ b/offline/_locales/fr_CA/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CRÉER"
+ },
+ "explanationofflinedisabled": {
+ "message": "Vous êtes hors connexion. Pour utiliser Google Documents sans connexion Internet, accédez aux paramètres sur la page d'accueil Google Documents et activez la synchronisation hors ligne la prochaine fois que vous êtes connecté à Internet."
+ },
+ "explanationofflineenabled": {
+ "message": "Vous êtes hors connexion, mais vous pouvez toujours modifier les fichiers disponibles ou en créer."
+ },
+ "extdesc": {
+ "message": "Modifiez, créez et consultez vos documents, vos feuilles de calcul et vos présentations, le tout sans accès à Internet."
+ },
+ "extname": {
+ "message": "Google Documents hors connexion"
+ },
+ "learnmore": {
+ "message": "En savoir plus"
+ },
+ "popuphelptext": {
+ "message": "Écrivez, modifiez et collaborez où que vous soyez, avec ou sans connexion Internet."
+ }
+}
diff --git a/offline/_locales/gl/messages.json b/offline/_locales/gl/messages.json
new file mode 100644
index 0000000..60c2380
--- /dev/null
+++ b/offline/_locales/gl/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"CREAR NOVO"},"explanationofflinedisabled":{"message":"Est\u00e1s sen conexi\u00f3n. Para utilizar Documentos de Google sen conexi\u00f3n a Internet, accede \u00e1s opci\u00f3ns de configuraci\u00f3n na p\u00e1xina de inicio de Documentos de Google e activa a sincronizaci\u00f3n sen conexi\u00f3n a pr\u00f3xima vez que esteas conectado a Internet."},"explanationofflineenabled":{"message":"Est\u00e1s sen conexi\u00f3n. A\u00ednda podes editar os ficheiros dispo\u00f1ibles ou crear outros novos."},"extdesc":{"message":"Modifica, crea e consulta os teus documentos, follas de c\u00e1lculo e presentaci\u00f3ns sen necesidade de acceder a Internet."},"extname":{"message":"Documentos de Google sen conexi\u00f3n"},"learnmore":{"message":"M\u00e1is informaci\u00f3n"},"popuphelptext":{"message":"Escribe, edita e colabora esteas onde esteas, tanto se tes conexi\u00f3n a Internet como se non a tes."}}
diff --git a/offline/_locales/gu/messages.json b/offline/_locales/gu/messages.json
new file mode 100644
index 0000000..138a78c
--- /dev/null
+++ b/offline/_locales/gu/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "નવું બનાવો"
+ },
+ "explanationofflinedisabled": {
+ "message": "તમે ઑફલાઇન છો. ઇન્ટરનેટ કનેક્શન વગર Google દસ્તાવેજનો ઉપયોગ કરવા માટે, તમે આગલી વખતે જ્યારે ઇન્ટરનેટ સાથે કનેક્ટ થાઓ ત્યારે Google દસ્તાવેજ હોમપેજ પર સેટિંગ્સ પર જાઓ અને ઑફલાઇન સમન્વયન ચાલુ કરો."
+ },
+ "explanationofflineenabled": {
+ "message": "તમે ઑફલાઇન છો, પરંતુ તમે હજુ પણ ઉપલબ્ધ ફાઇલો સંપાદિત કરી શકો છો અથવા નવી બનાવી શકો છો."
+ },
+ "extdesc": {
+ "message": "તમારા દસ્તાવેજો, સ્પ્રેડશીટ અને પ્રસ્તુતિ બનાવો, તેમાં ફેરફાર કરો તેમજ જુઓ - આ બધું ઇન્ટરનેટ ઍક્સેસ વગર."
+ },
+ "extname": {
+ "message": "Google દસ્તાવેજ ઑફલાઇન"
+ },
+ "learnmore": {
+ "message": "વધુ જાણો"
+ },
+ "popuphelptext": {
+ "message": "ઇન્ટરનેટ કનેક્શન સાથે અથવા વગર, તમે ગમે ત્યાં હોવ લખો, સંપાદિત કરો અને સહયોગ કરો."
+ }
+}
diff --git a/offline/_locales/hi/messages.json b/offline/_locales/hi/messages.json
new file mode 100644
index 0000000..7e93ca7
--- /dev/null
+++ b/offline/_locales/hi/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "नया बनाएं"
+ },
+ "explanationofflinedisabled": {
+ "message": "आप ऑफ़लाइन हैं. इंटरनेट कनेक्शन के बिना Google दस्तावेज़ का उपयोग करने के लिए, अगली बार इंटरनेट से कनेक्ट होने पर Google दस्तावेज़ के मुखपृष्ठ पर सेटिंग में जाएं और ऑफ़लाइन समन्वयन चालू करें."
+ },
+ "explanationofflineenabled": {
+ "message": "आप ऑफ़लाइन हैं, लेकिन आप अब भी उपलब्ध फ़ाइलें बदलाव कर सकते हैं या नई फ़ाइलें बना सकते हैं."
+ },
+ "extdesc": {
+ "message": "बिना किसी इंटरनेट ऐक्सेस के अपने दस्तावेज़, स्प्रेडशीट और प्रस्तुतिकरणों में बदलाव करें, उन्हें बनाएं और देखें."
+ },
+ "extname": {
+ "message": "Google दस्तावेज़ ऑफ़लाइन"
+ },
+ "learnmore": {
+ "message": "ज़्यादा जानें"
+ },
+ "popuphelptext": {
+ "message": "इंटरनेट कनेक्शन के साथ या उसके बिना कहीं से भी लिखें, बदलाव करें और सहयोग करें."
+ }
+}
diff --git a/offline/_locales/hr/messages.json b/offline/_locales/hr/messages.json
new file mode 100644
index 0000000..e74d1df
--- /dev/null
+++ b/offline/_locales/hr/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "IZRADI NOVI"
+ },
+ "explanationofflinedisabled": {
+ "message": "Vi ste izvan mreže. Da biste koristili Google dokumente bez internetske veze, idite na postavke na početnoj stranici Google dokumenata i uključite izvanmrežnu sinkronizaciju sljedeći put kada se povežete s internetom."
+ },
+ "explanationofflineenabled": {
+ "message": "Vi ste izvan mreže, no i dalje možete uređivati dostupne datoteke i izrađivati nove."
+ },
+ "extdesc": {
+ "message": "Uredite, izradite i pregledajte dokumente, proračunske tablice i prezentacije – sve bez pristupa internetu."
+ },
+ "extname": {
+ "message": "Google dokumenti izvanmrežno"
+ },
+ "learnmore": {
+ "message": "Saznajte više"
+ },
+ "popuphelptext": {
+ "message": "Pišite, uređujte i surađujte gdje god se nalazili, povezani s internetom ili izvanmrežno."
+ }
+}
diff --git a/offline/_locales/hu/messages.json b/offline/_locales/hu/messages.json
new file mode 100644
index 0000000..e956e47
--- /dev/null
+++ b/offline/_locales/hu/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "ÚJ LÉTREHOZÁSA"
+ },
+ "explanationofflinedisabled": {
+ "message": "Jelenleg offline állapotban van. Ha a Google Dokumentumokat internetkapcsolat nélkül szeretné használni, a legközelebbi internethasználata során nyissa meg a Google Dokumentumok kezdőoldalán található beállításokat, és tiltsa le az offline szinkronizálás beállítást."
+ },
+ "explanationofflineenabled": {
+ "message": "Offline állapotban van, de az elérhető fájlokat így is szerkesztheti, valamint létrehozhat újakat."
+ },
+ "extdesc": {
+ "message": "Szerkesszen, hozzon létre és tekintsen meg dokumentumokat, táblázatokat és prezentációkat – akár internetkapcsolat nélkül is."
+ },
+ "extname": {
+ "message": "Google Dokumentumok Offline"
+ },
+ "learnmore": {
+ "message": "További információ"
+ },
+ "popuphelptext": {
+ "message": "Írjon, szerkesszen és dolgozzon együtt másokkal internetkapcsolattal vagy anélkül, bárhol is van."
+ }
+}
diff --git a/offline/_locales/hy/messages.json b/offline/_locales/hy/messages.json
new file mode 100644
index 0000000..ef19f42
--- /dev/null
+++ b/offline/_locales/hy/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u054d\u054f\u0535\u0542\u053e\u0535\u053c \u0546\u0548\u0550"},"explanationofflinedisabled":{"message":"Google \u0553\u0561\u057d\u057f\u0561\u0569\u0572\u0569\u0565\u0580\u0568 \u0576\u0561\u0587 \u0561\u0576\u0581\u0561\u0576\u0581 \u057c\u0565\u056a\u056b\u0574\u0578\u0582\u0574 \u0585\u0563\u057f\u0561\u0563\u0578\u0580\u056e\u0565\u056c\u0578\u0582 \u0570\u0561\u0574\u0561\u0580 \u0574\u056b\u0561\u0581\u0565\u0584 \u0570\u0561\u0574\u0561\u0581\u0561\u0576\u0581\u056b\u0576, \u0562\u0561\u0581\u0565\u0584 \u056e\u0561\u057c\u0561\u0575\u0578\u0582\u0569\u0575\u0561\u0576 \u0563\u056c\u056d\u0561\u057e\u0578\u0580 \u0567\u057b\u0568, \u0561\u0576\u0581\u0565\u0584 \u056f\u0561\u0580\u0563\u0561\u057e\u0578\u0580\u0578\u0582\u0574\u0576\u0565\u0580 \u0587 \u0574\u056b\u0561\u0581\u0580\u0565\u0584 \u0561\u0576\u0581\u0561\u0576\u0581 \u0570\u0561\u0574\u0561\u056a\u0561\u0574\u0561\u0581\u0578\u0582\u0574\u0568:"},"explanationofflineenabled":{"message":"\u0534\u0578\u0582\u0584 \u0574\u056b\u0561\u0581\u0561\u056e \u0579\u0565\u0584 \u0570\u0561\u0574\u0561\u0581\u0561\u0576\u0581\u056b\u0576, \u057d\u0561\u056f\u0561\u0575\u0576 \u0564\u0561\u0580\u0571\u0575\u0561\u056c \u056f\u0561\u0580\u0578\u0572 \u0565\u0584 \u0583\u0578\u0583\u0578\u056d\u0565\u056c \u0561\u057c\u056f\u0561 \u0586\u0561\u0575\u056c\u0565\u0580\u0568 \u056f\u0561\u0574 \u057d\u057f\u0565\u0572\u056e\u0565\u056c \u0576\u0578\u0580 \u0583\u0561\u057d\u057f\u0561\u0569\u0572\u0569\u0565\u0580:"},"extdesc":{"message":"\u0553\u0578\u0583\u0578\u056d\u0565\u0584, \u057d\u057f\u0565\u0572\u056e\u0565\u0584 \u0587 \u0564\u056b\u057f\u0565\u0584 \u0571\u0565\u0580 \u0583\u0561\u057d\u057f\u0561\u0569\u0572\u0569\u0565\u0580\u0568, \u0561\u0572\u0575\u0578\u0582\u057d\u0561\u056f\u0576\u0565\u0580\u0576 \u0578\u0582 \u0576\u0565\u0580\u056f\u0561\u0575\u0561\u0581\u0578\u0582\u0574\u0576\u0565\u0580\u0568 \u0561\u057c\u0561\u0576\u0581 \u056b\u0576\u057f\u0565\u0580\u0576\u0565\u057f \u056f\u0561\u057a\u056b:"},"extname":{"message":"Google Docs Offline"},"learnmore":{"message":"\u0544\u0561\u0576\u0580\u0561\u0574\u0561\u057d\u0576"},"popuphelptext":{"message":"\u054d\u057f\u0565\u0572\u056e\u0565\u0584 \u0583\u0561\u057d\u057f\u0561\u0569\u0572\u0569\u0565\u0580 \u0587 \u056d\u0574\u0562\u0561\u0563\u0580\u0565\u0584 \u0564\u0580\u0561\u0576\u0584 \u0563\u0578\u0580\u056e\u0568\u0576\u056f\u0565\u0580\u0576\u0565\u0580\u056b \u0570\u0565\u057f \u0574\u056b\u0561\u057d\u056b\u0576\u055d \u0578\u0580\u057f\u0565\u0572 \u0567\u056c \u0578\u0580 \u056c\u056b\u0576\u0565\u0584, \u0561\u0576\u0563\u0561\u0574 \u0561\u057c\u0561\u0576\u0581 \u0581\u0561\u0576\u0581\u056b\u0576 \u0574\u056b\u0561\u0576\u0561\u056c\u0578\u0582\u0589"}}
diff --git a/offline/_locales/id/messages.json b/offline/_locales/id/messages.json
new file mode 100644
index 0000000..e3ecec0
--- /dev/null
+++ b/offline/_locales/id/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "BUAT BARU"
+ },
+ "explanationofflinedisabled": {
+ "message": "Anda sedang offline. Untuk menggunakan Google Dokumen tanpa koneksi internet, buka setelan di beranda Google Dokumen dan aktifkan sinkronisasi offline saat terhubung ke internet."
+ },
+ "explanationofflineenabled": {
+ "message": "Anda sedang offline, namun Anda masih dapat mengedit file yang tersedia atau membuat file baru."
+ },
+ "extdesc": {
+ "message": "Edit, buat, dan lihat dokumen, spreadsheet, dan presentasi — tanpa perlu akses internet."
+ },
+ "extname": {
+ "message": "Google Dokumen Offline"
+ },
+ "learnmore": {
+ "message": "Pelajari Lebih Lanjut"
+ },
+ "popuphelptext": {
+ "message": "Tulis, edit, dan gabungkan di mana saja, dengan atau tanpa koneksi internet."
+ }
+}
diff --git a/offline/_locales/is/messages.json b/offline/_locales/is/messages.json
new file mode 100644
index 0000000..b40e336
--- /dev/null
+++ b/offline/_locales/is/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"B\u00daA TIL N\u00ddTT"},"explanationofflinedisabled":{"message":"\u00de\u00fa ert \u00e1n nettengingar. Til a\u00f0 nota Google skj\u00f6l \u00e1n nettengingar skaltu opna stillingarnar \u00e1 heimas\u00ed\u00f0u Google skjala og virkja samstillingu \u00e1n nettengingar n\u00e6st \u00feegar \u00fe\u00fa tengist netinu."},"explanationofflineenabled":{"message":"Engin nettenging. \u00de\u00fa getur samt sem \u00e1\u00f0ur breytt tilt\u00e6kum skr\u00e1m e\u00f0a b\u00fai\u00f0 til n\u00fdjar."},"extdesc":{"message":"Breyttu, b\u00fa\u00f0u til og sko\u00f0a\u00f0u skj\u00f6lin \u00fe\u00edn, t\u00f6flureikna og kynningar \u2014 allt \u00e1n nettengingar."},"extname":{"message":"Google skj\u00f6l \u00e1n nettengingar"},"learnmore":{"message":"Frekari uppl\u00fdsingar"},"popuphelptext":{"message":"Skrifa\u00f0u, breyttu og starfa\u00f0u me\u00f0 \u00f6\u00f0rum hvort sem nettenging er til sta\u00f0ar e\u00f0a ekki."}}
diff --git a/offline/_locales/it/messages.json b/offline/_locales/it/messages.json
new file mode 100644
index 0000000..b5a0947
--- /dev/null
+++ b/offline/_locales/it/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CREA NUOVO"
+ },
+ "explanationofflinedisabled": {
+ "message": "Sei offline. Per utilizzare Documenti Google senza una connessione Internet, apri le impostazioni nella home page di Documenti Google e attiva la sincronizzazione offline la prossima volta che ti colleghi a Internet."
+ },
+ "explanationofflineenabled": {
+ "message": "Sei offline, ma puoi comunque modificare i file disponibili o crearne di nuovi."
+ },
+ "extdesc": {
+ "message": "Modifica, crea e visualizza documenti, fogli di lavoro e presentazioni, senza accesso a Internet."
+ },
+ "extname": {
+ "message": "Documenti Google offline"
+ },
+ "learnmore": {
+ "message": "Ulteriori informazioni"
+ },
+ "popuphelptext": {
+ "message": "Scrivi, modifica e collabora ovunque ti trovi, con o senza una connessione Internet."
+ }
+}
diff --git a/offline/_locales/iw/messages.json b/offline/_locales/iw/messages.json
new file mode 100644
index 0000000..69f051c
--- /dev/null
+++ b/offline/_locales/iw/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u05d9\u05e6\u05d9\u05e8\u05ea \u05d7\u05d3\u05e9"},"explanationofflinedisabled":{"message":"\u05d0\u05d9\u05df \u05dc\u05da \u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8. \u05db\u05d3\u05d9 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1-Google Docs \u05dc\u05dc\u05d0 \u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8, \u05d1\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05d4\u05d1\u05d0\u05d4 \u05dc\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8, \u05d9\u05e9 \u05dc\u05e2\u05d1\u05d5\u05e8 \u05dc\u05e7\u05d8\u05e2 \u05d4\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d1\u05d3\u05e3 \u05d4\u05d1\u05d9\u05ea \u05e9\u05dc Google Docs \u05d5\u05dc\u05d4\u05e4\u05e2\u05d9\u05dc \u05e1\u05e0\u05db\u05e8\u05d5\u05df \u05d1\u05de\u05e6\u05d1 \u05d0\u05d5\u05e4\u05dc\u05d9\u05d9\u05df."},"explanationofflineenabled":{"message":"\u05d0\u05d9\u05df \u05dc\u05da \u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8, \u05d0\u05da \u05e2\u05d3\u05d9\u05d9\u05df \u05d1\u05d0\u05e4\u05e9\u05e8\u05d5\u05ea\u05da \u05dc\u05e2\u05e8\u05d5\u05da \u05d0\u05ea \u05d4\u05e7\u05d1\u05e6\u05d9\u05dd \u05d4\u05d6\u05de\u05d9\u05e0\u05d9\u05dd \u05d0\u05d5 \u05dc\u05d9\u05e6\u05d5\u05e8 \u05e7\u05d1\u05e6\u05d9\u05dd \u05d7\u05d3\u05e9\u05d9\u05dd."},"extdesc":{"message":"\u05e2\u05e8\u05d9\u05db\u05d4, \u05d9\u05e6\u05d9\u05e8\u05d4 \u05d5\u05d4\u05e6\u05d2\u05d4 \u05e9\u05dc \u05de\u05e1\u05de\u05db\u05d9\u05dd, \u05d2\u05d9\u05dc\u05d9\u05d5\u05e0\u05d5\u05ea \u05d0\u05dc\u05e7\u05d8\u05e8\u05d5\u05e0\u05d9\u05d9\u05dd \u05d5\u05de\u05e6\u05d2\u05d5\u05ea \u2013 \u05d2\u05dd \u05d1\u05dc\u05d9 \u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8."},"extname":{"message":"Google Docs Offline"},"learnmore":{"message":"\u05de\u05d9\u05d3\u05e2 \u05e0\u05d5\u05e1\u05e3"},"popuphelptext":{"message":"\u05db\u05ea\u05d9\u05d1\u05d4, \u05e2\u05e8\u05d9\u05db\u05d4 \u05d5\u05e9\u05d9\u05ea\u05d5\u05e3 \u05e4\u05e2\u05d5\u05dc\u05d4 \u05d1\u05db\u05dc \u05de\u05e7\u05d5\u05dd, \u05e2\u05dd \u05d0\u05d5 \u05d1\u05dc\u05d9 \u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8."}}
diff --git a/offline/_locales/ja/messages.json b/offline/_locales/ja/messages.json
new file mode 100644
index 0000000..e463fa4
--- /dev/null
+++ b/offline/_locales/ja/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "新規作成"
+ },
+ "explanationofflinedisabled": {
+ "message": "現在オフラインです。インターネットに接続せずに Google ドキュメントを使用するには、次回インターネットに接続したときに Google ドキュメントのホーム画面から [設定] にアクセスし、[オフライン同期] をオンにしてください。"
+ },
+ "explanationofflineenabled": {
+ "message": "現在オフラインですが、アクセス可能なファイルの編集や新規ファイルの作成は引き続き行えます。"
+ },
+ "extdesc": {
+ "message": "インターネットに接続していなくても、ドキュメント、スプレッドシート、プレゼンテーションを編集、作成、表示できます。"
+ },
+ "extname": {
+ "message": "Google オフライン ドキュメント"
+ },
+ "learnmore": {
+ "message": "詳細"
+ },
+ "popuphelptext": {
+ "message": "インターネットに接続していなくてもファイルの作成、編集、共同作業を継続できます。"
+ }
+}
diff --git a/offline/_locales/ka/messages.json b/offline/_locales/ka/messages.json
new file mode 100644
index 0000000..a83cd82
--- /dev/null
+++ b/offline/_locales/ka/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u10d0\u10ee\u10da\u10d8\u10e1 \u10e8\u10d4\u10e5\u10db\u10dc\u10d0"},"explanationofflinedisabled":{"message":"\u10d7\u10e5\u10d5\u10d4\u10dc \u10ee\u10d0\u10d6\u10d2\u10d0\u10e0\u10d4\u10e8\u10d4 \u10ee\u10d0\u10e0\u10d7. Google Docs-\u10d8\u10e1 \u10d8\u10dc\u10e2\u10d4\u10e0\u10dc\u10d4\u10e2\u10d7\u10d0\u10dc \u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d8\u10e1 \u10d2\u10d0\u10e0\u10d4\u10e8\u10d4 \u10d2\u10d0\u10db\u10dd\u10e1\u10d0\u10e7\u10d4\u10dc\u10d4\u10d1\u10da\u10d0\u10d3 \u10d2\u10d0\u10d3\u10d0\u10d3\u10d8\u10d7 \u10de\u10d0\u10e0\u10d0\u10db\u10d4\u10e2\u10e0\u10d4\u10d1\u10d6\u10d4 Google Docs-\u10d8\u10e1 \u10db\u10d7\u10d0\u10d5\u10d0\u10e0 \u10d2\u10d5\u10d4\u10e0\u10d3\u10d6\u10d4 \u10d3\u10d0 \u10e9\u10d0\u10e0\u10d7\u10d4\u10d7 \u10ee\u10d0\u10d6\u10d2\u10d0\u10e0\u10d4\u10e8\u10d4 \u10e1\u10d8\u10dc\u10e5\u10e0\u10dd\u10dc\u10d8\u10d6\u10d0\u10ea\u10d8\u10d0, \u10e0\u10dd\u10d3\u10d4\u10e1\u10d0\u10ea \u10e8\u10d4\u10db\u10d3\u10d2\u10dd\u10db\u10e8\u10d8 \u10d3\u10d0\u10e3\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d3\u10d4\u10d1\u10d8\u10d7 \u10d8\u10dc\u10e2\u10d4\u10e0\u10dc\u10d4\u10e2\u10e1."},"explanationofflineenabled":{"message":"\u10d7\u10e5\u10d5\u10d4\u10dc \u10ee\u10d0\u10d6\u10d2\u10d0\u10e0\u10d4\u10e8\u10d4 \u10ee\u10d0\u10e0\u10d7, \u10db\u10d0\u10d2\u10e0\u10d0\u10db \u10db\u10d0\u10d8\u10dc\u10ea \u10e8\u10d4\u10d2\u10d8\u10eb\u10da\u10d8\u10d0\u10d7 \u10d3\u10d0\u10d0\u10e0\u10d4\u10d3\u10d0\u10e5\u10e2\u10d8\u10e0\u10dd\u10d7 \u10ee\u10d4\u10da\u10db\u10d8\u10e1\u10d0\u10ec\u10d5\u10d3\u10dd\u10db\u10d8 \u10e4\u10d0\u10d8\u10da\u10d4\u10d1\u10d8 \u10d0\u10dc \u10e8\u10d4\u10e5\u10db\u10dc\u10d0\u10d7 \u10d0\u10ee\u10da\u10d4\u10d1\u10d8."},"extdesc":{"message":"\u10d3\u10d0\u10d0\u10e0\u10d4\u10d3\u10d0\u10e5\u10e2\u10d8\u10e0\u10d4\u10d7, \u10e8\u10d4\u10e5\u10db\u10d4\u10dc\u10d8\u10d7 \u10d3\u10d0 \u10d3\u10d0\u10d0\u10d7\u10d5\u10d0\u10da\u10d8\u10d4\u10e0\u10d4\u10d7 \u10d7\u10e5\u10d5\u10d4\u10dc\u10d8 \u10d3\u10dd\u10d9\u10e3\u10db\u10d4\u10dc\u10e2\u10d4\u10d1\u10d8, \u10d4\u10da\u10ea\u10ee\u10e0\u10d8\u10da\u10d4\u10d1\u10d8 \u10d3\u10d0 \u10de\u10e0\u10d4\u10d6\u10d4\u10dc\u10e2\u10d0\u10ea\u10d8\u10d4\u10d1\u10d8 \u2014 \u10d4\u10e1 \u10e7\u10d5\u10d4\u10da\u10d0\u10e4\u10d4\u10e0\u10d8 \u10e8\u10d4\u10e1\u10d0\u10eb\u10da\u10d4\u10d1\u10d4\u10da\u10d8\u10d0 \u10d8\u10dc\u10e2\u10d4\u10e0\u10dc\u10d4\u10e2\u10d6\u10d4 \u10ec\u10d5\u10d3\u10dd\u10db\u10d8\u10e1 \u10d2\u10d0\u10e0\u10d4\u10e8\u10d4"},"extname":{"message":"\u10ee\u10d0\u10d6\u10d2\u10d0\u10e0\u10d4\u10e8\u10d4 Google Docs"},"learnmore":{"message":"\u10e8\u10d4\u10d8\u10e2\u10e7\u10d5\u10d4\u10d7 \u10db\u10d4\u10e2\u10d8"},"popuphelptext":{"message":"\u10e9\u10d0\u10ec\u10d4\u10e0\u10d4\u10d7, \u10d3\u10d0\u10d0\u10e0\u10d4\u10d3\u10d0\u10e5\u10e2\u10d8\u10e0\u10d4\u10d7 \u10d3\u10d0 \u10db\u10dd\u10d0\u10ee\u10d3\u10d8\u10dc\u10d4\u10d7 \u10d9\u10dd\u10da\u10d0\u10d1\u10dd\u10e0\u10d0\u10ea\u10d8\u10d0 \u10e1\u10d0\u10d3\u10d0\u10ea \u10e3\u10dc\u10d3\u10d0 \u10d8\u10e7\u10dd\u10d7, \u10d8\u10dc\u10e2\u10d4\u10e0\u10dc\u10d4\u10e2\u10d7\u10d0\u10dc \u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d8\u10d7 \u10d0\u10dc \u10db\u10d8\u10e1 \u10d2\u10d0\u10e0\u10d4\u10e8\u10d4."}}
diff --git a/offline/_locales/kk/messages.json b/offline/_locales/kk/messages.json
new file mode 100644
index 0000000..dde4912
--- /dev/null
+++ b/offline/_locales/kk/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u0416\u0410\u04a2\u0410\u0421\u042b\u041d \u0416\u0410\u0421\u0410\u0423"},"explanationofflinedisabled":{"message":"\u0421\u0456\u0437 \u043e\u0444\u043b\u0430\u0439\u043d \u0440\u0435\u0436\u0438\u043c\u0456\u043d\u0434\u0435\u0441\u0456\u0437. Google Docs \u049b\u043e\u043b\u0434\u0430\u043d\u0431\u0430\u0441\u044b\u043d \u0436\u0435\u043b\u0456 \u0431\u0430\u0439\u043b\u0430\u043d\u044b\u0441\u044b\u043d\u0441\u044b\u0437 \u049b\u043e\u043b\u0434\u0430\u043d\u0443 \u04af\u0448\u0456\u043d, \u043a\u0435\u043b\u0435\u0441\u0456 \u0436\u043e\u043b\u044b \u0436\u0435\u043b\u0456\u0433\u0435 \u049b\u043e\u0441\u044b\u043b\u0493\u0430\u043d\u0434\u0430, Google Docs \u043d\u0435\u0433\u0456\u0437\u0433\u0456 \u0431\u0435\u0442\u0456\u043d\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440 \u0431\u04e9\u043b\u0456\u043c\u0456\u043d \u043a\u0456\u0440\u0456\u043f, \u043e\u0444\u043b\u0430\u0439\u043d \u0440\u0435\u0436\u0438\u043c\u0456\u043d\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0434\u0430\u0443 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u043d \u049b\u043e\u0441\u044b\u04a3\u044b\u0437."},"explanationofflineenabled":{"message":"\u0421\u0456\u0437 \u043e\u0444\u043b\u0430\u0439\u043d \u0440\u0435\u0436\u0438\u043c\u0456\u043d\u0434\u0435\u0441\u0456\u0437, \u0431\u0456\u0440\u0430\u049b \u043e\u0493\u0430\u043d \u049b\u0430\u0440\u0430\u043c\u0430\u0441\u0442\u0430\u043d \u049b\u043e\u043b\u0436\u0435\u0442\u0456\u043c\u0434\u0456 \u0444\u0430\u0439\u043b\u0434\u0430\u0440\u044b \u04e9\u04a3\u0434\u0435\u0443\u0456\u04a3\u0456\u0437\u0433\u0435 \u043d\u0435\u043c\u0435\u0441\u0435 \u0436\u0430\u04a3\u0430\u0441\u044b\u043d \u0436\u0430\u0441\u0430\u0443\u044b\u04a3\u044b\u0437\u0493\u0430 \u0431\u043e\u043b\u0430\u0434\u044b."},"extdesc":{"message":"\u049a\u04b1\u0436\u0430\u0442\u0442\u0430\u0440\u0434\u044b, \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0434\u044b\u049b \u043a\u0435\u0441\u0442\u0435\u043b\u0435\u0440\u0434\u0456, \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u043b\u0430\u0440\u0434\u044b \u04e9\u0437\u0433\u0435\u0440\u0442\u0443, \u0436\u0430\u0441\u0430\u0443 \u0436\u04d9\u043d\u0435 \u043a\u04e9\u0440\u0443 \u2013 \u0431\u0430\u0440\u043b\u044b\u0493\u044b \u043e\u0444\u043b\u0430\u0439\u043d \u0440\u0435\u0436\u0438\u043c\u0456\u043d\u0434\u0435."},"extname":{"message":"Google Docs \u043e\u0444\u043b\u0430\u0439\u043d"},"learnmore":{"message":"\u0422\u043e\u043b\u044b\u0493\u044b\u0440\u0430\u049b \u0430\u049b\u043f\u0430\u0440\u0430\u0442"},"popuphelptext":{"message":"\u0416\u0435\u043b\u0456 \u0431\u0430\u0439\u043b\u0430\u043d\u044b\u0441\u044b \u0431\u043e\u043b\u0441\u0430 \u0434\u0430, \u0431\u043e\u043b\u043c\u0430\u0441\u0430 \u0434\u0430, \u043a\u0435\u0437 \u043a\u0435\u043b\u0433\u0435\u043d \u0436\u0435\u0440\u0434\u0435\u043d \u0436\u0430\u0437\u0443, \u04e9\u04a3\u0434\u0435\u0443 \u0436\u04d9\u043d\u0435 \u0431\u0456\u0440\u043b\u0435\u0441\u0435 \u0436\u04b1\u043c\u044b\u0441 \u0456\u0441\u0442\u0435\u0443 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u043d \u049b\u043e\u043b\u0434\u0430\u043d\u044b\u04a3\u044b\u0437."}}
diff --git a/offline/_locales/km/messages.json b/offline/_locales/km/messages.json
new file mode 100644
index 0000000..68add3b
--- /dev/null
+++ b/offline/_locales/km/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u1794\u1784\u17d2\u1780\u17be\u178f\u200b\u1790\u17d2\u1798\u17b8"},"explanationofflinedisabled":{"message":"\u17a2\u17d2\u1793\u1780\u200b\u1782\u17d2\u1798\u17b6\u1793\u200b\u17a2\u17ca\u17b8\u1793\u1792\u17ba\u178e\u17b7\u178f\u17d4 \u178a\u17be\u1798\u17d2\u1794\u17b8\u200b\u1794\u17d2\u179a\u17be Google \u17af\u1780\u179f\u17b6\u179a\u200b\u1794\u17b6\u1793\u200b\u200b\u178a\u17c4\u1799\u200b\u200b\u1798\u17b7\u1793\u1798\u17b6\u1793\u200b\u200b\u200b\u17a2\u17ca\u17b8\u1793\u1792\u17ba\u178e\u17b7\u178f \u179f\u17bc\u1798\u200b\u200b\u1791\u17c5\u200b\u1780\u17b6\u1793\u17cb\u200b\u1780\u17b6\u179a\u200b\u1780\u17c6\u178e\u178f\u17cb\u200b\u1793\u17c5\u200b\u179b\u17be\u200b\u1782\u17c1\u17a0\u1791\u17c6\u1796\u17d0\u179a Google \u17af\u1780\u179f\u17b6\u179a \u1793\u17b7\u1784\u200b\u1794\u17be\u1780\u200b\u1780\u17b6\u179a\u1792\u17d2\u179c\u17be\u200b\u179f\u1798\u1780\u17b6\u179b\u1780\u1798\u17d2\u1798\u200b\u200b\u200b\u1782\u17d2\u1798\u17b6\u1793\u200b\u17a2\u17ca\u17b8\u1793\u1792\u17ba\u178e\u17b7\u178f\u200b\u200b\u1793\u17c5\u200b\u1796\u17c1\u179b\u200b\u1780\u17d2\u179a\u17c4\u1799\u200b\u178a\u17c2\u179b\u200b\u17a2\u17d2\u1793\u1780\u200b\u200b\u1794\u17b6\u1793\u200b\u1797\u17d2\u1787\u17b6\u1794\u17cb\u200b\u1791\u17c5\u200b\u17a2\u17ca\u17b8\u1793\u1792\u17ba\u178e\u17b7\u178f\u17d4"},"explanationofflineenabled":{"message":"\u17a2\u17d2\u1793\u1780\u200b\u1782\u17d2\u1798\u17b6\u1793\u200b\u17a2\u17ca\u17b8\u1793\u1792\u17ba\u178e\u17b7\u178f \u1794\u17c9\u17bb\u1793\u17d2\u178f\u17c2\u17a2\u17d2\u1793\u1780\u200b\u1793\u17c5\u200b\u178f\u17c2\u200b\u17a2\u17b6\u1785\u200b\u1780\u17c2\u179f\u1798\u17d2\u179a\u17bd\u179b\u200b\u17af\u1780\u179f\u17b6\u179a\u200b\u178a\u17c2\u179b\u200b\u1798\u17b6\u1793 \u17ac\u200b\u1794\u1784\u17d2\u1780\u17be\u178f\u200b\u17af\u1780\u179f\u17b6\u179a\u200b\u1790\u17d2\u1798\u17b8\u200b\u1794\u17b6\u1793\u17d4"},"extdesc":{"message":"\u1780\u17c2\u200b\u179f\u1798\u17d2\u179a\u17bd\u179b \u1794\u1784\u17d2\u1780\u17be\u178f \u1793\u17b7\u1784\u200b\u1798\u17be\u179b\u200b\u17af\u1780\u179f\u17b6\u179a \u1794\u1789\u17d2\u1787\u17b8 \u1793\u17b7\u1784\u200b\u1794\u1791\u200b\u1794\u1784\u17d2\u17a0\u17b6\u1789\u200b\u179a\u1794\u179f\u17cb\u200b\u17a2\u17d2\u1793\u1780 \u178a\u17c4\u1799\u200b\u1782\u17d2\u1798\u17b6\u1793\u200b\u17a2\u17ca\u17b8\u1793\u1792\u17ba\u178e\u17b7\u178f\u200b\u17d4"},"extname":{"message":"Google \u17af\u1780\u179f\u17b6\u179a\u200b\u200b\u1782\u17d2\u1798\u17b6\u1793\u200b\u17a2\u17ca\u17b8\u1793\u1792\u17ba\u178e\u17b7\u178f"},"learnmore":{"message":"\u179f\u17d2\u179c\u17c2\u1784\u200b\u1799\u179b\u17cb\u200b\u1794\u1793\u17d2\u1790\u17c2\u1798"},"popuphelptext":{"message":"\u179f\u179a\u179f\u17c1\u179a \u1780\u17c2\u179f\u1798\u17d2\u179a\u17bd\u179b \u1793\u17b7\u1784\u200b\u179f\u17a0\u1780\u17b6\u179a\u200b\u1793\u17c5\u200b\u1796\u17c1\u179b\u200b\u178e\u17b6\u200b\u178a\u17c2\u179b\u200b\u17a2\u17d2\u1793\u1780\u200b\u1798\u17b6\u1793 \u17ac\u200b\u1782\u17d2\u1798\u17b6\u1793\u200b\u17a2\u17ca\u17b8\u1793\u1792\u17ba\u178e\u17b7\u178f\u17d4"}}
diff --git a/offline/_locales/kn/messages.json b/offline/_locales/kn/messages.json
new file mode 100644
index 0000000..b592f12
--- /dev/null
+++ b/offline/_locales/kn/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "ಹೊಸದನ್ನು ರಚಿಸಿ"
+ },
+ "explanationofflinedisabled": {
+ "message": "ನೀವು ಆಫ್ಲೈನ್ನಲ್ಲಿರುವಿರಿ. ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿಲ್ಲದೇ Google ಡಾಕ್ಸ್ ಬಳಸಲು, Google ಡಾಕ್ಸ್ ಮುಖಪುಟದಲ್ಲಿನ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಹೋಗಿ ಮತ್ತು ಮುಂದಿನ ಬಾರಿ ನೀವು ಇಂಟರ್ನೆಟ್ಗೆ ಸಂಪರ್ಕಿತವಾದಾಗ ಆಫ್ಲೈನ್ ಸಿಂಕ್ ಆನ್ ಮಾಡಿ."
+ },
+ "explanationofflineenabled": {
+ "message": "ನೀವು ಆಫ್ಲೈನ್ನಲ್ಲಿರುವಿರಿ, ಆದರೆ ಈಗಲೂ ನೀವು ಲಭ್ಯವಿರುವ ಫೈಲ್ಗಳನ್ನು ಸಂಪಾದಿಸಬಹುದು ಅಥವಾ ಹೊಸದನ್ನು ರಚಿಸಬಹುದು."
+ },
+ "extdesc": {
+ "message": "ಇಂಟರ್ನೆಟ್ ಪ್ರವೇಶವಿಲ್ಲದೆಯೇ ನಿಮ್ಮ ಡಾಕ್ಯುಮೆಂಟ್ಗಳು, ಸ್ಪ್ರೆಡ್ಶೀಟ್ಗಳು ಮತ್ತು ಪ್ರಸ್ತುತಿಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿ, ರಚಿಸಿ ಮತ್ತು ವೀಕ್ಷಿಸಿ."
+ },
+ "extname": {
+ "message": "Google ಡಾಕ್ಸ್ ಆಫ್ಲೈನ್"
+ },
+ "learnmore": {
+ "message": "ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"
+ },
+ "popuphelptext": {
+ "message": "ನೀವು ಎಲ್ಲೇ ಇರಿ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕ ಇರಲಿ ಅಥವಾ ಇಲ್ಲದಿರಲಿ, ಬರೆಯಿರಿ, ಎಡಿಟ್ ಮಾಡಿ ಮತ್ತು ಸಹಯೋಗ ಮಾಡಿ."
+ }
+}
diff --git a/offline/_locales/ko/messages.json b/offline/_locales/ko/messages.json
new file mode 100644
index 0000000..1060ef0
--- /dev/null
+++ b/offline/_locales/ko/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "새로 만들기"
+ },
+ "explanationofflinedisabled": {
+ "message": "오프라인 상태입니다. 인터넷 연결 없이 Google Docs를 사용하려면 Google Docs 홈페이지 설정으로 이동하여 다음번에 인터넷에 연결되었을 때 오프라인 동기화를 사용하도록 설정하세요."
+ },
+ "explanationofflineenabled": {
+ "message": "오프라인 상태입니다. 하지만 사용 가능한 파일을 수정하거나 새로운 파일을 만들 수 있습니다."
+ },
+ "extdesc": {
+ "message": "인터넷에 연결하지 않고도 문서, 스프레드시트 및 프레젠테이션을 수정, 생성, 확인합니다."
+ },
+ "extname": {
+ "message": "Google Docs 오프라인"
+ },
+ "learnmore": {
+ "message": "자세히 알아보기"
+ },
+ "popuphelptext": {
+ "message": "인터넷 연결 여부와 관계없이 어디에서든 작성하고 수정하고 공동작업을 수행할 수 있습니다."
+ }
+}
diff --git a/offline/_locales/lo/messages.json b/offline/_locales/lo/messages.json
new file mode 100644
index 0000000..971637f
--- /dev/null
+++ b/offline/_locales/lo/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u0eaa\u0ec9\u0eb2\u0e87\u0ec3\u0edd\u0ec8"},"explanationofflinedisabled":{"message":"\u0e97\u0ec8\u0eb2\u0e99\u0ead\u0ead\u0e9a\u0ea5\u0eb2\u0e8d\u0ea2\u0eb9\u0ec8. \u0ec0\u0e9e\u0eb7\u0ec8\u0ead\u0ec3\u0e8a\u0ec9 Google Docs \u0ec2\u0e94\u0e8d\u0e9a\u0ecd\u0ec8\u0ec0\u0e8a\u0eb7\u0ec8\u0ead\u0ea1\u0e95\u0ecd\u0ec8\u0ead\u0eb4\u0e99\u0ec0\u0e95\u0eb5\u0ec0\u0e99\u0eb1\u0e94, \u0ec3\u0eab\u0ec9\u0ec4\u0e9b\u0e97\u0eb5\u0ec8\u0e81\u0eb2\u0e99\u0e95\u0eb1\u0ec9\u0e87\u0e84\u0ec8\u0eb2\u0ec3\u0e99\u0edc\u0ec9\u0eb2 Google Docs \u0ec1\u0ea5\u0ec9\u0ea7\u0ec0\u0e9b\u0eb5\u0e94\u0ec3\u0e8a\u0ec9\u0e81\u0eb2\u0e99\u0e8a\u0eb4\u0ec9\u0e87\u0ec1\u0e9a\u0e9a\u0ead\u0ead\u0e9a\u0ea5\u0eb2\u0e8d\u0ec3\u0e99\u0ec0\u0e97\u0eb7\u0ec8\u0ead\u0e95\u0ecd\u0ec8\u0ec4\u0e9b\u0e97\u0eb5\u0ec8\u0e97\u0ec8\u0eb2\u0e99\u0ec0\u0e8a\u0eb7\u0ec8\u0ead\u0ea1\u0e95\u0ecd\u0ec8\u0ead\u0eb4\u0e99\u0ec0\u0e95\u0eb5\u0ec0\u0e99\u0eb1\u0e94."},"explanationofflineenabled":{"message":"\u0e97\u0ec8\u0eb2\u0e99\u0ead\u0ead\u0e9a\u0ea5\u0eb2\u0e8d\u0ea2\u0eb9\u0ec8, \u0ec1\u0e95\u0ec8\u0e97\u0ec8\u0eb2\u0e99\u0e8d\u0eb1\u0e87\u0eaa\u0eb2\u0ea1\u0eb2\u0e94\u0ec1\u0e81\u0ec9\u0ec4\u0e82\u0ec4\u0e9f\u0ea5\u0ecc\u0e97\u0eb5\u0ec8\u0ec3\u0e8a\u0ec9\u0ec4\u0e94\u0ec9 \u0eab\u0ebc\u0eb7 \u0eaa\u0ec9\u0eb2\u0e87\u0ec4\u0e9f\u0ea5\u0ecc\u0ec3\u0edd\u0ec8\u0ec4\u0e94\u0ec9."},"extdesc":{"message":"\u0ec1\u0e81\u0ec9\u0ec4\u0e82, \u0eaa\u0ec9\u0eb2\u0e87 \u0ec1\u0ea5\u0eb0 \u0ec0\u0e9a\u0eb4\u0ec8\u0e87\u0ec0\u0ead\u0e81\u0eb0\u0eaa\u0eb2\u0e99, \u0eaa\u0eb0\u0ec0\u0e9b\u0ea3\u0e94\u0e8a\u0eb5\u0e94 \u0ec1\u0ea5\u0eb0 \u0e9e\u0ea3\u0eb5\u0ec0\u0e8a\u0eb1\u0e99\u0ec0\u0e97\u0ec0\u0e8a\u0eb4\u0e99\u0e82\u0ead\u0e87\u0e97\u0ec8\u0eb2\u0e99\u0ec2\u0e94\u0e8d\u0e9a\u0ecd\u0ec8\u0ec3\u0e8a\u0ec9\u0ead\u0eb4\u0e99\u0ec0\u0e95\u0eb5\u0ec0\u0e99\u0eb1\u0e94."},"extname":{"message":"Google Docs Offline"},"learnmore":{"message":"\u0eaa\u0eb6\u0e81\u0eaa\u0eb2\u0ec0\u0e9e\u0eb5\u0ec8\u0ea1\u0ec0\u0e95\u0eb5\u0ea1"},"popuphelptext":{"message":"\u0e82\u0ebd\u0e99, \u0ec1\u0e81\u0ec9\u0ec4\u0e82 \u0ec1\u0ea5\u0eb0 \u0ec0\u0eae\u0eb1\u0e94\u0ea7\u0ebd\u0e81\u0eae\u0ec8\u0ea7\u0ea1\u0e81\u0eb1\u0e99\u0e9a\u0ecd\u0ec8\u0ea7\u0ec8\u0eb2\u0e97\u0ec8\u0eb2\u0e99\u0e88\u0eb0\u0ea2\u0eb9\u0ec8\u0ec3\u0eaa\u0e81\u0ecd\u0e95\u0eb2\u0ea1, \u0e9a\u0ecd\u0ec8\u0ea7\u0ec8\u0eb2\u0e88\u0eb0\u0ea1\u0eb5\u0ead\u0eb4\u0e99\u0ec0\u0e95\u0eb5\u0ec0\u0e99\u0eb1\u0e94 \u0eab\u0ebc\u0eb7 \u0e9a\u0ecd\u0ec8\u0ea1\u0eb5\u0e81\u0ecd\u0e95\u0eb2\u0ea1."}}
diff --git a/offline/_locales/lt/messages.json b/offline/_locales/lt/messages.json
new file mode 100644
index 0000000..cc746e5
--- /dev/null
+++ b/offline/_locales/lt/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "SUKURTI NAUJĄ"
+ },
+ "explanationofflinedisabled": {
+ "message": "Esate neprisijungę. Jei norite naudoti „Google“ dokumentus be interneto ryšio, pagrindiniame „Google“ dokumentų puslapyje eikite į nustatymų skiltį ir įjunkite sinchronizavimą neprisijungus, kai kitą kartą būsite prisijungę prie interneto."
+ },
+ "explanationofflineenabled": {
+ "message": "Esate neprisijungę, bet vis tiek galite redaguoti pasiekiamus failus arba sukurti naujų."
+ },
+ "extdesc": {
+ "message": "Redaguokite, kurkite ir peržiūrėkite savo dokumentus, skaičiuokles ir pristatymus – viską darykite be prieigos prie interneto."
+ },
+ "extname": {
+ "message": "„Google“ dokumentai neprisijungus"
+ },
+ "learnmore": {
+ "message": "Sužinoti daugiau"
+ },
+ "popuphelptext": {
+ "message": "Rašykite, redaguokite ir bendradarbiaukite bet kurioje vietoje naudodami interneto ryšį arba nenaudodami jo."
+ }
+}
diff --git a/offline/_locales/lv/messages.json b/offline/_locales/lv/messages.json
new file mode 100644
index 0000000..bb4b1fd
--- /dev/null
+++ b/offline/_locales/lv/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "IZVEIDOT JAUNU"
+ },
+ "explanationofflinedisabled": {
+ "message": "Jūs esat bezsaistē. Lai lietotu pakalpojumu Google dokumenti bez interneta savienojuma, nākamajā reizē, kad ir izveidots savienojums ar internetu, atveriet Google dokumentu sākumlapas iestatījumu izvēlni un ieslēdziet sinhronizāciju bezsaistē."
+ },
+ "explanationofflineenabled": {
+ "message": "Jūs esat bezsaistē, taču varat rediģēt pieejamos failus un izveidot jaunus."
+ },
+ "extdesc": {
+ "message": "Rediģējiet, veidojiet un skatiet savus dokumentus, izklājlapas un prezentācijas, neizmantojot savienojumu ar internetu."
+ },
+ "extname": {
+ "message": "Google dokumenti bezsaistē"
+ },
+ "learnmore": {
+ "message": "Uzziniet vairāk"
+ },
+ "popuphelptext": {
+ "message": "Rakstiet, rediģējiet un sadarbojieties ar interneta savienojumu vai bez tā neatkarīgi no tā, kur atrodaties."
+ }
+}
diff --git a/offline/_locales/ml/messages.json b/offline/_locales/ml/messages.json
new file mode 100644
index 0000000..dbe9321
--- /dev/null
+++ b/offline/_locales/ml/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "പുതിയത് സൃഷ്ടിക്കുക"
+ },
+ "explanationofflinedisabled": {
+ "message": "നിങ്ങൾ ഓഫ്ലൈനാണ്. ഇന്റർനെറ്റ് കണക്ഷനില്ലാതെ തന്നെ Google ഡോക്സ് ഉപയോഗിക്കാൻ, Google ഡോക്സ് ഹോംപേജിലെ ക്രമീകരണത്തിൽ പോയി നിങ്ങൾ അടുത്ത തവണ ഇന്റർനെറ്റുമായി കണക്റ്റുചെയ്യുമ്പോൾ 'ഓഫ്ലൈനായി സമന്വയിപ്പിക്കുക' ഓണാക്കുക."
+ },
+ "explanationofflineenabled": {
+ "message": "ഓഫ്ലൈനാണെങ്കിലും, നിങ്ങൾക്ക് തുടർന്നും ലഭ്യമായ ഫയലുകൾ എഡിറ്റുചെയ്യുകയോ പുതിയവ സൃഷ്ടിക്കുകയോ ചെയ്യാം."
+ },
+ "extdesc": {
+ "message": "നിങ്ങളുടെ ഡോക്യുമെന്റുകളും സ്പ്രെഡ്ഷീറ്റുകളും അവതരണങ്ങളും എഡിറ്റ് ചെയ്യുക, സൃഷ്ടിക്കുക, കാണുക — എല്ലാം ഇന്റർനെറ്റ് ആക്സസ് ഇല്ലാതെ."
+ },
+ "extname": {
+ "message": "Google ഡോക്സ് ഓഫ്ലൈന്"
+ },
+ "learnmore": {
+ "message": "കൂടുതലറിയുക"
+ },
+ "popuphelptext": {
+ "message": "നിങ്ങൾ എവിടെയാണെങ്കിലും ഇന്റർനെറ്റ് കണക്ഷൻ ഉപയോഗിച്ചോ അല്ലാതെയോ എഴുതുകയും എഡിറ്റുചെയ്യുകയും സഹകരിച്ച് പ്രവർത്തിക്കുകയും ചെയ്യുക."
+ }
+}
diff --git a/offline/_locales/mn/messages.json b/offline/_locales/mn/messages.json
new file mode 100644
index 0000000..129f4bc
--- /dev/null
+++ b/offline/_locales/mn/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u0428\u0418\u041d\u0418\u0419\u0413 \u04ae\u04ae\u0421\u0413\u042d\u0425"},"explanationofflinedisabled":{"message":"\u0422\u0430 \u043e\u0444\u043b\u0430\u0439\u043d \u0431\u0430\u0439\u043d\u0430. Google \u0414\u043e\u043a\u044b\u0433 \u0438\u043d\u0442\u0435\u0440\u043d\u044d\u0442\u0433\u04af\u0439\u0433\u044d\u044d\u0440 \u0430\u0448\u0438\u0433\u043b\u0430\u0445\u044b\u043d \u0442\u0443\u043b\u0434 \u0434\u0430\u0440\u0430\u0430\u0433\u0438\u0439\u043d \u0443\u0434\u0430\u0430 \u0438\u043d\u0442\u0435\u0440\u043d\u044d\u0442\u044d\u0434 \u0445\u043e\u043b\u0431\u043e\u0433\u0434\u043e\u0445\u0434\u043e\u043e Google \u0414\u043e\u043a\u044b\u043d \u043d\u04af\u04af\u0440 \u0445\u0443\u0443\u0434\u0430\u0441\u043d\u0430\u0430\u0441 \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e \u0434\u043e\u0442\u043e\u0440\u0445 \u043e\u0444\u043b\u0430\u0439\u043d \u0441\u0438\u043d\u043a\u0438\u0439\u0433 \u0438\u0434\u044d\u0432\u0445\u0436\u04af\u04af\u043b\u043d\u044d \u04af\u04af."},"explanationofflineenabled":{"message":"\u0422\u0430 \u043e\u0444\u043b\u0430\u0439\u043d \u0431\u0430\u0439\u043d\u0430, \u0433\u044d\u0445\u0434\u044d\u044d \u0431\u0430\u0439\u0433\u0430\u0430 \u0444\u0430\u0439\u043b\u0443\u0443\u0434\u044b\u0433 \u0437\u0430\u0441\u0430\u0445 \u0431\u0443\u044e\u0443 \u0448\u0438\u043d\u044d\u044d\u0440 \u04af\u04af\u0441\u0433\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439."},"extdesc":{"message":"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0445\u04af\u0441\u043d\u044d\u0433\u0442 \u0431\u043e\u043b\u043e\u043d \u04af\u0437\u04af\u04af\u043b\u044d\u043d\u0433\u044d\u044d \u0437\u0430\u0441\u0430\u0445, \u04af\u04af\u0441\u0433\u044d\u0445 \u043c\u04e9\u043d \u0445\u0430\u0440\u0430\u0445 \u2014 \u0431\u04af\u0433\u0434\u0438\u0439\u0433 \u044f\u043c\u0430\u0440 \u0447 \u0438\u043d\u0442\u0435\u0440\u043d\u044d\u0442 \u0445\u0430\u043d\u0434\u0430\u043b\u0442\u0433\u04af\u0439\u0433\u044d\u044d\u0440 \u0445\u0438\u0439\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439."},"extname":{"message":"Google Docs \u041e\u0444\u043b\u0430\u0439\u043d"},"learnmore":{"message":"\u0414\u044d\u043b\u0433\u044d\u0440\u044d\u043d\u0433\u04af\u0439 \u04af\u0437\u044d\u0445"},"popuphelptext":{"message":"\u0418\u043d\u0442\u0435\u0440\u043d\u044d\u0442 \u0445\u043e\u043b\u0431\u043e\u043b\u0442\u0442\u043e\u0439 \u044d\u0441\u044d\u0445\u044d\u044d\u0441 \u04af\u043b \u0445\u0430\u043c\u0430\u0430\u0440\u0430\u043d, \u0445\u0430\u0430\u043d\u0430\u0430\u0441 \u0447 \u0431\u0438\u0447\u0438\u0445, \u0437\u0430\u0441\u0430\u0445, \u0445\u0430\u043c\u0442\u0440\u0430\u043d \u0430\u0436\u0438\u043b\u043b\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439."}}
diff --git a/offline/_locales/mr/messages.json b/offline/_locales/mr/messages.json
new file mode 100644
index 0000000..689ce60
--- /dev/null
+++ b/offline/_locales/mr/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "नवीन तयार करा"
+ },
+ "explanationofflinedisabled": {
+ "message": "तुम्ही ऑफलाइन आहात. कोणत्याही इंटरनेट कनेक्शन शिवाय Google दस्तऐवज वापरण्यासाठी, Google दस्तऐवज मुख्यपृष्ठावर सेटिंग्जवर जा आणि पुढील वेळी तुम्ही इंटरनेटशी कनेक्ट असताना ऑफलाइन सिंक सुरू करा."
+ },
+ "explanationofflineenabled": {
+ "message": "तुम्ही ऑफलाइन आहात, परंतु तुम्ही अद्याप उपलब्ध फाइल संपादित करू किंवा नवीन तयार करू शकता."
+ },
+ "extdesc": {
+ "message": "तुमचे दस्तऐवज, स्प्रेडशीट आणि प्रेझेंटेशन हे सर्व इंटरनेट ॲक्सेसशिवाय संपादित करा, तयार करा आणि पहा."
+ },
+ "extname": {
+ "message": "Google Docs ऑफलाइन"
+ },
+ "learnmore": {
+ "message": "अधिक जाणून घ्या"
+ },
+ "popuphelptext": {
+ "message": "इंटरनेट कनेक्शनसह किंवा त्याशिवाय तुम्ही जेथे आहात तेथून लिहा, संपादित करा आणि योगदान द्या."
+ }
+}
diff --git a/offline/_locales/ms/messages.json b/offline/_locales/ms/messages.json
new file mode 100644
index 0000000..ef08d86
--- /dev/null
+++ b/offline/_locales/ms/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "BUAT BAHARU"
+ },
+ "explanationofflinedisabled": {
+ "message": "Anda berada di luar talian. Untuk menggunakan Dokumen Google tanpa sambungan Internet, pergi ke tetapan di halaman utama Dokumen Google dan hidupkan penyegerakan luar talian apabila anda disambungkan ke Internet selepas ini."
+ },
+ "explanationofflineenabled": {
+ "message": "Anda berada di luar talian, tetapi anda masih boleh mengedit fail yang tersedia atau buat fail baharu."
+ },
+ "extdesc": {
+ "message": "Edit, buat dan lihat dokumen, hamparan dan pembentangan anda — kesemuanya tanpa akses Internet."
+ },
+ "extname": {
+ "message": "Dokumen Google Luar Talian"
+ },
+ "learnmore": {
+ "message": "Ketahui Lebih Lanjut"
+ },
+ "popuphelptext": {
+ "message": "Tulis, edit dan bekerjasama di mana-mana sahaja anda berada, dengan atau tanpa sambungan Internet."
+ }
+}
diff --git a/offline/_locales/my/messages.json b/offline/_locales/my/messages.json
new file mode 100644
index 0000000..01803b3
--- /dev/null
+++ b/offline/_locales/my/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u1021\u101e\u1005\u103a \u1015\u103c\u102f\u101c\u102f\u1015\u103a\u101b\u1014\u103a"},"explanationofflinedisabled":{"message":"\u101e\u1004\u103a \u1021\u1031\u102c\u1037\u1016\u103a\u101c\u102d\u102f\u1004\u103a\u1038\u1016\u103c\u1005\u103a\u1014\u1031\u1015\u102b\u101e\u100a\u103a\u104b \u1021\u1004\u103a\u1010\u102c\u1014\u1000\u103a\u1001\u103b\u102d\u1010\u103a\u1006\u1000\u103a\u1019\u103e\u102f \u1019\u101b\u103e\u102d\u1018\u1032 Google Docs \u1000\u102d\u102f \u1021\u101e\u102f\u1036\u1038\u1015\u103c\u102f\u101b\u1014\u103a \u1014\u1031\u102c\u1000\u103a\u1010\u1005\u103a\u1000\u103c\u102d\u1019\u103a \u101e\u1004\u103a\u1021\u1004\u103a\u1010\u102c\u1014\u1000\u103a\u1001\u103b\u102d\u1010\u103a\u1006\u1000\u103a\u101e\u100a\u1037\u103a\u1021\u1001\u102b Google Docs \u1015\u1004\u103a\u1019\u1005\u102c\u1019\u103b\u1000\u103a\u1014\u103e\u102c\u101b\u103e\u102d \u1006\u1000\u103a\u1010\u1004\u103a\u1019\u103b\u102c\u1038\u101e\u102d\u102f\u1037\u101e\u103d\u102c\u1038\u1015\u103c\u102e\u1038 \u1021\u1031\u102c\u1037\u1016\u103a\u101c\u102d\u102f\u1004\u103a\u1038\u1005\u1004\u1037\u103a\u1001\u103a\u1000\u102d\u102f \u1016\u103d\u1004\u1037\u103a\u101c\u102d\u102f\u1000\u103a\u1015\u102b\u104b"},"explanationofflineenabled":{"message":"\u101e\u1004\u103a \u1021\u1031\u102c\u1037\u1016\u103a\u101c\u102d\u102f\u1004\u103a\u1038 \u1016\u103c\u1005\u103a\u1014\u1031\u1015\u102b\u101e\u100a\u103a\u104b \u101e\u102d\u102f\u1037\u101e\u1031\u102c\u103a \u1021\u101e\u102f\u1036\u1038\u1015\u103c\u102f\u1014\u102d\u102f\u1004\u103a\u101e\u1031\u102c \u1016\u102d\u102f\u1004\u103a\u1019\u103b\u102c\u1038\u1000\u102d\u102f \u1006\u1000\u103a\u101c\u1000\u103a\u1010\u100a\u103a\u1038\u1016\u103c\u1010\u103a\u1014\u102d\u102f\u1004\u103a\u101e\u100a\u103a \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1021\u101e\u1005\u103a\u1019\u103b\u102c\u1038 \u1015\u103c\u102f\u101c\u102f\u1015\u103a\u1014\u102d\u102f\u1004\u103a\u101e\u100a\u103a\u104b"},"extdesc":{"message":"\u1021\u1004\u103a\u1010\u102c\u1014\u1000\u103a\u1021\u101e\u102f\u1036\u1038\u1019\u1015\u103c\u102f\u1018\u1032 \u2014 \u101e\u1004\u1037\u103a \u1005\u102c\u1016\u102d\u102f\u1004\u103a\u104a spreadsheet \u1014\u103e\u1004\u1037\u103a \u1010\u1004\u103a\u1015\u103c\u1019\u103e\u102f\u1019\u103b\u102c\u1038\u1000\u102d\u102f \u1010\u100a\u103a\u1038\u1016\u103c\u1010\u103a\u1001\u103c\u1004\u103a\u1038\u104a \u1021\u101e\u1005\u103a\u1016\u103d\u1004\u1037\u103a\u1001\u103c\u1004\u103a\u1038\u1014\u103e\u1004\u1037\u103a \u1000\u103c\u100a\u1037\u103a\u101b\u103e\u102f\u1001\u103c\u1004\u103a\u1038\u1010\u102d\u102f\u1037 \u1015\u103c\u102f\u101c\u102f\u1015\u103a\u1014\u102d\u102f\u1004\u103a\u1015\u102b\u101e\u100a\u103a\u104b"},"extname":{"message":"Google Docs \u1021\u1031\u102c\u1037\u1016\u103a\u101c\u102d\u102f\u1004\u103a\u1038"},"learnmore":{"message":"\u1015\u102d\u102f\u1019\u102d\u102f\u101c\u1031\u1037\u101c\u102c\u101b\u1014\u103a"},"popuphelptext":{"message":"\u1021\u1004\u103a\u1010\u102c\u1014\u1000\u103a\u1001\u103b\u102d\u1010\u103a\u1006\u1000\u103a\u1019\u103e\u102f \u101b\u103e\u102d\u101e\u100a\u103a\u1016\u103c\u1005\u103a\u1005\u1031\u104a \u1019\u101b\u103e\u102d\u101e\u100a\u103a\u1016\u103c\u1005\u103a\u1005\u1031 \u101b\u1031\u1038\u101e\u102c\u1038\u1001\u103c\u1004\u103a\u1038\u104a \u1010\u100a\u103a\u1038\u1016\u103c\u1010\u103a\u1001\u103c\u1004\u103a\u1038\u1014\u103e\u1004\u1037\u103a \u1015\u1030\u1038\u1015\u1031\u102b\u1004\u103a\u1038\u1006\u1031\u102c\u1004\u103a\u101b\u103d\u1000\u103a\u1001\u103c\u1004\u103a\u1038\u1010\u102d\u102f\u1037\u1000\u102d\u102f \u1014\u1031\u101b\u102c\u1019\u101b\u103d\u1031\u1038\u1015\u103c\u102f\u101c\u102f\u1015\u103a\u1014\u102d\u102f\u1004\u103a\u1015\u102b\u101e\u100a\u103a\u104b"}}
diff --git a/offline/_locales/ne/messages.json b/offline/_locales/ne/messages.json
new file mode 100644
index 0000000..6707385
--- /dev/null
+++ b/offline/_locales/ne/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u0928\u092f\u093e\u0901 \u0938\u093f\u0930\u094d\u091c\u0928\u093e \u0917\u0930\u094d\u0928\u0941\u0939\u094b\u0938\u094d"},"explanationofflinedisabled":{"message":"\u0924\u092a\u093e\u0908\u0902 \u0905\u092b\u0932\u093e\u0907\u0928 \u0939\u0941\u0928\u0941\u0939\u0941\u0928\u094d\u091b\u0964 \u0915\u0941\u0928\u0948 \u0907\u0928\u094d\u091f\u0930\u0928\u0947\u091f \u091c\u0921\u093e\u0928 \u092c\u093f\u0928\u093e Google \u0915\u093e\u0917\u091c\u093e\u0924\u0915\u094b \u092a\u094d\u0930\u092f\u094b\u0917 \u0917\u0930\u094d\u0928 \u0924\u092a\u093e\u0908\u0902 \u0905\u0930\u094d\u0915\u094b \u092a\u091f\u0915 \u0907\u0928\u094d\u091f\u0930\u0928\u0947\u091f\u092e\u093e \u091c\u094b\u0921\u093f\u090f\u0915\u094b \u092c\u0947\u0932\u093e Google \u0915\u093e\u0917\u091c\u093e\u0924\u0915\u094b \u0917\u0943\u0939\u092a\u0943\u0937\u094d\u0920\u092e\u093e \u0930\u0939\u0947\u0915\u094b \u0938\u0947\u091f\u093f\u0919\u0939\u0930\u0942\u092e\u093e \u0917\u0908 \u0905\u092b\u0932\u093e\u0907\u0928 \u0939\u0941\u0901\u0926\u093e \u0938\u093f\u0902\u0915 \u0917\u0930\u094d\u0928\u0947 \u0938\u0941\u0935\u093f\u0927\u093e\u0932\u093e\u0908 \u0938\u0915\u094d\u0930\u093f\u092f \u0917\u0930\u094d\u0928\u0941\u0939\u094b\u0938\u094d\u0964"},"explanationofflineenabled":{"message":"\u0924\u092a\u093e\u0908\u0902 \u0905\u092b\u0932\u093e\u0907\u0928 \u0939\u0941\u0928\u0941\u0939\u0941\u0928\u094d\u091b, \u0924\u0930 \u0924\u092a\u093e\u0908\u0902 \u0905\u091d\u0948 \u092a\u0928\u093f \u0909\u092a\u0932\u092c\u094d\u0927 \u092b\u093e\u0907\u0932\u0939\u0930\u0942 \u0938\u092e\u094d\u092a\u093e\u0926\u0928 \u0935\u093e \u0928\u092f\u093e\u0901 \u092b\u093e\u0907\u0932\u0939\u0930\u0942 \u0938\u093f\u0930\u094d\u091c\u0928\u093e \u0917\u0930\u094d\u0928 \u0938\u0915\u094d\u0928\u0941\u0939\u0941\u0928\u094d\u091b\u0964"},"extdesc":{"message":"\u0907\u0928\u094d\u091f\u0930\u0928\u0947\u091f\u092e\u093e\u0925\u093f\u0915\u094b \u092a\u0939\u0941\u0901\u091a\u0935\u093f\u0928\u0948 \u0906\u092b\u094d\u0928\u093e \u0915\u093e\u0917\u091c\u093e\u0924, \u0938\u094d\u092a\u094d\u0930\u0947\u0921\u0938\u093f\u091f \u0930 \u092a\u094d\u0930\u0938\u094d\u0924\u0941\u0924\u093f\u0939\u0930\u0942 \u0938\u092e\u094d\u092a\u093e\u0926\u0928 \u0917\u0930\u094d\u0928\u0941\u0939\u094b\u0938\u094d, \u0938\u093f\u0930\u094d\u091c\u0928\u093e \u0917\u0930\u094d\u0928\u0941\u0939\u094b\u0938\u094d \u0930 \u0939\u0947\u0930\u094d\u0928\u0941\u0939\u094b\u0938\u094d\u0964"},"extname":{"message":"Google \u0915\u093e\u0917\u091c\u093e\u0924 \u0905\u092b\u0932\u093e\u0907\u0928"},"learnmore":{"message":"\u0925\u092a \u091c\u093e\u0928\u094d\u0928\u0941\u0939\u094b\u0938\u094d"},"popuphelptext":{"message":"\u0907\u0928\u094d\u091f\u0930\u0928\u0947\u091f \u0939\u094b\u0938\u094d \u0935\u093e \u0928\u0939\u094b\u0938\u094d \u091c\u0941\u0928\u0938\u0941\u0915\u0948 \u0920\u093e\u0909\u0901\u092c\u093e\u091f \u0932\u0947\u0916\u094d\u0928\u0941\u0939\u094b\u0938\u094d, \u0938\u092e\u094d\u092a\u093e\u0926\u0928 \u0917\u0930\u094d\u0928\u0941\u0939\u094b\u0938\u094d \u0930 \u0938\u0939\u0915\u093e\u0930\u094d\u092f \u0917\u0930\u094d\u0928\u0941\u0939\u094b\u0938\u094d\u0964"}}
diff --git a/offline/_locales/nl/messages.json b/offline/_locales/nl/messages.json
new file mode 100644
index 0000000..be30f21
--- /dev/null
+++ b/offline/_locales/nl/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "NIEUW MAKEN"
+ },
+ "explanationofflinedisabled": {
+ "message": "Je bent offline. Wil je Google Documenten zonder internetverbinding gebruiken, ga dan de volgende keer dat je verbinding met internet hebt naar 'Instellingen' op de homepage van Google Documenten en schakel 'Offline synchronisatie' in."
+ },
+ "explanationofflineenabled": {
+ "message": "Je bent offline, maar je kunt nog wel beschikbare bestanden bewerken of nieuwe bestanden maken."
+ },
+ "extdesc": {
+ "message": "Bewerk, maak en bekijk je documenten, spreadsheets en presentaties. Allemaal zonder internettoegang."
+ },
+ "extname": {
+ "message": "Offline Documenten"
+ },
+ "learnmore": {
+ "message": "Meer informatie"
+ },
+ "popuphelptext": {
+ "message": "Overal schrijven, bewerken en samenwerken, met of zonder internetverbinding."
+ }
+}
diff --git a/offline/_locales/no/messages.json b/offline/_locales/no/messages.json
new file mode 100644
index 0000000..f95dde2
--- /dev/null
+++ b/offline/_locales/no/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "OPPRETT NYTT"
+ },
+ "explanationofflinedisabled": {
+ "message": "Du er uten nett. For å bruke Google Dokumenter uten internettilkobling, gå til innstillingene på Google Dokumenter-nettsiden og slå på synkronisering uten nett neste gang du er koblet til Internett."
+ },
+ "explanationofflineenabled": {
+ "message": "Du er uten nett, men du kan likevel endre tilgjengelige filer eller opprette nye."
+ },
+ "extdesc": {
+ "message": "Rediger, opprett og se dokumentene, regnearkene og presentasjonene dine – uten nettilgang."
+ },
+ "extname": {
+ "message": "Google Dokumenter uten nett"
+ },
+ "learnmore": {
+ "message": "Finn ut mer"
+ },
+ "popuphelptext": {
+ "message": "Skriv, rediger eller samarbeid uansett hvor du er, med eller uten internettilkobling."
+ }
+}
diff --git a/offline/_locales/pa/messages.json b/offline/_locales/pa/messages.json
new file mode 100644
index 0000000..1f824f2
--- /dev/null
+++ b/offline/_locales/pa/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u0a28\u0a35\u0a3e\u0a02 \u0a2c\u0a23\u0a3e\u0a13"},"explanationofflinedisabled":{"message":"\u0a24\u0a41\u0a38\u0a40\u0a02 \u0a06\u0a2b\u0a3c\u0a32\u0a3e\u0a08\u0a28 \u0a39\u0a4b\u0964 \u0a07\u0a70\u0a1f\u0a30\u0a28\u0a48\u0a71\u0a1f \u0a15\u0a28\u0a48\u0a15\u0a36\u0a28 \u0a26\u0a47 \u0a2c\u0a3f\u0a28\u0a3e\u0a02 Google Docs \u0a28\u0a42\u0a70 \u0a35\u0a30\u0a24\u0a23 \u0a32\u0a08, \u0a05\u0a17\u0a32\u0a40 \u0a35\u0a3e\u0a30 \u0a1c\u0a26\u0a4b\u0a02 \u0a24\u0a41\u0a38\u0a40\u0a02 \u0a07\u0a70\u0a1f\u0a30\u0a28\u0a48\u0a71\u0a1f \u0a26\u0a47 \u0a28\u0a3e\u0a32 \u0a15\u0a28\u0a48\u0a15\u0a1f \u0a39\u0a4b\u0a35\u0a4b \u0a24\u0a3e\u0a02 Google Docs \u0a2e\u0a41\u0a71\u0a16 \u0a2a\u0a70\u0a28\u0a47 '\u0a24\u0a47 \u0a38\u0a48\u0a1f\u0a3f\u0a70\u0a17\u0a3e\u0a02 \u0a35\u0a3f\u0a71\u0a1a \u0a1c\u0a3e\u0a13 \u0a05\u0a24\u0a47 \u0a06\u0a2b\u0a3c\u0a32\u0a3e\u0a08\u0a28 \u0a38\u0a2e\u0a15\u0a3e\u0a32\u0a40\u0a15\u0a30\u0a28 \u0a28\u0a42\u0a70 \u0a1a\u0a3e\u0a32\u0a42 \u0a15\u0a30\u0a4b\u0964"},"explanationofflineenabled":{"message":"\u0a24\u0a41\u0a38\u0a40\u0a02 \u0a06\u0a2b\u0a3c\u0a32\u0a3e\u0a08\u0a28 \u0a39\u0a4b, \u0a2a\u0a30 \u0a24\u0a41\u0a38\u0a40\u0a02 \u0a39\u0a3e\u0a32\u0a47 \u0a35\u0a40 \u0a09\u0a2a\u0a32\u0a2c\u0a27 \u0a5e\u0a3e\u0a08\u0a32\u0a3e\u0a02 \u0a26\u0a3e \u0a38\u0a70\u0a2a\u0a3e\u0a26\u0a28 \u0a15\u0a30 \u0a38\u0a15\u0a26\u0a47 \u0a39\u0a4b \u0a1c\u0a3e\u0a02 \u0a28\u0a35\u0a40\u0a06\u0a02 \u0a5e\u0a3e\u0a08\u0a32\u0a3e\u0a02 \u0a2c\u0a23\u0a3e \u0a38\u0a15\u0a26\u0a47 \u0a39\u0a4b\u0964"},"extdesc":{"message":"\u0a2c\u0a3f\u0a28\u0a3e\u0a02 \u0a15\u0a3f\u0a38\u0a47 \u0a07\u0a70\u0a1f\u0a30\u0a28\u0a48\u0a71\u0a1f \u0a2a\u0a39\u0a41\u0a70\u0a1a \u0a26\u0a47 \u0a06\u0a2a\u0a23\u0a47 \u0a26\u0a38\u0a24\u0a3e\u0a35\u0a47\u0a5b\u0a3e\u0a02, \u0a38\u0a2a\u0a30\u0a48\u0a71\u0a21\u0a38\u0a3c\u0a40\u0a1f\u0a3e\u0a02 \u0a05\u0a24\u0a47 \u0a2a\u0a47\u0a38\u0a3c\u0a15\u0a3e\u0a30\u0a40\u0a06\u0a02 \u0a26\u0a3e \u0a38\u0a70\u0a2a\u0a3e\u0a26\u0a28 \u0a15\u0a30\u0a4b, \u0a2c\u0a23\u0a3e\u0a13 \u0a05\u0a24\u0a47 \u0a26\u0a47\u0a16\u0a4b\u0964"},"extname":{"message":"Google Docs \u0a14\u0a5e\u0a32\u0a3e\u0a08\u0a28"},"learnmore":{"message":"\u0a39\u0a4b\u0a30 \u0a1c\u0a3e\u0a23\u0a4b"},"popuphelptext":{"message":"\u0a24\u0a41\u0a38\u0a40\u0a02 \u0a1c\u0a3f\u0a71\u0a25\u0a47 \u0a35\u0a40 \u0a39\u0a4b, \u0a2d\u0a3e\u0a35\u0a47\u0a02 \u0a07\u0a70\u0a1f\u0a30\u0a28\u0a48\u0a71\u0a1f \u0a15\u0a28\u0a48\u0a15\u0a38\u0a3c\u0a28 \u0a26\u0a47 \u0a28\u0a3e\u0a32 \u0a1c\u0a3e\u0a02 \u0a07\u0a38\u0a26\u0a47 \u0a2c\u0a3f\u0a28\u0a3e\u0a02, \u0a09\u0a71\u0a25\u0a4b\u0a02 \u0a32\u0a3f\u0a16\u0a4b, \u0a38\u0a70\u0a2a\u0a3e\u0a26\u0a28 \u0a15\u0a30\u0a4b, \u0a05\u0a24\u0a47 \u0a38\u0a39\u0a3f\u0a2f\u0a4b\u0a17 \u0a15\u0a30\u0a4b\u0964"}}
diff --git a/offline/_locales/pl/messages.json b/offline/_locales/pl/messages.json
new file mode 100644
index 0000000..ffeeba7
--- /dev/null
+++ b/offline/_locales/pl/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "UTWÓRZ NOWY"
+ },
+ "explanationofflinedisabled": {
+ "message": "Jesteś offline. Aby korzystać z Dokumentów Google bez połączenia internetowego, otwórz ustawienia na stronie głównej Dokumentów Google i włącz synchronizację offline następnym razem, gdy będziesz mieć dostęp do internetu."
+ },
+ "explanationofflineenabled": {
+ "message": "Jesteś offline, ale nadal możesz edytować dostępne pliki i tworzyć nowe."
+ },
+ "extdesc": {
+ "message": "Edytuj, twórz i wyświetlaj swoje dokumenty, arkusze kalkulacyjne oraz prezentacje bez konieczności łączenia się z internetem."
+ },
+ "extname": {
+ "message": "Dokumenty Google offline"
+ },
+ "learnmore": {
+ "message": "Więcej informacji"
+ },
+ "popuphelptext": {
+ "message": "Pisz, edytuj i współpracuj, gdziekolwiek jesteś – niezależnie od tego, czy masz połączenie z internetem."
+ }
+}
diff --git a/offline/_locales/pt_BR/messages.json b/offline/_locales/pt_BR/messages.json
new file mode 100644
index 0000000..67732bd
--- /dev/null
+++ b/offline/_locales/pt_BR/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CRIAR NOVO"
+ },
+ "explanationofflinedisabled": {
+ "message": "Você está off-line. Para usar o Documentos Google sem conexão com a Internet, na próxima vez que se conectar, acesse as configurações na página inicial do Documentos Google e ative a sincronização off-line."
+ },
+ "explanationofflineenabled": {
+ "message": "Você está off-line, mas mesmo assim pode editar os arquivos disponíveis ou criar novos arquivos."
+ },
+ "extdesc": {
+ "message": "Edite, crie e veja seus documentos, planilhas e apresentações sem precisar de acesso à Internet."
+ },
+ "extname": {
+ "message": "Documentos Google off-line"
+ },
+ "learnmore": {
+ "message": "Saiba mais"
+ },
+ "popuphelptext": {
+ "message": "Escreva, edite e colabore onde você estiver, com ou sem conexão com a Internet."
+ }
+}
diff --git a/offline/_locales/pt_PT/messages.json b/offline/_locales/pt_PT/messages.json
new file mode 100644
index 0000000..c53905d
--- /dev/null
+++ b/offline/_locales/pt_PT/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CRIAR NOVO"
+ },
+ "explanationofflinedisabled": {
+ "message": "Está offline. Para utilizar o Google Docs sem uma ligação à Internet, aceda às definições na página inicial do Google Docs e ative a sincronização offline da próxima vez que estiver ligado à Internet."
+ },
+ "explanationofflineenabled": {
+ "message": "Está offline, mas continua a poder editar os ficheiros disponíveis ou criar novos ficheiros."
+ },
+ "extdesc": {
+ "message": "Edite, crie e veja os documentos, as folhas de cálculo e as apresentações, tudo sem precisar de aceder à Internet."
+ },
+ "extname": {
+ "message": "Google Docs offline"
+ },
+ "learnmore": {
+ "message": "Saber mais"
+ },
+ "popuphelptext": {
+ "message": "Escreva edite e colabore onde quer que esteja, com ou sem uma ligação à Internet."
+ }
+}
diff --git a/offline/_locales/ro/messages.json b/offline/_locales/ro/messages.json
new file mode 100644
index 0000000..bf5cd80
--- /dev/null
+++ b/offline/_locales/ro/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "CREAȚI UN DOCUMENT"
+ },
+ "explanationofflinedisabled": {
+ "message": "Sunteți offline. Pentru a utiliza Documente Google fără conexiune la internet, intrați în setările din pagina principală Documente Google și activați sincronizarea offline data viitoare când sunteți conectat(ă) la internet."
+ },
+ "explanationofflineenabled": {
+ "message": "Sunteți offline, dar puteți încă să editați fișierele disponibile sau să creați altele."
+ },
+ "extdesc": {
+ "message": "Editați, creați și accesați documente, foi de calcul și prezentări - totul fără acces la internet."
+ },
+ "extname": {
+ "message": "Documente Google Offline"
+ },
+ "learnmore": {
+ "message": "Aflați mai multe"
+ },
+ "popuphelptext": {
+ "message": "Scrieți, editați și colaborați oriunde ați fi, cu sau fără conexiune la internet."
+ }
+}
diff --git a/offline/_locales/ru/messages.json b/offline/_locales/ru/messages.json
new file mode 100644
index 0000000..98ac93d
--- /dev/null
+++ b/offline/_locales/ru/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "СОЗДАТЬ"
+ },
+ "explanationofflinedisabled": {
+ "message": "Чтобы использовать Google Документы без Интернета, подключитесь к Сети и разрешите синхронизацию в офлайн-режиме в настройках на стартовой странице."
+ },
+ "explanationofflineenabled": {
+ "message": "Нет подключения к Интернету. Вы можете создавать новые файлы и редактировать те, к которым разрешен офлайн-доступ."
+ },
+ "extdesc": {
+ "message": "Создавайте, просматривайте и редактируйте документы, таблицы и презентации без доступа к Интернету."
+ },
+ "extname": {
+ "message": "Google Документы офлайн"
+ },
+ "learnmore": {
+ "message": "Подробнее…"
+ },
+ "popuphelptext": {
+ "message": "Создавайте документы и редактируйте их вместе с коллегами и друзьями, где бы вы ни находились. Даже без подключения к Интернету!"
+ }
+}
diff --git a/offline/_locales/si/messages.json b/offline/_locales/si/messages.json
new file mode 100644
index 0000000..5433d4d
--- /dev/null
+++ b/offline/_locales/si/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u0db1\u0dc0 \u0dbd\u0dda\u0d9b\u0db1\u0dba\u0d9a\u0dca \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1"},"explanationofflinedisabled":{"message":"\u0d94\u0db6 \u0db1\u0ddc\u0db6\u0dd0\u0db3\u0dd2\u0dba. \u0d85\u0db1\u0dca\u0dad\u0dbb\u0dca\u0da2\u0dcf\u0dbd \u0dc3\u0db8\u0dca\u0db6\u0db1\u0dca\u0db0\u0dad\u0dcf\u0dc0\u0d9a\u0dca \u0db1\u0ddc\u0db8\u0dd0\u0dad\u0dd2\u0dc0 Google Docs \u0db7\u0dcf\u0dc0\u0dd2\u0dad \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7, Google Docs \u0db8\u0dd4\u0dbd\u0dca \u0db4\u0dd2\u0da7\u0dd4\u0dc0 \u0db8\u0dad \u0dc3\u0dd0\u0d9a\u0dc3\u0dd3\u0db8\u0dca \u0dc0\u0dd9\u0dad \u0d9c\u0ddc\u0dc3\u0dca \u0d94\u0db6 \u0d8a\u0dc5\u0d9f \u0d85\u0dc0\u0dc3\u0dca\u0dae\u0dcf\u0dc0\u0dda \u0d85\u0db1\u0dca\u0dad\u0dbb\u0dca\u0da2\u0dcf\u0dbd\u0dba\u0da7 \u0dc3\u0db6\u0dd0\u0db3\u0dd2 \u0dc0\u0dd2\u0da7 \u0db1\u0ddc\u0db6\u0dd0\u0db3\u0dd2 \u0dc3\u0db8\u0db8\u0dd4\u0dc4\u0dd4\u0dbb\u0dca\u0dad \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0d9a\u0dca\u200d\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dbb\u0db1\u0dca\u0db1."},"explanationofflineenabled":{"message":"\u0d94\u0db6 \u0db1\u0ddc\u0db6\u0dd0\u0db3\u0dd2\u0dba. \u0db1\u0db8\u0dd4\u0dad\u0dca \u0d94\u0db6\u0da7 \u0dad\u0dc0\u0db8 \u0dbd\u0db6\u0dcf \u0d9c\u0dad \u0dc4\u0dd0\u0d9a\u0dd2 \u0d9c\u0ddc\u0db1\u0dd4 \u0dc3\u0d82\u0dc3\u0dca\u0d9a\u0dbb\u0dab\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0dc4\u0ddd \u0d85\u0dbd\u0dd4\u0dad\u0dca \u0d92\u0dc0\u0dcf \u0dc3\u0dd1\u0daf\u0dd3\u0db8\u0da7 \u0dc4\u0dd0\u0d9a\u0dd2\u0dba."},"extdesc":{"message":"\u0d94\u0db6\u0d9c\u0dda \u0dbd\u0dda\u0d9b\u0db1, \u0db4\u0dd0\u0dad\u0dd4\u0dbb\u0dd4\u0db8\u0dca\u0db4\u0dad\u0dca \u0dc3\u0dc4 \u0d89\u0daf\u0dd2\u0dbb\u0dd2\u0db4\u0dad\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dca \u0dc3\u0d82\u0dc3\u0dca\u0d9a\u0dbb\u0dab\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1, \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1, \u0dc3\u0dc4 \u0db6\u0dbd\u0db1\u0dca\u0db1 - \u0dc3\u0dd2\u0dba\u0dbd\u0dca\u0dbd \u0d85\u0db1\u0dca\u0dad\u0dbb\u0dca\u0da2\u0dcf\u0dbd \u0db4\u0dd2\u0dc0\u0dd2\u0dc3\u0dd4\u0db8\u0d9a\u0dd2\u0db1\u0dca \u0dad\u0ddc\u0dbb\u0dc0."},"extname":{"message":"\u0db1\u0ddc\u0db6\u0dd0\u0db3\u0dd2 Google Docs"},"learnmore":{"message":"\u0dad\u0dc0 \u0daf\u0dd0\u0db1 \u0d9c\u0db1\u0dca\u0db1"},"popuphelptext":{"message":"\u0d85\u0db1\u0dca\u0dad\u0dbb\u0dca\u0da2\u0dcf\u0dbd \u0dc3\u0db8\u0dca\u0db6\u0db1\u0dca\u0db0\u0dad\u0dcf\u0dc0\u0d9a\u0dca \u0dc3\u0dc4\u0dd2\u0dad\u0dc0 \u0dc4\u0ddd \u0dbb\u0dc4\u0dd2\u0dad\u0dc0 \u0dbd\u0dd2\u0dba\u0db1\u0dca\u0db1, \u0dc3\u0d82\u0dc3\u0dca\u0d9a\u0dbb\u0dab\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1, \u0dc3\u0dc4 \u0d94\u0db6 \u0d9a\u0ddc\u0dc4\u0dda \u0dc3\u0dd2\u0da7\u0dd2\u0dba\u0dad\u0dca \u0dc3\u0dc4\u0dba\u0ddd\u0d9c\u0dba\u0dd9\u0db1\u0dca \u0d9a\u0da7\u0dba\u0dd4\u0dad\u0dd4 \u0d9a\u0dbb\u0db1\u0dca\u0db1."}}
diff --git a/offline/_locales/sk/messages.json b/offline/_locales/sk/messages.json
new file mode 100644
index 0000000..983687c
--- /dev/null
+++ b/offline/_locales/sk/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "VYTVORIŤ NOVÝ"
+ },
+ "explanationofflinedisabled": {
+ "message": "Ste offline. Ak chcete použiť Dokumenty Google bez pripojenia na internet, po najbližšom pripojení na internet prejdite do nastavení na domovskej stránke Dokumentov Google a zapnite offline synchronizáciu."
+ },
+ "explanationofflineenabled": {
+ "message": "Ste offline, no stále môžete upravovať dostupné súbory a vytvárať nové."
+ },
+ "extdesc": {
+ "message": "Úprava, tvorba a zobrazenie dokumentov, tabuliek a prezentácií. To všetko bez prístupu na internet."
+ },
+ "extname": {
+ "message": "Dokumenty Google v režime offline"
+ },
+ "learnmore": {
+ "message": "Ďalšie informácie"
+ },
+ "popuphelptext": {
+ "message": "Píšte, upravujte a spolupracuje, kdekoľvek ste, a to s pripojením na internet aj bez neho."
+ }
+}
diff --git a/offline/_locales/sl/messages.json b/offline/_locales/sl/messages.json
new file mode 100644
index 0000000..001035b
--- /dev/null
+++ b/offline/_locales/sl/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "USTVARI NOVO"
+ },
+ "explanationofflinedisabled": {
+ "message": "Nimate vzpostavljene povezave. Če želite uporabljati Google Dokumente brez internetne povezave, odprite nastavitve na domači strani Google Dokumentov in vklopite sinhronizacijo brez povezave, ko naslednjič vzpostavite internetno povezavo."
+ },
+ "explanationofflineenabled": {
+ "message": "Nimate vzpostavljene povezave, vendar lahko še vedno urejate razpoložljive datoteke ali ustvarjate nove."
+ },
+ "extdesc": {
+ "message": "Urejajte, ustvarjajte in si ogledujte dokumente, preglednice in predstavitve – vse to brez internetnega dostopa."
+ },
+ "extname": {
+ "message": "Google Dokumenti brez povezave"
+ },
+ "learnmore": {
+ "message": "Več o tem"
+ },
+ "popuphelptext": {
+ "message": "Pišite, urejajte in sodelujte, kjer koli ste, z internetno povezavo ali brez nje."
+ }
+}
diff --git a/offline/_locales/sr/messages.json b/offline/_locales/sr/messages.json
new file mode 100644
index 0000000..08e1b31
--- /dev/null
+++ b/offline/_locales/sr/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "НАПРАВИ НОВО"
+ },
+ "explanationofflinedisabled": {
+ "message": "Офлајн сте. Да бисте користили Google документе без интернет везе, идите у подешавања на почетној страници Google докумената и укључите офлајн синхронизацију кад следећи пут будете повезани са интернетом."
+ },
+ "explanationofflineenabled": {
+ "message": "Офлајн сте, али и даље можете да уносите измене у доступне датотеке или да правите нове."
+ },
+ "extdesc": {
+ "message": "Правите и прегледајте документе, табеле и презентације и уносите измене у њих – све то без интернет приступа."
+ },
+ "extname": {
+ "message": "Google документи офлајн"
+ },
+ "learnmore": {
+ "message": "Сазнајте више"
+ },
+ "popuphelptext": {
+ "message": "Пишите, уносите измене и сарађујте где год да сте, са интернет везом или без ње."
+ }
+}
diff --git a/offline/_locales/sv/messages.json b/offline/_locales/sv/messages.json
new file mode 100644
index 0000000..5a82f8d
--- /dev/null
+++ b/offline/_locales/sv/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "SKAPA NYTT"
+ },
+ "explanationofflinedisabled": {
+ "message": "Du är offline. Om du vill använda Google Dokument utan internetuppkoppling, öppna inställningarna på Google Dokuments startsida och aktivera offlinesynkronisering nästa gång du är ansluten till internet."
+ },
+ "explanationofflineenabled": {
+ "message": "Du är offline, men det går fortfarande att redigera tillgängliga filer eller skapa nya."
+ },
+ "extdesc": {
+ "message": "Redigera, skapa och visa dina dokument, kalkylark och presentationer – helt utan internetåtkomst."
+ },
+ "extname": {
+ "message": "Google Dokument Offline"
+ },
+ "learnmore": {
+ "message": "Läs mer"
+ },
+ "popuphelptext": {
+ "message": "Skriv, redigera och samarbeta överallt, med eller utan internetanslutning."
+ }
+}
diff --git a/offline/_locales/sw/messages.json b/offline/_locales/sw/messages.json
new file mode 100644
index 0000000..643cce1
--- /dev/null
+++ b/offline/_locales/sw/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "FUNGUA MPYA"
+ },
+ "explanationofflinedisabled": {
+ "message": "Haupo mtandaoni. Ili uweze kutumia Hati za Google bila muunganisho wa intaneti, wakati utakuwa umeunganishwa kwenye intaneti, nenda kwenye sehemu ya mipangilio kwenye ukurasa wa kwanza wa Hati za Google kisha uwashe kipengele cha usawazishaji nje ya mtandao."
+ },
+ "explanationofflineenabled": {
+ "message": "Haupo mtandaoni, lakini bado unaweza kubadilisha faili zilizopo au uunde mpya."
+ },
+ "extdesc": {
+ "message": "Badilisha, unda na uangalie hati, malahajedwali na mawasilisho yako — yote bila kutumia muunganisho wa intaneti."
+ },
+ "extname": {
+ "message": "Hati za Google Nje ya Mtandao"
+ },
+ "learnmore": {
+ "message": "Pata Maelezo Zaidi"
+ },
+ "popuphelptext": {
+ "message": "Andika hati, zibadilishe na ushirikiane na wengine popote ulipo, iwe una muunganisho wa intaneti au huna."
+ }
+}
diff --git a/offline/_locales/ta/messages.json b/offline/_locales/ta/messages.json
new file mode 100644
index 0000000..d1ef60f
--- /dev/null
+++ b/offline/_locales/ta/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "புதிய ஆவணத்தை உருவாக்கு"
+ },
+ "explanationofflinedisabled": {
+ "message": "ஆஃப்லைனில் உள்ளீர்கள். இணைய இணைப்பு இன்றி Google ஆவணத்தைப் பயன்படுத்த, அடுத்த முறை இணையத்துடன் இணைக்கும் போது, Google ஆவண முகப்புப்பக்கத்தில் அமைப்புகளுக்குச் சென்று, ஆஃப்லைன் ஒத்திசைவை இயக்கவும்."
+ },
+ "explanationofflineenabled": {
+ "message": "ஆஃப்லைனில் இருந்தாலும், சாதனத்தில் ஒத்திசைத்த ஃபைல்களைத் தொடர்ந்து திருத்தலாம் அல்லது புதியவற்றை உருவாக்கலாம்."
+ },
+ "extdesc": {
+ "message": "இணைய அணுகல் இல்லாமல், உங்கள் ஆவணங்கள், விரிதாள்கள், விளக்கக்காட்சிகள் ஆகியவற்றைத் திருத்தலாம், உருவாக்கலாம், பார்க்கலாம்."
+ },
+ "extname": {
+ "message": "Google ஆவணம் ஆஃப்லைன்"
+ },
+ "learnmore": {
+ "message": "மேலும் அறிக"
+ },
+ "popuphelptext": {
+ "message": "இணைய இணைப்பு இருந்தாலும் இல்லையென்றாலும் எங்கிருந்தும் எழுதலாம், திருத்தலாம், கூட்டுப்பணி செய்யலாம்."
+ }
+}
diff --git a/offline/_locales/te/messages.json b/offline/_locales/te/messages.json
new file mode 100644
index 0000000..eeedd9a
--- /dev/null
+++ b/offline/_locales/te/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "కొత్త దాన్ని క్రియేట్ చేయండి"
+ },
+ "explanationofflinedisabled": {
+ "message": "మీరు ఆఫ్లైన్లో ఉన్నారు. ఇంటర్నెట్ కనెక్షన్ లేకుండా Google డాక్స్ను ఉపయోగించడానికి, మీరు ఇంటర్నెట్కు కనెక్ట్ చేసిన తదుపరి సారి Google డాక్స్ హోమ్ పేజీలో సెట్టింగ్లకు వెళ్లి, ఆఫ్లైన్ సింక్ను ఆన్ చేయండి."
+ },
+ "explanationofflineenabled": {
+ "message": "మీరు ఆఫ్లైన్లో ఉన్నారు, కానీ మీరు ఇప్పటికీ అందుబాటులో ఉన్న ఫైళ్లను సవరించగలరు లేదా కొత్త వాటిని సృష్టించగలరు."
+ },
+ "extdesc": {
+ "message": "మీ డాక్యుమెంట్లు, స్ప్రెడ్షీట్లు, ప్రెజెంటేషన్లను ఎడిట్ చేయండి, క్రియేట్ చేయండి, చూడండి — అన్నీ ఇంటర్నెట్ యాక్సెస్ లేకుండానే."
+ },
+ "extname": {
+ "message": "Google డాక్స్ ఆఫ్లైన్"
+ },
+ "learnmore": {
+ "message": "మరింత తెలుసుకోండి"
+ },
+ "popuphelptext": {
+ "message": "మీరు ఎక్కడ ఉన్నా ఇంటర్నెట్ కనెక్షన్ ఉన్నా లేకున్నా రాయండి, ఎడిట్ చేయండి మరియు కలిసి పని చేయండి."
+ }
+}
diff --git a/offline/_locales/th/messages.json b/offline/_locales/th/messages.json
new file mode 100644
index 0000000..ea4744a
--- /dev/null
+++ b/offline/_locales/th/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "สร้างใหม่"
+ },
+ "explanationofflinedisabled": {
+ "message": "คุณออฟไลน์อยู่ หากต้องการใช้ Google เอกสารโดยไม่เชื่อมต่อกับอินเทอร์เน็ต โปรดไปที่การตั้งค่าในหน้าแรกของ Google เอกสาร แล้วเปิดการซิงค์แบบออฟไลน์ในครั้งต่อไปที่เชื่อมต่อกับอินเทอร์เน็ต"
+ },
+ "explanationofflineenabled": {
+ "message": "คุณออฟไลน์อยู่แต่ยังสามารถแก้ไขไฟล์ที่มีอยู่หรือสร้างไฟล์ใหม่ได้"
+ },
+ "extdesc": {
+ "message": "แก้ไข สร้าง และดูเอกสาร สเปรดชีต และงานนำเสนอ — โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต"
+ },
+ "extname": {
+ "message": "Google เอกสารแบบออฟไลน์"
+ },
+ "learnmore": {
+ "message": "ดูข้อมูลเพิ่มเติม"
+ },
+ "popuphelptext": {
+ "message": "เขียน แก้ไข และทำงานร่วมกันได้จากทุกที่ ไม่ว่าจะมีหรือไม่มีการเชื่อมต่ออินเทอร์เน็ต"
+ }
+}
diff --git a/offline/_locales/tr/messages.json b/offline/_locales/tr/messages.json
new file mode 100644
index 0000000..876a063
--- /dev/null
+++ b/offline/_locales/tr/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "YENİ OLUŞTUR"
+ },
+ "explanationofflinedisabled": {
+ "message": "İnternet'e bağlı değilsiniz. Google Dokümanlar'ı İnternet bağlantısı olmadan kullanmak için, İnternet'e bağlanabildiğinizde Google Dokümanlar ana sayfasında Ayarlar'a gidin ve çevrimdışı senkronizasyonu etkinleştirin."
+ },
+ "explanationofflineenabled": {
+ "message": "İnternet'e bağlı değilsiniz. Ancak, yine de mevcut dosyaları düzenleyebilir veya yeni dosyalar oluşturabilirsiniz."
+ },
+ "extdesc": {
+ "message": "Doküman, e-tablo ve sunu oluşturun, bunları düzenleyin ve görüntüleyin. Tüm bu işlemleri internet erişimi olmadan yapabilirsiniz."
+ },
+ "extname": {
+ "message": "Google Dokümanlar Çevrimdışı"
+ },
+ "learnmore": {
+ "message": "Daha Fazla Bilgi"
+ },
+ "popuphelptext": {
+ "message": "İnternet bağlantınız olsun veya olmasın, nerede olursanız olun yazın, düzenleyin, başka kullanıcılarla birlikte çalışın."
+ }
+}
diff --git a/offline/_locales/uk/messages.json b/offline/_locales/uk/messages.json
new file mode 100644
index 0000000..1516344
--- /dev/null
+++ b/offline/_locales/uk/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "СТВОРИТИ"
+ },
+ "explanationofflinedisabled": {
+ "message": "Ви в режимі офлайн. Щоб користуватися Google Документами без з’єднання з Інтернетом, перейдіть у налаштування на домашній сторінці Google Документів і ввімкніть офлайн-синхронізацію, коли будете в мережі."
+ },
+ "explanationofflineenabled": {
+ "message": "Ви в режимі офлайн, однак усе одно можете редагувати доступні файли або створювати нові."
+ },
+ "extdesc": {
+ "message": "Редагуйте, створюйте й переглядайте документи, електронні таблиці та презентації без доступу до Інтернету."
+ },
+ "extname": {
+ "message": "Google Документи офлайн"
+ },
+ "learnmore": {
+ "message": "Докладніше"
+ },
+ "popuphelptext": {
+ "message": "Створюйте та редагуйте файли, а також працюйте над ними разом з іншими навіть без Інтернету."
+ }
+}
diff --git a/offline/_locales/ur/messages.json b/offline/_locales/ur/messages.json
new file mode 100644
index 0000000..62f4803
--- /dev/null
+++ b/offline/_locales/ur/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u0646\u06cc\u0627 \u0628\u0646\u0627\u0626\u06cc\u06ba"},"explanationofflinedisabled":{"message":"\u0622\u067e \u0622\u0641 \u0644\u0627\u0626\u0646 \u06c1\u06cc\u06ba\u06d4 Google Docs \u06a9\u0648 \u0628\u063a\u06cc\u0631 \u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u06a9\u0646\u06a9\u0634\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc\u0644\u0626\u06d2 \u0627\u06af\u0644\u06cc \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e \u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06c1\u0648\u06ba \u062a\u0648 Google Docs \u06c1\u0648\u0645 \u067e\u06cc\u062c \u067e\u0631 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0622\u0641 \u0644\u0627\u0626\u0646 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631\u06cc \u06a9\u0648 \u0622\u0646 \u06a9\u0631\u06cc\u06ba\u06d4"},"explanationofflineenabled":{"message":"\u0622\u067e \u0622\u0641 \u0644\u0627\u0626\u0646 \u06c1\u06cc\u06ba \u0644\u06cc\u06a9\u0646 \u0622\u067e \u067e\u06be\u0631 \u0628\u06be\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628 \u0641\u0627\u0626\u0644\u0632 \u0645\u06cc\u06ba \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u0646\u0626\u06cc \u0641\u0627\u0626\u0644\u0632 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4"},"extdesc":{"message":"\u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a\u060c \u0627\u0633\u067e\u0631\u06cc\u0688\u0634\u06cc\u0679\u0633 \u0627\u0648\u0631 \u067e\u06cc\u0634\u06a9\u0634\u0648\u06ba \u2014 \u062a\u0645\u0627\u0645 \u0645\u06cc\u06ba \u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u06a9\u06cc \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u062a\u0631\u0645\u06cc\u0645\u060c \u062a\u062e\u0644\u06cc\u0642 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4"},"extname":{"message":"Google Docs \u0622\u0641 \u0644\u0627\u0626\u0646"},"learnmore":{"message":"\u0645\u0632\u06cc\u062f \u062c\u0627\u0646\u06cc\u06ba"},"popuphelptext":{"message":"\u0622\u067e \u06a9\u06c1\u06cc\u06ba \u0628\u06be\u06cc \u06c1\u0648\u06ba\u060c \u0627\u0646\u0679\u0631\u0646\u06cc\u0679 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06cc\u0627 \u0627\u0633 \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u060c \u0644\u06a9\u06be\u06cc\u06ba\u060c \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u06a9\u0679\u06be\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u06cc\u06ba\u06d4"}}
diff --git a/offline/_locales/vi/messages.json b/offline/_locales/vi/messages.json
new file mode 100644
index 0000000..117bb44
--- /dev/null
+++ b/offline/_locales/vi/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "TẠO MỚI"
+ },
+ "explanationofflinedisabled": {
+ "message": "Bạn đang ngoại tuyến. Để sử dụng Google Tài liệu mà không cần kết nối Internet, đi đến cài đặt trên trang chủ của Google Tài liệu và bật đồng bộ hóa ngoại tuyến vào lần tiếp theo bạn được kết nối với mạng Internet."
+ },
+ "explanationofflineenabled": {
+ "message": "Bạn đang ngoại tuyến, tuy nhiên bạn vẫn có thể chỉnh sửa các tệp có sẵn hoặc tạo các tệp mới."
+ },
+ "extdesc": {
+ "message": "Chỉnh sửa, tạo và xem tài liệu, bảng tính và bản trình bày — tất cả mà không cần truy cập Internet."
+ },
+ "extname": {
+ "message": "Google Tài liệu ngoại tuyến"
+ },
+ "learnmore": {
+ "message": "Tìm hiểu thêm"
+ },
+ "popuphelptext": {
+ "message": "Viết, chỉnh sửa và cộng tác ở mọi nơi khi có hoặc không có kết nối Internet."
+ }
+}
diff --git a/offline/_locales/zh_CN/messages.json b/offline/_locales/zh_CN/messages.json
new file mode 100644
index 0000000..6346c7c
--- /dev/null
+++ b/offline/_locales/zh_CN/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "新建"
+ },
+ "explanationofflinedisabled": {
+ "message": "您处于离线状态。要在未连接到互联网的情况下使用 Google 文档,请在下次连接到互联网时转到 Google 文档首页的“设置”,并开启离线同步功能。"
+ },
+ "explanationofflineenabled": {
+ "message": "您处于离线状态,但是您仍然可以编辑可用的文件或创建新文件。"
+ },
+ "extdesc": {
+ "message": "编辑、创建和查看您的文档、电子表格和演示文稿 - 无需连接互联网。"
+ },
+ "extname": {
+ "message": "Google 文档的离线功能"
+ },
+ "learnmore": {
+ "message": "了解详情"
+ },
+ "popuphelptext": {
+ "message": "无论是否连接到互联网,您随时随地都可以撰写、编辑并与他人协作。"
+ }
+}
diff --git a/offline/_locales/zh_HK/messages.json b/offline/_locales/zh_HK/messages.json
new file mode 100644
index 0000000..b1d5848
--- /dev/null
+++ b/offline/_locales/zh_HK/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"\u5efa\u7acb\u65b0\u9805\u76ee"},"explanationofflinedisabled":{"message":"\u60a8\u8655\u65bc\u96e2\u7dda\u72c0\u614b\u3002\u5982\u8981\u5728\u6c92\u6709\u4e92\u806f\u7db2\u9023\u7dda\u7684\u60c5\u6cc1\u4e0b\u4f7f\u7528\u300cGoogle \u6587\u4ef6\u300d\uff0c\u8acb\u524d\u5f80\u300cGoogle \u6587\u4ef6\u300d\u9996\u9801\u7684\u8a2d\u5b9a\uff0c\u4e26\u5728\u4e0b\u6b21\u9023\u63a5\u4e92\u806f\u7db2\u6642\u958b\u555f\u96e2\u7dda\u540c\u6b65\u529f\u80fd\u3002"},"explanationofflineenabled":{"message":"\u60a8\u8655\u65bc\u96e2\u7dda\u72c0\u614b\uff0c\u4f46\u60a8\u4ecd\u53ef\u4ee5\u7de8\u8f2f\u53ef\u7528\u6a94\u6848\u6216\u5efa\u7acb\u65b0\u6a94\u6848\u3002"},"extdesc":{"message":"\u7de8\u8f2f\u3001\u5efa\u7acb\u53ca\u67e5\u770b\u60a8\u7684\u6587\u4ef6\u3001\u8a66\u7b97\u8868\u548c\u7c21\u5831\uff0c\u5b8c\u5168\u4e0d\u9700\u4f7f\u7528\u4e92\u806f\u7db2\u3002"},"extname":{"message":"\u300cGoogle \u6587\u4ef6\u300d\u96e2\u7dda\u7248"},"learnmore":{"message":"\u77ad\u89e3\u8a73\u60c5"},"popuphelptext":{"message":"\u7121\u8ad6\u662f\u5426\u9023\u63a5\u4e92\u806f\u7db2\uff0c\u90fd\u80fd\u64b0\u5beb\u3001\u7de8\u8f2f\u5167\u5bb9\u4ee5\u53ca\u8207\u4ed6\u4eba\u5354\u4f5c\u3002"}}
diff --git a/offline/_locales/zh_TW/messages.json b/offline/_locales/zh_TW/messages.json
new file mode 100644
index 0000000..f16a666
--- /dev/null
+++ b/offline/_locales/zh_TW/messages.json
@@ -0,0 +1,23 @@
+{
+ "createnew": {
+ "message": "建立新文件"
+ },
+ "explanationofflinedisabled": {
+ "message": "您處於離線狀態。如要在離線狀態下使用 Google 文件,請在下次連上網際網路時前往 Google 文件首頁的設定中啟用離線同步功能。"
+ },
+ "explanationofflineenabled": {
+ "message": "您處於離線狀態,但仍可編輯可用的檔案或建立新檔案。"
+ },
+ "extdesc": {
+ "message": "即使在離線狀態下,也能編輯、建立及瀏覽文件、試算表和簡報。"
+ },
+ "extname": {
+ "message": "Google 文件離線版"
+ },
+ "learnmore": {
+ "message": "瞭解詳情"
+ },
+ "popuphelptext": {
+ "message": "無論上線或離線,您隨時隨地都能撰寫、編輯文件,並與他人協同合作。"
+ }
+}
diff --git a/offline/_locales/zu/messages.json b/offline/_locales/zu/messages.json
new file mode 100644
index 0000000..7e16a51
--- /dev/null
+++ b/offline/_locales/zu/messages.json
@@ -0,0 +1 @@
+{"createnew":{"message":"DALA ENTSHA"},"explanationofflinedisabled":{"message":"Awuxhunyiwe ku-inthanethi. Ukuze usebenzise i-Google Amadokhumenti ngaphandle koxhumano lwe-inthanethi, iya kokuthi izilungiselelo ekhasini lasekhaya le-Google Amadokhumenti bese uvula ukuvumelanisa okungaxhunyiwe ku-inthanethi ngesikhathi esilandelayo lapho uxhunywe ku-inthanethi."},"explanationofflineenabled":{"message":"Awuxhunyiwe ku-inthanethi, kodwa usangakwazi ukuhlela amafayela atholakalayo noma udale amasha."},"extdesc":{"message":"Hlela, dala, futhi ubuke amadokhumenti akho, amaspredishithi, namaphrezentheshini \u2014 konke ngaphandle kokufinyelela kwe-inthanethi."},"extname":{"message":"I-Google Amadokhumenti engaxhumekile ku-intanethi"},"learnmore":{"message":"Funda kabanzi"},"popuphelptext":{"message":"Bhala, hlela, futhi hlanganyela noma yikuphi lapho okhona, unalo noma ungenalo uxhumano lwe-inthanethi."}}
diff --git a/offline/dasherSettingSchema.json b/offline/dasherSettingSchema.json
new file mode 100644
index 0000000..900d263
--- /dev/null
+++ b/offline/dasherSettingSchema.json
@@ -0,0 +1,21 @@
+{
+ "type": "object",
+ "properties": {
+ "allowedDocsOfflineDomains": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Allow users to enable Docs offline for the specified managed domains.",
+ "description": "Users on managed devices will be able to enable docs offline if they are part of the specified managed domains."
+ },
+ "autoEnabledDocsOfflineDomains": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "title": "Auto enable Docs offline for the specified managed domains in certain eligible situations.",
+ "description": "Users on managed devices, in certain eligible situations, will be able to automatically access and edit recent files offline for the managed domains set in this property. They can still disable it from Drive settings."
+ }
+ }
+}
diff --git a/offline/eventpage_bin_prod.js b/offline/eventpage_bin_prod.js
new file mode 100644
index 0000000..d27071e
--- /dev/null
+++ b/offline/eventpage_bin_prod.js
@@ -0,0 +1,128 @@
+/*
+
+ Copyright The Closure Library Authors.
+ SPDX-License-Identifier: Apache-2.0
+*/
+'use strict';var m;function aa(a){var b=0;return function(){return b>>0)+"_",e=0;return b});
+n("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;cc&&(c=Math.max(c+e,0));c>>0),ra=0;function sa(a,b,c){return a.call.apply(a.bind,arguments)}
+function ta(a,b,c){if(!a)throw Error();if(2e;e++){var f=c.concat(d[e].split(""));Fa[e]=f;for(var g=0;g>2];k=b[(k&3)<<4|l>>4];l=b[(l&15)<<2|h>>6];h=b[h&63];c[e++]=""+g+k+l+h}g=0;h=d;switch(a.length-f){case 2:g=
+a[f+1],h=b[(g&15)<<2]||d;case 1:a=a[f],c[e]=""+b[a>>2]+b[(a&3)<<4|g>>4]+h+d}return c.join("")};var Ia="function"===typeof Uint8Array;function Ja(a,b,c){if(null!=a)return"object"===typeof a?Ia&&a instanceof Uint8Array?c(a):Ka(a,b,c):b(a)}function Ka(a,b,c){if(Array.isArray(a)){for(var d=Array(a.length),e=0;e=a.o?a.l?a.l[b]:void 0:a.j[b+a.v]}function D(a,b,c,d){(void 0===d?0:d)||b>=a.o?(Sa(a),a.l[b]=c):a.j[b+a.v]=c;return a}function Ta(a,b,c){if(-1===c)return null;a.g||(a.g={});if(!a.g[c]){var d=C(a,c,!1);d&&(a.g[c]=new b(d))}return a.g[c]}function Ua(a,b,c){var d;a.g||(a.g={});var e=c?E(c):c;a.g[b]=c;D(a,b,e,void 0===d?!1:d)}
+B.prototype.toJSON=function(){return Ka(E(this),Ma,Ha)};function E(a){if(a.g)for(var b in a.g){var c=a.g[b];if(Array.isArray(c))for(var d=0;d>>0).toString(16);return a+G(b)};F.prototype.C=["java.lang.Object",0];function Xa(){}r(Xa,F);Xa.prototype.j=function(a){this.g=a;Ya(this,a)};function Za(a){$a(a.g)&&(Error.captureStackTrace?Error.captureStackTrace(I(a.g,$a,ab)):I(a.g,$a,ab).stack=Error().stack)}Xa.prototype.toString=function(){var a=Wa(H(this.constructor)),b=this.A;return null==b?a:G(a)+": "+G(b)};Xa.prototype.C=["java.lang.Throwable",0];function Ya(a,b){if(b instanceof Object)try{b.ya=a,Object.defineProperties(b,{cause:{get:function(){return a.D&&a.D.g}}})}catch(c){}};function bb(){}r(bb,Xa);bb.prototype.C=["java.lang.Exception",0];function J(){}r(J,bb);J.prototype.C=["java.lang.RuntimeException",0];function cb(){}r(cb,F);cb.prototype.C=["java.lang.Number",0];function db(){}r(db,F);db.prototype.C=["java.lang.Boolean",0];function eb(){}r(eb,J);eb.prototype.j=function(a){J.prototype.j.call(this,"__noinit__"===this.v?a:this.v)};eb.prototype.C=["java.lang.JsException",0];function fb(){}r(fb,eb);fb.prototype.C=["java.lang.NullPointerException",0];var Va=0;function gb(){}gb.prototype.C=["",1];function hb(){}r(hb,F);hb.prototype.C=["",0];function ib(a){var b=typeof a;if("number"==b)return H(jb);if("boolean"==b)return H(db);if("string"==b)return H(kb);if(Array.isArray(a))return(a=a.pa)?H(a.Ba,a.Aa):H(F,1);if(a instanceof F)return H(a.constructor);if(a)return H("function"==b?gb:hb);throw new TypeError("null.getClass");};function lb(){}r(lb,J);lb.prototype.C=["java.util.NoSuchElementException",0];function mb(){}r(mb,J);mb.prototype.C=["java.lang.ClassCastException",0];function jb(){}r(jb,cb);jb.prototype.C=["java.lang.Double",0];function I(a,b,c){if(null!=a&&!b(a))throw a=G(Wa(ib(a)))+" cannot be cast to "+G(Wa(H(c))),b=new mb,b.A=a,Za(b),b.j(Error(b)),b.g;return a};function nb(a){if(null==a)throw a=new fb,Za(a),a.v="__noinit__",a.j(new TypeError(a)),a.g;return a};function K(){}r(K,cb);K.prototype.o=function(){return 0};K.prototype.toString=function(){return"0"};function ob(a){return a instanceof K}K.prototype.C=["java.lang.Integer",0];function kb(){}r(kb,F);function G(a){return null==a?"null":a.toString()}function pb(a){return"string"===typeof a}kb.prototype.C=["java.lang.String",0];function qb(a,b){this.g=a;this.j=b}r(qb,F);function Wa(a){if(0!=a.j){var b=3==a.g.prototype.C[1]?a.g.prototype.C[2]:"L"+G(a.g.prototype.C[0])+";";a=a.j;for(var c="",d=0;dc&&(c=a.length);var d=a.indexOf("?");if(0>d||d>c){d=c;var e=""}else e=a.substring(d+1,c);a=[a.substr(0,d),e,a.substr(c)];c=a[1];a[1]=b?c?c+"&"+b:b:c;return a[0]+(a[1]?"?"+a[1]:"")+a[2]}function Fb(a,b,c){if(Array.isArray(b))for(var d=0;db)throw Error("Bad port number "+b);a.D=b}else a.D=null}function Mb(a,b,c){a.B=c?Pb(b,!0):b;return a}function Ob(a,b,c){b instanceof Nb?(a.j=b,Vb(a.j,a.g)):(c||(b=Qb(b,Wb)),a.j=new Nb(b,a.g))}function Pb(a,b){return a?b?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""}
+function Qb(a,b,c){return"string"===typeof a?(a=encodeURI(a).replace(b,Xb),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null}function Xb(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)}var Rb=/[#\/\?@]/g,Tb=/[#\?:]/g,Sb=/[#\?]/g,Wb=/[#\?@]/g,Ub=/#/g;function Nb(a,b){this.j=this.g=null;this.l=a||null;this.v=!!b}function N(a){a.g||(a.g=new Map,a.j=0,a.l&&Db(a.l,function(b,c){a.add(decodeURIComponent(b.replace(/\+/g," ")),c)}))}m=Nb.prototype;
+m.add=function(a,b){N(this);this.l=null;a=O(this,a);var c=this.g.get(a);c||this.g.set(a,c=[]);c.push(b);this.j=this.j+1;return this};m.remove=function(a){N(this);a=O(this,a);return this.g.has(a)?(this.l=null,this.j=this.j-this.g.get(a).length,this.g.delete(a)):!1};m.clear=function(){this.g=this.l=null;this.j=0};function Yb(a,b){N(a);b=O(a,b);return a.g.has(b)}m.forEach=function(a,b){N(this);this.g.forEach(function(c,d){c.forEach(function(e){a.call(b,e,d,this)},this)},this)};
+m.W=function(a){N(this);var b=[];if("string"===typeof a)Yb(this,a)&&(b=b.concat(this.g.get(O(this,a))));else{a=Array.from(this.g.values());for(var c=0;cb.length){c.push(ac(a)+"(");for(var d=a.arguments,e=0;d&&e>>0);function Jc(a){if("function"===typeof a)return a;a[Rc]||(a[Rc]=function(b){return a.handleEvent(b)});return a[Rc]}kc(function(a){Oc=a(Oc)});function R(){P.call(this);this.j=new Bc(this);this.ba=this;this.U=null}y(R,P);R.prototype[xc]=!0;R.prototype.removeEventListener=function(a,b,c,d){Pc(this,a,b,c,d)};
+function S(a,b){var c=a.U;if(c){var d=[];for(var e=1;c;c=c.U)d.push(c),++e}a=a.ba;c=b.type||b;"string"===typeof b?b=new Q(b,a):b instanceof Q?b.target=b.target||a:(e=b,b=new Q(c,a),Da(b,e));e=!0;if(d)for(var f=d.length-1;0<=f;f--){var g=b.g=d[f];e=Sc(g,c,!0,b)&&e}g=b.g=a;e=Sc(g,c,!0,b)&&e;e=Sc(g,c,!1,b)&&e;if(d)for(f=0;fa.j&&(a.j++,b.next=a.g,a.g=b)};function id(){var a=document;var b="IFRAME";"application/xhtml+xml"===a.contentType&&(b=b.toLowerCase());return a.createElement(b)};var jd;
+function kd(){var a=u.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&-1==A.indexOf("Presto")&&(a=function(){var e=id();e.style.display="none";document.documentElement.appendChild(e);var f=e.contentWindow;e=f.document;e.open();e.close();var g="callImmediate"+Math.random(),h="file:"==f.location.protocol?"*":f.location.protocol+"//"+f.location.host;e=w(function(k){if(("*"==h||k.origin==h)&&k.data==g)this.port1.onmessage()},this);f.addEventListener("message",
+e,!1);this.port1={};this.port2={postMessage:function(){f.postMessage(g,h)}}});if("undefined"!==typeof a&&-1==A.indexOf("Trident")&&-1==A.indexOf("MSIE")){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var e=c.Y;c.Y=null;e()}};return function(e){d.next={Y:e};d=d.next;b.port2.postMessage(0)}}return function(e){u.setTimeout(e,0)}}function ld(a){return a}kc(function(a){ld=a});function md(a){u.setTimeout(function(){throw a;},0)};function nd(){this.j=this.g=null}nd.prototype.add=function(a,b){var c=od.get();c.set(a,b);this.j?this.j.next=c:this.g=c;this.j=c};nd.prototype.remove=function(){var a=null;this.g&&(a=this.g,this.g=this.g.next,this.g||(this.j=null),a.next=null);return a};var od=new gd(function(){return new pd},function(a){return a.reset()});function pd(){this.next=this.g=this.j=null}pd.prototype.set=function(a,b){this.j=a;this.g=b;this.next=null};pd.prototype.reset=function(){this.next=this.g=this.j=null};function qd(a,b){rd||sd();td||(rd(),td=!0);ud.add(a,b)}var rd;function sd(){if(u.Promise&&u.Promise.resolve){var a=u.Promise.resolve(void 0);rd=function(){a.then(vd)}}else rd=function(){var b=vd;b=ld(b);"function"!==typeof u.setImmediate||u.Window&&u.Window.prototype&&-1==A.indexOf("Edge")&&u.Window.prototype.setImmediate==u.setImmediate?(jd||(jd=kd()),jd(b)):u.setImmediate(b)}}var td=!1,ud=new nd;function vd(){for(var a;a=ud.remove();){try{a.j.call(a.g)}catch(b){md(b)}hd(od,a)}td=!1};function wd(a){if(!a)return!1;try{return!!a.$goog_Thenable}catch(b){return!1}};function T(a){this.g=0;this.A=void 0;this.v=this.j=this.l=null;this.o=this.D=!1;if(a!=v)try{var b=this;a.call(void 0,function(c){U(b,2,c)},function(c){U(b,3,c)})}catch(c){U(this,3,c)}}function xd(){this.next=this.l=this.j=this.o=this.g=null;this.v=!1}xd.prototype.reset=function(){this.l=this.j=this.o=this.g=null;this.v=!1};var yd=new gd(function(){return new xd},function(a){a.reset()});function zd(a,b,c){var d=yd.get();d.o=a;d.j=b;d.l=c;return d}
+function Ad(a){if(a instanceof T)return a;var b=new T(v);U(b,2,a);return b}function Bd(a,b,c){Cd(a,b,c,null)||qd(x(b,a))}function Dd(){var a=[Ed(),Fd()];return new T(function(b,c){var d=a.length,e=[];if(d)for(var f=function(l,p){d--;e[l]=p;0==d&&b(e)},g=function(l){c(l)},h=0,k;h=Number(c)?a:a=-1Number(a)?"-":0<=b.indexOf("+")?"+":0<=b.indexOf(" ")?" ":"";0<=Number(a)&&(d=f+d);if(isNaN(c)||d.length>=Number(c))return d;d=isNaN(e)?Math.abs(Number(a)).toString():Math.abs(Number(a)).toFixed(e);a=Number(c)-d.length-f.length;return d=0<=b.indexOf("-",0)?
+f+d+Ab(" ",a):f+Ab(0<=b.indexOf("0",0)?"0":" ",a)+d},d:function(a,b,c,d,e,f,g,h){return oe.f(parseInt(a,10),b,c,d,0,f,g,h)}};oe.i=oe.d;oe.u=oe.d;function pe(){this.j=0;this.g=[]}m=pe.prototype;m.add=function(a){var b=this.g[this.j];this.g[this.j]=a;this.j=(this.j+1)%50;return b};m.get=function(a){a=qe(this,a);return this.g[a]};m.set=function(a,b){a=qe(this,a);this.g[a]=b};m.clear=function(){this.j=this.g.length=0};m.W=function(){for(var a=this.g.length,b=[],c=this.g.length-this.g.length;c=a.g.length)throw Error("Out of bounds exception");return 50>a.g.length?b:(a.j+Number(b))%50};function se(a){this.l=a;this.j=Math.floor(a/50);this.g=new pe}se.prototype.get=function(a){return te(this,a,function(b,c){return b+c.g})};function te(a,b,c){b=b||Date.now();ue(a,b);var d=0;b=a.j*(Math.floor(b/a.j)+1)-a.l;for(var e=a.g.g.length-1;0<=e;--e){var f=a.g.get(e);if(f.end<=b)break;d=c(d,f)}return d}function ue(a,b){var c=re(a.g);c&&(c=c.end-a.j,b=b.B&&b.cancel())}this.F=!0;this.l||(a=new ze(this),Ae(this),Be(this,!1,a))}};X.prototype.G=function(a,b){this.A=!1;Be(this,a,b)};function Be(a,b,c){a.l=!0;a.j=c;a.v=!b;Ce(a)}function Ae(a){if(a.l){if(!a.F)throw new De(a);a.F=!1}}
+function Ee(a){throw a;}function Fe(a,b,c){return Ge(a,b,null,c)}function He(a,b,c){Ge(a,b,function(d){var e=b.call(this,d);if(void 0===e)throw d;return e},c)}function Ge(a,b,c,d){a.o.push([b,c,d]);a.l&&Ce(a);return a}X.prototype.then=function(a,b,c){var d,e,f=new T(function(g,h){e=g;d=h});Ge(this,e,function(g){g instanceof ze?f.cancel():d(g)});return f.then(a,b,c)};X.prototype.$goog_Thenable=!0;X.prototype.isError=function(a){return a instanceof Error};
+function Ie(a){return wa(a.o,function(b){return"function"===typeof b[1]})}
+function Ce(a){if(a.D&&a.l&&Ie(a)){var b=a.D,c=Je[b];c&&(u.clearTimeout(c.g),delete Je[b]);a.D=0}a.g&&(a.g.B--,delete a.g);b=a.j;for(var d=c=!1;a.o.length&&!a.A;){var e=a.o.shift(),f=e[0],g=e[1];e=e[2];if(f=a.v?g:f)try{var h=f.call(e||null,b);void 0!==h&&(a.v=a.v&&(h==b||a.isError(h)),a.j=b=h);if(wd(b)||"function"===typeof u.Promise&&b instanceof u.Promise)d=!0,a.A=!0}catch(k){b=k,a.v=!0,Ie(a)||(c=!0)}}a.j=b;d&&(h=w(a.G,a,!0),d=w(a.G,a,!1),b instanceof X?(Ge(b,h,d),b.I=!0):b.then(h,d));c&&(b=new Ke(b),
+Je[b.g]=b,a.D=b.g)}function Le(a){var b=new X;Ae(b);Be(b,!0,a);return b}function De(){z.call(this)}y(De,z);De.prototype.message="Deferred has already fired";De.prototype.name="AlreadyCalledError";function ze(){z.call(this)}y(ze,z);ze.prototype.message="Deferred was canceled";ze.prototype.name="CanceledError";function Ke(a){this.g=u.setTimeout(w(this.l,this),0);this.j=a}Ke.prototype.l=function(){delete Je[this.g];Ee(this.j)};var Je={};function Y(a,b){P.call(this);this.g=a;this.l=new xe(this.B,3E4,this);this.I=new we("errorsender",1,8);nc(this,x(lc,this.I));this.G=!1;this.A=null;this.F=new Set;this.o=new W(this);this.K=b||10;this.o.listen(this.g,"complete",this.J);this.o.listen(this.g,"ready",this.B)}r(Y,P);Y.prototype.send=function(a,b,c,d){var e=Fe(Fe(Le(this.j.length),function(f){if(!(f>=this.K))return f={},f.u=a,f.m=b,f.c=c,f.h=d,this.enqueue(f)},this),this.B,this);He(e,function(){this.F.delete(e)},this);this.F.add(e)};
+Y.prototype.B=function(){return 0!=this.l.M||this.g.g||this.G?Le():Me(this)};
+function Me(a){return Fe(Le(void 0!==a.j[0]?a.j[0]:null),function(b){if(!this.g.g&&0==this.l.M&&!this.G&&b){if(4E3=f.end)f=new ve(d.j*(Math.floor(e/d.j)+1)),d.g.add(f);f.g+=1;f.min=Math.min(1,f.min);f.max=Math.max(1,f.max);this.A=new X;this.g.send(b.u,b.m,b.c,b.h);return this.A}catch(g){if(g instanceof
+me)this.G=!0;else throw ec(g,{"docs-origin-class":"docs.debug.ErrorSender"});}}},a)}Y.prototype.J=function(){var a=ee(this.g),b=this.A;fe(this.g)||400<=a&&500>=a?Fe(Ne(this),function(){Ae(b);Be(b,!0,void 0)}):(this.l.start(),Ae(b),Be(b,!0,void 0))};Y.prototype.H=function(){mc(this.o,this.l,this.g);this.F.clear();P.prototype.H.call(this)};function Oe(a,b){Y.call(this,a,b);this.j=[]}r(Oe,Y);Oe.prototype.enqueue=function(a){this.j.push(a);return Le()};function Ne(a){a.j.shift();return Le()}Oe.prototype.H=function(){delete this.j;Y.prototype.H.call(this)};function Pe(a,b){this.g=a;this.j=b}Pe.prototype.execute=function(a){this.g&&(this.g.call(this.j||null,a),this.g=this.j=null)};Pe.prototype.abort=function(){this.j=this.g=null};kc(function(a){Pe.prototype.execute=a(Pe.prototype.execute)});function Qe(){for(var a in Array.prototype)return!1;return!0};function Re(){this.g=Date.now()}var Se=null;Re.prototype.set=function(a){this.g=a};Re.prototype.reset=function(){this.set(Date.now())};Re.prototype.get=function(){return this.g};function Te(a){this.v=a||"";Se||(Se=new Re);this.o=Se}Te.prototype.g=!0;Te.prototype.j=!0;Te.prototype.l=!1;function Z(a){return 10>a?"0"+a:String(a)}function Ue(a){Te.call(this,a)}y(Ue,Te);
+function Ve(a,b){var c=[];c.push(a.v," ");if(a.j){var d=c.push,e=new Date(b.l());d.call(c,"[",Z(e.getFullYear()-2E3)+Z(e.getMonth()+1)+Z(e.getDate())+" "+Z(e.getHours())+":"+Z(e.getMinutes())+":"+Z(e.getSeconds())+"."+Z(Math.floor(e.getMilliseconds()/10)),"] ")}d=c.push;e=a.o.get();e=(b.l()-e)/1E3;var f=e.toFixed(3),g=0;if(1>e)g=2;else for(;100>e;)g++,e*=10;for(;0");this.A&&!this.I?(this.F=this.l,"fatal"==c?c="postmortem":"incident"==c&&(c="warningafterdeath")):"fatal"==c&&(this.A=!0);this.l=!1;b.severity=c};m.oa=function(a,b,c,d){this.F&&this.B.send(a,b,c,d)};m.H=function(){Ye=!1;mc(this.G,this.g,this.B);R.prototype.H.call(this)};var Ye=!1;function cf(a,b){Q.call(this,a);this.error=b}r(cf,Q);function Xe(){this.j=this.l=!1;this.g=void 0;this.v=!1;this.D=!0;this.o=[]};function df(){return ef(chrome.storage.local,["optedInUserOuid"]).then(function(a){return a.optedInUserOuid||null})}function ff(a){return gf({offlineOptedIn:!0}).then(function(){if(a){var b={};return gf((b.optedInUserOuid=a,b))}})}function hf(){return gf({offlineOptedIn:!1}).then(function(){return jf()})}
+function kf(){return ef(chrome.storage.local,["offlineOptedIn"]).then(function(a){a=a.offlineOptedIn;switch(a){case void 0:return"unknown";case !0:return"opted_in";case !1:return"opted_out";default:throw Error("Cannot handle opt in value "+a);}})}function Ed(){return ef(chrome.storage.managed,["allowedDocsOfflineDomains"]).then(function(a){return a&&a.allowedDocsOfflineDomains?a.allowedDocsOfflineDomains:[]})}
+function Fd(){return ef(chrome.storage.managed,["autoEnabledDocsOfflineDomains"]).then(function(a){return a&&a.autoEnabledDocsOfflineDomains?a.autoEnabledDocsOfflineDomains:[]})}function ef(a,b){return new T(function(c,d){a.get(b,function(e){chrome.runtime.lastError?d(chrome.runtime.lastError):c(e)})})}function gf(a){return new T(function(b,c){chrome.storage.local.set(a,function(){chrome.runtime.lastError?c(chrome.runtime.lastError):b()})})}
+function jf(){return new T(function(a,b){chrome.storage.local.remove("optedInUserOuid",function(){chrome.runtime.lastError?b(chrome.runtime.lastError):a()})})};function lf(a){B.call(this,a)}r(lf,B);function mf(a){B.call(this,a)}r(mf,B);mf.prototype.getMessage=function(){return C(this,1)};function nf(a){B.call(this,a)}r(nf,B);function of(a){B.call(this,a)}r(of,B);function pf(a){B.call(this,a)}r(pf,B);function qf(a){B.call(this,a)}r(qf,B);function rf(a){B.call(this,a)}r(rf,B);function sf(a){B.call(this,a)}r(sf,B);function tf(a){B.call(this,a)}r(tf,B);function uf(a){B.call(this,a)}r(uf,B);function vf(a){B.call(this,a)}r(vf,B);function wf(a,b){return D(a,1,b)};function xf(){w(this.l,this);this.g=new Ue;this.g.j=!1;this.g.l=!1;this.j=this.g.g=!1;this.v={}}function yf(a){1!=a.j&&(a.j=!0)}xf.prototype.l=function(a){function b(f){if(f){if(f.value>=Uc.value)return"error";if(f.value>=Vc.value)return"warn";if(f.value>=Wc.value)return"log"}return"debug"}if(!this.v[a.j()]){var c=Ve(this.g,a),d=zf;if(d){var e=b(a.v());Af(d,e,c,a.g())}}};var zf=u.console;function Af(a,b,c,d){if(a[b])a[b](c,void 0===d?"":d);else a.log(c,void 0===d?"":d)};function Bf(){P.call(this);this.g=this.j=this.o=null;this.I=!1;this.B=Gd();this.A=!1;this.J=new xf;yf(this.J);chrome.alarms.onAlarm.addListener(w(this.ia,this));chrome.runtime.onMessageExternal.addListener(w(this.ja,this));this.G=new W(this);nc(this,x(lc,this.G));this.G.listen(u,"message",this.ka);this.l=0;this.F=.01>=1*Math.random();this.K=.01>=100*Math.random();chrome.runtime.onConnectExternal.addListener(function(){});Wd(this.na,252E5,this)}r(Bf,P);m=Bf.prototype;
+m.load=function(){var a=this;this.o="docs.google.com";var b=gf({docsDomain:this.o});return Ld(b.then(function(){var c=Mb(Cf(a),"/offline/jserror").toString(),d=new Xe;d.l=!1;d.j=!0;d.g=c;c=new We(d);c.o.sessionTypeName="offline-event-page";c.o.reportsNonFatalErrors=String(a.F);a.j=c;nc(a,x(lc,a.j));return bf(a.j,a.ga,a)()}),function(c){cc(c)})};function Df(a,b){return Mb(Cf(a),"/offline/extension/frame").toString()+"?ouid="+(b?encodeURIComponent(String(b)):"")}
+function Ef(a,b,c){a=Mb(Cf(a),"/offline/extension/report");a.j.set("v",c);a.j.set("optin",b);return a.toString()}m.na=function(){chrome.alarms.create("open",{delayInMinutes:1});u.close()};function Ff(a){return new T(function(b){chrome.alarms.get("heartbeat",function(c){c||(chrome.alarms.create("heartbeat",{periodInMinutes:5}),Gf(a,"heartbeat"));b()})})}function Hf(){return new T(function(a){chrome.alarms.clear("heartbeat",function(){a()})})}
+m.ga=function(){var a=this;return kf().then(function(b){var c=If();a.j.o.extensionVersion=c;a.j.o.optInStatus=String(b);Jf(a,String(b),c);switch(b){case "unknown":break;case "opted_in":return df().then(function(d){Kf(a,d)});case "opted_out":break;default:throw Error("Could not handle opt in status "+b);}})};function Jf(a,b,c){a.F&&(b=Ef(a,b,c),u.fetch(new Request(b,{method:"post",mode:"cors"})).then(function(){}).catch(function(d){$e(a.j,cc(d))}))}
+function Lf(a){u.clearTimeout(a.l);a.g&&(a.A&&(a.B=Gd(),a.A=!1),a.g.parentNode&&a.g.parentNode.removeChild(a.g),a.g=null)}function Kf(a,b){b||Mf(a,Error("Creating extension frame without an OUID."));b=Df(a,b);Lf(a);a.g=id();a.g.id="extensionFrame";a.g.src=b;document.body.appendChild(a.g);a.l=Wd(function(){Nf(a,Error("Timed out waiting for frame connection."));u.close()},3E4)}
+m.ka=function(a){var b=a.l;b&&b.data&&b.ports&&b.ports.length?(a=new sf(b.data),Of(this,a,1 {
childwin.show();
- childview.focus();
+ childview.webContents.focus();
});
// On new window, create another window
- childview.webContents.on(
- "new-window",
- (event, url, frameName, disposition, options) => {
- if (shouldOpenLinkInBrowser(url)) {
- openUrlInBrowser({ event, url });
- } else {
- createChildWindow(event, url, frameName, disposition, {
- ...options,
- pos: childwin.getPosition(),
- size: childwin.getSize(),
- });
- }
+ childview.webContents.setWindowOpenHandler((event, url, frameName, disposition, options) => {
+ if (shouldOpenLinkInBrowser(url)) {
+ openUrlInBrowser({event, url});
+ } else {
+ createChildWindow(event, url, frameName, disposition, {
+ ...options,
+ pos: childwin.getPosition(),
+ size: childwin.getSize(),
+ });
}
- );
+ });
- childwin.on("close", (e) => {
- if (childwin?.webContents) {
- electronLocalshortcut.unregister(childwin, ["CmdOrCtrl+R", "F5"]);
- }
- if (childview?.webContents) {
- electronLocalshortcut.unregister(childview, ["CmdOrCtrl+R", "F5"]);
- }
+ childwin.on("close", async (e) => {
+ childwin.setBrowserView(null);
});
childwin.on("closed", () => {
childwin = null;
- childview.destroy();
+ childview.webContents.destroy();
childview = null;
});
@@ -123,10 +115,10 @@ var createChildWindow = function (event, url, frameName, disposition, options) {
});
electronLocalshortcut.register(childview, ["CmdOrCtrl+R", "F5"], () => {
- childview.webContents.loadURL(windowSettings.url);
+ childview.webContents.reload();
});
electronLocalshortcut.register(childwin, ["CmdOrCtrl+R", "F5"], () => {
- childview.webContents.loadURL(windowSettings.url);
+ childview.webContents.reload();
});
if (isDev) {
diff --git a/src/js/mainwindow.js b/src/js/mainwindow.js
index 6dfb3ab..43c5b10 100644
--- a/src/js/mainwindow.js
+++ b/src/js/mainwindow.js
@@ -23,7 +23,7 @@ const createMainWindow = () => {
});
// Create the browser window.
- win = new BrowserWindow({
+ let win = new BrowserWindow({
x: mainWindowState.x,
y: mainWindowState.y,
width: mainWindowState.width,
@@ -36,8 +36,8 @@ const createMainWindow = () => {
scrollBounce: false,
webPreferences: {
preload: path.join(__dirname, "preload.js"),
- nodeIntegration: false,
- contextIsolation: true,
+ nodeIntegration: true,
+ contextIsolation: false,
},
});
@@ -66,8 +66,8 @@ const createMainWindow = () => {
let view = new BrowserView({
webPreferences: {
preload: path.join(__dirname, "preload-view.js"),
- nodeIntegration: false,
- contextIsolation: true,
+ nodeIntegration: true,
+ contextIsolation: false,
},
});
win.setBrowserView(view);
@@ -82,7 +82,7 @@ const createMainWindow = () => {
width: true,
height: true,
});
- view.webContents.loadURL(windowSettings.url, { userAgent: "Chrome" });
+ view.webContents.loadURL(windowSettings.url);
// Menu
const menu = Menu.buildFromTemplate(template);
@@ -119,18 +119,13 @@ const createMainWindow = () => {
if (BrowserWindow.getAllWindows().length > 1) {
e.preventDefault();
}
- if (win?.webContents) {
- electronLocalshortcut.unregister(win, ["CmdOrCtrl+R", "F5"]);
- }
- if (view?.webContents) {
- electronLocalshortcut.unregister(view, ["CmdOrCtrl+R", "F5"]);
- }
+ win.setBrowserView(null);
});
// Emitted when the window is closed.
win.on("closed", () => {
win = null;
- view.destroy();
+ view.webContents.destroy();
view = null;
});
@@ -142,12 +137,10 @@ const createMainWindow = () => {
});
electronLocalshortcut.register(view, ["CmdOrCtrl+R", "F5"], () => {
- // No reload API for browserview yet.
- view.webContents.loadURL(windowSettings.url, { userAgent });
+ view.webContents.reload();
});
electronLocalshortcut.register(win, ["CmdOrCtrl+R", "F5"], () => {
- // No reload API for browserview yet.
- view.webContents.loadURL(windowSettings.url, { userAgent });
+ view.webContents.reload();
});
if (isDev) {
diff --git a/src/js/preload-view.js b/src/js/preload-view.js
index d5d9f0c..e270e0d 100644
--- a/src/js/preload-view.js
+++ b/src/js/preload-view.js
@@ -1,4 +1,5 @@
-const { ipcRenderer, remote } = require("electron");
+const { ipcRenderer} = require("electron");
+const remote = require("@electron/remote");
const { setOSTheme } = require("./preload-theme");
diff --git a/src/js/preload.js b/src/js/preload.js
index 8cb4e4d..e2d79b2 100644
--- a/src/js/preload.js
+++ b/src/js/preload.js
@@ -1,4 +1,5 @@
-const { ipcRenderer, remote } = require("electron");
+const { ipcRenderer } = require("electron");
+const remote = require("@electron/remote");
const DarkReader = require("darkreader");
const { setOSTheme } = require("./preload-theme");
diff --git a/yarn.lock b/yarn.lock
index ae7d233..cc6180b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -107,22 +107,27 @@
ajv "^6.12.0"
ajv-keywords "^3.4.1"
-"@electron/get@^1.0.1":
- version "1.12.2"
- resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3"
- integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==
+"@electron/get@^1.13.0":
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz#42a0aa62fd1189638bd966e23effaebb16108368"
+ integrity sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==
dependencies:
debug "^4.1.1"
env-paths "^2.2.0"
fs-extra "^8.1.0"
got "^9.6.0"
progress "^2.0.3"
- sanitize-filename "^1.6.2"
+ semver "^6.2.0"
sumchecker "^3.0.1"
optionalDependencies:
- global-agent "^2.0.2"
+ global-agent "^3.0.0"
global-tunnel-ng "^2.7.1"
+"@electron/remote@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.1.tgz#810cbc595a21f0f94641eb2d7e8264063a3f84de"
+ integrity sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==
+
"@nodelib/fs.scandir@2.1.3":
version "2.1.3"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
@@ -197,10 +202,10 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.5.tgz#3d03acd3b3414cf67faf999aed11682ed121f22b"
integrity sha512-90hiq6/VqtQgX8Sp0EzeIsv3r+ellbGj4URKj5j30tLlZvRUpnAe9YbYnjl3pJM93GyXU0tghHhvXHq+5rnCKA==
-"@types/node@^12.0.12":
- version "12.12.42"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.42.tgz#d0d1149336bd07540dd1ea576692829d575dec34"
- integrity sha512-R/9QdYFLL9dE9l5cWWzWIZByVGFd7lk7JVOJ7KD+E1SJ4gni7XJRLz9QTjyYQiHIqEAgku9VgxdLjMlhhUaAFg==
+"@types/node@^14.6.2":
+ version "14.17.33"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.33.tgz#011ee28e38dc7aee1be032ceadf6332a0ab15b12"
+ integrity sha512-noEeJ06zbn3lOh4gqe2v7NMGS33jrulfNqYFDjjEbhpDEHR5VTxgYNQSBqBlJIsBJW3uEYDgD6kvMnrrhGzq8g==
"@types/parse-json@^4.0.0":
version "4.0.0"
@@ -397,10 +402,10 @@ bluebird@^3.5.5:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-boolean@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f"
- integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==
+boolean@^3.0.1:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.4.tgz#f51a2fb5838a99e06f9b6ec1edb674de67026435"
+ integrity sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==
boxen@^4.2.0:
version "4.2.0"
@@ -674,11 +679,6 @@ configstore@^5.0.1:
write-file-atomic "^3.0.0"
xdg-basedir "^4.0.0"
-core-js@^3.6.4:
- version "3.6.5"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
- integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==
-
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -716,12 +716,10 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
-darkreader@^4.9.2:
- version "4.9.2"
- resolved "https://registry.yarnpkg.com/darkreader/-/darkreader-4.9.2.tgz#f4a1500d4305e1adca2a44f11330dfac4722c7dc"
- integrity sha512-5Jjf2vK9BmFBzndsomFdrMsndXQwfZkd6o2WyqwexVeryrOkTYW1CLS+MKtPt7/rv+0wn9eBY4iufIDPqaaZ+g==
- dependencies:
- malevic "0.18.0"
+darkreader@^4.9.40:
+ version "4.9.40"
+ resolved "https://registry.yarnpkg.com/darkreader/-/darkreader-4.9.40.tgz#9217a2ae83d8aca0b4dc129bba78a0617aca5bce"
+ integrity sha512-Dm8S5jkXSIxvq9WitcvuH4KexV9ZuzGqDMsFOm2VwXzRkMo9VIg8udjq2Mm7cM6SaQSp/zzH4VIWioX93iWayQ==
date-fns@^2.0.1:
version "2.14.0"
@@ -882,6 +880,11 @@ electron-is-accelerator@^0.1.0:
resolved "https://registry.yarnpkg.com/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz#509e510c26a56b55e17f863a4b04e111846ab27b"
integrity sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns=
+electron-is-packaged@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/electron-is-packaged/-/electron-is-packaged-1.0.2.tgz#d4efc0dc14991ab981de65f52271badf92323c7e"
+ integrity sha512-JZpV9QgVsehop7tm3KDll2/iJ9K3e7mL+jm6E3gA96zurIhxv3FZ0kxJK0eGL9c3SYORU1rN+/q2Ia8/v62Pjw==
+
electron-localshortcut@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz#cfc83a3eff5e28faf98ddcc87f80a2ce4f623cd3"
@@ -940,13 +943,13 @@ electron-window-state@^5.0.1:
jsonfile "^4.0.0"
mkdirp "^0.5.1"
-electron@^8.2.5:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/electron/-/electron-8.3.0.tgz#c2b565a4c10d6d287d20164bcd5a478468b940a9"
- integrity sha512-XRjiIJICZCgUr2vKSUI2PTkfP0gPFqCtqJUaTJSfCTuE3nTrxBKOUNeRMuCzEqspKkpFQU3SB3MdbMSHmZARlQ==
+electron@^15.3.1:
+ version "15.3.1"
+ resolved "https://registry.yarnpkg.com/electron/-/electron-15.3.1.tgz#38ce9dfcd4ec51a33d62de23de15fb5ceeaea25d"
+ integrity sha512-6/qp3Dor7HSGq28qhJEVD1zBFZoWicmo3/ZLvo7rhXPPZFwEMSJGPMEZM9WYSfWW4t/OozpWNuuDe970cF7g2Q==
dependencies:
- "@electron/get" "^1.0.1"
- "@types/node" "^12.0.12"
+ "@electron/get" "^1.13.0"
+ "@types/node" "^14.6.2"
extract-zip "^1.0.3"
emoji-regex@^7.0.1:
@@ -998,10 +1001,10 @@ escape-string-regexp@^1.0.5:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-escape-string-regexp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
eslint-config-prettier@^6.11.0:
version "6.11.0"
@@ -1338,18 +1341,17 @@ glob@^7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
-global-agent@^2.0.2:
- version "2.1.8"
- resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.8.tgz#99d153662b2c04cbc1199ffbc081a3aa656ac50f"
- integrity sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==
+global-agent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6"
+ integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==
dependencies:
- boolean "^3.0.0"
- core-js "^3.6.4"
+ boolean "^3.0.1"
es6-error "^4.1.1"
- matcher "^2.1.0"
- roarr "^2.15.2"
- semver "^7.1.2"
- serialize-error "^5.0.0"
+ matcher "^3.0.0"
+ roarr "^2.15.3"
+ semver "^7.3.2"
+ serialize-error "^7.0.1"
global-dirs@^2.0.1:
version "2.0.1"
@@ -1819,17 +1821,12 @@ make-dir@^3.0.0:
dependencies:
semver "^6.0.0"
-malevic@0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/malevic/-/malevic-0.18.0.tgz#ed78a644329c410b3d66cb03f62a1c0332a6096c"
- integrity sha512-d9XfQKexRjGUHugCUAMFjTbPnx1V8sfKcD9sYrk1/W/4/QpsgLR4x5GgkUGfHdsgQ2UbEcJSj6NWWJ+rd/m4aQ==
-
-matcher@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/matcher/-/matcher-2.1.0.tgz#64e1041c15b993e23b786f93320a7474bf833c28"
- integrity sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==
+matcher@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca"
+ integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==
dependencies:
- escape-string-regexp "^2.0.0"
+ escape-string-regexp "^4.0.0"
merge2@^1.2.3, merge2@^1.3.0:
version "1.3.0"
@@ -2276,12 +2273,12 @@ rimraf@^3.0.0:
dependencies:
glob "^7.1.3"
-roarr@^2.15.2:
- version "2.15.3"
- resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.3.tgz#65248a291a15af3ebfd767cbf7e44cb402d1d836"
- integrity sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==
+roarr@^2.15.3:
+ version "2.15.4"
+ resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"
+ integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==
dependencies:
- boolean "^3.0.0"
+ boolean "^3.0.1"
detect-node "^2.0.4"
globalthis "^1.0.1"
json-stringify-safe "^5.0.1"
@@ -2315,7 +2312,7 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-sanitize-filename@^1.6.2, sanitize-filename@^1.6.3:
+sanitize-filename@^1.6.3:
version "1.6.3"
resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378"
integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==
@@ -2354,17 +2351,17 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-semver@^7.1.2, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2:
+semver@^7.1.3, semver@^7.2.1, semver@^7.3.2:
version "7.3.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
-serialize-error@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-5.0.0.tgz#a7ebbcdb03a5d71a6ed8461ffe0fc1a1afed62ac"
- integrity sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==
+serialize-error@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18"
+ integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==
dependencies:
- type-fest "^0.8.0"
+ type-fest "^0.13.1"
set-blocking@^2.0.0:
version "2.0.0"
@@ -2634,12 +2631,17 @@ type-fest@^0.11.0:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
+type-fest@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
+ integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
+
type-fest@^0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48"
integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==
-type-fest@^0.8.0, type-fest@^0.8.1:
+type-fest@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==