ソースを参照

Merge pull request #128 from SondreNjaastad/main

Language makeover
Nariman Jelveh 1 年間 前
コミット
85a7190391

+ 24 - 2
src/UI/UIDesktop.js

@@ -34,6 +34,7 @@ import UIWindowQR from "./UIWindowQR.js"
 import UIWindowRefer from "./UIWindowRefer.js"
 import UITaskbar from "./UITaskbar.js"
 import new_context_menu_item from "../helpers/new_context_menu_item.js"
+import ChangeLanguage from "../i18n/i18nChangeLanguage.js"
 
 async function UIDesktop(options){
     let h = '';
@@ -1045,7 +1046,7 @@ $(document).on('click', '.user-options-menu-btn', async function(e){
     if(window.user.is_temp){
         items.push(            
             {
-                html: `Save Session`,
+                html: i18n('save_session'),
                 icon: `<svg style="margin-bottom: -4px; width: 16px; height: 16px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="48px" height="48px" viewBox="0 0 48 48"><g transform="translate(0, 0)"><path d="M45.521,39.04L27.527,5.134c-1.021-1.948-3.427-2.699-5.375-1.679-.717,.376-1.303,.961-1.679,1.679L2.479,39.04c-.676,1.264-.635,2.791,.108,4.017,.716,1.207,2.017,1.946,3.42,1.943H41.993c1.403,.003,2.704-.736,3.42-1.943,.743-1.226,.784-2.753,.108-4.017ZM23.032,15h1.937c.565,0,1.017,.467,1,1.031l-.438,14c-.017,.54-.459,.969-1,.969h-1.062c-.54,0-.983-.429-1-.969l-.438-14c-.018-.564,.435-1.031,1-1.031Zm.968,25c-1.657,0-3-1.343-3-3s1.343-3,3-3,3,1.343,3,3-1.343,3-3,3Z" fill="#ffbb00"></path></g></svg>`,
                 icon_active: `<svg style="margin-bottom: -4px; width: 16px; height: 16px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="48px" height="48px" viewBox="0 0 48 48"><g transform="translate(0, 0)"><path d="M45.521,39.04L27.527,5.134c-1.021-1.948-3.427-2.699-5.375-1.679-.717,.376-1.303,.961-1.679,1.679L2.479,39.04c-.676,1.264-.635,2.791,.108,4.017,.716,1.207,2.017,1.946,3.42,1.943H41.993c1.403,.003,2.704-.736,3.42-1.943,.743-1.226,.784-2.753,.108-4.017ZM23.032,15h1.937c.565,0,1.017,.467,1,1.031l-.438,14c-.017,.54-.459,.969-1,.969h-1.062c-.54,0-.983-.429-1-.969l-.438-14c-.018-.564,.435-1.031,1-1.031Zm.968,25c-1.657,0-3-1.343-3-3s1.343-3,3-3,3,1.343,3,3-1.343,3-3,3Z" fill="#ffbb00"></path></g></svg>`,
                 onClick: async function(){
@@ -1097,7 +1098,7 @@ $(document).on('click', '.user-options-menu-btn', async function(e){
 
         items.push(            
             {
-                html: 'Add existing account',
+                html: i18n('add_existing_account'),
                 // icon: l_user.username === user.username ? '✓' : '',
                 onClick: async function(val){
                     await UIWindowLogin({
@@ -1118,6 +1119,19 @@ $(document).on('click', '.user-options-menu-btn', async function(e){
 
     }
 
+    // -------------------------------------------
+    // Load avaialble languages
+    // -------------------------------------------
+    const supoprtedLanguagesItems = ListSupportedLanugages().map(lang => {
+        return {
+            html: lang.name,
+            icon: window.locale === lang.code ? '✓' : '',
+            onClick: async function(){
+                ChangeLanguage(lang.code);
+            }
+        }
+    });
+
     UIContextMenu({
         id: 'user-options-menu',
         parent_element: parent_element,
@@ -1152,6 +1166,14 @@ $(document).on('click', '.user-options-menu-btn', async function(e){
                     UIWindowChangePassword();
                 }
             },
+
+            //--------------------------------------------------
+            // Change Language
+            //--------------------------------------------------
+            {
+                html: i18n('change_language'),
+                items: supoprtedLanguagesItems
+            },
             //--------------------------------------------------
             // Contact Us
             //--------------------------------------------------

+ 1 - 1
src/UI/UIWindowLogin.js

@@ -36,7 +36,7 @@ async function UIWindowLogin(options){
                 h += `<div class="generic-close-window-button"> &times; </div>`;
             h += `<div style="padding: 20px; border-bottom: 1px solid #ced7e1; width: 100%; box-sizing: border-box;">`;
                 // title
-                h += `<h1 class="login-form-title">Log In</h1>`;
+                h += `<h1 class="login-form-title">${i18n('log_in')}</h1>`;
                 // login form
                 h += `<form class="login-form">`;
                     // error msg

+ 1 - 0
src/globals.js

@@ -96,6 +96,7 @@ try {
 if (window.user_preferences === null) {
     window.user_preferences = {
         show_hidden_files: false,
+        language: navigator.language.split("-")[0] || navigator.userLanguage || 'en',
     }
 }
 

+ 6 - 1337
src/i18n/i18n.js

@@ -1,4 +1,6 @@
-window.locale = 'en';
+import translations from './translations/translations.js';
+
+window.ListSupportedLanugages = () => Object.keys(translations).map(lang => translations[lang]);
 
 window.i18n = function (key, replacements = [], encode_html = true) {
     if(typeof replacements === 'boolean' && encode_html === undefined){
@@ -9,10 +11,10 @@ window.i18n = function (key, replacements = [], encode_html = true) {
     }
 
     // if locale is not set, default to en
-    if(!window.translations[window.locale])
+    if(!translations[window.locale])
         window.locale = 'en';
 
-    let str = window.translations[window.locale][key];
+    let str = translations[window.locale].dictionary[key];
     
     if (!str) {
         str = key;
@@ -47,1337 +49,4 @@ window.i18n = function (key, replacements = [], encode_html = true) {
     return str;
 }
 
-window.translations = {
-    en: {
-        access_granted_to: "Access Granted To",
-        add_existing_account: "Add Existing Account",
-        all_fields_required: 'All fields are required.',
-        apply: "Apply",
-        ascending: 'Ascending',
-        background: "Background",
-        browse: "Browse",
-        cancel: 'Cancel',
-        center: 'Center',
-        change_desktop_background: 'Change desktop background…',
-        change_password: "Change Password",
-        change_username: "Change Username",
-        close_all_windows: "Close All Windows",
-        color: 'Color',
-        confirm_account_for_free_referral_storage_c2a: 'Create an account and confirm your email address to receive 1 GB of free storage. Your friend will get 1 GB of free storage too.',
-        confirm_new_password: "Confirm New Password",
-        contact_us: "Contact Us",
-        contain: 'Contain',
-        continue: "Continue",
-        copy: 'Copy',
-        copy_link: "Copy Link",
-        copying: "Copying",
-        cover: 'Cover',
-        create_account: "Create Account",
-        create_free_account: "Create Free Account",
-        create_shortcut: "Create Shortcut",
-        current_password: "Current Password",
-        cut: 'Cut',
-        date_modified: 'Date modified',
-        delete: 'Delete',
-        delete_permanently: "Delete Permanently",
-        deploy_as_app: 'Deploy as app',
-        descending: 'Descending',
-        desktop_background_fit: "Fit",
-        dir_published_as_website: `%strong% has been published to:`,
-        disassociate_dir: "Disassociate Directory",
-        download: 'Download',
-        downloading: "Downloading",
-        email: "Email",
-        email_or_username: "Email or Username",
-        empty_trash: 'Empty Trash',
-        empty_trash_confirmation: `Are you sure you want to permanently delete the items in Trash?`,
-        emptying_trash: 'Emptying Trash…',
-        feedback: "Feedback",
-        feedback_c2a: "Please use the form below to send us your feedback, comments, and bug reports.",
-        feedback_sent_confirmation: "Thank you for contacting us. If you have an email associated with your account, you will hear back from us as soon as possible.",
-        forgot_pass_c2a: "Forgot password?",
-        from: "From",
-        general: "General",
-        get_a_copy_of_on_puter: `Get a copy of '%%' on Puter.com!`,
-        get_copy_link: 'Get Copy Link',
-        hide_all_windows: "Hide All Windows",
-        html_document: 'HTML document',
-        image: 'Image',
-        invite_link: "Invite Link",
-        items_in_trash_cannot_be_renamed: `This item can't be renamed because it's in the trash. To rename this item, first drag it out of the Trash.`,
-        jpeg_image: 'JPEG image',
-        keep_in_taskbar: 'Keep in Taskbar',
-        log_in: "Log In",
-        log_out: 'Log Out',
-        move: 'Move',
-        moving: "Moving",
-        my_websites: "My Websites",
-        name: 'Name',
-        name_cannot_be_empty: 'Name cannot be empty.',
-        name_cannot_contain_double_period: "Name can not be the '..' character.",
-        name_cannot_contain_period: "Name can not be the '.' character.",
-        name_cannot_contain_slash: "Name cannot contain the '/' character.",
-        name_must_be_string: "Name can only be a string.",
-        name_too_long: `Name can not be longer than %% characters.`,
-        new: 'New',
-        new_folder: 'New folder',
-        new_password: "New Password",
-        new_username: "New Username",
-        no_dir_associated_with_site: 'No directory associated with this address.',
-        no_websites_published: "You have not published any websites yet.",
-        ok: 'OK',
-        open: "Open",
-        open_in_new_tab: "Open in New Tab",
-        open_in_new_window: "Open in New Window",
-        open_with: "Open With",
-        password: "Password",
-        password_changed: "Password changed.",
-        passwords_do_not_match: '`New Password` and `Confirm New Password` do not match.',
-        paste: 'Paste',
-        paste_into_folder: "Paste Into Folder",
-        pick_name_for_website: "Pick a name for your website:",
-        picture: "Picture",
-        powered_by_puter_js: `Powered by <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
-        preparing: "Preparing...",
-        preparing_for_upload: "Preparing for upload...",
-        properties: "Properties",
-        publish: "Publish",
-        publish_as_website: 'Publish as website',
-        recent: "Recent",
-        recover_password: "Recover Password",
-        refer_friends_c2a: "Get 1 GB for every friend who creates and confirms an account on Puter. Your friend will get 1 GB too!",
-        refer_friends_social_media_c2a: `Get 1 GB of free storage on Puter.com!`,
-        refresh: 'Refresh',
-        release_address_confirmation: `Are you sure you want to release this address?`,
-        remove_from_taskbar:'Remove from Taskbar',
-        rename: 'Rename',
-        repeat: 'Repeat',
-        resend_confirmation_code: "Re-send Confirmation Code",
-        restore: "Restore",
-        save_account_to_get_copy_link: "Please create an account to proceed.",
-        save_account_to_publish: 'Please create an account to proceed.',
-        save_session_c2a: 'Create an account to save your current session and avoid losing your work.',
-        scan_qr_c2a: 'Scan the code below to log into this session from other devices',
-        select: "Select",
-        select_color: 'Select color…',
-        send: "Send",
-        send_password_recovery_email: "Send Password Recovery Email",
-        session_saved: "Thank you for creating an account. This session has been saved.",
-        set_new_password: "Set New Password",
-        share_to: "Share to",
-        show_all_windows: "Show All Windows",
-        show_hidden: 'Show hidden',
-        sign_in_with_puter: "Sign in with Puter",
-        sign_up: "Sign Up",
-        signing_in: "Signing in…",
-        size: 'Size',
-        sort_by: 'Sort by',
-        start: 'Start',
-        taking_longer_than_usual: 'Taking a little longer than usual. Please wait...',
-        text_document: 'Text document',
-        tos_fineprint: `By clicking 'Create Free Account' you agree to Puter's <a href="https://puter.com/terms" target="_blank">Terms of Service</a> and <a href="https://puter.com/privacy" target="_blank">Privacy Policy</a>.`,
-        trash: 'Trash',
-        type: 'Type',
-        undo: 'Undo',
-        unzip: "Unzip",
-        upload: 'Upload',
-        upload_here: 'Upload here',
-        username: "Username",
-        username_changed: 'Username updated successfully.',
-        versions: "Versions",
-        yes_release_it: 'Yes, Release It',
-        you_have_been_referred_to_puter_by_a_friend: "You have been referred to Puter by a friend!",
-        zip: "Zip",
-    },
-    // farsi
-    fa: {
-        access_granted_to: "دسترسی داده شده به",
-        add_existing_account: "افزودن حساب کاربری موجود",
-        all_fields_required: 'تمامی فیلدها الزامی هستند.',
-        apply: "اعمال",
-        ascending: 'صعودی',
-        background: "پس زمینه",
-        browse: "مرور",
-        cancel: 'لغو',
-        center: 'مرکز',
-        change_desktop_background: 'تغییر پس زمینه دسکتاپ…',
-        change_password: "تغییر رمز عبور",
-        change_username: "تغییر نام کاربری",
-        close_all_windows: "بستن همه پنجره ها",
-        color: 'رنگ',
-        confirm_account_for_free_referral_storage_c2a: 'حساب کاربری خود را ایجاد کرده و آدرس ایمیل خود را تأیید کنید تا 1 گیگابایت فضای ذخیره سازی رایگان دریافت کنید. دوست شما هم 1 گیگابایت فضای ذخیره سازی رایگان دریافت خواهد کرد.',
-        confirm_new_password: "تأیید رمز عبور جدید",
-        contact_us: "تماس با ما",
-        contain: 'شامل',
-        continue: "ادامه",
-        copy: 'کپی',
-        copy_link: "کپی لینک",
-        copying: "کپی",
-        cover: 'جلد',
-        create_account: "ایجاد حساب کاربری",
-        create_free_account: "ایجاد حساب کاربری رایگان",
-        create_shortcut: "ایجاد میانبر",
-        current_password: "رمز عبور فعلی",
-        cut: 'برش',
-        date_modified: 'تاریخ تغییر',
-        delete: 'حذف',
-        delete_permanently: "حذف دائمی",
-        deploy_as_app: 'نصب به عنوان برنامه',
-        descending: 'نزولی',
-        desktop_background_fit: "متناسب",
-        dir_published_as_website: `%strong% منتشر شده به:`,
-        disassociate_dir: "قطع ارتباط دایرکتوری",
-        download: 'دانلود',
-        downloading: "دانلود",
-        email: "ایمیل",
-        email_or_username: "ایمیل یا نام کاربری",
-        empty_trash: 'خالی کردن سطل زباله',
-        empty_trash_confirmation: `آیا از حذف دائمی موارد در سطل زباله مطمئن هستید؟`,
-        emptying_trash: 'خالی کردن سطل زباله…',
-        feedback: "بازخورد",
-        feedback_c2a: "لطفا از فرم زیر برای ارسال بازخورد، نظرات و گزارش خطا استفاده کنید.",
-        feedback_sent_confirmation: "با تشکر از تماس شما. اگر ایمیلی به حساب کاربری شما متصل است، در اسرع وقت پاسخ خواهیم داد.",
-        forgot_pass_c2a: "رمز عبور را فراموش کرده اید؟",
-        from: "از",
-        general: "عمومی",
-        get_a_copy_of_on_puter: `یک نسخه از '%%' را در Puter.com بگیرید!`,
-        get_copy_link: 'گرفتن لینک کپی',
-        hide_all_windows: "پنهان کردن همه پنجره ها",
-        html_document: 'سند HTML',
-        image: 'تصویر',
-        invite_link: "لینک دعوت",
-        items_in_trash_cannot_be_renamed: `این مورد نمی تواند تغییر نام دهد زیرا در سطل زباله است. برای تغییر نام این مورد، ابتدا آن را از سطل زباله بیرون بکشید.`,
-        jpeg_image: 'تصویر JPEG',
-        keep_in_taskbar: 'در نوار وظایف نگه دارید',
-        log_in: "ورود",
-        log_out: 'خروج',
-        move: 'انتقال',
-        moving: "انتقال",
-        my_websites: "وبسایت های من",
-        name: 'نام',
-        name_cannot_be_empty: 'نام نمی تواند خالی باشد.',
-        name_cannot_contain_double_period: "نام نمی تواند شامل '..' باشد.",
-        name_cannot_contain_period: "نام نمی تواند شامل '.' باشد.",
-        name_cannot_contain_slash: "نام نمی تواند شامل '/' باشد.",
-        name_must_be_string: "نام فقط می تواند یک رشته باشد.",
-        name_too_long: `نام نمی تواند بیشتر از %% کاراکتر باشد.`,
-        new: 'جدید',
-        new_folder: 'پوشه جدید',
-        new_password: "رمز عبور جدید",
-        new_username: "نام کاربری جدید",
-        no_dir_associated_with_site: 'هیچ دایرکتوری مرتبط با این آدرس وجود ندارد.',
-        no_websites_published: "هنوز هیچ وبسایتی منتشر نکرده اید.",
-        ok: 'خوب',
-        open: "باز کردن",
-        open_in_new_tab: "در تب جدید باز کن",
-        open_in_new_window: "در پنجره جدید باز کن",
-        open_with: "باز کردن با",
-        password: "رمز عبور",
-        password_changed: "رمز عبور تغییر یافت.",
-        passwords_do_not_match: '`رمز عبور جدید` و `تأیید رمز عبور جدید` مطابقت ندارند.',
-        paste: 'چسباندن',
-        paste_into_folder: "چسباندن در پوشه",
-        pick_name_for_website: "یک نام برای وبسایت خود انتخاب کنید:",
-        picture: "تصویر",
-        powered_by_puter_js: `پشتیبانی شده توسط <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
-        preparing: "در حال آماده سازی...",
-        preparing_for_upload: "آماده سازی برای بارگذاری...",
-        properties: "ویژگی ها",
-        publish: "انتشار",
-        publish_as_website: 'انتشار به عنوان وبسایت',
-        recent: "اخیر",
-        recover_password: "بازیابی رمز عبور",
-        refer_friends_c2a: "برای هر دوستی که حساب کاربری Puter ایجاد و تأیید کند، 1 گیگابایت دریافت کنید. دوست شما هم 1 گیگابایت دریافت خواهد کرد!",
-        refer_friends_social_media_c2a: `1 گیگابایت فضای ذخیره سازی رایگان را در Puter.com بگیرید!`,
-        refresh: 'تازه کردن',
-        release_address_confirmation: `آیا مطمئن هستید که می خواهید این آدرس را آزاد کنید؟`,
-        remove_from_taskbar:'از نوار وظایف حذف کن',
-        rename: 'تغییر نام',
-        repeat: 'تکرار',
-        resend_confirmation_code: "ارسال مجدد کد تأیید",
-        restore: "بازیابی",
-        save_account_to_get_copy_link: "لطفا برای ادامه یک حساب کاربری ایجاد کنید.",
-        save_account_to_publish: 'لطفا برای ادامه یک حساب کاربری ایجاد کنید.',
-        save_session_c2a: 'برای ذخیره جلسه فعلی و جلوگیری از از دست دادن کار خود یک حساب کاربری ایجاد کنید.',
-        scan_qr_c2a: 'کد زیر را از دستگاه های دیگر اسکن کنید تا به این جلسه وارد شوید',
-        select: "انتخاب",
-        select_color: 'انتخاب رنگ…',
-        send: "ارسال",
-        send_password_recovery_email: "ارسال ایمیل بازیابی رمز عبور",
-        session_saved: "با تشکر از ایجاد حساب کاربری. این جلسه ذخیره شده است.",
-        set_new_password: "تنظیم رمز عبور جدید",
-        share_to: "اشتراک گذاری به",
-        show_all_windows: "نمایش همه پنجره ها",
-        show_hidden: 'نمایش مخفی',
-        sign_in_with_puter: "ورود با Puter",
-        sign_up: "ثبت نام",
-        signing_in: "ورود…",
-        size: 'اندازه',
-        sort_by: 'مرتب سازی بر اساس',
-        start: 'شروع',
-        taking_longer_than_usual: 'کمی بیشتر از معمول طول می کشد. لطفا صبر کنید...',
-        text_document: 'سند متنی',
-        tos_fineprint: `با کلیک بر روی 'ایجاد حساب کاربری رایگان' شما با <a href="https://puter.com/terms" target="_blank">شرایط خدمات</a> و <a href="https://puter.com/privacy" target="_blank">سیاست حفظ حریم خصوصی</a> Puter موافقت می کنید.`,
-        trash: 'سطل زباله',
-        type: 'نوع',
-        undo: 'بازگشت',
-        unzip: "باز کردن فایل فشرده",
-        upload: 'بارگذاری',
-        upload_here: 'اینجا بارگذاری کنید',
-        username: "نام کاربری",
-        username_changed: 'نام کاربری با موفقیت به روز شد.',
-        versions: "نسخه ها",
-        yes_release_it: 'بله، آن را آزاد کن',
-        you_have_been_referred_to_puter_by_a_friend: "شما توسط یک دوست به Puter معرفی شده اید!",
-        zip: "فشرده سازی",
-    },
-    // korean
-    ko: {
-        access_granted_to: "접근 권한 부여",
-        add_existing_account: "기존 계정 추가",
-        all_fields_required: '모든 필드는 필수입니다.',
-        apply: "적용",
-        ascending: '오름차순',
-        background: "배경",
-        browse: "찾아보기",
-        cancel: '취소',
-        center: '중앙',
-        change_desktop_background: '바탕 화면 배경 변경…',
-        change_password: "비밀번호 변경",
-        change_username: "사용자 이름 변경",
-        close_all_windows: "모든 창 닫기",
-        color: '색상',
-        confirm_account_for_free_referral_storage_c2a: '계정을 생성하고 이메일 주소를 확인하여 1GB의 무료 저장 공간을 받으십시오. 친구도 1GB의 무료 저장 공간을 받게 됩니다.',
-        confirm_new_password: "새 비밀번호 확인",
-        contact_us: "문의하기",
-        contain: '포함',
-        continue: "계속",
-        copy: '복사',
-        copy_link: "링크 복사",
-        copying: "복사 중",
-        cover: '표지',
-        create_account: "계정 생성",
-        create_free_account: "무료 계정 생성",
-        create_shortcut: "바로 가기 만들기",
-        current_password: "현재 비밀번호",
-        cut: '잘라내기',
-        date_modified: '수정한 날짜',
-        delete: '삭제',
-        delete_permanently: "영구 삭제",
-        deploy_as_app: '앱으로 배포',
-        descending: '내림차순',
-        desktop_background_fit: "맞추기",
-        dir_published_as_website: `%strong% 다음에 게시되었습니다:`,
-        disassociate_dir: "디렉토리 연결 해제",
-        download: '다운로드',
-        downloading: "다운로드 중",
-        email: "이메일",
-        email_or_username: "이메일 또는 사용자 이름",
-        empty_trash: '휴지통 비우기',
-        empty_trash_confirmation: `휴지통의 항목을 영구적으로 삭제하시겠습니까?`,
-        emptying_trash: '휴지통 비우는 중…',
-        feedback: "피드백",
-        feedback_c2a: "아래 양식을 사용하여 피드백, 의견 및 버그 보고를 보내십시오.",
-        feedback_sent_confirmation: "문의해 주셔서 감사합니다. 계정에 이메일이 연결되어 있으면 가능한 빨리 회신 드리겠습니다.",
-        forgot_pass_c2a: "비밀번호를 잊으셨나요?",
-        from: "보낸 사람",
-        general: "일반",
-        get_a_copy_of_on_puter: `Puter.com에서 '%%'의 사본을 받으세요!`,
-        get_copy_link: '링크 복사',
-        hide_all_windows: "모든 창 숨기기",
-        html_document: 'HTML 문서',
-        image: '이미지',
-        invite_link: "초대 링크",
-        items_in_trash_cannot_be_renamed: `이 항목은 휴지통에 있기 때문에 이름을 바꿀 수 없습니다. 이 항목의 이름을 바꾸려면 먼저 휴지통에서 끌어내십시오.`,
-        jpeg_image: 'JPEG 이미지',
-        keep_in_taskbar: '작업 표시줄에 유지',
-        log_in: "로그인",
-        log_out: '로그아웃',
-        move: '이동',
-        moving: "이동 중",
-        my_websites: "내 웹사이트",
-        name: '이름',
-        name_cannot_be_empty: '이름은 비워둘 수 없습니다.',
-        name_cannot_contain_double_period: "이름은 '..' 문자일 수 없습니다.",
-        name_cannot_contain_period: "이름은 '.' 문자일 수 없습니다.",
-        name_cannot_contain_slash: "이름에 '/' 문자를 포함할 수 없습니다.",
-        name_must_be_string: "이름은 문자열만 가능합니다.",
-        name_too_long: `이름은 %%자보다 길 수 없습니다.`,
-        new: '새로운',
-        new_folder: '새 폴더',
-        new_password: "새 비밀번호",
-        new_username: "새 사용자 이름",
-        no_dir_associated_with_site: '이 주소에 연결된 디렉토리가 없습니다.',
-        no_websites_published: "아직 웹사이트를 게시하지 않았습니다.",
-        ok: '확인',
-        open: "열기",
-        open_in_new_tab: "새 탭에서 열기",
-        open_in_new_window: "새 창에서 열기",
-        open_with: "열기 방법",
-        password: "비밀번호",
-        password_changed: "비밀번호가 변경되었습니다.",
-        passwords_do_not_match: '`새 비밀번호`와 `새 비밀번호 확인`이 일치하지 않습니다.',
-        paste: '붙여넣기',
-        paste_into_folder: "폴더에 붙여넣기",
-        pick_name_for_website: "웹사이트 이름을 선택하세요:",
-        picture: "사진",
-        powered_by_puter_js: `Powered by <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
-        preparing: "준비 중...",
-        preparing_for_upload: "업로드 준비 중...",
-        properties: "속성",
-        publish: "게시",
-        publish_as_website: '웹사이트로 게시',
-        recent: "최근",
-        recover_password: "비밀번호 찾기",
-        refer_friends_c2a: "Puter에서 계정을 생성하고 확인한 친구마다 1GB를 받으십시오. 친구도 1GB를 받게 됩니다!",
-        refer_friends_social_media_c2a: `Puter.com에서 1GB의 무료 저장 공간을 받으십시오!`,
-        refresh: '새로 고침',
-        release_address_confirmation: `이 주소를 해제하시겠습니까?`,
-        remove_from_taskbar:'작업 표시줄에서 제거',
-        rename: '이름 바꾸기',
-        repeat: '반복',
-        resend_confirmation_code: "확인 코드 다시 보내기",
-        restore: "복원",
-        save_account_to_get_copy_link: "계속하려면 계정을 생성하십시오.",
-        save_account_to_publish: '계속하려면 계정을 생성하십시오.',
-        save_session_c2a: '현재 세션을 저장하고 작업을 잃지 않으려면 계정을 생성하십시오.',
-        scan_qr_c2a: '다른 기기에서 이 세션으로 로그인하려면 아래 코드를 스캔하십시오',
-        select: "선택",
-        select_color: '색상 선택…',
-        send: "보내기",
-        send_password_recovery_email: "비밀번호 복구 이메일 보내기",
-        session_saved: "계정을 생성해 주셔서 감사합니다. 이 세션이 저장되었습니다.",
-        set_new_password: "새 비밀번호 설정",
-        share_to: "공유",
-        show_all_windows: "모든 창 표시",
-        show_hidden: '숨김 항목 표시',
-        sign_in_with_puter: "Puter로 로그인",
-        sign_up: "가입",
-        signing_in: "로그인 중…",
-        size: '크기',
-        sort_by: '정렬 기준',
-        start: '시작',
-        taking_longer_than_usual: '보통보다 조금 더 오래 걸립니다. 잠시만 기다려 주십시오...',
-        text_document: '텍스트 문서',
-        tos_fineprint: `무료 계정 생성을 클릭하면 Puter의 <a href="https://puter.com/terms" target="_blank">서비스 약관</a>과 <a href="https://puter.com/privacy" target="_blank">개인정보 보호정책</a>에 동의하는 것입니다.`,
-        trash: '휴지통',
-        type: '유형',
-        undo: '실행 취소',
-        unzip: "압축 해제",
-        upload: '업로드',
-        upload_here: '여기에 업로드',
-        username: "사용자 이름",
-        username_changed: '사용자 이름이 성공적으로 업데이트되었습니다.',
-        versions: "버전",
-        yes_release_it: '예, 해제합니다',
-        you_have_been_referred_to_puter_by_a_friend: "친구가 Puter로 추천했습니다!",
-        zip: "압축",
-    },
-    zh: {
-        access_granted_to: "访问授权给",
-        add_existing_account: "添加现有帐户",
-        all_fields_required: '所有字段都是必需的。',
-        apply: "应用",
-        ascending: '升序',
-        background: "背景",
-        browse: "浏览",
-        cancel: '取消',
-        center: '中心',
-        change_desktop_background: '更改桌面背景…',
-        change_password: "更改密码",
-        change_username: "更改用户名",
-        close_all_windows: "关闭所有窗口",
-        color: '颜色',
-        confirm_account_for_free_referral_storage_c2a: '创建帐户并确认您的电子邮件地址,以获得1 GB的免费存储空间。您的朋友也将获得1 GB的免费存储空间。',
-        confirm_new_password: "确认新密码",
-        contact_us: "联系我们",
-        contain: '包含',
-        continue: "继续",
-        copy: '复制',
-        copy_link: "复制链接",
-        copying: "复制",
-        cover: '封面',
-        create_account: "创建帐户",
-        create_free_account: "创建免费帐户",
-        create_shortcut: "创建快捷方式",
-        current_password: "当前密码",
-        cut: '剪切',
-        date_modified: '修改日期',
-        delete: '删除',
-        delete_permanently: "永久删除",
-        deploy_as_app: '部署为应用',
-        descending: '降序',
-        desktop_background_fit: "适合",
-        dir_published_as_website: `%strong% 已发布到:`,
-        disassociate_dir: "取消关联目录",
-        download: '下载',
-        downloading: "下载",
-        email: "电子邮件",
-        email_or_username: "电子邮件或用户名",
-        empty_trash: '清空回收站',
-        empty_trash_confirmation: `您确定要永久删除回收站中的项目吗?`,
-        emptying_trash: '清空回收站…',
-        feedback: "反馈",
-        feedback_c2a: "请使用下面的表格向我们发送您的反馈、评论和错误报告。",
-        feedback_sent_confirmation: "感谢您与我们联系。如果您的帐户关联有电子邮件,我们会尽快回复您。",
-        forgot_pass_c2a: "忘记密码?",
-        from: "从",
-        general: "一般",
-        get_a_copy_of_on_puter: `在 Puter.com 上获取 '%%' 的副本!`,
-        get_copy_link: '获取复制链接',
-        hide_all_windows: "隐藏所有窗口",
-        html_document: 'HTML 文档',
-        image: '图像',
-        invite_link: "邀请链接",
-        items_in_trash_cannot_be_renamed: `此项目无法重命名,因为它在回收站中。要重命名此项目,请先将其拖出回收站。`,
-        jpeg_image: 'JPEG 图像',
-        keep_in_taskbar: '保持在任务栏',
-        log_in: "登录",
-        log_out: '登出',
-        move: '移动',
-        moving: "移动",
-        my_websites: "我的网站",
-        name: '名称',
-        name_cannot_be_empty: '名称不能为空。',
-        name_cannot_contain_double_period: "名称不能是'..'字符。",
-        name_cannot_contain_period: "名称不能是'.'字符。",
-        name_cannot_contain_slash: "名称不能包含'/'字符。",
-        name_must_be_string: "名称只能是字符串。",
-        name_too_long: `名称不能超过 %% 个字符。`,
-        new: '新',
-        new_folder: '新文件夹',
-        new_password: "新密码",
-        new_username: "新用户名",
-        no_dir_associated_with_site: '此地址没有关联的目录。',
-        no_websites_published: "您尚未发布任何网站。",
-        ok: '好的',
-        open: "打开",
-        open_in_new_tab: "在新标签页中打开",
-        open_in_new_window: "在新窗口中打开",
-        open_with: "打开方式",
-        password: "密码",
-        password_changed: "密码已更改。",
-        passwords_do_not_match: '`新密码` 和 `确认新密码` 不匹配。',
-        paste: '粘贴',
-        paste_into_folder: "粘贴到文件夹",
-        pick_name_for_website: "为您的网站选择一个名称:",
-        picture: "图片",
-        powered_by_puter_js: `由 <a href="https://docs.puter.com/" target="_blank">Puter.js</a> 提供支持`,
-        preparing: "准备中...",
-        preparing_for_upload: "准备上传...",
-        properties: "属性",
-        publish: "发布",
-        publish_as_website: '发布为网站',
-        recent: "最近",
-        recover_password: "找回密码",
-        refer_friends_c2a: "每个创建并确认 Puter 帐户的朋友都会为您获得 1 GB。您的朋友也将获得 1 GB!",
-        refer_friends_social_media_c2a: `在 Puter.com 上获取 1 GB 的免费存储空间!`,
-        refresh: '刷新',
-        release_address_confirmation: `您确定要释放此地址吗?`,
-        remove_from_taskbar:'从任务栏中删除',
-        rename: '重命名',
-        repeat: '重复',
-        resend_confirmation_code: "重新发送确认码",
-        restore: "还原",
-        save_account_to_get_copy_link: "请创建帐户以继续。",
-        save_account_to_publish: '请创建帐户以继续。',
-        save_session_c2a: '创建帐户以保存当前会话,避免丢失工作。',
-        scan_qr_c2a: '扫描下面的代码以从其他设备登录此会话',
-        select: "选择",
-        select_color: '选择颜色…',
-        send: "发送",
-        send_password_recovery_email: "发送密码恢复电子邮件",
-        session_saved: "感谢您创建帐户。此会话已保存。",
-        set_new_password: "设置新密码",
-        share_to: "分享到",
-        show_all_windows: "显示所有窗口",
-        show_hidden: '显示隐藏',
-        sign_in_with_puter: "使用 Puter 登录",
-        sign_up: "注册",
-        signing_in: "登录中…",
-        size: '大小',
-        sort_by: '排序方式',
-        start: '开始',
-        taking_longer_than_usual: '需要的时间比平时长一点。请稍等...',
-        text_document: '文本文档',
-        tos_fineprint: `点击“创建免费帐户”即表示您同意 Puter 的 <a href="https://puter.com/terms" target="_blank">服务条款</a> 和 <a href="https://puter.com/privacy" target="_blank">隐私政策</a>。`,
-        trash: '回收站',
-        type: '类型',
-        undo: '撤销',
-        unzip: "解压缩",
-        upload: '上传',
-        upload_here: '在此上传',
-        username: "用户名",
-        username_changed: '用户名已成功更新。',
-        versions: "版本",
-        yes_release_it: '是的,释放它',
-        you_have_been_referred_to_puter_by_a_friend: "您已经被朋友推荐到 Puter!",
-        zip: "压缩",
-    },
-    bn: {
-        access_granted_to: "অ্যাক্সেস মঞ্জুর করা হয়েছে",
-        add_existing_account: "আগে থাকা একাউন্ট অ্যাড করুন",
-        all_fields_required: 'সমস্ত ক্ষেত্র প্রয়োজন.',
-        apply: "আবেদন করুন",
-        ascending: 'উদীয়মান',
-        background: "পটভূমি",
-        browse: "ব্রাউজ করুন",
-        cancel: 'বাতিল করুন',
-        center: 'কেন্দ্র',
-        change_desktop_background: 'ডেস্কটপ পটভূমি পরিবর্তন করুন...',
-        change_password: "পাসওয়ার্ড পরিবর্তন করুন",
-        change_username: "ব্যবহারকারীর নাম পরিবর্তন করুন",
-        close_all_windows: "সমস্ত উইন্ডোজ বন্ধ করুন",
-        color: 'রঙ',
-        confirm_account_for_free_referral_storage_c2a: 'একটি অ্যাকাউন্ট তৈরি করুন এবং 1 GB বিনামূল্যে সঞ্চয়স্থান পেতে আপনার ইমেল ঠিকানা নিশ্চিত করুন৷ আপনার বন্ধুও 1 জিবি ফ্রি স্টোরেজ পাবে।',
-        confirm_new_password: "নিশ্চিত কর নতুন পাসওয়ার্ড",
-        contact_us: "আমাদের সাথে যোগাযোগ করুন",
-        contain: 'ধারণ করে',
-        continue: "চালিয়ে যান",
-        copy: 'কপি',
-        copy_link: "লিংক কপি করুন",
-        copying: "কপি করা হচ্ছে",
-        cover: 'আবরণ',
-        create_account: "একাউন্ট তৈরি করুন",
-        create_free_account: "ফ্রি একাউন্ট তৈরি করুন",
-        create_shortcut: "শর্টকাট তৈরি করুন",
-        current_password: "বর্তমান পাসওয়ার্ড",
-        cut: 'কাট',
-        date_modified: 'তারিখ পরিবর্তন করা হয়েছে',
-        delete: 'মুছে ফেলা',
-        delete_permanently: "চিরতরে মুছে দাও",
-        deploy_as_app: 'অ্যাপ হিসাবে স্থাপন করুন',
-        descending: 'অধোগামী',
-        desktop_background_fit: "ফিট",
-        dir_published_as_website: `%strong% এতে প্রকাশিত হয়েছে:`,
-        disassociate_dir: "ডিসঅ্যাসোসিয়েট ডিরেক্টরি",
-        download: 'ডাউনলোড করুন',
-        downloading: "ডাউনলোড হচ্ছে",
-        email: "ইমেইল",
-        email_or_username: "ইমেল বা ব্যবহারকারীর নাম",
-        empty_trash: 'ট্র্যাশ খালি',
-        empty_trash_confirmation: `আপনি কি ট্র্যাশে থাকা আইটেমগুলিকে স্থায়ীভাবে মুছে দেওয়ার বিষয়ে নিশ্চিত?`,
-        emptying_trash: 'ট্র্যাশ খালি করা হচ্ছে...',
-        feedback: "প্রতিক্রিয়া",
-        feedback_c2a: "আমাদের আপনার প্রতিক্রিয়া, মন্তব্য, এবং বাগ রিপোর্ট পাঠাতে নীচের ফর্ম ব্যবহার করুন.",
-        feedback_sent_confirmation: "আমাদের সাথে যোগাযোগ করার জন্য আপনাকে ধন্যবাদ। আপনার অ্যাকাউন্টের সাথে যুক্ত কোনো ইমেল থাকলে, আপনি যত তাড়াতাড়ি সম্ভব আমাদের কাছ থেকে ফিরে পাবেন।",
-        forgot_pass_c2a: "পাসওয়ার্ড ভুলে গেছেন?",
-        from: "থেকে",
-        general: "সাধারণ",
-        get_a_copy_of_on_puter: `এর একটি কপি পান '%%' on Puter.com!`,
-        get_copy_link: 'অনুলিপি লিঙ্ক পান',
-        hide_all_windows: "সমস্ত উইন্ডোজ লুকান",
-        html_document: 'HTML নথি',
-        image: 'ছবি',
-        invite_link: "আমন্ত্রণ লিঙ্ক",
-        items_in_trash_cannot_be_renamed: `এই আইটেমটির নাম পরিবর্তন করা যাবে না কারণ এটি ট্র্যাশে রয়েছে৷ এই আইটেমটির নাম পরিবর্তন করতে, প্রথমে এটিকে ট্র্যাশ থেকে টেনে আনুন৷`,
-        jpeg_image: 'JPEG ছবি',
-        keep_in_taskbar: 'টাস্কবারে রাখুন',
-        log_in: "প্রবেশ করুন",
-        log_out: 'প্রস্থান',
-        move: 'সরান',
-        moving: "চলন্ত",
-        my_websites: "আমার ওয়েবসাইট",
-        name: 'নাম',
-        name_cannot_be_empty: 'নাম খালি রাখা যাবে না।',
-        name_cannot_contain_double_period: "নাম '..' অক্ষর হতে পারে না।",
-        name_cannot_contain_period: "নাম হতে পারে না '.' চরিত্র",
-        name_cannot_contain_slash: "নামে '/' অক্ষর থাকতে পারে না।",
-        name_must_be_string: "নাম শুধুমাত্র একটি স্ট্রিং হতে পারে.",
-        name_too_long: `নাম %% অক্ষরের বেশি হতে পারে না।`,
-        new: 'নতুন',
-        new_folder: 'নতুন ফোল্ডার',
-        new_password: "নতুন পাসওয়ার্ড",
-        new_username: "নতুন ব্যবহারকারীর নাম",
-        no_dir_associated_with_site: 'এই ঠিকানার সাথে সম্পর্কিত কোন ডিরেক্টরি নেই।',
-        no_websites_published: "আপনি এখনও কোনো ওয়েবসাইট প্রকাশ করেননি.",
-        ok: 'ঠিক আছে',
-        open: "খোলা",
-        open_in_new_tab: "নতুন ট্যাবে খুলুন",
-        open_in_new_window: "নতুন উইন্ডোতে খুলুন",
-        open_with: "সঙ্গে খোলা",
-        password: "পাসওয়ার্ড",
-        password_changed: "পাসওয়ার্ড পরিবর্তন.",
-        passwords_do_not_match: '`নতুন পাসওয়ার্ড` এবং `নিউ পাসওয়ার্ড নিশ্চিত করুন` মিলছে না।',
-        paste: 'পেস্ট করুন',
-        paste_into_folder: "ফোল্ডার আয়ে পেস্ট করুন",
-        pick_name_for_website: "আপনার ওয়েবসাইটের জন্য একটি নাম পছন্দ করুন:",
-        picture: "ছবি",
-        powered_by_puter_js: `দ্বারা চালিত <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
-        preparing: "প্রস্তুত হচ্ছে...",
-        preparing_for_upload: "আপলোডের জন্য প্রস্তুত হচ্ছে...",
-        properties: "বৈশিষ্ট্য",
-        publish: "প্রকাশ করুন",
-        publish_as_website: 'ওয়েবসাইট হিসাবে প্রকাশ করুন',
-        recent: "সাম্প্রতিক",
-        recover_password: "পাসওয়ার্ড রিকভার করুন",
-        refer_friends_c2a: "Puter-এ অ্যাকাউন্ট তৈরি এবং নিশ্চিত করা প্রত্যেক বন্ধুর জন্য 1 GB পান। আপনার বন্ধুও পাবেন 1 জিবি!",
-        refer_friends_social_media_c2a: `1 GB বিনামূল্যে সঞ্চয়স্থান পান Puter.com এ!`,
-        refresh: 'রিফ্রেশ',
-        release_address_confirmation: `আপনি কি এই ঠিকানাটি প্রকাশ করার বিষয়ে নিশ্চিত?`,
-        remove_from_taskbar:'টাস্কবার থেকে সরান',
-        rename: 'নাম পরিবর্তন করুন',
-        repeat: 'রিপিট করুন',
-        resend_confirmation_code: "কনফার্মেশন কোড আবার পাঠান",
-        restore: "পুনরুদ্ধার করুন",
-        save_account_to_get_copy_link: "এগিয়ে যেতে একটি অ্যাকাউন্ট তৈরি করুন.",
-        save_account_to_publish: 'এগিয়ে যেতে একটি অ্যাকাউন্ট তৈরি করুন.',
-        save_session_c2a: 'আপনার বর্তমান সেশন সংরক্ষণ করতে এবং আপনার কাজ হারানো এড়াতে একটি অ্যাকাউন্ট তৈরি করুন।',
-        scan_qr_c2a: 'অন্যান্য ডিভাইস থেকে এই সেশনে লগ ইন করতে নিচের কোডটি স্ক্যান করুন',
-        select: "নির্বাচন করুন",
-        select_color: 'রঙ নির্বাচন করুন...',
-        send: "পাঠান",
-        send_password_recovery_email: "পাসওয়ার্ড পুনরুদ্ধার ইমেল পাঠান",
-        session_saved: "একটি অ্যাকাউন্ট তৈরি করার জন্য আপনাকে ধন্যবাদ. এই অধিবেশন সংরক্ষণ করা হয়েছে.",
-        set_new_password: "নতুন পাসওয়ার্ড সেট করুন",
-        share_to: "শেয়ার করুন",
-        show_all_windows: "সমস্ত উইন্ডোজ দেখান",
-        show_hidden: 'লুকোনো জিনিষ দেখাও',
-        sign_in_with_puter: "Puter দিয়ে সাইন ইন করুন",
-        sign_up: "নিবন্ধন করুন",
-        signing_in: "সাইন ইন…",
-        size: 'আকার',
-        sort_by: 'ক্রমানুসার',
-        start: 'শুরু করুন',
-        taking_longer_than_usual: 'স্বাভাবিকের চেয়ে একটু বেশি সময় নিচ্ছে। অনুগ্রহপূর্বক অপেক্ষা করুন...',
-        text_document: 'পাঠ্য নথি',
-        tos_fineprint: `'ফ্রি অ্যাকাউন্ট তৈরি করুন'-এ ক্লিক করার মাধ্যমে আপনি Puter-এর <a href="https://puter.com/terms" target="_blank">পরিষেবার শর্তাবলী</a> এবং <a href="https://puter-এর সাথে সম্মত হন .com/privacy" target="_blank">গোপনীয়তা নীতি</a>।`,
-        trash: 'আবর্জনা',
-        type: 'টাইপ',
-        undo: 'পূর্বাবস্থায় ফেরান',
-        unzip: "আনজিপ করুন",
-        upload: 'আপলোড করুন',
-        upload_here: 'এখানে আপলোড করুন',
-        username: "ব্যবহারকারীর নাম",
-        username_changed: 'ব্যবহারকারীর নাম সফলভাবে আপডেট করা হয়েছে।',
-        versions: "সংস্করণ",
-        yes_release_it: 'হ্যাঁ, এটা ছেড়ে দিন',
-        you_have_been_referred_to_puter_by_a_friend: "আপনি একজন বন্ধু দ্বারা Puter উল্লেখ করা হয়েছে!",
-        zip: "জিপ",
-    fr: {
-        access_granted_to: "Accès accordé à",
-        add_existing_account: "Ajouter un compte existant",
-        all_fields_required: "Tous les champs sont obligatoires.",
-        apply: "Appliquer",
-        ascending: "Ascendant",
-        background: "Arrière-plan",
-        browse: "Parcourir",
-        cancel: "Annuler",
-        center: "Centre",
-        change_desktop_background: "Changer l'arrière-plan du bureau…",
-        change_password: "Changer le mot de passe",
-        change_username: "Changer le nom d'utilisateur",
-        close_all_windows: "Fermer toutes les fenêtres",
-        color: "Couleur",
-        confirm_account_for_free_referral_storage_c2a: "Créez un compte et confirmez votre adresse e-mail pour recevoir 1 Go de stockage gratuit. Votre ami recevra également 1 Go de stockage gratuit.",
-        confirm_new_password: "Confirmer le nouveau mot de passe",
-        contact_us: "Contactez-nous",
-        contain: "Contenir",
-        continue: "Continuer",
-        copy: "Copier",
-        copy_link: "Copier le lien",
-        copying: "Copie en cours",
-        cover: "Couverture",
-        create_account: "Créer un compte",
-        create_free_account: "Créer un compte gratuit",
-        create_shortcut: "Créer un raccourci",
-        current_password: "Mot de passe actuel",
-        cut: "Couper",
-        date_modified: "Date de modification",
-        delete: "Supprimer",
-        delete_permanently: "Supprimer définitivement",
-        deploy_as_app: "Déployer en tant qu'application",
-        descending: "Descendant",
-        desktop_background_fit: "Ajuster",
-        dir_published_as_website: `%strong% a été publié sur :`,
-        disassociate_dir: "Dissocier le répertoire",
-        download: "Télécharger",
-        downloading: "Téléchargement en cours",
-        email: "E-mail",
-        email_or_username: "E-mail ou nom d'utilisateur",
-        empty_trash: "Vider la corbeille",
-        empty_trash_confirmation: "Êtes-vous sûr de vouloir supprimer définitivement les éléments de la corbeille ?",
-        emptying_trash: "Vidage de la corbeille en cours…",
-        feedback: "Retour d'information",
-        feedback_c2a: "Veuillez utiliser le formulaire ci-dessous pour nous envoyer vos commentaires, suggestions et rapports de bogues.",
-        feedback_sent_confirmation: "Merci de nous avoir contactés. Si vous avez un e-mail associé à votre compte, vous recevrez une réponse de notre part dès que possible.",
-        forgot_pass_c2a: "Mot de passe oublié ?",
-        from: "De",
-        general: "Général",
-        get_a_copy_of_on_puter: `Obtenez une copie de '%%' sur Puter.com !`,
-        get_copy_link: "Obtenir un lien de copie",
-        hide_all_windows: "Masquer toutes les fenêtres",
-        html_document: "Document HTML",
-        image: "Image",
-        invite_link: "Lien d'invitation",
-        items_in_trash_cannot_be_renamed: "Cet élément ne peut pas être renommé car il se trouve dans la corbeille. Pour renommer cet élément, déplacez-le d'abord hors de la corbeille.",
-        jpeg_image: "Image JPEG",
-        keep_in_taskbar: "Garder dans la barre des tâches",
-        log_in: "Se connecter",
-        log_out: "Se déconnecter",
-        move: "Déplacer",
-        moving: "Déplacement en cours",
-        my_websites: "Mes sites web",
-        name: "Nom",
-        name_cannot_be_empty: "Le nom ne peut pas être vide.",
-        name_cannot_contain_double_period: "Le nom ne peut pas contenir deux points ('..').",
-        name_cannot_contain_period: "Le nom ne peut pas contenir de point ('.').",
-        name_cannot_contain_slash: "Le nom ne peut pas contenir de slash ('/').",
-        name_must_be_string: "Le nom ne peut être qu'une chaîne de caractères.",
-        name_too_long: "Le nom ne peut pas dépasser %% caractères.",
-        new: "Nouveau",
-        new_folder: "Nouveau dossier",
-        new_password: "Nouveau mot de passe",
-        new_username: "Nouveau nom d'utilisateur",
-        no_dir_associated_with_site: "Aucun répertoire associé à cette adresse.",
-        no_websites_published: "Vous n'avez publié aucun site web pour le moment.",
-        ok: "OK",
-        open: "Ouvrir",
-        open_in_new_tab: "Ouvrir dans un nouvel onglet",
-        open_in_new_window: "Ouvrir dans une nouvelle fenêtre",
-        open_with: "Ouvrir avec",
-        password: "Mot de passe",
-        password_changed: "Mot de passe modifié.",
-        passwords_do_not_match: "Les champs 'Nouveau mot de passe' et 'Confirmer le nouveau mot de passe' ne correspondent pas.",
-        paste: "Coller",
-        paste_into_folder: "Coller dans le dossier",
-        pick_name_for_website: "Choisissez un nom pour votre site web :",
-        picture: "Image",
-        powered_by_puter_js: "Propulsé par <a href=\"https://docs.puter.com/\" target=\"_blank\">Puter.js</a>",
-        preparing: "Préparation en cours...",
-        preparing_for_upload: "Préparation du téléchargement en cours...",
-        properties: "Propriétés",
-        publish: "Publier",
-        publish_as_website: "Publier en tant que site web",
-        recent: "Récent",
-        recover_password: "Récupérer le mot de passe",
-        refer_friends_c2a: "Obtenez 1 Go pour chaque ami qui crée et confirme un compte sur Puter. Votre ami recevra également 1 Go !",
-        refer_friends_social_media_c2a: "Obtenez 1 Go de stockage gratuit sur Puter.com !",
-        refresh: "Actualiser",
-        release_address_confirmation: "Êtes-vous sûr de vouloir libérer cette adresse ?",
-        remove_from_taskbar: "Supprimer de la barre des tâches",
-        rename: "Renommer",
-        repeat: "Répéter",
-        resend_confirmation_code: "Renvoyer le code de confirmation",
-        restore: "Restaurer",
-        save_account_to_get_copy_link: "Veuillez créer un compte pour continuer.",
-        save_account_to_publish: "Veuillez créer un compte pour continuer.",
-        save_session_c2a: "Créez un compte pour enregistrer votre session en cours et éviter de perdre votre travail.",
-        scan_qr_c2a: "Scannez le code ci-dessous pour vous connecter à cette session depuis d'autres appareils",
-        select: "Sélectionner",
-        select_color: "Sélectionner la couleur…",
-        send: "Envoyer",
-        send_password_recovery_email: "Envoyer un e-mail de récupération de mot de passe",
-        session_saved: "Merci d'avoir créé un compte. Cette session a été enregistrée.",
-        set_new_password: "Définir un nouveau mot de passe",
-        share_to: "Partager sur",
-        show_all_windows: "Afficher toutes les fenêtres",
-        show_hidden: "Afficher les éléments masqués",
-        sign_in_with_puter: "Se connecter avec Puter",
-        sign_up: "S'inscrire",
-        signing_in: "Connexion en cours...",
-        size: "Taille",
-        sort_by: "Trier par",
-        start: "Démarrer",
-        taking_longer_than_usual: "Cela prend un peu plus de temps que d'habitude. Veuillez patienter...",
-        text_document: "Document texte",
-        tos_fineprint: "En cliquant sur 'Créer un compte gratuit', vous acceptez les <a href=\"https://puter.com/terms\" target=\"_blank\">Conditions d'utilisation</a> et la <a href=\"https://puter.com/privacy\" target=\"_blank\">Politique de confidentialité</a> de Puter.",
-        trash: "Corbeille",
-        type: "Type",
-        undo: "Annuler",
-        unzip: "Décompresser",
-        upload: "Téléverser",
-        upload_here: "Téléverser ici",
-        username: "Nom d'utilisateur",
-        username_changed: "Nom d'utilisateur mis à jour avec succès.",
-        versions: "Versions",
-        yes_release_it: "Oui, le libérer",
-        you_have_been_referred_to_puter_by_a_friend: "Vous avez été recommandé à Puter par un ami !",
-        zip: "Zip",
-    },
-    // italian
-    it: {
-        access_granted_to: "Accesso garantito a",
-        add_existing_account: "Aggiungi un account esistente",
-        all_fields_required: 'Tutte le caselle sono richieste.',
-        apply: "Applica",
-        ascending: 'Ascendente',
-        background: "Sfondo",
-        browse: "Sfoglia",
-        cancel: 'Annulla',
-        center: 'Centra ',
-        change_desktop_background: 'Modifica sfondo…',
-        change_password: "Modifica password",
-        change_username: "Modifica Nome Utente",
-        close_all_windows: "Chiudi tutte le finestre",
-        color: 'Colore',
-        confirm_account_for_free_referral_storage_c2a: 'Crea un account e conferma la tua email per ricevere 1 GB di spazio di archiviazione gratuito. Anche il tuo amico riceverà dello spazio extra!',
-        confirm_new_password: "Conferma la nuova Password",
-        contact_us: "Contattaci",
-        contain: 'Contieni',
-        continue: "Continua",
-        copy: 'Copia',
-        copy_link: "Copia il link",
-        copying: "Copia in corso",
-        cover: 'Riempi',
-        create_account: "Crea Account",
-        create_free_account: "Crea un account gratis",
-        create_shortcut: "Crea Scorciatoia",
-        current_password: "Password corrente",
-        cut: 'Taglia',
-        date_modified: 'Data ultima modifica',
-        delete: 'Elimina',
-        delete_permanently: "Elimina permanentemente",
-        deploy_as_app: 'Distribuisci come Applicazione',
-        descending: 'Discendente',
-        desktop_background_fit: "Adatta",
-        dir_published_as_website: `%strong% è stato pubblicato su:`,
-        disassociate_dir: "Dissocia la Directory",
-        download: 'Scarica',
-        downloading: "Download in corso",
-        email: "Email",
-        email_or_username: "Email o Nome Utente",
-        empty_trash: 'Svuota Cestino',
-        empty_trash_confirmation: `Sei sicuro di voler svuotare il cestino?`,
-        emptying_trash: 'Il cestino si sta svuotando…',
-        feedback: "Feedback",
-        feedback_c2a: "Usa il form qua sotto per inviarci feedback, commenti, e segnalarci dei bug.",
-        feedback_sent_confirmation: "Grazie per averci contattato. Se hai un indirizzo email associato al tuo account, ti ricontatteremo il prima possibile.",
-        forgot_pass_c2a: "Password dimenticata?",
-        from: "Da",
-        general: "Generale",
-        get_a_copy_of_on_puter: `Ottieni una copia di '%%' su Puter.com!`,
-        get_copy_link: 'Ottieni link',
-        hide_all_windows: "Nascondi tutte le finestre",
-        html_document: 'Documento HTML',
-        image: 'Immagine',
-        invite_link: "Link d’invito",
-        items_in_trash_cannot_be_renamed: `Impossibile rinominare un elemento nel Cestino. Per rinominarlo, è necessario ripristinarlo.`,
-        jpeg_image: 'Immagine JPEG',
-        keep_in_taskbar: 'Blocca nella barra delle applicazioni',
-        log_in: "Accedi",
-        log_out: 'Disconnettiti',
-        move: 'Sposta',
-        moving: "Spostamento in corso",
-        my_websites: "I miei siti web",
-        name: 'Nome',
-        name_cannot_be_empty: 'Il nome non può essere vuoto.',
-        name_cannot_contain_double_period: "Il nome non può contenere '..' .",
-        name_cannot_contain_period: "Il nome non può contenere '.' .",
-        name_cannot_contain_slash: "Il nome non può contenere '/' .",
-        name_must_be_string: "Il nome può contenere una sola linea.",
-        name_too_long: `Il nome non può essere più lungo di %% caratteri.`,
-        new: 'Nuovo',
-        new_folder: 'Nuova Cartella',
-        new_password: "Nuova Password",
-        new_username: "Nuovo Nome Utente",
-        no_dir_associated_with_site: 'Nessuna directory è stata associata all’indirizzo.',
-        no_websites_published: "Non hai pubblicato nessun sito web.",
-        ok: 'OK',
-        open: "Apri",
-        open_in_new_tab: "Apri in una nuova scheda",
-        open_in_new_window: "Apri in una nuova finestra",
-        open_with: "Apri con",
-        password: "Password",
-        password_changed: "Password modificata.",
-        passwords_do_not_match: 'Le caselle `Nuova Password` and `Conferma Nuova Password` non corrispondono.',
-        paste: 'Incolla',
-        paste_into_folder: "Incolla nella cartella",
-        pick_name_for_website: "Scegli un nome per il tuo sito web:",
-        picture: "Immagine",
-        powered_by_puter_js: `Powered by <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
-        preparing: "Preparazione in corso...",
-        preparing_for_upload: "Preparazione per l’upload...",
-        properties: "Proprietà",
-        publish: "Pubblica",
-        publish_as_website: 'Pubblica come sito web',
-        recent: "Recenti",
-        recover_password: "Ripristina la Password",
-        refer_friends_c2a: "Ottieni 1 GB di spazio di archiviazione per ogni amico che crea un account e conferma l’email su Puter. Anche il tuo amico riceverà dello spazio extra!",
-        refer_friends_social_media_c2a: `Ottieni 1GB di spazio di spazio di archiviazione gratuito su Puter.com!`,
-        refresh: 'Ricarica',
-        release_address_confirmation: `Sei sicuro di voler liberare questo indirizzo?`,
-        remove_from_taskbar:'Sblocca dalla barra delle applicazioni',
-        rename: 'Rinomina',
-        repeat: 'Ripeti',
-        resend_confirmation_code: "Invia di nuovo il codice di conferma",
-        restore: "Ripristina",
-        save_account_to_get_copy_link: "È necessario creare un account per procedere.",
-        save_account_to_publish: 'È necessario creare un account per procedere.',
-        save_session_c2a: 'Crea un account per salvare la tua sessione e non perdere i tuoi dati.',
-        scan_qr_c2a: 'Scansiona il codice qua sotto per utilizzare questa sessione da altri dispositivi',
-        select: "Seleziona",
-        select_color: 'Seleziona un colore…',
-        send: "Invia",
-        send_password_recovery_email: "Invia Email per il ripristino della password",
-        session_saved: "Grazie per aver creato un account. La sessione è stata salvata",
-        set_new_password: "Imposta una nuova Password",
-        share_to: "Condividi con",
-        show_all_windows: "Mostra tutte le finestre",
-        show_hidden: 'Mostra nascosti',
-        sign_in_with_puter: "Accedi con Puter",
-        sign_up: "Registrati",
-        signing_in: "Accesso in corso…",
-        size: 'Dimensione',
-        sort_by: 'Ordina per',
-        start: 'Start',
-        taking_longer_than_usual: 'Il processo in corso ci sta mettendo più del solito. Attendere prego...',
-        text_document: 'Documento di testo',
-        tos_fineprint: `Cliccando su 'Crea un account gratis' accetti i <a href="https://puter.com/terms" target="_blank">Termini di Servizio</a> e l'<a href="https://puter.com/privacy" target="_blank">Informativa sulla Privacy</a> di Puter.`,
-        trash: 'Cestino',
-        type: 'Tipo',
-        undo: 'Annulla',
-        unzip: "Decomprimi",
-        upload: 'Carica',
-        upload_here: 'Carica qui',
-        username: "Nome Utente",
-        username_changed: 'Nome utente aggiornato con successo.',
-        versions: "Versioni",
-        yes_release_it: 'Si, rilascialo',
-        you_have_been_referred_to_puter_by_a_friend: "Sei stato invitato su Puter da un amico!",
-        zip: "Comprimi",
-    },
-    // finnish
-    fi: {
-        access_granted_to: "Käyttöoikeus Myönnetty",
-        add_existing_account: "Lisää Olemassaoleva Tili",
-        all_fields_required: 'Kaikki kentät on täytettävä.',
-
-        apply: "Apply", // TODO: Ambiguous meaning
-        // To apply(a principle) => "Sovella" or
-        // Apply for(a job) "Hae" or 
-        // Apply as(an engineer) => "Hakeudu" or
-        // Apply an expression => "Applikoi" or - Probably the most appropriate in the context of the app
-        // Apply in the sense of applying something, like a tool => "Käytä"
-
-        ascending: 'Nouseva',
-        background: "Tausta",
-        browse: "Selaa",
-        cancel: 'Peruuta',
-        center: 'Keskus',
-        change_desktop_background: 'Vaihda työpöydän taustakuvaa…',
-        change_password: "Muuta Salasana",
-        change_username: "Muuta Käyttäjänimeä",
-        close_all_windows: "Sulje Kaikki Ikkunat",
-        color: 'Väri',
-        confirm_account_for_free_referral_storage_c2a: 'Luo tili ja vahvista sähköpostiosoitteesi saadaksesi 1 Gt ilmaista tallennustilaa. Myös kaverisi saa 1 Gt ilmaista tallennustilaa.',
-        confirm_new_password: "Vahvista Uusi Salasana",
-        contact_us: "Ota Yhteyttä",
-
-        contain: 'Contain', // TODO: Ambiguous meaning
-        // "inside(a house)" => "Sisällä" - probably more appropriate
-        // "contain within" => "Sisältää"
-
-        continue: "Jatka",
-
-        copy: 'Copy', // TODO: Lexical categories
-        // Noun "A copy of something" => 'Kopio' or
-        // Verb "To copy something" => 'Kopioi'?
-
-        copy_link: "Kopioi Linkki",
-        copying: "Kopioidaan",
-
-        cover: 'Cover', // TODO: Lexical categories
-        // Noun (shelter) => 'Suoja' or 
-        // Noun (lid) => 'Kansi' or
-        // Intransitive Verb (To occlude something) => 'Peitä' or
-        // Transitive Verb (To cover for someone) => 'Suojaa'
-
-        create_account: "Luo Tili",
-        create_free_account: "Luo Ilmainen Tili",
-        create_shortcut: "Luo Pikakuvake",
-        current_password: "Nykyinen Salasana",
-        cut: 'Leikkaa',
-        date_modified: 'Muutospäivämäärä',
-        delete: 'Poista',
-        delete_permanently: "Poista Pysyvästi",
-        deploy_as_app: 'Levitä sovelluksena',
-        descending: 'Laskeva',
-        desktop_background_fit: "Sovita",
-        dir_published_as_website: `%strong% on julkaistu osoitteessa:`,
-        disassociate_dir: "Erota Hakemisto",
-        download: 'Lataa',
-        downloading: "Ladataan",
-        email: "Sähköposti",
-        email_or_username: "Sähköposti tai Käyttäjänimi",
-        empty_trash: 'Tyhjennä Roskakori',
-        empty_trash_confirmation: `Oletko varma, että haluat poistaa Roskakorin kohteet pysyvästi?`,
-        emptying_trash: 'Tyhjennetään Roskakori…',
-        feedback: "Palaute",
-        feedback_c2a: "Käytä alla olevaa lomaketta lähettääksesi meille palautetta, kommentteja ja vikailmoituksia.",
-        feedback_sent_confirmation: "Kiitos yhteydenotosta. Jos sinulla on tiliisi liittyvä sähköpostiosoite, saat meiltä vastauksen mahdollisimman pian.",
-        forgot_pass_c2a: "Unohditko Salasanasi?",
-
-        from: "From", // TODO: Context dependent, examples
-        // "from address" => "osoitteesta" or
-        // "from sender" => "lähettäjältä".
-        // In the finnish language these are usually translated as case suffixes.
-        // "From Person" gets the suffix "-ltä", being the combination of "Henkilö(Person) and ltä(From)"
-
-        general: "General", // TODO: Conceptual ambiguity
-        // "general (about something)" => "Yleistä" or
-        // "military general" => "Kenraali"
-
-        get_a_copy_of_on_puter: `Hanki '%%' -kopio Puter.com-sivustolta!`, // TODO: Very difficult ambiguity due to different case suffix for any possible word that you can substitue here. Can stay as is, but it's not exactly correct.
-
-        get_copy_link: 'Get Copy Link', // TODO: Ambiguous meaning
-        // 'get a copy of a link' => 'Ota Kopio Linkkiin' or
-        // 'get a link to the copy' => 'Ota Linkki Kopioon' - More probable, just want to be sure
-
-        hide_all_windows: "Piilota Kaikki Ikkunat",
-        html_document: 'HTML-dokumentti',
-        image: 'Kuva',
-        invite_link: "Kutsulinkki",
-        items_in_trash_cannot_be_renamed: `Tätä kohdetta ei voi nimetä uudelleen, koska se on roskakorissa. Jos haluat nimetä kohteen uudelleen, raahaa se ensin pois roskakorista.`,
-        jpeg_image: 'JPEG-kuva',
-        keep_in_taskbar: 'Pidä tehtäväpalkissa',
-        log_in: "Kirjaudu Sisään",
-        log_out: 'Kirjaudu Ulos',
-        move: 'Siirrä',
-        moving: "Siirretään",
-        my_websites: "Verkkosivustoni",
-        name: 'Nimi',
-        name_cannot_be_empty: 'Nimi ei voi olla tyhjä.',
-
-        name_cannot_contain_double_period: "Name can not be the '..' character.", // TODO: definition says a different thing, than the string
-        // "Name can not be the '..' character." => "Nimi ei voi olla '..'-merkki." or
-        // "Name can not contain the '..' character." => "Nimi ei voi sisältää merkkiä '..'."
-
-        name_cannot_contain_period: "Name can not be the '.' character.", // TODO: definition says a different thing, than the string
-        // "Name can not be the '.' character." => "Nimi ei voi olla '.'-merkki." or
-        // "Name can not contain the '.' character." => "Nimi ei voi sisältää merkkiä '.'."
-
-        name_cannot_contain_slash: "Nimi ei voi sisältää merkkiä '/'.",
-        name_must_be_string: "Nimi voi olla vain merkkijono.",
-        name_too_long: `Nimi ei voi olla pidempi kuin %% merkkiä.`,
-        new: 'Uusi',
-        new_folder: 'Uusi kansio',
-        new_password: "Uusi Salasana",
-        new_username: "Uusi Käyttäjänimi",
-        no_dir_associated_with_site: 'Osoitteeseen ei liity mitään hakemistoa.',
-        no_websites_published: "Et ole vielä julkaissut yhtään verkkosivustoa.",
-        ok: 'OK',
-        open: "Avaa",
-        open_in_new_tab: "Avaa uudessa Välilehdessä",
-        open_in_new_window: "Avaa uudessa Ikkunassa",
-
-        open_with: "Open With", // TODO: Context dependent
-        // "Open" => "Avaa", can be "Avaa..." in this context or
-        // "Open With" is often translated in the context of "Open With Application" => "Avaa Sovelluksessa"
-
-        password: "Salasana",
-        password_changed: "Salasana vaihdettu.",
-        passwords_do_not_match: '`Uusi Salasana` ja `Vahvista Uusi Salasana` eivät täsmää.',
-        paste: 'Liitä',
-        paste_into_folder: "Liitä Kansioon",
-        pick_name_for_website: "Valitse nimi verkkosivustollesi:",
-        picture: "Kuva",
-        powered_by_puter_js: `Tämän Mahdollistaa <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
-        preparing: "Valmistellaan...",
-        preparing_for_upload: "Valmistellaan latausta...",
-        properties: "Ominaisuudet",
-        publish: "Julkaise",
-        publish_as_website: 'Julkaise verkkosivustona',
-        recent: "Viimeisimmät",
-        recover_password: "Palauta Salasana",
-        refer_friends_c2a: "Saat 1 Gt tilaa jokaisesta kaverista, joka luo ja vahvistaa tilin Puterissa. Myös kaverisi saa 1 Gt tilaa!",
-        refer_friends_social_media_c2a: `Hanki 1 Gt ilmaista tallennustilaa Puter.comista!`,
-        refresh: 'Päivitä',
-
-        release_address_confirmation: `Are you sure you want to release this address?`, // TODO: Slight ambiguity between the meaning of "release"
-        // "get rid of" => "Oletko varma, että haluat luovuttaa tämän osoitteen?" or
-        // "publish" => "Oletko varma, että haluat julkaista tämän osoitteen?"
-
-        remove_from_taskbar:'Poista Tehtäväpalkista',
-        rename: 'Nimeä uudelleen',
-        repeat: 'Toista',
-        resend_confirmation_code: "Lähetä Vahvistuskoodi Uudelleen",
-        restore: "Palauta",
-        save_account_to_get_copy_link: "Luo tili jatkaaksesi.",
-        save_account_to_publish: 'Luo tili jatkaaksesi.',
-        save_session_c2a: 'Luo tili tallentaaksesi nykyisen istuntosi ja välttyäksesi työn menettämiseltä.',
-        scan_qr_c2a: 'Skannaa alla oleva koodi kirjautuaksesi tähän istuntoon muista laitteista',
-        select: "Valitse",
-        select_color: 'Valitse väri…',
-        send: "Lähetä",
-        send_password_recovery_email: "Lähetä Salasanan Palautussähköposti",
-        session_saved: "Kiitos tilin luomisesta. Tämä istunto on tallennettu.",
-        set_new_password: "Aseta Uusi Salasana",
-
-        share_to: "Share to", // TODO: Grammatical ambiguity
-        // The base form of "Share" is "Jaa". So maybe "Jaa..." is appropriate?
-        // If "share to" is followed by the name of a user, it will not make any sense, as the name can be suffixed by for example "Jaa %%lle".
-
-        show_all_windows: "Näytä Kaikki Ikkunat",
-        show_hidden: 'Näytä piilotettu',
-        sign_in_with_puter: "Kirjaudu sisään Puterilla",
-        sign_up: "Rekisteröidy",
-        signing_in: "Kirjaudutaan sisään…",
-        size: 'Koko',
-        sort_by: 'Lajittele:',
-        start: 'Käynnistä',
-        taking_longer_than_usual: 'Kestää hieman tavallista kauemmin. Odottakaa...',
-        text_document: 'Tekstiasiakirja',
-        tos_fineprint: `Klikkaamalla 'Luo ilmainen tili' hyväksyt Puterin käyttöehdot ja tietosuojakäytännön.`,
-
-        trash: 'Trash', // TODO: Ambiguous meaning
-        // "Trash" is oft used to just mean "Trash bin" => 'Roskakori' or
-        // "Trash" by itself => 'Roska'
-
-        type: 'Type', // TODO: Ambiguous meaning
-        // "Type of an object" => 'Tyyppi' or
-        // "Type on the keyboard" => 'Kirjoita'
-
-        undo: 'Kumoa',
-        unzip: "Pura zip",
-        upload: 'Lataa',
-        upload_here: 'Lataa tähän',
-        username: "Käyttäjänimi",
-        username_changed: 'Käyttäjänimi päivitetty onnistuneesti.',
-        versions: "Versiot",
-        yes_release_it: 'Kyllä, Julkaise Se',
-        you_have_been_referred_to_puter_by_a_friend: "Kaverisi on kutsunut sinut Puterille!",
-        zip: "Zip",
-    },
-    ro: {
-        access_granted_to: "Acces acordat pentru",
-        add_existing_account: "Adaugă cont existent",
-        all_fields_required: 'Toate câmpurile sunt necesare.',
-        apply: "Aplică",
-        ascending: 'Ascendent',
-        background: "Background",
-        browse: "Caută",
-        cancel: 'Anulează',
-        center: 'Center',
-        change_desktop_background: 'Schimbă imaginea de fundal…',
-        change_password: "Schimbă Parola",
-        change_username: "Schimbă Numele",
-        close_all_windows: "Inchide toate ferestrele",
-        color: 'Culoare',
-        confirm_account_for_free_referral_storage_c2a: 'Creați un cont și confirmați adresa de e-mail pentru a primi 1 GB de spațiu de stocare gratuit. Și prietenul tău va primi 1 GB de spațiu de stocare gratuit.',
-        confirm_new_password: "Confirmă Parola Nouă",
-        contact_us: "Contactează-ne",
-        contain: 'Contain',
-        continue: "Continuă",
-        copy: 'Copiază',
-        copy_link: "Copiază link",
-        copying: "Se copiază",
-        cover: 'Cover',
-        create_account: "Crează un cont",
-        create_free_account: "Crează un cont gratuit",
-        create_shortcut: "Crează o scurtătură",
-        current_password: "Parola Curentă",
-        cut: 'Taie',
-        date_modified: 'Dată modificată',
-        delete: 'Șterge',
-        delete_permanently: "Șterge Permanent",
-        deploy_as_app: 'Implementează ca aplicație',
-        descending: 'Descending',
-        desktop_background_fit: "Potrivește fundalul",
-        dir_published_as_website: `%strong% a fost publicat către:`,
-        disassociate_dir: "Dezasociaza folderul",
-        download: 'Descarcă',
-        downloading: "Se descarcă",
-        email: "Mail",
-        email_or_username: "Mail sau Nume de Utilizator",
-        empty_trash: 'Golește Coșul de gunoi',
-        empty_trash_confirmation: `Ești sigur că vrei să ștergi permanent conținutul Coșului de gunoi?`,
-        emptying_trash: 'Coșul de gunoi se golește…',
-        feedback: "Feedback",
-        feedback_c2a: "Vă rugăm să folosiți formularul de mai jos pentru a ne trimite feedback, comentarii și rapoarte de erori.",
-        feedback_sent_confirmation: "Mulțumim că ne-ți contactat. Dacă aveți un e-mail asociat contului dvs, veți primi un răspuns de la noi cât mai curând posibil.",
-        forgot_pass_c2a: "Ai uitat parola?",
-        from: "De la",
-        general: "General",
-        get_a_copy_of_on_puter: `Obțineți o copie a '%%' pe Puter.com!`,
-        get_copy_link: 'Obțineți link-ul copiei',
-        hide_all_windows: "Ascunde toate ferestrele",
-        html_document: 'Document HTML',
-        image: 'Imagine',
-        invite_link: "Link de invitație",
-        items_in_trash_cannot_be_renamed: `Acest articol nu poate fi redenumit deoarece este în coșul de gunoi. Pentru a redenumi acest element, mai întâi scoateți-l din Coșul de gunoi.`,
-        jpeg_image: 'Imagine JPEG',
-        keep_in_taskbar: 'Păstrează în bara de activități',
-        log_in: "Loghează-te",
-        log_out: 'Deconectează-te',
-        move: 'Mută',
-        moving: "Se mută",
-        my_websites: "Site-urile mele",
-        name: 'Nume',
-        name_cannot_be_empty: 'Numele nu poate fi necompletat.',
-        name_cannot_contain_double_period: "Numele nu poate conține ..",
-        name_cannot_contain_period: "Numele nu poate conține .",
-        name_cannot_contain_slash: "Numele nu poate contine /",
-        name_must_be_string: "Numele poate fi doar un șir.",
-        name_too_long: `Numele nu poate fi mai lung de %% caractere.`,
-        new: 'Nou',
-        new_folder: 'Folder nou',
-        new_password: "Parolă nouă",
-        new_username: "Nume de Utilizator nou",
-        no_dir_associated_with_site: 'Niciun director asociat cu această adresă.',
-        no_websites_published: "Nu ați publicat încă niciun site web.",
-        ok: 'OK',
-        open: "Deschide",
-        open_in_new_tab: "Deschide in alt tab",
-        open_in_new_window: "Deschide in fereastră nouă",
-        open_with: "Deschide cu",
-        password: "Parolă",
-        password_changed: "Parolă schimbată.",
-        passwords_do_not_match: '`Parola nouă` și `Confirmă Parola nouă` nu sunt la fel.',
-        paste: 'Inserează',
-        paste_into_folder: "Inserează in folder",
-        pick_name_for_website: "Alegeți un nume pentru site-ul dvs:",
-        picture: "Poza",
-        powered_by_puter_js: `Creat de <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
-        preparing: "Preparare...",
-        preparing_for_upload: "Preparare pentru încărcare...",
-        properties: "Proprietăți",
-        publish: "Publică",
-        publish_as_website: 'Publică, ca site web',
-        recent: "Recente",
-        recover_password: "Recuperare Parolă",
-        refer_friends_c2a: "Obțineți 1 GB pentru fiecare prieten care creează și confirmă un cont pe Puter. și prietenul tău va primi 1 GB!",
-        refer_friends_social_media_c2a: `Obțineți 1 GB de spațiu de stocare gratuit pe Puter.com!`,
-        refresh: 'Reîmprospătare',
-        release_address_confirmation: `Sigur doriți să eliberați această adresă?`,
-        remove_from_taskbar:'Eliminați din bara de activități',
-        rename: 'Redenumește',
-        repeat: 'Repetă',
-        resend_confirmation_code: "Re-trimite cod de confirmare",
-        restore: "Restaurare",
-        save_account_to_get_copy_link: "Vă rugăm să creați un cont pentru a copia un link.",
-        save_account_to_publish: 'Vă rugăm să creați un cont pentru a publica.',
-        save_session_c2a: 'Creați un cont pentru a vă salva sesiunea curentă și pentru a evita pierderea muncii.',
-        scan_qr_c2a: 'Scanați codul de mai jos pentru a vă conecta la această sesiune de pe alte dispozitive',
-        select: "Selectează",
-        select_color: 'Selectează culoare…',
-        send: "Trimite",
-        send_password_recovery_email: "Trimite mail de recuperare parolă",
-        session_saved: "Vă mulțumim pentru crearea unui cont. Această sesiune a fost salvată.",
-        set_new_password: "Setează o parolă Nouă",
-        share_to: "Distribuie către",
-        show_all_windows: "Afișați toate ferestrele",
-        show_hidden: 'Arată ascuns',
-        sign_in_with_puter: "Conectați-vă cu Puter",
-        sign_up: "Inscrie-te",
-        signing_in: "Se conectează…",
-        size: 'Mărime',
-        sort_by: 'Sortează dupa',
-        start: 'Start',
-        taking_longer_than_usual: 'Durează puțin mai mult decât de obicei. Vă rugăm așteptați...',
-        text_document: 'Document Text',
-        tos_fineprint: `Făcând clic pe „Creați un cont gratuit”, sunteți de acord cu <a href="https://puter.com/terms" target="_blank">Termenii si conditiile</a> si <a href="https://puter.com/privacy" target="_blank">Politia de Confidentialitate Puter.com</a>.`,
-        trash: 'Coș de gunoi',
-        type: 'Type',
-        undo: 'Undo',
-        unzip: "Unzip",
-        upload: 'Incarcă',
-        upload_here: 'Incarcă aici',
-        username: "Nume de Utilizator",
-        username_changed: 'Nume de Utilizator actualizat cu succes.',
-        versions: "Versiuni",
-        yes_release_it: 'Da, eliberează-l',
-        you_have_been_referred_to_puter_by_a_friend: "Ai fost invitat pe Puter de către un prieten!",
-        zip: "Zip",
-    }
-}
+export default {};

+ 8 - 0
src/i18n/i18nChangeLanguage.js

@@ -0,0 +1,8 @@
+function ChangeLanguage(lang) {
+    window.locale = lang;
+    window.mutate_user_preferences({
+        language : lang,
+    });
+}
+
+export default ChangeLanguage;

+ 147 - 0
src/i18n/translations/bn.js

@@ -0,0 +1,147 @@
+const bn = {
+    name: "বাংলা",
+    code: "bn",
+    dictionary: {
+        access_granted_to: "অ্যাক্সেস মঞ্জুর করা হয়েছে",
+        add_existing_account: "আগে থাকা একাউন্ট অ্যাড করুন",
+        all_fields_required: 'সমস্ত ক্ষেত্র প্রয়োজন.',
+        apply: "আবেদন করুন",
+        ascending: 'উদীয়মান',
+        background: "পটভূমি",
+        browse: "ব্রাউজ করুন",
+        cancel: 'বাতিল করুন',
+        center: 'কেন্দ্র',
+        change_desktop_background: 'ডেস্কটপ পটভূমি পরিবর্তন করুন...',
+        change_password: "পাসওয়ার্ড পরিবর্তন করুন",
+        change_username: "ব্যবহারকারীর নাম পরিবর্তন করুন",
+        close_all_windows: "সমস্ত উইন্ডোজ বন্ধ করুন",
+        color: 'রঙ',
+        confirm_account_for_free_referral_storage_c2a: 'একটি অ্যাকাউন্ট তৈরি করুন এবং 1 GB বিনামূল্যে সঞ্চয়স্থান পেতে আপনার ইমেল ঠিকানা নিশ্চিত করুন৷ আপনার বন্ধুও 1 জিবি ফ্রি স্টোরেজ পাবে।',
+        confirm_new_password: "নিশ্চিত কর নতুন পাসওয়ার্ড",
+        contact_us: "আমাদের সাথে যোগাযোগ করুন",
+        contain: 'ধারণ করে',
+        continue: "চালিয়ে যান",
+        copy: 'কপি',
+        copy_link: "লিংক কপি করুন",
+        copying: "কপি করা হচ্ছে",
+        cover: 'আবরণ',
+        create_account: "একাউন্ট তৈরি করুন",
+        create_free_account: "ফ্রি একাউন্ট তৈরি করুন",
+        create_shortcut: "শর্টকাট তৈরি করুন",
+        current_password: "বর্তমান পাসওয়ার্ড",
+        cut: 'কাট',
+        date_modified: 'তারিখ পরিবর্তন করা হয়েছে',
+        delete: 'মুছে ফেলা',
+        delete_permanently: "চিরতরে মুছে দাও",
+        deploy_as_app: 'অ্যাপ হিসাবে স্থাপন করুন',
+        descending: 'অধোগামী',
+        desktop_background_fit: "ফিট",
+        dir_published_as_website: `%strong% এতে প্রকাশিত হয়েছে:`,
+        disassociate_dir: "ডিসঅ্যাসোসিয়েট ডিরেক্টরি",
+        download: 'ডাউনলোড করুন',
+        downloading: "ডাউনলোড হচ্ছে",
+        email: "ইমেইল",
+        email_or_username: "ইমেল বা ব্যবহারকারীর নাম",
+        empty_trash: 'ট্র্যাশ খালি',
+        empty_trash_confirmation: `আপনি কি ট্র্যাশে থাকা আইটেমগুলিকে স্থায়ীভাবে মুছে দেওয়ার বিষয়ে নিশ্চিত?`,
+        emptying_trash: 'ট্র্যাশ খালি করা হচ্ছে...',
+        feedback: "প্রতিক্রিয়া",
+        feedback_c2a: "আমাদের আপনার প্রতিক্রিয়া, মন্তব্য, এবং বাগ রিপোর্ট পাঠাতে নীচের ফর্ম ব্যবহার করুন.",
+        feedback_sent_confirmation: "আমাদের সাথে যোগাযোগ করার জন্য আপনাকে ধন্যবাদ। আপনার অ্যাকাউন্টের সাথে যুক্ত কোনো ইমেল থাকলে, আপনি যত তাড়াতাড়ি সম্ভব আমাদের কাছ থেকে ফিরে পাবেন।",
+        forgot_pass_c2a: "পাসওয়ার্ড ভুলে গেছেন?",
+        from: "থেকে",
+        general: "সাধারণ",
+        get_a_copy_of_on_puter: `এর একটি কপি পান '%%' on Puter.com!`,
+        get_copy_link: 'অনুলিপি লিঙ্ক পান',
+        hide_all_windows: "সমস্ত উইন্ডোজ লুকান",
+        html_document: 'HTML নথি',
+        image: 'ছবি',
+        invite_link: "আমন্ত্রণ লিঙ্ক",
+        items_in_trash_cannot_be_renamed: `এই আইটেমটির নাম পরিবর্তন করা যাবে না কারণ এটি ট্র্যাশে রয়েছে৷ এই আইটেমটির নাম পরিবর্তন করতে, প্রথমে এটিকে ট্র্যাশ থেকে টেনে আনুন৷`,
+        jpeg_image: 'JPEG ছবি',
+        keep_in_taskbar: 'টাস্কবারে রাখুন',
+        log_in: "প্রবেশ করুন",
+        log_out: 'প্রস্থান',
+        move: 'সরান',
+        moving: "চলন্ত",
+        my_websites: "আমার ওয়েবসাইট",
+        name: 'নাম',
+        name_cannot_be_empty: 'নাম খালি রাখা যাবে না।',
+        name_cannot_contain_double_period: "নাম '..' অক্ষর হতে পারে না।",
+        name_cannot_contain_period: "নাম হতে পারে না '.' চরিত্র",
+        name_cannot_contain_slash: "নামে '/' অক্ষর থাকতে পারে না।",
+        name_must_be_string: "নাম শুধুমাত্র একটি স্ট্রিং হতে পারে.",
+        name_too_long: `নাম %% অক্ষরের বেশি হতে পারে না।`,
+        new: 'নতুন',
+        new_folder: 'নতুন ফোল্ডার',
+        new_password: "নতুন পাসওয়ার্ড",
+        new_username: "নতুন ব্যবহারকারীর নাম",
+        no_dir_associated_with_site: 'এই ঠিকানার সাথে সম্পর্কিত কোন ডিরেক্টরি নেই।',
+        no_websites_published: "আপনি এখনও কোনো ওয়েবসাইট প্রকাশ করেননি.",
+        ok: 'ঠিক আছে',
+        open: "খোলা",
+        open_in_new_tab: "নতুন ট্যাবে খুলুন",
+        open_in_new_window: "নতুন উইন্ডোতে খুলুন",
+        open_with: "সঙ্গে খোলা",
+        password: "পাসওয়ার্ড",
+        password_changed: "পাসওয়ার্ড পরিবর্তন.",
+        passwords_do_not_match: '`নতুন পাসওয়ার্ড` এবং `নিউ পাসওয়ার্ড নিশ্চিত করুন` মিলছে না।',
+        paste: 'পেস্ট করুন',
+        paste_into_folder: "ফোল্ডার আয়ে পেস্ট করুন",
+        pick_name_for_website: "আপনার ওয়েবসাইটের জন্য একটি নাম পছন্দ করুন:",
+        picture: "ছবি",
+        powered_by_puter_js: `দ্বারা চালিত <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
+        preparing: "প্রস্তুত হচ্ছে...",
+        preparing_for_upload: "আপলোডের জন্য প্রস্তুত হচ্ছে...",
+        properties: "বৈশিষ্ট্য",
+        publish: "প্রকাশ করুন",
+        publish_as_website: 'ওয়েবসাইট হিসাবে প্রকাশ করুন',
+        recent: "সাম্প্রতিক",
+        recover_password: "পাসওয়ার্ড রিকভার করুন",
+        refer_friends_c2a: "Puter-এ অ্যাকাউন্ট তৈরি এবং নিশ্চিত করা প্রত্যেক বন্ধুর জন্য 1 GB পান। আপনার বন্ধুও পাবেন 1 জিবি!",
+        refer_friends_social_media_c2a: `1 GB বিনামূল্যে সঞ্চয়স্থান পান Puter.com এ!`,
+        refresh: 'রিফ্রেশ',
+        release_address_confirmation: `আপনি কি এই ঠিকানাটি প্রকাশ করার বিষয়ে নিশ্চিত?`,
+        remove_from_taskbar:'টাস্কবার থেকে সরান',
+        rename: 'নাম পরিবর্তন করুন',
+        repeat: 'রিপিট করুন',
+        resend_confirmation_code: "কনফার্মেশন কোড আবার পাঠান",
+        restore: "পুনরুদ্ধার করুন",
+        save_account_to_get_copy_link: "এগিয়ে যেতে একটি অ্যাকাউন্ট তৈরি করুন.",
+        save_account_to_publish: 'এগিয়ে যেতে একটি অ্যাকাউন্ট তৈরি করুন.',
+        save_session_c2a: 'আপনার বর্তমান সেশন সংরক্ষণ করতে এবং আপনার কাজ হারানো এড়াতে একটি অ্যাকাউন্ট তৈরি করুন।',
+        scan_qr_c2a: 'অন্যান্য ডিভাইস থেকে এই সেশনে লগ ইন করতে নিচের কোডটি স্ক্যান করুন',
+        select: "নির্বাচন করুন",
+        select_color: 'রঙ নির্বাচন করুন...',
+        send: "পাঠান",
+        send_password_recovery_email: "পাসওয়ার্ড পুনরুদ্ধার ইমেল পাঠান",
+        session_saved: "একটি অ্যাকাউন্ট তৈরি করার জন্য আপনাকে ধন্যবাদ. এই অধিবেশন সংরক্ষণ করা হয়েছে.",
+        set_new_password: "নতুন পাসওয়ার্ড সেট করুন",
+        share_to: "শেয়ার করুন",
+        show_all_windows: "সমস্ত উইন্ডোজ দেখান",
+        show_hidden: 'লুকোনো জিনিষ দেখাও',
+        sign_in_with_puter: "Puter দিয়ে সাইন ইন করুন",
+        sign_up: "নিবন্ধন করুন",
+        signing_in: "সাইন ইন…",
+        size: 'আকার',
+        sort_by: 'ক্রমানুসার',
+        start: 'শুরু করুন',
+        taking_longer_than_usual: 'স্বাভাবিকের চেয়ে একটু বেশি সময় নিচ্ছে। অনুগ্রহপূর্বক অপেক্ষা করুন...',
+        text_document: 'পাঠ্য নথি',
+        tos_fineprint: `'ফ্রি অ্যাকাউন্ট তৈরি করুন'-এ ক্লিক করার মাধ্যমে আপনি Puter-এর <a href="https://puter.com/terms" target="_blank">পরিষেবার শর্তাবলী</a> এবং <a href="https://puter-এর সাথে সম্মত হন .com/privacy" target="_blank">গোপনীয়তা নীতি</a>।`,
+        trash: 'আবর্জনা',
+        type: 'টাইপ',
+        undo: 'পূর্বাবস্থায় ফেরান',
+        unzip: "আনজিপ করুন",
+        upload: 'আপলোড করুন',
+        upload_here: 'এখানে আপলোড করুন',
+        username: "ব্যবহারকারীর নাম",
+        username_changed: 'ব্যবহারকারীর নাম সফলভাবে আপডেট করা হয়েছে।',
+        versions: "সংস্করণ",
+        yes_release_it: 'হ্যাঁ, এটা ছেড়ে দিন',
+        you_have_been_referred_to_puter_by_a_friend: "আপনি একজন বন্ধু দ্বারা Puter উল্লেখ করা হয়েছে!",
+        zip: "জিপ"
+    }
+}
+
+export default bn;

+ 148 - 0
src/i18n/translations/da.js

@@ -0,0 +1,148 @@
+const da = {
+    name: "Dansk",
+    code: "da",
+    dictionary: {
+        access_granted_to: "Adgang givet til",
+        add_existing_account: "Tilføj eksisterende konto",
+        all_fields_required: "Alle felter er obligatoriske.",
+        apply: "Anvend",
+        ascending: "Stigende",
+        background: "Baggrund",
+        browse: "Gennemse",
+        cancel: "Annuller",
+        center: "Centrer",
+        change_desktop_background: "Skift skrivebordsbaggrund…",
+        change_language: "Skift sprog",
+        change_password: "Skift adgangskode",
+        change_username: "Skift brugernavn",
+        close_all_windows: "Luk alle vinduer",
+        color: "Farve",
+        confirm_account_for_free_referral_storage_c2a: "Opret en konto og bekræft din e-mailadresse for at modtage 1 GB gratis lagerplads. Din ven får også 1 GB gratis lagerplads.",
+        confirm_new_password: "Bekræft ny adgangskode",
+        contact_us: "Kontakt os",
+        contain: "Indehold",
+        continue: "Fortsæt",
+        copy: "Kopier",
+        copy_link: "Kopier link",
+        copying: "Kopierer",
+        cover: "Dæk",
+        create_account: "Opret konto",
+        create_free_account: "Opret gratis konto",
+        create_shortcut: "Opret genvej",
+        current_password: "Nuværende adgangskode",
+        cut: "Klip",
+        date_modified: "Ændringsdato",
+        delete: "Slet",
+        delete_permanently: "Slet permanent",
+        deploy_as_app: "Udrul som app",
+        descending: "Faldende",
+        desktop_background_fit: "Tilpas",
+        dir_published_as_website: "%strong% er offentliggjort på:",
+        disassociate_dir: "Fjern tilknytning fra mappe",
+        download: "Download",
+        downloading: "Downloader",
+        email: "E-mail",
+        email_or_username: "E-mail eller brugernavn",
+        empty_trash: "Tøm papirkurv",
+        empty_trash_confirmation: "Er du sikker på, at du vil slette alt i papirkurven permanent?",
+        emptying_trash: "Tømmer papirkurv…",
+        feedback: "Feedback",
+        feedback_c2a: "Brug venligst formularen nedenfor til at sende os din feedback, kommentarer og fejlrapporter.",
+        feedback_sent_confirmation: "Tak fordi du kontaktede os. Hvis du har en e-mail tilknyttet din konto, hører du fra os så hurtigt som muligt.",
+        forgot_pass_c2a: "Glemt adgangskode?",
+        from: "Fra",
+        general: "Generelt",
+        get_a_copy_of_on_puter: "Få en kopi af '%%' på Puter.com!",
+        get_copy_link: "Få kopilink",
+        hide_all_windows: "Skjul alle vinduer",
+        html_document: "HTML-dokument",
+        image: "Billede",
+        invite_link: "Invitationslink",
+        items_in_trash_cannot_be_renamed: "Dette emne kan ikke omdøbes, fordi det er i papirkurven. For at omdøbe dette emne, træk det først ud af papirkurven.",
+        jpeg_image: "JPEG-billede",
+        keep_in_taskbar: "Behold i proceslinjen",
+        log_in: "Log ind",
+        log_out: "Log ud",
+        move: "Flyt",
+        moving: "Flytter",
+        my_websites: "Mine websteder",
+        name: "Navn",
+        name_cannot_be_empty: "Navn kan ikke være tomt.",
+        name_cannot_contain_double_period: "Navn kan ikke indeholde '..'.",
+        name_cannot_contain_period: "Navn kan ikke indeholde '.'-tegnet.",
+        name_cannot_contain_slash: "Navn kan ikke indeholde '/'-tegnet.",
+        name_must_be_string: "Navn skal være en streng.",
+        name_too_long: "Navn kan ikke være længere end %% tegn.",
+        new: "Ny",
+        new_folder: "Ny mappe",
+        new_password: "Ny adgangskode",
+        new_username: "Nyt brugernavn",
+        no_dir_associated_with_site: "Ingen mappe er tilknyttet denne adresse.",
+        no_websites_published: "Du har ikke offentliggjort nogen websteder endnu.",
+        ok: "OK",
+        open: "Åbn",
+        open_in_new_tab: "Åbn i ny fane",
+        open_in_new_window: "Åbn i nyt vindue",
+        open_with: "Åbn med",
+        password: "Adgangskode",
+        password_changed: "Adgangskode ændret.",
+        passwords_do_not_match: "`Ny adgangskode` og `Bekræft ny adgangskode` stemmer ikke overens.",
+        paste: "Indsæt",
+        paste_into_folder: "Indsæt i mappe",
+        pick_name_for_website: "Vælg et navn til dit websted:",
+        picture: "Billede",
+        powered_by_puter_js: "Drevet af <a href=\"https://docs.puter.com/\" target=\"_blank\">Puter.js</a>",
+        preparing: "Forbereder...",
+        preparing_for_upload: "Forbereder upload...",
+        properties: "Egenskaber",
+        publish: "Offentliggør",
+        publish_as_website: "Offentliggør som websted",
+        recent: "Seneste",
+        recover_password: "Gendan adgangskode",
+        refer_friends_c2a: "Få 1 GB for hver ven, der opretter og bekræfter en konto på Puter. Din ven får også 1 GB.",
+        refer_friends_social_media_c2a: "Få 1 GB gratis lagerplads på Puter.com!",
+        refresh: "Opdater",
+        release_address_confirmation: "Er du sikker på, at du vil frigive denne adresse?",
+        remove_from_taskbar: "Fjern fra proceslinjen",
+        rename: "Omdøb",
+        repeat: "Gentag",
+        resend_confirmation_code: "Send bekræftelseskoden igen",
+        restore: "Gendan",
+        save_account_to_get_copy_link: "Opret venligst en konto for at fortsætte.",
+        save_account_to_publish: "Opret venligst en konto for at fortsætte.",
+        save_session_c2a: "Opret en konto for at gemme din nuværende session og undgå at miste dit arbejde.",
+        scan_qr_c2a: "Scan koden nedenfor for at logge ind på denne session fra andre enheder",
+        select: "Vælg",
+        select_color: "Vælg farve…",
+        send: "Send",
+        send_password_recovery_email: "Send e-mail til gendannelse af adgangskode",
+        session_saved: "Tak for at du oprettede en konto. Denne session er gemt.",
+        set_new_password: "Indstil ny adgangskode",
+        share_to: "Del til",
+        show_all_windows: "Vis alle vinduer",
+        show_hidden: "Vis skjulte",
+        sign_in_with_puter: "Log ind med Puter",
+        sign_up: "Tilmeld dig",
+        signing_in: "Logger ind…",
+        size: "Størrelse",
+        sort_by: "Sorter efter",
+        start: "Start",
+        taking_longer_than_usual: "Dette tager længere tid end sædvanligt. Vent venligst...",
+        text_document: "Tekstdokument",
+        tos_fineprint: "Ved at klikke på 'Opret gratis konto' accepterer du Puters <a href=\"https://puter.com/terms\" target=\"_blank\">servicevilkår</a> og <a href=\"https://puter.com/privacy\" target=\"_blank\">privatlivspolitik</a>.",
+        trash: "Papirkurv",
+        type: "Type",
+        undo: "Fortryd",
+        unzip: "Udpak",
+        upload: "Upload",
+        upload_here: "Upload her",
+        username: "Brugernavn",
+        username_changed: "Brugernavn opdateret.",
+        versions: "Versioner",
+        yes_release_it: "Ja, frigør den",
+        you_have_been_referred_to_puter_by_a_friend: "Du er blevet henvist til Puter af en ven!",
+        zip: "Zip"
+    }
+};
+
+export default da;

+ 148 - 0
src/i18n/translations/de.js

@@ -0,0 +1,148 @@
+const de = {
+    name: "Deutsch",
+    code: "de",
+    dictionary: {
+        access_granted_to: "Erlaubt zugriff auf",
+        add_existing_account: "Bestehenden Account hinzufügen",
+        all_fields_required: 'Alle felder müssen ausgefüllt werden.',
+        apply: "Anwenden",
+        ascending: 'Aufsteigend',
+        background: "Hintergrund",
+        browse: "Durchsuchen",
+        cancel: 'Abbrechen',
+        center: 'Mitte',
+        change_desktop_background: 'Desktophintergrundbild ändern…',
+        change_language: "Sprache ändern",
+        change_password: "Passwort ändern",
+        change_username: "Benutzername ändern",
+        close_all_windows: "Alle fenster schließen",
+        color: 'Farbe',
+        confirm_account_for_free_referral_storage_c2a: 'Erstellen Sie ein Konto und bestätigen Sie Ihre E-Mail-Adresse, um 1 GB kostenlosen Speicherplatz zu erhalten. Auch Ihr Freund erhält 1 GB kostenlosen Speicherplatz.',
+        confirm_new_password: "Neues Passwort bestätigen",
+        contact_us: "Kontaktiere uns",
+        contain: 'Füllen',
+        continue: "Weiter",
+        copy: 'Kopieren',
+        copy_link: "Link kopieren",
+        copying: "Kopiert",
+        cover: 'Abdecken',
+        create_account: "Account erstellen",
+        create_free_account: "Kostenlosen Account erstellen",
+        create_shortcut: "Verknüpfung erstellen",
+        current_password: "Aktuelles Passwort",
+        cut: 'Ausschneiden',
+        date_modified: 'Zuletzt geändert',
+        delete: 'Entfernen',
+        delete_permanently: "Permanent entfernen",
+        deploy_as_app: 'Als App bereitstellen',
+        descending: 'Herabsteigend',
+        desktop_background_fit: "Fit", //idk translation
+        dir_published_as_website: `%strong% Wurde veröffentlicht zu:`,
+        disassociate_dir: "Verzeichniss trennen",
+        download: 'Herunterladen',
+        downloading: "Lädt herunter",
+        email: "Email",
+        email_or_username: "Email oder Benutzername",
+        empty_trash: 'Papierkorb leeren',
+        empty_trash_confirmation: `Sind Sie sicher, dass Sie die Elemente im Papierkorb dauerhaft löschen möchten?`,
+        emptying_trash: 'Leert Papierkorb…',
+        feedback: "Feedback",
+        feedback_c2a: "Bitte verwenden Sie das untenstehende Formular, um uns Ihr Feedback, Ihre Kommentare und Fehlerberichte zu senden.",
+        feedback_sent_confirmation: "Danke, dass Sie uns kontaktiert haben. Wenn mit Ihrem Konto eine E-Mail-Adresse verknüpft ist, erhalten Sie so schnell wie möglich eine Rückmeldung von uns.",
+        forgot_pass_c2a: "Passwort vergessen?",
+        from: "Von",
+        general: "Allgemein",
+        get_a_copy_of_on_puter: `Bekomme eine Kopie von '%%' auf Puter.com!`,
+        get_copy_link: 'Holen Sie sich den Link zum Kopieren',
+        hide_all_windows: "Alle Fenster verstecken",
+        html_document: 'HTML-Dokument',
+        image: 'Bild',
+        invite_link: "Einladungslink",
+        items_in_trash_cannot_be_renamed: `Dieses Element kann nicht umbenannt werden, da es sich im Papierkorb befindet. Um dieses Element umzubenennen, ziehen Sie es zunächst aus dem Papierkorb.`,
+        jpeg_image: 'JPEG-Bild',
+        keep_in_taskbar: 'In der Taskleiste behalten',
+        log_in: "Einloggen",
+        log_out: 'Ausloggen',
+        move: 'Verschieben',
+        moving: "Verschiebt",
+        my_websites: "Meine Webseiten",
+        name: 'Name',
+        name_cannot_be_empty: 'Name kann nicht leer sein.',
+        name_cannot_contain_double_period: "Der Name kann nicht '..' sein.",
+        name_cannot_contain_period: "Der Name kann nicht '.' sein.",
+        name_cannot_contain_slash: "Der Name kann nicht '/' enthalten.",
+        name_must_be_string: "Name kann nur eine Zeichenfolge sein.",
+        name_too_long: `Der Name kann nicht länger als %% Zeichen sein.`,
+        new: 'Neu',
+        new_folder: 'Neuer Ordner',
+        new_password: "Neues Passwort",
+        new_username: "Neuer Benutzername",
+        no_dir_associated_with_site: 'Mit dieser Adresse ist kein Verzeichnis verknüpft.',
+        no_websites_published: "Sie haben noch keine Webseite veröffentlicht",
+        ok: 'OK',
+        open: "Öffnen",
+        open_in_new_tab: "Im neuen Tab öffnen",
+        open_in_new_window: "Im neuen Fenster öffnen",
+        open_with: "Öffnen mit",
+        password: "Passwort",
+        password_changed: "Passwort geändert.",
+        passwords_do_not_match: '`Neues Passwoer` und `Neues Passwort bestätigen` stimmen nicht überein.',
+        paste: 'Einfügen',
+        paste_into_folder: "In Ordner einfügen",
+        pick_name_for_website: "Wählen Sie einen Namen für Ihre Webseite:",
+        picture: "Bild",
+        powered_by_puter_js: `Betrieben von <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
+        preparing: "Bereitet vor...",
+        preparing_for_upload: "Bereitet für das Hochladen vor...",
+        properties: "Einstellungen",
+        publish: "Veröffentlichen",
+        publish_as_website: 'Als Webseite veröffentlichen',
+        recent: "Kürzlich",
+        recover_password: "Passwort wiederherstellen",
+        refer_friends_c2a: "Erhalten Sie 1 GB für jeden Freund, der ein Account bei Puter erstellt und bestätigt. Ihr Freund bekommt auch 1 GB!",
+        refer_friends_social_media_c2a: `Erhalten Sie 1 GB kostenlosen Speicherplatz auf Puter.com!`,
+        refresh: 'Neu laden',
+        release_address_confirmation: `Sind Sie sicher, dass Sie diese Adresse freigeben möchten?`,
+        remove_from_taskbar:'Von Taskleiste entfernen',
+        rename: 'Unbenennen',
+        repeat: 'Wiederholen',
+        resend_confirmation_code: "Bestätigungscode erneut senden",
+        restore: "Wiederherstellen",
+        save_account_to_get_copy_link: "Bitte erstellen Sie ein Acccount, um fortzufahren.",
+        save_account_to_publish: 'Bitte erstellen Sie ein Acccount, um fortzufahren.',
+        save_session_c2a: 'Erstellen Sie ein Konto, um Ihre aktuelle Sitzung zu speichern und den Verlust Ihrer Arbeit zu vermeiden.',
+        scan_qr_c2a: 'Scannen Sie den folgenden Code, um sich von anderen Geräten aus bei dieser Sitzung anzumelden',
+        select: "Auswählen",
+        select_color: 'Farbe auswählen…',
+        send: "Senden",
+        send_password_recovery_email: "Senden Sie eine E-Mail zur Passwortwiederherstellung",
+        session_saved: "Vielen Dank, dass Sie ein Konto erstellt haben. Diese Sitzung wurde gespeichert.",
+        set_new_password: "Neues Passwort erstellen",
+        share_to: "Teilen mit",
+        show_all_windows: "Alle Fenster zeigen",
+        show_hidden: 'Zeige versteckte',
+        sign_in_with_puter: "Einloggen mit Puter",
+        sign_up: "Einloggen",
+        signing_in: "Loggt ein…",
+        size: 'Größe',
+        sort_by: 'Sotieren nach',
+        start: 'Start',
+        taking_longer_than_usual: 'Dauert etwas länger als gewöhnlich. Bitte warten...',
+        text_document: 'Textdokument',
+        tos_fineprint: `Indem Sie auf „Kostenloses Konto erstellen“ klicken, stimmen Sie den <a href="https://puter.com/terms" target="_blank">Nutzungsbedingungen</a> und der <a href="https://puter.com/privacy" target="_blank">Datenschutzerklärung</a> von Puter zu.`,
+        trash: 'Papierkorb',
+        type: 'Typ',
+        undo: 'Zurück',
+        unzip: "Entpacken",
+        upload: 'Hochladen',
+        upload_here: 'Hier hochladen',
+        username: "Benutzername",
+        username_changed: 'Benutzername erfolgreich geändert.',
+        versions: "Versionen",
+        yes_release_it: 'Ja, veröffentlichen',
+        you_have_been_referred_to_puter_by_a_friend: "Sie wurden von einem Freund an Puter verwiesen!",
+        zip: "Zip",
+    }
+};
+
+export default de;

+ 148 - 0
src/i18n/translations/en.js

@@ -0,0 +1,148 @@
+const en = {
+    name: "English",
+    code: "en",
+    dictionary: {
+        access_granted_to: "Access Granted To",
+        add_existing_account: "Add Existing Account",
+        all_fields_required: 'All fields are required.',
+        apply: "Apply",
+        ascending: 'Ascending',
+        background: "Background",
+        browse: "Browse",
+        cancel: 'Cancel',
+        center: 'Center',
+        change_desktop_background: 'Change desktop background…',
+        change_language: "Change Language",
+        change_password: "Change Password",
+        change_username: "Change Username",
+        close_all_windows: "Close All Windows",
+        color: 'Color',
+        confirm_account_for_free_referral_storage_c2a: 'Create an account and confirm your email address to receive 1 GB of free storage. Your friend will get 1 GB of free storage too.',
+        confirm_new_password: "Confirm New Password",
+        contact_us: "Contact Us",
+        contain: 'Contain',
+        continue: "Continue",
+        copy: 'Copy',
+        copy_link: "Copy Link",
+        copying: "Copying",
+        cover: 'Cover',
+        create_account: "Create Account",
+        create_free_account: "Create Free Account",
+        create_shortcut: "Create Shortcut",
+        current_password: "Current Password",
+        cut: 'Cut',
+        date_modified: 'Date modified',
+        delete: 'Delete',
+        delete_permanently: "Delete Permanently",
+        deploy_as_app: 'Deploy as app',
+        descending: 'Descending',
+        desktop_background_fit: "Fit",
+        dir_published_as_website: `%strong% has been published to:`,
+        disassociate_dir: "Disassociate Directory",
+        download: 'Download',
+        downloading: "Downloading",
+        email: "Email",
+        email_or_username: "Email or Username",
+        empty_trash: 'Empty Trash',
+        empty_trash_confirmation: `Are you sure you want to permanently delete the items in Trash?`,
+        emptying_trash: 'Emptying Trash…',
+        feedback: "Feedback",
+        feedback_c2a: "Please use the form below to send us your feedback, comments, and bug reports.",
+        feedback_sent_confirmation: "Thank you for contacting us. If you have an email associated with your account, you will hear back from us as soon as possible.",
+        forgot_pass_c2a: "Forgot password?",
+        from: "From",
+        general: "General",
+        get_a_copy_of_on_puter: `Get a copy of '%%' on Puter.com!`,
+        get_copy_link: 'Get Copy Link',
+        hide_all_windows: "Hide All Windows",
+        html_document: 'HTML document',
+        image: 'Image',
+        invite_link: "Invite Link",
+        items_in_trash_cannot_be_renamed: `This item can't be renamed because it's in the trash. To rename this item, first drag it out of the Trash.`,
+        jpeg_image: 'JPEG image',
+        keep_in_taskbar: 'Keep in Taskbar',
+        log_in: "Log In",
+        log_out: 'Log Out',
+        move: 'Move',
+        moving: "Moving",
+        my_websites: "My Websites",
+        name: 'Name',
+        name_cannot_be_empty: 'Name cannot be empty.',
+        name_cannot_contain_double_period: "Name can not be the '..' character.",
+        name_cannot_contain_period: "Name can not be the '.' character.",
+        name_cannot_contain_slash: "Name cannot contain the '/' character.",
+        name_must_be_string: "Name can only be a string.",
+        name_too_long: `Name can not be longer than %% characters.`,
+        new: 'New',
+        new_folder: 'New folder',
+        new_password: "New Password",
+        new_username: "New Username",
+        no_dir_associated_with_site: 'No directory associated with this address.',
+        no_websites_published: "You have not published any websites yet.",
+        ok: 'OK',
+        open: "Open",
+        open_in_new_tab: "Open in New Tab",
+        open_in_new_window: "Open in New Window",
+        open_with: "Open With",
+        password: "Password",
+        password_changed: "Password changed.",
+        passwords_do_not_match: '`New Password` and `Confirm New Password` do not match.',
+        paste: 'Paste',
+        paste_into_folder: "Paste Into Folder",
+        pick_name_for_website: "Pick a name for your website:",
+        picture: "Picture",
+        powered_by_puter_js: `Powered by <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
+        preparing: "Preparing...",
+        preparing_for_upload: "Preparing for upload...",
+        properties: "Properties",
+        publish: "Publish",
+        publish_as_website: 'Publish as website',
+        recent: "Recent",
+        recover_password: "Recover Password",
+        refer_friends_c2a: "Get 1 GB for every friend who creates and confirms an account on Puter. Your friend will get 1 GB too!",
+        refer_friends_social_media_c2a: `Get 1 GB of free storage on Puter.com!`,
+        refresh: 'Refresh',
+        release_address_confirmation: `Are you sure you want to release this address?`,
+        remove_from_taskbar:'Remove from Taskbar',
+        rename: 'Rename',
+        repeat: 'Repeat',
+        resend_confirmation_code: "Re-send Confirmation Code",
+        restore: "Restore",
+        save_account_to_get_copy_link: "Please create an account to proceed.",
+        save_account_to_publish: 'Please create an account to proceed.',
+        save_session_c2a: 'Create an account to save your current session and avoid losing your work.',
+        scan_qr_c2a: 'Scan the code below to log into this session from other devices',
+        select: "Select",
+        select_color: 'Select color…',
+        send: "Send",
+        send_password_recovery_email: "Send Password Recovery Email",
+        session_saved: "Thank you for creating an account. This session has been saved.",
+        set_new_password: "Set New Password",
+        share_to: "Share to",
+        show_all_windows: "Show All Windows",
+        show_hidden: 'Show hidden',
+        sign_in_with_puter: "Sign in with Puter",
+        sign_up: "Sign Up",
+        signing_in: "Signing in…",
+        size: 'Size',
+        sort_by: 'Sort by',
+        start: 'Start',
+        taking_longer_than_usual: 'Taking a little longer than usual. Please wait...',
+        text_document: 'Text document',
+        tos_fineprint: `By clicking 'Create Free Account' you agree to Puter's <a href="https://puter.com/terms" target="_blank">Terms of Service</a> and <a href="https://puter.com/privacy" target="_blank">Privacy Policy</a>.`,
+        trash: 'Trash',
+        type: 'Type',
+        undo: 'Undo',
+        unzip: "Unzip",
+        upload: 'Upload',
+        upload_here: 'Upload here',
+        username: "Username",
+        username_changed: 'Username updated successfully.',
+        versions: "Versions",
+        yes_release_it: 'Yes, Release It',
+        you_have_been_referred_to_puter_by_a_friend: "You have been referred to Puter by a friend!",
+        zip: "Zip",
+    }
+};
+
+export default en;

+ 148 - 0
src/i18n/translations/fa.js

@@ -0,0 +1,148 @@
+const fa = {
+    name: "فارسی",
+    code: "fa",
+    dictionary: {
+        access_granted_to: "دسترسی داده شده به",
+        add_existing_account: "افزودن حساب کاربری موجود",
+        all_fields_required: 'تمامی فیلدها الزامی هستند.',
+        apply: "اعمال",
+        ascending: 'صعودی',
+        background: "پس زمینه",
+        browse: "مرور",
+        cancel: 'لغو',
+        center: 'مرکز',
+        change_desktop_background: 'تغییر پس زمینه دسکتاپ…',
+        change_language: "تغییر زبان",
+        change_password: "تغییر رمز عبور",
+        change_username: "تغییر نام کاربری",
+        close_all_windows: "بستن همه پنجره ها",
+        color: 'رنگ',
+        confirm_account_for_free_referral_storage_c2a: 'حساب کاربری خود را ایجاد کرده و آدرس ایمیل خود را تأیید کنید تا 1 گیگابایت فضای ذخیره سازی رایگان دریافت کنید. دوست شما هم 1 گیگابایت فضای ذخیره سازی رایگان دریافت خواهد کرد.',
+        confirm_new_password: "تأیید رمز عبور جدید",
+        contact_us: "تماس با ما",
+        contain: 'شامل',
+        continue: "ادامه",
+        copy: 'کپی',
+        copy_link: "کپی لینک",
+        copying: "کپی",
+        cover: 'جلد',
+        create_account: "ایجاد حساب کاربری",
+        create_free_account: "ایجاد حساب کاربری رایگان",
+        create_shortcut: "ایجاد میانبر",
+        current_password: "رمز عبور فعلی",
+        cut: 'برش',
+        date_modified: 'تاریخ تغییر',
+        delete: 'حذف',
+        delete_permanently: "حذف دائمی",
+        deploy_as_app: 'نصب به عنوان برنامه',
+        descending: 'نزولی',
+        desktop_background_fit: "متناسب",
+        dir_published_as_website: `%strong% منتشر شده به:`,
+        disassociate_dir: "قطع ارتباط دایرکتوری",
+        download: 'دانلود',
+        downloading: "دانلود",
+        email: "ایمیل",
+        email_or_username: "ایمیل یا نام کاربری",
+        empty_trash: 'خالی کردن سطل زباله',
+        empty_trash_confirmation: `آیا از حذف دائمی موارد در سطل زباله مطمئن هستید؟`,
+        emptying_trash: 'خالی کردن سطل زباله…',
+        feedback: "بازخورد",
+        feedback_c2a: "لطفا از فرم زیر برای ارسال بازخورد، نظرات و گزارش خطا استفاده کنید.",
+        feedback_sent_confirmation: "با تشکر از تماس شما. اگر ایمیلی به حساب کاربری شما متصل است، در اسرع وقت پاسخ خواهیم داد.",
+        forgot_pass_c2a: "رمز عبور را فراموش کرده اید؟",
+        from: "از",
+        general: "عمومی",
+        get_a_copy_of_on_puter: `یک نسخه از '%%' را در Puter.com بگیرید!`,
+        get_copy_link: 'گرفتن لینک کپی',
+        hide_all_windows: "پنهان کردن همه پنجره ها",
+        html_document: 'سند HTML',
+        image: 'تصویر',
+        invite_link: "لینک دعوت",
+        items_in_trash_cannot_be_renamed: `این مورد نمی تواند تغییر نام دهد زیرا در سطل زباله است. برای تغییر نام این مورد، ابتدا آن را از سطل زباله بیرون بکشید.`,
+        jpeg_image: 'تصویر JPEG',
+        keep_in_taskbar: 'در نوار وظایف نگه دارید',
+        log_in: "ورود",
+        log_out: 'خروج',
+        move: 'انتقال',
+        moving: "انتقال",
+        my_websites: "وبسایت های من",
+        name: 'نام',
+        name_cannot_be_empty: 'نام نمی تواند خالی باشد.',
+        name_cannot_contain_double_period: "نام نمی تواند شامل '..' باشد.",
+        name_cannot_contain_period: "نام نمی تواند شامل '.' باشد.",
+        name_cannot_contain_slash: "نام نمی تواند شامل '/' باشد.",
+        name_must_be_string: "نام فقط می تواند یک رشته باشد.",
+        name_too_long: `نام نمی تواند بیشتر از %% کاراکتر باشد.`,
+        new: 'جدید',
+        new_folder: 'پوشه جدید',
+        new_password: "رمز عبور جدید",
+        new_username: "نام کاربری جدید",
+        no_dir_associated_with_site: 'هیچ دایرکتوری مرتبط با این آدرس وجود ندارد.',
+        no_websites_published: "هنوز هیچ وبسایتی منتشر نکرده اید.",
+        ok: 'خوب',
+        open: "باز کردن",
+        open_in_new_tab: "در تب جدید باز کن",
+        open_in_new_window: "در پنجره جدید باز کن",
+        open_with: "باز کردن با",
+        password: "رمز عبور",
+        password_changed: "رمز عبور تغییر یافت.",
+        passwords_do_not_match: '`رمز عبور جدید` و `تأیید رمز عبور جدید` مطابقت ندارند.',
+        paste: 'چسباندن',
+        paste_into_folder: "چسباندن در پوشه",
+        pick_name_for_website: "یک نام برای وبسایت خود انتخاب کنید:",
+        picture: "تصویر",
+        powered_by_puter_js: `پشتیبانی شده توسط <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
+        preparing: "در حال آماده سازی...",
+        preparing_for_upload: "آماده سازی برای بارگذاری...",
+        properties: "ویژگی ها",
+        publish: "انتشار",
+        publish_as_website: 'انتشار به عنوان وبسایت',
+        recent: "اخیر",
+        recover_password: "بازیابی رمز عبور",
+        refer_friends_c2a: "برای هر دوستی که حساب کاربری Puter ایجاد و تأیید کند، 1 گیگابایت دریافت کنید. دوست شما هم 1 گیگابایت دریافت خواهد کرد!",
+        refer_friends_social_media_c2a: `1 گیگابایت فضای ذخیره سازی رایگان را در Puter.com بگیرید!`,
+        refresh: 'تازه کردن',
+        release_address_confirmation: `آیا مطمئن هستید که می خواهید این آدرس را آزاد کنید؟`,
+        remove_from_taskbar:'از نوار وظایف حذف کن',
+        rename: 'تغییر نام',
+        repeat: 'تکرار',
+        resend_confirmation_code: "ارسال مجدد کد تأیید",
+        restore: "بازیابی",
+        save_account_to_get_copy_link: "لطفا برای ادامه یک حساب کاربری ایجاد کنید.",
+        save_account_to_publish: 'لطفا برای ادامه یک حساب کاربری ایجاد کنید.',
+        save_session_c2a: 'برای ذخیره جلسه فعلی و جلوگیری از از دست دادن کار خود یک حساب کاربری ایجاد کنید.',
+        scan_qr_c2a: 'کد زیر را از دستگاه های دیگر اسکن کنید تا به این جلسه وارد شوید',
+        select: "انتخاب",
+        select_color: 'انتخاب رنگ…',
+        send: "ارسال",
+        send_password_recovery_email: "ارسال ایمیل بازیابی رمز عبور",
+        session_saved: "با تشکر از ایجاد حساب کاربری. این جلسه ذخیره شده است.",
+        set_new_password: "تنظیم رمز عبور جدید",
+        share_to: "اشتراک گذاری به",
+        show_all_windows: "نمایش همه پنجره ها",
+        show_hidden: 'نمایش مخفی',
+        sign_in_with_puter: "ورود با Puter",
+        sign_up: "ثبت نام",
+        signing_in: "ورود…",
+        size: 'اندازه',
+        sort_by: 'مرتب سازی بر اساس',
+        start: 'شروع',
+        taking_longer_than_usual: 'کمی بیشتر از معمول طول می کشد. لطفا صبر کنید...',
+        text_document: 'سند متنی',
+        tos_fineprint: `با کلیک بر روی 'ایجاد حساب کاربری رایگان' شما با <a href="https://puter.com/terms" target="_blank">شرایط خدمات</a> و <a href="https://puter.com/privacy" target="_blank">سیاست حفظ حریم خصوصی</a> Puter موافقت می کنید.`,
+        trash: 'سطل زباله',
+        type: 'نوع',
+        undo: 'بازگشت',
+        unzip: "باز کردن فایل فشرده",
+        upload: 'بارگذاری',
+        upload_here: 'اینجا بارگذاری کنید',
+        username: "نام کاربری",
+        username_changed: 'نام کاربری با موفقیت به روز شد.',
+        versions: "نسخه ها",
+        yes_release_it: 'بله، آن را آزاد کن',
+        you_have_been_referred_to_puter_by_a_friend: "شما توسط یک دوست به Puter معرفی شده اید!",
+        zip: "فشرده سازی",
+    }
+};
+
+export default fa;

+ 207 - 0
src/i18n/translations/fi.js

@@ -0,0 +1,207 @@
+const fi = {
+    name: "Suomi",
+    code: "fi",
+    dictionary: {
+        access_granted_to: "Käyttöoikeus Myönnetty",
+        add_existing_account: "Lisää Olemassaoleva Tili",
+        all_fields_required: 'Kaikki kentät on täytettävä.',
+
+        apply: "Apply", // TODO: Ambiguous meaning
+        // To apply(a principle) => "Sovella" or
+        // Apply for(a job) "Hae" or 
+        // Apply as(an engineer) => "Hakeudu" or
+        // Apply an expression => "Applikoi" or - Probably the most appropriate in the context of the app
+        // Apply in the sense of applying something, like a tool => "Käytä"
+
+        ascending: 'Nouseva',
+        background: "Tausta",
+        browse: "Selaa",
+        cancel: 'Peruuta',
+        center: 'Keskus',
+        change_desktop_background: 'Vaihda työpöydän taustakuvaa…',
+        change_password: "Muuta Salasana",
+        change_username: "Muuta Käyttäjänimeä",
+        close_all_windows: "Sulje Kaikki Ikkunat",
+        color: 'Väri',
+        confirm_account_for_free_referral_storage_c2a: 'Luo tili ja vahvista sähköpostiosoitteesi saadaksesi 1 Gt ilmaista tallennustilaa. Myös kaverisi saa 1 Gt ilmaista tallennustilaa.',
+        confirm_new_password: "Vahvista Uusi Salasana",
+        contact_us: "Ota Yhteyttä",
+
+        contain: 'Contain', // TODO: Ambiguous meaning
+        // "inside(a house)" => "Sisällä" - probably more appropriate
+        // "contain within" => "Sisältää"
+
+        continue: "Jatka",
+
+        copy: 'Copy', // TODO: Lexical categories
+        // Noun "A copy of something" => 'Kopio' or
+        // Verb "To copy something" => 'Kopioi'?
+
+        copy_link: "Kopioi Linkki",
+        copying: "Kopioidaan",
+
+        cover: 'Cover', // TODO: Lexical categories
+        // Noun (shelter) => 'Suoja' or 
+        // Noun (lid) => 'Kansi' or
+        // Intransitive Verb (To occlude something) => 'Peitä' or
+        // Transitive Verb (To cover for someone) => 'Suojaa'
+
+        create_account: "Luo Tili",
+        create_free_account: "Luo Ilmainen Tili",
+        create_shortcut: "Luo Pikakuvake",
+        current_password: "Nykyinen Salasana",
+        cut: 'Leikkaa',
+        date_modified: 'Muutospäivämäärä',
+        delete: 'Poista',
+        delete_permanently: "Poista Pysyvästi",
+        deploy_as_app: 'Levitä sovelluksena',
+        descending: 'Laskeva',
+        desktop_background_fit: "Sovita",
+        dir_published_as_website: `%strong% on julkaistu osoitteessa:`,
+        disassociate_dir: "Erota Hakemisto",
+        download: 'Lataa',
+        downloading: "Ladataan",
+        email: "Sähköposti",
+        email_or_username: "Sähköposti tai Käyttäjänimi",
+        empty_trash: 'Tyhjennä Roskakori',
+        empty_trash_confirmation: `Oletko varma, että haluat poistaa Roskakorin kohteet pysyvästi?`,
+        emptying_trash: 'Tyhjennetään Roskakori…',
+        feedback: "Palaute",
+        feedback_c2a: "Käytä alla olevaa lomaketta lähettääksesi meille palautetta, kommentteja ja vikailmoituksia.",
+        feedback_sent_confirmation: "Kiitos yhteydenotosta. Jos sinulla on tiliisi liittyvä sähköpostiosoite, saat meiltä vastauksen mahdollisimman pian.",
+        forgot_pass_c2a: "Unohditko Salasanasi?",
+
+        from: "From", // TODO: Context dependent, examples
+        // "from address" => "osoitteesta" or
+        // "from sender" => "lähettäjältä".
+        // In the finnish language these are usually translated as case suffixes.
+        // "From Person" gets the suffix "-ltä", being the combination of "Henkilö(Person) and ltä(From)"
+
+        general: "General", // TODO: Conceptual ambiguity
+        // "general (about something)" => "Yleistä" or
+        // "military general" => "Kenraali"
+
+        get_a_copy_of_on_puter: `Hanki '%%' -kopio Puter.com-sivustolta!`, // TODO: Very difficult ambiguity due to different case suffix for any possible word that you can substitue here. Can stay as is, but it's not exactly correct.
+
+        get_copy_link: 'Get Copy Link', // TODO: Ambiguous meaning
+        // 'get a copy of a link' => 'Ota Kopio Linkkiin' or
+        // 'get a link to the copy' => 'Ota Linkki Kopioon' - More probable, just want to be sure
+
+        hide_all_windows: "Piilota Kaikki Ikkunat",
+        html_document: 'HTML-dokumentti',
+        image: 'Kuva',
+        invite_link: "Kutsulinkki",
+        items_in_trash_cannot_be_renamed: `Tätä kohdetta ei voi nimetä uudelleen, koska se on roskakorissa. Jos haluat nimetä kohteen uudelleen, raahaa se ensin pois roskakorista.`,
+        jpeg_image: 'JPEG-kuva',
+        keep_in_taskbar: 'Pidä tehtäväpalkissa',
+        log_in: "Kirjaudu Sisään",
+        log_out: 'Kirjaudu Ulos',
+        move: 'Siirrä',
+        moving: "Siirretään",
+        my_websites: "Verkkosivustoni",
+        name: 'Nimi',
+        name_cannot_be_empty: 'Nimi ei voi olla tyhjä.',
+
+        name_cannot_contain_double_period: "Name can not be the '..' character.", // TODO: definition says a different thing, than the string
+        // "Name can not be the '..' character." => "Nimi ei voi olla '..'-merkki." or
+        // "Name can not contain the '..' character." => "Nimi ei voi sisältää merkkiä '..'."
+
+        name_cannot_contain_period: "Name can not be the '.' character.", // TODO: definition says a different thing, than the string
+        // "Name can not be the '.' character." => "Nimi ei voi olla '.'-merkki." or
+        // "Name can not contain the '.' character." => "Nimi ei voi sisältää merkkiä '.'."
+
+        name_cannot_contain_slash: "Nimi ei voi sisältää merkkiä '/'.",
+        name_must_be_string: "Nimi voi olla vain merkkijono.",
+        name_too_long: `Nimi ei voi olla pidempi kuin %% merkkiä.`,
+        new: 'Uusi',
+        new_folder: 'Uusi kansio',
+        new_password: "Uusi Salasana",
+        new_username: "Uusi Käyttäjänimi",
+        no_dir_associated_with_site: 'Osoitteeseen ei liity mitään hakemistoa.',
+        no_websites_published: "Et ole vielä julkaissut yhtään verkkosivustoa.",
+        ok: 'OK',
+        open: "Avaa",
+        open_in_new_tab: "Avaa uudessa Välilehdessä",
+        open_in_new_window: "Avaa uudessa Ikkunassa",
+
+        open_with: "Open With", // TODO: Context dependent
+        // "Open" => "Avaa", can be "Avaa..." in this context or
+        // "Open With" is often translated in the context of "Open With Application" => "Avaa Sovelluksessa"
+
+        password: "Salasana",
+        password_changed: "Salasana vaihdettu.",
+        passwords_do_not_match: '`Uusi Salasana` ja `Vahvista Uusi Salasana` eivät täsmää.',
+        paste: 'Liitä',
+        paste_into_folder: "Liitä Kansioon",
+        pick_name_for_website: "Valitse nimi verkkosivustollesi:",
+        picture: "Kuva",
+        powered_by_puter_js: `Tämän Mahdollistaa <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
+        preparing: "Valmistellaan...",
+        preparing_for_upload: "Valmistellaan latausta...",
+        properties: "Ominaisuudet",
+        publish: "Julkaise",
+        publish_as_website: 'Julkaise verkkosivustona',
+        recent: "Viimeisimmät",
+        recover_password: "Palauta Salasana",
+        refer_friends_c2a: "Saat 1 Gt tilaa jokaisesta kaverista, joka luo ja vahvistaa tilin Puterissa. Myös kaverisi saa 1 Gt tilaa!",
+        refer_friends_social_media_c2a: `Hanki 1 Gt ilmaista tallennustilaa Puter.comista!`,
+        refresh: 'Päivitä',
+
+        release_address_confirmation: `Are you sure you want to release this address?`, // TODO: Slight ambiguity between the meaning of "release"
+        // "get rid of" => "Oletko varma, että haluat luovuttaa tämän osoitteen?" or
+        // "publish" => "Oletko varma, että haluat julkaista tämän osoitteen?"
+
+        remove_from_taskbar:'Poista Tehtäväpalkista',
+        rename: 'Nimeä uudelleen',
+        repeat: 'Toista',
+        resend_confirmation_code: "Lähetä Vahvistuskoodi Uudelleen",
+        restore: "Palauta",
+        save_account_to_get_copy_link: "Luo tili jatkaaksesi.",
+        save_account_to_publish: 'Luo tili jatkaaksesi.',
+        save_session_c2a: 'Luo tili tallentaaksesi nykyisen istuntosi ja välttyäksesi työn menettämiseltä.',
+        scan_qr_c2a: 'Skannaa alla oleva koodi kirjautuaksesi tähän istuntoon muista laitteista',
+        select: "Valitse",
+        select_color: 'Valitse väri…',
+        send: "Lähetä",
+        send_password_recovery_email: "Lähetä Salasanan Palautussähköposti",
+        session_saved: "Kiitos tilin luomisesta. Tämä istunto on tallennettu.",
+        set_new_password: "Aseta Uusi Salasana",
+
+        share_to: "Share to", // TODO: Grammatical ambiguity
+        // The base form of "Share" is "Jaa". So maybe "Jaa..." is appropriate?
+        // If "share to" is followed by the name of a user, it will not make any sense, as the name can be suffixed by for example "Jaa %%lle".
+
+        show_all_windows: "Näytä Kaikki Ikkunat",
+        show_hidden: 'Näytä piilotettu',
+        sign_in_with_puter: "Kirjaudu sisään Puterilla",
+        sign_up: "Rekisteröidy",
+        signing_in: "Kirjaudutaan sisään…",
+        size: 'Koko',
+        sort_by: 'Lajittele:',
+        start: 'Käynnistä',
+        taking_longer_than_usual: 'Kestää hieman tavallista kauemmin. Odottakaa...',
+        text_document: 'Tekstiasiakirja',
+        tos_fineprint: `Klikkaamalla 'Luo ilmainen tili' hyväksyt Puterin käyttöehdot ja tietosuojakäytännön.`,
+
+        trash: 'Trash', // TODO: Ambiguous meaning
+        // "Trash" is oft used to just mean "Trash bin" => 'Roskakori' or
+        // "Trash" by itself => 'Roska'
+
+        type: 'Type', // TODO: Ambiguous meaning
+        // "Type of an object" => 'Tyyppi' or
+        // "Type on the keyboard" => 'Kirjoita'
+
+        undo: 'Kumoa',
+        unzip: "Pura zip",
+        upload: 'Lataa',
+        upload_here: 'Lataa tähän',
+        username: "Käyttäjänimi",
+        username_changed: 'Käyttäjänimi päivitetty onnistuneesti.',
+        versions: "Versiot",
+        yes_release_it: 'Kyllä, Julkaise Se',
+        you_have_been_referred_to_puter_by_a_friend: "Kaverisi on kutsunut sinut Puterille!",
+        zip: "Zip",
+    }
+}
+
+export default fi;

+ 148 - 0
src/i18n/translations/fr.js

@@ -0,0 +1,148 @@
+const fr = {
+    name: "Français",
+    code: "fr",
+    dictionary: {
+        access_granted_to: "Accès accordé à",
+        add_existing_account: "Ajouter un compte existant",
+        all_fields_required: 'All fields are required.',
+        apply: "Appliquer",
+        ascending: 'Ascending',
+        background: "Background",
+        browse: "Browse",
+        cancel: 'Annuler',
+        center: 'Center',
+        change_desktop_background: 'Changer l’arrière-plan du bureau…',
+        change_language: "Changer de langue",
+        change_password: "Changer de mot de passe",
+        change_username: "Changer de nom d'ulilisateur",
+        close_all_windows: "Fermer toutes les fenêtres",
+        color: 'Couleur',
+        confirm_account_for_free_referral_storage_c2a: 'Créez un compte et confirmez votre adresse e-mail pour recevoir 1 Go de stockage gratuit. Votre ami bénéficiera également de 1 Go de stockage gratuit.',
+        confirm_new_password: "Confirmez le nouveau mot de passe",
+        contact_us: "Nous contacter",
+        contain: 'Contain',
+        continue: "Continuer",
+        copy: 'Copier',
+        copy_link: "Copier le lien",
+        copying: "Copying",
+        cover: 'Cover',
+        create_account: "Créer un compte",
+        create_free_account: "Créer un compte gratuit",
+        create_shortcut: "Créer un raccourci",
+        current_password: "Mot de passe actuel",
+        cut: 'Couper',
+        date_modified: 'Date de modification',
+        delete: 'Supprimer',
+        delete_permanently: "Supprimer définitivement",
+        deploy_as_app: 'Deployer en tant qu\'application',
+        descending: 'Décroissant',
+        desktop_background_fit: "Ajuster",
+        dir_published_as_website: `%strong% a été publié sur :`,
+        disassociate_dir: "Dissocier le répertoire",
+        download: 'Télécharger',
+        downloading: "Téléchargement en cours",
+        email: "Email",
+        email_or_username: "Email ou nom d'utilisateur",
+        empty_trash: 'Vider la corbeille',
+        empty_trash_confirmation: `Êtes-vous sûr de vouloir supprimer définitivement les éléments de la corbeille ?`,
+        emptying_trash: 'Vidage de la corbeille...',
+        feedback: "Envoyer des commentaires",
+        feedback_c2a: "Veuillez utiliser le formulaire ci-dessous pour nous envoyer vos retours, commentaires et rapports de bugs.",
+        feedback_sent_confirmation: "Merci de nous avoir contactés. Si vous avez un e-mail associé à votre compte, vous recevrez une réponse de notre part dans les plus brefs délais.",
+        forgot_pass_c2a: "Mot de passe oublier?",
+        from: "De",
+        general: "Général",
+        get_a_copy_of_on_puter: `Obtenez une copie de '%%' sur Puter.com!`,
+        get_copy_link: 'Obtenir le lien de copie',
+        hide_all_windows: "Masquer toutes les fenêtres",
+        html_document: 'Document HTML',
+        image: 'Image',
+        invite_link: "Lien d'invitation",
+        items_in_trash_cannot_be_renamed: `Cet élément ne peut pas être renommé car il se trouve dans la corbeille. Pour renommer cet élément, faites-le d'abord glisser hors de la corbeille.`,
+        jpeg_image: 'Image JPEG',
+        keep_in_taskbar: 'Garder dans la barre des tâches',
+        log_in: "Se connecter",
+        log_out: 'Déconnexion',
+        move: 'Déplacer',
+        moving: "Déplacement en cours",
+        my_websites: "Mes sites internet",
+        name: 'Nom',
+        name_cannot_be_empty: 'Le nom ne peut pas être vide.',
+        name_cannot_contain_double_period: "Le nom ne peut pas être le caractère '..'.",
+        name_cannot_contain_period: "Le nom ne peut pas être le caractère '.'.",
+        name_cannot_contain_slash: "Le nom ne peut pas contenir le caractère '/'.",
+        name_must_be_string: "Le nom peut uniquement être une chaîne.",
+        name_too_long: `Le nom ne peut pas contenir plus de %% caractères.`,
+        new: 'Nouveau',
+        new_folder: 'Nouveau dossier',
+        new_password: "Nouveau mot de passe",
+        new_username: "Nouveau nom d'utilisateur",
+        no_dir_associated_with_site: 'Aucun répertoire associé à cette adresse.',
+        no_websites_published: "Vous n'avez pas encore publié de sites internet.",
+        ok: 'OK',
+        open: "Ouvrir",
+        open_in_new_tab: "Ouvrir dans un nouvel onglet",
+        open_in_new_window: "Ouvrir dans une nouvelle fenêtre",
+        open_with: "Ouvrir avec",
+        password: "Mot de passe",
+        password_changed: "Mot de passe modifié.",
+        passwords_do_not_match: '\'Nouveau mot de passe\' et \'Confirmer le nouveau mot de passe\' ne correspondent pas.',
+        paste: 'Coller',
+        paste_into_folder: "Coller dans le dossier",
+        pick_name_for_website: "Choisissez un nom pour votre site Web :",
+        picture: "Image",
+        powered_by_puter_js: `Alimenté par <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
+        preparing: "Préparation...",
+        preparing_for_upload: "Préparation du chargement...",
+        properties: "Propriétés",
+        publish: "Publier",
+        publish_as_website: 'Publier en tant que site internet',
+        recent: "Récent",
+        recover_password: "Récupérer le mot de passe",
+        refer_friends_c2a: "Obtenez 1 Go pour chaque ami qui crée et confirme un compte sur Puter. Votre ami recevra également 1 Go !",
+        refer_friends_social_media_c2a: `Obtenez 1 Go de stockage gratuit sur Puter.com !`,
+        refresh: 'Actualiser',
+        release_address_confirmation: `Êtes-vous sûr de vouloir libérer cette adresse ?`,
+        remove_from_taskbar:'Retirer de la barre des tâches',
+        rename: 'Renomer',
+        repeat: 'Répéter',
+        resend_confirmation_code: "Renvoyer le code de confirmation",
+        restore: "Restorer",
+        save_account_to_get_copy_link: "Veuillez créer un compte pour continuer",
+        save_account_to_publish: 'Veuillez créer un compte pour continuer.',
+        save_session_c2a: 'Créez un compte pour sauvegarder votre session en cours et éviter de perdre votre travail.',
+        scan_qr_c2a: 'Scannez le code ci-dessous pour vous connecter à cette session depuis d\'autres appareils',
+        select: "Sélectionner",
+        select_color: 'Sélectionner une couleur...',
+        send: "Envoyer",
+        send_password_recovery_email: "Envoyer un e-mail de récupération de mot de passe",
+        session_saved: "Merci d'avoir créé un compte. Cette session a été sauvegardée.",
+        set_new_password: "Definir un nouveau mot de passe",
+        share_to: "Partager à",
+        show_all_windows: "Afficher toutes les fenêtres",
+        show_hidden: 'Afficher les éléments cachés',
+        sign_in_with_puter: "Se connecter avec Puter",
+        sign_up: "S'inscrire",
+        signing_in: "Connexion…",
+        size: 'Taille',
+        sort_by: 'Trier par',
+        start: 'Démarrer',
+        taking_longer_than_usual: 'Cela prend un peu plus de temps que d\'habitude. Veuillez patienter...',
+        text_document: 'Document texte',
+        tos_fineprint: `En cliquant sur "Créer un compte gratuit", vous acceptez les <a href="https://puter.com/terms" target="_blank">conditions d'utilisation</a> et la <a href="https://puter .com/privacy" target="_blank">politique de confidentialité</a>.`,
+        trash: 'Corbeille',
+        type: 'Type',
+        undo: 'Annuler',
+        unzip: "Décompresser",
+        upload: 'Charger',
+        upload_here: 'Charger ici',
+        username: "Nom d'utilisateur",
+        username_changed: 'Nom d\'utilisateur mis à jour avec succès.',
+        versions: "Versions",
+        yes_release_it: 'Oui, libérez-la',
+        you_have_been_referred_to_puter_by_a_friend: "Vous avez été référé à Puter par un ami !",
+        zip: "Compresser",
+    }
+}
+
+export default fr;

+ 148 - 0
src/i18n/translations/it.js

@@ -0,0 +1,148 @@
+const it = {
+    name: "Italiano",
+    code: "it",
+    dictionary: {
+        access_granted_to: "Accesso garantito a",
+        add_existing_account: "Aggiungi un account esistente",
+        all_fields_required: 'Tutte le caselle sono richieste.',
+        apply: "Applica",
+        ascending: 'Ascendente',
+        background: "Sfondo",
+        browse: "Sfoglia",
+        cancel: 'Annulla',
+        center: 'Centra ',
+        change_desktop_background: 'Modifica sfondo…',
+        change_language: "Cambia lingua",
+        change_password: "Modifica password",
+        change_username: "Modifica Nome Utente",
+        close_all_windows: "Chiudi tutte le finestre",
+        color: 'Colore',
+        confirm_account_for_free_referral_storage_c2a: 'Crea un account e conferma la tua email per ricevere 1 GB di spazio di archiviazione gratuito. Anche il tuo amico riceverà dello spazio extra!',
+        confirm_new_password: "Conferma la nuova Password",
+        contact_us: "Contattaci",
+        contain: 'Contiene',
+        continue: "Continua",
+        copy: 'Copia',
+        copy_link: "Copia il link",
+        copying: "Copia in corso",
+        cover: 'Cover',
+        create_account: "Crea Account",
+        create_free_account: "Crea un account gratis",
+        create_shortcut: "Crea Scorciatoia",
+        current_password: "Password corrente",
+        cut: 'Taglia',
+        date_modified: 'Data ultima modifica',
+        delete: 'Elimina',
+        delete_permanently: "Elimina permanentemente",
+        deploy_as_app: 'Distribuisci come Applicazione',
+        descending: 'Discendente',
+        desktop_background_fit: "Adatta",
+        dir_published_as_website: `%strong% è stato pubblicato su:`,
+        disassociate_dir: "Dissocia la Directory",
+        download: 'Scarica',
+        downloading: "Download in corso",
+        email: "Email",
+        email_or_username: "Email o Nome Utente",
+        empty_trash: 'Svuota Cestino',
+        empty_trash_confirmation: `Sei sicuro di voler svuotare il cestino?`,
+        emptying_trash: 'Il cestino si sta svuotando…',
+        feedback: "Feedback",
+        feedback_c2a: "Usa il form qua sotto per inviarci feedback, commenti, e segnalarci dei bug.",
+        feedback_sent_confirmation: "Grazie per averci contattato. Se hai un indirizzo email associato al tuo account, ti ricontatteremo il prima possibile.",
+        forgot_pass_c2a: "Password dimenticata?",
+        from: "Da",
+        general: "Generale",
+        get_a_copy_of_on_puter: `Ottieni una copia di '%%' su Puter.com!`,
+        get_copy_link: 'Ottieni link di copia',
+        hide_all_windows: "Nascondi tutte le finestre",
+        html_document: 'Documento HTML',
+        image: 'Immagine',
+        invite_link: "Link d’invito",
+        items_in_trash_cannot_be_renamed: `Impossibile rinominare un elemento nel Cestino. Per rinominarlo, è necessario ripristinarlo.`,
+        jpeg_image: 'Immagine JPEG',
+        keep_in_taskbar: 'Blocca nella barra delle applicazioni',
+        log_in: "Accedi",
+        log_out: 'Disconnettiti',
+        move: 'Sposta',
+        moving: "Spostamento in corso",
+        my_websites: "I miei siti web",
+        name: 'Nome',
+        name_cannot_be_empty: 'Il nome non può essere vuoto.',
+        name_cannot_contain_double_period: "Il nome non può contenere '..' .",
+        name_cannot_contain_period: "Il nome non può contenere '.' .",
+        name_cannot_contain_slash: "Il nome non può contenere '/' .",
+        name_must_be_string: "Il nome può contenere una sola linea.",
+        name_too_long: `Il nome non può essere più lungo di %% caratteri.`,
+        new: 'Nuovo',
+        new_folder: 'Nuova Cartella',
+        new_password: "Nuova Password",
+        new_username: "Nuovo Nome Utente",
+        no_dir_associated_with_site: 'Nessuna directory è stata associata all’indirizzo.',
+        no_websites_published: "Non hai pubblicato nessun sito web.",
+        ok: 'OK',
+        open: "Apri",
+        open_in_new_tab: "Apri in una nuova scheda",
+        open_in_new_window: "Apri in una nuova finestra",
+        open_with: "Apri con",
+        password: "Password",
+        password_changed: "Password modificata.",
+        passwords_do_not_match: 'Le caselle `Nuova Password` and `Conferma Nuova Password` non corrispondono.',
+        paste: 'Incolla',
+        paste_into_folder: "Incolla nella cartella",
+        pick_name_for_website: "Scegli un nome per il tuo sito web:",
+        picture: "Immagine",
+        powered_by_puter_js: `Powered by <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
+        preparing: "Preparazione in corso...",
+        preparing_for_upload: "Preparazione per l’upload...",
+        properties: "Proprietà",
+        publish: "Pubblica",
+        publish_as_website: 'Pubblica come sito web',
+        recent: "Recenti",
+        recover_password: "Ripristina la Password",
+        refer_friends_c2a: "Ottieni 1 GB di spazio di archiviazione per ogni amico che crea un account e conferma l’email su Puter. Anche il tuo amico riceverà dello spazio extra!",
+        refer_friends_social_media_c2a: `Ottieni 1GB di spazio di spazio di archiviazione gratuito su Puter.com!`,
+        refresh: 'Ricarica',
+        release_address_confirmation: `Sei sicuro di voler liberare questo indirizzo?`,
+        remove_from_taskbar:'Sblocca dalla barra delle applicazioni',
+        rename: 'Rinomina',
+        repeat: 'Ripeti',
+        resend_confirmation_code: "Invia di nuovo il codice di conferma",
+        restore: "Ripristina",
+        save_account_to_get_copy_link: "È necessario creare un account per procedere.",
+        save_account_to_publish: 'È necessario creare un account per procedere.',
+        save_session_c2a: 'Crea un account per salvare la tua sessione e non perdere i tuoi dati.',
+        scan_qr_c2a: 'Scansiona il codice qua sotto per utilizzare questa sessione da altri dispositivi',
+        select: "Seleziona",
+        select_color: 'Seleziona un colore…',
+        send: "Invia",
+        send_password_recovery_email: "Invia Email per il ripristino della password",
+        session_saved: "Grazie per aver creato un account. La sessione è stata salvata",
+        set_new_password: "Imposta una nuova Password",
+        share_to: "Condividi con",
+        show_all_windows: "Mostra tutte le finestre",
+        show_hidden: 'Mostra nascosti',
+        sign_in_with_puter: "Accedi con Puter",
+        sign_up: "Registrati",
+        signing_in: "Accesso in corso…",
+        size: 'Dimensione',
+        sort_by: 'Ordina per',
+        start: 'Start',
+        taking_longer_than_usual: 'Il processo in corso ci sta mettendo più del solito. Attendere prego...',
+        text_document: 'Documento di testo',
+        tos_fineprint: `Cliccando su 'Crea un account gratis' accetti i <a href="https://puter.com/terms" target="_blank">Termini di Servizio</a> e l'<a href="https://puter.com/privacy" target="_blank">Informativa sulla Privacy</a> di Puter.`,
+        trash: 'Cestino',
+        type: 'Tipo',
+        undo: 'Annulla',
+        unzip: "Unzip",
+        upload: 'Carica',
+        upload_here: 'Carica qui',
+        username: "Nome Utente",
+        username_changed: 'Nome utente aggiornato con successo.',
+        versions: "Versioni",
+        yes_release_it: 'Si, rilascialo',
+        you_have_been_referred_to_puter_by_a_friend: "Sei stato invitato su Puter da un amico!",
+        zip: "Zip",
+    }
+}
+
+export default it;

+ 148 - 0
src/i18n/translations/ko.js

@@ -0,0 +1,148 @@
+const ko = {
+    name: "한국어",
+    code: "ko",
+    dictionary: {
+        access_granted_to: "접근 권한 부여",
+        add_existing_account: "기존 계정 추가",
+        all_fields_required: '모든 필드는 필수입니다.',
+        apply: "적용",
+        ascending: '오름차순',
+        background: "배경",
+        browse: "찾아보기",
+        cancel: '취소',
+        center: '중앙',
+        change_desktop_background: '바탕 화면 배경 변경…',
+        change_language: "언어 변경",
+        change_password: "비밀번호 변경",
+        change_username: "사용자 이름 변경",
+        close_all_windows: "모든 창 닫기",
+        color: '색상',
+        confirm_account_for_free_referral_storage_c2a: '계정을 생성하고 이메일 주소를 확인하여 1GB의 무료 저장 공간을 받으십시오. 친구도 1GB의 무료 저장 공간을 받게 됩니다.',
+        confirm_new_password: "새 비밀번호 확인",
+        contact_us: "문의하기",
+        contain: '포함',
+        continue: "계속",
+        copy: '복사',
+        copy_link: "링크 복사",
+        copying: "복사 중",
+        cover: '표지',
+        create_account: "계정 생성",
+        create_free_account: "무료 계정 생성",
+        create_shortcut: "바로 가기 만들기",
+        current_password: "현재 비밀번호",
+        cut: '잘라내기',
+        date_modified: '수정한 날짜',
+        delete: '삭제',
+        delete_permanently: "영구 삭제",
+        deploy_as_app: '앱으로 배포',
+        descending: '내림차순',
+        desktop_background_fit: "맞추기",
+        dir_published_as_website: `%strong% 다음에 게시되었습니다:`,
+        disassociate_dir: "디렉토리 연결 해제",
+        download: '다운로드',
+        downloading: "다운로드 중",
+        email: "이메일",
+        email_or_username: "이메일 또는 사용자 이름",
+        empty_trash: '휴지통 비우기',
+        empty_trash_confirmation: `휴지통의 항목을 영구적으로 삭제하시겠습니까?`,
+        emptying_trash: '휴지통 비우는 중…',
+        feedback: "피드백",
+        feedback_c2a: "아래 양식을 사용하여 피드백, 의견 및 버그 보고를 보내십시오.",
+        feedback_sent_confirmation: "문의해 주셔서 감사합니다. 계정에 이메일이 연결되어 있으면 가능한 빨리 회신 드리겠습니다.",
+        forgot_pass_c2a: "비밀번호를 잊으셨나요?",
+        from: "보낸 사람",
+        general: "일반",
+        get_a_copy_of_on_puter: `Puter.com에서 '%%'의 사본을 받으세요!`,
+        get_copy_link: '링크 복사',
+        hide_all_windows: "모든 창 숨기기",
+        html_document: 'HTML 문서',
+        image: '이미지',
+        invite_link: "초대 링크",
+        items_in_trash_cannot_be_renamed: `이 항목은 휴지통에 있기 때문에 이름을 바꿀 수 없습니다. 이 항목의 이름을 바꾸려면 먼저 휴지통에서 끌어내십시오.`,
+        jpeg_image: 'JPEG 이미지',
+        keep_in_taskbar: '작업 표시줄에 유지',
+        log_in: "로그인",
+        log_out: '로그아웃',
+        move: '이동',
+        moving: "이동 중",
+        my_websites: "내 웹사이트",
+        name: '이름',
+        name_cannot_be_empty: '이름은 비워둘 수 없습니다.',
+        name_cannot_contain_double_period: "이름은 '..' 문자일 수 없습니다.",
+        name_cannot_contain_period: "이름은 '.' 문자일 수 없습니다.",
+        name_cannot_contain_slash: "이름에 '/' 문자를 포함할 수 없습니다.",
+        name_must_be_string: "이름은 문자열만 가능합니다.",
+        name_too_long: `이름은 %%자보다 길 수 없습니다.`,
+        new: '새로운',
+        new_folder: '새 폴더',
+        new_password: "새 비밀번호",
+        new_username: "새 사용자 이름",
+        no_dir_associated_with_site: '이 주소에 연결된 디렉토리가 없습니다.',
+        no_websites_published: "아직 웹사이트를 게시하지 않았습니다.",
+        ok: '확인',
+        open: "열기",
+        open_in_new_tab: "새 탭에서 열기",
+        open_in_new_window: "새 창에서 열기",
+        open_with: "열기 방법",
+        password: "비밀번호",
+        password_changed: "비밀번호가 변경되었습니다.",
+        passwords_do_not_match: '`새 비밀번호`와 `새 비밀번호 확인`이 일치하지 않습니다.',
+        paste: '붙여넣기',
+        paste_into_folder: "폴더에 붙여넣기",
+        pick_name_for_website: "웹사이트 이름을 선택하세요:",
+        picture: "사진",
+        powered_by_puter_js: `Powered by <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
+        preparing: "준비 중...",
+        preparing_for_upload: "업로드 준비 중...",
+        properties: "속성",
+        publish: "게시",
+        publish_as_website: '웹사이트로 게시',
+        recent: "최근",
+        recover_password: "비밀번호 찾기",
+        refer_friends_c2a: "Puter에서 계정을 생성하고 확인한 친구마다 1GB를 받으십시오. 친구도 1GB를 받게 됩니다!",
+        refer_friends_social_media_c2a: `Puter.com에서 1GB의 무료 저장 공간을 받으십시오!`,
+        refresh: '새로 고침',
+        release_address_confirmation: `이 주소를 해제하시겠습니까?`,
+        remove_from_taskbar:'작업 표시줄에서 제거',
+        rename: '이름 바꾸기',
+        repeat: '반복',
+        resend_confirmation_code: "확인 코드 다시 보내기",
+        restore: "복원",
+        save_account_to_get_copy_link: "계속하려면 계정을 생성하십시오.",
+        save_account_to_publish: '계속하려면 계정을 생성하십시오.',
+        save_session_c2a: '현재 세션을 저장하고 작업을 잃지 않으려면 계정을 생성하십시오.',
+        scan_qr_c2a: '다른 기기에서 이 세션으로 로그인하려면 아래 코드를 스캔하십시오',
+        select: "선택",
+        select_color: '색상 선택…',
+        send: "보내기",
+        send_password_recovery_email: "비밀번호 복구 이메일 보내기",
+        session_saved: "계정을 생성해 주셔서 감사합니다. 이 세션이 저장되었습니다.",
+        set_new_password: "새 비밀번호 설정",
+        share_to: "공유",
+        show_all_windows: "모든 창 표시",
+        show_hidden: '숨김 항목 표시',
+        sign_in_with_puter: "Puter로 로그인",
+        sign_up: "가입",
+        signing_in: "로그인 중…",
+        size: '크기',
+        sort_by: '정렬 기준',
+        start: '시작',
+        taking_longer_than_usual: '보통보다 조금 더 오래 걸립니다. 잠시만 기다려 주십시오...',
+        text_document: '텍스트 문서',
+        tos_fineprint: `무료 계정 생성을 클릭하면 Puter의 <a href="https://puter.com/terms" target="_blank">서비스 약관</a>과 <a href="https://puter.com/privacy" target="_blank">개인정보 보호정책</a>에 동의하는 것입니다.`,
+        trash: '휴지통',
+        type: '유형',
+        undo: '실행 취소',
+        unzip: "압축 해제",
+        upload: '업로드',
+        upload_here: '여기에 업로드',
+        username: "사용자 이름",
+        username_changed: '사용자 이름이 성공적으로 업데이트되었습니다.',
+        versions: "버전",
+        yes_release_it: '예, 해제합니다',
+        you_have_been_referred_to_puter_by_a_friend: "친구가 Puter로 추천했습니다!",
+        zip: "압축",
+    }
+};
+
+export default ko;

+ 148 - 0
src/i18n/translations/nb.js

@@ -0,0 +1,148 @@
+const nb = {
+    name: "Norsk Bokmål",
+    code: "nb",
+    dictionary: {
+        access_granted_to: "Tilgang gitt til",
+        add_existing_account: "Legg til eksisterende konto",
+        all_fields_required: "Alle felt er obligatoriske.",
+        apply: "Bruk",
+        ascending: "Stigende",
+        background: "Bakgrunn",
+        browse: "Bla gjennom",
+        cancel: "Avbryt",
+        center: "Sentrer",
+        change_desktop_background: "Endre skrivebordsbakgrunn…",
+        change_language: "Endre språk",
+        change_password: "Endre passord",
+        change_username: "Endre brukernavn",
+        close_all_windows: "Lukk alle vinduer",
+        color: "Farge",
+        confirm_account_for_free_referral_storage_c2a: "Opprett en konto og bekreft e-postadressen din for å motta 1 GB gratis lagringsplass. Din venn vil også få 1 GB gratis lagringsplass.",
+        confirm_new_password: "Bekreft nytt passord",
+        contact_us: "Kontakt oss",
+        contain: "Inneholde",
+        continue: "Fortsett",
+        copy: "Kopier",
+        copy_link: "Kopier lenke",
+        copying: "Kopierer",
+        cover: "Dekke",
+        create_account: "Opprett konto",
+        create_free_account: "Opprett gratis konto",
+        create_shortcut: "Opprett snarvei",
+        current_password: "Nåværende passord",
+        cut: "Klipp ut",
+        date_modified: "Endret dato",
+        delete: "Slett",
+        delete_permanently: "Slett permanent",
+        deploy_as_app: "Distribuer som app",
+        descending: "Synkende",
+        desktop_background_fit: "Tilpass",
+        dir_published_as_website: "%strong% er publisert på:",
+        disassociate_dir: "Fjern tilknytning fra mappe",
+        download: "Last ned",
+        downloading: "Laster ned",
+        email: "E-post",
+        email_or_username: "E-post eller brukernavn",
+        empty_trash: "Tøm papirkurv",
+        empty_trash_confirmation: "Er du sikker på at du vil slette alt i papirkurven permanent?",
+        emptying_trash: "Tømmer papirkurv…",
+        feedback: "Tilbakemelding",
+        feedback_c2a: "Vennligst bruk skjemaet nedenfor for å sende oss din tilbakemelding, kommentarer og feilrapporter.",
+        feedback_sent_confirmation: "Takk for at du kontaktet oss. Hvis du har en e-post knyttet til kontoen din, vil du høre fra oss så snart som mulig.",
+        forgot_pass_c2a: "Glemt passord?",
+        from: "Fra",
+        general: "Generelt",
+        get_a_copy_of_on_puter: "Få en kopi av '%%' på Puter.com!",
+        get_copy_link: "Få kopilenke",
+        hide_all_windows: "Skjul alle vinduer",
+        html_document: "HTML-dokument",
+        image: "Bilde",
+        invite_link: "Invitasjonslenke",
+        items_in_trash_cannot_be_renamed: "Dette elementet kan ikke omdøpes fordi det er i papirkurven. For å omdøpe dette elementet, dra det først ut av papirkurven.",
+        jpeg_image: "JPEG-bilde",
+        keep_in_taskbar: "Behold i oppgavelinjen",
+        log_in: "Logg inn",
+        log_out: "Logg ut",
+        move: "Flytt",
+        moving: "Flytter",
+        my_websites: "Mine nettsteder",
+        name: "Navn",
+        name_cannot_be_empty: "Navn kan ikke være tomt.",
+        name_cannot_contain_double_period: "Navn kan ikke inneholde '..'.",
+        name_cannot_contain_period: "Navn kan ikke inneholde '.'-tegnet.",
+        name_cannot_contain_slash: "Navn kan ikke inneholde '/'-tegnet.",
+        name_must_be_string: "Navn kan bare være en streng.",
+        name_too_long: "Navn kan ikke være lengre enn %% tegn.",
+        new: "Ny",
+        new_folder: "Ny mappe",
+        new_password: "Nytt passord",
+        new_username: "Nytt brukernavn",
+        no_dir_associated_with_site: "Ingen mappe er tilknyttet denne adressen.",
+        no_websites_published: "Du har ikke publisert noen nettsteder ennå.",
+        ok: "OK",
+        open: "Åpne",
+        open_in_new_tab: "Åpne i ny fane",
+        open_in_new_window: "Åpne i nytt vindu",
+        open_with: "Åpne med",
+        password: "Passord",
+        password_changed: "Passord endret.",
+        passwords_do_not_match: "`Nytt passord` og `Bekreft nytt passord` stemmer ikke overens.",
+        paste: "Lim inn",
+        paste_into_folder: "Lim inn i mappe",
+        pick_name_for_website: "Velg et navn for nettstedet ditt:",
+        picture: "Bilde",
+        powered_by_puter_js: "Drevet av <a href=\"https://docs.puter.com/\" target=\"_blank\">Puter.js</a>",
+        preparing: "Forbereder...",
+        preparing_for_upload: "Forbereder opplasting...",
+        properties: "Egenskaper",
+        publish: "Publiser",
+        publish_as_website: "Publiser som nettsted",
+        recent: "Nylig",
+        recover_password: "Gjenopprett passord",
+        refer_friends_c2a: "Få 1 GB for hver venn som oppretter og bekrefter en konto på Puter. Vennen din får også 1 GB.",
+        refer_friends_social_media_c2a: "Få 1 GB gratis lagringsplass på Puter.com!",
+        refresh: "Oppdater",
+        release_address_confirmation: "Er du sikker på at du vil frigi denne adressen?",
+        remove_from_taskbar: "Fjern fra oppgavelinjen",
+        rename: "Gi nytt navn",
+        repeat: "Gjenta",
+        resend_confirmation_code: "Send bekreftelseskoden på nytt",
+        restore: "Gjenopprett",
+        save_account_to_get_copy_link: "Vennligst opprett en konto for å fortsette.",
+        save_account_to_publish: "Vennligst opprett en konto for å fortsette.",
+        save_session_c2a: "Opprett en konto for å lagre gjeldende økt og unngå å miste arbeidet ditt.",
+        scan_qr_c2a: "Skann koden nedenfor for å logge inn på denne økten fra andre enheter",
+        select: "Velg",
+        select_color: "Velg farge…",
+        send: "Send",
+        send_password_recovery_email: "Send e-post for gjenoppretting av passord",
+        session_saved: "Takk for at du opprettet en konto. Denne økten er lagret.",
+        set_new_password: "Angi nytt passord",
+        share_to: "Del",
+        show_all_windows: "Vis alle vinduer",
+        show_hidden: "Vis skjulte",
+        sign_in_with_puter: "Logg inn med Puter",
+        sign_up: "Registrer deg",
+        signing_in: "Logger inn…",
+        size: "Størrelse",
+        sort_by: "Sorter etter",
+        start: "Start",
+        taking_longer_than_usual: "Dette tar litt lenger tid enn vanlig. Vennligst vent...",
+        text_document: "Tekstdokument",
+        tos_fineprint: "Ved å klikke på 'Opprett gratis konto' godtar du Puters <a href=\"https://puter.com/terms\" target=\"_blank\">tjenestevilkår</a> og <a href=\"https://puter.com/privacy\" target=\"_blank\">personvernpolicy</a>.",
+        trash: "Papirkurv",
+        type: "Type",
+        undo: "Angre",
+        unzip: "Pakk ut",
+        upload: "Last opp",
+        upload_here: "Last opp her",
+        username: "Brukernavn",
+        username_changed: "Brukernavn oppdatert.",
+        versions: "Versjoner",
+        yes_release_it: "Ja, frigi den",
+        you_have_been_referred_to_puter_by_a_friend: "Du har blitt henvist til Puter av en venn!",
+        zip: "Zip"
+    }
+};
+
+export default nb;

+ 148 - 0
src/i18n/translations/nn.js

@@ -0,0 +1,148 @@
+const nn = {
+    name: "Norsk Nynorsk",
+    code: "nn",
+    dictionary: {
+        access_granted_to: "Tilgang gjeven til",
+        add_existing_account: "Legg til eksisterande konto",
+        all_fields_required: "Alle felt er obligatoriske.",
+        apply: "Bruk",
+        ascending: "Stigande",
+        background: "Bakgrunn",
+        browse: "Bla gjennom",
+        cancel: "Avbryt",
+        center: "Sentrer",
+        change_desktop_background: "Endre skrivebordsbakgrunn…",
+        change_language: "Endre språk",
+        change_password: "Endre passord",
+        change_username: "Endre brukarnamn",
+        close_all_windows: "Lukk alle vindauge",
+        color: "Farge",
+        confirm_account_for_free_referral_storage_c2a: "Opprett ein konto og stadfest e-postadressa di for å få 1 GB gratis lagringsplass. Vennen din vil òg få 1 GB gratis lagringsplass.",
+        confirm_new_password: "Stadfest nytt passord",
+        contact_us: "Kontakt oss",
+        contain: "Inneheld",
+        continue: "Hald fram",
+        copy: "Kopier",
+        copy_link: "Kopier lenkje",
+        copying: "Kopierer",
+        cover: "Dekk",
+        create_account: "Opprett konto",
+        create_free_account: "Opprett gratis konto",
+        create_shortcut: "Opprett snarveg",
+        current_password: "Noeverande passord",
+        cut: "Klipp ut",
+        date_modified: "Endra dato",
+        delete: "Slett",
+        delete_permanently: "Slett permanent",
+        deploy_as_app: "Distribuer som app",
+        descending: "Synkande",
+        desktop_background_fit: "Tilpass",
+        dir_published_as_website: "%strong% er publisert på:",
+        disassociate_dir: "Fjern tilknyting frå mappe",
+        download: "Last ned",
+        downloading: "Lastar ned",
+        email: "E-post",
+        email_or_username: "E-post eller brukarnamn",
+        empty_trash: "Tøm papirkorg",
+        empty_trash_confirmation: "Er du sikker på at du vil slette alt i papirkorga permanent?",
+        emptying_trash: "Tømmer papirkorg…",
+        feedback: "Tilbakemelding",
+        feedback_c2a: "Vennligst bruk skjemaet nedanfor for å sende oss din tilbakemelding, kommentarar og feilrapportar.",
+        feedback_sent_confirmation: "Takk for at du kontakta oss. Om du har ein e-post knytt til kontoen din, vil du høyre frå oss så snart som mogleg.",
+        forgot_pass_c2a: "Gløymt passord?",
+        from: "Frå",
+        general: "Generelt",
+        get_a_copy_of_on_puter: "Få ein kopi av '%%' på Puter.com!",
+        get_copy_link: "Få kopilenkje",
+        hide_all_windows: "Skjul alle vindauge",
+        html_document: "HTML-dokument",
+        image: "Bilete",
+        invite_link: "Invitasjonslenkje",
+        items_in_trash_cannot_be_renamed: "Dette elementet kan ikkje omdøypast fordi det er i papirkorga. For å omdøype dette elementet, dra det først ut av papirkorga.",
+        jpeg_image: "JPEG-bilete",
+        keep_in_taskbar: "Behald i oppgåvelinja",
+        log_in: "Logg inn",
+        log_out: "Logg ut",
+        move: "Flytt",
+        moving: "Flyttar",
+        my_websites: "Mine nettstader",
+        name: "Namn",
+        name_cannot_be_empty: "Namn kan ikkje vere tomt.",
+        name_cannot_contain_double_period: "Namn kan ikkje innehalde '..'.",
+        name_cannot_contain_period: "Namn kan ikkje innehalde '.'-teiknet.",
+        name_cannot_contain_slash: "Namn kan ikkje innehalde '/'-teiknet.",
+        name_must_be_string: "Namn må vere ein streng.",
+        name_too_long: "Namn kan ikkje vere lengre enn %% teikn.",
+        new: "Ny",
+        new_folder: "Ny mappe",
+        new_password: "Nytt passord",
+        new_username: "Nytt brukarnamn",
+        no_dir_associated_with_site: "Ingen mappe er tilknytt denne adressa.",
+        no_websites_published: "Du har ikkje publisert nokre nettstader enno.",
+        ok: "OK",
+        open: "Opne",
+        open_in_new_tab: "Opne i ny fane",
+        open_in_new_window: "Opne i nytt vindauge",
+        open_with: "Opne med",
+        password: "Passord",
+        password_changed: "Passord endra.",
+        passwords_do_not_match: "`Nytt passord` og `Stadfest nytt passord` stemmer ikkje overeins.",
+        paste: "Lim inn",
+        paste_into_folder: "Lim inn i mappe",
+        pick_name_for_website: "Vel eit namn for nettstaden din:",
+        picture: "Bilete",
+        powered_by_puter_js: "Dreve av <a href=\"https://docs.puter.com/\" target=\"_blank\">Puter.js</a>",
+        preparing: "Førebur…",
+        preparing_for_upload: "Førebur opplasting…",
+        properties: "Eigenskapar",
+        publish: "Publiser",
+        publish_as_website: "Publiser som nettstad",
+        recent: "Nyleg",
+        recover_password: "Gjenopprett passord",
+        refer_friends_c2a: "Få 1 GB for kvar ven som opprettar og stadfestar ein konto på Puter. Vennen din får òg 1 GB.",
+        refer_friends_social_media_c2a: "Få 1 GB gratis lagringsplass på Puter.com!",
+        refresh: "Oppdater",
+        release_address_confirmation: "Er du sikker på at du vil sleppe denne adressa?",
+        remove_from_taskbar: "Fjern frå oppgåvelinja",
+        rename: "Gje nytt namn",
+        repeat: "Gjenta",
+        resend_confirmation_code: "Send stadfestingskoden på nytt",
+        restore: "Gjenopprett",
+        save_account_to_get_copy_link: "Vennligst opprett ein konto for å halde fram.",
+        save_account_to_publish: "Vennligst opprett ein konto for å halde fram.",
+        save_session_c2a: "Opprett ein konto for å lagre gjeldande økt og unngå å miste arbeidet ditt.",
+        scan_qr_c2a: "Skann koden nedanfor for å logge inn på denne økta frå andre einingar",
+        select: "Vel",
+        select_color: "Vel farge…",
+        send: "Send",
+        send_password_recovery_email: "Send e-post for gjenoppretting av passord",
+        session_saved: "Takk for at du oppretta ein konto. Denne økta er lagra.",
+        set_new_password: "Set nytt passord",
+        share_to: "Del",
+        show_all_windows: "Vis alle vindauge",
+        show_hidden: "Vis skjulte",
+        sign_in_with_puter: "Logg inn med Puter",
+        sign_up: "Registrer deg",
+        signing_in: "Logger inn…",
+        size: "Storleik",
+        sort_by: "Sorter etter",
+        start: "Start",
+        taking_longer_than_usual: "Dette tar litt lengre tid enn vanleg. Vennligst vent...",
+        text_document: "Tekstdokument",
+        tos_fineprint: "Ved å klikke på 'Opprett gratis konto' godtek du Puters <a href=\"https://puter.com/terms\" target=\"_blank\">tenestevilkår</a> og <a href=\"https://puter.com/privacy\" target=\"_blank\">personvernpolitikk</a>.",
+        trash: "Papirkorg",
+        type: "Type",
+        undo: "Angra",
+        unzip: "Pakk ut",
+        upload: "Last opp",
+        upload_here: "Last opp her",
+        username: "Brukarnamn",
+        username_changed: "Brukarnamn oppdatert.",
+        versions: "Versjonar",
+        yes_release_it: "Ja, slepp den",
+        you_have_been_referred_to_puter_by_a_friend: "Du har blitt referert til Puter av ein ven!",
+        zip: "Zip"
+    }
+};
+
+export default nn;

+ 147 - 0
src/i18n/translations/ro.js

@@ -0,0 +1,147 @@
+const ro = {
+    name: "Română",
+    code: "ro",
+    dictionary: {
+        access_granted_to: "Acces acordat pentru",
+        add_existing_account: "Adaugă cont existent",
+        all_fields_required: 'Toate câmpurile sunt necesare.',
+        apply: "Aplică",
+        ascending: 'Ascendent',
+        background: "Background",
+        browse: "Caută",
+        cancel: 'Anulează',
+        center: 'Center',
+        change_desktop_background: 'Schimbă imaginea de fundal…',
+        change_password: "Schimbă Parola",
+        change_username: "Schimbă Numele",
+        close_all_windows: "Inchide toate ferestrele",
+        color: 'Culoare',
+        confirm_account_for_free_referral_storage_c2a: 'Creați un cont și confirmați adresa de e-mail pentru a primi 1 GB de spațiu de stocare gratuit. Și prietenul tău va primi 1 GB de spațiu de stocare gratuit.',
+        confirm_new_password: "Confirmă Parola Nouă",
+        contact_us: "Contactează-ne",
+        contain: 'Contain',
+        continue: "Continuă",
+        copy: 'Copiază',
+        copy_link: "Copiază link",
+        copying: "Se copiază",
+        cover: 'Cover',
+        create_account: "Crează un cont",
+        create_free_account: "Crează un cont gratuit",
+        create_shortcut: "Crează o scurtătură",
+        current_password: "Parola Curentă",
+        cut: 'Taie',
+        date_modified: 'Dată modificată',
+        delete: 'Șterge',
+        delete_permanently: "Șterge Permanent",
+        deploy_as_app: 'Implementează ca aplicație',
+        descending: 'Descending',
+        desktop_background_fit: "Potrivește fundalul",
+        dir_published_as_website: `%strong% a fost publicat către:`,
+        disassociate_dir: "Dezasociaza folderul",
+        download: 'Descarcă',
+        downloading: "Se descarcă",
+        email: "Mail",
+        email_or_username: "Mail sau Nume de Utilizator",
+        empty_trash: 'Golește Coșul de gunoi',
+        empty_trash_confirmation: `Ești sigur că vrei să ștergi permanent conținutul Coșului de gunoi?`,
+        emptying_trash: 'Coșul de gunoi se golește…',
+        feedback: "Feedback",
+        feedback_c2a: "Vă rugăm să folosiți formularul de mai jos pentru a ne trimite feedback, comentarii și rapoarte de erori.",
+        feedback_sent_confirmation: "Mulțumim că ne-ți contactat. Dacă aveți un e-mail asociat contului dvs, veți primi un răspuns de la noi cât mai curând posibil.",
+        forgot_pass_c2a: "Ai uitat parola?",
+        from: "De la",
+        general: "General",
+        get_a_copy_of_on_puter: `Obțineți o copie a '%%' pe Puter.com!`,
+        get_copy_link: 'Obțineți link-ul copiei',
+        hide_all_windows: "Ascunde toate ferestrele",
+        html_document: 'Document HTML',
+        image: 'Imagine',
+        invite_link: "Link de invitație",
+        items_in_trash_cannot_be_renamed: `Acest articol nu poate fi redenumit deoarece este în coșul de gunoi. Pentru a redenumi acest element, mai întâi scoateți-l din Coșul de gunoi.`,
+        jpeg_image: 'Imagine JPEG',
+        keep_in_taskbar: 'Păstrează în bara de activități',
+        log_in: "Loghează-te",
+        log_out: 'Deconectează-te',
+        move: 'Mută',
+        moving: "Se mută",
+        my_websites: "Site-urile mele",
+        name: 'Nume',
+        name_cannot_be_empty: 'Numele nu poate fi necompletat.',
+        name_cannot_contain_double_period: "Numele nu poate conține ..",
+        name_cannot_contain_period: "Numele nu poate conține .",
+        name_cannot_contain_slash: "Numele nu poate contine /",
+        name_must_be_string: "Numele poate fi doar un șir.",
+        name_too_long: `Numele nu poate fi mai lung de %% caractere.`,
+        new: 'Nou',
+        new_folder: 'Folder nou',
+        new_password: "Parolă nouă",
+        new_username: "Nume de Utilizator nou",
+        no_dir_associated_with_site: 'Niciun director asociat cu această adresă.',
+        no_websites_published: "Nu ați publicat încă niciun site web.",
+        ok: 'OK',
+        open: "Deschide",
+        open_in_new_tab: "Deschide in alt tab",
+        open_in_new_window: "Deschide in fereastră nouă",
+        open_with: "Deschide cu",
+        password: "Parolă",
+        password_changed: "Parolă schimbată.",
+        passwords_do_not_match: '`Parola nouă` și `Confirmă Parola nouă` nu sunt la fel.',
+        paste: 'Inserează',
+        paste_into_folder: "Inserează in folder",
+        pick_name_for_website: "Alegeți un nume pentru site-ul dvs:",
+        picture: "Poza",
+        powered_by_puter_js: `Creat de <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
+        preparing: "Preparare...",
+        preparing_for_upload: "Preparare pentru încărcare...",
+        properties: "Proprietăți",
+        publish: "Publică",
+        publish_as_website: 'Publică, ca site web',
+        recent: "Recente",
+        recover_password: "Recuperare Parolă",
+        refer_friends_c2a: "Obțineți 1 GB pentru fiecare prieten care creează și confirmă un cont pe Puter. și prietenul tău va primi 1 GB!",
+        refer_friends_social_media_c2a: `Obțineți 1 GB de spațiu de stocare gratuit pe Puter.com!`,
+        refresh: 'Reîmprospătare',
+        release_address_confirmation: `Sigur doriți să eliberați această adresă?`,
+        remove_from_taskbar:'Eliminați din bara de activități',
+        rename: 'Redenumește',
+        repeat: 'Repetă',
+        resend_confirmation_code: "Re-trimite cod de confirmare",
+        restore: "Restaurare",
+        save_account_to_get_copy_link: "Vă rugăm să creați un cont pentru a copia un link.",
+        save_account_to_publish: 'Vă rugăm să creați un cont pentru a publica.',
+        save_session_c2a: 'Creați un cont pentru a vă salva sesiunea curentă și pentru a evita pierderea muncii.',
+        scan_qr_c2a: 'Scanați codul de mai jos pentru a vă conecta la această sesiune de pe alte dispozitive',
+        select: "Selectează",
+        select_color: 'Selectează culoare…',
+        send: "Trimite",
+        send_password_recovery_email: "Trimite mail de recuperare parolă",
+        session_saved: "Vă mulțumim pentru crearea unui cont. Această sesiune a fost salvată.",
+        set_new_password: "Setează o parolă Nouă",
+        share_to: "Distribuie către",
+        show_all_windows: "Afișați toate ferestrele",
+        show_hidden: 'Arată ascuns',
+        sign_in_with_puter: "Conectați-vă cu Puter",
+        sign_up: "Inscrie-te",
+        signing_in: "Se conectează…",
+        size: 'Mărime',
+        sort_by: 'Sortează dupa',
+        start: 'Start',
+        taking_longer_than_usual: 'Durează puțin mai mult decât de obicei. Vă rugăm așteptați...',
+        text_document: 'Document Text',
+        tos_fineprint: `Făcând clic pe „Creați un cont gratuit”, sunteți de acord cu <a href="https://puter.com/terms" target="_blank">Termenii si conditiile</a> si <a href="https://puter.com/privacy" target="_blank">Politia de Confidentialitate Puter.com</a>.`,
+        trash: 'Coș de gunoi',
+        type: 'Type',
+        undo: 'Undo',
+        unzip: "Unzip",
+        upload: 'Incarcă',
+        upload_here: 'Incarcă aici',
+        username: "Nume de Utilizator",
+        username_changed: 'Nume de Utilizator actualizat cu succes.',
+        versions: "Versiuni",
+        yes_release_it: 'Da, eliberează-l',
+        you_have_been_referred_to_puter_by_a_friend: "Ai fost invitat pe Puter de către un prieten!",
+        zip: "Zip",
+    }
+}
+
+export default ro;

+ 148 - 0
src/i18n/translations/sv.js

@@ -0,0 +1,148 @@
+const sv = {
+    name: "Svenska",
+    code: "sv",
+    dictionary: {
+        access_granted_to: "Tillgång beviljad till",
+        add_existing_account: "Lägg till befintligt konto",
+        all_fields_required: "Alla fält är obligatoriska.",
+        apply: "Tillämpa",
+        ascending: "Stigande",
+        background: "Bakgrund",
+        browse: "Bläddra",
+        cancel: "Avbryt",
+        center: "Centrera",
+        change_desktop_background: "Ändra skrivbordsbakgrund…",
+        change_language: "Ändra språk",
+        change_password: "Byt lösenord",
+        change_username: "Byt användarnamn",
+        close_all_windows: "Stäng alla fönster",
+        color: "Färg",
+        confirm_account_for_free_referral_storage_c2a: "Skapa ett konto och bekräfta din e-postadress för att få 1 GB gratis lagringsutrymme. Din vän får också 1 GB gratis lagringsutrymme.",
+        confirm_new_password: "Bekräfta nytt lösenord",
+        contact_us: "Kontakta oss",
+        contain: "Innehålla",
+        continue: "Fortsätt",
+        copy: "Kopiera",
+        copy_link: "Kopiera länk",
+        copying: "Kopierar",
+        cover: "Täcka",
+        create_account: "Skapa konto",
+        create_free_account: "Skapa gratis konto",
+        create_shortcut: "Skapa genväg",
+        current_password: "Nuvarande lösenord",
+        cut: "Klipp ut",
+        date_modified: "Ändringsdatum",
+        delete: "Radera",
+        delete_permanently: "Radera permanent",
+        deploy_as_app: "Distribuera som app",
+        descending: "Fallande",
+        desktop_background_fit: "Anpassa",
+        dir_published_as_website: "%strong% är publicerat på:",
+        disassociate_dir: "Avassociera mapp",
+        download: "Ladda ner",
+        downloading: "Laddar ner",
+        email: "E-post",
+        email_or_username: "E-post eller användarnamn",
+        empty_trash: "Töm papperskorgen",
+        empty_trash_confirmation: "Är du säker på att du vill permanent radera allt i papperskorgen?",
+        emptying_trash: "Tömmer papperskorgen…",
+        feedback: "Feedback",
+        feedback_c2a: "Vänligen använd formuläret nedan för att skicka oss din feedback, kommentarer och felrapporter.",
+        feedback_sent_confirmation: "Tack för att du kontaktade oss. Om du har en e-post kopplad till ditt konto kommer du att höra från oss så snart som möjligt.",
+        forgot_pass_c2a: "Glömt lösenord?",
+        from: "Från",
+        general: "Allmänt",
+        get_a_copy_of_on_puter: "Få en kopia av '%%' på Puter.com!",
+        get_copy_link: "Få kopieringslänk",
+        hide_all_windows: "Dölj alla fönster",
+        html_document: "HTML-dokument",
+        image: "Bild",
+        invite_link: "Inbjudningslänk",
+        items_in_trash_cannot_be_renamed: "Det här objektet kan inte byta namn eftersom det är i papperskorgen. För att byta namn på detta objekt, dra det först ur papperskorgen.",
+        jpeg_image: "JPEG-bild",
+        keep_in_taskbar: "Behåll i aktivitetsfältet",
+        log_in: "Logga in",
+        log_out: "Logga ut",
+        move: "Flytta",
+        moving: "Flyttar",
+        my_websites: "Mina webbplatser",
+        name: "Namn",
+        name_cannot_be_empty: "Namn kan inte vara tomt.",
+        name_cannot_contain_double_period: "Namn kan inte innehålla '..'.",
+        name_cannot_contain_period: "Namn kan inte innehålla '.'-tecknet.",
+        name_cannot_contain_slash: "Namn kan inte innehålla '/'-tecknet.",
+        name_must_be_string: "Namn måste vara en sträng.",
+        name_too_long: "Namn kan inte vara längre än %% tecken.",
+        new: "Ny",
+        new_folder: "Ny mapp",
+        new_password: "Nytt lösenord",
+        new_username: "Nytt användarnamn",
+        no_dir_associated_with_site: "Ingen mapp är associerad med denna adress.",
+        no_websites_published: "Du har inte publicerat några webbplatser än.",
+        ok: "OK",
+        open: "Öppna",
+        open_in_new_tab: "Öppna i ny flik",
+        open_in_new_window: "Öppna i nytt fönster",
+        open_with: "Öppna med",
+        password: "Lösenord",
+        password_changed: "Lösenord ändrat.",
+        passwords_do_not_match: "`Nytt lösenord` och `Bekräfta nytt lösenord` stämmer inte överens.",
+        paste: "Klistra in",
+        paste_into_folder: "Klistra in i mapp",
+        pick_name_for_website: "Välj ett namn för din webbplats:",
+        picture: "Bild",
+        powered_by_puter_js: "Drivs av <a href=\"https://docs.puter.com/\" target=\"_blank\">Puter.js</a>",
+        preparing: "Förbereder...",
+        preparing_for_upload: "Förbereder för uppladdning...",
+        properties: "Egenskaper",
+        publish: "Publicera",
+        publish_as_website: "Publicera som webbplats",
+        recent: "Senaste",
+        recover_password: "Återställ lösenord",
+        refer_friends_c2a: "Få 1 GB för varje vän som skapar och bekräftar ett konto på Puter. Din vän får också 1 GB.",
+        refer_friends_social_media_c2a: "Få 1 GB gratis lagringsutrymme på Puter.com!",
+        refresh: "Uppdatera",
+        release_address_confirmation: "Är du säker på att du vill frigöra denna adress?",
+        remove_from_taskbar: "Ta bort från aktivitetsfältet",
+        rename: "Byt namn",
+        repeat: "Upprepa",
+        resend_confirmation_code: "Skicka bekräftelsekoden igen",
+        restore: "Återställ",
+        save_account_to_get_copy_link: "Vänligen skapa ett konto för att fortsätta.",
+        save_account_to_publish: "Vänligen skapa ett konto för att fortsätta.",
+        save_session_c2a: "Skapa ett konto för att spara den nuvarande sessionen och undvika att förlora ditt arbete.",
+        scan_qr_c2a: "Skanna koden nedan för att logga in på denna session från andra enheter",
+        select: "Välj",
+        select_color: "Välj färg…",
+        send: "Skicka",
+        send_password_recovery_email: "Skicka e-post för återställning av lösenord",
+        session_saved: "Tack för att du skapade ett konto. Denna session är sparad.",
+        set_new_password: "Ange nytt lösenord",
+        share_to: "Dela till",
+        show_all_windows: "Visa alla fönster",
+        show_hidden: "Visa dolda",
+        sign_in_with_puter: "Logga in med Puter",
+        sign_up: "Registrera dig",
+        signing_in: "Loggar in…",
+        size: "Storlek",
+        sort_by: "Sortera efter",
+        start: "Start",
+        taking_longer_than_usual: "Detta tar längre tid än vanligt. Vänligen vänta...",
+        text_document: "Textdokument",
+        tos_fineprint: "Genom att klicka på 'Skapa gratis konto' godkänner du Puters <a href=\"https://puter.com/terms\" target=\"_blank\">användarvillkor</a> och <a href=\"https://puter.com/privacy\" target=\"_blank\">integritetspolicy</a>.",
+        trash: "Papperskorg",
+        type: "Typ",
+        undo: "Ångra",
+        unzip: "Packa upp",
+        upload: "Ladda upp",
+        upload_here: "Ladda upp här",
+        username: "Användarnamn",
+        username_changed: "Användarnamn uppdaterat.",
+        versions: "Versioner",
+        yes_release_it: "Ja, frigör den",
+        you_have_been_referred_to_puter_by_a_friend: "Du har blivit hänvisad till Puter av en vän!",
+        zip: "Zip"
+    }
+};
+
+export default sv;

+ 31 - 0
src/i18n/translations/translations.js

@@ -0,0 +1,31 @@
+import bn from './bn.js'
+import da from './da.js';
+import de from './de.js'
+import en from './en.js';
+import fa from './fa.js';
+import fi from './fi.js';
+import fr from './fr.js';
+import it from './it.js';
+import ko from './ko.js';
+import nb from './nb.js';
+import nn from './nn.js';
+import ro from './ro.js';
+import sv from './sv.js';
+import zh from './zh.js';
+
+export default {
+    bn,
+    da,
+    de,
+    en,
+    fa,
+    fi,
+    fr,
+    it,
+    ko,
+    nb,
+    nn,
+    ro,
+    sv,
+    zh,
+};

+ 148 - 0
src/i18n/translations/zh.js

@@ -0,0 +1,148 @@
+const zh = {
+    name: "中文",
+    code: "zh",
+    dictionary: {
+        access_granted_to: "访问授权给",
+        add_existing_account: "添加现有帐户",
+        all_fields_required: '所有字段都是必需的。',
+        apply: "应用",
+        ascending: '升序',
+        background: "背景",
+        browse: "浏览",
+        cancel: '取消',
+        center: '中心',
+        change_desktop_background: '更改桌面背景…',
+        change_language: "更改语言",
+        change_password: "更改密码",
+        change_username: "更改用户名",
+        close_all_windows: "关闭所有窗口",
+        color: '颜色',
+        confirm_account_for_free_referral_storage_c2a: '创建帐户并确认您的电子邮件地址,以获得1 GB的免费存储空间。您的朋友也将获得1 GB的免费存储空间。',
+        confirm_new_password: "确认新密码",
+        contact_us: "联系我们",
+        contain: '包含',
+        continue: "继续",
+        copy: '复制',
+        copy_link: "复制链接",
+        copying: "复制",
+        cover: '封面',
+        create_account: "创建帐户",
+        create_free_account: "创建免费帐户",
+        create_shortcut: "创建快捷方式",
+        current_password: "当前密码",
+        cut: '剪切',
+        date_modified: '修改日期',
+        delete: '删除',
+        delete_permanently: "永久删除",
+        deploy_as_app: '部署为应用',
+        descending: '降序',
+        desktop_background_fit: "适合",
+        dir_published_as_website: `%strong% 已发布到:`,
+        disassociate_dir: "取消关联目录",
+        download: '下载',
+        downloading: "下载",
+        email: "电子邮件",
+        email_or_username: "电子邮件或用户名",
+        empty_trash: '清空回收站',
+        empty_trash_confirmation: `您确定要永久删除回收站中的项目吗?`,
+        emptying_trash: '清空回收站…',
+        feedback: "反馈",
+        feedback_c2a: "请使用下面的表格向我们发送您的反馈、评论和错误报告。",
+        feedback_sent_confirmation: "感谢您与我们联系。如果您的帐户关联有电子邮件,我们会尽快回复您。",
+        forgot_pass_c2a: "忘记密码?",
+        from: "从",
+        general: "一般",
+        get_a_copy_of_on_puter: `在 Puter.com 上获取 '%%' 的副本!`,
+        get_copy_link: '获取复制链接',
+        hide_all_windows: "隐藏所有窗口",
+        html_document: 'HTML 文档',
+        image: '图像',
+        invite_link: "邀请链接",
+        items_in_trash_cannot_be_renamed: `此项目无法重命名,因为它在回收站中。要重命名此项目,请先将其拖出回收站。`,
+        jpeg_image: 'JPEG 图像',
+        keep_in_taskbar: '保持在任务栏',
+        log_in: "登录",
+        log_out: '登出',
+        move: '移动',
+        moving: "移动",
+        my_websites: "我的网站",
+        name: '名称',
+        name_cannot_be_empty: '名称不能为空。',
+        name_cannot_contain_double_period: "名称不能是'..'字符。",
+        name_cannot_contain_period: "名称不能是'.'字符。",
+        name_cannot_contain_slash: "名称不能包含'/'字符。",
+        name_must_be_string: "名称只能是字符串。",
+        name_too_long: `名称不能超过 %% 个字符。`,
+        new: '新',
+        new_folder: '新文件夹',
+        new_password: "新密码",
+        new_username: "新用户名",
+        no_dir_associated_with_site: '此地址没有关联的目录。',
+        no_websites_published: "您尚未发布任何网站。",
+        ok: '好的',
+        open: "打开",
+        open_in_new_tab: "在新标签页中打开",
+        open_in_new_window: "在新窗口中打开",
+        open_with: "打开方式",
+        password: "密码",
+        password_changed: "密码已更改。",
+        passwords_do_not_match: '`新密码` 和 `确认新密码` 不匹配。',
+        paste: '粘贴',
+        paste_into_folder: "粘贴到文件夹",
+        pick_name_for_website: "为您的网站选择一个名称:",
+        picture: "图片",
+        powered_by_puter_js: `由 <a href="https://docs.puter.com/" target="_blank">Puter.js</a> 提供支持`,
+        preparing: "准备中...",
+        preparing_for_upload: "准备上传...",
+        properties: "属性",
+        publish: "发布",
+        publish_as_website: '发布为网站',
+        recent: "最近",
+        recover_password: "找回密码",
+        refer_friends_c2a: "每个创建并确认 Puter 帐户的朋友都会为您获得 1 GB。您的朋友也将获得 1 GB!",
+        refer_friends_social_media_c2a: `在 Puter.com 上获取 1 GB 的免费存储空间!`,
+        refresh: '刷新',
+        release_address_confirmation: `您确定要释放此地址吗?`,
+        remove_from_taskbar:'从任务栏中删除',
+        rename: '重命名',
+        repeat: '重复',
+        resend_confirmation_code: "重新发送确认码",
+        restore: "还原",
+        save_account_to_get_copy_link: "请创建帐户以继续。",
+        save_account_to_publish: '请创建帐户以继续。',
+        save_session_c2a: '创建帐户以保存当前会话,避免丢失工作。',
+        scan_qr_c2a: '扫描下面的代码以从其他设备登录此会话',
+        select: "选择",
+        select_color: '选择颜色…',
+        send: "发送",
+        send_password_recovery_email: "发送密码恢复电子邮件",
+        session_saved: "感谢您创建帐户。此会话已保存。",
+        set_new_password: "设置新密码",
+        share_to: "分享到",
+        show_all_windows: "显示所有窗口",
+        show_hidden: '显示隐藏',
+        sign_in_with_puter: "使用 Puter 登录",
+        sign_up: "注册",
+        signing_in: "登录中…",
+        size: '大小',
+        sort_by: '排序方式',
+        start: '开始',
+        taking_longer_than_usual: '需要的时间比平时长一点。请稍等...',
+        text_document: '文本文档',
+        tos_fineprint: `点击“创建免费帐户”即表示您同意 Puter 的 <a href="https://puter.com/terms" target="_blank">服务条款</a> 和 <a href="https://puter.com/privacy" target="_blank">隐私政策</a>。`,
+        trash: '回收站',
+        type: '类型',
+        undo: '撤销',
+        unzip: "解压缩",
+        upload: '上传',
+        upload_here: '在此上传',
+        username: "用户名",
+        username_changed: '用户名已成功更新。',
+        versions: "版本",
+        yes_release_it: '是的,释放它',
+        you_have_been_referred_to_puter_by_a_friend: "您已经被朋友推荐到 Puter!",
+        zip: "压缩",
+    }
+};
+
+export default zh;

+ 1 - 2
src/initgui.js

@@ -47,8 +47,7 @@ window.initgui = async function(){
         puter.setAPIOrigin(api_origin);
 
     // determine locale
-    const userLang = navigator.language || navigator.userLanguage || 'en';
-    window.locale = userLang?.split('-')[0] ?? 'en';
+    window.locale = window.user_preferences.language;
 
     // Checks the type of device the user is on (phone, tablet, or desktop).
     // Depending on the device type, it sets a class attribute on the body tag 

+ 1 - 1
src/static-assets.js

@@ -33,7 +33,6 @@ const lib_paths =[
     `/lib/iro.min.js`,
     `/lib/isMobile.min.js`,
     `/lib/jszip-3.10.1.min.js`,
-    `/i18n/i18n.js`,
 ]
 
 // Ordered list of CSS stylesheets
@@ -49,6 +48,7 @@ const js_paths = [
     '/helpers.js',
     '/IPC.js',
     '/globals.js',
+    `/i18n/i18n.js`,
 ]
 
 module.exports = { lib_paths, css_paths, js_paths }