feat(localization): add and update translations for multiple languages
- Introduced new localization files for Albanian, German, Spanish, Portuguese, and Chinese, enhancing the application's multilingual support. - Added new keys and updated existing translations in project-view, task-list-table, and settings files to improve user experience across different languages. - Enhanced error handling and empty state messages in task management components to provide clearer feedback to users. - Updated tooltip texts and button labels for better clarity and consistency in the user interface.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import React, { ReactNode, Suspense } from 'react';
|
||||
import { InlineSuspenseFallback } from '@/components/suspense-fallback/suspense-fallback';
|
||||
import i18n from '@/i18n';
|
||||
|
||||
// Import core components synchronously to avoid suspense in main tabs
|
||||
import ProjectViewEnhancedBoard from '@/pages/projects/projectView/enhancedBoard/project-view-enhanced-board';
|
||||
@@ -28,26 +29,31 @@ type TabItems = {
|
||||
element: ReactNode;
|
||||
};
|
||||
|
||||
// Function to get translated labels
|
||||
const getTabLabel = (key: string): string => {
|
||||
return i18n.t(`project-view:${key}`);
|
||||
};
|
||||
|
||||
// settings all element items use for tabs
|
||||
export const tabItems: TabItems[] = [
|
||||
{
|
||||
index: 0,
|
||||
key: 'tasks-list',
|
||||
label: 'Task List',
|
||||
label: getTabLabel('taskList'),
|
||||
isPinned: true,
|
||||
element: React.createElement(TaskListV2),
|
||||
},
|
||||
{
|
||||
index: 1,
|
||||
key: 'board',
|
||||
label: 'Board',
|
||||
label: getTabLabel('board'),
|
||||
isPinned: true,
|
||||
element: React.createElement(ProjectViewEnhancedBoard),
|
||||
},
|
||||
{
|
||||
index: 2,
|
||||
key: 'project-insights-member-overview',
|
||||
label: 'Insights',
|
||||
label: getTabLabel('insights'),
|
||||
element: React.createElement(
|
||||
Suspense,
|
||||
{ fallback: React.createElement(InlineSuspenseFallback) },
|
||||
@@ -57,7 +63,7 @@ export const tabItems: TabItems[] = [
|
||||
{
|
||||
index: 3,
|
||||
key: 'all-attachments',
|
||||
label: 'Files',
|
||||
label: getTabLabel('files'),
|
||||
element: React.createElement(
|
||||
Suspense,
|
||||
{ fallback: React.createElement(InlineSuspenseFallback) },
|
||||
@@ -67,7 +73,7 @@ export const tabItems: TabItems[] = [
|
||||
{
|
||||
index: 4,
|
||||
key: 'members',
|
||||
label: 'Members',
|
||||
label: getTabLabel('members'),
|
||||
element: React.createElement(
|
||||
Suspense,
|
||||
{ fallback: React.createElement(InlineSuspenseFallback) },
|
||||
@@ -77,7 +83,7 @@ export const tabItems: TabItems[] = [
|
||||
{
|
||||
index: 5,
|
||||
key: 'updates',
|
||||
label: 'Updates',
|
||||
label: getTabLabel('updates'),
|
||||
element: React.createElement(
|
||||
Suspense,
|
||||
{ fallback: React.createElement(InlineSuspenseFallback) },
|
||||
@@ -85,3 +91,29 @@ export const tabItems: TabItems[] = [
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
// Function to update tab labels when language changes
|
||||
export const updateTabLabels = () => {
|
||||
tabItems.forEach(item => {
|
||||
switch (item.key) {
|
||||
case 'tasks-list':
|
||||
item.label = getTabLabel('taskList');
|
||||
break;
|
||||
case 'board':
|
||||
item.label = getTabLabel('board');
|
||||
break;
|
||||
case 'project-insights-member-overview':
|
||||
item.label = getTabLabel('insights');
|
||||
break;
|
||||
case 'all-attachments':
|
||||
item.label = getTabLabel('files');
|
||||
break;
|
||||
case 'members':
|
||||
item.label = getTabLabel('members');
|
||||
break;
|
||||
case 'updates':
|
||||
item.label = getTabLabel('updates');
|
||||
break;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user