Merge branch 'release-v2.1.4' into feature/task-activities-by-user
This commit is contained in:
97
worklenz-frontend/public/js/analytics.js
Normal file
97
worklenz-frontend/public/js/analytics.js
Normal file
@@ -0,0 +1,97 @@
|
||||
/**
|
||||
* Google Analytics initialization module
|
||||
* Handles analytics loading and privacy notices
|
||||
*/
|
||||
|
||||
class AnalyticsManager {
|
||||
constructor() {
|
||||
this.isProduction = window.location.hostname === 'app.worklenz.com';
|
||||
this.trackingId = this.isProduction ? 'G-7KSRKQ1397' : 'G-3LM2HGWEXG';
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize Google Analytics asynchronously
|
||||
*/
|
||||
init() {
|
||||
const loadAnalytics = () => {
|
||||
// Load the Google Analytics script
|
||||
const script = document.createElement('script');
|
||||
script.async = true;
|
||||
script.src = `https://www.googletagmanager.com/gtag/js?id=${this.trackingId}`;
|
||||
document.head.appendChild(script);
|
||||
|
||||
// Initialize Google Analytics
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag('js', new Date());
|
||||
gtag('config', this.trackingId);
|
||||
};
|
||||
|
||||
// Use requestIdleCallback if available, otherwise setTimeout
|
||||
if ('requestIdleCallback' in window) {
|
||||
requestIdleCallback(loadAnalytics, { timeout: 2000 });
|
||||
} else {
|
||||
setTimeout(loadAnalytics, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show privacy notice for non-production environments
|
||||
*/
|
||||
showPrivacyNotice() {
|
||||
const notice = document.createElement('div');
|
||||
notice.style.cssText = `
|
||||
position: fixed;
|
||||
bottom: 16px;
|
||||
right: 16px;
|
||||
background: #222;
|
||||
color: #f5f5f5;
|
||||
padding: 12px 16px 10px 16px;
|
||||
border-radius: 7px;
|
||||
box-shadow: 0 2px 8px rgba(0,0,0,0.18);
|
||||
z-index: 1000;
|
||||
max-width: 320px;
|
||||
font-family: Inter, sans-serif;
|
||||
border: 1px solid #333;
|
||||
font-size: 0.95rem;
|
||||
`;
|
||||
notice.innerHTML = `
|
||||
<div style="margin-bottom: 6px; font-weight: 600; color: #fff; font-size: 1rem;">Analytics Notice</div>
|
||||
<div style="margin-bottom: 8px; color: #f5f5f5;">This app uses Google Analytics for anonymous usage stats. No personal data is tracked.</div>
|
||||
<button id="analytics-notice-btn" style="padding: 5px 14px; background: #1890ff; color: white; border: none; border-radius: 3px; cursor: pointer; font-size: 0.95rem;">Got it</button>
|
||||
`;
|
||||
document.body.appendChild(notice);
|
||||
|
||||
// Add event listener to button
|
||||
const btn = notice.querySelector('#analytics-notice-btn');
|
||||
btn.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
localStorage.setItem('privacyNoticeShown', 'true');
|
||||
notice.remove();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if privacy notice should be shown
|
||||
*/
|
||||
checkPrivacyNotice() {
|
||||
const isProduction =
|
||||
window.location.hostname === 'worklenz.com' ||
|
||||
window.location.hostname === 'app.worklenz.com';
|
||||
const noticeShown = localStorage.getItem('privacyNoticeShown') === 'true';
|
||||
|
||||
// Show notice if not in production and not shown before
|
||||
if (!isProduction && !noticeShown) {
|
||||
this.showPrivacyNotice();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize analytics when DOM is ready
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const analytics = new AnalyticsManager();
|
||||
analytics.init();
|
||||
analytics.checkPrivacyNotice();
|
||||
});
|
||||
124
worklenz-frontend/public/js/hubspot.js
Normal file
124
worklenz-frontend/public/js/hubspot.js
Normal file
@@ -0,0 +1,124 @@
|
||||
/**
|
||||
* HubSpot Chat Widget integration module
|
||||
* Handles widget loading and dark mode theming
|
||||
*/
|
||||
|
||||
class HubSpotManager {
|
||||
constructor() {
|
||||
this.isProduction = window.location.hostname === 'app.worklenz.com';
|
||||
this.scriptId = 'hs-script-loader';
|
||||
this.scriptSrc = '//js.hs-scripts.com/22348300.js';
|
||||
this.styleId = 'hubspot-dark-mode-override';
|
||||
}
|
||||
|
||||
/**
|
||||
* Load HubSpot script with dark mode support
|
||||
*/
|
||||
init() {
|
||||
if (!this.isProduction) return;
|
||||
|
||||
const loadHubSpot = () => {
|
||||
const script = document.createElement('script');
|
||||
script.type = 'text/javascript';
|
||||
script.id = this.scriptId;
|
||||
script.async = true;
|
||||
script.defer = true;
|
||||
script.src = this.scriptSrc;
|
||||
|
||||
// Configure dark mode after script loads
|
||||
script.onload = () => this.setupDarkModeSupport();
|
||||
|
||||
document.body.appendChild(script);
|
||||
};
|
||||
|
||||
// Use requestIdleCallback for better performance
|
||||
if ('requestIdleCallback' in window) {
|
||||
requestIdleCallback(loadHubSpot, { timeout: 3000 });
|
||||
} else {
|
||||
setTimeout(loadHubSpot, 2000);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup dark mode theme switching for HubSpot widget
|
||||
*/
|
||||
setupDarkModeSupport() {
|
||||
const applyTheme = () => {
|
||||
const isDark = document.documentElement.classList.contains('dark');
|
||||
|
||||
// Remove existing theme styles
|
||||
const existingStyle = document.getElementById(this.styleId);
|
||||
if (existingStyle) {
|
||||
existingStyle.remove();
|
||||
}
|
||||
|
||||
if (isDark) {
|
||||
this.injectDarkModeCSS();
|
||||
}
|
||||
};
|
||||
|
||||
// Apply initial theme after delay to ensure widget is loaded
|
||||
setTimeout(applyTheme, 1000);
|
||||
|
||||
// Watch for theme changes
|
||||
const observer = new MutationObserver(applyTheme);
|
||||
observer.observe(document.documentElement, {
|
||||
attributes: true,
|
||||
attributeFilter: ['class']
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Inject CSS for dark mode styling
|
||||
*/
|
||||
injectDarkModeCSS() {
|
||||
const style = document.createElement('style');
|
||||
style.id = this.styleId;
|
||||
style.textContent = `
|
||||
/* HubSpot Chat Widget Dark Mode Override */
|
||||
/*
|
||||
Note: We can only style the container backgrounds, not the widget UI inside the iframe.
|
||||
HubSpot does not currently support external dark mode theming for the chat UI itself.
|
||||
*/
|
||||
#hubspot-conversations-inline-parent,
|
||||
#hubspot-conversations-iframe-container {
|
||||
background: #141414 !important;
|
||||
}
|
||||
/* Target HubSpot widget container backgrounds */
|
||||
#hubspot-conversations-inline-parent div,
|
||||
#hubspot-conversations-iframe-container div,
|
||||
[data-test-id="chat-widget"] div {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
/* Ensure Worklenz app elements are not affected by HubSpot styles */
|
||||
.ant-menu,
|
||||
.ant-menu *,
|
||||
[class*="settings"],
|
||||
[class*="sidebar"],
|
||||
.worklenz-app *:not([id*="hubspot"]):not([class*="widget"]) {
|
||||
filter: none !important;
|
||||
}
|
||||
`;
|
||||
document.head.appendChild(style);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove HubSpot widget and associated styles
|
||||
*/
|
||||
cleanup() {
|
||||
const script = document.getElementById(this.scriptId);
|
||||
const style = document.getElementById(this.styleId);
|
||||
|
||||
if (script) script.remove();
|
||||
if (style) style.remove();
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize HubSpot integration
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const hubspot = new HubSpotManager();
|
||||
hubspot.init();
|
||||
|
||||
// Make available globally for potential cleanup
|
||||
window.HubSpotManager = hubspot;
|
||||
});
|
||||
@@ -1,31 +1,194 @@
|
||||
{
|
||||
"continue": "Vazhdo",
|
||||
|
||||
"setupYourAccount": "Konfiguro Llogarinë Tënde në Worklenz.",
|
||||
"organizationStepTitle": "Emërtoni Organizatën Tuaj",
|
||||
"organizationStepLabel": "Zgjidhni një emër për llogarinë tuaj në Worklenz.",
|
||||
|
||||
"projectStepTitle": "Krijoni projektin tuaj të parë",
|
||||
"projectStepLabel": "Në cilin projekt po punoni aktualisht?",
|
||||
"setupYourAccount": "Konfiguro llogarinë tënde.",
|
||||
"organizationStepTitle": "Emërto organizatën tënde",
|
||||
"organizationStepLabel": "Zgjidh një emër për llogarinë tënde në Worklenz.",
|
||||
"organizationStepWelcome": "Konfiguro llogarinë tënde në Worklenz.",
|
||||
"organizationStepDescription": "Le të fillojmë duke konfiguruar organizatën tënde. Kjo do të jetë hapësira kryesore e punës për ekipin tënd.",
|
||||
"organizationStepTooltip": "Ky emër do të shfaqet në hapësirën tënde të punës dhe mund të ndryshohet më vonë në cilësime.",
|
||||
"organizationStepNeedIdeas": "Keni nevojë për ide?",
|
||||
"organizationStepUseDetected": "Përdorimi i zbuluar:",
|
||||
"organizationStepCharacters": "karaktere",
|
||||
"organizationStepGoodLength": "Gjatësi e mirë",
|
||||
"organizationStepTooShort": "Shumë i shkurtër",
|
||||
"organizationStepNamingTips": "Këshilla për emërtimin",
|
||||
"organizationStepTip1": "Mbaje të thjeshtë dhe të lehtë për t'u mbajtur mend",
|
||||
"organizationStepTip2": "Përfaqëso industrinë ose vlerat e tua",
|
||||
"organizationStepTip3": "Mendo për rritjen në të ardhmen",
|
||||
"organizationStepTip4": "Bëje unik dhe të përshtatshëm për markë",
|
||||
"organizationStepSuggestionsTitle": "Sugjerime për emra",
|
||||
"organizationStepCategory1": "Kompani Teknologjie",
|
||||
"organizationStepCategory2": "Agjenci Kreative",
|
||||
"organizationStepCategory3": "Konsulencë",
|
||||
"organizationStepCategory4": "Startupe",
|
||||
"organizationStepSuggestionsNote": "Këto janë vetëm shembuj për të të ndihmuar të fillosh. Zgjidh diçka që përfaqëson organizatën tënde.",
|
||||
"organizationStepPrivacyNote": "Emri i organizatës tënde është privat dhe i dukshëm vetëm për anëtarët e ekipit.",
|
||||
"projectStepTitle": "Krijo projektin tënd të parë",
|
||||
"projectStepLabel": "Në cilin projekt po punon tani?",
|
||||
"projectStepPlaceholder": "p.sh. Plani i Marketingut",
|
||||
|
||||
"tasksStepTitle": "Krijoni detyrat tuaja të para",
|
||||
"tasksStepLabel": "Shkruani disa detyra që do të kryeni në",
|
||||
"tasksStepTitle": "Krijo detyrat e tua të para",
|
||||
"tasksStepLabel": "Shkruaj disa detyra që do të kryesh në",
|
||||
"tasksStepAddAnother": "Shto një tjetër",
|
||||
|
||||
"emailPlaceholder": "Adresa email",
|
||||
"invalidEmail": "Ju lutemi vendosni një adresë email të vlefshme",
|
||||
"emailPlaceholder": "Adresa e emailit",
|
||||
"invalidEmail": "Ju lutem vendosni një adresë emaili të vlefshme",
|
||||
"or": "ose",
|
||||
"templateButton": "Importo nga shablloni",
|
||||
"goBack": "Kthehu Mbrapa",
|
||||
"goBack": "Kthehu mbrapa",
|
||||
"cancel": "Anulo",
|
||||
"create": "Krijo",
|
||||
"templateDrawerTitle": "Zgjidh nga shabllonet",
|
||||
"step3InputLabel": "Fto me email",
|
||||
"addAnother": "Shto një tjetër",
|
||||
"skipForNow": "Kalo tani për tani",
|
||||
"formTitle": "Krijoni detyrën tuaj të parë.",
|
||||
"step3Title": "Fto ekipin tënd të punojë me",
|
||||
"skipForNow": "Kalo për tani",
|
||||
"skipping": "Duke kaluar...",
|
||||
"formTitle": "Krijo detyrën tënde të parë.",
|
||||
"step3Title": "Fto ekipin tënd për të punuar së bashku",
|
||||
"maxMembers": " (Mund të ftoni deri në 5 anëtarë)",
|
||||
"maxTasks": " (Mund të krijoni deri në 5 detyra)"
|
||||
"maxTasks": " (Mund të krijoni deri në 5 detyra)",
|
||||
"membersStepTitle": "Fto ekipin tënd",
|
||||
"membersStepDescription": "Shto anëtarë ekipi në \"{{organizationName}}\" dhe filloni bashkëpunimin",
|
||||
"memberPlaceholder": "Anëtari i ekipit {{index}} - Shkruani adresën e emailit",
|
||||
"validEmailAddress": "Adresë emaili e vlefshme",
|
||||
"addAnotherTeamMember": "Shto një anëtar tjetër të ekipit ({{current}}/{{max}})",
|
||||
"canInviteLater": "Gjithmonë mund të ftoni anëtarë të ekipit më vonë",
|
||||
"skipStepDescription": "Nuk i keni adresat e emailit gati? Asnjë problem! Mund ta kaloni këtë hap dhe të ftoni anëtarë nga paneli i projektit më vonë.",
|
||||
"orgCategoryTech": "Kompani Teknologjie",
|
||||
"orgCategoryCreative": "Agjenci Kreative",
|
||||
"orgCategoryConsulting": "Konsulencë",
|
||||
"orgCategoryStartups": "Startupe",
|
||||
"namingTip1": "Mbaje të thjeshtë dhe të lehtë për t'u mbajtur mend",
|
||||
"namingTip2": "Përfaqëso industrinë ose vlerat e tua",
|
||||
"namingTip3": "Mendo për rritjen në të ardhmen",
|
||||
"namingTip4": "Bëje unik dhe të përshtatshëm për markë",
|
||||
"aboutYouTitle": "Na trego për veten tënde",
|
||||
"aboutYouDescription": "Na ndihmo të personalizojmë përvojën tënde",
|
||||
"orgTypeQuestion": "Cila përshkruan më mirë organizatën tënde?",
|
||||
"userRoleQuestion": "Cili është roli yt?",
|
||||
"yourNeedsTitle": "Cilat janë nevojat e tua kryesore?",
|
||||
"yourNeedsDescription": "Zgjidh të gjitha që aplikohen për të na ndihmuar të konfigurojmë hapësirën tënde të punës",
|
||||
"yourNeedsQuestion": "Si do ta përdorësh kryesisht Worklenz?",
|
||||
"useCaseTaskOrg": "Organizo dhe ndiq detyrat",
|
||||
"useCaseTeamCollab": "Puno së bashku pa pengesa",
|
||||
"useCaseResourceMgmt": "Menaxho kohën dhe burimet",
|
||||
"useCaseClientComm": "Qëndro i lidhur me klientët",
|
||||
"useCaseTimeTrack": "Monitoro orët e projektit",
|
||||
"useCaseOther": "Diçka tjetër",
|
||||
"selectedText": "zgjedhur",
|
||||
"previousToolsQuestion": "Çfarë mjetesh ke përdorur më parë? (Opsionale)",
|
||||
"discoveryTitle": "Edhe një gjë e fundit...",
|
||||
"discoveryDescription": "Na ndihmo të kuptojmë si e zbulove Worklenz",
|
||||
"discoveryQuestion": "Si dëgjove për ne?",
|
||||
"allSetTitle": "Çdo gjë gati!",
|
||||
"allSetDescription": "Le të krijojmë projektin tënd të parë dhe të fillojmë me Worklenz",
|
||||
"surveyCompleteTitle": "Faleminderit!",
|
||||
"surveyCompleteDescription": "Përgjigjet tuaja na ndihmojnë të përmirësojmë Worklenz për të gjithë",
|
||||
"aboutYouStepName": "Rreth teje",
|
||||
"yourNeedsStepName": "Nevojat e tua",
|
||||
"discoveryStepName": "Zbulimi",
|
||||
"stepProgress": "Hapi {step} nga 3: {title}",
|
||||
"projectStepHeader": "Le të krijojmë projektin tënd të parë",
|
||||
"projectStepSubheader": "Fillo nga e para ose përdor një shabllon për të filluar më shpejt",
|
||||
"startFromScratch": "Fillo nga e para",
|
||||
"templateSelected": "Shablloni i zgjedhur më poshtë",
|
||||
"quickSuggestions": "Sugjerime të shpejta:",
|
||||
"orText": "OSE",
|
||||
"startWithTemplate": "Fillo me një shabllon",
|
||||
"clearToSelectTemplate": "Pastro emrin e projektit më sipër për të zgjedhur një shabllon",
|
||||
"templateHeadStart": "Fillo më shpejt me struktura të gatshme projekti",
|
||||
"browseAllTemplates": "Shfleto të gjitha shabllonet",
|
||||
"templatesAvailable": "15+ shabllone të specializuara sipas industrisë në dispozicion",
|
||||
"chooseTemplate": "Zgjidh një shabllon që i përshtatet llojit të projektit tënd",
|
||||
"createProject": "Krijo projekt",
|
||||
"templateSoftwareDev": "Zhvillim Softueri",
|
||||
"templateSoftwareDesc": "Sprint-e agile, ndjekje gabimesh, lëshime",
|
||||
"templateMarketing": "Fushatë Marketingu",
|
||||
"templateMarketingDesc": "Planifikim fushate, kalendar përmbajtjesh",
|
||||
"templateConstruction": "Projekt Ndërtimi",
|
||||
"templateConstructionDesc": "Faza, leje, kontraktorë",
|
||||
"templateStartup": "Lansim Startup-i",
|
||||
"templateStartupDesc": "Zhvillim MVP, financim, rritje",
|
||||
"tasksStepDescription": "Ndaji \"{{projectName}}\" në detyra të veprueshme për të filluar",
|
||||
"taskPlaceholder": "Detyra {{index}} - p.sh., Çfarë duhet bërë?",
|
||||
"addAnotherTask": "Shto një detyrë tjetër ({{current}}/{{max}})",
|
||||
"surveyStepTitle": "Na trego për veten tënde",
|
||||
"surveyStepLabel": "Na ndihmo të personalizojmë përvojën tënde në Worklenz duke iu përgjigjur disa pyetjeve.",
|
||||
"organizationType": "Cila përshkruan më mirë organizatën tënde?",
|
||||
"organizationTypeFreelancer": "Freelancer",
|
||||
"organizationTypeStartup": "Startup",
|
||||
"organizationTypeSmallMediumBusiness": "Biznes i Vogël ose i Mesëm",
|
||||
"organizationTypeAgency": "Agjenci",
|
||||
"organizationTypeEnterprise": "Ndërmarrje",
|
||||
"organizationTypeOther": "Tjetër",
|
||||
"userRole": "Cili është roli yt?",
|
||||
"userRoleFounderCeo": "Themelues / CEO",
|
||||
"userRoleProjectManager": "Menaxher Projekti",
|
||||
"userRoleSoftwareDeveloper": "Zhvillues Softueri",
|
||||
"userRoleDesigner": "Dizajner",
|
||||
"userRoleOperations": "Operacionet",
|
||||
"userRoleOther": "Tjetër",
|
||||
"mainUseCases": "Për çfarë do ta përdorësh kryesisht Worklenz?",
|
||||
"mainUseCasesTaskManagement": "Menaxhim detyrash",
|
||||
"mainUseCasesTeamCollaboration": "Bashkëpunim ekipi",
|
||||
"mainUseCasesResourcePlanning": "Planifikim burimesh",
|
||||
"mainUseCasesClientCommunication": "Komunikim & raportim me klientët",
|
||||
"mainUseCasesTimeTracking": "Ndjekje kohe",
|
||||
"mainUseCasesOther": "Tjetër",
|
||||
"previousTools": "Çfarë mjetesh ke përdorur para Worklenz?",
|
||||
"previousToolsPlaceholder": "p.sh. Trello, Asana, Monday.com",
|
||||
"howHeardAbout": "Si dëgjove për Worklenz?",
|
||||
"howHeardAboutGoogleSearch": "Kërkim në Google",
|
||||
"howHeardAboutTwitter": "Twitter",
|
||||
"howHeardAboutLinkedin": "LinkedIn",
|
||||
"howHeardAboutFriendColleague": "Një mik ose koleg",
|
||||
"howHeardAboutBlogArticle": "Një blog ose artikull",
|
||||
"howHeardAboutOther": "Tjetër",
|
||||
|
||||
"aboutYouStepTitle": "Na trego për veten",
|
||||
"aboutYouStepDescription": "Na ndihmo të personalizojmë përvojën tënde",
|
||||
"yourNeedsStepTitle": "Cilat janë nevojat e tua kryesore?",
|
||||
"yourNeedsStepDescription": "Zgjidh të gjitha që aplikohen për të na ndihmuar të konfigurojmë hapësirën tënde të punës",
|
||||
"selected": "zgjedhur",
|
||||
"previousToolsLabel": "Çfarë mjetesh ke përdorur më parë? (Opsionale)",
|
||||
|
||||
"roleSuggestions": {
|
||||
"designer": "UI/UX, Grafikë, Kreativ",
|
||||
"developer": "Frontend, Backend, Full-stack",
|
||||
"projectManager": "Planifikim, Koordinim",
|
||||
"marketing": "Përmbajtje, Media Sociale, Rritje",
|
||||
"sales": "Zhvillim Biznesi, Marrëdhënie me Klientë",
|
||||
"operations": "Administratë, HR, Financa"
|
||||
},
|
||||
|
||||
"languages": {
|
||||
"en": "Anglisht",
|
||||
"es": "Spanjisht",
|
||||
"pt": "Portugalisht",
|
||||
"de": "Gjermanisht",
|
||||
"alb": "Shqip",
|
||||
"zh": "Kinezçe"
|
||||
},
|
||||
|
||||
"orgSuggestions": {
|
||||
"tech": ["TechCorp", "DevStudio", "CodeCraft", "PixelForge"],
|
||||
"creative": ["Creative Hub", "Design Studio", "Brand Works", "Visual Arts"],
|
||||
"consulting": ["Strategy Group", "Business Solutions", "Expert Advisors", "Growth Partners"],
|
||||
"startup": ["Innovation Labs", "Future Works", "Venture Co", "Next Gen"]
|
||||
},
|
||||
|
||||
"projectSuggestions": {
|
||||
"freelancer": ["Projekti i Klientit", "Përditësim Portfolio", "Markë Personale"],
|
||||
"startup": ["Zhvillim MVP", "Lansim Produkti", "Kërkim Tregu"],
|
||||
"agency": ["Fushatë Klienti", "Strategji Markë", "Ridizajnim Website"],
|
||||
"enterprise": ["Migrim Sistemi", "Optimizim Procesesh", "Trajnim Ekipi"]
|
||||
},
|
||||
|
||||
"useCaseDescriptions": {
|
||||
"taskManagement": "Organizoj dhe ndjek detyrat",
|
||||
"teamCollaboration": "Punojmë së bashku pa probleme",
|
||||
"resourcePlanning": "Menaxhoj kohën dhe burimet",
|
||||
"clientCommunication": "Qëndroj i lidhur me klientët",
|
||||
"timeTracking": "Monitoroj orët e projektit",
|
||||
"other": "Diçka tjetër"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,11 +7,13 @@
|
||||
"emailLabel": "Email",
|
||||
"emailPlaceholder": "Shkruani email-in tuaj",
|
||||
"emailRequired": "Ju lutemi shkruani Email-in tuaj!",
|
||||
"passwordLabel": "Fjalëkalimi",
|
||||
"passwordPlaceholder": "Krijoni një fjalëkalim",
|
||||
"passwordLabel": "Password",
|
||||
"passwordGuideline": "Password must be at least 8 characters, include uppercase and lowercase letters, a number, and a special character.",
|
||||
"passwordPlaceholder": "Enter your password",
|
||||
"passwordRequired": "Ju lutemi krijoni një Fjalëkalim!",
|
||||
"passwordMinCharacterRequired": "Fjalëkalimi duhet të jetë së paku 8 karaktere!",
|
||||
"passwordPatternRequired": "Fjalëkalimi nuk plotëson kërkesat!",
|
||||
"passwordMaxCharacterRequired": "Password must be at most 32 characters!",
|
||||
"passwordPatternRequired": "Fjalëkalimi nuk i plotëson kërkesat!",
|
||||
"strongPasswordPlaceholder": "Vendosni një fjalëkalim më të fortë",
|
||||
"passwordValidationAltText": "Fjalëkalimi duhet të përmbajë së paku 8 karaktere me shkronja të mëdha dhe të vogla, një numër dhe një simbol.",
|
||||
"signupSuccessMessage": "Jeni regjistruar me sukses!",
|
||||
|
||||
@@ -10,6 +10,17 @@
|
||||
"deleteConfirmationOk": "Po",
|
||||
"deleteConfirmationCancel": "Anulo",
|
||||
|
||||
"deleteTaskTitle": "Fshi Detyrën",
|
||||
"deleteTaskContent": "Jeni i sigurt që doni të fshini këtë detyrë? Kjo veprim nuk mund të zhbëhet.",
|
||||
"deleteTaskConfirm": "Fshi",
|
||||
"deleteTaskCancel": "Anulo",
|
||||
|
||||
"deleteStatusTitle": "Fshi Statusin",
|
||||
"deleteStatusContent": "Jeni i sigurt që doni të fshini këtë status? Kjo veprim nuk mund të zhbëhet.",
|
||||
|
||||
"deletePhaseTitle": "Fshi Fazen",
|
||||
"deletePhaseContent": "Jeni i sigurt që doni të fshini këtë fazë? Kjo veprim nuk mund të zhbëhet.",
|
||||
|
||||
"dueDate": "Data e përfundimit",
|
||||
"cancel": "Anulo",
|
||||
|
||||
@@ -26,5 +37,17 @@
|
||||
"noDueDate": "Pa datë përfundimi",
|
||||
"save": "Ruaj",
|
||||
"clear": "Pastro",
|
||||
"nextWeek": "Javën e ardhshme"
|
||||
"nextWeek": "Javën e ardhshme",
|
||||
"noSubtasks": "Pa nëndetyra",
|
||||
"showSubtasks": "Shfaq nëndetyrat",
|
||||
"hideSubtasks": "Fshih nëndetyrat",
|
||||
|
||||
"errorLoadingTasks": "Gabim gjatë ngarkimit të detyrave",
|
||||
"noTasksFound": "Nuk u gjetën detyra",
|
||||
"loadingFilters": "Duke ngarkuar filtra...",
|
||||
"failedToUpdateColumnOrder": "Dështoi përditësimi i rendit të kolonave",
|
||||
"failedToUpdatePhaseOrder": "Dështoi përditësimi i rendit të fazave",
|
||||
"pleaseTryAgain": "Ju lutemi provoni përsëri",
|
||||
"taskNotCompleted": "Detyra nuk është përfunduar",
|
||||
"completeTaskDependencies": "Ju lutemi përfundoni varësitë e detyrës para se të vazhdoni"
|
||||
}
|
||||
|
||||
@@ -13,5 +13,6 @@
|
||||
"deleteButtonTooltip": "Hiq nga projekti",
|
||||
"memberCount": "Anëtar",
|
||||
"membersCountPlural": "Anëtarë",
|
||||
"emptyText": "Nuk ka bashkëngjitje në projekt."
|
||||
"emptyText": "Nuk ka bashkëngjitje në projekt.",
|
||||
"searchPlaceholder": "Kërko anëtarë"
|
||||
}
|
||||
|
||||
@@ -3,5 +3,9 @@
|
||||
"searchLabel": "Shtoni anëtarë duke shkruar emrin ose email-in e tyre",
|
||||
"searchPlaceholder": "Shkruani emrin ose email-in",
|
||||
"inviteAsAMember": "Fto si anëtar",
|
||||
"inviteNewMemberByEmail": "Fto anëtar të ri me email"
|
||||
"inviteNewMemberByEmail": "Fto anëtar të ri me email",
|
||||
"members": "Anëtarë",
|
||||
"copyProjectLink": "Kopjo lidhjen e projektit",
|
||||
"inviteMember": "Fto anëtar",
|
||||
"alsoInviteToProject": "Fto edhe në projekt"
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"jobTitleLabel": "Titulli i Punës",
|
||||
"jobTitlePlaceholder": "Zgjidh ose kërko titull pune (Opsionale)",
|
||||
"memberAccessLabel": "Niveli i Qasjes",
|
||||
"addToTeamButton": "Shto Anëtar në Ekip",
|
||||
"addToTeamButton": "Dërgo ftesën",
|
||||
"updateButton": "Ruaj Ndryshimet",
|
||||
"resendInvitationButton": "Dërgo Përsëri Email-in e Ftesës",
|
||||
"invitationSentSuccessMessage": "Ftesa për ekip u dërgua me sukses!",
|
||||
@@ -43,5 +43,6 @@
|
||||
"updatedText": "Përditësuar",
|
||||
"noResultFound": "Shkruani një adresë email dhe shtypni Enter...",
|
||||
"jobTitlesFetchError": "Dështoi marrja e titujve të punës",
|
||||
"invitationResent": "Ftesa u dërgua sërish me sukses!"
|
||||
"invitationResent": "Ftesa u dërgua sërish me sukses!",
|
||||
"copyTeamLink": "Kopjo lidhjen e ekipit"
|
||||
}
|
||||
|
||||
14
worklenz-frontend/public/locales/alb/survey.json
Normal file
14
worklenz-frontend/public/locales/alb/survey.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"modalTitle": "Ndihmoni të përmirësojmë përvojën tuaj",
|
||||
"skip": "Kalo për tani",
|
||||
"previous": "Prapa",
|
||||
"next": "Tjetra",
|
||||
"completeSurvey": "Përfundo Anketën",
|
||||
"submitting": "Duke dërguar përgjigjet tuaja...",
|
||||
"submitSuccessTitle": "Faleminderit!",
|
||||
"submitSuccessSubtitle": "Feedback-u juaj na ndihmon të përmirësojmë Worklenz për të gjithë.",
|
||||
"submitSuccessMessage": "Faleminderit që plotësuat anketën!",
|
||||
"submitErrorMessage": "Dështoi dërgimi i anketës. Ju lutemi provoni përsëri.",
|
||||
"submitErrorLog": "Dështoi dërgimi i anketës",
|
||||
"fetchErrorLog": "Dështoi marrja e anketës"
|
||||
}
|
||||
@@ -1,37 +1,43 @@
|
||||
{
|
||||
"taskHeader": {
|
||||
"taskNamePlaceholder": "Shkruani Detyrën tuaj",
|
||||
"deleteTask": "Fshi Detyrën"
|
||||
"taskNamePlaceholder": "Shkruani detyrën tuaj",
|
||||
"deleteTask": "Fshi detyrën",
|
||||
"parentTask": "Detyra kryesore",
|
||||
"currentTask": "Detyra aktuale",
|
||||
"back": "Kthehu",
|
||||
"backToParent": "Kthehu te detyra kryesore",
|
||||
"toParentTask": "te detyra kryesore",
|
||||
"loadingHierarchy": "Duke ngarkuar hierarkinë..."
|
||||
},
|
||||
"taskInfoTab": {
|
||||
"title": "Informacioni",
|
||||
"details": {
|
||||
"title": "Detajet",
|
||||
"task-key": "Çelësi i Detyrës",
|
||||
"task-key": "Çelësi i detyrës",
|
||||
"phase": "Faza",
|
||||
"assignees": "Të Caktuar",
|
||||
"due-date": "Data e Përfundimit",
|
||||
"time-estimation": "Vlerësimi i Kohës",
|
||||
"assignees": "Të caktuarit",
|
||||
"due-date": "Data e përfundimit",
|
||||
"time-estimation": "Vlerësimi i kohës",
|
||||
"priority": "Prioriteti",
|
||||
"labels": "Etiketat",
|
||||
"billable": "E Faturueshme",
|
||||
"billable": "I faturueshëm",
|
||||
"notify": "Njofto",
|
||||
"when-done-notify": "Kur përfundon, njofto",
|
||||
"start-date": "Data e Fillimit",
|
||||
"end-date": "Data e Përfundimit",
|
||||
"hide-start-date": "Fshih Datën e Fillimit",
|
||||
"show-start-date": "Shfaq Datën e Fillimit",
|
||||
"start-date": "Data e fillimit",
|
||||
"end-date": "Data e përfundimit",
|
||||
"hide-start-date": "Fshih datën e fillimit",
|
||||
"show-start-date": "Shfaq datën e fillimit",
|
||||
"hours": "Orë",
|
||||
"minutes": "Minuta",
|
||||
"progressValue": "Vlera e Progresit",
|
||||
"progressValueTooltip": "Vendosni përqindjen e progresit (0-100%)",
|
||||
"progressValue": "Vlera e progresit",
|
||||
"progressValueTooltip": "Vendos përqindjen e progresit (0-100%)",
|
||||
"progressValueRequired": "Ju lutemi vendosni një vlerë progresi",
|
||||
"progressValueRange": "Progresi duhet të jetë midis 0 dhe 100",
|
||||
"taskWeight": "Pesha e Detyrës",
|
||||
"taskWeightTooltip": "Vendosni peshën e kësaj nëndetyre (përqindje)",
|
||||
"taskWeight": "Pesha e detyrës",
|
||||
"taskWeightTooltip": "Vendos peshën e kësaj nëndetyre (përqindje)",
|
||||
"taskWeightRequired": "Ju lutemi vendosni një peshë detyre",
|
||||
"taskWeightRange": "Pesha duhet të jetë midis 0 dhe 100",
|
||||
"recurring": "E Përsëritur"
|
||||
"recurring": "Përsëritëse"
|
||||
},
|
||||
"labels": {
|
||||
"labelInputPlaceholder": "Kërko ose krijo",
|
||||
@@ -43,71 +49,71 @@
|
||||
},
|
||||
"subTasks": {
|
||||
"title": "Nëndetyrat",
|
||||
"addSubTask": "Shto Nëndetyrë",
|
||||
"addSubTask": "Shto nëndetyrë",
|
||||
"addSubTaskInputPlaceholder": "Shkruani detyrën tuaj dhe shtypni enter",
|
||||
"refreshSubTasks": "Rifresko Nëndetyrat",
|
||||
"edit": "Modifiko",
|
||||
"refreshSubTasks": "Rifresko nëndetyrat",
|
||||
"edit": "Redakto",
|
||||
"delete": "Fshi",
|
||||
"confirmDeleteSubTask": "Jeni i sigurt që doni të fshini këtë nëndetyrë?",
|
||||
"deleteSubTask": "Fshi Nëndetyrën"
|
||||
"confirmDeleteSubTask": "Jeni i sigurt që dëshironi ta fshini këtë nëndetyrë?",
|
||||
"deleteSubTask": "Fshi nëndetyrën"
|
||||
},
|
||||
"dependencies": {
|
||||
"title": "Varësitë",
|
||||
"addDependency": "+ Shto varësi të re",
|
||||
"blockedBy": "Bllokuar nga",
|
||||
"searchTask": "Shkruani për të kërkuar detyrë",
|
||||
"searchTask": "Shkruaj për të kërkuar detyrën",
|
||||
"noTasksFound": "Nuk u gjetën detyra",
|
||||
"confirmDeleteDependency": "Jeni i sigurt që doni të fshini?"
|
||||
"confirmDeleteDependency": "Jeni i sigurt që dëshironi ta fshini?"
|
||||
},
|
||||
"attachments": {
|
||||
"title": "Bashkëngjitjet",
|
||||
"chooseOrDropFileToUpload": "Zgjidhni ose hidhni skedar për të ngarkuar",
|
||||
"chooseOrDropFileToUpload": "Zgjidh ose lësho skedarin për ta ngarkuar",
|
||||
"uploading": "Duke ngarkuar..."
|
||||
},
|
||||
"comments": {
|
||||
"title": "Komentet",
|
||||
"addComment": "+ Shto koment të ri",
|
||||
"noComments": "Ende pa komente. Bëhu i pari që komenton!",
|
||||
"noComments": "Ende pa komente. Bëhu i pari që komentoni!",
|
||||
"delete": "Fshi",
|
||||
"confirmDeleteComment": "Jeni i sigurt që doni të fshini këtë koment?",
|
||||
"confirmDeleteComment": "Jeni i sigurt që dëshironi ta fshini këtë koment?",
|
||||
"addCommentPlaceholder": "Shto një koment...",
|
||||
"cancel": "Anulo",
|
||||
"commentButton": "Komento",
|
||||
"attachFiles": "Bashkëngjit skedarë",
|
||||
"addMoreFiles": "Shto më shumë skedarë",
|
||||
"selectedFiles": "Skedarët e Zgjedhur (Deri në 25MB, Maksimumi {count})",
|
||||
"maxFilesError": "Mund të ngarkoni maksimum {count} skedarë",
|
||||
"processFilesError": "Dështoi përpunimi i skedarëve",
|
||||
"selectedFiles": "Skedarët e zgjedhur (Deri në 25MB, Maksimumi {count})",
|
||||
"maxFilesError": "Mund të ngarkoni maksimumi {count} skedarë",
|
||||
"processFilesError": "Dështoi në përpunimin e skedarëve",
|
||||
"addCommentError": "Ju lutemi shtoni një koment ose bashkëngjitni skedarë",
|
||||
"createdBy": "Krijuar {{time}} nga {{user}}",
|
||||
"updatedTime": "Përditësuar {{time}}"
|
||||
},
|
||||
"searchInputPlaceholder": "Kërko sipas emrit",
|
||||
"pendingInvitation": "Ftesë në Pritje"
|
||||
"pendingInvitation": "Ftesë në pritje"
|
||||
},
|
||||
"taskTimeLogTab": {
|
||||
"title": "Regjistri i Kohës",
|
||||
"addTimeLog": "Shto regjistrim të ri kohe",
|
||||
"totalLogged": "Totali i Regjistruar",
|
||||
"title": "Regjistri i kohës",
|
||||
"addTimeLog": "Shto regjistër të ri kohe",
|
||||
"totalLogged": "Totali i regjistruar",
|
||||
"exportToExcel": "Eksporto në Excel",
|
||||
"noTimeLogsFound": "Nuk u gjetën regjistra kohe",
|
||||
"noTimeLogsFound": "Nuk u gjetën regjistrime kohe",
|
||||
"timeLogForm": {
|
||||
"date": "Data",
|
||||
"startTime": "Koha e Fillimit",
|
||||
"endTime": "Koha e Përfundimit",
|
||||
"workDescription": "Përshkrimi i Punës",
|
||||
"startTime": "Ora e fillimit",
|
||||
"endTime": "Ora e përfundimit",
|
||||
"workDescription": "Përshkrimi i punës",
|
||||
"descriptionPlaceholder": "Shto një përshkrim",
|
||||
"logTime": "Regjistro kohën",
|
||||
"updateTime": "Përditëso kohën",
|
||||
"cancel": "Anulo",
|
||||
"selectDateError": "Ju lutemi zgjidhni një datë",
|
||||
"selectStartTimeError": "Ju lutemi zgjidhni kohën e fillimit",
|
||||
"selectEndTimeError": "Ju lutemi zgjidhni kohën e përfundimit",
|
||||
"endTimeAfterStartError": "Koha e përfundimit duhet të jetë pas kohës së fillimit"
|
||||
"selectStartTimeError": "Ju lutemi zgjidhni orën e fillimit",
|
||||
"selectEndTimeError": "Ju lutemi zgjidhni orën e përfundimit",
|
||||
"endTimeAfterStartError": "Ora e përfundimit duhet të jetë pas orës së fillimit"
|
||||
}
|
||||
},
|
||||
"taskActivityLogTab": {
|
||||
"title": "Regjistri i Aktivitetit",
|
||||
"title": "Regjistri i aktivitetit",
|
||||
"add": "SHTO",
|
||||
"remove": "HIQE",
|
||||
"none": "Asnjë",
|
||||
@@ -115,9 +121,9 @@
|
||||
"createdTask": "krijoi detyrën."
|
||||
},
|
||||
"taskProgress": {
|
||||
"markAsDoneTitle": "Shëno Detyrën si të Kryer?",
|
||||
"confirmMarkAsDone": "Po, shëno si të kryer",
|
||||
"cancelMarkAsDone": "Jo, mbaj statusin aktual",
|
||||
"markAsDoneDescription": "Keni vendosur progresin në 100%. Doni të përditësoni statusin e detyrës në \"Kryer\"?"
|
||||
"markAsDoneTitle": "Shëno detyrën si të përfunduar?",
|
||||
"confirmMarkAsDone": "Po, shënoje si të përfunduar",
|
||||
"cancelMarkAsDone": "Jo, mbaj gjendjen aktuale",
|
||||
"markAsDoneDescription": "Keni vendosur progresin në 100%. Dëshironi ta përditësoni gjendjen e detyrës në \"Përfunduar\"?"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,5 +84,12 @@
|
||||
"close": "Mbyll",
|
||||
"cannotMoveStatus": "Nuk mund të lëvizet statusi",
|
||||
"cannotMoveStatusMessage": "Nuk mund të lëvizet ky status sepse do të linte kategorinë '{{categoryName}}' bosh. Çdo kategori duhet të ketë të paktën një status.",
|
||||
"ok": "OK"
|
||||
"ok": "OK",
|
||||
"clearSort": "Pastro Renditjen",
|
||||
"sortAscending": "Rendit në Rritje",
|
||||
"sortDescending": "Rendit në Zbritje",
|
||||
"sortByField": "Rendit sipas {{field}}",
|
||||
"ascendingOrder": "Rritës",
|
||||
"descendingOrder": "Zbritës",
|
||||
"currentSort": "Renditja aktuale: {{field}} {{order}}"
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
"addTaskText": "Shto Detyrë",
|
||||
"addSubTaskText": "+ Shto Nën-Detyrë",
|
||||
"noTasksInGroup": "Nuk ka detyra në këtë grup",
|
||||
"dropTaskHere": "Lëshoje detyrën këtu",
|
||||
"addTaskInputPlaceholder": "Shkruaj detyrën dhe shtyp Enter",
|
||||
|
||||
"openButton": "Hap",
|
||||
|
||||
@@ -3,7 +3,28 @@
|
||||
|
||||
"setupYourAccount": "Richten Sie Ihr Worklenz-Konto ein.",
|
||||
"organizationStepTitle": "Organisation benennen",
|
||||
"organizationStepLabel": "Wählen Sie einen Namen für Ihr Worklenz-Konto.",
|
||||
"organizationStepWelcome": "Willkommen bei Worklenz!",
|
||||
"organizationStepDescription": "Beginnen wir mit der Einrichtung Ihrer Organisation. Dies wird der Hauptarbeitsplatz für Ihr Team.",
|
||||
"organizationStepLabel": "Organisationsname",
|
||||
"organizationStepPlaceholder": "z.B. Acme Corporation",
|
||||
"organizationStepTooltip": "Dieser Name wird in Ihrem Arbeitsbereich angezeigt und kann später in den Einstellungen geändert werden.",
|
||||
"organizationStepNeedIdeas": "Brauchen Sie Ideen?",
|
||||
"organizationStepUseDetected": "Erkannt verwenden:",
|
||||
"organizationStepCharacters": "Zeichen",
|
||||
"organizationStepGoodLength": "Gute Länge",
|
||||
"organizationStepTooShort": "Zu kurz",
|
||||
"organizationStepNamingTips": "Namensgebungstipps",
|
||||
"organizationStepTip1": "Halten Sie es einfach und einprägsam",
|
||||
"organizationStepTip2": "Spiegeln Sie Ihre Branche oder Werte wider",
|
||||
"organizationStepTip3": "Denken Sie an zukünftiges Wachstum",
|
||||
"organizationStepTip4": "Machen Sie es einzigartig und markenfähig",
|
||||
"organizationStepSuggestionsTitle": "Namensvorschläge",
|
||||
"organizationStepCategory1": "Tech-Unternehmen",
|
||||
"organizationStepCategory2": "Kreativagenturen",
|
||||
"organizationStepCategory3": "Beratung",
|
||||
"organizationStepCategory4": "Startups",
|
||||
"organizationStepSuggestionsNote": "Dies sind nur Beispiele für den Einstieg. Wählen Sie etwas, das Ihre Organisation repräsentiert.",
|
||||
"organizationStepPrivacyNote": "Ihr Organisationsname ist privat und nur für Ihre Teammitglieder sichtbar.",
|
||||
|
||||
"projectStepTitle": "Erstellen Sie Ihr erstes Projekt",
|
||||
"projectStepLabel": "An welchem Projekt arbeiten Sie gerade?",
|
||||
@@ -24,8 +45,170 @@
|
||||
"step3InputLabel": "Per E-Mail einladen",
|
||||
"addAnother": "Weitere hinzufügen",
|
||||
"skipForNow": "Jetzt überspringen",
|
||||
"skipping": "Überspringen...",
|
||||
"formTitle": "Erstellen Sie Ihre erste Aufgabe.",
|
||||
"step3Title": "Laden Sie Ihr Team zur Zusammenarbeit ein",
|
||||
"maxMembers": " (Sie können bis zu 5 Mitglieder einladen)",
|
||||
"maxTasks": " (Sie können bis zu 5 Aufgaben erstellen)"
|
||||
"maxTasks": " (Sie können bis zu 5 Aufgaben erstellen)",
|
||||
|
||||
"membersStepTitle": "Laden Sie Ihr Team ein",
|
||||
"membersStepDescription": "Teammitglieder zu \"{{organizationName}}\" hinzufügen und mit der Zusammenarbeit beginnen",
|
||||
"memberPlaceholder": "Teammitglied {{index}} - E-Mail-Adresse eingeben",
|
||||
"validEmailAddress": "Gültige E-Mail-Adresse",
|
||||
"addAnotherTeamMember": "Weiteres Teammitglied hinzufügen ({{current}}/{{max}})",
|
||||
"canInviteLater": "Sie können Teammitglieder jederzeit später einladen",
|
||||
"skipStepDescription": "Haben Sie keine E-Mail-Adressen bereit? Kein Problem! Sie können diesen Schritt überspringen und Teammitglieder später über Ihr Projekt-Dashboard einladen.",
|
||||
|
||||
"orgCategoryTech": "Technologieunternehmen",
|
||||
"orgCategoryCreative": "Kreativagenturen",
|
||||
"orgCategoryConsulting": "Beratung",
|
||||
"orgCategoryStartups": "Startups",
|
||||
"namingTip1": "Halten Sie es einfach und einprägsam",
|
||||
"namingTip2": "Spiegeln Sie Ihre Branche oder Werte wider",
|
||||
"namingTip3": "Denken Sie an zukünftiges Wachstum",
|
||||
"namingTip4": "Machen Sie es einzigartig und markenfähig",
|
||||
|
||||
"aboutYouTitle": "Erzählen Sie uns von sich",
|
||||
"aboutYouDescription": "Helfen Sie uns, Ihre Erfahrung zu personalisieren",
|
||||
"orgTypeQuestion": "Was beschreibt Ihre Organisation am besten?",
|
||||
"userRoleQuestion": "Was ist Ihre Rolle?",
|
||||
|
||||
"yourNeedsTitle": "Was sind Ihre Hauptbedürfnisse?",
|
||||
"yourNeedsDescription": "Wählen Sie alle zutreffenden aus, um uns bei der Einrichtung Ihres Arbeitsbereichs zu helfen",
|
||||
"yourNeedsQuestion": "Wie werden Sie Worklenz hauptsächlich nutzen?",
|
||||
"useCaseTaskOrg": "Aufgaben organisieren und verfolgen",
|
||||
"useCaseTeamCollab": "Nahtlos zusammenarbeiten",
|
||||
"useCaseResourceMgmt": "Zeit und Ressourcen verwalten",
|
||||
"useCaseClientComm": "Mit Kunden in Verbindung bleiben",
|
||||
"useCaseTimeTrack": "Projektstunden überwachen",
|
||||
"useCaseOther": "Etwas anderes",
|
||||
"selectedText": "ausgewählt",
|
||||
"previousToolsQuestion": "Welche Tools haben Sie zuvor verwendet? (Optional)",
|
||||
"previousToolsPlaceholder": "z.B. Asana, Trello, Jira, Monday.com, etc.",
|
||||
|
||||
"discoveryTitle": "Eine letzte Sache...",
|
||||
"discoveryDescription": "Helfen Sie uns zu verstehen, wie Sie Worklenz entdeckt haben",
|
||||
"discoveryQuestion": "Wie haben Sie von uns erfahren?",
|
||||
"allSetTitle": "Sie sind bereit!",
|
||||
"allSetDescription": "Lassen Sie uns Ihr erstes Projekt erstellen und mit Worklenz beginnen",
|
||||
"surveyCompleteTitle": "Vielen Dank!",
|
||||
"surveyCompleteDescription": "Ihr Feedback hilft uns, Worklenz für alle zu verbessern",
|
||||
"aboutYouStepName": "Über Sie",
|
||||
"yourNeedsStepName": "Ihre Bedürfnisse",
|
||||
"discoveryStepName": "Entdeckung",
|
||||
"stepProgress": "Schritt {step} von 3: {title}",
|
||||
|
||||
"projectStepHeader": "Lassen Sie uns Ihr erstes Projekt erstellen",
|
||||
"projectStepSubheader": "Von Grund auf beginnen oder eine Vorlage verwenden, um schneller voranzukommen",
|
||||
"startFromScratch": "Von Grund auf beginnen",
|
||||
"templateSelected": "Vorlage unten ausgewählt",
|
||||
"quickSuggestions": "Schnelle Vorschläge:",
|
||||
"orText": "ODER",
|
||||
"startWithTemplate": "Mit einer Vorlage beginnen",
|
||||
"clearToSelectTemplate": "Projektname oben löschen, um eine Vorlage auszuwählen",
|
||||
"templateHeadStart": "Verschaffen Sie sich einen Vorsprung mit vorgefertigten Projektstrukturen",
|
||||
"browseAllTemplates": "Alle Vorlagen durchsuchen",
|
||||
"templatesAvailable": "15+ branchenspezifische Vorlagen verfügbar",
|
||||
"chooseTemplate": "Wählen Sie eine Vorlage, die zu Ihrem Projekttyp passt",
|
||||
"createProject": "Projekt erstellen",
|
||||
|
||||
"templateSoftwareDev": "Softwareentwicklung",
|
||||
"templateSoftwareDesc": "Agile Sprints, Fehlerverfolgung, Releases",
|
||||
"templateMarketing": "Marketing-Kampagne",
|
||||
"templateMarketingDesc": "Kampagnenplanung, Content-Kalender",
|
||||
"templateConstruction": "Bauprojekt",
|
||||
"templateConstructionDesc": "Phasen, Genehmigungen, Auftragnehmer",
|
||||
"templateStartup": "Startup-Launch",
|
||||
"templateStartupDesc": "MVP-Entwicklung, Finanzierung, Wachstum",
|
||||
|
||||
"tasksStepTitle": "Fügen Sie Ihre ersten Aufgaben hinzu",
|
||||
"tasksStepDescription": "Unterteilen Sie \"{{projectName}}\" in umsetzbare Aufgaben, um zu beginnen",
|
||||
"taskPlaceholder": "Aufgabe {{index}} - z.B., Was muss getan werden?",
|
||||
"addAnotherTask": "Weitere Aufgabe hinzufügen ({{current}}/{{max}})",
|
||||
|
||||
"surveyStepTitle": "Erzählen Sie uns von sich",
|
||||
"surveyStepLabel": "Helfen Sie uns, Ihre Worklenz-Erfahrung zu personalisieren, indem Sie ein paar Fragen beantworten.",
|
||||
|
||||
"organizationType": "Was beschreibt Ihre Organisation am besten?",
|
||||
"organizationTypeFreelancer": "Freelancer",
|
||||
"organizationTypeStartup": "Startup",
|
||||
"organizationTypeSmallMediumBusiness": "Kleines oder mittleres Unternehmen",
|
||||
"organizationTypeAgency": "Agentur",
|
||||
"organizationTypeEnterprise": "Unternehmen",
|
||||
"organizationTypeOther": "Andere",
|
||||
|
||||
"userRole": "Was ist Ihre Rolle?",
|
||||
"userRoleFounderCeo": "Gründer / CEO",
|
||||
"userRoleProjectManager": "Projektmanager",
|
||||
"userRoleSoftwareDeveloper": "Software-Entwickler",
|
||||
"userRoleDesigner": "Designer",
|
||||
"userRoleOperations": "Betrieb",
|
||||
"userRoleOther": "Andere",
|
||||
|
||||
"mainUseCases": "Wofür werden Sie Worklenz hauptsächlich verwenden?",
|
||||
"mainUseCasesTaskManagement": "Aufgabenverwaltung",
|
||||
"mainUseCasesTeamCollaboration": "Teamzusammenarbeit",
|
||||
"mainUseCasesResourcePlanning": "Ressourcenplanung",
|
||||
"mainUseCasesClientCommunication": "Kundenkommunikation & Berichterstattung",
|
||||
"mainUseCasesTimeTracking": "Zeiterfassung",
|
||||
"mainUseCasesOther": "Andere",
|
||||
|
||||
"previousTools": "Welche Tools haben Sie vor Worklenz verwendet?",
|
||||
"previousToolsPlaceholder": "z.B. Trello, Asana, Monday.com",
|
||||
|
||||
"howHeardAbout": "Wie haben Sie von Worklenz erfahren?",
|
||||
"howHeardAboutGoogleSearch": "Google-Suche",
|
||||
"howHeardAboutTwitter": "Twitter",
|
||||
"howHeardAboutLinkedin": "LinkedIn",
|
||||
"howHeardAboutFriendColleague": "Ein Freund oder Kollege",
|
||||
"howHeardAboutBlogArticle": "Ein Blog oder Artikel",
|
||||
"howHeardAboutOther": "Andere",
|
||||
|
||||
"aboutYouStepTitle": "Erzählen Sie uns von sich",
|
||||
"aboutYouStepDescription": "Helfen Sie uns, Ihre Erfahrung zu personalisieren",
|
||||
"yourNeedsStepTitle": "Was sind Ihre Hauptbedürfnisse?",
|
||||
"yourNeedsStepDescription": "Wählen Sie alle zutreffenden aus, um uns bei der Einrichtung Ihres Arbeitsbereichs zu helfen",
|
||||
"selected": "ausgewählt",
|
||||
"previousToolsLabel": "Welche Tools haben Sie zuvor verwendet? (Optional)",
|
||||
|
||||
"roleSuggestions": {
|
||||
"designer": "UI/UX, Grafiken, Kreativ",
|
||||
"developer": "Frontend, Backend, Full-stack",
|
||||
"projectManager": "Planung, Koordination",
|
||||
"marketing": "Inhalt, Social Media, Wachstum",
|
||||
"sales": "Geschäftsentwicklung, Kundenbeziehungen",
|
||||
"operations": "Admin, HR, Finanzen"
|
||||
},
|
||||
|
||||
"languages": {
|
||||
"en": "English",
|
||||
"es": "Español",
|
||||
"pt": "Português",
|
||||
"de": "Deutsch",
|
||||
"alb": "Shqip",
|
||||
"zh": "简体中文"
|
||||
},
|
||||
|
||||
"orgSuggestions": {
|
||||
"tech": ["TechCorp", "DevStudio", "CodeCraft", "PixelForge"],
|
||||
"creative": ["Creative Hub", "Design Studio", "Brand Works", "Visual Arts"],
|
||||
"consulting": ["Strategy Group", "Business Solutions", "Expert Advisors", "Growth Partners"],
|
||||
"startup": ["Innovation Labs", "Future Works", "Venture Co", "Next Gen"]
|
||||
},
|
||||
|
||||
"projectSuggestions": {
|
||||
"freelancer": ["Kundenprojekt", "Portfolio-Update", "Persönliche Marke"],
|
||||
"startup": ["MVP-Entwicklung", "Produktlaunch", "Marktforschung"],
|
||||
"agency": ["Kundenkampagne", "Markenstrategie", "Website-Redesign"],
|
||||
"enterprise": ["Systemumstellung", "Prozessoptimierung", "Teamschulung"]
|
||||
},
|
||||
|
||||
"useCaseDescriptions": {
|
||||
"taskManagement": "Aufgaben organisieren und verfolgen",
|
||||
"teamCollaboration": "Nahtlos zusammenarbeiten",
|
||||
"resourcePlanning": "Zeit und Ressourcen verwalten",
|
||||
"clientCommunication": "Mit Kunden in Verbindung bleiben",
|
||||
"timeTracking": "Projektstunden überwachen",
|
||||
"other": "Etwas anderes"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"billingDetails": "Abrechnungsdetails",
|
||||
"name": "Name",
|
||||
"namePlaceholder": "Name",
|
||||
"emailAddress": "E-Mail-Adresse",
|
||||
"emailPlaceholder": "E-Mail-Adresse",
|
||||
"contactNumber": "Telefonnummer",
|
||||
"phoneNumberPlaceholder": "Telefonnummer",
|
||||
"phoneValidationError": "Telefonnummer muss genau 10 Ziffern haben",
|
||||
"companyDetails": "Firmendetails",
|
||||
"companyName": "Firmenname",
|
||||
"companyNamePlaceholder": "Firmenname",
|
||||
"addressLine01": "Adresszeile 01",
|
||||
"addressLine01Placeholder": "Adresszeile 01",
|
||||
"addressLine02": "Adresszeile 02",
|
||||
"addressLine02Placeholder": "Adresszeile 02",
|
||||
"country": "Land",
|
||||
"countryPlaceholder": "Land",
|
||||
"city": "Stadt",
|
||||
"cityPlaceholder": "Stadt",
|
||||
"state": "Bundesland",
|
||||
"statePlaceholder": "Bundesland",
|
||||
"postalCode": "Postleitzahl",
|
||||
"postalCodePlaceholder": "Postleitzahl",
|
||||
"save": "Speichern"
|
||||
}
|
||||
@@ -8,10 +8,12 @@
|
||||
"emailPlaceholder": "Ihre E-Mail-Adresse eingeben",
|
||||
"emailRequired": "Bitte geben Sie Ihre E-Mail-Adresse ein!",
|
||||
"passwordLabel": "Passwort",
|
||||
"passwordPlaceholder": "Ihr Passwort eingeben",
|
||||
"passwordGuideline": "Das Passwort muss mindestens 8 Zeichen lang sein und Groß- und Kleinbuchstaben, eine Zahl und ein Sonderzeichen enthalten.",
|
||||
"passwordPlaceholder": "Geben Sie Ihr Passwort ein",
|
||||
"passwordRequired": "Bitte geben Sie Ihr Passwort ein!",
|
||||
"passwordMinCharacterRequired": "Das Passwort muss mindestens 8 Zeichen lang sein!",
|
||||
"passwordPatternRequired": "Das Passwort erfüllt nicht die Anforderungen!",
|
||||
"passwordMaxCharacterRequired": "Das Passwort darf maximal 32 Zeichen lang sein!",
|
||||
"passwordPatternRequired": "Das Passwort entspricht nicht den Anforderungen!",
|
||||
"strongPasswordPlaceholder": "Ein stärkeres Passwort eingeben",
|
||||
"passwordValidationAltText": "Das Passwort muss mindestens 8 Zeichen enthalten, mit Groß- und Kleinbuchstaben, einer Zahl und einem Sonderzeichen.",
|
||||
"signupSuccessMessage": "Sie haben sich erfolgreich registriert!",
|
||||
|
||||
@@ -10,6 +10,17 @@
|
||||
"deleteConfirmationOk": "Ja",
|
||||
"deleteConfirmationCancel": "Abbrechen",
|
||||
|
||||
"deleteTaskTitle": "Aufgabe löschen",
|
||||
"deleteTaskContent": "Sind Sie sicher, dass Sie diese Aufgabe löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"deleteTaskConfirm": "Löschen",
|
||||
"deleteTaskCancel": "Abbrechen",
|
||||
|
||||
"deleteStatusTitle": "Status löschen",
|
||||
"deleteStatusContent": "Sind Sie sicher, dass Sie diesen Status löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
|
||||
"deletePhaseTitle": "Phase löschen",
|
||||
"deletePhaseContent": "Sind Sie sicher, dass Sie diese Phase löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
|
||||
"dueDate": "Fälligkeitsdatum",
|
||||
"cancel": "Abbrechen",
|
||||
|
||||
@@ -26,5 +37,17 @@
|
||||
"noDueDate": "Kein Fälligkeitsdatum",
|
||||
"save": "Speichern",
|
||||
"clear": "Löschen",
|
||||
"nextWeek": "Nächste Woche"
|
||||
"nextWeek": "Nächste Woche",
|
||||
"noSubtasks": "Keine Unteraufgaben",
|
||||
"showSubtasks": "Unteraufgaben anzeigen",
|
||||
"hideSubtasks": "Unteraufgaben ausblenden",
|
||||
|
||||
"errorLoadingTasks": "Fehler beim Laden der Aufgaben",
|
||||
"noTasksFound": "Keine Aufgaben gefunden",
|
||||
"loadingFilters": "Filter werden geladen...",
|
||||
"failedToUpdateColumnOrder": "Fehler beim Aktualisieren der Spaltenreihenfolge",
|
||||
"failedToUpdatePhaseOrder": "Fehler beim Aktualisieren der Phasenreihenfolge",
|
||||
"pleaseTryAgain": "Bitte versuchen Sie es erneut",
|
||||
"taskNotCompleted": "Aufgabe ist nicht abgeschlossen",
|
||||
"completeTaskDependencies": "Bitte schließen Sie die Aufgabenabhängigkeiten ab, bevor Sie fortfahren"
|
||||
}
|
||||
|
||||
@@ -13,5 +13,6 @@
|
||||
"deleteButtonTooltip": "Aus Projekt entfernen",
|
||||
"memberCount": "Mitglied",
|
||||
"membersCountPlural": "Mitglieder",
|
||||
"emptyText": "Es gibt keine Anhänge in diesem Projekt."
|
||||
"emptyText": "Es gibt keine Anhänge in diesem Projekt.",
|
||||
"searchPlaceholder": "Mitglieder suchen"
|
||||
}
|
||||
|
||||
@@ -3,5 +3,9 @@
|
||||
"searchLabel": "Mitglieder hinzufügen durch Eingabe von Name oder E-Mail",
|
||||
"searchPlaceholder": "Name oder E-Mail eingeben",
|
||||
"inviteAsAMember": "Als Mitglied einladen",
|
||||
"inviteNewMemberByEmail": "Neues Mitglied per E-Mail einladen"
|
||||
"inviteNewMemberByEmail": "Neues Mitglied per E-Mail einladen",
|
||||
"members": "Mitglieder",
|
||||
"copyProjectLink": "Projektlink kopieren",
|
||||
"inviteMember": "Mitglied einladen",
|
||||
"alsoInviteToProject": "Auch zum Projekt einladen"
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"jobTitleLabel": "Jobtitel",
|
||||
"jobTitlePlaceholder": "Jobtitel auswählen oder suchen (optional)",
|
||||
"memberAccessLabel": "Zugriffslevel",
|
||||
"addToTeamButton": "Mitglied zum Team hinzufügen",
|
||||
"addToTeamButton": "Einladung senden",
|
||||
"updateButton": "Änderungen speichern",
|
||||
"resendInvitationButton": "Einladungs-E-Mail erneut senden",
|
||||
"invitationSentSuccessMessage": "Team-Einladung erfolgreich versendet!",
|
||||
@@ -43,5 +43,6 @@
|
||||
"updatedText": "Aktualisiert",
|
||||
"noResultFound": "Geben Sie eine E-Mail-Adresse ein und drücken Sie Enter...",
|
||||
"jobTitlesFetchError": "Fehler beim Abrufen der Jobtitel",
|
||||
"invitationResent": "Einladung erfolgreich erneut gesendet!"
|
||||
"invitationResent": "Einladung erfolgreich erneut gesendet!",
|
||||
"copyTeamLink": "Team-Link kopieren"
|
||||
}
|
||||
|
||||
14
worklenz-frontend/public/locales/de/survey.json
Normal file
14
worklenz-frontend/public/locales/de/survey.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"modalTitle": "Helfen Sie uns, Ihre Erfahrung zu verbessern",
|
||||
"skip": "Für jetzt überspringen",
|
||||
"previous": "Zurück",
|
||||
"next": "Weiter",
|
||||
"completeSurvey": "Umfrage abschließen",
|
||||
"submitting": "Ihre Antworten werden übermittelt...",
|
||||
"submitSuccessTitle": "Danke!",
|
||||
"submitSuccessSubtitle": "Ihr Feedback hilft uns, Worklenz für alle zu verbessern.",
|
||||
"submitSuccessMessage": "Danke, dass Sie die Umfrage abgeschlossen haben!",
|
||||
"submitErrorMessage": "Umfrage konnte nicht übermittelt werden. Bitte versuchen Sie es erneut.",
|
||||
"submitErrorLog": "Umfrageübermittlung fehlgeschlagen",
|
||||
"fetchErrorLog": "Umfrageabruf fehlgeschlagen"
|
||||
}
|
||||
@@ -1,22 +1,28 @@
|
||||
{
|
||||
"taskHeader": {
|
||||
"taskNamePlaceholder": "Geben Sie Ihre Aufgabe ein",
|
||||
"deleteTask": "Aufgabe löschen"
|
||||
"deleteTask": "Aufgabe löschen",
|
||||
"parentTask": "Übergeordnete Aufgabe",
|
||||
"currentTask": "Aktuelle Aufgabe",
|
||||
"back": "Zurück",
|
||||
"backToParent": "Zurück zur übergeordneten Aufgabe",
|
||||
"toParentTask": "zur übergeordneten Aufgabe",
|
||||
"loadingHierarchy": "Hierarchie wird geladen..."
|
||||
},
|
||||
"taskInfoTab": {
|
||||
"title": "Info",
|
||||
"details": {
|
||||
"title": "Details",
|
||||
"task-key": "Aufgaben-Schlüssel",
|
||||
"task-key": "Aufgabenschlüssel",
|
||||
"phase": "Phase",
|
||||
"assignees": "Beauftragte",
|
||||
"assignees": "Zugewiesene",
|
||||
"due-date": "Fälligkeitsdatum",
|
||||
"time-estimation": "Zeitschätzung",
|
||||
"priority": "Priorität",
|
||||
"labels": "Labels",
|
||||
"billable": "Abrechenbar",
|
||||
"notify": "Benachrichtigen",
|
||||
"when-done-notify": "Bei Abschluss benachrichtigen",
|
||||
"when-done-notify": "Bei Fertigstellung benachrichtigen",
|
||||
"start-date": "Startdatum",
|
||||
"end-date": "Enddatum",
|
||||
"hide-start-date": "Startdatum ausblenden",
|
||||
@@ -24,50 +30,50 @@
|
||||
"hours": "Stunden",
|
||||
"minutes": "Minuten",
|
||||
"progressValue": "Fortschrittswert",
|
||||
"progressValueTooltip": "Fortschritt in Prozent einstellen (0-100%)",
|
||||
"progressValueTooltip": "Setzen Sie den Fortschrittsprozentsatz (0-100%)",
|
||||
"progressValueRequired": "Bitte geben Sie einen Fortschrittswert ein",
|
||||
"progressValueRange": "Fortschritt muss zwischen 0 und 100 liegen",
|
||||
"taskWeight": "Aufgabengewicht",
|
||||
"taskWeightTooltip": "Gewicht dieser Teilaufgabe festlegen (Prozent)",
|
||||
"taskWeightTooltip": "Setzen Sie das Gewicht dieser Unteraufgabe (Prozentsatz)",
|
||||
"taskWeightRequired": "Bitte geben Sie ein Aufgabengewicht ein",
|
||||
"taskWeightRange": "Gewicht muss zwischen 0 und 100 liegen",
|
||||
"recurring": "Wiederkehrend"
|
||||
},
|
||||
"labels": {
|
||||
"labelInputPlaceholder": "Suchen oder erstellen",
|
||||
"labelsSelectorInputTip": "Enter drücken zum Erstellen"
|
||||
"labelsSelectorInputTip": "Drücken Sie Enter zum Erstellen"
|
||||
},
|
||||
"description": {
|
||||
"title": "Beschreibung",
|
||||
"placeholder": "Detailliertere Beschreibung hinzufügen..."
|
||||
"placeholder": "Fügen Sie eine detailliertere Beschreibung hinzu..."
|
||||
},
|
||||
"subTasks": {
|
||||
"title": "Teilaufgaben",
|
||||
"addSubTask": "Teilaufgabe hinzufügen",
|
||||
"title": "Unteraufgaben",
|
||||
"addSubTask": "Unteraufgabe hinzufügen",
|
||||
"addSubTaskInputPlaceholder": "Geben Sie Ihre Aufgabe ein und drücken Sie Enter",
|
||||
"refreshSubTasks": "Teilaufgaben aktualisieren",
|
||||
"refreshSubTasks": "Unteraufgaben aktualisieren",
|
||||
"edit": "Bearbeiten",
|
||||
"delete": "Löschen",
|
||||
"confirmDeleteSubTask": "Sind Sie sicher, dass Sie diese Teilaufgabe löschen möchten?",
|
||||
"deleteSubTask": "Teilaufgabe löschen"
|
||||
"confirmDeleteSubTask": "Sind Sie sicher, dass Sie diese Unteraufgabe löschen möchten?",
|
||||
"deleteSubTask": "Unteraufgabe löschen"
|
||||
},
|
||||
"dependencies": {
|
||||
"title": "Abhängigkeiten",
|
||||
"addDependency": "+ Neue Abhängigkeit hinzufügen",
|
||||
"blockedBy": "Blockiert von",
|
||||
"searchTask": "Aufgabe suchen",
|
||||
"searchTask": "Zum Suchen der Aufgabe eingeben",
|
||||
"noTasksFound": "Keine Aufgaben gefunden",
|
||||
"confirmDeleteDependency": "Sind Sie sicher, dass Sie löschen möchten?"
|
||||
},
|
||||
"attachments": {
|
||||
"title": "Anhänge",
|
||||
"chooseOrDropFileToUpload": "Datei zum Hochladen wählen oder ablegen",
|
||||
"chooseOrDropFileToUpload": "Datei zum Hochladen auswählen oder ablegen",
|
||||
"uploading": "Wird hochgeladen..."
|
||||
},
|
||||
"comments": {
|
||||
"title": "Kommentare",
|
||||
"addComment": "+ Neuen Kommentar hinzufügen",
|
||||
"noComments": "Noch keine Kommentare. Seien Sie der Erste!",
|
||||
"noComments": "Noch keine Kommentare. Seien Sie der Erste, der kommentiert!",
|
||||
"delete": "Löschen",
|
||||
"confirmDeleteComment": "Sind Sie sicher, dass Sie diesen Kommentar löschen möchten?",
|
||||
"addCommentPlaceholder": "Kommentar hinzufügen...",
|
||||
@@ -75,9 +81,9 @@
|
||||
"commentButton": "Kommentieren",
|
||||
"attachFiles": "Dateien anhängen",
|
||||
"addMoreFiles": "Weitere Dateien hinzufügen",
|
||||
"selectedFiles": "Ausgewählte Dateien (Bis zu 25MB, Maximum {count})",
|
||||
"selectedFiles": "Ausgewählte Dateien (Bis zu 25MB, Maximum von {count})",
|
||||
"maxFilesError": "Sie können maximal {count} Dateien hochladen",
|
||||
"processFilesError": "Fehler beim Verarbeiten der Dateien",
|
||||
"processFilesError": "Dateien konnten nicht verarbeitet werden",
|
||||
"addCommentError": "Bitte fügen Sie einen Kommentar hinzu oder hängen Sie Dateien an",
|
||||
"createdBy": "Erstellt {{time}} von {{user}}",
|
||||
"updatedTime": "Aktualisiert {{time}}"
|
||||
@@ -86,18 +92,18 @@
|
||||
"pendingInvitation": "Ausstehende Einladung"
|
||||
},
|
||||
"taskTimeLogTab": {
|
||||
"title": "Zeiterfassung",
|
||||
"addTimeLog": "Neuen Zeiteintrag hinzufügen",
|
||||
"totalLogged": "Gesamt erfasst",
|
||||
"title": "Zeitprotokoll",
|
||||
"addTimeLog": "Neues Zeitprotokoll hinzufügen",
|
||||
"totalLogged": "Gesamt protokolliert",
|
||||
"exportToExcel": "Nach Excel exportieren",
|
||||
"noTimeLogsFound": "Keine Zeiteinträge gefunden",
|
||||
"noTimeLogsFound": "Keine Zeitprotokolle gefunden",
|
||||
"timeLogForm": {
|
||||
"date": "Datum",
|
||||
"startTime": "Startzeit",
|
||||
"endTime": "Endzeit",
|
||||
"workDescription": "Arbeitsbeschreibung",
|
||||
"descriptionPlaceholder": "Beschreibung hinzufügen",
|
||||
"logTime": "Zeit erfassen",
|
||||
"logTime": "Zeit protokollieren",
|
||||
"updateTime": "Zeit aktualisieren",
|
||||
"cancel": "Abbrechen",
|
||||
"selectDateError": "Bitte wählen Sie ein Datum",
|
||||
|
||||
@@ -84,5 +84,12 @@
|
||||
"close": "Schließen",
|
||||
"cannotMoveStatus": "Status kann nicht verschoben werden",
|
||||
"cannotMoveStatusMessage": "Dieser Status kann nicht verschoben werden, da die Kategorie '{{categoryName}}' leer bleiben würde. Jede Kategorie muss mindestens einen Status haben.",
|
||||
"ok": "OK"
|
||||
"ok": "OK",
|
||||
"clearSort": "Sortierung löschen",
|
||||
"sortAscending": "Aufsteigend sortieren",
|
||||
"sortDescending": "Absteigend sortieren",
|
||||
"sortByField": "Sortieren nach {{field}}",
|
||||
"ascendingOrder": "Aufsteigend",
|
||||
"descendingOrder": "Absteigend",
|
||||
"currentSort": "Aktuelle Sortierung: {{field}} {{order}}"
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"addSubTaskText": "+ Unteraufgabe hinzufügen",
|
||||
"addTaskInputPlaceholder": "Aufgabe eingeben und Enter drücken",
|
||||
"noTasksInGroup": "Keine Aufgaben in dieser Gruppe",
|
||||
"dropTaskHere": "Aufgabe hier ablegen",
|
||||
|
||||
"openButton": "Öffnen",
|
||||
"okButton": "OK",
|
||||
|
||||
@@ -1,15 +1,35 @@
|
||||
{
|
||||
"continue": "Continue",
|
||||
|
||||
"setupYourAccount": "Setup Your Worklenz Account.",
|
||||
"setupYourAccount": "Setup Your Account.",
|
||||
"organizationStepTitle": "Name Your Organization",
|
||||
"organizationStepLabel": "Pick a name for your Worklenz account.",
|
||||
"organizationStepWelcome": "Welcome to Worklenz!",
|
||||
"organizationStepDescription": "Let's start by setting up your organization. This will be the main workspace for your team.",
|
||||
"organizationStepLabel": "Organization name",
|
||||
"organizationStepPlaceholder": "e.g. Acme Corporation",
|
||||
"organizationStepTooltip": "This name will appear in your workspace and can be changed later in settings.",
|
||||
"organizationStepNeedIdeas": "Need ideas?",
|
||||
"organizationStepUseDetected": "Use detected:",
|
||||
"organizationStepCharacters": "characters",
|
||||
"organizationStepGoodLength": "Good length",
|
||||
"organizationStepTooShort": "Too short",
|
||||
"organizationStepNamingTips": "Naming Tips",
|
||||
"organizationStepTip1": "Keep it simple and memorable",
|
||||
"organizationStepTip2": "Reflect your industry or values",
|
||||
"organizationStepTip3": "Think about future growth",
|
||||
"organizationStepTip4": "Make it unique and brandable",
|
||||
"organizationStepSuggestionsTitle": "Name Suggestions",
|
||||
"organizationStepCategory1": "Tech Companies",
|
||||
"organizationStepCategory2": "Creative Agencies",
|
||||
"organizationStepCategory3": "Consulting",
|
||||
"organizationStepCategory4": "Startups",
|
||||
"organizationStepSuggestionsNote": "These are just examples to get you started. Choose something that represents your organization.",
|
||||
"organizationStepPrivacyNote": "Your organization name is private and only visible to your team members.",
|
||||
|
||||
"projectStepTitle": "Create your first project",
|
||||
"projectStepLabel": "What project are you working on right now?",
|
||||
"projectStepPlaceholder": "e.g. Marketing Plan",
|
||||
|
||||
"tasksStepTitle": "Create your first tasks",
|
||||
"tasksStepLabel": "Type a few tasks that you are going to do in",
|
||||
"tasksStepAddAnother": "Add another",
|
||||
|
||||
@@ -24,8 +44,169 @@
|
||||
"step3InputLabel": "Invite with email",
|
||||
"addAnother": "Add another",
|
||||
"skipForNow": "Skip for now",
|
||||
"skipping": "Skipping...",
|
||||
"formTitle": "Create your first task.",
|
||||
"step3Title": "Invite your team to work with",
|
||||
"maxMembers": " (You can invite up to 5 members)",
|
||||
"maxTasks": " (You can create up to 5 tasks)"
|
||||
"maxTasks": " (You can create up to 5 tasks)",
|
||||
|
||||
"membersStepTitle": "Invite your team",
|
||||
"membersStepDescription": "Add team members to \"{{organizationName}}\" and start collaborating",
|
||||
"memberPlaceholder": "Team member {{index}} - Enter email address",
|
||||
"validEmailAddress": "Valid email address",
|
||||
"addAnotherTeamMember": "Add another team member ({{current}}/{{max}})",
|
||||
"canInviteLater": "You can always invite team members later",
|
||||
"skipStepDescription": "Don't have email addresses ready? No problem! You can skip this step and invite team members from your project dashboard later.",
|
||||
|
||||
"orgCategoryTech": "Tech Companies",
|
||||
"orgCategoryCreative": "Creative Agencies",
|
||||
"orgCategoryConsulting": "Consulting",
|
||||
"orgCategoryStartups": "Startups",
|
||||
"namingTip1": "Keep it simple and memorable",
|
||||
"namingTip2": "Reflect your industry or values",
|
||||
"namingTip3": "Think about future growth",
|
||||
"namingTip4": "Make it unique and brandable",
|
||||
|
||||
"aboutYouTitle": "Tell us about yourself",
|
||||
"aboutYouDescription": "Help us personalize your experience",
|
||||
"orgTypeQuestion": "What best describes your organization?",
|
||||
"userRoleQuestion": "What's your role?",
|
||||
|
||||
"yourNeedsTitle": "What are your main needs?",
|
||||
"yourNeedsDescription": "Select all that apply to help us set up your workspace",
|
||||
"yourNeedsQuestion": "How will you primarily use Worklenz?",
|
||||
"useCaseTaskOrg": "Organize and track tasks",
|
||||
"useCaseTeamCollab": "Work together seamlessly",
|
||||
"useCaseResourceMgmt": "Manage time and resources",
|
||||
"useCaseClientComm": "Stay connected with clients",
|
||||
"useCaseTimeTrack": "Monitor project hours",
|
||||
"useCaseOther": "Something else",
|
||||
"selectedText": "selected",
|
||||
"previousToolsQuestion": "What tools have you used before? (Optional)",
|
||||
|
||||
"discoveryTitle": "One last thing...",
|
||||
"discoveryDescription": "Help us understand how you discovered Worklenz",
|
||||
"discoveryQuestion": "How did you hear about us?",
|
||||
"allSetTitle": "You're all set!",
|
||||
"allSetDescription": "Let's create your first project and get started with Worklenz",
|
||||
"surveyCompleteTitle": "Thank you!",
|
||||
"surveyCompleteDescription": "Your feedback helps us improve Worklenz for everyone",
|
||||
"aboutYouStepName": "About You",
|
||||
"yourNeedsStepName": "Your Needs",
|
||||
"discoveryStepName": "Discovery",
|
||||
"stepProgress": "Step {step} of 3: {title}",
|
||||
|
||||
"projectStepHeader": "Let's create your first project",
|
||||
"projectStepSubheader": "Start from scratch or use a template to get going faster",
|
||||
"startFromScratch": "Start from scratch",
|
||||
"templateSelected": "Template selected below",
|
||||
"quickSuggestions": "Quick suggestions:",
|
||||
"orText": "OR",
|
||||
"startWithTemplate": "Start with a template",
|
||||
"clearToSelectTemplate": "Clear project name above to select a template",
|
||||
"templateHeadStart": "Get a head start with pre-built project structures",
|
||||
"browseAllTemplates": "Browse All Templates",
|
||||
"templatesAvailable": "15+ industry-specific templates available",
|
||||
"chooseTemplate": "Choose a template that matches your project type",
|
||||
"createProject": "Create Project",
|
||||
|
||||
"templateSoftwareDev": "Software Development",
|
||||
"templateSoftwareDesc": "Agile sprints, bug tracking, releases",
|
||||
"templateMarketing": "Marketing Campaign",
|
||||
"templateMarketingDesc": "Campaign planning, content calendar",
|
||||
"templateConstruction": "Construction Project",
|
||||
"templateConstructionDesc": "Phases, permits, contractors",
|
||||
"templateStartup": "Startup Launch",
|
||||
"templateStartupDesc": "MVP development, funding, growth",
|
||||
|
||||
"tasksStepTitle": "Add your first tasks",
|
||||
"tasksStepDescription": "Break down \"{{projectName}}\" into actionable tasks to get started",
|
||||
"taskPlaceholder": "Task {{index}} - e.g., What needs to be done?",
|
||||
"addAnotherTask": "Add another task ({{current}}/{{max}})",
|
||||
|
||||
"surveyStepTitle": "Tell us about yourself",
|
||||
"surveyStepLabel": "Help us personalize your Worklenz experience by answering a few questions.",
|
||||
|
||||
"organizationType": "What best describes your organization?",
|
||||
"organizationTypeFreelancer": "Freelancer",
|
||||
"organizationTypeStartup": "Startup",
|
||||
"organizationTypeSmallMediumBusiness": "Small or Medium Business",
|
||||
"organizationTypeAgency": "Agency",
|
||||
"organizationTypeEnterprise": "Enterprise",
|
||||
"organizationTypeOther": "Other",
|
||||
|
||||
"userRole": "What is your role?",
|
||||
"userRoleFounderCeo": "Founder / CEO",
|
||||
"userRoleProjectManager": "Project Manager",
|
||||
"userRoleSoftwareDeveloper": "Software Developer",
|
||||
"userRoleDesigner": "Designer",
|
||||
"userRoleOperations": "Operations",
|
||||
"userRoleOther": "Other",
|
||||
|
||||
"mainUseCases": "What will you mainly use Worklenz for?",
|
||||
"mainUseCasesTaskManagement": "Task management",
|
||||
"mainUseCasesTeamCollaboration": "Team collaboration",
|
||||
"mainUseCasesResourcePlanning": "Resource planning",
|
||||
"mainUseCasesClientCommunication": "Client communication & reporting",
|
||||
"mainUseCasesTimeTracking": "Time tracking",
|
||||
"mainUseCasesOther": "Other",
|
||||
|
||||
"previousTools": "What tool(s) were you using before Worklenz?",
|
||||
"previousToolsPlaceholder": "e.g. Trello, Asana, Monday.com",
|
||||
|
||||
"howHeardAbout": "How did you hear about Worklenz?",
|
||||
"howHeardAboutGoogleSearch": "Google Search",
|
||||
"howHeardAboutTwitter": "Twitter",
|
||||
"howHeardAboutLinkedin": "LinkedIn",
|
||||
"howHeardAboutFriendColleague": "A friend or colleague",
|
||||
"howHeardAboutBlogArticle": "A blog or article",
|
||||
"howHeardAboutOther": "Other",
|
||||
|
||||
"aboutYouStepTitle": "Tell us about yourself",
|
||||
"aboutYouStepDescription": "Help us personalize your experience",
|
||||
"yourNeedsStepTitle": "What are your main needs?",
|
||||
"yourNeedsStepDescription": "Select all that apply to help us set up your workspace",
|
||||
"selected": "selected",
|
||||
"previousToolsLabel": "What tools have you used before? (Optional)",
|
||||
|
||||
"roleSuggestions": {
|
||||
"designer": "UI/UX, Graphics, Creative",
|
||||
"developer": "Frontend, Backend, Full-stack",
|
||||
"projectManager": "Planning, Coordination",
|
||||
"marketing": "Content, Social Media, Growth",
|
||||
"sales": "Business Development, Client Relations",
|
||||
"operations": "Admin, HR, Finance"
|
||||
},
|
||||
|
||||
"languages": {
|
||||
"en": "English",
|
||||
"es": "Español",
|
||||
"pt": "Português",
|
||||
"de": "Deutsch",
|
||||
"alb": "Shqip",
|
||||
"zh": "简体中文"
|
||||
},
|
||||
|
||||
"orgSuggestions": {
|
||||
"tech": ["TechCorp", "DevStudio", "CodeCraft", "PixelForge"],
|
||||
"creative": ["Creative Hub", "Design Studio", "Brand Works", "Visual Arts"],
|
||||
"consulting": ["Strategy Group", "Business Solutions", "Expert Advisors", "Growth Partners"],
|
||||
"startup": ["Innovation Labs", "Future Works", "Venture Co", "Next Gen"]
|
||||
},
|
||||
|
||||
"projectSuggestions": {
|
||||
"freelancer": ["Client Project", "Portfolio Update", "Personal Brand"],
|
||||
"startup": ["MVP Development", "Product Launch", "Market Research"],
|
||||
"agency": ["Client Campaign", "Brand Strategy", "Website Redesign"],
|
||||
"enterprise": ["System Migration", "Process Optimization", "Team Training"]
|
||||
},
|
||||
|
||||
"useCaseDescriptions": {
|
||||
"taskManagement": "Organize and track tasks",
|
||||
"teamCollaboration": "Work together seamlessly",
|
||||
"resourcePlanning": "Manage time and resources",
|
||||
"clientCommunication": "Stay connected with clients",
|
||||
"timeTracking": "Monitor project hours",
|
||||
"other": "Something else"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"billingDetails": "Billing Details",
|
||||
"name": "Name",
|
||||
"namePlaceholder": "Name",
|
||||
"emailAddress": "Email Address",
|
||||
"emailPlaceholder": "Email Address",
|
||||
"contactNumber": "Contact Number",
|
||||
"phoneNumberPlaceholder": "Phone Number",
|
||||
"phoneValidationError": "Phone number must be exactly 10 digits",
|
||||
"companyDetails": "Company Details",
|
||||
"companyName": "Company Name",
|
||||
"companyNamePlaceholder": "Company Name",
|
||||
"addressLine01": "Address Line 01",
|
||||
"addressLine01Placeholder": "Address Line 01",
|
||||
"addressLine02": "Address Line 02",
|
||||
"addressLine02Placeholder": "Address Line 02",
|
||||
"country": "Country",
|
||||
"countryPlaceholder": "Country",
|
||||
"city": "City",
|
||||
"cityPlaceholder": "City",
|
||||
"state": "State",
|
||||
"statePlaceholder": "State",
|
||||
"postalCode": "Postal Code",
|
||||
"postalCodePlaceholder": "Postal Code",
|
||||
"save": "Save"
|
||||
}
|
||||
@@ -117,5 +117,26 @@
|
||||
"currentSeatsText": "You currently have {{seats}} seats available.",
|
||||
"selectSeatsText": "Please select the number of additional seats to purchase.",
|
||||
"purchase": "Purchase",
|
||||
"contactSales": "Contact sales"
|
||||
"contactSales": "Contact sales",
|
||||
"submitSuccess": "Code redeemed successfully!",
|
||||
"submitSuccessDescription": "Your account has been updated with the new credits.",
|
||||
"percentUsed": "% Used",
|
||||
"sizeUnits": {
|
||||
"bytes": "Bytes",
|
||||
"kb": "KB",
|
||||
"mb": "MB",
|
||||
"gb": "GB",
|
||||
"tb": "TB"
|
||||
},
|
||||
"seatPerMonth": "seat / month",
|
||||
"totalPrice": "Total $",
|
||||
"tryForFree": "Try for free",
|
||||
"subscriptionUpdateSuccess": "Subscription updated successfully!",
|
||||
"paymentProcessorError": "Failed to load payment processor",
|
||||
"seatsLabel": "Seats:",
|
||||
"requiredField": "*",
|
||||
"purchaseSeatsTextSingle": "To continue, you'll need to purchase an additional seat.",
|
||||
"singleUserNote": "You currently have 1 seat available.",
|
||||
"selectSeatsTextSingle": "Please select the number of additional seats to purchase.",
|
||||
"phoneNumberPattern": "07xxxxxxxx"
|
||||
}
|
||||
|
||||
@@ -4,5 +4,8 @@
|
||||
"owner": "Organization Owner",
|
||||
"admins": "Organization Admins",
|
||||
"contactNumber": "Add Contact Number",
|
||||
"edit": "Edit"
|
||||
"edit": "Edit",
|
||||
"emailAddress": "Email Address",
|
||||
"enterOrganizationName": "Enter organization name",
|
||||
"ownerSuffix": " (Owner)"
|
||||
}
|
||||
|
||||
@@ -5,5 +5,6 @@
|
||||
"user": "User",
|
||||
"email": "Email",
|
||||
"lastActivity": "Last Activity",
|
||||
"refresh": "Refresh users"
|
||||
"refresh": "Refresh users",
|
||||
"name": "Name"
|
||||
}
|
||||
|
||||
@@ -8,9 +8,11 @@
|
||||
"emailPlaceholder": "Enter your email",
|
||||
"emailRequired": "Please enter your Email!",
|
||||
"passwordLabel": "Password",
|
||||
"passwordGuideline": "Password must be at least 8 characters, include uppercase and lowercase letters, a number, and a special character.",
|
||||
"passwordPlaceholder": "Enter your password",
|
||||
"passwordRequired": "Please enter your Password!",
|
||||
"passwordMinCharacterRequired": "Password must be at least 8 characters!",
|
||||
"passwordMaxCharacterRequired": "Password must be at most 32 characters!",
|
||||
"passwordPatternRequired": "Password does not meet the requirements!",
|
||||
"strongPasswordPlaceholder": "Enter a stronger password",
|
||||
"passwordValidationAltText": "Password must include at least 8 characters with upper and lower case letters, a number, and a symbol.",
|
||||
|
||||
@@ -10,6 +10,17 @@
|
||||
"deleteConfirmationOk": "Yes",
|
||||
"deleteConfirmationCancel": "Cancel",
|
||||
|
||||
"deleteTaskTitle": "Delete Task",
|
||||
"deleteTaskContent": "Are you sure you want to delete this task? This action cannot be undone.",
|
||||
"deleteTaskConfirm": "Delete",
|
||||
"deleteTaskCancel": "Cancel",
|
||||
|
||||
"deleteStatusTitle": "Delete Status",
|
||||
"deleteStatusContent": "Are you sure you want to delete this status? This action cannot be undone.",
|
||||
|
||||
"deletePhaseTitle": "Delete Phase",
|
||||
"deletePhaseContent": "Are you sure you want to delete this phase? This action cannot be undone.",
|
||||
|
||||
"dueDate": "Due date",
|
||||
"cancel": "Cancel",
|
||||
|
||||
@@ -29,5 +40,14 @@
|
||||
"nextWeek": "Next week",
|
||||
"noSubtasks": "No subtasks",
|
||||
"showSubtasks": "Show subtasks",
|
||||
"hideSubtasks": "Hide subtasks"
|
||||
"hideSubtasks": "Hide subtasks",
|
||||
|
||||
"errorLoadingTasks": "Error loading tasks",
|
||||
"noTasksFound": "No tasks found",
|
||||
"loadingFilters": "Loading filters...",
|
||||
"failedToUpdateColumnOrder": "Failed to update column order",
|
||||
"failedToUpdatePhaseOrder": "Failed to update phase order",
|
||||
"pleaseTryAgain": "Please try again",
|
||||
"taskNotCompleted": "Task is not completed",
|
||||
"completeTaskDependencies": "Please complete the task dependencies before proceeding"
|
||||
}
|
||||
|
||||
@@ -13,5 +13,6 @@
|
||||
"deleteButtonTooltip": "Remove from project",
|
||||
"memberCount": "Member",
|
||||
"membersCountPlural": "Members",
|
||||
"emptyText": "There are no attachments in the project."
|
||||
"emptyText": "There are no attachments in the project.",
|
||||
"searchPlaceholder": "Search members"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
{
|
||||
"title": "Project Members",
|
||||
"title": "Share Project",
|
||||
"searchLabel": "Add members by adding their name or email",
|
||||
"searchPlaceholder": "Type name or email",
|
||||
"inviteAsAMember": "Invite as a member",
|
||||
"inviteNewMemberByEmail": "Invite new member by email"
|
||||
"inviteNewMemberByEmail": "Invite new member by email",
|
||||
"members": "Members",
|
||||
"copyProjectLink": "Copy project link",
|
||||
"inviteMember": "Invite Member",
|
||||
"alsoInviteToProject": "Also invite to project"
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"cancelText": "No, cancel",
|
||||
"deactivatedText": "(Currently deactivated)",
|
||||
"pendingInvitationText": "(Invitation pending)",
|
||||
"addMemberDrawerTitle": "Add New Team Member",
|
||||
"addMemberDrawerTitle": "Invite Team Members",
|
||||
"updateMemberDrawerTitle": "Update Team Member",
|
||||
"addMemberEmailHint": "Members will be added to the team regardless of invitation acceptance status",
|
||||
"memberEmailLabel": "Email(s)",
|
||||
@@ -28,7 +28,7 @@
|
||||
"jobTitleLabel": "Job Title",
|
||||
"jobTitlePlaceholder": "Select or search job title (Optional)",
|
||||
"memberAccessLabel": "Access Level",
|
||||
"addToTeamButton": "Add Member to Team",
|
||||
"addToTeamButton": "Send Invitation",
|
||||
"updateButton": "Save Changes",
|
||||
"resendInvitationButton": "Resend Invitation Email",
|
||||
"invitationSentSuccessMessage": "Team invitation sent successfully!",
|
||||
@@ -43,5 +43,6 @@
|
||||
"updatedText": "Updated",
|
||||
"noResultFound": "Type an email address and hit enter...",
|
||||
"jobTitlesFetchError": "Failed to fetch job titles",
|
||||
"invitationResent": "Invitation resent successfully!"
|
||||
"invitationResent": "Invitation resent successfully!",
|
||||
"copyTeamLink": "Copy team link"
|
||||
}
|
||||
|
||||
14
worklenz-frontend/public/locales/en/survey.json
Normal file
14
worklenz-frontend/public/locales/en/survey.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"modalTitle": "Help Us Improve Your Experience",
|
||||
"skip": "Skip for now",
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"completeSurvey": "Complete Survey",
|
||||
"submitting": "Submitting your responses...",
|
||||
"submitSuccessTitle": "Thank you!",
|
||||
"submitSuccessSubtitle": "Your feedback helps us improve Worklenz for everyone.",
|
||||
"submitSuccessMessage": "Thank you for completing the survey!",
|
||||
"submitErrorMessage": "Failed to submit survey. Please try again.",
|
||||
"submitErrorLog": "Failed to submit survey",
|
||||
"fetchErrorLog": "Failed to fetch survey"
|
||||
}
|
||||
@@ -1,7 +1,13 @@
|
||||
{
|
||||
"taskHeader": {
|
||||
"taskNamePlaceholder": "Type your Task",
|
||||
"deleteTask": "Delete Task"
|
||||
"deleteTask": "Delete Task",
|
||||
"parentTask": "Parent Task",
|
||||
"currentTask": "Current Task",
|
||||
"back": "Back",
|
||||
"backToParent": "Back to Parent Task",
|
||||
"toParentTask": "to parent task",
|
||||
"loadingHierarchy": "Loading hierarchy..."
|
||||
},
|
||||
"taskInfoTab": {
|
||||
"title": "Info",
|
||||
|
||||
@@ -84,5 +84,12 @@
|
||||
"close": "Close",
|
||||
"cannotMoveStatus": "Cannot Move Status",
|
||||
"cannotMoveStatusMessage": "Cannot move this status because it would leave the '{{categoryName}}' category empty. Each category must have at least one status.",
|
||||
"ok": "OK"
|
||||
"ok": "OK",
|
||||
"clearSort": "Clear Sort",
|
||||
"sortAscending": "Sort Ascending",
|
||||
"sortDescending": "Sort Descending",
|
||||
"sortByField": "Sort by {{field}}",
|
||||
"ascendingOrder": "Ascending",
|
||||
"descendingOrder": "Descending",
|
||||
"currentSort": "Current sort: {{field}} {{order}}"
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"addSubTaskText": "Add Sub Task",
|
||||
"addTaskInputPlaceholder": "Type your task and hit enter",
|
||||
"noTasksInGroup": "No tasks in this group",
|
||||
"dropTaskHere": "Drop task here",
|
||||
|
||||
"openButton": "Open",
|
||||
"okButton": "Ok",
|
||||
|
||||
@@ -3,7 +3,28 @@
|
||||
|
||||
"setupYourAccount": "Configura tu cuenta.",
|
||||
"organizationStepTitle": "Nombra tu organización",
|
||||
"organizationStepLabel": "Elige un nombre para tu cuenta de Worklenz.",
|
||||
"organizationStepWelcome": "¡Bienvenido a Worklenz!",
|
||||
"organizationStepDescription": "Comencemos configurando tu organización. Este será el espacio de trabajo principal para tu equipo.",
|
||||
"organizationStepLabel": "Nombre de la organización",
|
||||
"organizationStepPlaceholder": "ej. Corporación Acme",
|
||||
"organizationStepTooltip": "Este nombre aparecerá en tu espacio de trabajo y se puede cambiar más tarde en la configuración.",
|
||||
"organizationStepNeedIdeas": "¿Necesitas ideas?",
|
||||
"organizationStepUseDetected": "Usar detectado:",
|
||||
"organizationStepCharacters": "caracteres",
|
||||
"organizationStepGoodLength": "Buena longitud",
|
||||
"organizationStepTooShort": "Demasiado corto",
|
||||
"organizationStepNamingTips": "Consejos para nombrar",
|
||||
"organizationStepTip1": "Manténlo simple y memorable",
|
||||
"organizationStepTip2": "Refleja tu industria o valores",
|
||||
"organizationStepTip3": "Piensa en el crecimiento futuro",
|
||||
"organizationStepTip4": "Hazlo único y reconocible",
|
||||
"organizationStepSuggestionsTitle": "Sugerencias de nombres",
|
||||
"organizationStepCategory1": "Empresas tecnológicas",
|
||||
"organizationStepCategory2": "Agencias creativas",
|
||||
"organizationStepCategory3": "Consultoría",
|
||||
"organizationStepCategory4": "Startups",
|
||||
"organizationStepSuggestionsNote": "Estos son solo ejemplos para empezar. Elige algo que represente a tu organización.",
|
||||
"organizationStepPrivacyNote": "El nombre de tu organización es privado y solo visible para los miembros de tu equipo.",
|
||||
|
||||
"projectStepTitle": "Crea tu primer proyecto",
|
||||
"projectStepLabel": "¿En qué proyecto estás trabajando ahora?",
|
||||
@@ -24,9 +45,171 @@
|
||||
"step3InputLabel": "Invitar por correo electrónico",
|
||||
"addAnother": "Agregar otro",
|
||||
"skipForNow": "Omitir por ahora",
|
||||
"skipping": "Omitiendo...",
|
||||
"formTitle": "Crea tu primera tarea.",
|
||||
"step3Title": "Invita a tu equipo a trabajar",
|
||||
|
||||
"maxMembers": " (Puedes invitar hasta 5 miembros)",
|
||||
"maxTasks": " (Puedes crear hasta 5 tareas)"
|
||||
"maxTasks": " (Puedes crear hasta 5 tareas)",
|
||||
|
||||
"membersStepTitle": "Invita a tu equipo",
|
||||
"membersStepDescription": "Añade miembros del equipo a \"{{organizationName}}\" y comienza a colaborar",
|
||||
"memberPlaceholder": "Miembro del equipo {{index}} - Ingresa dirección de correo",
|
||||
"validEmailAddress": "Dirección de correo válida",
|
||||
"addAnotherTeamMember": "Añadir otro miembro del equipo ({{current}}/{{max}})",
|
||||
"canInviteLater": "Siempre puedes invitar miembros del equipo más tarde",
|
||||
"skipStepDescription": "¿No tienes direcciones de correo listas? ¡No hay problema! Puedes omitir este paso e invitar miembros del equipo desde tu panel de proyecto más tarde.",
|
||||
|
||||
"orgCategoryTech": "Empresas Tecnológicas",
|
||||
"orgCategoryCreative": "Agencias Creativas",
|
||||
"orgCategoryConsulting": "Consultoría",
|
||||
"orgCategoryStartups": "Startups",
|
||||
"namingTip1": "Manténlo simple y memorable",
|
||||
"namingTip2": "Refleja tu industria o valores",
|
||||
"namingTip3": "Piensa en el crecimiento futuro",
|
||||
"namingTip4": "Hazlo único y reconocible",
|
||||
|
||||
"aboutYouTitle": "Cuéntanos sobre ti",
|
||||
"aboutYouDescription": "Ayúdanos a personalizar tu experiencia",
|
||||
"orgTypeQuestion": "¿Qué describe mejor tu organización?",
|
||||
"userRoleQuestion": "¿Cuál es tu rol?",
|
||||
|
||||
"yourNeedsTitle": "¿Cuáles son tus principales necesidades?",
|
||||
"yourNeedsDescription": "Selecciona todas las que apliquen para ayudarnos a configurar tu espacio de trabajo",
|
||||
"yourNeedsQuestion": "¿Cómo usarás principalmente Worklenz?",
|
||||
"useCaseTaskOrg": "Organizar y hacer seguimiento de tareas",
|
||||
"useCaseTeamCollab": "Trabajar juntos sin problemas",
|
||||
"useCaseResourceMgmt": "Gestionar tiempo y recursos",
|
||||
"useCaseClientComm": "Mantenerse conectado con clientes",
|
||||
"useCaseTimeTrack": "Monitorear horas de proyecto",
|
||||
"useCaseOther": "Algo más",
|
||||
"selectedText": "seleccionado",
|
||||
"previousToolsQuestion": "¿Qué herramientas has usado antes? (Opcional)",
|
||||
"previousToolsPlaceholder": "ej., Asana, Trello, Jira, Monday.com, etc.",
|
||||
|
||||
"discoveryTitle": "Una última cosa...",
|
||||
"discoveryDescription": "Ayúdanos a entender cómo descubriste Worklenz",
|
||||
"discoveryQuestion": "¿Cómo te enteraste de nosotros?",
|
||||
"allSetTitle": "¡Ya estás listo!",
|
||||
"allSetDescription": "Vamos a crear tu primer proyecto y comenzar con Worklenz",
|
||||
"surveyCompleteTitle": "¡Gracias!",
|
||||
"surveyCompleteDescription": "Tu retroalimentación nos ayuda a mejorar Worklenz para todos",
|
||||
"aboutYouStepName": "Sobre ti",
|
||||
"yourNeedsStepName": "Tus necesidades",
|
||||
"discoveryStepName": "Descubrimiento",
|
||||
"stepProgress": "Paso {step} de 3: {title}",
|
||||
|
||||
"projectStepHeader": "Vamos a crear tu primer proyecto",
|
||||
"projectStepSubheader": "Empieza desde cero o usa una plantilla para ir más rápido",
|
||||
"startFromScratch": "Empezar desde cero",
|
||||
"templateSelected": "Plantilla seleccionada abajo",
|
||||
"quickSuggestions": "Sugerencias rápidas:",
|
||||
"orText": "O",
|
||||
"startWithTemplate": "Comenzar con una plantilla",
|
||||
"clearToSelectTemplate": "Borra el nombre del proyecto arriba para seleccionar una plantilla",
|
||||
"templateHeadStart": "Obtén una ventaja inicial con estructuras de proyecto pre-construidas",
|
||||
"browseAllTemplates": "Explorar todas las plantillas",
|
||||
"templatesAvailable": "15+ plantillas específicas de industria disponibles",
|
||||
"chooseTemplate": "Elige una plantilla que coincida con tu tipo de proyecto",
|
||||
"createProject": "Crear proyecto",
|
||||
|
||||
"templateSoftwareDev": "Desarrollo de Software",
|
||||
"templateSoftwareDesc": "Sprints ágiles, seguimiento de errores, lanzamientos",
|
||||
"templateMarketing": "Campaña de Marketing",
|
||||
"templateMarketingDesc": "Planificación de campaña, calendario de contenido",
|
||||
"templateConstruction": "Proyecto de Construcción",
|
||||
"templateConstructionDesc": "Fases, permisos, contratistas",
|
||||
"templateStartup": "Lanzamiento de Startup",
|
||||
"templateStartupDesc": "Desarrollo MVP, financiación, crecimiento",
|
||||
|
||||
"tasksStepTitle": "Añade tus primeras tareas",
|
||||
"tasksStepDescription": "Desglosa \"{{projectName}}\" en tareas accionables para comenzar",
|
||||
"taskPlaceholder": "Tarea {{index}} - ej., ¿Qué necesita hacerse?",
|
||||
"addAnotherTask": "Añadir otra tarea ({{current}}/{{max}})",
|
||||
|
||||
"surveyStepTitle": "Cuéntanos sobre ti",
|
||||
"surveyStepLabel": "Ayúdanos a personalizar tu experiencia de Worklenz respondiendo algunas preguntas.",
|
||||
|
||||
"organizationType": "¿Qué describe mejor tu organización?",
|
||||
"organizationTypeFreelancer": "Freelancer",
|
||||
"organizationTypeStartup": "Startup",
|
||||
"organizationTypeSmallMediumBusiness": "Pequeña o Mediana Empresa",
|
||||
"organizationTypeAgency": "Agencia",
|
||||
"organizationTypeEnterprise": "Empresa",
|
||||
"organizationTypeOther": "Otro",
|
||||
|
||||
"userRole": "¿Cuál es tu rol?",
|
||||
"userRoleFounderCeo": "Fundador / CEO",
|
||||
"userRoleProjectManager": "Gerente de Proyecto",
|
||||
"userRoleSoftwareDeveloper": "Desarrollador de Software",
|
||||
"userRoleDesigner": "Diseñador",
|
||||
"userRoleOperations": "Operaciones",
|
||||
"userRoleOther": "Otro",
|
||||
|
||||
"mainUseCases": "¿Para qué usarás principalmente Worklenz?",
|
||||
"mainUseCasesTaskManagement": "Gestión de tareas",
|
||||
"mainUseCasesTeamCollaboration": "Colaboración de equipo",
|
||||
"mainUseCasesResourcePlanning": "Planificación de recursos",
|
||||
"mainUseCasesClientCommunication": "Comunicación con clientes e informes",
|
||||
"mainUseCasesTimeTracking": "Seguimiento de tiempo",
|
||||
"mainUseCasesOther": "Otro",
|
||||
|
||||
"previousTools": "¿Qué herramienta(s) usabas antes de Worklenz?",
|
||||
"previousToolsPlaceholder": "ej. Trello, Asana, Monday.com",
|
||||
|
||||
"howHeardAbout": "¿Cómo conociste Worklenz?",
|
||||
"howHeardAboutGoogleSearch": "Búsqueda de Google",
|
||||
"howHeardAboutTwitter": "Twitter",
|
||||
"howHeardAboutLinkedin": "LinkedIn",
|
||||
"howHeardAboutFriendColleague": "Un amigo o colega",
|
||||
"howHeardAboutBlogArticle": "Un blog o artículo",
|
||||
"howHeardAboutOther": "Otro",
|
||||
|
||||
"aboutYouStepTitle": "Cuéntanos sobre ti",
|
||||
"aboutYouStepDescription": "Ayúdanos a personalizar tu experiencia",
|
||||
"yourNeedsStepTitle": "¿Cuáles son tus principales necesidades?",
|
||||
"yourNeedsStepDescription": "Selecciona todas las que apliquen para ayudarnos a configurar tu espacio de trabajo",
|
||||
"selected": "seleccionado",
|
||||
"previousToolsLabel": "¿Qué herramientas has usado antes? (Opcional)",
|
||||
|
||||
"roleSuggestions": {
|
||||
"designer": "UI/UX, Gráficos, Creativo",
|
||||
"developer": "Frontend, Backend, Full-stack",
|
||||
"projectManager": "Planificación, Coordinación",
|
||||
"marketing": "Contenido, Redes Sociales, Crecimiento",
|
||||
"sales": "Desarrollo de Negocios, Relaciones con Clientes",
|
||||
"operations": "Administración, RRHH, Finanzas"
|
||||
},
|
||||
|
||||
"languages": {
|
||||
"en": "English",
|
||||
"es": "Español",
|
||||
"pt": "Português",
|
||||
"de": "Deutsch",
|
||||
"alb": "Shqip",
|
||||
"zh": "简体中文"
|
||||
},
|
||||
|
||||
"orgSuggestions": {
|
||||
"tech": ["TechCorp", "DevStudio", "CodeCraft", "PixelForge"],
|
||||
"creative": ["Creative Hub", "Design Studio", "Brand Works", "Visual Arts"],
|
||||
"consulting": ["Strategy Group", "Business Solutions", "Expert Advisors", "Growth Partners"],
|
||||
"startup": ["Innovation Labs", "Future Works", "Venture Co", "Next Gen"]
|
||||
},
|
||||
|
||||
"projectSuggestions": {
|
||||
"freelancer": ["Proyecto Cliente", "Actualización Portfolio", "Marca Personal"],
|
||||
"startup": ["Desarrollo MVP", "Lanzamiento Producto", "Investigación Mercado"],
|
||||
"agency": ["Campaña Cliente", "Estrategia Marca", "Rediseño Website"],
|
||||
"enterprise": ["Migración Sistema", "Optimización Procesos", "Capacitación Equipo"]
|
||||
},
|
||||
|
||||
"useCaseDescriptions": {
|
||||
"taskManagement": "Organizar y rastrear tareas",
|
||||
"teamCollaboration": "Trabajar juntos sin problemas",
|
||||
"resourcePlanning": "Gestionar tiempo y recursos",
|
||||
"clientCommunication": "Mantenerse conectado con clientes",
|
||||
"timeTracking": "Monitorear horas de proyecto",
|
||||
"other": "Algo más"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,9 +8,11 @@
|
||||
"emailPlaceholder": "Ingresa tu correo electrónico",
|
||||
"emailRequired": "¡Por favor ingresa tu correo electrónico!",
|
||||
"passwordLabel": "Contraseña",
|
||||
"passwordGuideline": "La contraseña debe tener al menos 8 caracteres, incluir letras mayúsculas y minúsculas, un número y un carácter especial.",
|
||||
"passwordPlaceholder": "Ingresa tu contraseña",
|
||||
"passwordRequired": "¡Por favor ingresa tu contraseña!",
|
||||
"passwordMinCharacterRequired": "¡La contraseña debe tener al menos 8 caracteres!",
|
||||
"passwordMaxCharacterRequired": "¡La contraseña debe tener como máximo 32 caracteres!",
|
||||
"passwordPatternRequired": "¡La contraseña no cumple con los requisitos!",
|
||||
"strongPasswordPlaceholder": "Ingresa una contraseña más segura",
|
||||
"passwordValidationAltText": "La contraseña debe incluir al menos 8 caracteres con letras mayúsculas y minúsculas, un número y un símbolo.",
|
||||
|
||||
@@ -10,6 +10,17 @@
|
||||
"deleteConfirmationOk": "Sí",
|
||||
"deleteConfirmationCancel": "Cancelar",
|
||||
|
||||
"deleteTaskTitle": "Eliminar tarea",
|
||||
"deleteTaskContent": "¿Estás seguro de que deseas eliminar esta tarea? Esta acción no se puede deshacer.",
|
||||
"deleteTaskConfirm": "Eliminar",
|
||||
"deleteTaskCancel": "Cancelar",
|
||||
|
||||
"deleteStatusTitle": "Eliminar estado",
|
||||
"deleteStatusContent": "¿Estás seguro de que deseas eliminar este estado? Esta acción no se puede deshacer.",
|
||||
|
||||
"deletePhaseTitle": "Eliminar fase",
|
||||
"deletePhaseContent": "¿Estás seguro de que deseas eliminar esta fase? Esta acción no se puede deshacer.",
|
||||
|
||||
"dueDate": "Fecha de vencimiento",
|
||||
"cancel": "Cancelar",
|
||||
|
||||
@@ -26,5 +37,17 @@
|
||||
"noDueDate": "Sin fecha de vencimiento",
|
||||
"save": "Guardar",
|
||||
"clear": "Limpiar",
|
||||
"nextWeek": "Próxima semana"
|
||||
"nextWeek": "Próxima semana",
|
||||
"noSubtasks": "Sin subtareas",
|
||||
"showSubtasks": "Mostrar subtareas",
|
||||
"hideSubtasks": "Ocultar subtareas",
|
||||
|
||||
"errorLoadingTasks": "Error al cargar tareas",
|
||||
"noTasksFound": "No se encontraron tareas",
|
||||
"loadingFilters": "Cargando filtros...",
|
||||
"failedToUpdateColumnOrder": "Error al actualizar el orden de las columnas",
|
||||
"failedToUpdatePhaseOrder": "Error al actualizar el orden de las fases",
|
||||
"pleaseTryAgain": "Por favor, inténtalo de nuevo",
|
||||
"taskNotCompleted": "La tarea no está completada",
|
||||
"completeTaskDependencies": "Por favor, completa las dependencias de la tarea antes de continuar"
|
||||
}
|
||||
|
||||
@@ -13,5 +13,6 @@
|
||||
"deleteButtonTooltip": "Eliminar del proyecto",
|
||||
"memberCount": "Miembro",
|
||||
"membersCountPlural": "Miembros",
|
||||
"emptyText": "No hay archivos adjuntos en el proyecto."
|
||||
"emptyText": "No hay archivos adjuntos en el proyecto.",
|
||||
"searchPlaceholder": "Buscar miembros"
|
||||
}
|
||||
|
||||
@@ -3,5 +3,9 @@
|
||||
"searchLabel": "Agregar miembros ingresando su nombre o correo electrónico",
|
||||
"searchPlaceholder": "Escriba nombre o correo electrónico",
|
||||
"inviteAsAMember": "Invitar como miembro",
|
||||
"inviteNewMemberByEmail": "Invitar nuevo miembro por correo electrónico"
|
||||
"inviteNewMemberByEmail": "Invitar nuevo miembro por correo electrónico",
|
||||
"members": "Miembros",
|
||||
"copyProjectLink": "Copiar enlace del proyecto",
|
||||
"inviteMember": "Invitar miembro",
|
||||
"alsoInviteToProject": "También invitar al proyecto"
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"jobTitleLabel": "Cargo",
|
||||
"jobTitlePlaceholder": "Seleccione o busque cargo (Opcional)",
|
||||
"memberAccessLabel": "Nivel de acceso",
|
||||
"addToTeamButton": "Agregar miembro al equipo",
|
||||
"addToTeamButton": "Enviar invitación",
|
||||
"updateButton": "Guardar cambios",
|
||||
"resendInvitationButton": "Reenviar correo de invitación",
|
||||
"invitationSentSuccessMessage": "¡Invitación al equipo enviada exitosamente!",
|
||||
@@ -43,5 +43,6 @@
|
||||
"updatedText": "Actualizado",
|
||||
"noResultFound": "Escriba una dirección de correo electrónico y presione enter...",
|
||||
"jobTitlesFetchError": "Error al obtener los cargos",
|
||||
"invitationResent": "¡Invitación reenviada exitosamente!"
|
||||
"invitationResent": "¡Invitación reenviada exitosamente!",
|
||||
"copyTeamLink": "Copiar enlace del equipo"
|
||||
}
|
||||
|
||||
14
worklenz-frontend/public/locales/es/survey.json
Normal file
14
worklenz-frontend/public/locales/es/survey.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"modalTitle": "Ayúdanos a mejorar tu experiencia",
|
||||
"skip": "Omitir por ahora",
|
||||
"previous": "Anterior",
|
||||
"next": "Siguiente",
|
||||
"completeSurvey": "Completar encuesta",
|
||||
"submitting": "Enviando tus respuestas...",
|
||||
"submitSuccessTitle": "¡Gracias!",
|
||||
"submitSuccessSubtitle": "Tus comentarios nos ayudan a mejorar Worklenz para todos.",
|
||||
"submitSuccessMessage": "¡Gracias por completar la encuesta!",
|
||||
"submitErrorMessage": "No se pudo enviar la encuesta. Por favor, inténtalo de nuevo.",
|
||||
"submitErrorLog": "Error al enviar la encuesta",
|
||||
"fetchErrorLog": "Error al obtener la encuesta"
|
||||
}
|
||||
@@ -1,35 +1,41 @@
|
||||
{
|
||||
"taskHeader": {
|
||||
"taskNamePlaceholder": "Escriba su Tarea",
|
||||
"deleteTask": "Eliminar Tarea"
|
||||
"taskNamePlaceholder": "Escribe tu tarea",
|
||||
"deleteTask": "Eliminar tarea",
|
||||
"parentTask": "Tarea principal",
|
||||
"currentTask": "Tarea actual",
|
||||
"back": "Volver",
|
||||
"backToParent": "Volver a la tarea principal",
|
||||
"toParentTask": "a la tarea principal",
|
||||
"loadingHierarchy": "Cargando jerarquía..."
|
||||
},
|
||||
"taskInfoTab": {
|
||||
"title": "Información",
|
||||
"details": {
|
||||
"title": "Detalles",
|
||||
"task-key": "Clave de Tarea",
|
||||
"task-key": "Clave de tarea",
|
||||
"phase": "Fase",
|
||||
"assignees": "Asignados",
|
||||
"due-date": "Fecha de Vencimiento",
|
||||
"time-estimation": "Estimación de Tiempo",
|
||||
"due-date": "Fecha de vencimiento",
|
||||
"time-estimation": "Estimación de tiempo",
|
||||
"priority": "Prioridad",
|
||||
"labels": "Etiquetas",
|
||||
"billable": "Facturable",
|
||||
"notify": "Notificar",
|
||||
"when-done-notify": "Al terminar, notificar",
|
||||
"start-date": "Fecha de Inicio",
|
||||
"end-date": "Fecha de Fin",
|
||||
"hide-start-date": "Ocultar Fecha de Inicio",
|
||||
"show-start-date": "Mostrar Fecha de Inicio",
|
||||
"when-done-notify": "Al finalizar, notificar",
|
||||
"start-date": "Fecha de inicio",
|
||||
"end-date": "Fecha de finalización",
|
||||
"hide-start-date": "Ocultar fecha de inicio",
|
||||
"show-start-date": "Mostrar fecha de inicio",
|
||||
"hours": "Horas",
|
||||
"minutes": "Minutos",
|
||||
"progressValue": "Valor de Progreso",
|
||||
"progressValue": "Valor de progreso",
|
||||
"progressValueTooltip": "Establecer el porcentaje de progreso (0-100%)",
|
||||
"progressValueRequired": "Por favor, introduzca un valor de progreso",
|
||||
"progressValueRequired": "Por favor ingrese un valor de progreso",
|
||||
"progressValueRange": "El progreso debe estar entre 0 y 100",
|
||||
"taskWeight": "Peso de la Tarea",
|
||||
"taskWeight": "Peso de la tarea",
|
||||
"taskWeightTooltip": "Establecer el peso de esta subtarea (porcentaje)",
|
||||
"taskWeightRequired": "Por favor, introduzca un peso de tarea",
|
||||
"taskWeightRequired": "Por favor ingrese un peso de tarea",
|
||||
"taskWeightRange": "El peso debe estar entre 0 y 100",
|
||||
"recurring": "Recurrente"
|
||||
},
|
||||
@@ -39,85 +45,85 @@
|
||||
},
|
||||
"description": {
|
||||
"title": "Descripción",
|
||||
"placeholder": "Añadir una descripción más detallada..."
|
||||
"placeholder": "Añade una descripción más detallada..."
|
||||
},
|
||||
"subTasks": {
|
||||
"title": "Sub Tareas",
|
||||
"addSubTask": "Agregar Sub Tarea",
|
||||
"addSubTaskInputPlaceholder": "Escriba su tarea y presione enter",
|
||||
"refreshSubTasks": "Actualizar Sub Tareas",
|
||||
"title": "Subtareas",
|
||||
"addSubTask": "Añadir subtarea",
|
||||
"addSubTaskInputPlaceholder": "Escribe tu tarea y presiona enter",
|
||||
"refreshSubTasks": "Actualizar subtareas",
|
||||
"edit": "Editar",
|
||||
"delete": "Eliminar",
|
||||
"confirmDeleteSubTask": "¿Está seguro de que desea eliminar esta subtarea?",
|
||||
"deleteSubTask": "Eliminar Sub Tarea"
|
||||
"confirmDeleteSubTask": "¿Estás seguro de que quieres eliminar esta subtarea?",
|
||||
"deleteSubTask": "Eliminar subtarea"
|
||||
},
|
||||
"dependencies": {
|
||||
"title": "Dependencias",
|
||||
"addDependency": "+ Agregar nueva dependencia",
|
||||
"addDependency": "+ Añadir nueva dependencia",
|
||||
"blockedBy": "Bloqueado por",
|
||||
"searchTask": "Escribir para buscar tarea",
|
||||
"searchTask": "Escribe para buscar tarea",
|
||||
"noTasksFound": "No se encontraron tareas",
|
||||
"confirmDeleteDependency": "¿Está seguro de que desea eliminar?"
|
||||
"confirmDeleteDependency": "¿Estás seguro de que quieres eliminar?"
|
||||
},
|
||||
"attachments": {
|
||||
"title": "Adjuntos",
|
||||
"chooseOrDropFileToUpload": "Elija o arrastre un archivo para subir",
|
||||
"chooseOrDropFileToUpload": "Elige o arrastra archivo para subir",
|
||||
"uploading": "Subiendo..."
|
||||
},
|
||||
"comments": {
|
||||
"title": "Comentarios",
|
||||
"addComment": "+ Agregar nuevo comentario",
|
||||
"addComment": "+ Añadir nuevo comentario",
|
||||
"noComments": "Aún no hay comentarios. ¡Sé el primero en comentar!",
|
||||
"delete": "Eliminar",
|
||||
"confirmDeleteComment": "¿Está seguro de que desea eliminar este comentario?",
|
||||
"addCommentPlaceholder": "Agregar un comentario...",
|
||||
"confirmDeleteComment": "¿Estás seguro de que quieres eliminar este comentario?",
|
||||
"addCommentPlaceholder": "Añadir un comentario...",
|
||||
"cancel": "Cancelar",
|
||||
"commentButton": "Comentar",
|
||||
"attachFiles": "Adjuntar archivos",
|
||||
"addMoreFiles": "Agregar más archivos",
|
||||
"selectedFiles": "Archivos Seleccionados (Hasta 25MB, Máximo {count})",
|
||||
"maxFilesError": "Solo puede subir un máximo de {count} archivos",
|
||||
"addMoreFiles": "Añadir más archivos",
|
||||
"selectedFiles": "Archivos seleccionados (Hasta 25MB, Máximo de {count})",
|
||||
"maxFilesError": "Solo puedes subir un máximo de {count} archivos",
|
||||
"processFilesError": "Error al procesar archivos",
|
||||
"addCommentError": "Por favor agregue un comentario o adjunte archivos",
|
||||
"addCommentError": "Por favor añade un comentario o adjunta archivos",
|
||||
"createdBy": "Creado {{time}} por {{user}}",
|
||||
"updatedTime": "Actualizado {{time}}"
|
||||
},
|
||||
"searchInputPlaceholder": "Buscar por nombre",
|
||||
"pendingInvitation": "Invitación Pendiente"
|
||||
"pendingInvitation": "Invitación pendiente"
|
||||
},
|
||||
"taskTimeLogTab": {
|
||||
"title": "Registro de Tiempo",
|
||||
"title": "Registro de tiempo",
|
||||
"addTimeLog": "Añadir nuevo registro de tiempo",
|
||||
"totalLogged": "Total Registrado",
|
||||
"totalLogged": "Total registrado",
|
||||
"exportToExcel": "Exportar a Excel",
|
||||
"noTimeLogsFound": "No se encontraron registros de tiempo",
|
||||
"timeLogForm": {
|
||||
"date": "Fecha",
|
||||
"startTime": "Hora de Inicio",
|
||||
"endTime": "Hora de Fin",
|
||||
"workDescription": "Descripción del Trabajo",
|
||||
"descriptionPlaceholder": "Agregar una descripción",
|
||||
"startTime": "Hora de inicio",
|
||||
"endTime": "Hora de finalización",
|
||||
"workDescription": "Descripción del trabajo",
|
||||
"descriptionPlaceholder": "Añadir una descripción",
|
||||
"logTime": "Registrar tiempo",
|
||||
"updateTime": "Actualizar tiempo",
|
||||
"cancel": "Cancelar",
|
||||
"selectDateError": "Por favor seleccione una fecha",
|
||||
"selectStartTimeError": "Por favor seleccione la hora de inicio",
|
||||
"selectEndTimeError": "Por favor seleccione la hora de fin",
|
||||
"endTimeAfterStartError": "La hora de fin debe ser posterior a la hora de inicio"
|
||||
"selectDateError": "Por favor selecciona una fecha",
|
||||
"selectStartTimeError": "Por favor selecciona hora de inicio",
|
||||
"selectEndTimeError": "Por favor selecciona hora de finalización",
|
||||
"endTimeAfterStartError": "La hora de finalización debe ser posterior a la de inicio"
|
||||
}
|
||||
},
|
||||
"taskActivityLogTab": {
|
||||
"title": "Registro de Actividad",
|
||||
"add": "AGREGAR",
|
||||
"remove": "QUITAR",
|
||||
"title": "Registro de actividad",
|
||||
"add": "AÑADIR",
|
||||
"remove": "ELIMINAR",
|
||||
"none": "Ninguno",
|
||||
"weight": "Peso",
|
||||
"createdTask": "creó la tarea."
|
||||
},
|
||||
"taskProgress": {
|
||||
"markAsDoneTitle": "¿Marcar Tarea como Completada?",
|
||||
"markAsDoneTitle": "¿Marcar tarea como completada?",
|
||||
"confirmMarkAsDone": "Sí, marcar como completada",
|
||||
"cancelMarkAsDone": "No, mantener estado actual",
|
||||
"markAsDoneDescription": "Ha establecido el progreso al 100%. ¿Le gustaría actualizar el estado de la tarea a \"Completada\"?"
|
||||
"markAsDoneDescription": "Has establecido el progreso al 100%. ¿Te gustaría actualizar el estado de la tarea a \"Completada\"?"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,5 +84,12 @@
|
||||
"close": "Cerrar",
|
||||
"cannotMoveStatus": "No se puede mover el estado",
|
||||
"cannotMoveStatusMessage": "No se puede mover este estado porque dejaría vacía la categoría '{{categoryName}}'. Cada categoría debe tener al menos un estado.",
|
||||
"ok": "OK"
|
||||
"ok": "OK",
|
||||
"clearSort": "Limpiar Ordenamiento",
|
||||
"sortAscending": "Ordenar Ascendente",
|
||||
"sortDescending": "Ordenar Descendente",
|
||||
"sortByField": "Ordenar por {{field}}",
|
||||
"ascendingOrder": "Ascendente",
|
||||
"descendingOrder": "Descendente",
|
||||
"currentSort": "Ordenamiento actual: {{field}} {{order}}"
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
"addTaskText": "Agregar tarea",
|
||||
"addSubTaskText": "Agregar subtarea",
|
||||
"noTasksInGroup": "No hay tareas en este grupo",
|
||||
"dropTaskHere": "Soltar tarea aquí",
|
||||
"addTaskInputPlaceholder": "Escribe tu tarea y presiona enter",
|
||||
|
||||
"openButton": "Abrir",
|
||||
|
||||
@@ -3,7 +3,28 @@
|
||||
|
||||
"setupYourAccount": "Configure sua conta.",
|
||||
"organizationStepTitle": "Nomeie sua organização",
|
||||
"organizationStepLabel": "Escolha um nome para sua conta Worklenz.",
|
||||
"organizationStepWelcome": "Bem-vindo ao Worklenz!",
|
||||
"organizationStepDescription": "Vamos começar configurando sua organização. Este será o espaço de trabalho principal para sua equipe.",
|
||||
"organizationStepLabel": "Nome da organização",
|
||||
"organizationStepPlaceholder": "ex. Corporação Acme",
|
||||
"organizationStepTooltip": "Este nome aparecerá em seu espaço de trabalho e pode ser alterado posteriormente nas configurações.",
|
||||
"organizationStepNeedIdeas": "Precisa de ideias?",
|
||||
"organizationStepUseDetected": "Usar detectado:",
|
||||
"organizationStepCharacters": "caracteres",
|
||||
"organizationStepGoodLength": "Bom comprimento",
|
||||
"organizationStepTooShort": "Muito curto",
|
||||
"organizationStepNamingTips": "Dicas de nomenclatura",
|
||||
"organizationStepTip1": "Mantenha simples e memorável",
|
||||
"organizationStepTip2": "Reflita sua indústria ou valores",
|
||||
"organizationStepTip3": "Pense no crescimento futuro",
|
||||
"organizationStepTip4": "Torne único e marcante",
|
||||
"organizationStepSuggestionsTitle": "Sugestões de nomes",
|
||||
"organizationStepCategory1": "Empresas de tecnologia",
|
||||
"organizationStepCategory2": "Agências criativas",
|
||||
"organizationStepCategory3": "Consultoria",
|
||||
"organizationStepCategory4": "Startups",
|
||||
"organizationStepSuggestionsNote": "Estes são apenas exemplos para começar. Escolha algo que represente sua organização.",
|
||||
"organizationStepPrivacyNote": "O nome da sua organização é privado e visível apenas para os membros da sua equipe.",
|
||||
|
||||
"projectStepTitle": "Crie seu primeiro projeto",
|
||||
"projectStepLabel": "Em qual projeto você está trabalhando agora?",
|
||||
@@ -24,9 +45,171 @@
|
||||
"step3InputLabel": "Convidar por email",
|
||||
"addAnother": "Adicionar outro",
|
||||
"skipForNow": "Pular por enquanto",
|
||||
"skipping": "Pulando...",
|
||||
"formTitle": "Crie sua primeira tarefa.",
|
||||
"step3Title": "Convide sua equipe para trabalhar",
|
||||
|
||||
"maxMembers": " (Você pode convidar até 5 membros)",
|
||||
"maxTasks": " (Você pode criar até 5 tarefas)"
|
||||
"maxTasks": " (Você pode criar até 5 tarefas)",
|
||||
|
||||
"membersStepTitle": "Convide sua equipe",
|
||||
"membersStepDescription": "Adicione membros da equipe ao \"{{organizationName}}\" e comece a colaborar",
|
||||
"memberPlaceholder": "Membro da equipe {{index}} - Digite o endereço de email",
|
||||
"validEmailAddress": "Endereço de email válido",
|
||||
"addAnotherTeamMember": "Adicionar outro membro da equipe ({{current}}/{{max}})",
|
||||
"canInviteLater": "Você sempre pode convidar membros da equipe mais tarde",
|
||||
"skipStepDescription": "Não tem endereços de email prontos? Sem problema! Você pode pular esta etapa e convidar membros da equipe do seu painel de projeto mais tarde.",
|
||||
|
||||
"orgCategoryTech": "Empresas de Tecnologia",
|
||||
"orgCategoryCreative": "Agências Criativas",
|
||||
"orgCategoryConsulting": "Consultoria",
|
||||
"orgCategoryStartups": "Startups",
|
||||
"namingTip1": "Mantenha simples e memorável",
|
||||
"namingTip2": "Reflita sua indústria ou valores",
|
||||
"namingTip3": "Pense no crescimento futuro",
|
||||
"namingTip4": "Torne único e marcante",
|
||||
|
||||
"aboutYouTitle": "Conte-nos sobre você",
|
||||
"aboutYouDescription": "Ajude-nos a personalizar sua experiência",
|
||||
"orgTypeQuestion": "O que melhor descreve sua organização?",
|
||||
"userRoleQuestion": "Qual é seu papel?",
|
||||
|
||||
"yourNeedsTitle": "Quais são suas principais necessidades?",
|
||||
"yourNeedsDescription": "Selecione todas que se aplicam para nos ajudar a configurar seu espaço de trabalho",
|
||||
"yourNeedsQuestion": "Como você usará principalmente o Worklenz?",
|
||||
"useCaseTaskOrg": "Organizar e acompanhar tarefas",
|
||||
"useCaseTeamCollab": "Trabalhar juntos perfeitamente",
|
||||
"useCaseResourceMgmt": "Gerenciar tempo e recursos",
|
||||
"useCaseClientComm": "Manter-se conectado com clientes",
|
||||
"useCaseTimeTrack": "Monitorar horas do projeto",
|
||||
"useCaseOther": "Algo mais",
|
||||
"selectedText": "selecionado",
|
||||
"previousToolsQuestion": "Que ferramentas você usou antes? (Opcional)",
|
||||
"previousToolsPlaceholder": "ex., Asana, Trello, Jira, Monday.com, etc.",
|
||||
|
||||
"discoveryTitle": "Uma última coisa...",
|
||||
"discoveryDescription": "Ajude-nos a entender como você descobriu o Worklenz",
|
||||
"discoveryQuestion": "Como você soube sobre nós?",
|
||||
"allSetTitle": "Você está pronto!",
|
||||
"allSetDescription": "Vamos criar seu primeiro projeto e começar com o Worklenz",
|
||||
"surveyCompleteTitle": "Obrigado!",
|
||||
"surveyCompleteDescription": "Seu feedback nos ajuda a melhorar o Worklenz para todos",
|
||||
"aboutYouStepName": "Sobre você",
|
||||
"yourNeedsStepName": "Suas necessidades",
|
||||
"discoveryStepName": "Descoberta",
|
||||
"stepProgress": "Passo {step} de 3: {title}",
|
||||
|
||||
"projectStepHeader": "Vamos criar seu primeiro projeto",
|
||||
"projectStepSubheader": "Comece do zero ou use um modelo para ir mais rápido",
|
||||
"startFromScratch": "Começar do zero",
|
||||
"templateSelected": "Modelo selecionado abaixo",
|
||||
"quickSuggestions": "Sugestões rápidas:",
|
||||
"orText": "OU",
|
||||
"startWithTemplate": "Começar com um modelo",
|
||||
"clearToSelectTemplate": "Limpe o nome do projeto acima para selecionar um modelo",
|
||||
"templateHeadStart": "Obtenha uma vantagem inicial com estruturas de projeto pré-construídas",
|
||||
"browseAllTemplates": "Navegar por todos os modelos",
|
||||
"templatesAvailable": "15+ modelos específicos da indústria disponíveis",
|
||||
"chooseTemplate": "Escolha um modelo que corresponda ao seu tipo de projeto",
|
||||
"createProject": "Criar projeto",
|
||||
|
||||
"templateSoftwareDev": "Desenvolvimento de Software",
|
||||
"templateSoftwareDesc": "Sprints ágeis, rastreamento de bugs, lançamentos",
|
||||
"templateMarketing": "Campanha de Marketing",
|
||||
"templateMarketingDesc": "Planejamento de campanha, calendário de conteúdo",
|
||||
"templateConstruction": "Projeto de Construção",
|
||||
"templateConstructionDesc": "Fases, licenças, empreiteiros",
|
||||
"templateStartup": "Lançamento de Startup",
|
||||
"templateStartupDesc": "Desenvolvimento MVP, financiamento, crescimento",
|
||||
|
||||
"tasksStepTitle": "Adicione suas primeiras tarefas",
|
||||
"tasksStepDescription": "Divida \"{{projectName}}\" em tarefas acionáveis para começar",
|
||||
"taskPlaceholder": "Tarefa {{index}} - ex., O que precisa ser feito?",
|
||||
"addAnotherTask": "Adicionar outra tarefa ({{current}}/{{max}})",
|
||||
|
||||
"surveyStepTitle": "Conte-nos sobre você",
|
||||
"surveyStepLabel": "Ajude-nos a personalizar sua experiência no Worklenz respondendo algumas perguntas.",
|
||||
|
||||
"organizationType": "O que melhor descreve sua organização?",
|
||||
"organizationTypeFreelancer": "Freelancer",
|
||||
"organizationTypeStartup": "Startup",
|
||||
"organizationTypeSmallMediumBusiness": "Pequena ou Média Empresa",
|
||||
"organizationTypeAgency": "Agência",
|
||||
"organizationTypeEnterprise": "Empresa",
|
||||
"organizationTypeOther": "Outro",
|
||||
|
||||
"userRole": "Qual é o seu papel?",
|
||||
"userRoleFounderCeo": "Fundador / CEO",
|
||||
"userRoleProjectManager": "Gerente de Projeto",
|
||||
"userRoleSoftwareDeveloper": "Desenvolvedor de Software",
|
||||
"userRoleDesigner": "Designer",
|
||||
"userRoleOperations": "Operações",
|
||||
"userRoleOther": "Outro",
|
||||
|
||||
"mainUseCases": "Para que você usará principalmente o Worklenz?",
|
||||
"mainUseCasesTaskManagement": "Gerenciamento de tarefas",
|
||||
"mainUseCasesTeamCollaboration": "Colaboração em equipe",
|
||||
"mainUseCasesResourcePlanning": "Planejamento de recursos",
|
||||
"mainUseCasesClientCommunication": "Comunicação com clientes e relatórios",
|
||||
"mainUseCasesTimeTracking": "Controle de tempo",
|
||||
"mainUseCasesOther": "Outro",
|
||||
|
||||
"previousTools": "Que ferramenta(s) você usava antes do Worklenz?",
|
||||
"previousToolsPlaceholder": "ex. Trello, Asana, Monday.com",
|
||||
|
||||
"howHeardAbout": "Como você soube do Worklenz?",
|
||||
"howHeardAboutGoogleSearch": "Busca no Google",
|
||||
"howHeardAboutTwitter": "Twitter",
|
||||
"howHeardAboutLinkedin": "LinkedIn",
|
||||
"howHeardAboutFriendColleague": "Um amigo ou colega",
|
||||
"howHeardAboutBlogArticle": "Um blog ou artigo",
|
||||
"howHeardAboutOther": "Outro",
|
||||
|
||||
"aboutYouStepTitle": "Conte-nos sobre você",
|
||||
"aboutYouStepDescription": "Ajude-nos a personalizar sua experiência",
|
||||
"yourNeedsStepTitle": "Quais são suas principais necessidades?",
|
||||
"yourNeedsStepDescription": "Selecione todas que se aplicam para nos ajudar a configurar seu espaço de trabalho",
|
||||
"selected": "selecionado",
|
||||
"previousToolsLabel": "Que ferramentas você usou antes? (Opcional)",
|
||||
|
||||
"roleSuggestions": {
|
||||
"designer": "UI/UX, Gráficos, Criativo",
|
||||
"developer": "Frontend, Backend, Full-stack",
|
||||
"projectManager": "Planejamento, Coordenação",
|
||||
"marketing": "Conteúdo, Mídias Sociais, Crescimento",
|
||||
"sales": "Desenvolvimento de Negócios, Relacionamento com Clientes",
|
||||
"operations": "Administração, RH, Finanças"
|
||||
},
|
||||
|
||||
"languages": {
|
||||
"en": "English",
|
||||
"es": "Español",
|
||||
"pt": "Português",
|
||||
"de": "Deutsch",
|
||||
"alb": "Shqip",
|
||||
"zh": "简体中文"
|
||||
},
|
||||
|
||||
"orgSuggestions": {
|
||||
"tech": ["TechCorp", "DevStudio", "CodeCraft", "PixelForge"],
|
||||
"creative": ["Creative Hub", "Design Studio", "Brand Works", "Visual Arts"],
|
||||
"consulting": ["Strategy Group", "Business Solutions", "Expert Advisors", "Growth Partners"],
|
||||
"startup": ["Innovation Labs", "Future Works", "Venture Co", "Next Gen"]
|
||||
},
|
||||
|
||||
"projectSuggestions": {
|
||||
"freelancer": ["Projeto Cliente", "Atualização Portfolio", "Marca Pessoal"],
|
||||
"startup": ["Desenvolvimento MVP", "Lançamento Produto", "Pesquisa Mercado"],
|
||||
"agency": ["Campanha Cliente", "Estratégia Marca", "Redesign Website"],
|
||||
"enterprise": ["Migração Sistema", "Otimização Processos", "Treinamento Equipe"]
|
||||
},
|
||||
|
||||
"useCaseDescriptions": {
|
||||
"taskManagement": "Organizar e rastrear tarefas",
|
||||
"teamCollaboration": "Trabalhar juntos perfeitamente",
|
||||
"resourcePlanning": "Gerenciar tempo e recursos",
|
||||
"clientCommunication": "Manter-se conectado com clientes",
|
||||
"timeTracking": "Monitorar horas do projeto",
|
||||
"other": "Algo mais"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,11 +7,13 @@
|
||||
"emailLabel": "Email",
|
||||
"emailPlaceholder": "Insira seu email",
|
||||
"emailRequired": "Por favor, insira seu Email!",
|
||||
"passwordLabel": "Senha",
|
||||
"passwordPlaceholder": "Insira sua senha",
|
||||
"passwordLabel": "Password",
|
||||
"passwordGuideline": "Password must be at least 8 characters, include uppercase and lowercase letters, a number, and a special character.",
|
||||
"passwordPlaceholder": "Enter your password",
|
||||
"passwordRequired": "Por favor, insira sua Senha!",
|
||||
"passwordMinCharacterRequired": "Senha deve ter pelo menos 8 caracteres!",
|
||||
"passwordPatternRequired": "Senha não atende aos requisitos!",
|
||||
"passwordMaxCharacterRequired": "Password must be at most 32 characters!",
|
||||
"passwordPatternRequired": "A senha não atende aos requisitos!",
|
||||
"strongPasswordPlaceholder": "Insira uma senha mais forte",
|
||||
"passwordValidationAltText": "Senha deve incluir pelo menos 8 caracteres com letras maiúsculas e minúsculas, um número e um símbolo.",
|
||||
"signupSuccessMessage": "Você se inscreveu com sucesso!",
|
||||
|
||||
@@ -10,6 +10,17 @@
|
||||
"deleteConfirmationOk": "Sim",
|
||||
"deleteConfirmationCancel": "Cancelar",
|
||||
|
||||
"deleteTaskTitle": "Excluir Tarefa",
|
||||
"deleteTaskContent": "Tem certeza de que deseja excluir esta tarefa? Esta ação não pode ser desfeita.",
|
||||
"deleteTaskConfirm": "Excluir",
|
||||
"deleteTaskCancel": "Cancelar",
|
||||
|
||||
"deleteStatusTitle": "Excluir Status",
|
||||
"deleteStatusContent": "Tem certeza de que deseja excluir este status? Esta ação não pode ser desfeita.",
|
||||
|
||||
"deletePhaseTitle": "Excluir Fase",
|
||||
"deletePhaseContent": "Tem certeza de que deseja excluir esta fase? Esta ação não pode ser desfeita.",
|
||||
|
||||
"dueDate": "Data de vencimento",
|
||||
"cancel": "Cancelar",
|
||||
|
||||
@@ -26,5 +37,17 @@
|
||||
"noDueDate": "Sem data de vencimento",
|
||||
"save": "Salvar",
|
||||
"clear": "Limpar",
|
||||
"nextWeek": "Próxima semana"
|
||||
"nextWeek": "Próxima semana",
|
||||
"noSubtasks": "Sem subtarefas",
|
||||
"showSubtasks": "Mostrar subtarefas",
|
||||
"hideSubtasks": "Ocultar subtarefas",
|
||||
|
||||
"errorLoadingTasks": "Erro ao carregar tarefas",
|
||||
"noTasksFound": "Nenhuma tarefa encontrada",
|
||||
"loadingFilters": "Carregando filtros...",
|
||||
"failedToUpdateColumnOrder": "Falha ao atualizar a ordem das colunas",
|
||||
"failedToUpdatePhaseOrder": "Falha ao atualizar a ordem das fases",
|
||||
"pleaseTryAgain": "Por favor, tente novamente",
|
||||
"taskNotCompleted": "Tarefa não está concluída",
|
||||
"completeTaskDependencies": "Por favor, complete as dependências da tarefa antes de prosseguir"
|
||||
}
|
||||
|
||||
@@ -13,5 +13,6 @@
|
||||
"deleteButtonTooltip": "Remover do projeto",
|
||||
"memberCount": "Membro",
|
||||
"membersCountPlural": "Membros",
|
||||
"emptyText": "Não há anexos no projeto."
|
||||
"emptyText": "Não há anexos no projeto.",
|
||||
"searchPlaceholder": "Pesquisar membros"
|
||||
}
|
||||
|
||||
@@ -3,5 +3,9 @@
|
||||
"searchLabel": "Adicionar membros inserindo nome ou e-mail",
|
||||
"searchPlaceholder": "Digite nome ou e-mail",
|
||||
"inviteAsAMember": "Convidar como membro",
|
||||
"inviteNewMemberByEmail": "Convidar novo membro por e-mail"
|
||||
"inviteNewMemberByEmail": "Convidar novo membro por e-mail",
|
||||
"members": "Membros",
|
||||
"copyProjectLink": "Copiar link do projeto",
|
||||
"inviteMember": "Convidar membro",
|
||||
"alsoInviteToProject": "Convidar também para o projeto"
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"jobTitleLabel": "Título do Emprego",
|
||||
"jobTitlePlaceholder": "Selecione ou pesquise o título do emprego (Opcional)",
|
||||
"memberAccessLabel": "Nível de Acesso",
|
||||
"addToTeamButton": "Adicionar Membro à Equipe",
|
||||
"addToTeamButton": "Enviar convite",
|
||||
"updateButton": "Salvar Alterações",
|
||||
"resendInvitationButton": "Redirecionar Email de Convite",
|
||||
"invitationSentSuccessMessage": "Convite para a equipe enviado com sucesso!",
|
||||
@@ -43,5 +43,6 @@
|
||||
"updatedText": "Atualizado",
|
||||
"noResultFound": "Digite um endereço de email e pressione enter...",
|
||||
"jobTitlesFetchError": "Falha ao buscar cargos",
|
||||
"invitationResent": "Convite reenviado com sucesso!"
|
||||
"invitationResent": "Convite reenviado com sucesso!",
|
||||
"copyTeamLink": "Copiar link da equipe"
|
||||
}
|
||||
|
||||
14
worklenz-frontend/public/locales/pt/survey.json
Normal file
14
worklenz-frontend/public/locales/pt/survey.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"modalTitle": "Ajude-nos a melhorar sua experiência",
|
||||
"skip": "Pular por enquanto",
|
||||
"previous": "Anterior",
|
||||
"next": "Próximo",
|
||||
"completeSurvey": "Concluir Pesquisa",
|
||||
"submitting": "Enviando suas respostas...",
|
||||
"submitSuccessTitle": "Obrigado!",
|
||||
"submitSuccessSubtitle": "Seu feedback nos ajuda a melhorar o Worklenz para todos.",
|
||||
"submitSuccessMessage": "Obrigado por completar a pesquisa!",
|
||||
"submitErrorMessage": "Falha ao enviar a pesquisa. Por favor, tente novamente.",
|
||||
"submitErrorLog": "Falha ao enviar a pesquisa",
|
||||
"fetchErrorLog": "Falha ao buscar a pesquisa"
|
||||
}
|
||||
@@ -1,33 +1,39 @@
|
||||
{
|
||||
"taskHeader": {
|
||||
"taskNamePlaceholder": "Digite sua Tarefa",
|
||||
"deleteTask": "Deletar Tarefa"
|
||||
"taskNamePlaceholder": "Digite sua tarefa",
|
||||
"deleteTask": "Excluir tarefa",
|
||||
"parentTask": "Tarefa principal",
|
||||
"currentTask": "Tarefa atual",
|
||||
"back": "Voltar",
|
||||
"backToParent": "Voltar à tarefa principal",
|
||||
"toParentTask": "à tarefa principal",
|
||||
"loadingHierarchy": "Carregando hierarquia..."
|
||||
},
|
||||
"taskInfoTab": {
|
||||
"title": "Informações",
|
||||
"details": {
|
||||
"title": "Detalhes",
|
||||
"task-key": "Chave da Tarefa",
|
||||
"task-key": "Chave da tarefa",
|
||||
"phase": "Fase",
|
||||
"assignees": "Responsáveis",
|
||||
"due-date": "Data de Vencimento",
|
||||
"time-estimation": "Estimativa de Tempo",
|
||||
"due-date": "Data de vencimento",
|
||||
"time-estimation": "Estimativa de tempo",
|
||||
"priority": "Prioridade",
|
||||
"labels": "Etiquetas",
|
||||
"billable": "Faturável",
|
||||
"notify": "Notificar",
|
||||
"when-done-notify": "Quando concluído, notificar",
|
||||
"start-date": "Data de Início",
|
||||
"end-date": "Data de Fim",
|
||||
"hide-start-date": "Ocultar Data de Início",
|
||||
"show-start-date": "Mostrar Data de Início",
|
||||
"when-done-notify": "Ao concluir, notificar",
|
||||
"start-date": "Data de início",
|
||||
"end-date": "Data de término",
|
||||
"hide-start-date": "Ocultar data de início",
|
||||
"show-start-date": "Mostrar data de início",
|
||||
"hours": "Horas",
|
||||
"minutes": "Minutos",
|
||||
"progressValue": "Valor do Progresso",
|
||||
"progressValue": "Valor do progresso",
|
||||
"progressValueTooltip": "Definir a porcentagem de progresso (0-100%)",
|
||||
"progressValueRequired": "Por favor, insira um valor de progresso",
|
||||
"progressValueRange": "O progresso deve estar entre 0 e 100",
|
||||
"taskWeight": "Peso da Tarefa",
|
||||
"taskWeight": "Peso da tarefa",
|
||||
"taskWeightTooltip": "Definir o peso desta subtarefa (porcentagem)",
|
||||
"taskWeightRequired": "Por favor, insira um peso da tarefa",
|
||||
"taskWeightRange": "O peso deve estar entre 0 e 100",
|
||||
@@ -39,17 +45,17 @@
|
||||
},
|
||||
"description": {
|
||||
"title": "Descrição",
|
||||
"placeholder": "Adicionar uma descrição mais detalhada..."
|
||||
"placeholder": "Adicione uma descrição mais detalhada..."
|
||||
},
|
||||
"subTasks": {
|
||||
"title": "Sub Tarefas",
|
||||
"addSubTask": "Adicionar Sub Tarefa",
|
||||
"title": "Subtarefas",
|
||||
"addSubTask": "Adicionar subtarefa",
|
||||
"addSubTaskInputPlaceholder": "Digite sua tarefa e pressione enter",
|
||||
"refreshSubTasks": "Atualizar Sub Tarefas",
|
||||
"refreshSubTasks": "Atualizar subtarefas",
|
||||
"edit": "Editar",
|
||||
"delete": "Deletar",
|
||||
"confirmDeleteSubTask": "Tem certeza de que deseja deletar esta subtarefa?",
|
||||
"deleteSubTask": "Deletar Sub Tarefa"
|
||||
"delete": "Excluir",
|
||||
"confirmDeleteSubTask": "Tem certeza de que deseja excluir esta subtarefa?",
|
||||
"deleteSubTask": "Excluir subtarefa"
|
||||
},
|
||||
"dependencies": {
|
||||
"title": "Dependências",
|
||||
@@ -57,57 +63,57 @@
|
||||
"blockedBy": "Bloqueado por",
|
||||
"searchTask": "Digite para pesquisar tarefa",
|
||||
"noTasksFound": "Nenhuma tarefa encontrada",
|
||||
"confirmDeleteDependency": "Tem certeza de que deseja deletar?"
|
||||
"confirmDeleteDependency": "Tem certeza de que deseja excluir?"
|
||||
},
|
||||
"attachments": {
|
||||
"title": "Anexos",
|
||||
"chooseOrDropFileToUpload": "Escolha ou arraste um arquivo para upload",
|
||||
"chooseOrDropFileToUpload": "Escolha ou arraste arquivo para enviar",
|
||||
"uploading": "Enviando..."
|
||||
},
|
||||
"comments": {
|
||||
"title": "Comentários",
|
||||
"addComment": "+ Adicionar novo comentário",
|
||||
"noComments": "Ainda não há comentários. Seja o primeiro a comentar!",
|
||||
"delete": "Deletar",
|
||||
"confirmDeleteComment": "Tem certeza de que deseja deletar este comentário?",
|
||||
"delete": "Excluir",
|
||||
"confirmDeleteComment": "Tem certeza de que deseja excluir este comentário?",
|
||||
"addCommentPlaceholder": "Adicionar um comentário...",
|
||||
"cancel": "Cancelar",
|
||||
"commentButton": "Comentar",
|
||||
"attachFiles": "Anexar arquivos",
|
||||
"addMoreFiles": "Adicionar mais arquivos",
|
||||
"selectedFiles": "Arquivos Selecionados (Até 25MB, Máximo {count})",
|
||||
"maxFilesError": "Você pode fazer upload de no máximo {count} arquivos",
|
||||
"selectedFiles": "Arquivos selecionados (Até 25MB, Máximo de {count})",
|
||||
"maxFilesError": "Você pode enviar no máximo {count} arquivos",
|
||||
"processFilesError": "Falha ao processar arquivos",
|
||||
"addCommentError": "Por favor adicione um comentário ou anexe arquivos",
|
||||
"addCommentError": "Por favor, adicione um comentário ou anexe arquivos",
|
||||
"createdBy": "Criado {{time}} por {{user}}",
|
||||
"updatedTime": "Atualizado {{time}}"
|
||||
},
|
||||
"searchInputPlaceholder": "Pesquisar por nome",
|
||||
"pendingInvitation": "Convite Pendente"
|
||||
"pendingInvitation": "Convite pendente"
|
||||
},
|
||||
"taskTimeLogTab": {
|
||||
"title": "Registro de Tempo",
|
||||
"title": "Registro de tempo",
|
||||
"addTimeLog": "Adicionar novo registro de tempo",
|
||||
"totalLogged": "Total Registrado",
|
||||
"totalLogged": "Total registrado",
|
||||
"exportToExcel": "Exportar para Excel",
|
||||
"noTimeLogsFound": "Nenhum registro de tempo encontrado",
|
||||
"timeLogForm": {
|
||||
"date": "Data",
|
||||
"startTime": "Hora de Início",
|
||||
"endTime": "Hora de Fim",
|
||||
"workDescription": "Descrição do Trabalho",
|
||||
"startTime": "Hora de início",
|
||||
"endTime": "Hora de término",
|
||||
"workDescription": "Descrição do trabalho",
|
||||
"descriptionPlaceholder": "Adicionar uma descrição",
|
||||
"logTime": "Registrar tempo",
|
||||
"updateTime": "Atualizar tempo",
|
||||
"cancel": "Cancelar",
|
||||
"selectDateError": "Por favor selecione uma data",
|
||||
"selectStartTimeError": "Por favor selecione a hora de início",
|
||||
"selectEndTimeError": "Por favor selecione a hora de fim",
|
||||
"endTimeAfterStartError": "A hora de fim deve ser posterior à hora de início"
|
||||
"selectDateError": "Por favor, selecione uma data",
|
||||
"selectStartTimeError": "Por favor, selecione a hora de início",
|
||||
"selectEndTimeError": "Por favor, selecione a hora de término",
|
||||
"endTimeAfterStartError": "A hora de término deve ser posterior à hora de início"
|
||||
}
|
||||
},
|
||||
"taskActivityLogTab": {
|
||||
"title": "Registro de Atividade",
|
||||
"title": "Registro de atividade",
|
||||
"add": "ADICIONAR",
|
||||
"remove": "REMOVER",
|
||||
"none": "Nenhum",
|
||||
@@ -115,7 +121,7 @@
|
||||
"createdTask": "criou a tarefa."
|
||||
},
|
||||
"taskProgress": {
|
||||
"markAsDoneTitle": "Marcar Tarefa como Concluída?",
|
||||
"markAsDoneTitle": "Marcar tarefa como concluída?",
|
||||
"confirmMarkAsDone": "Sim, marcar como concluída",
|
||||
"cancelMarkAsDone": "Não, manter status atual",
|
||||
"markAsDoneDescription": "Você definiu o progresso para 100%. Gostaria de atualizar o status da tarefa para \"Concluída\"?"
|
||||
|
||||
@@ -84,5 +84,12 @@
|
||||
"close": "Fechar",
|
||||
"cannotMoveStatus": "Não é possível mover o status",
|
||||
"cannotMoveStatusMessage": "Não é possível mover este status porque deixaria a categoria '{{categoryName}}' vazia. Cada categoria deve ter pelo menos um status.",
|
||||
"ok": "OK"
|
||||
"ok": "OK",
|
||||
"clearSort": "Limpar Ordenação",
|
||||
"sortAscending": "Ordenar Crescente",
|
||||
"sortDescending": "Ordenar Decrescente",
|
||||
"sortByField": "Ordenar por {{field}}",
|
||||
"ascendingOrder": "Crescente",
|
||||
"descendingOrder": "Decrescente",
|
||||
"currentSort": "Ordenação atual: {{field}} {{order}}"
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
"addTaskText": "Adicionar Tarefa",
|
||||
"addSubTaskText": "+ Adicionar Subtarefa",
|
||||
"noTasksInGroup": "Nenhuma tarefa neste grupo",
|
||||
"dropTaskHere": "Soltar tarefa aqui",
|
||||
"addTaskInputPlaceholder": "Digite sua tarefa e pressione enter",
|
||||
|
||||
"openButton": "Abrir",
|
||||
|
||||
@@ -1,14 +1,38 @@
|
||||
{
|
||||
"continue": "继续",
|
||||
"setupYourAccount": "设置您的Worklenz账户。",
|
||||
"setupYourAccount": "设置您的 Worklenz 账户。",
|
||||
"organizationStepTitle": "命名您的组织",
|
||||
"organizationStepLabel": "为您的Worklenz账户选择一个名称。",
|
||||
"organizationStepWelcome": "欢迎使用 Worklenz!",
|
||||
"organizationStepDescription": "让我们从设置您的组织开始。这将是您团队的主要工作空间。",
|
||||
"organizationStepLabel": "组织名称",
|
||||
"organizationStepPlaceholder": "例如:Acme 公司",
|
||||
"organizationStepTooltip": "此名称将显示在您的工作区,并可在设置中更改。",
|
||||
"organizationStepNeedIdeas": "需要灵感?",
|
||||
"organizationStepUseDetected": "检测到使用:",
|
||||
"organizationStepCharacters": "字符",
|
||||
"organizationStepGoodLength": "长度合适",
|
||||
"organizationStepTooShort": "太短",
|
||||
"organizationStepNamingTips": "命名建议",
|
||||
"organizationStepTip1": "保持简单且易记",
|
||||
"organizationStepTip2": "体现您的行业或价值观",
|
||||
"organizationStepTip3": "考虑未来发展",
|
||||
"organizationStepTip4": "使其独特且有品牌感",
|
||||
"organizationStepSuggestionsTitle": "名称建议",
|
||||
"organizationStepCategory1": "科技公司",
|
||||
"organizationStepCategory2": "创意机构",
|
||||
"organizationStepCategory3": "咨询公司",
|
||||
"organizationStepCategory4": "初创企业",
|
||||
"organizationStepSuggestionsNote": "这些只是帮助您入门的示例。请选择能代表您组织的名称。",
|
||||
"organizationStepPrivacyNote": "您的组织名称是私有的,仅团队成员可见。",
|
||||
|
||||
"projectStepTitle": "创建您的第一个项目",
|
||||
"projectStepLabel": "您现在正在做什么项目?",
|
||||
"projectStepPlaceholder": "例如:营销计划",
|
||||
|
||||
"tasksStepTitle": "创建您的第一个任务",
|
||||
"tasksStepLabel": "输入您将在其中完成的几个任务",
|
||||
"tasksStepAddAnother": "添加另一个",
|
||||
|
||||
"emailPlaceholder": "电子邮件地址",
|
||||
"invalidEmail": "请输入有效的电子邮件地址",
|
||||
"or": "或",
|
||||
@@ -20,8 +44,170 @@
|
||||
"step3InputLabel": "通过电子邮件邀请",
|
||||
"addAnother": "添加另一个",
|
||||
"skipForNow": "暂时跳过",
|
||||
"skipping": "跳过中...",
|
||||
"formTitle": "创建您的第一个任务。",
|
||||
"step3Title": "邀请您的团队一起工作",
|
||||
"maxMembers": "(您最多可以邀请5名成员)",
|
||||
"maxTasks": "(您最多可以创建5个任务)"
|
||||
}
|
||||
"maxMembers": "(您最多可以邀请 5 名成员)",
|
||||
"maxTasks": "(您最多可以创建 5 个任务)",
|
||||
|
||||
"membersStepTitle": "邀请您的团队",
|
||||
"membersStepDescription": "将团队成员添加到 \"{{organizationName}}\" 并开始协作",
|
||||
"memberPlaceholder": "团队成员 {{index}} - 输入电子邮件地址",
|
||||
"validEmailAddress": "有效的电子邮件地址",
|
||||
"addAnotherTeamMember": "添加另一个团队成员 ({{current}}/{{max}})",
|
||||
"canInviteLater": "您可以稍后邀请团队成员",
|
||||
"skipStepDescription": "没有准备好电子邮件地址?没关系!您可以跳过此步骤,稍后从项目面板邀请团队成员。",
|
||||
|
||||
"orgCategoryTech": "科技公司",
|
||||
"orgCategoryCreative": "创意机构",
|
||||
"orgCategoryConsulting": "咨询公司",
|
||||
"orgCategoryStartups": "初创企业",
|
||||
"namingTip1": "保持简单且易记",
|
||||
"namingTip2": "体现您的行业或价值观",
|
||||
"namingTip3": "考虑未来发展",
|
||||
"namingTip4": "使其独特且有品牌感",
|
||||
|
||||
"aboutYouTitle": "告诉我们关于您的信息",
|
||||
"aboutYouDescription": "帮助我们个性化您的体验",
|
||||
"orgTypeQuestion": "哪项最能描述您的组织?",
|
||||
"userRoleQuestion": "您的角色是什么?",
|
||||
|
||||
"yourNeedsTitle": "您的主要需求是什么?",
|
||||
"yourNeedsDescription": "请选择所有适用项,帮助我们设置您的工作区",
|
||||
"yourNeedsQuestion": "您主要如何使用 Worklenz?",
|
||||
"useCaseTaskOrg": "组织和跟踪任务",
|
||||
"useCaseTeamCollab": "团队协作",
|
||||
"useCaseResourceMgmt": "管理时间和资源",
|
||||
"useCaseClientComm": "与客户保持联系",
|
||||
"useCaseTimeTrack": "监控项目工时",
|
||||
"useCaseOther": "其他",
|
||||
"selectedText": "已选择",
|
||||
"previousToolsQuestion": "您之前用过哪些工具?(可选)",
|
||||
"previousToolsPlaceholder": "例如:Asana、Trello、Jira、Monday.com 等",
|
||||
|
||||
"discoveryTitle": "最后一个问题……",
|
||||
"discoveryDescription": "帮助我们了解您是如何发现 Worklenz 的",
|
||||
"discoveryQuestion": "您是如何听说我们的?",
|
||||
"allSetTitle": "一切就绪!",
|
||||
"allSetDescription": "让我们创建您的第一个项目并开始使用 Worklenz 吧",
|
||||
"surveyCompleteTitle": "谢谢!",
|
||||
"surveyCompleteDescription": "您的反馈有助于我们为所有人改进 Worklenz",
|
||||
"aboutYouStepName": "关于您",
|
||||
"yourNeedsStepName": "您的需求",
|
||||
"discoveryStepName": "发现",
|
||||
"stepProgress": "第 {step} 步,共 3 步:{title}",
|
||||
|
||||
"projectStepHeader": "让我们创建您的第一个项目",
|
||||
"projectStepSubheader": "从头开始或使用模板更快上手",
|
||||
"startFromScratch": "从头开始",
|
||||
"templateSelected": "已选择模板如下",
|
||||
"quickSuggestions": "快速建议:",
|
||||
"orText": "或",
|
||||
"startWithTemplate": "从模板开始",
|
||||
"clearToSelectTemplate": "请先清空上方项目名称以选择模板",
|
||||
"templateHeadStart": "使用预设项目结构快速开始",
|
||||
"browseAllTemplates": "浏览所有模板",
|
||||
"templatesAvailable": "15+ 行业专用模板可用",
|
||||
"chooseTemplate": "选择与您的项目类型匹配的模板",
|
||||
"createProject": "创建项目",
|
||||
|
||||
"templateSoftwareDev": "软件开发",
|
||||
"templateSoftwareDesc": "敏捷冲刺、缺陷跟踪、版本发布",
|
||||
"templateMarketing": "市场营销活动",
|
||||
"templateMarketingDesc": "活动策划、内容日历",
|
||||
"templateConstruction": "建设项目",
|
||||
"templateConstructionDesc": "阶段、许可、承包商",
|
||||
"templateStartup": "初创启动",
|
||||
"templateStartupDesc": "MVP 开发、融资、增长",
|
||||
|
||||
"tasksStepTitle": "添加您的第一个任务",
|
||||
"tasksStepDescription": "将 \"{{projectName}}\" 拆分为可执行任务以开始",
|
||||
"taskPlaceholder": "任务 {{index}} - 例如:需要做什么?",
|
||||
"addAnotherTask": "添加另一个任务 ({{current}}/{{max}})",
|
||||
|
||||
"surveyStepTitle": "告诉我们关于您的信息",
|
||||
"surveyStepLabel": "通过回答几个问题帮助我们个性化您的 Worklenz 体验。",
|
||||
|
||||
"organizationType": "哪项最能描述您的组织?",
|
||||
"organizationTypeFreelancer": "自由职业者",
|
||||
"organizationTypeStartup": "初创公司",
|
||||
"organizationTypeSmallMediumBusiness": "中小企业",
|
||||
"organizationTypeAgency": "代理机构",
|
||||
"organizationTypeEnterprise": "企业",
|
||||
"organizationTypeOther": "其他",
|
||||
|
||||
"userRole": "您的角色是什么?",
|
||||
"userRoleFounderCeo": "创始人 / CEO",
|
||||
"userRoleProjectManager": "项目经理",
|
||||
"userRoleSoftwareDeveloper": "软件开发者",
|
||||
"userRoleDesigner": "设计师",
|
||||
"userRoleOperations": "运营",
|
||||
"userRoleOther": "其他",
|
||||
|
||||
"mainUseCases": "您主要将 Worklenz 用于什么?",
|
||||
"mainUseCasesTaskManagement": "任务管理",
|
||||
"mainUseCasesTeamCollaboration": "团队协作",
|
||||
"mainUseCasesResourcePlanning": "资源规划",
|
||||
"mainUseCasesClientCommunication": "客户沟通与报告",
|
||||
"mainUseCasesTimeTracking": "时间跟踪",
|
||||
"mainUseCasesOther": "其他",
|
||||
|
||||
"previousTools": "在使用 Worklenz 之前您用过哪些工具?",
|
||||
"previousToolsPlaceholder": "例如:Trello、Asana、Monday.com",
|
||||
|
||||
"howHeardAbout": "您是如何了解 Worklenz 的?",
|
||||
"howHeardAboutGoogleSearch": "Google 搜索",
|
||||
"howHeardAboutTwitter": "Twitter",
|
||||
"howHeardAboutLinkedin": "LinkedIn",
|
||||
"howHeardAboutFriendColleague": "朋友或同事",
|
||||
"howHeardAboutBlogArticle": "博客或文章",
|
||||
"howHeardAboutOther": "其他",
|
||||
|
||||
"aboutYouStepTitle": "告诉我们关于您的信息",
|
||||
"aboutYouStepDescription": "帮助我们个性化您的体验",
|
||||
"yourNeedsStepTitle": "您的主要需求是什么?",
|
||||
"yourNeedsStepDescription": "选择所有适用的选项,帮助我们设置您的工作空间",
|
||||
"selected": "已选择",
|
||||
"previousToolsLabel": "您之前使用过哪些工具?(可选)",
|
||||
|
||||
"roleSuggestions": {
|
||||
"designer": "UI/UX、图形、创意",
|
||||
"developer": "前端、后端、全栈",
|
||||
"projectManager": "规划、协调",
|
||||
"marketing": "内容、社交媒体、增长",
|
||||
"sales": "业务发展、客户关系",
|
||||
"operations": "行政、人力资源、财务"
|
||||
},
|
||||
|
||||
"languages": {
|
||||
"en": "English",
|
||||
"es": "Español",
|
||||
"pt": "Português",
|
||||
"de": "Deutsch",
|
||||
"alb": "Shqip",
|
||||
"zh": "简体中文"
|
||||
},
|
||||
|
||||
"orgSuggestions": {
|
||||
"tech": ["TechCorp", "DevStudio", "CodeCraft", "PixelForge"],
|
||||
"creative": ["Creative Hub", "Design Studio", "Brand Works", "Visual Arts"],
|
||||
"consulting": ["Strategy Group", "Business Solutions", "Expert Advisors", "Growth Partners"],
|
||||
"startup": ["Innovation Labs", "Future Works", "Venture Co", "Next Gen"]
|
||||
},
|
||||
|
||||
"projectSuggestions": {
|
||||
"freelancer": ["客户项目", "作品集更新", "个人品牌"],
|
||||
"startup": ["MVP开发", "产品发布", "市场调研"],
|
||||
"agency": ["客户活动", "品牌策略", "网站重设计"],
|
||||
"enterprise": ["系统迁移", "流程优化", "团队培训"]
|
||||
},
|
||||
|
||||
"useCaseDescriptions": {
|
||||
"taskManagement": "组织和跟踪任务",
|
||||
"teamCollaboration": "无缝协作",
|
||||
"resourcePlanning": "管理时间和资源",
|
||||
"clientCommunication": "与客户保持联系",
|
||||
"timeTracking": "监控项目时间",
|
||||
"other": "其他"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,10 +7,12 @@
|
||||
"emailLabel": "电子邮件",
|
||||
"emailPlaceholder": "输入您的电子邮件",
|
||||
"emailRequired": "请输入您的电子邮件!",
|
||||
"passwordLabel": "密码",
|
||||
"passwordPlaceholder": "输入您的密码",
|
||||
"passwordLabel": "Password",
|
||||
"passwordGuideline": "Password must be at least 8 characters, include uppercase and lowercase letters, a number, and a special character.",
|
||||
"passwordPlaceholder": "Enter your password",
|
||||
"passwordRequired": "请输入您的密码!",
|
||||
"passwordMinCharacterRequired": "密码必须至少包含8个字符!",
|
||||
"passwordMaxCharacterRequired": "Password must be at most 32 characters!",
|
||||
"passwordPatternRequired": "密码不符合要求!",
|
||||
"strongPasswordPlaceholder": "输入更强的密码",
|
||||
"passwordValidationAltText": "密码必须至少包含8个字符,包括大小写字母、一个数字和一个符号。",
|
||||
|
||||
@@ -15,5 +15,32 @@
|
||||
"assignToMe": "分配给我",
|
||||
"archive": "归档",
|
||||
"newTaskNamePlaceholder": "写一个任务名称",
|
||||
"newSubtaskNamePlaceholder": "写一个子任务名称"
|
||||
"newSubtaskNamePlaceholder": "写一个子任务名称",
|
||||
"deleteTaskTitle": "删除任务",
|
||||
"deleteTaskContent": "您确定要删除此任务吗?此操作无法撤销。",
|
||||
"deleteTaskConfirm": "删除",
|
||||
"deleteTaskCancel": "取消",
|
||||
"deleteStatusTitle": "删除状态",
|
||||
"deleteStatusContent": "您确定要删除此状态吗?此操作无法撤销。",
|
||||
"deletePhaseTitle": "删除阶段",
|
||||
"deletePhaseContent": "您确定要删除此阶段吗?此操作无法撤销。",
|
||||
"untitledSection": "未命名部分",
|
||||
"unmapped": "未映射",
|
||||
"clickToChangeDate": "点击更改日期",
|
||||
"noDueDate": "无截止日期",
|
||||
"save": "保存",
|
||||
"clear": "清除",
|
||||
"nextWeek": "下周",
|
||||
"noSubtasks": "无子任务",
|
||||
"showSubtasks": "显示子任务",
|
||||
"hideSubtasks": "隐藏子任务",
|
||||
|
||||
"errorLoadingTasks": "加载任务时出错",
|
||||
"noTasksFound": "未找到任务",
|
||||
"loadingFilters": "正在加载过滤器...",
|
||||
"failedToUpdateColumnOrder": "更新列顺序失败",
|
||||
"failedToUpdatePhaseOrder": "更新阶段顺序失败",
|
||||
"pleaseTryAgain": "请重试",
|
||||
"taskNotCompleted": "任务未完成",
|
||||
"completeTaskDependencies": "请先完成任务依赖项,然后再继续"
|
||||
}
|
||||
@@ -3,5 +3,9 @@
|
||||
"searchLabel": "通过添加名称或电子邮件添加成员",
|
||||
"searchPlaceholder": "输入名称或电子邮件",
|
||||
"inviteAsAMember": "邀请为成员",
|
||||
"inviteNewMemberByEmail": "通过电子邮件邀请新成员"
|
||||
"inviteNewMemberByEmail": "通过电子邮件邀请新成员",
|
||||
"members": "成员",
|
||||
"copyProjectLink": "复制项目链接",
|
||||
"inviteMember": "邀请成员",
|
||||
"alsoInviteToProject": "也邀请到项目"
|
||||
}
|
||||
@@ -28,7 +28,7 @@
|
||||
"jobTitleLabel": "职位",
|
||||
"jobTitlePlaceholder": "选择或搜索职位(可选)",
|
||||
"memberAccessLabel": "访问级别",
|
||||
"addToTeamButton": "将成员添加到团队",
|
||||
"addToTeamButton": "发送邀请",
|
||||
"updateButton": "保存更改",
|
||||
"resendInvitationButton": "重新发送邀请邮件",
|
||||
"invitationSentSuccessMessage": "团队邀请已成功发送!",
|
||||
@@ -43,5 +43,6 @@
|
||||
"updatedText": "已更新",
|
||||
"noResultFound": "输入电子邮件地址并按回车键...",
|
||||
"jobTitlesFetchError": "获取职位失败",
|
||||
"invitationResent": "邀请重新发送成功!"
|
||||
"invitationResent": "邀请重新发送成功!",
|
||||
"copyTeamLink": "复制团队链接"
|
||||
}
|
||||
14
worklenz-frontend/public/locales/zh/survey.json
Normal file
14
worklenz-frontend/public/locales/zh/survey.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"modalTitle": "帮助我们提升您的体验",
|
||||
"skip": "暂时跳过",
|
||||
"previous": "上一步",
|
||||
"next": "下一步",
|
||||
"completeSurvey": "完成调查",
|
||||
"submitting": "正在提交您的回答...",
|
||||
"submitSuccessTitle": "谢谢!",
|
||||
"submitSuccessSubtitle": "您的反馈帮助我们改进 Worklenz。",
|
||||
"submitSuccessMessage": "感谢您完成调查!",
|
||||
"submitErrorMessage": "提交调查失败。请重试。",
|
||||
"submitErrorLog": "提交调查失败",
|
||||
"fetchErrorLog": "获取调查失败"
|
||||
}
|
||||
@@ -1,22 +1,28 @@
|
||||
{
|
||||
"taskHeader": {
|
||||
"taskNamePlaceholder": "输入您的任务",
|
||||
"deleteTask": "删除任务"
|
||||
"deleteTask": "删除任务",
|
||||
"parentTask": "父任务",
|
||||
"currentTask": "当前任务",
|
||||
"back": "返回",
|
||||
"backToParent": "返回父任务",
|
||||
"toParentTask": "到父任务",
|
||||
"loadingHierarchy": "加载层次结构..."
|
||||
},
|
||||
"taskInfoTab": {
|
||||
"title": "信息",
|
||||
"details": {
|
||||
"title": "详情",
|
||||
"title": "详细信息",
|
||||
"task-key": "任务键",
|
||||
"phase": "阶段",
|
||||
"assignees": "受让人",
|
||||
"assignees": "受理人",
|
||||
"due-date": "截止日期",
|
||||
"time-estimation": "时间估算",
|
||||
"priority": "优先级",
|
||||
"labels": "标签",
|
||||
"billable": "可计费",
|
||||
"notify": "通知",
|
||||
"when-done-notify": "完成时,通知",
|
||||
"when-done-notify": "完成时通知",
|
||||
"start-date": "开始日期",
|
||||
"end-date": "结束日期",
|
||||
"hide-start-date": "隐藏开始日期",
|
||||
@@ -24,18 +30,18 @@
|
||||
"hours": "小时",
|
||||
"minutes": "分钟",
|
||||
"progressValue": "进度值",
|
||||
"progressValueTooltip": "设置进度百分比(0-100%)",
|
||||
"progressValueTooltip": "设置进度百分比 (0-100%)",
|
||||
"progressValueRequired": "请输入进度值",
|
||||
"progressValueRange": "进度必须在0到100之间",
|
||||
"progressValueRange": "进度必须在 0 到 100 之间",
|
||||
"taskWeight": "任务权重",
|
||||
"taskWeightTooltip": "设置此子任务的权重(百分比)",
|
||||
"taskWeightTooltip": "设置此子任务的权重 (百分比)",
|
||||
"taskWeightRequired": "请输入任务权重",
|
||||
"taskWeightRange": "权重必须在0到100之间",
|
||||
"taskWeightRange": "权重必须在 0 到 100 之间",
|
||||
"recurring": "重复"
|
||||
},
|
||||
"labels": {
|
||||
"labelInputPlaceholder": "搜索或创建",
|
||||
"labelsSelectorInputTip": "按回车创建"
|
||||
"labelsSelectorInputTip": "按 Enter 键创建"
|
||||
},
|
||||
"description": {
|
||||
"title": "描述",
|
||||
@@ -44,7 +50,7 @@
|
||||
"subTasks": {
|
||||
"title": "子任务",
|
||||
"addSubTask": "添加子任务",
|
||||
"addSubTaskInputPlaceholder": "输入您的任务并按回车",
|
||||
"addSubTaskInputPlaceholder": "输入您的任务并按回车键",
|
||||
"refreshSubTasks": "刷新子任务",
|
||||
"edit": "编辑",
|
||||
"delete": "删除",
|
||||
@@ -52,10 +58,10 @@
|
||||
"deleteSubTask": "删除子任务"
|
||||
},
|
||||
"dependencies": {
|
||||
"title": "依赖关系",
|
||||
"addDependency": "+ 添加新依赖",
|
||||
"title": "依赖项",
|
||||
"addDependency": "+ 添加新依赖项",
|
||||
"blockedBy": "被阻止",
|
||||
"searchTask": "输入搜索任务",
|
||||
"searchTask": "输入以搜索任务",
|
||||
"noTasksFound": "未找到任务",
|
||||
"confirmDeleteDependency": "您确定要删除吗?"
|
||||
},
|
||||
@@ -67,7 +73,7 @@
|
||||
"comments": {
|
||||
"title": "评论",
|
||||
"addComment": "+ 添加新评论",
|
||||
"noComments": "还没有评论。成为第一个评论的人!",
|
||||
"noComments": "还没有评论。成为第一个评论者!",
|
||||
"delete": "删除",
|
||||
"confirmDeleteComment": "您确定要删除此评论吗?",
|
||||
"addCommentPlaceholder": "添加评论...",
|
||||
@@ -75,12 +81,12 @@
|
||||
"commentButton": "评论",
|
||||
"attachFiles": "附加文件",
|
||||
"addMoreFiles": "添加更多文件",
|
||||
"selectedFiles": "已选择的文件(最多25MB,最大{count}个)",
|
||||
"maxFilesError": "您最多只能上传{count}个文件",
|
||||
"selectedFiles": "选定文件 (最多 25MB,最多 {count} 个)",
|
||||
"maxFilesError": "您最多只能上传 {count} 个文件",
|
||||
"processFilesError": "处理文件失败",
|
||||
"addCommentError": "请添加评论或附加文件",
|
||||
"createdBy": "{{time}}由{{user}}创建",
|
||||
"updatedTime": "更新于{{time}}"
|
||||
"createdBy": "由 {{user}} 在 {{time}} 创建",
|
||||
"updatedTime": "更新于 {{time}}"
|
||||
},
|
||||
"searchInputPlaceholder": "按名称搜索",
|
||||
"pendingInvitation": "待处理邀请"
|
||||
@@ -88,8 +94,8 @@
|
||||
"taskTimeLogTab": {
|
||||
"title": "时间日志",
|
||||
"addTimeLog": "添加新时间日志",
|
||||
"totalLogged": "总记录时间",
|
||||
"exportToExcel": "导出到Excel",
|
||||
"totalLogged": "总计记录",
|
||||
"exportToExcel": "导出到 Excel",
|
||||
"noTimeLogsFound": "未找到时间日志",
|
||||
"timeLogForm": {
|
||||
"date": "日期",
|
||||
@@ -103,7 +109,7 @@
|
||||
"selectDateError": "请选择日期",
|
||||
"selectStartTimeError": "请选择开始时间",
|
||||
"selectEndTimeError": "请选择结束时间",
|
||||
"endTimeAfterStartError": "结束时间必须在开始时间之后"
|
||||
"endTimeAfterStartError": "结束时间必须晚于开始时间"
|
||||
}
|
||||
},
|
||||
"taskActivityLogTab": {
|
||||
@@ -116,8 +122,8 @@
|
||||
},
|
||||
"taskProgress": {
|
||||
"markAsDoneTitle": "将任务标记为完成?",
|
||||
"confirmMarkAsDone": "是的,标记为完成",
|
||||
"cancelMarkAsDone": "不,保持当前状态",
|
||||
"markAsDoneDescription": "您已将进度设置为100%。您想将任务状态更新为\"完成\"吗?"
|
||||
"confirmMarkAsDone": "是,标记为完成",
|
||||
"cancelMarkAsDone": "否,保持当前状态",
|
||||
"markAsDoneDescription": "您已将进度设置为 100%。您想将任务状态更新为\"完成\"吗?"
|
||||
}
|
||||
}
|
||||
@@ -79,5 +79,12 @@
|
||||
"close": "关闭",
|
||||
"cannotMoveStatus": "无法移动状态",
|
||||
"cannotMoveStatusMessage": "无法移动此状态,因为这会使\"{{categoryName}}\"类别为空。每个类别必须至少有一个状态。",
|
||||
"ok": "确定"
|
||||
"ok": "确定",
|
||||
"clearSort": "清除排序",
|
||||
"sortAscending": "升序排列",
|
||||
"sortDescending": "降序排列",
|
||||
"sortByField": "按{{field}}排序",
|
||||
"ascendingOrder": "升序",
|
||||
"descendingOrder": "降序",
|
||||
"currentSort": "当前排序:{{field}} {{order}}"
|
||||
}
|
||||
@@ -37,6 +37,7 @@
|
||||
"addSubTaskText": "+ 添加子任务",
|
||||
"addTaskInputPlaceholder": "输入任务并按回车键",
|
||||
"noTasksInGroup": "此组中没有任务",
|
||||
"dropTaskHere": "将任务拖到这里",
|
||||
"openButton": "打开",
|
||||
"okButton": "确定",
|
||||
"noLabelsFound": "未找到标签",
|
||||
|
||||
@@ -331,6 +331,13 @@ self.addEventListener('message', event => {
|
||||
});
|
||||
break;
|
||||
|
||||
case 'LOGOUT':
|
||||
// Special handler for logout - clear all caches and unregister
|
||||
handleLogout().then(() => {
|
||||
event.ports[0].postMessage({ success: true });
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
console.log('Service Worker: Unknown message type', type);
|
||||
}
|
||||
@@ -342,4 +349,19 @@ async function clearAllCaches() {
|
||||
console.log('Service Worker: All caches cleared');
|
||||
}
|
||||
|
||||
async function handleLogout() {
|
||||
try {
|
||||
// Clear all caches
|
||||
await clearAllCaches();
|
||||
|
||||
// Unregister the service worker to force fresh registration on next visit
|
||||
await self.registration.unregister();
|
||||
|
||||
console.log('Service Worker: Logout handled - caches cleared and unregistered');
|
||||
} catch (error) {
|
||||
console.error('Service Worker: Error during logout handling', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
console.log('Service Worker: Loaded successfully');
|
||||
Reference in New Issue
Block a user