From 20ab5a8304fefe550787a2f8d5c312ccea5f3683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sondre=20Nj=C3=A5stad?= Date: Mon, 18 Mar 2024 08:49:58 +0100 Subject: [PATCH 01/11] =?UTF-8?q?Add=20Norwegian=20Bokm=C3=A5l?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/i18n/no.js | 143 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 src/i18n/no.js diff --git a/src/i18n/no.js b/src/i18n/no.js new file mode 100644 index 00000000..c3c6c574 --- /dev/null +++ b/src/i18n/no.js @@ -0,0 +1,143 @@ +const no = { + 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_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 Puter.js", + 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 tjenestevilkår og personvernpolicy.", + 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 no; \ No newline at end of file From 6116d9626e46d90c647b6871c6f2d6a1c1bc3862 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sondre=20Nj=C3=A5stad?= Date: Mon, 18 Mar 2024 08:51:25 +0100 Subject: [PATCH 02/11] Remove ES module line --- src/i18n/no.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/i18n/no.js b/src/i18n/no.js index c3c6c574..15cde026 100644 --- a/src/i18n/no.js +++ b/src/i18n/no.js @@ -138,6 +138,4 @@ const no = { 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 no; \ No newline at end of file +}; \ No newline at end of file From c1b812a404c21ae9841ff1ab7e721e03f0074fb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sondre=20Nj=C3=A5stad?= Date: Mon, 18 Mar 2024 12:40:09 +0100 Subject: [PATCH 03/11] Add lanuage selector, norwegian, franch and presistant language preference based on user --- src/UI/UIDesktop.js | 22 + src/globals.js | 1 + src/i18n/i18n.js | 583 +------------------------- src/i18n/i18nChangeLanguage.js | 8 + src/i18n/no.js | 141 ------- src/i18n/translations/en.js | 148 +++++++ src/i18n/translations/fa.js | 148 +++++++ src/i18n/translations/fr.js | 148 +++++++ src/i18n/translations/ko.js | 148 +++++++ src/i18n/translations/no.js | 148 +++++++ src/i18n/translations/translations.js | 15 + src/i18n/translations/zh.js | 148 +++++++ src/initgui.js | 3 +- src/static-assets.js | 2 +- 14 files changed, 948 insertions(+), 715 deletions(-) create mode 100644 src/i18n/i18nChangeLanguage.js delete mode 100644 src/i18n/no.js create mode 100644 src/i18n/translations/en.js create mode 100644 src/i18n/translations/fa.js create mode 100644 src/i18n/translations/fr.js create mode 100644 src/i18n/translations/ko.js create mode 100644 src/i18n/translations/no.js create mode 100644 src/i18n/translations/translations.js create mode 100644 src/i18n/translations/zh.js diff --git a/src/UI/UIDesktop.js b/src/UI/UIDesktop.js index db791a29..c2ee4c97 100644 --- a/src/UI/UIDesktop.js +++ b/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 = ''; @@ -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 //-------------------------------------------------- diff --git a/src/globals.js b/src/globals.js index 3c443394..34312698 100644 --- a/src/globals.js +++ b/src/globals.js @@ -96,6 +96,7 @@ try { if (window.user_preferences === null) { window.user_preferences = { show_hidden_files: false, + language: 'en', } } diff --git a/src/i18n/i18n.js b/src/i18n/i18n.js index 167500bd..fe4d3d17 100644 --- a/src/i18n/i18n.js +++ b/src/i18n/i18n.js @@ -1,4 +1,12 @@ -window.locale = 'en'; +import translations from './translations/translations.js'; + +window.ListSupportedLanugages = function () { + var result = []; + translations.keys.forEach(function (key) { + result.push(translations[key]); + }); + return result; +}; window.i18n = function (key, replacements = [], encode_html = true) { if(typeof replacements === 'boolean' && encode_html === undefined){ @@ -9,10 +17,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,571 +55,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 Puter.js`, - 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 Terms of Service and Privacy Policy.`, - 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: `پشتیبانی شده توسط Puter.js`, - 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: `با کلیک بر روی 'ایجاد حساب کاربری رایگان' شما با شرایط خدمات و سیاست حفظ حریم خصوصی 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 Puter.js`, - 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의 서비스 약관개인정보 보호정책에 동의하는 것입니다.`, - 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: `由 Puter.js 提供支持`, - 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 的 服务条款隐私政策。`, - 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: "压缩", - }, -} \ No newline at end of file +export default {}; \ No newline at end of file diff --git a/src/i18n/i18nChangeLanguage.js b/src/i18n/i18nChangeLanguage.js new file mode 100644 index 00000000..5f4a8dff --- /dev/null +++ b/src/i18n/i18nChangeLanguage.js @@ -0,0 +1,8 @@ +function ChangeLanguage(lang) { + window.locale = lang; + window.mutate_user_preferences({ + language : lang, + }); +} + +export default ChangeLanguage; \ No newline at end of file diff --git a/src/i18n/no.js b/src/i18n/no.js deleted file mode 100644 index 15cde026..00000000 --- a/src/i18n/no.js +++ /dev/null @@ -1,141 +0,0 @@ -const no = { - 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_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 Puter.js", - 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 tjenestevilkår og personvernpolicy.", - 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" -}; \ No newline at end of file diff --git a/src/i18n/translations/en.js b/src/i18n/translations/en.js new file mode 100644 index 00000000..74285690 --- /dev/null +++ b/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 Puter.js`, + 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 Terms of Service and Privacy Policy.`, + 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; \ No newline at end of file diff --git a/src/i18n/translations/fa.js b/src/i18n/translations/fa.js new file mode 100644 index 00000000..8d88c785 --- /dev/null +++ b/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: `پشتیبانی شده توسط Puter.js`, + 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: `با کلیک بر روی 'ایجاد حساب کاربری رایگان' شما با شرایط خدمات و سیاست حفظ حریم خصوصی 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; \ No newline at end of file diff --git a/src/i18n/translations/fr.js b/src/i18n/translations/fr.js new file mode 100644 index 00000000..ecf54465 --- /dev/null +++ b/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 Puter.js`, + 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 conditions d'utilisation et la politique de confidentialité.`, + 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; \ No newline at end of file diff --git a/src/i18n/translations/ko.js b/src/i18n/translations/ko.js new file mode 100644 index 00000000..9c8d487b --- /dev/null +++ b/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 Puter.js`, + 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의 서비스 약관개인정보 보호정책에 동의하는 것입니다.`, + 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; \ No newline at end of file diff --git a/src/i18n/translations/no.js b/src/i18n/translations/no.js new file mode 100644 index 00000000..85d7e03f --- /dev/null +++ b/src/i18n/translations/no.js @@ -0,0 +1,148 @@ +const no = { + name: "Norsk", + code: "no", + 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 Puter.js", + 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 tjenestevilkår og personvernpolicy.", + 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 no; \ No newline at end of file diff --git a/src/i18n/translations/translations.js b/src/i18n/translations/translations.js new file mode 100644 index 00000000..1ed3aa60 --- /dev/null +++ b/src/i18n/translations/translations.js @@ -0,0 +1,15 @@ +import en from './en.js'; +import no from './no.js'; +import fa from './fa.js'; +import ko from './ko.js'; +import zh from './zh.js'; +import fr from './fr.js'; + +export default { + en: en, + no: no, + fa: fa, + ko: ko, + zh: zh, + fr: fr, +}; \ No newline at end of file diff --git a/src/i18n/translations/zh.js b/src/i18n/translations/zh.js new file mode 100644 index 00000000..76770853 --- /dev/null +++ b/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: `由 Puter.js 提供支持`, + 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 的 服务条款隐私政策。`, + 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; \ No newline at end of file diff --git a/src/initgui.js b/src/initgui.js index 3166b128..e66ad5b5 100644 --- a/src/initgui.js +++ b/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 diff --git a/src/static-assets.js b/src/static-assets.js index 481d2270..7690871a 100644 --- a/src/static-assets.js +++ b/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 } \ No newline at end of file From db23095469da598408131206af89f6bf64836d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sondre=20Nj=C3=A5stad?= Date: Mon, 18 Mar 2024 13:33:05 +0100 Subject: [PATCH 04/11] more translation work --- src/globals.js | 2 +- src/i18n/translations/{no.js => nb.js} | 8 +- src/i18n/translations/nn.js | 148 +++++++++++++++++++++++++ src/i18n/translations/translations.js | 16 +-- 4 files changed, 162 insertions(+), 12 deletions(-) rename src/i18n/translations/{no.js => nb.js} (98%) create mode 100644 src/i18n/translations/nn.js diff --git a/src/globals.js b/src/globals.js index 34312698..fd799541 100644 --- a/src/globals.js +++ b/src/globals.js @@ -96,7 +96,7 @@ try { if (window.user_preferences === null) { window.user_preferences = { show_hidden_files: false, - language: 'en', + language: navigator.language.split("-")[0] || navigator.userLanguage || 'en', } } diff --git a/src/i18n/translations/no.js b/src/i18n/translations/nb.js similarity index 98% rename from src/i18n/translations/no.js rename to src/i18n/translations/nb.js index 85d7e03f..d4e389ea 100644 --- a/src/i18n/translations/no.js +++ b/src/i18n/translations/nb.js @@ -1,6 +1,6 @@ -const no = { - name: "Norsk", - code: "no", +const nb = { + name: "Norsk Bokmål", + code: "nb", dictionary: { access_granted_to: "Tilgang gitt til", add_existing_account: "Legg til eksisterende konto", @@ -145,4 +145,4 @@ const no = { } }; -export default no; \ No newline at end of file +export default nb; \ No newline at end of file diff --git a/src/i18n/translations/nn.js b/src/i18n/translations/nn.js new file mode 100644 index 00000000..0c2169ec --- /dev/null +++ b/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 Puter.js", + 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 tenestevilkår og personvernpolitikk.", + 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; diff --git a/src/i18n/translations/translations.js b/src/i18n/translations/translations.js index 1ed3aa60..1bc45202 100644 --- a/src/i18n/translations/translations.js +++ b/src/i18n/translations/translations.js @@ -1,15 +1,17 @@ import en from './en.js'; -import no from './no.js'; +import nb from './nb.js'; import fa from './fa.js'; import ko from './ko.js'; import zh from './zh.js'; import fr from './fr.js'; +import nn from './nn.js' export default { - en: en, - no: no, - fa: fa, - ko: ko, - zh: zh, - fr: fr, + en, + nb, + fa, + ko, + zh, + fr, + nn, }; \ No newline at end of file From a6584284c01514d987af18af4315554d52859a13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sondre=20Nj=C3=A5stad?= Date: Mon, 18 Mar 2024 13:42:32 +0100 Subject: [PATCH 05/11] Fix Login header was not translated --- src/UI/UIWindowLogin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/UI/UIWindowLogin.js b/src/UI/UIWindowLogin.js index 145a1f84..69386350 100644 --- a/src/UI/UIWindowLogin.js +++ b/src/UI/UIWindowLogin.js @@ -36,7 +36,7 @@ async function UIWindowLogin(options){ h += `
×
`; h += `
`; // title - h += `

Log In

`; + h += `

${i18n('log_in')}

`; // login form h += `