Merge pull request #298 from Worklenz/feature/holiday-calendar-integration
feat(localization): update and enhance localization files for multipl…
This commit is contained in:
@@ -7,7 +7,9 @@
|
|||||||
"Bash(npm run:*)",
|
"Bash(npm run:*)",
|
||||||
"Bash(mkdir:*)",
|
"Bash(mkdir:*)",
|
||||||
"Bash(cp:*)",
|
"Bash(cp:*)",
|
||||||
"Bash(ls:*)"
|
"Bash(ls:*)",
|
||||||
|
"WebFetch(domain:www.npmjs.com)",
|
||||||
|
"WebFetch(domain:github.com)"
|
||||||
],
|
],
|
||||||
"deny": []
|
"deny": []
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -349,7 +349,7 @@ export default class HolidayController extends WorklenzControllerBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
errors.push(`${country.name}: ${error.message}`);
|
errors.push(`${country.name}: ${error?.message || "Unknown error"}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<link rel="icon" href="./favicon.ico" />
|
<link rel="icon" href="./favicon.ico" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<meta name="theme-color" content="#2b2b2b" />
|
<meta name="theme-color" content="#2b2b2b" />
|
||||||
|
|
||||||
<!-- PWA Meta Tags -->
|
<!-- PWA Meta Tags -->
|
||||||
<meta name="application-name" content="Worklenz" />
|
<meta name="application-name" content="Worklenz" />
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
@@ -17,27 +17,45 @@
|
|||||||
<meta name="msapplication-config" content="/browserconfig.xml" />
|
<meta name="msapplication-config" content="/browserconfig.xml" />
|
||||||
<meta name="msapplication-TileColor" content="#2b2b2b" />
|
<meta name="msapplication-TileColor" content="#2b2b2b" />
|
||||||
<meta name="msapplication-tap-highlight" content="no" />
|
<meta name="msapplication-tap-highlight" content="no" />
|
||||||
|
|
||||||
<!-- Apple Touch Icons -->
|
<!-- Apple Touch Icons -->
|
||||||
<link rel="apple-touch-icon" href="/favicon.ico" />
|
<link rel="apple-touch-icon" href="/favicon.ico" />
|
||||||
<link rel="apple-touch-icon" sizes="152x152" href="/favicon.ico" />
|
<link rel="apple-touch-icon" sizes="152x152" href="/favicon.ico" />
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/favicon.ico" />
|
<link rel="apple-touch-icon" sizes="180x180" href="/favicon.ico" />
|
||||||
<link rel="apple-touch-icon" sizes="167x167" href="/favicon.ico" />
|
<link rel="apple-touch-icon" sizes="167x167" href="/favicon.ico" />
|
||||||
|
|
||||||
<!-- PWA Manifest -->
|
<!-- PWA Manifest -->
|
||||||
<link rel="manifest" href="/manifest.json" />
|
<link rel="manifest" href="/manifest.json" />
|
||||||
|
|
||||||
<!-- Resource hints for better loading performance -->
|
<!-- Resource hints for better loading performance -->
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link rel="dns-prefetch" href="https://www.googletagmanager.com" />
|
<link rel="dns-prefetch" href="https://www.googletagmanager.com" />
|
||||||
<link rel="dns-prefetch" href="https://js.hs-scripts.com" />
|
<link rel="dns-prefetch" href="https://js.hs-scripts.com" />
|
||||||
|
|
||||||
<!-- Preload critical resources -->
|
<!-- Preload critical resources -->
|
||||||
<link rel="preload" href="/locales/en/common.json" as="fetch" type="application/json" crossorigin />
|
<link
|
||||||
<link rel="preload" href="/locales/en/auth/login.json" as="fetch" type="application/json" crossorigin />
|
rel="preload"
|
||||||
<link rel="preload" href="/locales/en/navbar.json" as="fetch" type="application/json" crossorigin />
|
href="/locales/en/common.json"
|
||||||
|
as="fetch"
|
||||||
|
type="application/json"
|
||||||
|
crossorigin
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/locales/en/auth/login.json"
|
||||||
|
as="fetch"
|
||||||
|
type="application/json"
|
||||||
|
crossorigin
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="preload"
|
||||||
|
href="/locales/en/navbar.json"
|
||||||
|
as="fetch"
|
||||||
|
type="application/json"
|
||||||
|
crossorigin
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- Optimized font loading with font-display: swap -->
|
<!-- Optimized font loading with font-display: swap -->
|
||||||
<link
|
<link
|
||||||
href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap"
|
href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap"
|
||||||
@@ -51,12 +69,12 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
/>
|
/>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
|
||||||
<title>Worklenz</title>
|
<title>Worklenz</title>
|
||||||
|
|
||||||
<!-- Environment configuration -->
|
<!-- Environment configuration -->
|
||||||
<script src="/env-config.js"></script>
|
<script src="/env-config.js"></script>
|
||||||
|
|
||||||
<!-- Analytics Module -->
|
<!-- Analytics Module -->
|
||||||
<script src="/js/analytics.js"></script>
|
<script src="/js/analytics.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ class AnalyticsManager {
|
|||||||
|
|
||||||
// Add event listener to button
|
// Add event listener to button
|
||||||
const btn = notice.querySelector('#analytics-notice-btn');
|
const btn = notice.querySelector('#analytics-notice-btn');
|
||||||
btn.addEventListener('click', (e) => {
|
btn.addEventListener('click', e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
localStorage.setItem('privacyNoticeShown', 'true');
|
localStorage.setItem('privacyNoticeShown', 'true');
|
||||||
notice.remove();
|
notice.remove();
|
||||||
@@ -77,7 +77,7 @@ class AnalyticsManager {
|
|||||||
* Check if privacy notice should be shown
|
* Check if privacy notice should be shown
|
||||||
*/
|
*/
|
||||||
checkPrivacyNotice() {
|
checkPrivacyNotice() {
|
||||||
const isProduction =
|
const isProduction =
|
||||||
window.location.hostname === 'worklenz.com' ||
|
window.location.hostname === 'worklenz.com' ||
|
||||||
window.location.hostname === 'app.worklenz.com';
|
window.location.hostname === 'app.worklenz.com';
|
||||||
const noticeShown = localStorage.getItem('privacyNoticeShown') === 'true';
|
const noticeShown = localStorage.getItem('privacyNoticeShown') === 'true';
|
||||||
@@ -94,4 +94,4 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
const analytics = new AnalyticsManager();
|
const analytics = new AnalyticsManager();
|
||||||
analytics.init();
|
analytics.init();
|
||||||
analytics.checkPrivacyNotice();
|
analytics.checkPrivacyNotice();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ class HubSpotManager {
|
|||||||
script.async = true;
|
script.async = true;
|
||||||
script.defer = true;
|
script.defer = true;
|
||||||
script.src = this.scriptSrc;
|
script.src = this.scriptSrc;
|
||||||
|
|
||||||
// Configure dark mode after script loads
|
// Configure dark mode after script loads
|
||||||
script.onload = () => this.setupDarkModeSupport();
|
script.onload = () => this.setupDarkModeSupport();
|
||||||
|
|
||||||
document.body.appendChild(script);
|
document.body.appendChild(script);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -45,26 +45,26 @@ class HubSpotManager {
|
|||||||
setupDarkModeSupport() {
|
setupDarkModeSupport() {
|
||||||
const applyTheme = () => {
|
const applyTheme = () => {
|
||||||
const isDark = document.documentElement.classList.contains('dark');
|
const isDark = document.documentElement.classList.contains('dark');
|
||||||
|
|
||||||
// Remove existing theme styles
|
// Remove existing theme styles
|
||||||
const existingStyle = document.getElementById(this.styleId);
|
const existingStyle = document.getElementById(this.styleId);
|
||||||
if (existingStyle) {
|
if (existingStyle) {
|
||||||
existingStyle.remove();
|
existingStyle.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isDark) {
|
if (isDark) {
|
||||||
this.injectDarkModeCSS();
|
this.injectDarkModeCSS();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Apply initial theme after delay to ensure widget is loaded
|
// Apply initial theme after delay to ensure widget is loaded
|
||||||
setTimeout(applyTheme, 1000);
|
setTimeout(applyTheme, 1000);
|
||||||
|
|
||||||
// Watch for theme changes
|
// Watch for theme changes
|
||||||
const observer = new MutationObserver(applyTheme);
|
const observer = new MutationObserver(applyTheme);
|
||||||
observer.observe(document.documentElement, {
|
observer.observe(document.documentElement, {
|
||||||
attributes: true,
|
attributes: true,
|
||||||
attributeFilter: ['class']
|
attributeFilter: ['class'],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ class HubSpotManager {
|
|||||||
cleanup() {
|
cleanup() {
|
||||||
const script = document.getElementById(this.scriptId);
|
const script = document.getElementById(this.scriptId);
|
||||||
const style = document.getElementById(this.styleId);
|
const style = document.getElementById(this.styleId);
|
||||||
|
|
||||||
if (script) script.remove();
|
if (script) script.remove();
|
||||||
if (style) style.remove();
|
if (style) style.remove();
|
||||||
}
|
}
|
||||||
@@ -131,7 +131,7 @@ class HubSpotManager {
|
|||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
const hubspot = new HubSpotManager();
|
const hubspot = new HubSpotManager();
|
||||||
hubspot.init();
|
hubspot.init();
|
||||||
|
|
||||||
// Make available globally for potential cleanup
|
// Make available globally for potential cleanup
|
||||||
window.HubSpotManager = hubspot;
|
window.HubSpotManager = hubspot;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
"saveButton": "Ruaj",
|
"saveButton": "Ruaj",
|
||||||
"saved": "Cilësimet u ruajtën me sukses",
|
"saved": "Cilësimet u ruajtën me sukses",
|
||||||
"errorSaving": "Gabim gjatë ruajtjes së cilësimeve"
|
"errorSaving": "Gabim gjatë ruajtjes së cilësimeve"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,4 +111,4 @@
|
|||||||
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
||||||
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,4 +12,4 @@
|
|||||||
"pinTab": "Fikso si tab i parazgjedhur",
|
"pinTab": "Fikso si tab i parazgjedhur",
|
||||||
"unpinTab": "Hiqe fiksimin e tab-it të parazgjedhur",
|
"unpinTab": "Hiqe fiksimin e tab-it të parazgjedhur",
|
||||||
"finance": "Finance"
|
"finance": "Finance"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,4 +49,4 @@
|
|||||||
"jobTitleCreateError": "Dështoi të krijohet titulli i punës",
|
"jobTitleCreateError": "Dështoi të krijohet titulli i punës",
|
||||||
"createButton": "Krijo",
|
"createButton": "Krijo",
|
||||||
"cancelButton": "Anulo"
|
"cancelButton": "Anulo"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,4 +13,4 @@
|
|||||||
"namePlaceholder": "Emri",
|
"namePlaceholder": "Emri",
|
||||||
"nameRequired": "Ju lutem shkruani një Emër",
|
"nameRequired": "Ju lutem shkruani një Emër",
|
||||||
"updateFailed": "Ndryshimi i emrit të ekipit dështoi!"
|
"updateFailed": "Ndryshimi i emrit të ekipit dështoi!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,4 +31,4 @@
|
|||||||
"intervalWeeks": "Intervali (javë)",
|
"intervalWeeks": "Intervali (javë)",
|
||||||
"intervalMonths": "Intervali (muaj)",
|
"intervalMonths": "Intervali (muaj)",
|
||||||
"saveChanges": "Ruaj ndryshimet"
|
"saveChanges": "Ruaj ndryshimet"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
"peopleField": "Fusha e njerëzve",
|
"peopleField": "Fusha e njerëzve",
|
||||||
"noDate": "Asnjë datë",
|
"noDate": "Asnjë datë",
|
||||||
"unsupportedField": "Lloj fushe i pambështetur",
|
"unsupportedField": "Lloj fushe i pambështetur",
|
||||||
|
|
||||||
"modal": {
|
"modal": {
|
||||||
"addFieldTitle": "Shto fushë",
|
"addFieldTitle": "Shto fushë",
|
||||||
"editFieldTitle": "Redakto fushën",
|
"editFieldTitle": "Redakto fushën",
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
"createErrorMessage": "Dështoi në krijimin e kolonës së personalizuar",
|
"createErrorMessage": "Dështoi në krijimin e kolonës së personalizuar",
|
||||||
"updateErrorMessage": "Dështoi në përditësimin e kolonës së personalizuar"
|
"updateErrorMessage": "Dështoi në përditësimin e kolonës së personalizuar"
|
||||||
},
|
},
|
||||||
|
|
||||||
"fieldTypes": {
|
"fieldTypes": {
|
||||||
"people": "Njerëz",
|
"people": "Njerëz",
|
||||||
"number": "Numër",
|
"number": "Numër",
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
"saveButton": "Speichern",
|
"saveButton": "Speichern",
|
||||||
"saved": "Einstellungen erfolgreich gespeichert",
|
"saved": "Einstellungen erfolgreich gespeichert",
|
||||||
"errorSaving": "Fehler beim Speichern der Einstellungen"
|
"errorSaving": "Fehler beim Speichern der Einstellungen"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,4 +111,4 @@
|
|||||||
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
||||||
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,4 +12,4 @@
|
|||||||
"pinTab": "Als Standard-Registerkarte festsetzen",
|
"pinTab": "Als Standard-Registerkarte festsetzen",
|
||||||
"unpinTab": "Standard-Registerkarte lösen",
|
"unpinTab": "Standard-Registerkarte lösen",
|
||||||
"finance": "Finance"
|
"finance": "Finance"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,4 +49,4 @@
|
|||||||
"jobTitleCreateError": "Berufsbezeichnung konnte nicht erstellt werden",
|
"jobTitleCreateError": "Berufsbezeichnung konnte nicht erstellt werden",
|
||||||
"createButton": "Erstellen",
|
"createButton": "Erstellen",
|
||||||
"cancelButton": "Abbrechen"
|
"cancelButton": "Abbrechen"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,4 +13,4 @@
|
|||||||
"namePlaceholder": "Name",
|
"namePlaceholder": "Name",
|
||||||
"nameRequired": "Bitte geben Sie einen Namen ein",
|
"nameRequired": "Bitte geben Sie einen Namen ein",
|
||||||
"updateFailed": "Änderung des Team-Namens fehlgeschlagen!"
|
"updateFailed": "Änderung des Team-Namens fehlgeschlagen!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,4 +31,4 @@
|
|||||||
"intervalWeeks": "Intervall (Wochen)",
|
"intervalWeeks": "Intervall (Wochen)",
|
||||||
"intervalMonths": "Intervall (Monate)",
|
"intervalMonths": "Intervall (Monate)",
|
||||||
"saveChanges": "Änderungen speichern"
|
"saveChanges": "Änderungen speichern"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
"peopleField": "Personenfeld",
|
"peopleField": "Personenfeld",
|
||||||
"noDate": "Kein Datum",
|
"noDate": "Kein Datum",
|
||||||
"unsupportedField": "Nicht unterstützter Feldtyp",
|
"unsupportedField": "Nicht unterstützter Feldtyp",
|
||||||
|
|
||||||
"modal": {
|
"modal": {
|
||||||
"addFieldTitle": "Feld hinzufügen",
|
"addFieldTitle": "Feld hinzufügen",
|
||||||
"editFieldTitle": "Feld bearbeiten",
|
"editFieldTitle": "Feld bearbeiten",
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
"createErrorMessage": "Fehler beim Erstellen der benutzerdefinierten Spalte",
|
"createErrorMessage": "Fehler beim Erstellen der benutzerdefinierten Spalte",
|
||||||
"updateErrorMessage": "Fehler beim Aktualisieren der benutzerdefinierten Spalte"
|
"updateErrorMessage": "Fehler beim Aktualisieren der benutzerdefinierten Spalte"
|
||||||
},
|
},
|
||||||
|
|
||||||
"fieldTypes": {
|
"fieldTypes": {
|
||||||
"people": "Personen",
|
"people": "Personen",
|
||||||
"number": "Zahl",
|
"number": "Zahl",
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
"saveButton": "Save",
|
"saveButton": "Save",
|
||||||
"saved": "Settings saved successfully",
|
"saved": "Settings saved successfully",
|
||||||
"errorSaving": "Error saving settings"
|
"errorSaving": "Error saving settings"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,4 +12,4 @@
|
|||||||
"pinTab": "Pin as default tab",
|
"pinTab": "Pin as default tab",
|
||||||
"unpinTab": "Unpin default tab",
|
"unpinTab": "Unpin default tab",
|
||||||
"finance": "Finance"
|
"finance": "Finance"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,4 +13,4 @@
|
|||||||
"namePlaceholder": "Name",
|
"namePlaceholder": "Name",
|
||||||
"nameRequired": "Please enter a Name",
|
"nameRequired": "Please enter a Name",
|
||||||
"updateFailed": "Team name change failed!"
|
"updateFailed": "Team name change failed!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
"peopleField": "People field",
|
"peopleField": "People field",
|
||||||
"noDate": "No date",
|
"noDate": "No date",
|
||||||
"unsupportedField": "Unsupported field type",
|
"unsupportedField": "Unsupported field type",
|
||||||
|
|
||||||
"modal": {
|
"modal": {
|
||||||
"addFieldTitle": "Add field",
|
"addFieldTitle": "Add field",
|
||||||
"editFieldTitle": "Edit field",
|
"editFieldTitle": "Edit field",
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
"createErrorMessage": "Failed to create custom column",
|
"createErrorMessage": "Failed to create custom column",
|
||||||
"updateErrorMessage": "Failed to update custom column"
|
"updateErrorMessage": "Failed to update custom column"
|
||||||
},
|
},
|
||||||
|
|
||||||
"fieldTypes": {
|
"fieldTypes": {
|
||||||
"people": "People",
|
"people": "People",
|
||||||
"number": "Number",
|
"number": "Number",
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
"saveButton": "Guardar",
|
"saveButton": "Guardar",
|
||||||
"saved": "Configuración guardada exitosamente",
|
"saved": "Configuración guardada exitosamente",
|
||||||
"errorSaving": "Error al guardar la configuración"
|
"errorSaving": "Error al guardar la configuración"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,4 +111,4 @@
|
|||||||
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
||||||
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,4 +12,4 @@
|
|||||||
"pinTab": "Fijar como pestaña predeterminada",
|
"pinTab": "Fijar como pestaña predeterminada",
|
||||||
"unpinTab": "Desfijar pestaña predeterminada",
|
"unpinTab": "Desfijar pestaña predeterminada",
|
||||||
"finance": "Finance"
|
"finance": "Finance"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,4 +49,4 @@
|
|||||||
"jobTitleCreateError": "No se pudo crear el título de trabajo",
|
"jobTitleCreateError": "No se pudo crear el título de trabajo",
|
||||||
"createButton": "Crear",
|
"createButton": "Crear",
|
||||||
"cancelButton": "Cancelar"
|
"cancelButton": "Cancelar"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,4 +13,4 @@
|
|||||||
"namePlaceholder": "Nombre",
|
"namePlaceholder": "Nombre",
|
||||||
"nameRequired": "Por favor ingresa un Nombre",
|
"nameRequired": "Por favor ingresa un Nombre",
|
||||||
"updateFailed": "¡Falló el cambio de nombre del equipo!"
|
"updateFailed": "¡Falló el cambio de nombre del equipo!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
"peopleField": "Campo de personas",
|
"peopleField": "Campo de personas",
|
||||||
"noDate": "Sin fecha",
|
"noDate": "Sin fecha",
|
||||||
"unsupportedField": "Tipo de campo no compatible",
|
"unsupportedField": "Tipo de campo no compatible",
|
||||||
|
|
||||||
"modal": {
|
"modal": {
|
||||||
"addFieldTitle": "Agregar campo",
|
"addFieldTitle": "Agregar campo",
|
||||||
"editFieldTitle": "Editar campo",
|
"editFieldTitle": "Editar campo",
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
"createErrorMessage": "Error al crear la columna personalizada",
|
"createErrorMessage": "Error al crear la columna personalizada",
|
||||||
"updateErrorMessage": "Error al actualizar la columna personalizada"
|
"updateErrorMessage": "Error al actualizar la columna personalizada"
|
||||||
},
|
},
|
||||||
|
|
||||||
"fieldTypes": {
|
"fieldTypes": {
|
||||||
"people": "Personas",
|
"people": "Personas",
|
||||||
"number": "Número",
|
"number": "Número",
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
"saveButton": "Salvar",
|
"saveButton": "Salvar",
|
||||||
"saved": "Configurações salvas com sucesso",
|
"saved": "Configurações salvas com sucesso",
|
||||||
"errorSaving": "Erro ao salvar configurações"
|
"errorSaving": "Erro ao salvar configurações"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,4 +111,4 @@
|
|||||||
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
||||||
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,4 +12,4 @@
|
|||||||
"pinTab": "Fixar como aba padrão",
|
"pinTab": "Fixar como aba padrão",
|
||||||
"unpinTab": "Desfixar aba padrão",
|
"unpinTab": "Desfixar aba padrão",
|
||||||
"finance": "Finance"
|
"finance": "Finance"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,4 +49,4 @@
|
|||||||
"jobTitleCreateError": "Falha ao criar cargo",
|
"jobTitleCreateError": "Falha ao criar cargo",
|
||||||
"createButton": "Criar",
|
"createButton": "Criar",
|
||||||
"cancelButton": "Cancelar"
|
"cancelButton": "Cancelar"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,4 +13,4 @@
|
|||||||
"namePlaceholder": "Nome",
|
"namePlaceholder": "Nome",
|
||||||
"nameRequired": "Por favor digite um Nome",
|
"nameRequired": "Por favor digite um Nome",
|
||||||
"updateFailed": "Falha na alteração do nome da equipe!"
|
"updateFailed": "Falha na alteração do nome da equipe!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
"peopleField": "Campo de pessoas",
|
"peopleField": "Campo de pessoas",
|
||||||
"noDate": "Sem data",
|
"noDate": "Sem data",
|
||||||
"unsupportedField": "Tipo de campo não suportado",
|
"unsupportedField": "Tipo de campo não suportado",
|
||||||
|
|
||||||
"modal": {
|
"modal": {
|
||||||
"addFieldTitle": "Adicionar campo",
|
"addFieldTitle": "Adicionar campo",
|
||||||
"editFieldTitle": "Editar campo",
|
"editFieldTitle": "Editar campo",
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
"createErrorMessage": "Falha ao criar a coluna personalizada",
|
"createErrorMessage": "Falha ao criar a coluna personalizada",
|
||||||
"updateErrorMessage": "Falha ao atualizar a coluna personalizada"
|
"updateErrorMessage": "Falha ao atualizar a coluna personalizada"
|
||||||
},
|
},
|
||||||
|
|
||||||
"fieldTypes": {
|
"fieldTypes": {
|
||||||
"people": "Pessoas",
|
"people": "Pessoas",
|
||||||
"number": "Número",
|
"number": "Número",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"doesNotExistText": "抱歉,您访问的页面不存在。",
|
"doesNotExistText": "抱歉,您访问的页面不存在。",
|
||||||
"backHomeButton": "返回首页"
|
"backHomeButton": "返回首页"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,4 +24,4 @@
|
|||||||
"step3Title": "邀请您的团队一起工作",
|
"step3Title": "邀请您的团队一起工作",
|
||||||
"maxMembers": "(您最多可以邀请5名成员)",
|
"maxMembers": "(您最多可以邀请5名成员)",
|
||||||
"maxTasks": "(您最多可以创建5个任务)"
|
"maxTasks": "(您最多可以创建5个任务)"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,4 +93,4 @@
|
|||||||
"expiredDaysAgo": "{{days}}天前",
|
"expiredDaysAgo": "{{days}}天前",
|
||||||
"continueWith": "继续使用{{plan}}",
|
"continueWith": "继续使用{{plan}}",
|
||||||
"changeToPlan": "更改为{{plan}}"
|
"changeToPlan": "更改为{{plan}}"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,4 +29,4 @@
|
|||||||
"calculationMethodTooltip": "此设置适用于您组织中的所有项目",
|
"calculationMethodTooltip": "此设置适用于您组织中的所有项目",
|
||||||
"calculationMethodUpdated": "组织计算方法更新成功",
|
"calculationMethodUpdated": "组织计算方法更新成功",
|
||||||
"calculationMethodUpdateError": "更新计算方法失败"
|
"calculationMethodUpdateError": "更新计算方法失败"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,4 +9,4 @@
|
|||||||
"confirm": "确认",
|
"confirm": "确认",
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
"delete": "删除项目"
|
"delete": "删除项目"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
"saveButton": "保存",
|
"saveButton": "保存",
|
||||||
"saved": "设置保存成功",
|
"saved": "设置保存成功",
|
||||||
"errorSaving": "保存设置时出错"
|
"errorSaving": "保存设置时出错"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,4 +6,4 @@
|
|||||||
"projects": "项目",
|
"projects": "项目",
|
||||||
"settings": "设置",
|
"settings": "设置",
|
||||||
"adminCenter": "管理中心"
|
"adminCenter": "管理中心"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,4 +30,4 @@
|
|||||||
"owner": "所有者",
|
"owner": "所有者",
|
||||||
"admin": "管理员",
|
"admin": "管理员",
|
||||||
"member": "成员"
|
"member": "成员"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,4 +6,4 @@
|
|||||||
"email": "电子邮件",
|
"email": "电子邮件",
|
||||||
"lastActivity": "最后活动",
|
"lastActivity": "最后活动",
|
||||||
"refresh": "刷新用户"
|
"refresh": "刷新用户"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,4 +31,4 @@
|
|||||||
"client": "客户"
|
"client": "客户"
|
||||||
},
|
},
|
||||||
"noPermission": "您没有权限执行此操作"
|
"noPermission": "您没有权限执行此操作"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
"loggingOut": "正在登出...",
|
"loggingOut": "正在登出...",
|
||||||
"authenticating": "正在认证...",
|
"authenticating": "正在认证...",
|
||||||
"gettingThingsReady": "正在为您准备..."
|
"gettingThingsReady": "正在为您准备..."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,4 +9,4 @@
|
|||||||
"orText": "或",
|
"orText": "或",
|
||||||
"successTitle": "重置指令已发送!",
|
"successTitle": "重置指令已发送!",
|
||||||
"successMessage": "重置信息已发送到您的电子邮件。请检查您的电子邮件。"
|
"successMessage": "重置信息已发送到您的电子邮件。请检查您的电子邮件。"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,4 +24,4 @@
|
|||||||
"loginErrorTitle": "登录失败",
|
"loginErrorTitle": "登录失败",
|
||||||
"loginErrorMessage": "请检查您的电子邮件和密码并重试"
|
"loginErrorMessage": "请检查您的电子邮件和密码并重试"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,4 +28,4 @@
|
|||||||
"orText": "或",
|
"orText": "或",
|
||||||
"reCAPTCHAVerificationError": "reCAPTCHA验证错误",
|
"reCAPTCHAVerificationError": "reCAPTCHA验证错误",
|
||||||
"reCAPTCHAVerificationErrorMessage": "我们无法验证您的reCAPTCHA。请重试。"
|
"reCAPTCHAVerificationErrorMessage": "我们无法验证您的reCAPTCHA。请重试。"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,4 +11,4 @@
|
|||||||
"returnToLoginButton": "返回登录",
|
"returnToLoginButton": "返回登录",
|
||||||
"confirmPasswordRequired": "请确认您的新密码",
|
"confirmPasswordRequired": "请确认您的新密码",
|
||||||
"passwordMismatch": "两次输入的密码不匹配"
|
"passwordMismatch": "两次输入的密码不匹配"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,4 +6,4 @@
|
|||||||
"reconnecting": "与服务器断开连接。",
|
"reconnecting": "与服务器断开连接。",
|
||||||
"connection-lost": "无法连接到服务器。请检查您的互联网连接。",
|
"connection-lost": "无法连接到服务器。请检查您的互联网连接。",
|
||||||
"connection-restored": "成功连接到服务器"
|
"connection-restored": "成功连接到服务器"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,4 +10,4 @@
|
|||||||
"create": "创建",
|
"create": "创建",
|
||||||
"templateDrawerTitle": "从模板中选择",
|
"templateDrawerTitle": "从模板中选择",
|
||||||
"createProject": "创建项目"
|
"createProject": "创建项目"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,4 +4,4 @@
|
|||||||
"addAnother": "添加另一个",
|
"addAnother": "添加另一个",
|
||||||
"goBack": "返回",
|
"goBack": "返回",
|
||||||
"continue": "继续"
|
"continue": "继续"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,4 +43,4 @@
|
|||||||
"tasks": "任务",
|
"tasks": "任务",
|
||||||
"refresh": "刷新"
|
"refresh": "刷新"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,4 +5,4 @@
|
|||||||
"goBack": "返回",
|
"goBack": "返回",
|
||||||
"continue": "继续",
|
"continue": "继续",
|
||||||
"skipForNow": "暂时跳过"
|
"skipForNow": "暂时跳过"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,4 +26,4 @@
|
|||||||
"noSubtasks": "无子任务",
|
"noSubtasks": "无子任务",
|
||||||
"showSubtasks": "显示子任务",
|
"showSubtasks": "显示子任务",
|
||||||
"hideSubtasks": "隐藏子任务"
|
"hideSubtasks": "隐藏子任务"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,4 +3,4 @@
|
|||||||
"subtitle": "请立即升级。",
|
"subtitle": "请立即升级。",
|
||||||
"button": "立即升级",
|
"button": "立即升级",
|
||||||
"checking": "正在检查订阅状态..."
|
"checking": "正在检查订阅状态..."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,4 +28,4 @@
|
|||||||
"acceptAndJoin": "接受并加入",
|
"acceptAndJoin": "接受并加入",
|
||||||
"noNotifications": "没有通知"
|
"noNotifications": "没有通知"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
"nameYourOrganization": "命名您的组织。",
|
"nameYourOrganization": "命名您的组织。",
|
||||||
"worklenzAccountTitle": "为您的Worklenz账户选择一个名称。",
|
"worklenzAccountTitle": "为您的Worklenz账户选择一个名称。",
|
||||||
"continue": "继续"
|
"continue": "继续"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,4 +21,4 @@
|
|||||||
"selectColor": "选择颜色",
|
"selectColor": "选择颜色",
|
||||||
"managePhases": "管理阶段",
|
"managePhases": "管理阶段",
|
||||||
"close": "关闭"
|
"close": "关闭"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,4 +47,4 @@
|
|||||||
"weightedProgress": "加权进度",
|
"weightedProgress": "加权进度",
|
||||||
"weightedProgressTooltip": "基于子任务权重计算进度",
|
"weightedProgressTooltip": "基于子任务权重计算进度",
|
||||||
"timeProgress": "基于时间的进度"
|
"timeProgress": "基于时间的进度"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,4 +11,4 @@
|
|||||||
"deleteConfirmationCancel": "取消",
|
"deleteConfirmationCancel": "取消",
|
||||||
"segmentedTooltip": "即将推出!在列表视图和缩略图视图之间切换。",
|
"segmentedTooltip": "即将推出!在列表视图和缩略图视图之间切换。",
|
||||||
"emptyText": "项目中没有附件。"
|
"emptyText": "项目中没有附件。"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,4 +111,4 @@
|
|||||||
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
||||||
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,4 +38,4 @@
|
|||||||
"includeArchivedTasks": "包含已归档任务",
|
"includeArchivedTasks": "包含已归档任务",
|
||||||
"export": "导出"
|
"export": "导出"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
"memberCount": "成员",
|
"memberCount": "成员",
|
||||||
"membersCountPlural": "成员",
|
"membersCountPlural": "成员",
|
||||||
"emptyText": "项目中没有附件。"
|
"emptyText": "项目中没有附件。"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,4 +3,4 @@
|
|||||||
"addButton": "添加",
|
"addButton": "添加",
|
||||||
"cancelButton": "取消",
|
"cancelButton": "取消",
|
||||||
"deleteButton": "删除"
|
"deleteButton": "删除"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,4 +12,4 @@
|
|||||||
"pinTab": "固定为默认标签页",
|
"pinTab": "固定为默认标签页",
|
||||||
"unpinTab": "取消固定默认标签页",
|
"unpinTab": "取消固定默认标签页",
|
||||||
"finance": "财务"
|
"finance": "财务"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"importTaskTemplate": "导入任务模板",
|
"importTaskTemplate": "导入任务模板",
|
||||||
"templateName": "模板名称",
|
"templateName": "模板名称",
|
||||||
"templateDescription": "模板描述",
|
"templateDescription": "模板描述",
|
||||||
"selectedTasks": "已选任务",
|
"selectedTasks": "已选任务",
|
||||||
"tasks": "任务",
|
"tasks": "任务",
|
||||||
"templates": "模板",
|
"templates": "模板",
|
||||||
"remove": "移除",
|
"remove": "移除",
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
"import": "导入"
|
"import": "导入"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"title": "项目成员",
|
"title": "项目成员",
|
||||||
"searchLabel": "通过添加名称或电子邮件添加成员",
|
"searchLabel": "通过添加名称或电子邮件添加成员",
|
||||||
"searchPlaceholder": "输入名称或电子邮件",
|
"searchPlaceholder": "输入名称或电子邮件",
|
||||||
"inviteAsAMember": "邀请为成员",
|
"inviteAsAMember": "邀请为成员",
|
||||||
"inviteNewMemberByEmail": "通过电子邮件邀请新成员"
|
"inviteNewMemberByEmail": "通过电子邮件邀请新成员"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,4 +28,4 @@
|
|||||||
"projectDatesInfo": "项目时间线信息",
|
"projectDatesInfo": "项目时间线信息",
|
||||||
"projectCategoryTooltip": "项目类别",
|
"projectCategoryTooltip": "项目类别",
|
||||||
"defaultTaskName": "无标题任务"
|
"defaultTaskName": "无标题任务"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,4 +24,4 @@
|
|||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
"save": "保存",
|
"save": "保存",
|
||||||
"templateNamePlaceholder": "输入模板名称"
|
"templateNamePlaceholder": "输入模板名称"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,4 +73,4 @@
|
|||||||
"needsAttentionText": "需要关注",
|
"needsAttentionText": "需要关注",
|
||||||
"atRiskText": "有风险",
|
"atRiskText": "有风险",
|
||||||
"goodText": "良好"
|
"goodText": "良好"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,4 +28,4 @@
|
|||||||
"todoText": "待办",
|
"todoText": "待办",
|
||||||
"doingText": "进行中",
|
"doingText": "进行中",
|
||||||
"doneText": "已完成"
|
"doneText": "已完成"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,4 +30,4 @@
|
|||||||
"overdueTasksColumn": "逾期任务",
|
"overdueTasksColumn": "逾期任务",
|
||||||
"completedTasksColumn": "已完成任务",
|
"completedTasksColumn": "已完成任务",
|
||||||
"ongoingTasksColumn": "进行中任务"
|
"ongoingTasksColumn": "进行中任务"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,4 +19,4 @@
|
|||||||
"nameColumn": "名称",
|
"nameColumn": "名称",
|
||||||
"projectsColumn": "项目",
|
"projectsColumn": "项目",
|
||||||
"membersColumn": "成员"
|
"membersColumn": "成员"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,4 +49,4 @@
|
|||||||
"statusText": "状态",
|
"statusText": "状态",
|
||||||
"priorityText": "优先级",
|
"priorityText": "优先级",
|
||||||
"phaseText": "阶段"
|
"phaseText": "阶段"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,4 +28,4 @@
|
|||||||
"projectUpdateText": "项目更新",
|
"projectUpdateText": "项目更新",
|
||||||
"clientText": "客户",
|
"clientText": "客户",
|
||||||
"teamText": "团队"
|
"teamText": "团队"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,4 +41,4 @@
|
|||||||
"setCategoryText": "设置类别",
|
"setCategoryText": "设置类别",
|
||||||
"searchByNameInputPlaceholder": "按名称搜索",
|
"searchByNameInputPlaceholder": "按名称搜索",
|
||||||
"todayText": "今天"
|
"todayText": "今天"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,4 +5,4 @@
|
|||||||
"timeReports": "用时报告",
|
"timeReports": "用时报告",
|
||||||
"estimateVsActual": "预计用时 vs 实际用时",
|
"estimateVsActual": "预计用时 vs 实际用时",
|
||||||
"currentOrganizationTooltip": "当前的组织"
|
"currentOrganizationTooltip": "当前的组织"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,4 +31,4 @@
|
|||||||
"totalLogged": "总记录",
|
"totalLogged": "总记录",
|
||||||
"loggedBillable": "已记录可计费",
|
"loggedBillable": "已记录可计费",
|
||||||
"loggedNonBillable": "已记录不可计费"
|
"loggedNonBillable": "已记录不可计费"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,4 +7,4 @@
|
|||||||
"searchPlaceholder": "按名称搜索",
|
"searchPlaceholder": "按名称搜索",
|
||||||
"emptyText": "在更新或创建项目时可以创建类别。",
|
"emptyText": "在更新或创建项目时可以创建类别。",
|
||||||
"colorChangeTooltip": "点击更改颜色"
|
"colorChangeTooltip": "点击更改颜色"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,4 +12,4 @@
|
|||||||
"passwordMismatch": "密码不匹配!",
|
"passwordMismatch": "密码不匹配!",
|
||||||
"passwordRequirements": "新密码应至少包含8个字符,包括一个大写字母、一个数字和一个符号。",
|
"passwordRequirements": "新密码应至少包含8个字符,包括一个大写字母、一个数字和一个符号。",
|
||||||
"updateButton": "更新密码"
|
"updateButton": "更新密码"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,4 +19,4 @@
|
|||||||
"createClientErrorMessage": "客户创建失败!",
|
"createClientErrorMessage": "客户创建失败!",
|
||||||
"updateClientSuccessMessage": "客户更新成功!",
|
"updateClientSuccessMessage": "客户更新成功!",
|
||||||
"updateClientErrorMessage": "客户更新失败!"
|
"updateClientErrorMessage": "客户更新失败!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,4 +17,4 @@
|
|||||||
"createJobTitleErrorMessage": "职位创建失败!",
|
"createJobTitleErrorMessage": "职位创建失败!",
|
||||||
"updateJobTitleSuccessMessage": "职位更新成功!",
|
"updateJobTitleSuccessMessage": "职位更新成功!",
|
||||||
"updateJobTitleErrorMessage": "职位更新失败!"
|
"updateJobTitleErrorMessage": "职位更新失败!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,4 +8,4 @@
|
|||||||
"emptyText": "标签可以在更新或创建任务时创建。",
|
"emptyText": "标签可以在更新或创建任务时创建。",
|
||||||
"pinTooltip": "点击将其固定到主菜单",
|
"pinTooltip": "点击将其固定到主菜单",
|
||||||
"colorChangeTooltip": "点击更改颜色"
|
"colorChangeTooltip": "点击更改颜色"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,4 +4,4 @@
|
|||||||
"time_zone": "时区",
|
"time_zone": "时区",
|
||||||
"time_zone_required": "时区是必需的",
|
"time_zone_required": "时区是必需的",
|
||||||
"save_changes": "保存更改"
|
"save_changes": "保存更改"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,4 +8,4 @@
|
|||||||
"popupDescription": "弹出通知可能会被您的浏览器禁用。更改您的浏览器设置以允许它们。",
|
"popupDescription": "弹出通知可能会被您的浏览器禁用。更改您的浏览器设置以允许它们。",
|
||||||
"unreadItemsTitle": "显示未读项目的数量",
|
"unreadItemsTitle": "显示未读项目的数量",
|
||||||
"unreadItemsDescription": "您将看到每个通知的计数。"
|
"unreadItemsDescription": "您将看到每个通知的计数。"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,4 +11,4 @@
|
|||||||
"profileLastUpdatedText": "一个月前更新",
|
"profileLastUpdatedText": "一个月前更新",
|
||||||
"avatarTooltip": "点击上传头像",
|
"avatarTooltip": "点击上传头像",
|
||||||
"title": "个人资料设置"
|
"title": "个人资料设置"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,4 +5,4 @@
|
|||||||
"confirmText": "您确定吗?",
|
"confirmText": "您确定吗?",
|
||||||
"okText": "是",
|
"okText": "是",
|
||||||
"cancelText": "取消"
|
"cancelText": "取消"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,4 +49,4 @@
|
|||||||
"jobTitleCreateError": "职位名称创建失败",
|
"jobTitleCreateError": "职位名称创建失败",
|
||||||
"createButton": "创建",
|
"createButton": "创建",
|
||||||
"cancelButton": "取消"
|
"cancelButton": "取消"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,4 +12,4 @@
|
|||||||
"teams": "团队",
|
"teams": "团队",
|
||||||
"change-password": "更改密码",
|
"change-password": "更改密码",
|
||||||
"language-and-region": "语言和地区"
|
"language-and-region": "语言和地区"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,4 +6,4 @@
|
|||||||
"confirmText": "您确定吗?",
|
"confirmText": "您确定吗?",
|
||||||
"okText": "是",
|
"okText": "是",
|
||||||
"cancelText": "取消"
|
"cancelText": "取消"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,4 +44,4 @@
|
|||||||
"noResultFound": "输入电子邮件地址并按回车键...",
|
"noResultFound": "输入电子邮件地址并按回车键...",
|
||||||
"jobTitlesFetchError": "获取职位失败",
|
"jobTitlesFetchError": "获取职位失败",
|
||||||
"invitationResent": "邀请重新发送成功!"
|
"invitationResent": "邀请重新发送成功!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,4 +13,4 @@
|
|||||||
"namePlaceholder": "名称",
|
"namePlaceholder": "名称",
|
||||||
"nameRequired": "请输入名称",
|
"nameRequired": "请输入名称",
|
||||||
"updateFailed": "团队名称更改失败!"
|
"updateFailed": "团队名称更改失败!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,4 +26,4 @@
|
|||||||
"add-sub-task": "+ 添加子任务",
|
"add-sub-task": "+ 添加子任务",
|
||||||
"refresh-sub-tasks": "刷新子任务"
|
"refresh-sub-tasks": "刷新子任务"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,4 +31,4 @@
|
|||||||
"intervalWeeks": "间隔(周)",
|
"intervalWeeks": "间隔(周)",
|
||||||
"intervalMonths": "间隔(月)",
|
"intervalMonths": "间隔(月)",
|
||||||
"saveChanges": "保存更改"
|
"saveChanges": "保存更改"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,4 +126,4 @@
|
|||||||
"cancelMarkAsDone": "否,保持当前状态",
|
"cancelMarkAsDone": "否,保持当前状态",
|
||||||
"markAsDoneDescription": "您已将进度设置为 100%。您想将任务状态更新为\"完成\"吗?"
|
"markAsDoneDescription": "您已将进度设置为 100%。您想将任务状态更新为\"完成\"吗?"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,4 +80,4 @@
|
|||||||
"cannotMoveStatus": "无法移动状态",
|
"cannotMoveStatus": "无法移动状态",
|
||||||
"cannotMoveStatusMessage": "无法移动此状态,因为这会使\"{{categoryName}}\"类别为空。每个类别必须至少有一个状态。",
|
"cannotMoveStatusMessage": "无法移动此状态,因为这会使\"{{categoryName}}\"类别为空。每个类别必须至少有一个状态。",
|
||||||
"ok": "确定"
|
"ok": "确定"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
"peopleField": "人员字段",
|
"peopleField": "人员字段",
|
||||||
"noDate": "无日期",
|
"noDate": "无日期",
|
||||||
"unsupportedField": "不支持的字段类型",
|
"unsupportedField": "不支持的字段类型",
|
||||||
|
|
||||||
"modal": {
|
"modal": {
|
||||||
"addFieldTitle": "添加字段",
|
"addFieldTitle": "添加字段",
|
||||||
"editFieldTitle": "编辑字段",
|
"editFieldTitle": "编辑字段",
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
"createErrorMessage": "创建自定义列失败",
|
"createErrorMessage": "创建自定义列失败",
|
||||||
"updateErrorMessage": "更新自定义列失败"
|
"updateErrorMessage": "更新自定义列失败"
|
||||||
},
|
},
|
||||||
|
|
||||||
"fieldTypes": {
|
"fieldTypes": {
|
||||||
"people": "人员",
|
"people": "人员",
|
||||||
"number": "数字",
|
"number": "数字",
|
||||||
@@ -127,4 +127,4 @@
|
|||||||
"recurring": "重复任务"
|
"recurring": "重复任务"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,4 +36,4 @@
|
|||||||
"recurring": "重复任务"
|
"recurring": "重复任务"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user