Merge branch 'HeyPuter:main' into main

This commit is contained in:
Sai Uddisa 2024-03-20 18:07:03 +05:30 committed by GitHub
commit ae9fe5a2eb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
20 changed files with 739 additions and 83 deletions

View File

@ -881,12 +881,12 @@ window.addEventListener('message', async (event) => {
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[
{
label: 'Replace',
label: i18n('replace'),
value: 'replace',
type: 'primary',
},
{
label: 'Cancel',
label: i18n('cancel'),
value: 'cancel',
},
],
@ -1032,18 +1032,19 @@ window.addEventListener('message', async (event) => {
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[
{
label: 'Replace',
label: i18n('replace'),
type: 'primary',
},
{
label: 'Cancel'
label: i18n('cancel'),
value: 'cancel'
},
],
parent_uuid: event.data.appInstanceID,
})
if(alert_resp === 'Replace'){
overwrite = true;
}else if(alert_resp === 'Cancel'){
}else if(alert_resp === 'cancel'){
item_with_same_name_already_exists = false;
}
}else{

View File

@ -37,7 +37,7 @@ function UIAlert(options){
// provide an 'OK' button if no buttons are provided
if(!options.buttons || options.buttons.length === 0){
options.buttons = [
{label: 'OK', value: true, type: 'primary'}
{label: i18n('ok'), value: true, type: 'primary'}
]
}

View File

@ -503,6 +503,7 @@ async function UIDesktop(options){
// update local user preferences
const user_preferences = {
show_hidden_files: (await puter.kv.get('user_preferences.show_hidden_files')) === 'true',
language: (await puter.kv.get('user_preferences.language'))
};
update_user_preferences(user_preferences);
@ -1222,18 +1223,19 @@ $(document).on('click', '.user-options-menu-btn', async function(e){
// see if there are any open windows, if yes notify user
if($('.window-app').length > 0){
const alert_resp = await UIAlert({
message: `<p>You have open apps. Are you sure you want to log out?</p>`,
message: `<p>${i18n('confirm_open_apps_log_out')}</p>`,
buttons:[
{
label: 'Close Windows and Log Out',
label: i18n('close_all_Windows_and_log_out'),
value: 'close_and_log_out',
type: 'primary',
},
{
label: 'Cancel'
label: i18n('cancel')
},
]
})
if(alert_resp === 'Close Windows and Log Out')
if(alert_resp === 'close_and_log_out')
logout();
}
// no open windows
@ -1310,16 +1312,16 @@ $(document).on('click', '.user-options-login-btn', async function(e){
message: `<strong>Save session before exiting!</strong><p>You are in a temporary session and logging into another account will erase all data in your current session.</p>`,
buttons:[
{
label: 'Save session',
label: i18n('save_session'),
value: 'save-session',
type: 'primary',
},
{
label: 'Log into another account anyway',
label: i18n('log_into_another_account_anyway'),
value: 'login',
},
{
label: 'Cancel'
label: i18n('cancel')
},
]
})

View File

@ -159,7 +159,7 @@ function UIItem(options){
h += `</div>`;
// name
h += `<span class="item-name" data-item-id="${item_id}" title="${html_encode(options.name)}">${html_encode(truncate_filename(options.name, TRUNCATE_LENGTH)).replaceAll(' ', '&nbsp;')}</span>`
h += `<span class="item-name" data-item-id="${item_id}" title="${html_encode(options.name)}">${options.is_trash ? i18n('trash') : html_encode(truncate_filename(options.name, TRUNCATE_LENGTH)).replaceAll(' ', '&nbsp;')}</span>`
// name editor
h += `<textarea class="item-name-editor hide-scrollbar" spellcheck="false" autocomplete="off" autocorrect="off" autocapitalize="off" data-gramm_editor="false">${html_encode(options.name)}</textarea>`
h += `</div>`;
@ -854,14 +854,14 @@ function UIItem(options){
html: i18n('delete_permanently'),
onClick: async function(){
const alert_resp = await UIAlert({
message: `Are you sure you want to permanently delete these items?`,
message: i18n('confirm_delete_multiple_items'),
buttons:[
{
label: 'Delete',
label: i18n('delete'),
type: 'primary',
},
{
label: 'Cancel'
label: i18n('cancel')
},
]
})
@ -1272,14 +1272,14 @@ function UIItem(options){
html: i18n('delete_permanently'),
onClick: async function(){
const alert_resp = await UIAlert({
message: `Are you sure you want to permanently delete this item?`,
message: i18n('confirm_delete_single_item'),
buttons:[
{
label: 'Delete',
label: i18n('delete'),
type: 'primary',
},
{
label: 'Cancel'
label: i18n('cancel')
},
]
})

View File

@ -37,7 +37,7 @@ function UIPrompt(options){
// provide an 'OK' button if no buttons are provided
if(!options.buttons || options.buttons.length === 0){
options.buttons = [
{label: i18n('Cancel'), value: false, type: 'default'},
{label: i18n('cancel'), value: false, type: 'default'},
{label: i18n('OK'), value: true, type: 'primary'},
]
}
@ -52,7 +52,7 @@ function UIPrompt(options){
// buttons
if(options.buttons && options.buttons.length > 0){
h += `<div style="overflow:hidden; margin-top:20px; float:right;">`;
h += `<button class="button button-default prompt-resp-button prompt-resp-btn-cancel" data-label="${i18n('Cancel')}" style="padding: 0 20px;">${i18n('Cancel')}</button>`;
h += `<button class="button button-default prompt-resp-button prompt-resp-btn-cancel" data-label="${i18n('cancel')}" style="padding: 0 20px;">${i18n('cancel')}</button>`;
h += `<button class="button button-primary prompt-resp-button prompt-resp-btn-ok" data-label="${i18n('OK')}" data-value="true" autofocus>${i18n('OK')}</button>`;
h += `</div>`;
}

View File

@ -217,7 +217,7 @@ async function UITaskbar(options){
UITaskbarItem({
icon: trash.is_empty ? window.icons['trash.svg'] : window.icons['trash-full.svg'],
app: 'trash',
name: 'Trash',
name: `${i18n('trash')}`,
sortable: false,
keep_in_taskbar: true,
lock_keep_in_taskbar: true,

View File

@ -295,7 +295,7 @@ async function UIWindow(options) {
frameborder="0" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen"
${options.iframe_url ? 'src="'+ html_encode(options.iframe_url)+'"' : ''}
${options.iframe_srcdoc ? 'srcdoc="'+ html_encode(options.iframe_srcdoc) +'"' : ''}
allow = "accelerometer; camera; encrypted-media; display-capture; geolocation; gyroscope; microphone; midi; clipboard-read; clipboard-write; web-share; fullscreen;"
allow = "accelerometer; camera; encrypted-media; gamepad; display-capture; geolocation; gyroscope; microphone; midi; clipboard-read; clipboard-write; web-share; fullscreen;"
sandbox="allow-forms allow-modals allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation allow-downloads allow-presentation"></iframe>`;
}
// custom body
@ -314,7 +314,7 @@ async function UIWindow(options) {
// Loading spinner
h += `<div class="explorer-loading-spinner">`;
h +=`<svg style="display:block; margin: 0 auto; " xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24"><title>circle anim</title><g fill="#212121" class="nc-icon-wrapper"><g class="nc-loop-circle-24-icon-f"><path d="M12 24a12 12 0 1 1 12-12 12.013 12.013 0 0 1-12 12zm0-22a10 10 0 1 0 10 10A10.011 10.011 0 0 0 12 2z" fill="#212121" opacity=".4"></path><path d="M24 12h-2A10.011 10.011 0 0 0 12 2V0a12.013 12.013 0 0 1 12 12z" data-color="color-2"></path></g><style>.nc-loop-circle-24-icon-f{--animation-duration:0.5s;transform-origin:12px 12px;animation:nc-loop-circle-anim var(--animation-duration) infinite linear}@keyframes nc-loop-circle-anim{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}</style></g></svg>`;
h += `<p class="explorer-loading-spinner-msg">Loading...</p>`;
h += `<p class="explorer-loading-spinner-msg">${i18n('loading')}...</p>`;
h += `</div>`;
}
@ -2018,19 +2018,19 @@ async function UIWindow(options) {
// Empty Trash
// -------------------------------------------
{
html: "Empty Trash",
html: i18n('empty_trash'),
disabled: false,
onClick: async function(){
const alert_resp = await UIAlert({
message: i18n('empty_trash_confirmation'),
buttons:[
{
label: 'Yes',
label: i18n('yes'),
value: 'yes',
type: 'primary',
},
{
label: 'No',
label: i18n('no'),
value: 'no',
},
]
@ -2517,7 +2517,7 @@ window.navbar_path = (abs_path)=>{
}
let str = `${path_seperator_html}<span class="window-navbar-path-dirname" data-path="${html_encode('/')}">${html_encode(window.root_dirname)}</span>`;
for(let k=1; k<dirs.length; k++){
str += `${path_seperator_html}<span class="window-navbar-path-dirname" data-path="${html_encode(dirpaths[k])}">${html_encode(dirs[k])}</span>`;
str += `${path_seperator_html}<span class="window-navbar-path-dirname" data-path="${html_encode(dirpaths[k])}">${dirs[k] === 'Trash' ? i18n('trash') : html_encode(dirs[k])}</span>`;
}
return str;
}
@ -2920,7 +2920,7 @@ window.scale_window = (el_window)=>{
window.update_explorer_footer_item_count = function(el_window){
//update dir count in explorer footer
let item_count = $(el_window).find('.item').length;
$(el_window).find('.explorer-footer .explorer-footer-item-count').html(item_count + ' item' + (item_count == 0 || item_count > 1 ? 's' : ''));
$(el_window).find('.explorer-footer .explorer-footer-item-count').html(item_count + ` ${i18n('item')}` + (item_count == 0 || item_count > 1 ? `${i18n('plural_suffix')}` : ''));
}
window.update_explorer_footer_selected_items_count = function(el_window){
@ -2928,7 +2928,7 @@ window.update_explorer_footer_selected_items_count = function(el_window){
let item_count = $(el_window).find('.item-selected').length;
if(item_count > 0){
$(el_window).find('.explorer-footer-seperator, .explorer-footer-selected-items-count').show();
$(el_window).find('.explorer-footer .explorer-footer-selected-items-count').html(item_count + ' item' + (item_count == 0 || item_count > 1 ? 's' : '') + ' selected');
$(el_window).find('.explorer-footer .explorer-footer-selected-items-count').html(item_count + ` ${i18n('item')}` + (item_count == 0 || item_count > 1 ? `${i18n('plural_suffix')}` : '') + ` ${i18n('selected')}`);
}else{
$(el_window).find('.explorer-footer-seperator, .explorer-footer-selected-items-count').hide();
}

View File

@ -29,7 +29,7 @@ async function UIWindowDownloadProgress(options){
// Progress report
h +=`<div style="margin-bottom:20px; float:left; padding-top:3px; font-size:15px; overflow: hidden; width: calc(100% - 40px); text-overflow: ellipsis; white-space: nowrap;">`;
// msg
h += `<span class="upload-progress-msg">${i18n('downloading')} <strong>${options.item_name ?? ''}</strong></span>`;
h += `<span class="upload-progress-msg">${i18n('downloading')}...<strong>${options.item_name ?? ''}</strong></span>`;
h += `</div>`;
// Progress
h += `<div class="download-progress-bar-container" style="clear:both; margin-top:20px; border-radius:3px;">`;

View File

@ -68,7 +68,7 @@ async function UIWindowMyWebsites(options){
margin-bottom: 50px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: #596c7c;">Loading...</p>`);
color: #596c7c;">${i18n('loading')}...</p>`);
}, 1000);
puter.hosting.list().then(function (sites){
@ -144,7 +144,7 @@ $(document).on('click', '.mywebsites-site-setting', function(e){
type: 'primary',
},
{
label: 'Cancel'
label: i18n('cancel')
},
]
})

View File

@ -116,7 +116,7 @@ async function UIWindowNewPassword(options){
backdrop: true,
buttons:[
{
label: 'Proceed to Login',
label: i18n('proceed_to_login'),
type: 'primary',
},
],

View File

@ -722,6 +722,7 @@ window.mutate_user_preferences = function(user_preferences_delta) {
window.update_user_preferences = function(user_preferences) {
window.user_preferences = user_preferences;
localStorage.setItem('user_preferences', JSON.stringify(user_preferences));
window.locale = user_preferences.language;
}
window.sendWindowWillCloseMsg = function(iframe_element) {
@ -1030,7 +1031,7 @@ window.show_save_account_notice_if_needed = function(message){
body_icon: window.icons['reminder.svg'],
buttons:[
{
label: 'Save session',
label: i18n('save_session'),
value: 'save-session',
type: 'primary',
},
@ -1564,17 +1565,17 @@ window.copy_clipboard_items = async function(dest_path, dest_container_element){
const alert_resp = await UIAlert({
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[
{label: 'Replace', type: 'primary'},
... (clipboard.length > 1) ? [{label: 'Replace all'}] : [],
... (clipboard.length > 1) ? [{label: 'Skip'}] : [{label: 'Cancel'}],
{label: i18n('replace'), type: 'primary', value: 'replace'},
... (clipboard.length > 1) ? [{label: i18n('replace_all'), value: 'replace_all'}] : [],
... (clipboard.length > 1) ? [{label: i18n('skip'), value: 'skip'}] : [{label: i18n('cancel'), value: 'cancel'}],
]
})
if(alert_resp === 'Replace'){
if(alert_resp === 'replace'){
overwrite = true;
}else if (alert_resp === 'Replace all'){
}else if (alert_resp === 'replace_all'){
overwrite = true;
overwrite_all = true;
}else if(alert_resp === 'Skip' || alert_resp === 'Cancel'){
}else if(alert_resp === 'skip' || alert_resp === 'cancel'){
item_with_same_name_already_exists = false;
}
}
@ -1661,17 +1662,17 @@ window.copy_items = function(el_items, dest_path){
const alert_resp = await UIAlert({
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[
{ label: 'Replace', type: 'primary' },
... (el_items.length > 1) ? [{label: 'Replace all'}] : [],
... (el_items.length > 1) ? [{label: 'Skip'}] : [{label: 'Cancel'}],
{ label: i18n('replace'), type: 'primary', value: 'replace' },
... (el_items.length > 1) ? [{label: i18n('replace_all'), value: 'replace_all'}] : [],
... (el_items.length > 1) ? [{label: i18n('skip'), value: 'skip'}] : [{label: i18n('cancel'), value: 'cancel'}],
]
})
if(alert_resp === 'Replace'){
if(alert_resp === 'replace'){
overwrite = true;
}else if (alert_resp === 'Replace all'){
}else if (alert_resp === 'replace_all'){
overwrite = true;
overwrite_all = true;
}else if(alert_resp === 'Skip' || alert_resp === 'Cancel'){
}else if(alert_resp === 'skip' || alert_resp === 'cancel'){
item_with_same_name_already_exists = false;
}
}
@ -2207,15 +2208,16 @@ window.open_item = async function(options){
'Found no suitable apps to open this file with. Would you like to download it instead?',
[
{
label: 'Download File',
label: i18n('download_file'),
value: 'download_file',
type: 'primary',
},
{
label: 'Cancel'
label: i18n('cancel')
}
])
if(alert_resp === 'Download File'){
if(alert_resp === 'download_file'){
trigger_download([item_path]);
}
return;
@ -2585,17 +2587,17 @@ window.move_items = async function(el_items, dest_path, is_undo = false){
const alert_resp = await UIAlert({
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[
{ label: 'Replace', type: 'primary',},
... (el_items.length > 1) ? [{label: 'Replace all'}] : [],
... (el_items.length > 1) ? [{label: 'Skip'}] : [{label: 'Cancel'}],
{ label: i18n('replace'), type: 'primary', value: 'replace' },
... (el_items.length > 1) ? [{label: i18n('replace_all'), value: 'replace_all'}] : [],
... (el_items.length > 1) ? [{label: i18n('skip'), value: 'skip'}] : [{label: i18n('cancel'), value: 'cancel'}],
]
})
if(alert_resp === 'Replace'){
if(alert_resp === 'replace'){
overwrite = true;
}else if (alert_resp === 'Replace all'){
}else if (alert_resp === 'replace_all'){
overwrite = true;
overwrite_all = true;
}else if(alert_resp === 'Skip' || alert_resp === 'Cancel'){
}else if(alert_resp === 'skip' || alert_resp === 'cancel'){
item_with_same_name_already_exists = false;
}
}
@ -2972,15 +2974,15 @@ window.upload_items = async function(items, dest_path){
window.empty_trash = async function(){
const alert_resp = await UIAlert({
message: `Are you sure you want to permanently delete the items in Trash?`,
message: i18n('empty_trash_confirmation'),
buttons:[
{
label: 'Yes',
label: i18n('yes'),
value: 'yes',
type: 'primary',
},
{
label: 'No',
label: i18n('no'),
value: 'no',
},
]

View File

@ -10,11 +10,8 @@ window.i18n = function (key, replacements = [], encode_html = true) {
replacements = [replacements];
}
// if locale is not set, default to en
if(!translations[window.locale])
window.locale = 'en';
let str = translations[window.locale].dictionary[key];
let language = translations[window.locale] ?? translations['en'];
let str = language.dictionary[key] ?? translations['en'].dictionary[key];
if (!str) {
str = key;

149
src/i18n/translations/ar.js Normal file
View File

@ -0,0 +1,149 @@
const ar = {
name: "العربية",
code: "ar",
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: 'تأكيد الحساب لتخزين الإحالة المجانية ',
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: `:تم نشر الدليل كموقع ويب`,
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: `الحصول على نسخة على جهاز الكمبيوتر`,
get_copy_link: 'الحصول على رابط النسخ',
hide_all_windows: "إخفاء كافة النوافذ ",
html_document: 'وثيقة أتش تي أم أل',
image: 'صورة',
invite_link: "رابط الدعوة",
items_in_trash_cannot_be_renamed: `لا يمكن إعادة تسمية العناصر الموجودة في سلة المهملات `,
jpeg_image: 'صورة j p e g',
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: "احصل على 1 جيجابايت لكل صديق يقوم بإنشاء حساب والتحقق منه مع Puter. صديقك يحصل على 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>`,
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 ar;

View File

@ -0,0 +1,166 @@
const emoji = {
name: "🌍",
code: "emoji",
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: "❌🔄🖼️🖼️",
close_all_windows_and_log_out: '❌🔄🖼️🖼️🔚',
color: '🎨',
confirm_account_for_free_referral_storage_c2a: '📧🆓👤📂📦🆓',
confirm_delete_multiple_items: '❓❌🗑️❓',
confirm_delete_single_item: '❓❌🗑️❓',
confirm_open_apps_log_out: '❓📦🔄🔚',
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: `📂📰🌐`,
disassociate_dir: "📂🔁❌",
download: '⬇️',
download_file: '⬇️📄',
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: `📩🔄📂`,
get_copy_link: '🔗🔄',
hide_all_windows: "🔚🔄🖼️🖼️",
html_document: '📄🌐',
image: '🖼️',
invite_link: "🔗📩",
item: '📂',
items_in_trash_cannot_be_renamed: `🗑️🆓❌`,
jpeg_image: '🖼️',
keep_in_taskbar: '📌📁',
loading: '🔄',
log_in: "👤🔓",
log_into_another_account_anyway: '👤🔄',
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: '❌',
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: `⚙️🔌🔗`,
preparing: "🔄🔜",
preparing_for_upload: "🔄🔜",
proceed_to_login: '👤🔍',
properties: "⚙️",
publish: "📰",
publish_as_website: '🌐📰',
plural_suffix: '🅰️',
recent: "🔙",
recover_password: "🔑🔄📧",
refer_friends_c2a: "👤📞📧👤",
refer_friends_social_media_c2a: `📲👤🆓`,
refresh: '🔄🔄',
release_address_confirmation: `❓🆓`,
remove_from_taskbar:'📌❌📁',
rename: '🔄📛',
repeat: '🔂',
replace: '🔄🔄',
replace_all: '🔄🔄',
resend_confirmation_code: "📧🔁",
restore: "🔄🔙",
save_account: '👤💾',
save_account_to_get_copy_link: "🆕👤📋🔗",
save_account_to_publish: '🆕👤📰',
save_session: '💾📂',
save_session_c2a: '🆕👤💾',
scan_qr_c2a: '📲🔍',
select: "👉",
selected: '✅',
select_color: '🎨👉',
send: "📤",
send_password_recovery_email: "📧🔑🔄",
session_saved: "👤💾🔄",
set_new_password: "🔑🆕",
share_to: "🔁➡️",
show_all_windows: "🔄🆓🖼️🖼️",
show_hidden: '👁️🔄',
sign_in_with_puter: "👤🆔",
sign_up: "👤🆕",
signing_in: "🔄👤",
size: '📏',
skip: '⏩',
sort_by: '🔢🔄',
start: '🚀',
taking_longer_than_usual: '⏳🔄',
text_document: '📄',
tos_fineprint: `👤📝📄`,
trash: '🗑️',
type: '🔡',
undo: '↩️',
unzip: "🔓📂",
upload: '⬆️',
upload_here: '⬆️📂',
username: "👤",
username_changed: '👤✅',
versions: "🔄📃",
yes: '✅',
yes_release_it: '✅🆓',
you_have_been_referred_to_puter_by_a_friend: "👤🔁🆓",
zip: "📂🔒",
}
};
export default emoji;

View File

@ -16,8 +16,12 @@ const en = {
change_password: "Change Password",
change_username: "Change Username",
close_all_windows: "Close All Windows",
close_all_windows_and_log_out: 'Close Windows and Log Out',
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_delete_multiple_items: 'Are you sure you want to permanently delete these items?',
confirm_delete_single_item: 'Do you want to permanently delete this item?',
confirm_open_apps_log_out: 'You have open apps. Are you sure you want to log out?',
confirm_new_password: "Confirm New Password",
contact_us: "Contact Us",
contain: 'Contain',
@ -40,6 +44,7 @@ const en = {
dir_published_as_website: `%strong% has been published to:`,
disassociate_dir: "Disassociate Directory",
download: 'Download',
download_file: 'Download File',
downloading: "Downloading",
email: "Email",
email_or_username: "Email or Username",
@ -58,10 +63,13 @@ const en = {
html_document: 'HTML document',
image: 'Image',
invite_link: "Invite Link",
item: 'item',
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',
loading: 'Loading',
log_in: "Log In",
log_into_another_account_anyway: 'Log into another account anyway',
log_out: 'Log Out',
move: 'Move',
moving: "Moving",
@ -77,6 +85,7 @@ const en = {
new_folder: 'New folder',
new_password: "New Password",
new_username: "New Username",
no: 'No',
no_dir_associated_with_site: 'No directory associated with this address.',
no_websites_published: "You have not published any websites yet.",
ok: 'OK',
@ -94,9 +103,11 @@ const en = {
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...",
proceed_to_login: 'Proceed to login',
properties: "Properties",
publish: "Publish",
publish_as_website: 'Publish as website',
plural_suffix: 's',
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!",
@ -106,13 +117,18 @@ const en = {
remove_from_taskbar:'Remove from Taskbar',
rename: 'Rename',
repeat: 'Repeat',
replace: 'Replace',
replace_all: 'Erstatt alle',
resend_confirmation_code: "Re-send Confirmation Code",
restore: "Restore",
save_account: 'Save account',
save_account_to_get_copy_link: "Please create an account to proceed.",
save_account_to_publish: 'Please create an account to proceed.',
save_session: 'Save session',
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",
selected: 'selected',
select_color: 'Select color…',
send: "Send",
send_password_recovery_email: "Send Password Recovery Email",
@ -125,6 +141,7 @@ const en = {
sign_up: "Sign Up",
signing_in: "Signing in…",
size: 'Size',
skip: 'Skip',
sort_by: 'Sort by',
start: 'Start',
taking_longer_than_usual: 'Taking a little longer than usual. Please wait...',
@ -139,6 +156,7 @@ const en = {
username: "Username",
username_changed: 'Username updated successfully.',
versions: "Versions",
yes: 'Yes',
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",

148
src/i18n/translations/es.js Normal file
View File

@ -0,0 +1,148 @@
const es = {
name: "Español",
code: "es",
dictionary: {
access_granted_to: "Acceso Permitido A",
add_existing_account: "Añadir una cuenta existente",
all_fields_required: 'Todos los campos son obligatorios.',
apply: "Aplicar",
ascending: 'Ascendiente',
background: "Fondo",
browse: "Buscar",
cancel: 'Cancelar',
center: 'Centrar',
change_desktop_background: 'Cambiar el fondo de pantalla…',
change_language: "Cambiar Idioma",
change_password: "Cambiar Contraseña",
change_username: "Cambiar Nombre de Usuario",
close_all_windows: "Cerrar todas las ventanas",
color: 'Color',
confirm_account_for_free_referral_storage_c2a: 'Crea una cuenta y confirma tu dirección de email para recibir 1 GB de almacenamiento gratuito. Tu amigo recibirá 1 GB de almacenamiento gratuito también.',
confirm_new_password: "Confirma la Nueva Contraseña",
contact_us: "Contáctanos",
contain: 'Contiene',
continue: "Continuar",
copy: 'Copiar',
copy_link: "Copiar Enlace",
copying: "Copiando",
cover: 'Cubrir',
create_account: "Crear una cuenta",
create_free_account: "Crear una cuenta gratuita",
create_shortcut: "Crear un acceso directo",
current_password: "Contraseña actual",
cut: 'Cortar',
date_modified: 'Fecha de modificación',
delete: 'Borrar',
delete_permanently: "Borrar permanentemente",
deploy_as_app: 'Desplegar como una aplicación',
descending: 'Descendiente',
desktop_background_fit: "Llenar",
dir_published_as_website: `%strong% ha sido publicado a:`,
disassociate_dir: "Desvincular directorio",
download: 'Descargar',
downloading: "Descargando",
email: "Email",
email_or_username: "Email o Nombre de Usuario",
empty_trash: 'Vaciar la papelera',
empty_trash_confirmation: `¿Estás seguro de que quieres borrar permanentemente todos los elementos de la Papelera?`,
emptying_trash: 'Vaciando la papelera…',
feedback: "Feedback",
feedback_c2a: "Por favor, usa el formulario para enviarnos tu feedback, comentario y reportar bugs.",
feedback_sent_confirmation: "Gracias por ponerte en contacto con nosotros. Si tienes un email vinculado con la cuenta, nos pondremos en contacto contigo tan pronto como podamos.",
forgot_pass_c2a: "¿Contraseña olvidada?",
from: "De",
general: "General",
get_a_copy_of_on_puter: `¡Consigue una copia de '%%' en Puter.com!`,
get_copy_link: 'Copiar el enlace',
hide_all_windows: "Ocultar Todas las Ventanas",
html_document: 'Documento HTML',
image: 'Imagen',
invite_link: "Enlace de invitación",
items_in_trash_cannot_be_renamed: `Este elemento no se puede renombrar porque está en la papelera. Para cambiar el nombre de este archivo, primero extráelo fuera de la misma.`,
jpeg_image: 'Imagen JPEG',
keep_in_taskbar: 'Fijar a la barra de tareas',
log_in: "Iniciar sesión",
log_out: 'Cerrar sesión',
move: 'Mover',
moving: "Moviendo",
my_websites: "Mis páginas web",
name: 'Nombre',
name_cannot_be_empty: 'El nombre no puede estar vacío.',
name_cannot_contain_double_period: "El nombre no puede ser el carácter '..'.",
name_cannot_contain_period: "El nombre no puede ser el carácter '.'.",
name_cannot_contain_slash: "El nombre no puede contener el carácter '/'.",
name_must_be_string: "El nombre debe ser una cadena de texto.",
name_too_long: `El nombre no puede tener más de %% caracteres.`,
new: 'Nuevo',
new_folder: 'Nueva carpeta',
new_password: "Nueva contraseña",
new_username: "Nuevo nombre de usuario",
no_dir_associated_with_site: 'No hay un directorio vinculado con esta dirección.',
no_websites_published: "No has publicado ninguna página web todavía.",
ok: 'OK',
open: "Abrir",
open_in_new_tab: "Abrir en una Nueva Pestaña",
open_in_new_window: "Abrir en una Nueva Ventana",
open_with: "Abrir Con",
password: "Contraseña",
password_changed: "Contraseña cambiada.",
passwords_do_not_match: '`Nueva Contraseña` y `Confirmar Nueva Contraseña` no coincide.',
paste: 'Pegar',
paste_into_folder: "Pegar en la Carpeta",
pick_name_for_website: "Escoge un nombre para tu página web:",
picture: "Imagen",
powered_by_puter_js: `Creado por <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
preparing: "Preparando...",
preparing_for_upload: "Preparando para la subida...",
properties: "Propiedades",
publish: "Publicar",
publish_as_website: 'Publicar como página web',
recent: "Reciente",
recover_password: "Recuperar Contraseña",
refer_friends_c2a: "Consigue 1 GB por cada amigo que cree y confirme una cuenta en Puter ¡Tu amigo recibirá 1GB también!",
refer_friends_social_media_c2a: `¡Consigue 1 GB de almacenamiento gratuito en Puter.com!`,
refresh: 'Refrescar',
release_address_confirmation: `¿Estás seguro de liberar esta dirección?`,
remove_from_taskbar:'Eliminar de la barra de tareas',
rename: 'Renombrar',
repeat: 'Repetir',
resend_confirmation_code: "Reenviar Código de Confirmación",
restore: "Restaurar",
save_account_to_get_copy_link: "Por favor, crea una cuenta para continuar.",
save_account_to_publish: 'Por favor, crea una cuenta para continuar.',
save_session_c2a: 'Crea una cuenta para guardar tu sesión actual y evitar así perder tu trabajo.',
scan_qr_c2a: 'Escanea el código de debajo e inicia sesión desde otros dispositivos',
select: "Seleccionar",
select_color: 'Seleccionar color…',
send: "Enviar",
send_password_recovery_email: "Enviar la contraseña al correo de recuperación",
session_saved: "Gracias por crear una cuenta. La sesión ha sido guardada.",
set_new_password: "Establecer una nueva contraseña",
share_to: "Compartir con",
show_all_windows: "Mostrar todas las ventanas",
show_hidden: 'Mostrar ocultos',
sign_in_with_puter: "Inicia sesión con Puter",
sign_up: "Registrarse",
signing_in: "Registrándose…",
size: 'Tamaño',
sort_by: 'Ordenar Por',
start: 'Inicio',
taking_longer_than_usual: 'Tardando un poco más de lo usual. Por favor, espere...',
text_document: 'Documento de Texto',
tos_fineprint: `Pulsando sobre 'Crear una cuenta gratuita' aceptas los <a href="https://puter.com/terms" target="_blank"> términos del servicio</a> de Puter y <a href="https://puter.com/privacy" target="_blank">la política de privacidad</a>.`,
trash: 'Papelera',
type: 'Tipo',
undo: 'Deshacer',
unzip: "Descomprimir",
upload: 'Subir',
upload_here: 'Subir aquí',
username: "Nombre de usuario",
username_changed: 'Nombre de usuario actualizado correctamente.',
versions: "Versiones",
yes_release_it: 'Sí, liberar',
you_have_been_referred_to_puter_by_a_friend: "¡Has sido invitado a Puter por un amigo!",
zip: "Comprimir en Zip",
}
};
export default es;

148
src/i18n/translations/hy.js Normal file
View File

@ -0,0 +1,148 @@
const hy = {
name: "Հայերեն",
code: "hy",
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: "Ստացեք 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: "Մուտք գործել Փութերի միջոցով",
sign_up: "Գրանցվել",
signing_in: "Մուտք է գործում",
size: "Չափ",
sort_by: "Տեսակավորել ըստ՝",
start: "Սկսել",
taking_longer_than_usual: "Սովորականից մի փոքր ավելի երկար է տևում: Խնդրում ենք սպասել...",
text_document: "Text նիշք",
tos_fineprint: `Սեղմելով «Ստեղծել անվճար հաշիվ»՝ դուք համաձայնում եք Փութերի <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: "Դուք ուղղորդվել եք Փութեր ձեր ընկերոջ կողմից:",
zip: "Սեղմել ZIP նիշքի",
},
};
export default hy;

View File

@ -16,8 +16,12 @@ const nb = {
change_password: "Endre passord",
change_username: "Endre brukernavn",
close_all_windows: "Lukk alle vinduer",
close_all_windows_and_log_out: 'Lukk alle vinduer og logg ut',
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_delete_multiple_items: 'Er du sikker på at du vil slette disse elementene permanent?',
confirm_delete_single_item: 'Er du sikker på at du vil slette dette elemente permanent?',
confirm_open_apps_log_out: 'Du har åpene apper, er du sikker på at du vil logge ut?',
confirm_new_password: "Bekreft nytt passord",
contact_us: "Kontakt oss",
contain: "Inneholde",
@ -40,6 +44,7 @@ const nb = {
dir_published_as_website: "%strong% er publisert på:",
disassociate_dir: "Fjern tilknytning fra mappe",
download: "Last ned",
download_file: 'Last ned fil',
downloading: "Laster ned",
email: "E-post",
email_or_username: "E-post eller brukernavn",
@ -58,10 +63,13 @@ const nb = {
html_document: "HTML-dokument",
image: "Bilde",
invite_link: "Invitasjonslenke",
item: 'element',
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",
loading: 'Laster',
log_in: "Logg inn",
log_into_another_account_anyway: 'Logg inn på en annen bruker uansett',
log_out: "Logg ut",
move: "Flytt",
moving: "Flytter",
@ -77,6 +85,7 @@ const nb = {
new_folder: "Ny mappe",
new_password: "Nytt passord",
new_username: "Nytt brukernavn",
no: 'Nei',
no_dir_associated_with_site: "Ingen mappe er tilknyttet denne adressen.",
no_websites_published: "Du har ikke publisert noen nettsteder ennå.",
ok: "OK",
@ -95,8 +104,10 @@ const nb = {
preparing: "Forbereder...",
preparing_for_upload: "Forbereder opplasting...",
properties: "Egenskaper",
proceed_to_login: 'Fortsett til innlogging',
publish: "Publiser",
publish_as_website: "Publiser som nettsted",
plural_suffix: 'er',
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.",
@ -106,13 +117,18 @@ const nb = {
remove_from_taskbar: "Fjern fra oppgavelinjen",
rename: "Gi nytt navn",
repeat: "Gjenta",
replace: 'Erstatt',
replace_all: 'Erstatt alle',
resend_confirmation_code: "Send bekreftelseskoden på nytt",
restore: "Gjenopprett",
save_account: 'Lagre konto',
save_account_to_get_copy_link: "Vennligst opprett en konto for å fortsette.",
save_account_to_publish: "Vennligst opprett en konto for å fortsette.",
save_session: 'Lagre økt',
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",
selected: 'valgt',
select_color: "Velg farge…",
send: "Send",
send_password_recovery_email: "Send e-post for gjenoppretting av passord",
@ -125,6 +141,7 @@ const nb = {
sign_up: "Registrer deg",
signing_in: "Logger inn…",
size: "Størrelse",
skip: 'Hopp over',
sort_by: "Sorter etter",
start: "Start",
taking_longer_than_usual: "Dette tar litt lenger tid enn vanlig. Vennligst vent...",
@ -140,6 +157,7 @@ const nb = {
username_changed: "Brukernavn oppdatert.",
versions: "Versjoner",
yes_release_it: "Ja, frigi den",
yes: 'ja',
you_have_been_referred_to_puter_by_a_friend: "Du har blitt henvist til Puter av en venn!",
zip: "Zip"
}

View File

@ -1,10 +1,13 @@
import ar from './ar.js';
import bn from './bn.js'
import da from './da.js';
import de from './de.js'
import en from './en.js';
import es from './es.js';
import fa from './fa.js';
import fi from './fi.js';
import fr from './fr.js';
import hy from './hy.js';
import it from './it.js';
import ko from './ko.js';
import nb from './nb.js';
@ -12,15 +15,19 @@ import nn from './nn.js';
import ro from './ro.js';
import sv from './sv.js';
import zh from './zh.js';
import emoji from './emoji.js';
export default {
ar,
bn,
da,
de,
en,
es,
fa,
fi,
fr,
hy,
it,
ko,
nb,
@ -28,4 +35,5 @@ export default {
ro,
sv,
zh,
emoji
};

View File

@ -46,9 +46,6 @@ window.initgui = async function(){
if(window.api_origin && puter.APIOrigin !== window.api_origin)
puter.setAPIOrigin(api_origin);
// determine locale
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
// to style or script the page differently for each device type.
@ -530,12 +527,12 @@ window.initgui = async function(){
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[
{
label: 'Replace',
label: i18n('replace'),
value: 'replace',
type: 'primary',
},
{
label: 'Cancel',
label: i18n('cancel'),
value: 'cancel',
},
],
@ -887,12 +884,12 @@ window.initgui = async function(){
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[
{
label: 'Replace',
label: i18n('replace'),
value: 'replace',
type: 'primary',
},
{
label: 'Cancel',
label: i18n('cancel'),
value: 'cancel',
},
],
@ -1328,14 +1325,14 @@ window.initgui = async function(){
let $selected_items = $(active_element).closest(`.item-container`).find(`.item-selected`);
if($selected_items.length > 0){
const alert_resp = await UIAlert({
message: `Are you sure you want to permanently delete these items?`,
message: i18n('confirm_delete_multiple_items'),
buttons:[
{
label: 'Delete',
label: i18n('delete'),
type: 'primary',
},
{
label: 'Cancel'
label: i18n('cancel')
},
]
})
@ -1357,14 +1354,14 @@ window.initgui = async function(){
let $selected_items = $(active_element).closest(`.item-container`).find(`.item-selected[data-path^="${trash_path + '/'}"]`);
if($selected_items.length > 0){
const alert_resp = await UIAlert({
message: `Are you sure you want to permanently delete these items?`,
message: i18n('confirm_delete_multiple_items'),
buttons:[
{
label: 'Delete',
label: i18n('delete'),
type: 'primary',
},
{
label: 'Cancel'
label: i18n('cancel')
},
]
})
@ -1878,26 +1875,28 @@ window.initgui = async function(){
message: `<strong>Save account before logging out!</strong><p>You are using a temporary account and logging out will erase all your data.</p>`,
buttons:[
{
label: 'Save Account',
label: i18n('save_account'),
value: 'save_account',
type: 'primary',
},
{
label: 'Log Out',
label: i18n('log_out'),
value: 'log_out',
type: 'danger',
},
{
label: 'Cancel',
label: i18n('cancel'),
},
]
})
if(alert_resp === 'Save Account'){
if(alert_resp === 'save_account'){
let saved = await UIWindowSaveAccount({
send_confirmation_code: false,
default_username: window.user.username
});
if(saved)
logout();
}else if (alert_resp === 'Log Out'){
}else if (alert_resp === 'log_out'){
logout();
}
else{