Merge pull request #132 from SondreNjaastad/main

More translation
This commit is contained in:
Nariman Jelveh 2024-03-19 15:46:34 -07:00 committed by GitHub
commit 51fb668b66
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 115 additions and 74 deletions

View File

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

View File

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

View File

@ -1223,18 +1223,19 @@ $(document).on('click', '.user-options-menu-btn', async function(e){
// see if there are any open windows, if yes notify user // see if there are any open windows, if yes notify user
if($('.window-app').length > 0){ if($('.window-app').length > 0){
const alert_resp = await UIAlert({ 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:[ buttons:[
{ {
label: 'Close Windows and Log Out', label: i18n('close_all_Windows_and_log_out'),
value: 'close_and_log_out',
type: 'primary', type: 'primary',
}, },
{ {
label: 'Cancel' label: i18n('cancel')
}, },
] ]
}) })
if(alert_resp === 'Close Windows and Log Out') if(alert_resp === 'close_and_log_out')
logout(); logout();
} }
// no open windows // no open windows
@ -1311,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>`, 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:[ buttons:[
{ {
label: 'Save session', label: i18n('save_session'),
value: 'save-session', value: 'save-session',
type: 'primary', type: 'primary',
}, },
{ {
label: 'Log into another account anyway', label: i18n('log_into_another_account_anyway'),
value: 'login', value: 'login',
}, },
{ {
label: 'Cancel' label: i18n('cancel')
}, },
] ]
}) })

View File

@ -159,7 +159,7 @@ function UIItem(options){
h += `</div>`; h += `</div>`;
// name // 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 // 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 += `<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>`; h += `</div>`;
@ -854,14 +854,14 @@ function UIItem(options){
html: i18n('delete_permanently'), html: i18n('delete_permanently'),
onClick: async function(){ onClick: async function(){
const alert_resp = await UIAlert({ const alert_resp = await UIAlert({
message: `Are you sure you want to permanently delete these items?`, message: i18n('confirm_delete_multiple_items'),
buttons:[ buttons:[
{ {
label: 'Delete', label: i18n('delete'),
type: 'primary', type: 'primary',
}, },
{ {
label: 'Cancel' label: i18n('cancel')
}, },
] ]
}) })
@ -1272,14 +1272,14 @@ function UIItem(options){
html: i18n('delete_permanently'), html: i18n('delete_permanently'),
onClick: async function(){ onClick: async function(){
const alert_resp = await UIAlert({ const alert_resp = await UIAlert({
message: `Are you sure you want to permanently delete this item?`, message: i18n('confirm_delete_single_item'),
buttons:[ buttons:[
{ {
label: 'Delete', label: i18n('delete'),
type: 'primary', 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 // provide an 'OK' button if no buttons are provided
if(!options.buttons || options.buttons.length === 0){ if(!options.buttons || options.buttons.length === 0){
options.buttons = [ options.buttons = [
{label: i18n('Cancel'), value: false, type: 'default'}, {label: i18n('cancel'), value: false, type: 'default'},
{label: i18n('OK'), value: true, type: 'primary'}, {label: i18n('OK'), value: true, type: 'primary'},
] ]
} }
@ -52,7 +52,7 @@ function UIPrompt(options){
// buttons // buttons
if(options.buttons && options.buttons.length > 0){ if(options.buttons && options.buttons.length > 0){
h += `<div style="overflow:hidden; margin-top:20px; float:right;">`; 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 += `<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>`; h += `</div>`;
} }

View File

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

View File

@ -314,7 +314,7 @@ async function UIWindow(options) {
// Loading spinner // Loading spinner
h += `<div class="explorer-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 +=`<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>`; h += `</div>`;
} }
@ -2018,19 +2018,19 @@ async function UIWindow(options) {
// Empty Trash // Empty Trash
// ------------------------------------------- // -------------------------------------------
{ {
html: "Empty Trash", html: i18n('empty_trash'),
disabled: false, disabled: false,
onClick: async function(){ onClick: async function(){
const alert_resp = await UIAlert({ const alert_resp = await UIAlert({
message: i18n('empty_trash_confirmation'), message: i18n('empty_trash_confirmation'),
buttons:[ buttons:[
{ {
label: 'Yes', label: i18n('yes'),
value: 'yes', value: 'yes',
type: 'primary', type: 'primary',
}, },
{ {
label: 'No', label: i18n('no'),
value: '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>`; 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++){ 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; return str;
} }
@ -2920,7 +2920,7 @@ window.scale_window = (el_window)=>{
window.update_explorer_footer_item_count = function(el_window){ window.update_explorer_footer_item_count = function(el_window){
//update dir count in explorer footer //update dir count in explorer footer
let item_count = $(el_window).find('.item').length; 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){ 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; let item_count = $(el_window).find('.item-selected').length;
if(item_count > 0){ if(item_count > 0){
$(el_window).find('.explorer-footer-seperator, .explorer-footer-selected-items-count').show(); $(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{ }else{
$(el_window).find('.explorer-footer-seperator, .explorer-footer-selected-items-count').hide(); $(el_window).find('.explorer-footer-seperator, .explorer-footer-selected-items-count').hide();
} }

View File

@ -29,7 +29,7 @@ async function UIWindowDownloadProgress(options){
// Progress report // 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;">`; 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 // 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>`; h += `</div>`;
// Progress // Progress
h += `<div class="download-progress-bar-container" style="clear:both; margin-top:20px; border-radius:3px;">`; 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; margin-bottom: 50px;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
color: #596c7c;">Loading...</p>`); color: #596c7c;">${i18n('loading')}...</p>`);
}, 1000); }, 1000);
puter.hosting.list().then(function (sites){ puter.hosting.list().then(function (sites){
@ -144,7 +144,7 @@ $(document).on('click', '.mywebsites-site-setting', function(e){
type: 'primary', type: 'primary',
}, },
{ {
label: 'Cancel' label: i18n('cancel')
}, },
] ]
}) })

View File

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

View File

@ -1031,7 +1031,7 @@ window.show_save_account_notice_if_needed = function(message){
body_icon: window.icons['reminder.svg'], body_icon: window.icons['reminder.svg'],
buttons:[ buttons:[
{ {
label: 'Save session', label: i18n('save_session'),
value: 'save-session', value: 'save-session',
type: 'primary', type: 'primary',
}, },
@ -1565,17 +1565,17 @@ window.copy_clipboard_items = async function(dest_path, dest_container_element){
const alert_resp = await UIAlert({ const alert_resp = await UIAlert({
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`, message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[ buttons:[
{label: 'Replace', type: 'primary'}, {label: i18n('replace'), type: 'primary', value: 'replace'},
... (clipboard.length > 1) ? [{label: 'Replace all'}] : [], ... (clipboard.length > 1) ? [{label: i18n('replace_all'), value: 'replace_all'}] : [],
... (clipboard.length > 1) ? [{label: 'Skip'}] : [{label: 'Cancel'}], ... (clipboard.length > 1) ? [{label: i18n('skip'), value: 'skip'}] : [{label: i18n('cancel'), value: 'cancel'}],
] ]
}) })
if(alert_resp === 'Replace'){ if(alert_resp === 'replace'){
overwrite = true; overwrite = true;
}else if (alert_resp === 'Replace all'){ }else if (alert_resp === 'replace_all'){
overwrite = true; overwrite = true;
overwrite_all = 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; item_with_same_name_already_exists = false;
} }
} }
@ -1662,17 +1662,17 @@ window.copy_items = function(el_items, dest_path){
const alert_resp = await UIAlert({ const alert_resp = await UIAlert({
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`, message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[ buttons:[
{ label: 'Replace', type: 'primary' }, { label: i18n('replace'), type: 'primary', value: 'replace' },
... (el_items.length > 1) ? [{label: 'Replace all'}] : [], ... (el_items.length > 1) ? [{label: i18n('replace_all'), value: 'replace_all'}] : [],
... (el_items.length > 1) ? [{label: 'Skip'}] : [{label: 'Cancel'}], ... (el_items.length > 1) ? [{label: i18n('skip'), value: 'skip'}] : [{label: i18n('cancel'), value: 'cancel'}],
] ]
}) })
if(alert_resp === 'Replace'){ if(alert_resp === 'replace'){
overwrite = true; overwrite = true;
}else if (alert_resp === 'Replace all'){ }else if (alert_resp === 'replace_all'){
overwrite = true; overwrite = true;
overwrite_all = 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; item_with_same_name_already_exists = false;
} }
} }
@ -2208,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?', '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', type: 'primary',
}, },
{ {
label: 'Cancel' label: i18n('cancel')
} }
]) ])
if(alert_resp === 'Download File'){ if(alert_resp === 'download_file'){
trigger_download([item_path]); trigger_download([item_path]);
} }
return; return;
@ -2586,17 +2587,17 @@ window.move_items = async function(el_items, dest_path, is_undo = false){
const alert_resp = await UIAlert({ const alert_resp = await UIAlert({
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`, message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[ buttons:[
{ label: 'Replace', type: 'primary',}, { label: i18n('replace'), type: 'primary', value: 'replace' },
... (el_items.length > 1) ? [{label: 'Replace all'}] : [], ... (el_items.length > 1) ? [{label: i18n('replace_all'), value: 'replace_all'}] : [],
... (el_items.length > 1) ? [{label: 'Skip'}] : [{label: 'Cancel'}], ... (el_items.length > 1) ? [{label: i18n('skip'), value: 'skip'}] : [{label: i18n('cancel'), value: 'cancel'}],
] ]
}) })
if(alert_resp === 'Replace'){ if(alert_resp === 'replace'){
overwrite = true; overwrite = true;
}else if (alert_resp === 'Replace all'){ }else if (alert_resp === 'replace_all'){
overwrite = true; overwrite = true;
overwrite_all = 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; item_with_same_name_already_exists = false;
} }
} }
@ -2973,15 +2974,15 @@ window.upload_items = async function(items, dest_path){
window.empty_trash = async function(){ window.empty_trash = async function(){
const alert_resp = await UIAlert({ const alert_resp = await UIAlert({
message: `Are you sure you want to permanently delete the items in Trash?`, message: i18n('empty_trash_confirmation'),
buttons:[ buttons:[
{ {
label: 'Yes', label: i18n('yes'),
value: 'yes', value: 'yes',
type: 'primary', type: 'primary',
}, },
{ {
label: 'No', label: i18n('no'),
value: 'no', value: 'no',
}, },
] ]

View File

@ -16,8 +16,12 @@ const en = {
change_password: "Change Password", change_password: "Change Password",
change_username: "Change Username", change_username: "Change Username",
close_all_windows: "Close All Windows", close_all_windows: "Close All Windows",
close_all_windows_and_log_out: 'Close Windows and Log Out',
color: 'Color', 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_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", confirm_new_password: "Confirm New Password",
contact_us: "Contact Us", contact_us: "Contact Us",
contain: 'Contain', contain: 'Contain',
@ -40,6 +44,7 @@ const en = {
dir_published_as_website: `%strong% has been published to:`, dir_published_as_website: `%strong% has been published to:`,
disassociate_dir: "Disassociate Directory", disassociate_dir: "Disassociate Directory",
download: 'Download', download: 'Download',
download_file: 'Download File',
downloading: "Downloading", downloading: "Downloading",
email: "Email", email: "Email",
email_or_username: "Email or Username", email_or_username: "Email or Username",
@ -58,10 +63,13 @@ const en = {
html_document: 'HTML document', html_document: 'HTML document',
image: 'Image', image: 'Image',
invite_link: "Invite Link", 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.`, 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', jpeg_image: 'JPEG image',
keep_in_taskbar: 'Keep in Taskbar', keep_in_taskbar: 'Keep in Taskbar',
loading: 'Loading',
log_in: "Log In", log_in: "Log In",
log_into_another_account_anyway: 'Log into another account anyway',
log_out: 'Log Out', log_out: 'Log Out',
move: 'Move', move: 'Move',
moving: "Moving", moving: "Moving",
@ -77,6 +85,7 @@ const en = {
new_folder: 'New folder', new_folder: 'New folder',
new_password: "New Password", new_password: "New Password",
new_username: "New Username", new_username: "New Username",
no: 'No',
no_dir_associated_with_site: 'No directory associated with this address.', no_dir_associated_with_site: 'No directory associated with this address.',
no_websites_published: "You have not published any websites yet.", no_websites_published: "You have not published any websites yet.",
ok: 'OK', 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>`, powered_by_puter_js: `Powered by <a href="https://docs.puter.com/" target="_blank">Puter.js</a>`,
preparing: "Preparing...", preparing: "Preparing...",
preparing_for_upload: "Preparing for upload...", preparing_for_upload: "Preparing for upload...",
proceed_to_login: 'Proceed to login',
properties: "Properties", properties: "Properties",
publish: "Publish", publish: "Publish",
publish_as_website: 'Publish as website', publish_as_website: 'Publish as website',
plural_suffix: 's',
recent: "Recent", recent: "Recent",
recover_password: "Recover Password", 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_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', remove_from_taskbar:'Remove from Taskbar',
rename: 'Rename', rename: 'Rename',
repeat: 'Repeat', repeat: 'Repeat',
replace: 'Replace',
replace_all: 'Erstatt alle',
resend_confirmation_code: "Re-send Confirmation Code", resend_confirmation_code: "Re-send Confirmation Code",
restore: "Restore", restore: "Restore",
save_account: 'Save account',
save_account_to_get_copy_link: "Please create an account to proceed.", save_account_to_get_copy_link: "Please create an account to proceed.",
save_account_to_publish: '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.', 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', scan_qr_c2a: 'Scan the code below to log into this session from other devices',
select: "Select", select: "Select",
selected: 'selected',
select_color: 'Select color…', select_color: 'Select color…',
send: "Send", send: "Send",
send_password_recovery_email: "Send Password Recovery Email", send_password_recovery_email: "Send Password Recovery Email",
@ -125,6 +141,7 @@ const en = {
sign_up: "Sign Up", sign_up: "Sign Up",
signing_in: "Signing in…", signing_in: "Signing in…",
size: 'Size', size: 'Size',
skip: 'Skip',
sort_by: 'Sort by', sort_by: 'Sort by',
start: 'Start', start: 'Start',
taking_longer_than_usual: 'Taking a little longer than usual. Please wait...', taking_longer_than_usual: 'Taking a little longer than usual. Please wait...',
@ -139,6 +156,7 @@ const en = {
username: "Username", username: "Username",
username_changed: 'Username updated successfully.', username_changed: 'Username updated successfully.',
versions: "Versions", versions: "Versions",
yes: 'Yes',
yes_release_it: 'Yes, Release It', yes_release_it: 'Yes, Release It',
you_have_been_referred_to_puter_by_a_friend: "You have been referred to Puter by a friend!", you_have_been_referred_to_puter_by_a_friend: "You have been referred to Puter by a friend!",
zip: "Zip", zip: "Zip",

View File

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

View File

@ -527,12 +527,12 @@ window.initgui = async function(){
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`, message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[ buttons:[
{ {
label: 'Replace', label: i18n('replace'),
value: 'replace', value: 'replace',
type: 'primary', type: 'primary',
}, },
{ {
label: 'Cancel', label: i18n('cancel'),
value: 'cancel', value: 'cancel',
}, },
], ],
@ -884,12 +884,12 @@ window.initgui = async function(){
message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`, message: `<strong>${html_encode(err.entry_name)}</strong> already exists.`,
buttons:[ buttons:[
{ {
label: 'Replace', label: i18n('replace'),
value: 'replace', value: 'replace',
type: 'primary', type: 'primary',
}, },
{ {
label: 'Cancel', label: i18n('cancel'),
value: 'cancel', value: 'cancel',
}, },
], ],
@ -1325,14 +1325,14 @@ window.initgui = async function(){
let $selected_items = $(active_element).closest(`.item-container`).find(`.item-selected`); let $selected_items = $(active_element).closest(`.item-container`).find(`.item-selected`);
if($selected_items.length > 0){ if($selected_items.length > 0){
const alert_resp = await UIAlert({ const alert_resp = await UIAlert({
message: `Are you sure you want to permanently delete these items?`, message: i18n('confirm_delete_multiple_items'),
buttons:[ buttons:[
{ {
label: 'Delete', label: i18n('delete'),
type: 'primary', type: 'primary',
}, },
{ {
label: 'Cancel' label: i18n('cancel')
}, },
] ]
}) })
@ -1354,14 +1354,14 @@ window.initgui = async function(){
let $selected_items = $(active_element).closest(`.item-container`).find(`.item-selected[data-path^="${trash_path + '/'}"]`); let $selected_items = $(active_element).closest(`.item-container`).find(`.item-selected[data-path^="${trash_path + '/'}"]`);
if($selected_items.length > 0){ if($selected_items.length > 0){
const alert_resp = await UIAlert({ const alert_resp = await UIAlert({
message: `Are you sure you want to permanently delete these items?`, message: i18n('confirm_delete_multiple_items'),
buttons:[ buttons:[
{ {
label: 'Delete', label: i18n('delete'),
type: 'primary', type: 'primary',
}, },
{ {
label: 'Cancel' label: i18n('cancel')
}, },
] ]
}) })
@ -1875,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>`, 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:[ buttons:[
{ {
label: 'Save Account', label: i18n('save_account'),
value: 'save_account',
type: 'primary', type: 'primary',
}, },
{ {
label: 'Log Out', label: i18n('log_out'),
value: 'log_out',
type: 'danger', type: 'danger',
}, },
{ {
label: 'Cancel', label: i18n('cancel'),
}, },
] ]
}) })
if(alert_resp === 'Save Account'){ if(alert_resp === 'save_account'){
let saved = await UIWindowSaveAccount({ let saved = await UIWindowSaveAccount({
send_confirmation_code: false, send_confirmation_code: false,
default_username: window.user.username default_username: window.user.username
}); });
if(saved) if(saved)
logout(); logout();
}else if (alert_resp === 'Log Out'){ }else if (alert_resp === 'log_out'){
logout(); logout();
} }
else{ else{